.login-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.5rem 1.25rem;padding-top:max(1.5rem,env(safe-area-inset-top));padding-left:max(1.25rem,env(safe-area-inset-left));padding-right:max(1.25rem,env(safe-area-inset-right));padding-bottom:max(1.5rem,env(safe-area-inset-bottom));background:radial-gradient(42rem 26rem at 12% -4%,var(--primary-soft) 0%,transparent 60%),radial-gradient(36rem 24rem at 104% 108%,var(--accent-soft) 0%,transparent 60%),var(--bg)}.login-card{width:100%;max-width:26rem;padding:2rem 1.75rem 1.75rem}.login-brand{display:inline-flex;align-items:center;min-height:var(--tap-target);margin-bottom:.5rem;text-decoration:none;border-radius:var(--radius-md)}.login-brand:active .brand-mark{background:var(--primary-dark)}.login-brand:focus-visible{outline:var(--focus-ring);outline-offset:2px}.login-card h1{font-size:1.35rem;letter-spacing:-.02em;margin-bottom:.2rem}.login-card form{display:flex;flex-direction:column;gap:.95rem;margin-top:1.4rem}.login-submit{width:100%;min-height:var(--tap-target-lg);margin-top:.25rem}.login-card .form-error{margin:0}.demo-accounts{margin-top:1.6rem;border-top:1px solid var(--border);padding-top:.35rem}.demo-accounts summary{min-height:var(--tap-target);display:flex;align-items:center;gap:.5rem;padding:.2rem .25rem;border-radius:var(--radius-sm);color:var(--muted);font-weight:650;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.demo-accounts summary:before{content:"▸";font-size:.8em;transition:transform var(--transition-fast)}.demo-accounts[open] summary:before{transform:rotate(90deg)}.demo-accounts summary::-webkit-details-marker{display:none}.demo-accounts summary:active{background:var(--primary-soft)}.demo-accounts summary:focus-visible{outline:var(--focus-ring);outline-offset:1px}.demo-accounts p{margin:.15rem 0 .75rem;font-size:.92rem}.demo-accounts code{background:var(--primary-soft);border-radius:6px;padding:.1rem .4rem;font-size:.88em;overflow-wrap:anywhere}.demo-account-buttons{display:flex;flex-wrap:wrap;gap:.5rem;padding-bottom:.35rem}.auth-actions{display:flex;flex-direction:column;gap:.35rem;margin-top:1.4rem}.auth-links{display:flex;justify-content:center}.auth-link{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap-target);padding:.2rem .75rem;color:var(--primary-dark);font-weight:650;text-decoration:none;border-radius:var(--radius-sm)}@media(hover:hover){.auth-link:hover{text-decoration:underline}}.auth-link:active{background:var(--primary-soft)}.auth-link:focus-visible{outline:var(--focus-ring);outline-offset:1px}.password-input{position:relative}.password-input input{padding-right:4.6rem}.password-toggle{position:absolute;top:0;right:0;height:100%;min-width:var(--tap-target);min-height:var(--tap-target);padding:0 .85rem;border:none;border-radius:var(--radius-sm);background:none;color:var(--primary-dark);font:inherit;font-size:.9rem;font-weight:650;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.password-toggle:active{background:var(--primary-soft)}.password-toggle:focus-visible{outline:var(--focus-ring);outline-offset:-2px}.password-toggle:disabled{opacity:.55;cursor:default}@media(max-width:600px){.login-card{padding:1.6rem 1.2rem 1.4rem}.demo-account-buttons .button{flex:1 1 auto}}.join-card{max-width:28rem}.join-card h1{font-size:1.35rem;line-height:1.25;margin:0 0 .5rem;text-wrap:balance}.join-lede{margin:0 0 1rem;color:var(--ink-2);font-size:.92rem}.join-names{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.join-show{display:flex;align-items:center;gap:.45rem;font-size:.82rem;color:var(--muted)}.join-show input{width:auto;min-height:0}@media(max-width:26rem){.join-names{grid-template-columns:1fr}}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.landing{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;overflow-x:clip;-webkit-tap-highlight-color:transparent}.landing main{flex:1}.landing .section-inner{max-width:1020px;margin:0 auto;padding:0 1.25rem;padding-left:calc(1.25rem + env(safe-area-inset-left));padding-right:calc(1.25rem + env(safe-area-inset-right))}.landing .section-intro{max-width:620px;margin:0 auto 2.5rem;text-align:center}.landing .section-intro h2{font-size:clamp(1.6rem,3.5vw,2.2rem);font-weight:800;letter-spacing:-.02em;margin-bottom:.6rem}.landing .section-intro p{color:var(--muted);margin:0;font-size:1.05rem}.landing .section-intro a,.landing .section-intro a:visited{color:var(--primary);text-decoration:underline;text-underline-offset:2px}.landing .section-intro a:hover{color:var(--primary-dark)}.landing a:focus-visible{outline:var(--focus-ring);outline-offset:2px;border-radius:6px}.landing-nav{position:sticky;top:0;z-index:20;background:var(--bg-veil);-webkit-backdrop-filter:var(--veil-blur);backdrop-filter:var(--veil-blur);border-bottom:1px solid var(--border);padding-top:env(safe-area-inset-top)}.landing-nav-inner{max-width:1020px;margin:0 auto;padding:.7rem 1.25rem;padding-left:calc(1.25rem + env(safe-area-inset-left));padding-right:calc(1.25rem + env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;gap:1rem}.landing-brand{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;color:inherit;min-width:0;min-height:var(--tap-target)}.landing-brand:active .landing-brand-mark{background:var(--primary-dark)}.landing-brand-mark{background:var(--primary);color:var(--on-primary);font-size:1.2rem;font-weight:800;letter-spacing:.06em;padding:.2rem .7rem;border-radius:var(--radius-md);flex-shrink:0}.landing-brand-mark.small{font-size:.95rem;padding:.15rem .55rem}.landing-brand-name{color:var(--muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero{position:relative;overflow:hidden;text-align:center;padding:6rem 1.25rem 6.5rem;padding-left:calc(1.25rem + env(safe-area-inset-left));padding-right:calc(1.25rem + env(safe-area-inset-right))}.hero-inner{position:relative;z-index:1;max-width:740px;margin:0 auto}.hero-eyebrow{display:inline-block;background:var(--primary-soft);color:var(--primary-dark);font-weight:700;font-size:.85rem;letter-spacing:.04em;text-transform:uppercase;padding:.35rem .95rem;border-radius:var(--radius-pill);margin:0 0 1.4rem}.hero h1{font-size:clamp(2.1rem,5.5vw,3.5rem);font-weight:800;letter-spacing:-.02em;margin-bottom:1.1rem}.hero h1 em{font-style:normal;color:var(--primary-dark)}.hero-sub{color:var(--muted);font-size:clamp(1.05rem,2.2vw,1.25rem);max-width:34rem;margin:0 auto 2rem}.hero-ctas{display:flex;justify-content:center;gap:.9rem;flex-wrap:wrap}.hero-blobs{position:absolute;inset:0;pointer-events:none}.blob{position:absolute;border-radius:50%;filter:blur(56px);opacity:.55;will-change:transform}.blob-a{width:340px;height:340px;top:-80px;left:-100px;background:radial-gradient(circle at 40% 40%,var(--hero-glow-1),transparent 70%);animation:blob-drift 21s ease-in-out infinite}.blob-b{width:300px;height:300px;right:-90px;top:30%;background:radial-gradient(circle at 55% 45%,var(--hero-glow-2),transparent 70%);animation:blob-drift 26s ease-in-out -7s infinite reverse}.blob-c{width:260px;height:260px;left:30%;bottom:-120px;background:radial-gradient(circle at 50% 50%,var(--hero-glow-3),transparent 70%);animation:blob-drift 24s ease-in-out -13s infinite}@keyframes blob-drift{0%,to{transform:translate(0) scale(1)}33%{transform:translate(26px,-22px) scale(1.05)}66%{transform:translate(-18px,16px) scale(.97)}}@media(prefers-reduced-motion:reduce){.blob{animation:none}}.strands{padding:4.5rem 0 5rem;background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.strand-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.1rem}@media(min-width:640px)and (max-width:1023px){.strand-grid{grid-template-columns:repeat(2,1fr)}}.strand-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:1.4rem 1.4rem 1.5rem;box-shadow:var(--shadow-1)}.strand-badge{display:inline-flex;align-items:center;justify-content:center;width:2.7rem;height:2.7rem;font-size:1.3rem;font-weight:800;background:var(--primary);color:var(--on-primary);border-radius:var(--radius-md);margin-bottom:.85rem}.strand-card h3{font-size:1.05rem;font-weight:750;margin-bottom:.5rem}.strand-card p{color:var(--muted);font-size:.93rem;margin:0}.how{padding:4.5rem 0 3.5rem}.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3.5rem;counter-reset:step}.step{display:flex;align-items:center;gap:clamp(1.5rem,5vw,4rem)}.step:nth-child(2n){flex-direction:row-reverse}.step-figure{flex:0 1 340px;min-width:0}.step-art{width:100%;max-width:340px;height:auto;display:block;margin:0 auto}.step-body{flex:1 1 320px;min-width:0}.step-number{display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--primary);color:var(--on-primary);font-weight:800;margin-bottom:.75rem}.step-body h3{font-size:1.35rem;font-weight:750;margin-bottom:.6rem}.step-body p{color:var(--muted);margin:0;max-width:32rem}.trust{background:var(--primary-soft);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:1.4rem 1.25rem;padding-left:calc(1.25rem + env(safe-area-inset-left));padding-right:calc(1.25rem + env(safe-area-inset-right))}.trust-list{list-style:none;margin:0 auto;padding:0;max-width:1020px;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:.5rem 0;color:var(--primary-dark);font-weight:650;font-size:.95rem;text-align:center}.trust-list li{display:flex;align-items:center}.trust-list li+li:before{content:"·";margin:0 .9rem;font-weight:800}.study{padding:5rem 1.25rem;padding-left:calc(1.25rem + env(safe-area-inset-left));padding-right:calc(1.25rem + env(safe-area-inset-right));scroll-margin-top:calc(4.5rem + env(safe-area-inset-top))}.study-inner{max-width:640px;margin:0 auto;text-align:center}.study-inner h2{font-size:clamp(1.6rem,3.5vw,2.2rem);font-weight:800;letter-spacing:-.02em;margin-bottom:1rem}.study-inner p{color:var(--muted);font-size:1.05rem;margin:0 0 1.75rem}.landing-footer{background:var(--surface);border-top:1px solid var(--border);padding:1.75rem 1.25rem;padding-left:calc(1.25rem + env(safe-area-inset-left));padding-right:calc(1.25rem + env(safe-area-inset-right));padding-bottom:calc(1.75rem + env(safe-area-inset-bottom))}.landing-footer-inner{max-width:1020px;margin:0 auto;display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}.landing-footer p{margin:0;color:var(--muted);font-size:.85rem}@media(max-width:720px){.step,.step:nth-child(2n){flex-direction:column;text-align:center}.step-body p{margin:0 auto}.step-figure{flex-basis:auto}.step-art{max-width:250px}}@media(max-width:600px){.landing-brand-name{display:none}.hero{padding-top:4rem;padding-bottom:4.5rem}.hero-ctas .button{width:100%;max-width:20rem}.trust-list{flex-direction:column;gap:.55rem}.trust-list li+li:before{content:none}}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}:root{--bg: #eef1f6;--surface: #ffffff;--sidebar: #fcfcfd;--ink: #2f3e46;--muted: #556570;--primary: #2f5eea;--primary-dark: #1f45c4;--primary-soft: #e9edfd;--accent: #e76f51;--accent-strong: #b8431f;--accent-soft: #fbeae4;--border: #e0e3e7;--danger: #c1512f;--danger-border: #f0c4b4;--on-primary: #fff;--field-bg: #fff;--bar: #12141b;--bar-2: #1b1e28;--bar-ink: #e9eaf1;--bar-muted: #8a8ea3;--bar-hover: rgba(255, 255, 255, .06);--bar-active: rgba(255, 255, 255, .12);--bar-line: rgba(255, 255, 255, .1);--mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--bg-veil: rgba(255, 255, 255, .92);--veil-blur: none;--surface-veil: rgba(255, 255, 255, .6);--overlay-scrim: rgba(31, 42, 47, .85);--overlay-ink: #fff;--overlay-control: rgba(255, 255, 255, .18);--overlay-control-active: rgba(255, 255, 255, .32);--focus-ring-overlay: 3px solid rgba(255, 255, 255, .65);--hero-glow-1: #bfe4de;--hero-glow-2: #f6d2c3;--hero-glow-3: #e6e0f4;--strand-a-soft: #dcf7f1;--strand-a-ink: #117a6b;--strand-b-soft: #feeddb;--strand-b-ink: #956011;--strand-c-soft: #ffe9e8;--strand-c-ink: #b7434b;--strand-d-soft: #f8ebff;--strand-d-ink: #8f51ac;--chart-strand-a: #0f9b89;--chart-strand-b: #c8800d;--chart-strand-c: #c21f3a;--chart-strand-d: #9136b7;--chart-seq-1: #e8eefd;--chart-seq-2: #c8d5f9;--chart-seq-3: #a1b6f3;--chart-seq-4: #7896ee;--chart-seq-5: #305fee;--chart-seq-6: #0934b3;--chrome: #ffffff;--chrome-line: #dfe4ee;--chrome-ink: #16202c;--chrome-muted: #5a6a7b;--chrome-hover: #eef1f6;--chrome-active: var(--primary-soft);--chrome-active-ink: var(--primary-dark);--surface-raised: #fbfcfe;--surface-sunken: #eceff5;--border-soft: #f0f2f7;--ink-2: #33414f;--radius-lg: 12px;--status-ok: #0f7a53;--status-ok-soft: #e3f6ec;--status-warn: #9a5b00;--status-warn-soft: #fdf0dc;--status-risk: #b3341f;--status-risk-soft: #fdeae6;--shadow-1: 0 1px 3px rgba(47, 62, 70, .05);--shadow: 0 2px 8px rgba(47, 62, 70, .07);--shadow-lift: 0 6px 16px rgba(47, 62, 70, .11);--shadow-pressed: 0 1px 5px rgba(47, 62, 70, .09);--shadow-overlay: 0 14px 44px rgba(0, 0, 0, .4);--radius: 8px;--radius-md: 6px;--radius-sm: 6px;--radius-pill: 6px;--space-2: .75rem;--space-3: 1rem;--space-4: 1.5rem;--space-5: 2rem;--tap-target: 44px;--tap-target-lg: 48px;--field-font: 16px;--focus-ring: 3px solid rgba(47, 94, 234, .35);--transition-fast: .12s ease;--ease-out-3: .18s cubic-bezier(.2, 0, 0, 1);--ease-spring: .24s cubic-bezier(.34, 1.56, .64, 1)}@media(pointer:fine){:root{--tap-target: 38px;--tap-target-lg: 42px;--field-font: 14px}}:root[data-contrast=high]{--ink: #10191f;--muted: #384650;--border: #6b7680;--primary: #1f45c4;--primary-dark: #163296;--accent: #b8431f;--danger: #a83c1f;--focus-ring: 3px solid #1f45c4;--ink-2: #1b2530;--border-soft: #d2d8e2;--surface-sunken: #e4e9f0;--status-ok: #0a5c3e;--status-warn: #744500;--status-risk: #8c2716;--bar-muted: #b9bccb;--bar-active: rgba(255, 255, 255, .22);--bar-line: rgba(255, 255, 255, .28);--shadow-1: 0 0 0 1px rgba(16, 25, 31, .2), 0 1px 3px rgba(16, 25, 31, .1);--shadow: 0 0 0 1px rgba(16, 25, 31, .24), 0 2px 8px rgba(16, 25, 31, .12)}@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){:root{--bg-veil: rgba(255, 255, 255, .8);--veil-blur: blur(16px) saturate(1.4)}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:14px}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:IBM Plex Sans,Segoe UI,system-ui,-apple-system,sans-serif;font-size:1rem;line-height:1.5;overflow-x:hidden}img{max-width:100%}h1,h2,h3{margin:0;line-height:1.25}.app h2{font-size:1.2rem;letter-spacing:-.02em}.app h3{font-size:1rem;letter-spacing:-.01em}a,button,label,select,input,textarea{-webkit-tap-highlight-color:transparent}a,button,select,label{touch-action:manipulation}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.app-header{background:var(--surface);border-bottom:1px solid var(--border);padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}@media(max-width:1023px){.app-header{position:sticky;top:0;z-index:20;background:var(--bg-veil);-webkit-backdrop-filter:var(--veil-blur);backdrop-filter:var(--veil-blur)}}.app-header-inner{max-width:1120px;margin:0 auto;padding:.6rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem 1rem;flex-wrap:wrap;min-height:60px}.header-session{display:flex;align-items:center;gap:.75rem;min-width:0}.header-email{color:var(--muted);font-weight:600;font-size:.9rem;max-width:11rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:.35rem .75rem;min-height:var(--tap-target);padding:.2rem 0;text-decoration:none;color:inherit}.brand:active .brand-mark{background:var(--primary-dark)}.brand-mark{background:var(--primary);color:var(--on-primary);font-size:1.15rem;font-weight:800;letter-spacing:.06em;padding:.25rem .8rem;border-radius:var(--radius-md);transition:background var(--transition-fast)}.brand-subtitle{color:var(--muted);font-weight:600}.app-main{flex:1 1 auto;min-width:0;width:100%;max-width:1180px;margin:0 auto;padding:.55rem 6px 1.25rem;padding-left:max(6px,env(safe-area-inset-left));padding-right:max(6px,env(safe-area-inset-right));padding-bottom:calc(1.25rem + env(safe-area-inset-bottom))}[data-theme=terminal]{--chrome: #12141b;--chrome-line: rgba(255, 255, 255, .1);--chrome-ink: #e9eaf1;--chrome-muted: #8a8ea3;--chrome-hover: rgba(255, 255, 255, .06);--chrome-active: rgba(255, 255, 255, .12);--chrome-active-ink: #ffffff}.appbar{position:sticky;top:0;z-index:40;background:var(--chrome);color:var(--chrome-ink);border-bottom:1px solid var(--chrome-line);padding-top:env(safe-area-inset-top)}.appbar-top{display:flex;align-items:center;gap:.7rem;min-height:3.5rem;padding:.35rem .9rem;padding-left:max(.9rem,env(safe-area-inset-left));padding-right:max(.9rem,env(safe-area-inset-right))}.appbar-brand{display:inline-flex;align-items:center;gap:.5rem;flex:0 0 auto;text-decoration:none;color:inherit}.appbar-mark{background:var(--primary);color:var(--on-primary);font-weight:700;font-size:.82rem;letter-spacing:.05em;padding:.2rem .5rem;border-radius:var(--radius-md)}.appbar-portal{font-family:var(--mono);font-size:.64rem;letter-spacing:.09em;text-transform:uppercase;color:var(--chrome-muted)}.appbar-spacer{flex:1 1 auto}.appbar-actions{display:flex;align-items:center;gap:.3rem;flex:0 0 auto}.appbar-nav{display:flex;gap:.1rem;padding:0 .65rem;overflow-x:auto;scrollbar-width:none}.appbar-nav::-webkit-scrollbar{display:none}.appbar-tab{display:inline-flex;align-items:center;gap:.45rem;min-height:2.6rem;padding:0 .7rem;border-bottom:2px solid transparent;color:var(--chrome-muted);text-decoration:none;font-weight:600;font-size:.85rem;white-space:nowrap}@media(hover:hover){.appbar-tab:hover{color:var(--chrome-ink)}}.appbar-tab[aria-current=page]{color:var(--chrome-active-ink);border-bottom-color:var(--primary)}.appbar-tab:focus-visible{outline:var(--focus-ring);outline-offset:-3px}.appbar-tab-icon{display:inline-flex}.appbar-count{font-family:var(--mono);font-size:.64rem;font-weight:700;padding:.05rem .3rem;border-radius:var(--radius-sm);background:var(--status-warn-soft);color:var(--status-warn)}.appbar-context{display:inline-flex;align-items:center;gap:.5rem;min-height:var(--tap-target);padding:.25rem .6rem;border:1px solid var(--chrome-line);border-radius:var(--radius-sm);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}@media(hover:hover){button.appbar-context:hover{background:var(--chrome-hover)}}.appbar-context:focus-visible{outline:var(--focus-ring);outline-offset:1px}.appbar-context-body{display:flex;flex-direction:column;min-width:0;line-height:1.2}.appbar-context-name{font-weight:650;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appbar-context-meta{font-family:var(--mono);font-size:.62rem;color:var(--chrome-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appbar-context-chev{color:var(--chrome-muted);font-size:.6rem}.appbar-icon{display:inline-grid;place-items:center;width:var(--tap-target);height:var(--tap-target);border:0;border-radius:var(--radius-sm);background:none;color:var(--chrome-muted);cursor:pointer}@media(hover:hover){.appbar-icon:hover{background:var(--chrome-hover);color:var(--chrome-ink)}}.appbar-icon:focus-visible{outline:var(--focus-ring);outline-offset:-2px}.appbar-icon[aria-pressed=true]{background:var(--chrome-active);color:var(--chrome-active-ink)}.appbar-user{display:inline-flex;align-items:center;gap:.45rem;padding-left:.6rem;border-left:1px solid var(--chrome-line)}.appbar-avatar{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--primary-soft);color:var(--primary-dark);font-weight:700;font-size:.72rem}.appbar-username{font-size:.82rem;max-width:9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:700px){.appbar-username,.appbar-portal{display:none}}.appbar-context-wrap{position:relative;display:inline-flex}.room-dropdown{position:absolute;top:calc(100% + 6px);left:0;z-index:60;min-width:min(320px,88vw);margin:0;padding:.35rem;list-style:none;display:grid;gap:.35rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-overlay)}.room-option{display:flex;align-items:center;gap:.6rem;width:100%;min-height:var(--tap-target-lg);padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:inherit;font:inherit;text-align:left;cursor:pointer}@media(hover:hover){.room-option:hover{background:var(--surface-raised)}}.room-option[aria-current=true]{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}.room-option-name{font-weight:650}.room-option-meta{font-family:var(--mono);font-size:.72rem;color:var(--muted)}.room-option[aria-current=true] .room-option-meta{color:var(--primary-dark)}.room-option-mark{margin-left:auto;font-weight:700}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem .9rem;flex-wrap:wrap;padding:.7rem .9rem;border-bottom:1px solid var(--border)}.panel-title{margin:0;font-size:.95rem;font-weight:650}.panel-caption{font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.panel-caption b{color:var(--ink);font-weight:600}.panel-body{padding:.9rem}.stat-strip{display:grid;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;grid-template-columns:repeat(var(--stat-cols, 4),minmax(0,1fr))}.stat-cell{display:flex;flex-direction:column;gap:.15rem;min-height:4.4rem;padding:.6rem .75rem .65rem;background:var(--surface);text-decoration:none;color:inherit}a.stat-cell{min-height:var(--tap-target)}@media(hover:hover){a.stat-cell:hover{background:var(--surface-raised)}}.stat-cell-label{font-family:var(--mono);font-size:.64rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.stat-cell-value{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:600;letter-spacing:-.02em;line-height:1.05;color:var(--ink)}.stat-cell-unit{font-size:.8rem;font-weight:500;color:var(--muted);margin-left:1px}.stat-cell-detail{font-size:.75rem;color:var(--muted)}.stat-cell-detail-ok{color:var(--status-ok)}.stat-cell-detail-warn{color:var(--status-warn)}.stat-cell-detail-risk{color:var(--status-risk)}.stat-cell-action{margin-top:auto;font-size:.75rem;font-weight:650;color:var(--primary-dark)}@media(max-width:640px){.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}.frame-chip{display:inline-flex;align-items:center;gap:.4rem;min-width:0;font-size:.78rem;color:var(--ink-2)}.frame-chip-letter{flex:0 0 auto;display:inline-grid;place-items:center;width:1.25rem;height:1.25rem;border-radius:var(--radius-sm);font-family:var(--mono);font-size:.66rem;font-weight:700;color:var(--on-primary)}.frame-chip-lg .frame-chip-letter{width:1.6rem;height:1.6rem;font-size:.8rem}.frame-chip-a .frame-chip-letter{background:var(--chart-strand-a)}.frame-chip-b .frame-chip-letter{background:var(--chart-strand-b)}.frame-chip-c .frame-chip-letter{background:var(--chart-strand-c)}.frame-chip-d .frame-chip-letter{background:var(--chart-strand-d)}.frame-chip-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.1rem .5rem;border:1px solid transparent;border-radius:var(--radius-pill);font-size:.75rem;font-weight:650;white-space:nowrap}.status-pill-glyph{font-size:.7em;line-height:1}.status-pill-ok{background:var(--status-ok-soft);color:var(--status-ok);border-color:color-mix(in srgb,var(--status-ok) 28%,transparent)}.status-pill-warn{background:var(--status-warn-soft);color:var(--status-warn);border-color:color-mix(in srgb,var(--status-warn) 28%,transparent)}.status-pill-risk{background:var(--status-risk-soft);color:var(--status-risk);border-color:color-mix(in srgb,var(--status-risk) 28%,transparent)}.status-pill-neutral{background:var(--surface-sunken);color:var(--muted);border-color:var(--border)}.inline-pair{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}.meter{display:block;height:6px;min-width:3.5rem;border-radius:3px;background:var(--border);overflow:hidden}.meter-fill{display:block;height:100%;border-radius:3px;background:currentcolor;transition:width var(--transition-fast)}@media(prefers-reduced-motion:reduce){.meter-fill{transition:none}}.cell-name{display:inline-flex;flex-direction:column;gap:.05rem;min-width:0;color:var(--ink);text-decoration:none}@media(hover:hover){.cell-name:hover strong{text-decoration:underline}}.cell-name:focus-visible{outline:var(--focus-ring);outline-offset:2px;border-radius:var(--radius-xs, 4px)}.cell-sub{font-family:var(--mono);font-size:.66rem;letter-spacing:.04em;color:var(--muted)}.button-link{padding:0;border:0;background:none;font:inherit;font-weight:650;color:var(--primary-dark);text-decoration:underline;cursor:pointer}.button-link:focus-visible{outline:var(--focus-ring);outline-offset:2px}.roster-note{margin:0 0 .6rem;font-size:.85rem;color:var(--muted)}.roster-note strong{color:var(--status-warn)}.data-table-wrap{position:relative;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:separate;border-spacing:0}.data-table thead th{position:sticky;top:0;z-index:2;background:var(--surface-raised);border-bottom:1px solid var(--border);padding:.5rem .75rem;font-family:var(--mono);font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:left;white-space:nowrap;vertical-align:middle}.data-table td{padding:.55rem .75rem;border-bottom:1px solid var(--border-soft);font-size:.88rem;vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table .is-num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}.data-table .is-frozen{position:sticky;left:0;z-index:1;background:var(--surface)}.data-table .is-frozen-next{left:2.75rem}.data-table .is-frozen-edge{box-shadow:1px 0 0 var(--border)}.data-table thead .is-frozen{z-index:3;background:var(--surface-raised)}@media(hover:hover){.data-table tbody tr:hover td,.data-table tbody tr:hover .is-frozen{background:var(--surface-raised)}}.data-table tbody tr[aria-selected=true] td,.data-table tbody tr[aria-selected=true] .is-frozen{background:var(--primary-soft)}@media(max-width:600px){.data-table .is-frozen-next{max-width:11rem}}.data-table-sort{display:inline-flex;align-items:center;gap:.3rem;min-height:1.75rem;padding:0;border:0;background:none;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.data-table-sort:focus-visible{outline:var(--focus-ring);outline-offset:2px}.data-table th[aria-sort]{color:var(--primary-dark);background:var(--primary-soft)}.data-table-sort-arrow{font-size:.6rem}.data-table-select{width:2.75rem;padding-right:0}.data-table-check{width:1.15rem;height:1.15rem;accent-color:var(--primary);cursor:pointer}.data-table-empty{padding:2rem 1rem;text-align:center;color:var(--muted)}@media(pointer:coarse){.data-table td,.data-table thead th{padding-top:.7rem;padding-bottom:.7rem}.data-table-check{width:1.35rem;height:1.35rem}}.bulk-bar{position:sticky;bottom:0;z-index:4;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:.6rem;padding:.6rem .8rem;padding-bottom:calc(.6rem + env(safe-area-inset-bottom));background:var(--ink);color:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lift)}.bulk-bar-count{font-family:var(--mono);font-weight:700}.bulk-bar-names{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;color:#ffffffb8}.bulk-bar-actions{display:flex;align-items:center;gap:.4rem;margin-left:auto;flex-wrap:wrap}.filterbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.filterbar-search{position:relative;flex:1 1 16rem;min-width:12rem}.filterbar-search input{width:100%;min-height:var(--tap-target);padding:0 .75rem 0 2.1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--ink);font:inherit;font-size:var(--field-font)}.filterbar-search-icon{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);display:inline-flex;color:var(--muted);pointer-events:none}.filterbar-end{display:flex;align-items:center;gap:.4rem;margin-left:auto;flex-wrap:wrap}.view-toggle{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface)}.view-toggle button{display:inline-flex;align-items:center;gap:.35rem;min-height:var(--tap-target);padding:0 .7rem;border:0;background:none;font:inherit;font-size:.8rem;font-weight:600;color:var(--muted);cursor:pointer}.view-toggle button[aria-pressed=true]{background:var(--primary-soft);color:var(--primary-dark)}.view-toggle button:focus-visible{outline:var(--focus-ring);outline-offset:-2px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1)}.tap-card{text-decoration:none;color:inherit;cursor:pointer;box-shadow:var(--shadow);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}@media(hover:hover){.tap-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift)}}.tap-card:active{transform:scale(.985);box-shadow:var(--shadow-pressed)}.button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:var(--tap-target);min-width:var(--tap-target);padding:.5rem 1.05rem;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);color:var(--ink);font:inherit;font-weight:650;text-decoration:none;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast)}@media(hover:hover){.button:hover{background:var(--primary-soft)}.button.primary:hover{background:var(--primary-dark)}.button.danger:hover{background:var(--accent-soft)}}.button:active{transform:scale(.97);background:var(--primary-soft)}.button.primary{background:var(--primary);border-color:transparent;color:var(--on-primary)}.button.primary:active{background:var(--primary-dark)}.button.danger{color:var(--danger)}.button.danger:active{background:var(--accent-soft)}.button.small{padding:.3rem .9rem;font-size:.9rem}.button.large{min-height:var(--tap-target-lg);padding:.75rem 1.6rem;font-size:1rem}.button:disabled,.button.is-disabled{opacity:.55;cursor:default;pointer-events:none}.chip-row{display:flex;gap:.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:2px 2px .6rem;margin:0 0 1rem;scrollbar-width:thin}.chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:.45rem;min-height:var(--tap-target);padding:.35rem .9rem;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);color:var(--ink);font:inherit;font-size:.95rem;font-weight:650;white-space:nowrap;text-decoration:none;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast)}@media(hover:hover){.chip:hover{background:var(--primary-soft)}}.chip:active{transform:scale(.96);background:var(--primary-soft)}.chip[aria-pressed=true],.chip[aria-current=page]{background:var(--primary);border-color:transparent;color:var(--on-primary)}.chip[aria-pressed=true]:active,.chip[aria-current=page]:active{background:var(--primary-dark)}.chip-count{font-weight:600;font-size:.82rem;opacity:.75;font-variant-numeric:tabular-nums}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem 1rem;flex-wrap:wrap;margin-bottom:var(--space-3)}.toolbar-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.page-heading{margin-bottom:var(--space-3)}.page-intro{color:var(--muted);margin:-.65rem 0 var(--space-4)}.toolbar .page-intro{margin:.15rem 0 0}.section-heading{margin-bottom:.9rem}.back-link{display:inline-flex;align-items:center;gap:.35rem;min-height:var(--tap-target);padding:.2rem .5rem .2rem .1rem;color:var(--primary-dark);font-weight:650;text-decoration:none;margin-bottom:.5rem;border-radius:var(--radius-sm)}@media(hover:hover){.back-link:hover{text-decoration:underline}}.back-link:active{background:var(--primary-soft)}.hint{color:var(--muted)}.card-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--card-min, 230px),1fr));gap:1rem}.profile-header{display:flex;align-items:center;gap:1.25rem;padding:1.4rem 1.5rem;margin-bottom:1.25rem}.profile-header-body h2{margin-bottom:.5rem}.facts{display:flex;flex-wrap:wrap;gap:.4rem 1.75rem;margin:0}.facts dt{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.facts dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}.fact-select{font:inherit;font-size:var(--field-font);font-weight:600;color:inherit;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);min-height:var(--tap-target);margin:calc((var(--tap-target) - 1.5rem) / -2) 0;margin-left:-.4rem;padding:0 .4rem}.fact-select:hover:not(:disabled),.fact-select:focus-visible{border-color:var(--border);background:var(--field-bg)}.fact-select:disabled{opacity:.6}.avatar{width:var(--avatar-size, 60px);height:var(--avatar-size, 60px);border-radius:50%;object-fit:cover;flex-shrink:0}.avatar-initials{display:inline-flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary-dark);font-weight:800;font-size:1.15rem;letter-spacing:.03em}.avatar-large{--avatar-size: 92px;font-size:1.7rem}.avatar-strand-a{background:var(--strand-a-soft);color:var(--strand-a-ink)}.avatar-strand-b{background:var(--strand-b-soft);color:var(--strand-b-ink)}.avatar-strand-c{background:var(--strand-c-soft);color:var(--strand-c-ink)}.avatar-strand-d{background:var(--strand-d-soft);color:var(--strand-d-ink)}.photo-thumb{width:100%;aspect-ratio:1 / 1;object-fit:cover;display:block}.photo-caption{font-weight:650;font-size:.92rem;overflow-wrap:anywhere}.photo-date{color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-tile{display:flex;flex-direction:column;gap:.1rem;padding:1.15rem 1.35rem 1.25rem}.stat-tile-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-sm);margin-bottom:.55rem;background:var(--strand-a-soft);color:var(--strand-a-ink)}.stat-grid>.stat-tile:nth-child(4n+2) .stat-tile-icon{background:var(--strand-b-soft);color:var(--strand-b-ink)}.stat-grid>.stat-tile:nth-child(4n+3) .stat-tile-icon{background:var(--strand-c-soft);color:var(--strand-c-ink)}.stat-grid>.stat-tile:nth-child(4n+4) .stat-tile-icon{background:var(--strand-d-soft);color:var(--strand-d-ink)}.stat-label{color:var(--muted);font-weight:650;font-size:.9rem}.stat-value{font-size:2rem;font-weight:600;line-height:1.15;letter-spacing:-.02em}.stat-hint{margin-top:.35rem;color:var(--primary-dark);font-weight:650;font-size:.88rem}.stat-tile-note{margin-top:.35rem;color:var(--muted);font-weight:600;font-size:.85rem}.stat-tile-meter{position:relative;display:block;height:6px;border-radius:4px;overflow:hidden;margin-top:.55rem}.stat-tile-meter:before{content:"";position:absolute;inset:0;background:currentColor;opacity:.16}.stat-tile-meter-fill{position:absolute;inset:0 auto 0 0;background:currentColor;border-radius:0 4px 4px 0}@media(prefers-reduced-motion:reduce){.stat-tile-meter-fill{transition:none!important;animation:none!important}}@media(max-width:640px){.stat-value{font-size:1.75rem}}.route-loading{min-height:60vh;min-height:60dvh;display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:600;padding:2rem 1.25rem}.error-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem 1rem;flex-wrap:wrap;background:var(--accent-soft);border:1px solid var(--danger-border);border-radius:var(--radius);padding:.85rem 1.15rem;margin-bottom:1.25rem}.error-banner p{margin:0;color:var(--danger);font-weight:600;overflow-wrap:anywhere}.empty-state{border:2px dashed #cdd3da;border-radius:var(--radius);background:var(--surface);text-align:center;padding:2.5rem 1.5rem;margin:1rem 0}.empty-state h3{margin-bottom:.35rem}.empty-state p{color:var(--muted);margin:0 0 1rem}.empty-state p:last-child{margin-bottom:0}.empty-state-glyph{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--primary-soft);color:var(--primary-dark);font-size:1.1rem;margin-bottom:.65rem}.skeleton{display:block;height:1.1em;border-radius:var(--radius-sm);background:var(--border);animation:skeleton-pulse 1.4s ease-in-out infinite}.skeleton-line{height:.95em;border-radius:4px}.skeleton-chip{height:var(--tap-target);width:7.5rem;border-radius:var(--radius-pill);flex:0 0 auto}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.modal-dialog{border:none;padding:0;background:var(--surface);color:var(--ink);border-radius:var(--radius);box-shadow:var(--shadow-overlay);width:min(560px,calc(100% - 2rem));max-height:min(85dvh,calc(100% - 2rem))}.modal-dialog[open]{display:flex;flex-direction:column}.modal-dialog::backdrop{background:var(--overlay-scrim)}body:has(dialog[open]){overflow:hidden}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1.1rem 1.25rem .75rem;flex:0 0 auto}.dialog-head h3{min-width:0;overflow-wrap:anywhere}.dialog-sub{margin:0;padding:0 1.25rem .75rem;flex:0 0 auto}.dialog-search{padding:0 1.25rem .85rem;border-bottom:1px solid var(--border);flex:0 0 auto}.dialog-body{padding:1rem 1.25rem;overflow-y:auto;flex:1 1 auto;min-height:0}.dialog-body>.error-banner{margin-bottom:.9rem}.dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;flex-wrap:wrap;padding:.75rem 1.25rem 1.1rem;border-top:1px solid var(--border);flex:0 0 auto}.dialog-count{margin-right:auto;color:var(--muted);font-weight:650;font-variant-numeric:tabular-nums}.confirm-dialog{width:min(460px,calc(100% - 2rem))}.confirm-dialog .dialog-body p{margin:0 0 .75rem}.confirm-dialog .dialog-body p:last-child{margin-bottom:0}.field{display:flex;flex-direction:column;gap:.3rem}.field>span,.field>.field-label{font-size:.85rem;font-weight:650;color:var(--muted)}.field>.field-hint,.field-hint{font-size:.8rem;font-weight:400;line-height:1.45;color:var(--muted)}.field input,.field select,.field textarea{font:inherit;font-size:var(--field-font);color:inherit;background:var(--field-bg);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:var(--tap-target);padding:.55rem .85rem;width:100%}.field input[type=date]{min-width:0;display:block}.form-card{padding:1.25rem 1.5rem 1.5rem;margin-bottom:1.5rem}.form-card h3{margin-bottom:1rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.9rem 1.25rem}.form-actions{margin-top:1.15rem}.form-error{margin:.85rem 0 0;color:var(--danger);font-weight:600;overflow-wrap:anywhere}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible,.button:focus-visible,.chip:focus-visible,.back-link:focus-visible,.brand:focus-visible,.tap-card:focus-visible{outline:var(--focus-ring);outline-offset:1px}.visually-hidden,.visually-hidden-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(max-width:600px){.app-main{padding:1rem .9rem 2.5rem;padding-left:max(.9rem,env(safe-area-inset-left));padding-right:max(.9rem,env(safe-area-inset-right));padding-bottom:calc(2.5rem + env(safe-area-inset-bottom))}.brand-subtitle{font-size:.85rem}.form-grid{grid-template-columns:1fr}.form-actions .button{width:100%}.profile-header{flex-direction:column;align-items:flex-start}.error-banner{flex-direction:column;align-items:stretch}.error-banner .button{width:100%}.empty-state{padding:2rem 1rem}.dialog-actions .button{flex:1 1 auto}.dialog-count{flex:1 0 100%}}::placeholder{color:var(--muted);opacity:1}.capture-confirm{margin:.75rem 0 0;padding:.6rem .8rem;border-radius:var(--radius);background:var(--status-ok-soft);color:var(--status-ok);font-size:.875rem}.chip-quiet{padding-inline:.6rem;font-size:.8125rem;font-weight:600;color:var(--ink-2)}.chip-quiet[aria-pressed=true]{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}.boundary{display:grid;place-items:center;min-height:60vh;padding:2rem 1.25rem}.boundary-card{max-width:32rem;padding:1.5rem 1.75rem 1.75rem}.boundary-card h1{margin:0 0 .6rem;font-size:1.35rem;line-height:1.25}.boundary-card p{margin:0 0 1.1rem;color:var(--ink-2)}.boundary-actions{display:flex;gap:.6rem;flex-wrap:wrap}
