:root{--bg: #0b0b0d;--fg: #e9e9ea;--fg-dim: #9b9ba1;--accent: #d8c9ff;--accent-ink: #15151b;--user-bg: #1a1a20;--assistant-bg: #14141a;--border: #25252c;--danger: #f08c8c;--success: #6ee7b7;--warn: #fbbf6e;--tap-target: 44px;--safe-top: env(safe-area-inset-top, 0);--safe-bottom: env(safe-area-inset-bottom, 0);--font-base: clamp(15px, 4vw, 17px);--line-height: 1.55;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--sheet-handle-h: 4px;--sheet-handle-w: 36px;--sheet-bg: #15151b;--sheet-radius: 16px 16px 0 0;--sheet-shadow: 0 -8px 32px rgba(0, 0, 0, .5)}[data-theme=blue]{--accent: #38bdf8;--accent-ink: #0a1320;--user-bg: #161d27;--assistant-bg: #11161e;--border: #1f2733}[data-theme=synapse]{--bg: #050608;--accent: #ff6a25;--accent-ink: #1a0a02;--user-bg: #1a120e;--assistant-bg: #110b08;--border: #2a1a12;--warn: #ffb547}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font:var(--font-base)/var(--line-height) -apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;height:100%;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100vh;overscroll-behavior-y:contain;padding-top:var(--safe-top)}button{font:inherit;padding:10px 18px;border-radius:8px;border:1px solid transparent;cursor:pointer;background:transparent;color:var(--fg);user-select:none;-webkit-user-select:none}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:500;transition:filter .15s ease,transform .12s ease,box-shadow .25s ease}button.primary:hover{filter:brightness(1.05);box-shadow:0 0 22px -4px color-mix(in srgb,var(--accent) 50%,transparent)}button.primary:active{transform:scale(.98)}button.ghost{border-color:var(--border);color:var(--fg-dim)}button.danger{color:var(--danger);border-color:var(--border)}button[disabled]{opacity:.55;cursor:progress}textarea,input{font:inherit;background:transparent;color:var(--fg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:max(16px,var(--font-base))}textarea:focus,input:focus{outline:none;border-color:var(--accent)}@media(max-width:720px){button{min-height:var(--tap-target);padding:11px 16px}button.icon,button.small{min-height:var(--tap-target);min-width:var(--tap-target)}}.bottom-sheet{position:fixed;left:0;right:0;bottom:0;z-index:100;background:var(--sheet-bg);border-radius:var(--sheet-radius);box-shadow:var(--sheet-shadow);transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);padding-bottom:var(--safe-bottom);max-height:88vh;display:flex;flex-direction:column}.bottom-sheet.peek{transform:translateY(calc(100% - 60px))}.bottom-sheet.half{transform:translateY(50%)}.bottom-sheet.full{transform:translateY(0)}.bottom-sheet .sheet-handle{height:24px;display:flex;align-items:center;justify-content:center;cursor:grab}.bottom-sheet .sheet-handle:before{content:"";width:var(--sheet-handle-w);height:var(--sheet-handle-h);background:var(--fg-dim);border-radius:4px;opacity:.6}.sheet-backdrop{position:fixed;inset:0;background:#00000080;z-index:99;opacity:0;pointer-events:none;transition:opacity .3s ease}.sheet-backdrop.visible{opacity:1;pointer-events:auto}@media(prefers-reduced-motion:no-preference){@keyframes fx-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.95)}}.fx-pulse{animation:fx-pulse 1.8s ease-in-out infinite}@keyframes fx-breathe{0%,to{box-shadow:0 0 color-mix(in srgb,var(--accent) 0%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 18%,transparent)}}.fx-breathe{animation:fx-breathe 3.2s ease-in-out infinite}.fx-glow{transition:box-shadow .25s ease,border-color .25s ease}.fx-glow:hover,.fx-glow:focus-visible{box-shadow:0 0 0 1px var(--accent),0 0 18px -2px color-mix(in srgb,var(--accent) 35%,transparent)}@keyframes fx-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fx-fade-up{animation:fx-fade-up .35s cubic-bezier(.16,1,.3,1) both}.fx-stagger>*{animation:fx-fade-up .42s cubic-bezier(.16,1,.3,1) both}.fx-stagger>*:nth-child(1){animation-delay:60ms}.fx-stagger>*:nth-child(2){animation-delay:.12s}.fx-stagger>*:nth-child(3){animation-delay:.18s}.fx-stagger>*:nth-child(4){animation-delay:.24s}.fx-stagger>*:nth-child(5){animation-delay:.3s}.fx-stagger>*:nth-child(6){animation-delay:.36s}.fx-stagger>*:nth-child(7){animation-delay:.42s}.fx-stagger>*:nth-child(8){animation-delay:.48s}.fx-stagger>*:nth-child(9){animation-delay:.54s}.fx-stagger>*:nth-child(10){animation-delay:.6s}.fx-stagger>*:nth-child(11){animation-delay:.66s}.fx-stagger>*:nth-child(12){animation-delay:.72s}@keyframes fx-draw{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.fx-draw{stroke-dasharray:100;stroke-dashoffset:100;animation:fx-draw 1.4s cubic-bezier(.65,0,.35,1) .15s forwards}@keyframes fx-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.fx-shimmer{background-image:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--accent) 12%,transparent) 50%,transparent 100%);background-size:200% 100%;animation:fx-shimmer 1.6s linear infinite}@keyframes fx-underline{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.fx-underline{position:relative}.fx-underline:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent);transform-origin:left center;animation:fx-underline .3s cubic-bezier(.4,0,.2,1) both}@property --fx-count{syntax: "<integer>"; inherits: false; initial-value: 0;}@keyframes fx-count{to{--fx-count: var(--n)}}.fx-count{animation:fx-count 1.1s ease-out forwards;counter-reset:c var(--fx-count)}.fx-count:after{content:counter(c)}@keyframes fx-ring{0%{box-shadow:0 0 color-mix(in srgb,var(--accent) 55%,transparent)}to{box-shadow:0 0 0 14px color-mix(in srgb,var(--accent) 0%,transparent)}}.fx-ring{animation:fx-ring 1.8s ease-out infinite}}@media(prefers-reduced-motion:reduce){.fx-fade-up,.fx-stagger>*{opacity:1;transform:none}.fx-draw{stroke-dashoffset:0}}
