@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Unbounded Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/unbounded-latin-wght-normal-D5afBTBx.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#0e1116;--surface:#161b23;--raised:#1e2530;--line:#2a3240;--line-strong:#3a4454;--text:#e8ecf2;--muted:#8a94a6;--scrim:#0406099e;--shadow:0 12px 32px #00000073;--accent:#7ce3d4;--accent-strong:#7ce3d4;--accent-text:#7ce3d4;--on-accent:#0e1116;--accent-soft:#7ce3d424;--ok:#4cc38a;--warn:#f5b84b;--danger:#f0616d;--ok-text:#4cc38a;--warn-text:#f5b84b;--danger-text:#f0616d;--warn-soft:#f5b84b1f;--danger-soft:#f0616d1f;--persona-clean:#9db4c8;--persona-polite:#7ce3d4;--persona-cheeky:#ffb38a;--persona-raw:#ff7a7a;--persona-unhinged:#c58cff;--persona-clean-ink:#9db4c8;--persona-polite-ink:#7ce3d4;--persona-cheeky-ink:#ffb38a;--persona-raw-ink:#ff7a7a;--persona-unhinged-ink:#c58cff;--persona:var(--persona-polite);--persona-ink:var(--persona-polite-ink);--bubble-user:#1d3b3a;--bubble-user-text:#e8f7f4;--face-ground:#0b0e12;--font-display:"Unbounded Variable", "Avenir Next", "Segoe UI", system-ui, sans-serif;--font-ui:"Figtree Variable", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-12:.75rem;--fs-14:.875rem;--fs-16:1rem;--fs-20:1.25rem;--fs-26:1.625rem;--fs-34:2.125rem;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--r-sm:8px;--r-md:12px;--r-lg:20px;--r-pill:999px;--target:44px;--gutter:max(16px, env(safe-area-inset-left), env(safe-area-inset-right));--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--tabbar-h:60px;--camera-pill-h:30px;--rail-w:232px;--content-max:760px;--kb:0px;--ease-out:cubic-bezier(.2, .8, .2, 1);--t-fast:.12s;--t-med:.22s;--t-slow:.36s}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#f2f4f7;--surface:#fff;--raised:#f8fafc;--line:#d9dee6;--line-strong:#c3cad5;--text:#141922;--muted:#5b6576;--scrim:#14192261;--shadow:0 12px 32px #14192224;--accent:#178f82;--accent-strong:#127368;--accent-text:#0f6b61;--on-accent:#fff;--accent-soft:#178f821a;--ok-text:#1e7f52;--warn-text:#8a5a00;--danger:#d8434f;--danger-text:#b42833;--warn-soft:#f5b84b2e;--danger-soft:#f0616d1f;--persona-clean-ink:#3f5568;--persona-polite-ink:#0f6b61;--persona-cheeky-ink:#9a4a1c;--persona-raw-ink:#b02a2a;--persona-unhinged-ink:#7b3fc0;--persona-ink:var(--persona-polite-ink);--bubble-user:#d8f1ed;--bubble-user-text:#0f2e2a;--face-ground:#e9edf2}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#f2f4f7;--surface:#fff;--raised:#f8fafc;--line:#d9dee6;--line-strong:#c3cad5;--text:#141922;--muted:#5b6576;--scrim:#14192261;--shadow:0 12px 32px #14192224;--accent:#178f82;--accent-strong:#127368;--accent-text:#0f6b61;--on-accent:#fff;--accent-soft:#178f821a;--ok-text:#1e7f52;--warn-text:#8a5a00;--danger:#d8434f;--danger-text:#b42833;--warn-soft:#f5b84b2e;--danger-soft:#f0616d1f;--persona-clean-ink:#3f5568;--persona-polite-ink:#0f6b61;--persona-cheeky-ink:#9a4a1c;--persona-raw-ink:#b02a2a;--persona-unhinged-ink:#7b3fc0;--persona-ink:var(--persona-polite-ink);--bubble-user:#d8f1ed;--bubble-user-text:#0f2e2a;--face-ground:#e9edf2}.persona-clean{--persona:var(--persona-clean);--persona-ink:var(--persona-clean-ink)}.persona-polite{--persona:var(--persona-polite);--persona-ink:var(--persona-polite-ink)}.persona-cheeky{--persona:var(--persona-cheeky);--persona-ink:var(--persona-cheeky-ink)}.persona-raw{--persona:var(--persona-raw);--persona-ink:var(--persona-raw-ink)}.persona-unhinged{--persona:var(--persona-unhinged);--persona-ink:var(--persona-unhinged-ink)}@media (width>=900px){:root{--tabbar-h:0px}}*,:before,:after{box-sizing:border-box}html{font-family:var(--font-ui);background:var(--ground);color:var(--text);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-size:16px;line-height:1.45}body{background:var(--ground);min-height:100dvh;color:var(--text);font-feature-settings:"ss01" on;margin:0;overflow-x:hidden}h1,h2,h3,h4{margin:0;font-weight:650;line-height:1.2}h1{font-family:var(--font-display);font-size:var(--fs-26);letter-spacing:-.01em;font-weight:600}h2{font-size:var(--fs-20)}h3{font-size:var(--fs-16)}h4{font-size:var(--fs-14);color:var(--muted);margin-top:var(--s2);font-weight:600}p{margin:0}code,kbd,.mono{font-family:var(--font-mono);font-size:.92em}.tnum,time{font-variant-numeric:tabular-nums}button,input,select,textarea{font:inherit;color:inherit}button{justify-content:center;align-items:center;gap:var(--s2);min-height:var(--target);padding:0 var(--s4);border-radius:var(--r-md);border:1px solid var(--line);background:var(--raised);color:var(--text);font-weight:600;font-size:var(--fs-14);cursor:pointer;touch-action:manipulation;transition:background-color var(--t-fast) ease, border-color var(--t-fast) ease, color var(--t-fast) ease, transform var(--t-fast) ease;line-height:1.1;display:inline-flex}button:hover:not(:disabled){border-color:var(--line-strong)}button:active:not(:disabled){transform:scale(.98)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent)}button.primary:hover:not(:disabled){border-color:var(--accent-strong);filter:brightness(1.06)}button.danger{border-color:color-mix(in srgb, var(--danger) 55%, transparent);color:var(--danger-text);background:0 0}button.danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}button.danger.solid{background:color-mix(in srgb, var(--danger) 72%, #000);border-color:color-mix(in srgb, var(--danger) 72%, #000);color:#fff}button.danger.solid:hover:not(:disabled){filter:brightness(1.08)}button.ghost{background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){background:var(--accent-soft);border-color:#0000}button.ghost.danger{color:var(--danger-text)}button.icon-button{width:var(--target);border-radius:var(--r-pill);padding:0}button.small-button{min-height:36px;padding:0 var(--s3)}:where(button,input,select,textarea,summary,a,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select,textarea{width:100%;min-height:var(--target);padding:10px var(--s3);border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);font-size:var(--fs-16);transition:border-color var(--t-fast) ease}input:hover,select:hover,textarea:hover{border-color:var(--line-strong)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:0;border-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--muted)}input[type=checkbox],input[type=radio]{width:22px;height:22px;min-height:22px;accent-color:var(--accent-strong);flex:none;margin:0}input[type=number]{font-variant-numeric:tabular-nums}textarea{resize:vertical;min-height:96px;line-height:1.45}select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:36px}fieldset{border:0;min-width:0;margin:0;padding:0}legend{margin-bottom:var(--s2);padding:0;font-weight:600}label{font-size:var(--fs-14)}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--muted)}.small{font-size:var(--fs-14)}.error{color:var(--danger-text)}.eyebrow{font-size:var(--fs-12);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:650}.row{gap:var(--s2);flex-wrap:wrap;align-items:center;display:flex}.row.end{justify-content:flex-end}.row.between{justify-content:space-between}.stack{gap:var(--s3);display:grid}.stack label{gap:var(--s1);font-weight:600;display:grid}.stack label:has(>input[type=checkbox]){align-items:center;gap:var(--s3);display:flex}.grow{flex:1;min-width:0}.notice,.banner{padding:var(--s2) var(--s3);border-radius:var(--r-md);background:var(--warn-soft);color:var(--warn-text);border:1px solid color-mix(in srgb, var(--warn) 35%, transparent);font-size:var(--fs-14);margin:0}.badge{border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);min-height:28px;font-size:var(--fs-12);white-space:nowrap;align-items:center;gap:6px;padding:2px 10px;font-weight:600;display:inline-flex}.chips{gap:var(--s1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.chip{border-radius:var(--r-sm);background:var(--raised);border:1px solid var(--line);color:var(--muted);font-size:var(--fs-12);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;padding:2px 8px;display:inline-flex}.skeleton{gap:var(--s3);display:grid}.skeleton span{border-radius:var(--r-sm);background:linear-gradient(90deg, var(--raised) 0%, var(--line) 50%, var(--raised) 100%);background-size:200% 100%;height:14px;animation:1.4s ease-in-out infinite skeleton;display:block}.skeleton span:nth-child(2){width:82%}.skeleton span:nth-child(3){width:64%}@keyframes skeleton{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.app{min-height:100dvh;padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom));flex-direction:column;display:flex}:root[data-keyboard] .app{padding-bottom:0}.topbar{z-index:30;align-items:center;gap:var(--s2) var(--s3);padding:calc(var(--safe-top) + 8px) var(--gutter) 8px;background:color-mix(in srgb, var(--ground) 86%, transparent);-webkit-backdrop-filter:saturate(1.2)blur(14px);backdrop-filter:saturate(1.2)blur(14px);border-bottom:1px solid color-mix(in srgb, var(--line) 70%, transparent);grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"brand chips end";display:grid;position:sticky;top:0}.topbar-brand{align-items:center;gap:var(--s2);grid-area:brand;min-width:0;display:flex}.wordmark{font-family:var(--font-display);letter-spacing:.16em;font-size:1.125rem;font-weight:700;line-height:1}.topbar-chips{flex-wrap:wrap;grid-area:chips;gap:6px;min-width:0;display:flex}.topbar-end{align-items:center;gap:var(--s2);grid-area:end;justify-self:end;display:flex}@media (width<=599px){.topbar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand end""chips chips";padding-bottom:6px}.topbar-chips:empty{display:none}}.conn{min-height:24px;color:var(--muted);background:0 0;border:0;padding:0;font-weight:600}.conn .dot{border-radius:50%;flex:none;width:9px;height:9px}.conn-ok .dot{background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 22%, transparent)}.conn-warn .dot{background:var(--warn)}.conn-bad .dot{background:var(--danger)}.conn-warn .conn-label{color:var(--warn-text)}.conn-bad .conn-label{color:var(--danger-text)}@media (width<=599px){.conn-ok .conn-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.identity,.persona-chip,.presence{border-radius:var(--r-pill);min-height:32px;font-size:var(--fs-12);gap:6px;padding:0 12px;font-weight:600}button.identity{background:var(--surface);border:1px solid var(--line);color:var(--text)}button.identity strong{font-weight:700}button.identity span{color:var(--muted);font-variant-numeric:tabular-nums}button.identity-set{border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.persona-chip{background:color-mix(in srgb, var(--persona) 12%, var(--surface));border:1px solid color-mix(in srgb, var(--persona) 55%, transparent);color:var(--persona-ink);letter-spacing:.04em}.persona-chip:before{content:"";background:var(--persona);border-radius:50%;width:7px;height:7px}.presence{background:var(--surface);color:var(--muted);align-items:center;display:inline-flex}.presence-company{color:var(--warn-text);border-color:color-mix(in srgb, var(--warn) 55%, transparent);background:var(--warn-soft)}.voice-indicator{width:32px;height:32px;color:var(--danger-text);background:var(--danger-soft);border-radius:50%;place-items:center;animation:1.6s ease-in-out infinite voice-live;display:inline-grid}@keyframes voice-live{50%{box-shadow:0 0 0 5px color-mix(in srgb, var(--danger) 16%, transparent)}}.view-toggle{border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);gap:2px;padding:3px;display:inline-flex}.view-toggle label{border-radius:var(--r-pill);min-height:36px;color:var(--muted);font-size:var(--fs-14);cursor:pointer;transition:background-color var(--t-fast) ease, color var(--t-fast) ease;align-items:center;gap:6px;padding:0 12px;font-weight:600;display:inline-flex;position:relative}.view-toggle label.selected{background:var(--raised);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-strong)}.view-toggle label.selected .icon{color:var(--accent-text)}.view-toggle input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.view-toggle label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.notices{gap:var(--s2);padding:0 var(--gutter);display:grid}.notices:not(:empty){padding-top:var(--s2)}.notices>*{width:100%;max-width:var(--content-max);margin-inline:auto}.audio-banner{min-height:var(--target);text-align:left;justify-content:flex-start;font-weight:650}.view{flex-direction:column;flex:1;min-width:0;display:flex}.view-head{width:100%;max-width:var(--content-max);padding:var(--s5) var(--gutter) var(--s2);gap:var(--s1);margin:0 auto;display:grid}.view-head p{font-size:var(--fs-14)}.nav-bar{z-index:25;height:calc(var(--tabbar-h) + var(--safe-bottom));padding:0 max(4px, env(safe-area-inset-left)) var(--safe-bottom) max(4px, env(safe-area-inset-right));background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:saturate(1.2)blur(14px);backdrop-filter:saturate(1.2)blur(14px);border-top:1px solid var(--line);grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:fixed;inset:auto 0 0}.nav-bar .nav-tabs{display:contents}:root[data-keyboard] .nav-bar{display:none}.nav-item{min-height:var(--target);border-radius:var(--r-md);color:var(--muted);letter-spacing:.01em;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0 2px;font-size:.6875rem;font-weight:600;display:flex;position:relative}.nav-item:hover:not(:disabled){color:var(--text)}.nav-item:active:not(:disabled){transform:none}.nav-bar .nav-item .icon{box-sizing:content-box;border-radius:var(--r-pill);transition:background-color var(--t-med) var(--ease-out);padding:2px 14px}.nav-item[aria-selected=true],.nav-item.is-current{color:var(--text)}.nav-bar .nav-item[aria-selected=true] .icon,.nav-bar .nav-item.is-current .icon{background:var(--accent-soft);color:var(--accent-text)}.nav-label{white-space:nowrap}.has-rail{grid-template-columns:var(--rail-w) minmax(0, 1fr);grid-template-rows:auto 1fr;padding-bottom:0;display:grid}.has-rail>.topbar,.has-rail>.main{grid-column:2}.has-rail .wordmark{display:none}.nav-rail{gap:var(--s1);height:100dvh;padding:calc(var(--safe-top) + 18px) 12px 16px max(12px, env(safe-area-inset-left));background:var(--surface);border-right:1px solid var(--line);flex-direction:column;grid-area:1/1/span 2;display:flex;position:sticky;top:0;overflow-y:auto}.rail-brand{font-family:var(--font-display);letter-spacing:.18em;padding:0 12px 18px;font-size:1.375rem;font-weight:700}.nav-rail .nav-tabs,.rail-links{gap:2px;display:grid}.rail-links{padding-top:var(--s3);border-top:1px solid var(--line);margin-top:auto}.nav-rail .nav-item{width:100%;font-size:var(--fs-14);flex-direction:row;justify-content:flex-start;gap:12px;padding:0 12px}.nav-rail .nav-item[aria-selected=true]{background:var(--accent-soft);color:var(--text)}.nav-rail .nav-item[aria-selected=true] .icon{color:var(--accent-text)}.nav-rail .nav-item[aria-selected=true]:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:10px;bottom:10px;left:-12px}.menu-list{padding:0 0 var(--s2);gap:2px;margin:0;list-style:none;display:grid}.menu-row{justify-content:flex-start;gap:var(--s3);width:100%;min-height:60px;padding:var(--s2) var(--s2);border-radius:var(--r-md);text-align:left;background:0 0;border:0}.menu-row:hover:not(:disabled){background:var(--raised)}.menu-row[aria-current=page]{background:var(--accent-soft)}.menu-icon{border-radius:var(--r-md);background:var(--raised);width:40px;height:40px;color:var(--accent-text);flex:none;place-items:center;display:grid}.menu-text{flex:1;gap:2px;min-width:0;display:grid}.menu-label{font-size:var(--fs-16);font-weight:650}.menu-hint{font-size:var(--fs-12);color:var(--muted);font-weight:500;line-height:1.35}.menu-chevron{color:var(--muted);flex:none}.settings{gap:var(--s5);padding-bottom:var(--s4);display:grid}.settings-group{gap:var(--s3);display:grid}.settings-group h3{font-size:var(--fs-12);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.retention-table{border-collapse:collapse;width:100%;font-size:var(--fs-14);table-layout:fixed}.retention-table th,.retention-table td{text-align:left;vertical-align:top;padding:var(--s2) var(--s2) var(--s2) 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.retention-table thead th{color:var(--muted);font-weight:600}.retention-table tbody th{font-weight:600}.switch-row{align-items:center;gap:var(--s3);padding:var(--s3);border-radius:var(--r-md);background:var(--raised);border:1px solid var(--line);display:flex}.switch-row label{font-size:var(--fs-16);font-weight:600}input[type=checkbox].switch{appearance:none;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;width:48px;height:28px;min-height:28px;transition:background-color var(--t-fast) ease;position:relative}input[type=checkbox].switch:after{content:"";background:var(--muted);width:20px;height:20px;transition:transform var(--t-med) var(--ease-out);border-radius:50%;position:absolute;top:3px;left:3px}input[type=checkbox].switch:checked{background:var(--accent-strong);border-color:var(--accent-strong)}input[type=checkbox].switch:checked:after{background:var(--on-accent);transform:translate(20px)}.segmented{border-radius:var(--r-md);background:var(--raised);border:1px solid var(--line);flex-wrap:wrap;gap:4px;padding:4px;display:flex}.segmented legend{float:left;width:100%;font-size:var(--fs-14);margin:2px 4px 6px}.segmented legend.sr-only{float:none}.segmented label{border-radius:var(--r-sm);min-height:40px;color:var(--muted);cursor:pointer;transition:background-color var(--t-fast) ease, color var(--t-fast) ease;flex:auto;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-weight:600;display:inline-flex;position:relative}.segmented label.selected{background:var(--surface);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-strong), 0 1px 2px #0000001f}.segmented label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.segmented input{opacity:0;width:1px;height:1px;position:absolute}.segmented:disabled label,fieldset:disabled .segmented label{opacity:.5;cursor:not-allowed}.segmented label:has(input:disabled){opacity:.5;cursor:not-allowed}.stack-group{gap:var(--s3);min-width:0;display:grid}.stack-group+.stack-group{padding-top:var(--s3);border-top:1px solid var(--line)}.stack-group h4{font-size:var(--fs-16);font-weight:600}.stack-field{min-width:0;font-size:var(--fs-14);gap:6px;display:grid}.stack-field select{text-overflow:ellipsis;min-width:0;max-width:100%}.stack-load-error{align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.pairing-actions{gap:var(--s2);display:grid}@media (width>=600px){.pairing-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}.camera-indicator-live{display:contents}.camera-indicator{top:calc(var(--safe-top) + 12px);z-index:1000;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--warn);color:var(--warn-text);font-size:var(--fs-12);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow);align-items:center;gap:6px;padding:3px 10px;font-weight:700;display:inline-flex;position:fixed;left:50%;transform:translate(-50%)}.camera-dot{border:2px solid;border-radius:50%;width:10px;height:10px}.camera-indicator-on .camera-dot,.camera-indicator-recognising .camera-dot,.camera-indicator-looking .camera-dot,.camera-indicator-looking_cloud .camera-dot{background:currentColor}.camera-indicator-looking_cloud{box-shadow:inset 0 0 0 999px var(--warn-soft), var(--shadow);border-width:2px}.camera-indicator-ready{border-style:dashed}.camera-ring{border:2px solid var(--accent);border-radius:50%;width:14px;height:14px;margin-left:-18px}:root:has(.camera-indicator) .topbar{padding-top:calc(var(--safe-top) + 8px + var(--camera-pill-h))}:root:has(.camera-indicator) .camera-indicator{top:calc(var(--safe-top) + 6px)}@media (width<=380px){.camera-indicator{padding:2px 8px;font-size:.6875rem}}.toast-stack{left:var(--gutter);right:var(--gutter);bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 12px);z-index:50;gap:var(--s2);max-width:440px;margin:0 auto;padding:0;list-style:none;display:grid;position:fixed}:is(body:has(.chat-dock) .toast-stack,body:has(.face-input) .toast-stack){bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 88px)}@media (width>=900px){.toast-stack{width:380px;bottom:24px;left:auto;right:24px}}.toast{gap:var(--s2);padding:var(--s3) var(--s4);border-radius:var(--r-lg);background:var(--raised);border:1px solid var(--line-strong);box-shadow:var(--shadow);animation:rise var(--t-slow) var(--ease-out);display:grid}.toast strong{font-size:var(--fs-16)}.toast.ringing{border-color:var(--warn);box-shadow:0 0 0 3px var(--warn-soft), var(--shadow)}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}.pair{min-height:100dvh;padding:calc(var(--safe-top) + 24px) var(--gutter) calc(var(--safe-bottom) + 24px);place-items:center;display:grid}.pair-card{gap:var(--s4);width:100%;max-width:420px;display:grid}.pair-brand{align-items:center;gap:var(--s3);display:flex}.pair-brand .face-avatar{width:56px;height:56px}.pair form{gap:var(--s2);padding:var(--s5);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);display:grid}.pair form label{margin-top:var(--s2);font-weight:600}.pair form label:first-child{margin-top:0}.pair-code{letter-spacing:.3em;font-size:var(--fs-20)}.pair button[type=submit]{margin-top:var(--s3);min-height:48px;font-size:var(--fs-16)}.pair-card>button.primary{min-height:48px;font-size:var(--fs-16)}.pair button.link{color:var(--accent-strong);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.recovery-codes{gap:var(--s2);padding:var(--s4) var(--s5);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.banner-dismissible{align-items:center;gap:var(--s2);padding-block:2px;padding-inline-end:2px;display:flex}.banner-dismissible .icon-button{color:inherit;flex:none}.app.gene-face{height:100dvh;min-height:0}.app.gene-face>.main,.app.gene-face .view{min-height:0}.face-home{background:var(--face-ground);flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.face{--face-feature:var(--persona);--face-glow:var(--persona);--face-light:0;background:var(--face-ground);flex:1;place-items:center;min-height:120px;display:grid;position:relative;container-type:size}:root[data-theme=light] .face{--face-feature:var(--persona-ink);--face-light:1}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .face{--face-feature:var(--persona-ink);--face-light:1}}.face-glow{pointer-events:none;background:radial-gradient(closest-side at 50% 50%, color-mix(in srgb, var(--persona) 16%, transparent) 0%, color-mix(in srgb, var(--persona) 6%, transparent) 55%, transparent 100%);transition:background var(--t-slow) ease;position:absolute;inset:0}.face canvas{width:min(100cqw - 2 * var(--gutter), 100cqh - 8px, 560px);aspect-ratio:1;touch-action:manipulation;height:auto;display:block;position:relative}.face-stage{padding:var(--s2) var(--gutter) 0}.face-fullscreen{top:var(--s2);right:max(8px, env(safe-area-inset-right));color:var(--muted);position:absolute}.face:fullscreen{background:var(--face-ground)}.face:fullscreen canvas{width:min(100vw,100vh)}.face-halted{inset:auto var(--gutter) var(--s3);padding:var(--s2) var(--s3);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--danger);position:absolute}.face-foot{justify-items:center;gap:var(--s3);padding:0 var(--gutter) var(--s4);display:grid;position:relative}.face-foot .story{width:100%;max-width:440px}.caption{text-align:center;align-content:end;gap:4px;width:100%;max-width:34rem;min-height:calc(1.3em + 2.97rem);display:grid}.caption-said{color:var(--muted);font-size:var(--fs-14);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.caption-reply{max-height:2.7em;font-size:var(--fs-20);overflow-wrap:anywhere;text-wrap:balance;flex-direction:column;justify-content:flex-end;font-weight:550;line-height:1.35;display:flex;overflow:hidden}.caption-hint .caption-reply{color:var(--muted);font-size:var(--fs-16);font-weight:500}.caption-thinking{color:var(--muted)}.caption-done{animation:.7s 9s forwards caption-fade}@keyframes caption-fade{to{opacity:0}}.talk-dock{justify-content:center;align-items:start;gap:var(--s5);grid-template-columns:56px auto 56px;display:grid}.dock-side{width:52px;height:52px;color:var(--muted);border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 70%, transparent);justify-self:center;margin-top:20px}span.dock-side{background:0 0;border:0}.dock-cancel{color:var(--danger-text);border-color:color-mix(in srgb, var(--danger) 45%, transparent)}.talk-dock:has(.talk.is-active)>button.dock-side:first-child{visibility:hidden}.talk,.ptt-wrap{justify-items:center;display:grid;position:relative}.ptt{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;background:0 0;border:0;flex-direction:column;gap:10px;min-height:0;padding:0}.ptt:hover:not(:disabled){border-color:#0000}.ptt:active:not(:disabled){transform:none}.ptt-disc{background:var(--accent-strong);color:var(--on-accent);transition:transform var(--t-med) var(--ease-out), background-color var(--t-med) ease, box-shadow var(--t-med) ease;border-radius:50%;place-items:center;display:grid}.ptt:focus-visible{outline:none}.ptt:focus-visible .ptt-disc{outline:3px solid var(--accent);outline-offset:4px}.ptt.active .ptt-disc{background:var(--danger);color:#fff;transform:scale(1.06)}.ptt-meter{border:2px solid var(--danger);opacity:0;transform:translateX(-50%) scale(calc(1 + var(--level,0) * .35));transition:transform 90ms linear, opacity var(--t-med) ease;pointer-events:none;border-radius:50%;position:absolute;top:0;left:50%}.talk.is-active .ptt-meter{opacity:calc(.35 + var(--level,0) * .65)}.talk-hero .ptt-disc,.talk-hero .ptt-meter{width:84px;height:84px}.talk-hero .ptt-disc{box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 14%, transparent), 0 10px 30px color-mix(in srgb, var(--accent) 22%, transparent)}.talk-hero .ptt.active .ptt-disc{box-shadow:0 0 0 8px color-mix(in srgb, var(--danger) 18%, transparent)}.ptt-label{font-size:var(--fs-14);color:var(--muted);white-space:nowrap;font-weight:600}.ptt.active .ptt-label{color:var(--text)}.ptt:disabled{opacity:.5}.talk-extra{justify-items:center;gap:4px;display:grid}.talk-hero .talk-extra{min-height:36px;margin-top:4px}.hands-free,.talk-error{text-align:center;font-size:var(--fs-14);margin:0}.talk-error{max-width:26rem}.wake-indicator{align-items:center;gap:6px;display:inline-flex}.wake-dot{background:var(--muted);opacity:.6;border-radius:50%;width:8px;height:8px}.wake-indicator[data-streaming=true] .wake-dot{background:var(--ok);opacity:1;box-shadow:0 0 0 4px color-mix(in srgb, var(--ok) 25%, transparent);animation:1.2s ease-in-out infinite wake-pulse}.wake-paused .wake-dot,.wake-error .wake-dot{background:var(--warn)}@keyframes wake-pulse{50%{box-shadow:0 0 0 7px color-mix(in srgb, var(--ok) 8%, transparent)}}@media (prefers-reduced-motion:reduce){.wake-indicator[data-streaming=true] .wake-dot{animation:none}}.face-input{left:0;right:0;bottom:calc(var(--tabbar-h) + var(--safe-bottom));z-index:26;padding:var(--s2) var(--gutter);background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);animation:rise var(--t-med) var(--ease-out);position:fixed}:root[data-keyboard] .face-input{bottom:var(--kb)}.has-rail .face-input{left:var(--rail-w)}.face-input .composer{max-width:var(--content-max);margin:0 auto}@media (height<=740px){.talk-hero .ptt-disc,.talk-hero .ptt-meter{width:68px;height:68px}.caption-reply{font-size:var(--fs-16)}.dock-side{margin-top:10px}}.face-avatar{flex:none;overflow:visible}.avatar-ground{fill:var(--raised);stroke:var(--line)}.avatar-eye{fill:var(--persona-ink);transform-box:fill-box;transform-origin:50%;transition:transform var(--t-med) var(--ease-out)}.avatar-mouth{fill:none;stroke:var(--persona-ink);stroke-width:1.8px;stroke-linecap:round;transform-box:fill-box;transform-origin:50%}.avatar-listening .avatar-eye{transform:scale(1.18)}.avatar-thinking .avatar-eyes{transform:translate(1.2px,-1.4px)}.avatar-thinking .avatar-eye{transform:scaleY(.7)}.avatar-speaking .avatar-mouth{animation:.36s ease-in-out infinite alternate avatar-talk}.avatar-happy .avatar-eye{transform:scaleY(.6)}.avatar-sleeping .avatar-eye,.avatar-offline .avatar-eye{opacity:.6;transform:scaleY(.25)}@keyframes avatar-talk{to{transform:scaleY(2.2)}}@media (prefers-reduced-motion:reduce){.avatar-speaking .avatar-mouth,.voice-indicator{animation:none}}.chat{width:100%;max-width:var(--content-max);padding:0 var(--gutter);flex-direction:column;flex:1;margin:0 auto;display:flex}.turns{padding:var(--s4) 0 var(--s3);gap:var(--s4);flex-direction:column;flex:1;margin:0;list-style:none;display:flex}.turn{gap:6px;display:grid}.chat-empty{justify-items:center;gap:var(--s2);padding:var(--s8) var(--s4);text-align:center;margin:auto 0;display:grid}.chat-empty-title{font-family:var(--font-display);font-size:var(--fs-20);margin-top:var(--s2);font-weight:600}.day-sep{align-items:center;gap:var(--s3);color:var(--muted);font-size:var(--fs-12);letter-spacing:.06em;text-transform:uppercase;font-weight:650;display:flex}.day-sep:before,.day-sep:after{content:"";background:var(--line);flex:1;height:1px}.msg{min-width:0;display:flex}.msg-user{justify-content:flex-end}.msg-gene{align-items:flex-start;gap:var(--s2)}.msg-avatar{width:28px;height:28px;margin-top:6px}.msg-body{justify-items:start;gap:4px;min-width:0;max-width:min(86%,34rem);display:grid}.bubble{font-size:var(--fs-16);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:10px 14px;line-height:1.45}.bubble.user{background:var(--bubble-user);max-width:min(82%,32rem);color:var(--bubble-user-text);border-radius:20px 20px 6px}.bubble.gene{background:var(--surface);border:1px solid var(--line);border-radius:20px 20px 20px 6px}.bubble-mic{vertical-align:-2px;opacity:.7;margin-right:6px}.caret{vertical-align:text-bottom;background:var(--accent);border-radius:2px;width:.45em;height:1.05em;margin-left:3px;animation:1s steps(2,start) infinite caret;display:inline-block}@keyframes caret{to{visibility:hidden}}.typing{gap:5px;padding:14px 16px;display:inline-flex}.typing-dot{background:var(--muted);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite typing}.typing-dot:nth-child(2){animation-delay:.15s}.typing-dot:nth-child(3){animation-delay:.3s}@keyframes typing{0%,60%,to{opacity:.45;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.turn-meta{flex-wrap:wrap;align-items:center;gap:6px;padding-left:2px;display:flex}.route{border-radius:var(--r-sm);min-height:22px;font-family:var(--font-mono);text-transform:lowercase;color:var(--muted);white-space:normal;overflow-wrap:anywhere;background:0 0;max-width:100%;padding:0 8px;font-size:.6875rem;font-weight:600}.route-rules{color:var(--warn-text);border-color:color-mix(in srgb, var(--warn) 45%, transparent)}.route-local{color:var(--ok-text);border-color:color-mix(in srgb, var(--ok) 45%, transparent)}.route-cloud{color:var(--accent-text);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.details-toggle{border-radius:var(--r-sm);min-height:28px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-12);font-variant-numeric:tabular-nums;background:0 0;border:0;gap:4px;padding:0 8px;font-weight:500}.details-toggle:hover:not(:disabled){color:var(--text);background:var(--raised)}.rot-90{transform:rotate(90deg)}.turn-details{width:100%;padding:var(--s2) var(--s3);border-radius:var(--r-md);background:var(--raised);border:1px solid var(--line);gap:6px;display:grid}.turn-details .chip{background:var(--surface);font-family:var(--font-mono)}.details-line{overflow-wrap:anywhere;font-size:.6875rem}.attribution,.turn-outcome{font-size:var(--fs-12);padding-left:2px}.sources{font-size:var(--fs-12);overflow-wrap:anywhere;max-width:100%;padding-left:2px}.sources summary{cursor:pointer;color:var(--muted)}.sources ul{margin:var(--s1) 0 0;padding-left:var(--s3)}.turn-error{font-size:var(--fs-14);padding:var(--s2) var(--s3);border-radius:var(--r-md);background:var(--danger-soft);justify-self:stretch}.chat-end{height:1px}.chat-dock{bottom:calc(var(--tabbar-h) + var(--safe-bottom));z-index:12;gap:var(--s2);margin:0 calc(-1 * var(--gutter));padding:var(--s2) var(--gutter) var(--s3);background:linear-gradient(to bottom, transparent, var(--ground) 18px);display:grid;position:sticky}:root[data-keyboard] .chat-dock{bottom:var(--kb)}.chat .story{margin-bottom:var(--s2)}.active-turn{justify-content:space-between;align-items:center;gap:var(--s2);font-size:var(--fs-14);padding:0 4px;display:flex}.new-pill{border-radius:var(--r-pill);background:var(--raised);border-color:var(--line-strong);min-height:36px;box-shadow:var(--shadow);font-size:var(--fs-14);animation:rise var(--t-med) var(--ease-out);padding:0 14px;position:absolute;top:-40px;left:50%;transform:translate(-50%)}.new-pill:active:not(:disabled){transform:translate(-50%)scale(.98)}.composer{background:var(--surface);border:1px solid var(--line);border-radius:28px;align-items:center;gap:6px;padding:4px;display:flex;position:relative;box-shadow:0 6px 20px #0000001f}.composer:focus-within{border-color:color-mix(in srgb, var(--accent) 60%, var(--line))}.composer-input{min-width:0;min-height:44px;padding:0 var(--s2);background:0 0;border:0;flex:1}.composer-input:focus-visible{outline:none}.composer-send{flex:none}.composer-send:disabled{background:var(--raised);border-color:var(--line);color:var(--muted);opacity:1}.talk-compact .ptt-disc,.talk-compact .ptt-meter{width:44px;height:44px}.talk-compact .ptt-disc{background:var(--raised);color:var(--accent-text);border:1px solid var(--line)}.talk-compact .ptt.active .ptt-disc{border-color:var(--danger)}.talk-compact .talk-extra{z-index:2;justify-items:stretch;position:absolute;bottom:calc(100% + 8px);left:0;right:0}.talk-compact .talk-extra:empty{display:none}.talk-compact .talk-extra{pointer-events:none}.talk-compact .talk-extra>button{pointer-events:auto}.talk-compact .hands-free{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.talk-compact .talk-extra>*{border-radius:var(--r-md);background:var(--raised);border:1px solid var(--line);box-shadow:var(--shadow);justify-self:start;padding:6px 12px}.talk-compact .talk-hint{color:var(--text);font-weight:650}.talk-compact .talk-discard{min-height:36px}.talk-compact{position:static}@media (prefers-reduced-motion:reduce){.caret,.typing-dot{animation:none}}.overlay-backdrop,.backdrop{z-index:40;background:var(--scrim);animation:fade-in var(--t-med) ease;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.backdrop{z-index:60}.backdrop.top-layer{z-index:70}.overlay-sheet,.dialog{width:100%;max-height:calc(100dvh - var(--safe-top) - 16px);overscroll-behavior:contain;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:var(--shadow);animation:sheet-up var(--t-slow) var(--ease-out);border-bottom:0;outline:none;position:relative;overflow-y:auto}.overlay-sheet{padding:0 var(--gutter) calc(var(--safe-bottom) + var(--s4))}.overlay-head{z-index:2;align-items:center;gap:var(--s2);margin:0 calc(-1 * var(--gutter)) var(--s2);padding:18px var(--gutter) 6px;background:var(--surface);border-bottom:1px solid var(--line);touch-action:none;cursor:grab;grid-template-columns:minmax(0,1fr) auto;display:grid;position:sticky;top:0}.overlay-head h2{font-family:var(--font-display);font-size:var(--fs-20);letter-spacing:-.005em;font-weight:600}.overlay-head button{cursor:pointer}.sheet-handle{border-radius:var(--r-pill);background:var(--line-strong);width:40px;height:5px;margin-left:-20px;position:absolute;top:7px;left:50%}.overlay-body{gap:var(--s4);display:grid}.dialog{gap:var(--s3);padding:var(--s5) var(--gutter) calc(var(--safe-bottom) + var(--s5));display:grid}.dialog.destructive{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger), var(--shadow)}.dialog.destructive h2{color:var(--danger-text)}.dialog h2{font-size:var(--fs-20)}.dialog .row.end{margin-top:var(--s2)}.dialog .row.end button{flex:1 1 0;min-height:48px}@media (width>=900px){.overlay-backdrop,.backdrop{align-items:center;padding:24px}.overlay-sheet,.dialog{border-bottom:1px solid var(--line);border-radius:var(--r-lg);width:min(100%,560px);max-height:min(88dvh,860px);animation:dialog-in var(--t-med) var(--ease-out)}.overlay-sheet{padding-bottom:var(--s5)}.overlay-wide{width:min(100%,780px)}.overlay-head{cursor:default;touch-action:auto;padding-top:14px}.sheet-handle{display:none}.dialog{width:min(100%,440px);padding:var(--s6)}.dialog .row.end button{flex:none}}@keyframes fade-in{0%{opacity:0}}@keyframes sheet-up{0%{opacity:.4;transform:translateY(24px)}}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.overlay-sheet .persona,.overlay-sheet .sheet{border-bottom:0;padding-inline:0}.overlay-sheet details{border-top:1px solid var(--line);padding:var(--s2) 0}.overlay-sheet details:first-of-type{border-top:0}.overlay-sheet summary{min-height:var(--target);cursor:pointer;align-items:center;font-weight:650;list-style:none;display:flex}.overlay-sheet summary::-webkit-details-marker{display:none}.overlay-sheet summary:after{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);width:8px;height:8px;transition:transform var(--t-fast) ease;margin-left:auto;transform:rotate(-45deg)}.overlay-sheet details[open]>summary:after{transform:rotate(45deg)}.memory,.transcripts,.camera{width:100%;max-width:var(--content-max);align-content:start;gap:var(--s3);padding:var(--s2) var(--gutter) var(--s8);margin:0 auto;display:grid}.overlay-sheet .stack,.overlay-sheet .persona{gap:var(--s4)}.card,.memory-item,.tile{padding:var(--s4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);min-width:0;margin:0}.card{gap:var(--s3);align-content:start;display:grid}.card>h3,.card>.row>h3,.card>.row>h4{font-size:var(--fs-16);font-weight:700}.card h4{margin:0}.card[role=note]{color:var(--muted);background:var(--raised);font-size:var(--fs-14);border-style:dashed}.sheet{gap:var(--s3);padding:var(--s3) 0;display:grid}.sheet h2{font-size:var(--fs-16)}.list,.memory-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.memory-list{gap:var(--s2)}.list-row{align-items:center;gap:var(--s2) var(--s3);min-height:52px;padding:var(--s2) 0;border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.list>li:last-child.list-row,.list>.list-row:last-child{border-bottom:0}.list-row .grow{min-width:10rem}.list-row strong{font-weight:650}.list-row .badge{text-transform:capitalize;min-height:22px;color:var(--muted);padding:0 8px}.list-row.ringing{margin-inline:calc(-1 * var(--s2));padding-inline:var(--s2);border-radius:var(--r-md);background:var(--warn-soft);border-bottom-color:#0000}.list-button{justify-content:space-between;gap:var(--s3);width:100%;min-height:60px;padding:0 var(--s4);border-radius:var(--r-md);background:var(--surface);text-align:left}.list:has(.list-button){gap:var(--s2)}.list-button strong{font-family:var(--font-mono);font-size:var(--fs-14);font-weight:600}.list-button:after{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);flex:none;width:8px;height:8px;transform:rotate(-45deg)}.countdown{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600}.ringing{outline:none}.card form.row{align-items:end;gap:var(--s2)}.inline{gap:var(--s1);min-width:0;font-weight:600;display:grid}.inline select,.inline input{width:100%}.card form.row .inline{flex:7rem}.card form.row input[type=number]{min-width:4.5rem}.card form.row>button{flex:none}.toggle{align-items:center;gap:var(--s3);min-height:var(--target);font-size:var(--fs-16);display:flex}.toggle.grow{min-width:0}.composer.search,form[role=search]{gap:var(--s2);box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;display:flex}form[role=search] input{flex:1;min-width:0}.card form.composer{gap:var(--s2);box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.card form.composer input{flex:1;min-width:0}.tabs.inner{border-radius:var(--r-md);background:var(--raised);border:1px solid var(--line);gap:4px;padding:4px;display:flex}.tabs.inner [role=tab]{border-radius:var(--r-sm);min-height:40px;color:var(--muted);background:0 0;border:0;flex:1}.tabs.inner [role=tab][aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-strong)}[role=group].segmented{background:0 0;border:0;gap:6px;padding:0}.chip-toggle{border-radius:var(--r-pill);background:var(--surface);min-height:36px;color:var(--muted);font-size:var(--fs-14);text-transform:capitalize;gap:6px;padding:0 12px}.chip-toggle[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.kind-glyph{color:var(--accent-text);flex:none}.memory-item{gap:var(--s3);display:grid}.memory-head{gap:var(--s3);align-items:flex-start;display:flex}.memory-head .kind-glyph{margin-top:2px}.memory-text{font-size:var(--fs-16);overflow-wrap:anywhere;white-space:pre-wrap;margin:0}.memory-item .chips{gap:6px}.memory-item .row.end{margin:calc(-1 * var(--s2)) calc(-1 * var(--s2)) calc(-1 * var(--s2)) 0}.chip-warn{color:var(--warn-text);border-color:color-mix(in srgb, var(--warn) 45%, transparent)}.prov-learned{color:var(--accent-text)}.prov-app{color:var(--ok-text)}.chip-done{color:var(--ok-text);border-color:color-mix(in srgb, var(--ok) 45%, transparent)}.confirm{align-items:center;gap:var(--s2);padding:var(--s3);border-radius:var(--r-md);border:1px solid color-mix(in srgb, var(--danger) 50%, transparent);background:var(--danger-soft);flex-wrap:wrap;display:flex}.confirm.stack{display:grid}.editor{gap:var(--s3);padding:var(--s4);border-radius:var(--r-lg);background:var(--raised);border:1px solid var(--line);display:grid}.memory-item .editor{background:0 0;border:0;padding:0}.editor .row{align-items:end}.editor .inline{flex:9rem}.memory-version{font-size:var(--fs-14)}.meter{border-radius:var(--r-pill);background:var(--raised);border:1px solid var(--line);height:8px;overflow:hidden}.meter span{background:var(--accent);border-radius:inherit;height:100%;transition:width var(--t-med) ease;display:block}.kv{gap:6px var(--s4);font-size:var(--fs-14);grid-template-columns:max-content minmax(0,1fr);margin:0;display:grid}.kv dt{color:var(--muted)}.kv dd{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:0}@media (width<=380px){.kv{grid-template-columns:minmax(0,1fr);gap:0}.kv dd{margin-bottom:var(--s2)}}.conversation{gap:var(--s3)}.conversation .turns{gap:var(--s3);padding:0}.conversation .turns>li{gap:6px;display:grid}.conversation .turns>li>p.muted{font-family:var(--font-mono);font-size:var(--fs-12)}.conversation .bubble.user{justify-self:end}.conversation .bubble.gene{background:var(--raised);justify-self:start;max-width:min(86%,34rem)}.sim-banner{letter-spacing:.06em;text-align:center;font-weight:700}.room{gap:var(--s2);display:grid}.room h3{font-size:var(--fs-12);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:var(--s2)}.tiles{gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));display:grid}.tile{gap:var(--s3);align-content:start;display:grid}.tile [data-testid=device-state]{font-size:var(--fs-20);font-variant-numeric:tabular-nums;font-weight:650}.tile .row>button{flex:auto}.tile form.row{flex-wrap:nowrap;align-items:end}.tile form .inline{flex:1}.tile.not-allowed{opacity:.6;filter:grayscale()}.camera .row.between h2{font-size:var(--fs-16)}.camera-preview{aspect-ratio:4/3;border-radius:var(--r-lg);border:1px solid var(--line);background:#05070a;width:100%;max-width:480px;position:relative;overflow:hidden}.camera-preview video{object-fit:cover;width:100%;height:100%}.camera-preview.mirrored video,.camera-preview.mirrored .vision-overlay{transform:scaleX(-1)}.camera-preview-empty{color:var(--muted);background:var(--raised);place-items:center;font-weight:600;display:grid}.vision-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.vision-overlay rect{fill:none;stroke-width:2px}.ov-person{stroke:var(--accent)}.ov-unknown,.ov-unresolved{stroke:var(--warn)}.ov-face{stroke:var(--ok)}.ov-object{stroke:var(--muted);stroke-dasharray:4 2}.consent-text{max-height:14rem;padding:var(--s3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--raised);white-space:pre-wrap;font-size:var(--fs-14);overflow:auto}.progress-ring{flex:none;width:64px;height:64px}.ring-track,.ring-fill{fill:none;stroke-width:4px}.ring-track{stroke:var(--line)}.ring-fill{stroke:var(--accent)}.ring-text{fill:var(--text);font-size:9px;font-family:var(--font-mono)}.persona{gap:var(--s4);display:grid}.persona fieldset{gap:var(--s3);display:grid}.persona .segmented[role=radiogroup]{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width>=420px){.persona .segmented[role=radiogroup]{grid-template-columns:repeat(4,minmax(0,1fr))}}.persona .toggle{padding:var(--s3);border-radius:var(--r-md);background:var(--raised);border:1px solid var(--line)}.persona .inline{display:grid}[data-testid=persona-effective] strong{font-family:var(--font-mono);color:var(--text)}.components,.logs{margin:var(--s2) 0;font-size:var(--fs-12);font-family:var(--font-mono);padding:0;list-style:none}.components li,.logs li{overflow-wrap:anywhere;padding:3px 0}.components .ok{color:var(--ok-text)}.components .bad{color:var(--danger-text)}.logs{max-height:40dvh;padding:var(--s2) var(--s3);border-radius:var(--r-md);background:var(--raised);overflow-y:auto}.logs time{color:var(--muted)}.log-warning{color:var(--warn-text)}.log-error{color:var(--danger-text)}[data-testid=debug-drawer] .kv{font-family:var(--font-mono);font-size:var(--fs-12)}[data-testid=debug-drawer] .kv dt{font-family:var(--font-ui);font-size:var(--fs-14)}[data-testid=debug-drawer] details>button,[data-testid=debug-drawer] details>.inline{margin:var(--s2) 0}[data-testid=debug-drawer] .inline{align-items:center;gap:var(--s2);display:flex}[data-testid=debug-drawer] .inline select{width:auto}.toast p{margin:0}.toast .row.end{margin-top:var(--s1)}.empty{gap:var(--s1);padding:var(--s5) var(--s4);border-radius:var(--r-lg);border:1px dashed var(--line-strong);text-align:center;display:grid}.empty p:first-child{color:var(--text);font-weight:600}.loading{padding:var(--s3) 0}.camera-actions>button{flex:auto;min-height:48px}@media (width>=600px){.camera-actions>button{flex:none}}.jump-nav{gap:var(--s1)}.jump-target{scroll-margin-top:calc(64px + env(safe-area-inset-top,0px))}.jump-target:focus{outline:none}.section-title{margin:var(--s2) 0 0;font-size:1rem}.quick-ask>.row>button{min-height:44px}.quick-ask-reply{margin:0}.health-chart{margin:.5rem 0}.health-chart svg{width:100%;height:auto;max-height:160px}.health-band{fill:var(--accent-soft)}.health-point,.health-bar{fill:var(--muted)}.health-point.second{fill:none;stroke:var(--muted)}.health-point.outside{fill:none;stroke:var(--text);stroke-width:1.5px}.face-carousel{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;border:0;gap:10px;margin:0;padding:2px 2px 8px;display:flex;overflow-x:auto}.face-carousel legend{float:left;width:100%;font-size:var(--fs-14);margin-bottom:6px}.face-carousel label{border-radius:var(--r-md);border:1px solid var(--line);background:var(--raised);cursor:pointer;scroll-snap-align:start;flex-direction:column;flex:0 0 min(44%,180px);gap:4px;padding:8px;display:flex;position:relative}.face-carousel label.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.face-carousel label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.face-carousel input{opacity:0;width:1px;height:1px;position:absolute}.face-carousel-stage{--face-feature:var(--persona);--face-glow:var(--persona);--face-light:0;border-radius:var(--r-sm);background:var(--face-ground);aspect-ratio:4/3;display:block;overflow:hidden}:root[data-theme=light] .face-carousel-stage{--face-feature:var(--persona-ink);--face-light:1}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .face-carousel-stage{--face-feature:var(--persona-ink);--face-light:1}}.face-preview{width:100%;height:100%;display:block}.face-carousel-name{font-weight:600}
