:root{--bg: #f5f7f5;--surface: #ffffff;--surface-2: #eef3f0;--border: #e1e8e4;--text: #1e2b28;--muted: #6b7a76;--primary: #3f7f6e;--primary-dark: #2f6457;--primary-soft: #e3efea;--warn: #c96b28;--warn-soft: #fbeadb;--ok: #3d8a5a;--ok-soft: #e1f2e6;--danger: #c0423f;--danger-soft: #fbe5e4;--endoderm: #4caf7a;--old-mesoderm: #f0a04b;--new-mesoderm: #e26d6d;--ectoderm: #5b8def;--radius: 18px;--radius-sm: 12px;--shadow: 0 1px 2px rgba(30, 43, 40, .04), 0 6px 20px rgba(30, 43, 40, .05);--tabbar-h: 64px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body{margin:0;background:var(--bg)}body{min-height:100dvh}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}mark{background:#fff1b8;color:inherit;border-radius:3px;padding:0 1px}#root{max-width:520px;margin:0 auto;min-height:100dvh;position:relative}.screen{padding:calc(16px + var(--safe-t)) 16px calc(var(--tabbar-h) + 24px + var(--safe-b))}.screen.no-tabbar{padding-bottom:calc(32px + var(--safe-b))}.topbar{display:flex;align-items:center;gap:8px;min-height:44px;margin-bottom:16px}.topbar h1{font-size:24px;font-weight:700;letter-spacing:-.01em;flex:1}.topbar .back+h1{font-size:20px;line-height:1.2}.topbar .back{width:40px;height:40px;margin-left:-8px;border:0;background:none;border-radius:50%;display:grid;place-items:center}.topbar .back:active{background:var(--surface-2)}.avatar{width:40px;height:40px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;overflow:hidden;flex:none;color:var(--primary-dark)}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.lg{width:64px;height:64px}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;align-items:center;gap:12px}.grow{flex:1;min-width:0}.muted{color:var(--muted)}.small{font-size:13px}.tiny{font-size:12px}.section-title{font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:20px 4px 8px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.card.soft{background:var(--primary-soft);border-color:transparent;box-shadow:none}a.card{display:block}.card.link{transition:transform .12s}.card.link:active{transform:scale(.985)}.card h3{font-size:16px;font-weight:650}.card p+p{margin-top:8px}.card.list-card{display:flex;gap:12px;align-items:center}.list-card .chev{color:var(--muted);flex:none}.quote{font-size:15px;line-height:1.45;color:#34433f}.quote small{display:block;text-align:right;margin-top:8px;color:var(--muted);font-style:italic}.card.hero-link{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#e3efea,#f2f7f4);border:1px solid #d6e6de}.hero-link .icon-circle{width:52px;height:52px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;flex:none}.hero-link h3{font-size:18px}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}.card.tile{display:flex;flex-direction:column;gap:6px;min-height:120px}.tile svg{color:var(--primary)}.tile h3{font-size:15px;margin-top:4px}.tile p{font-size:12.5px;color:var(--muted);line-height:1.35}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:14px 20px;font-weight:600;font-size:16px;background:var(--primary);color:#fff;width:100%;transition:background .15s,transform .1s}.btn:active{transform:scale(.98);background:var(--primary-dark)}.btn:disabled{opacity:.55}.btn.secondary{background:var(--surface);color:var(--primary-dark);border:1px solid var(--border)}.btn.ghost{background:none;color:var(--primary-dark)}.btn.danger{background:var(--danger-soft);color:var(--danger)}.btn.small{padding:9px 14px;font-size:14px;width:auto}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:13px;font-weight:600;color:#3a4845}.input,.select,.textarea{width:100%;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:12px 14px;font-size:16px;outline:none;transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3f7f6e26}.textarea{min-height:96px;resize:vertical}.search-box{position:relative}.search-box svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.search-box .input{padding-left:44px;border-radius:999px}.checkbox{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.4}.checkbox input{width:20px;height:20px;accent-color:var(--primary);flex:none;margin-top:1px}.segmented{display:flex;background:var(--surface-2);border-radius:999px;padding:4px;gap:4px;margin-bottom:16px}.segmented button{flex:1;border:0;background:none;padding:9px 8px;border-radius:999px;font-size:14px;font-weight:600;color:var(--muted)}.segmented button.active{background:var(--surface);color:var(--primary-dark);box-shadow:var(--shadow)}.segmented.filled button.active{background:var(--primary);color:#fff}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips.scroll{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px;padding:0 16px 4px;scrollbar-width:none}.chips.scroll::-webkit-scrollbar{display:none}.chip{flex:none;border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:500;white-space:nowrap}.chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.chip .count{color:var(--muted);margin-left:4px;font-size:12px}.chip.active .count{color:#ffffffbf}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--surface-2);color:#42514d}.badge .dot{width:8px;height:8px;border-radius:50%}.badge.active{background:var(--warn-soft);color:var(--warn)}.badge.healing{background:var(--ok-soft);color:var(--ok)}.badge.done{background:var(--surface-2);color:var(--muted)}.badge.lock{background:#fff4dd;color:#8a6514}.card-head{display:flex;gap:16px;align-items:center;margin-bottom:16px}.organ-circle{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;color:#fff;flex:none}.card-head h1{font-size:22px;line-height:1.2}.block h2{display:flex;align-items:center;gap:8px;font-size:16px;margin-bottom:8px}.block h2 svg{color:var(--primary)}.block h4{font-size:14px;margin:12px 0 4px;color:var(--primary-dark)}.block p,.block li{font-size:15px;line-height:1.5;color:#2f3c39}.block ul{margin:6px 0 0;padding-left:20px}.block li+li{margin-top:4px}.lead{font-size:16px;font-weight:600;line-height:1.4}.block p.small{font-size:13px;line-height:1.45}.block p.muted{color:var(--muted)}.block .chip{flex:0 1 auto;max-width:100%;white-space:normal;text-align:left;line-height:1.3}.block ul+p{margin-top:10px}.scheme-wrap{display:grid;gap:12px;margin:10px 0}.brain-scheme{margin:0 auto;width:100%;max-width:280px}.brain-scheme svg{width:100%;height:auto;display:block}.brain-scheme-sides{display:flex;justify-content:space-between;font-weight:700;color:var(--primary-dark);padding:0 6px;margin-bottom:-6px}.brain-scheme-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 12px;margin-top:8px;font-size:12px;color:var(--muted)}.brain-scheme-legend span{display:inline-flex;align-items:center;gap:5px}.brain-scheme-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}.brain-scheme-legend i.focus-dot{background:#e5383b;box-shadow:0 0 0 3px #e5383b38}.scheme-legend{display:grid;gap:12px;align-content:start}.scheme-focus{border-left:3px solid var(--primary-soft);padding-left:10px}.scheme-focus-label{font-weight:600;font-size:15px;line-height:1.35;margin:2px 0 6px}.scales-rule{display:flex;gap:8px;align-items:flex-start;background:var(--surface-2);border-radius:var(--radius-sm);padding:10px 12px}.block .scales-rule{font-size:14px}.scales-rule svg{flex:none;color:var(--primary);margin-top:2px}.redflags{background:var(--danger-soft);border:1px solid #f3c9c7}.redflags h2,.redflags h2 svg{color:var(--danger)}.disclaimer{font-size:13px;line-height:1.45;color:#4a5956;background:var(--surface-2);border-radius:var(--radius-sm);padding:12px 14px}.timeline{position:relative;padding-left:26px}.timeline:before{content:"";position:absolute;left:8px;top:8px;bottom:8px;width:2px;background:var(--border)}.tl-item{position:relative;padding:4px 0 16px;border-bottom:1px solid var(--border);margin-bottom:14px;display:block}.tl-item:last-child{border-bottom:0}.tl-item:before{content:"";position:absolute;left:-24px;top:8px;width:14px;height:14px;border-radius:50%;background:var(--dot, #8aa6c1);border:3px solid var(--bg)}.tl-item h3{font-size:16px;color:var(--primary-dark);margin:2px 0}.fab{position:fixed;right:max(16px,calc(50% - 244px));bottom:calc(var(--tabbar-h) + 16px + var(--safe-b));width:56px;height:56px;border-radius:50%;border:0;background:var(--primary);color:#fff;display:grid;place-items:center;box-shadow:0 8px 24px #3f7f6e59;z-index:5}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:520px;height:calc(var(--tabbar-h) + var(--safe-b));padding-bottom:var(--safe-b);background:#fffffff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);display:flex;z-index:10}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;color:var(--muted);font-weight:500}.tabbar a.active{color:var(--primary);font-weight:700}.welcome{min-height:100dvh;display:flex;flex-direction:column;position:relative;overflow:hidden;color:#24413a}.welcome .art{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.welcome .art svg{width:100%;height:100%;display:block}.welcome .content{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:calc(72px + var(--safe-t)) 24px calc(32px + var(--safe-b))}.welcome .logo{color:var(--primary)}.welcome h1{font-size:56px;font-weight:700;color:#2b5d52;letter-spacing:.02em;margin-top:8px}.welcome .sub{font-size:21px;font-weight:600;color:#2f574d;line-height:1.25;margin-top:4px}.welcome .motto{margin-top:20px;font-size:15px;color:#3d5a53;line-height:1.5}.welcome .actions{margin-top:auto;width:100%;display:flex;flex-direction:column;gap:12px}.welcome .actions .btn{background:#3f7f6eeb;box-shadow:0 6px 20px #0000002e}.welcome .actions .btn.ghost{background:none;box-shadow:none;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.35)}.bodymap{display:grid;grid-template-columns:1fr;gap:12px}.bodymap svg{width:100%;max-height:460px}.bodymap .zone{cursor:pointer;transition:opacity .15s,filter .15s}.bodymap .zone:hover{filter:brightness(1.06)}.bodymap.has-selection .zone:not(.selected){opacity:.35}.figure{position:relative;width:100%;max-width:380px;margin:4px auto 0;aspect-ratio:507 / 839;-webkit-user-select:none;user-select:none}.figure img{width:100%;height:100%;display:block}.spot{position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;border:0;padding:0;background:none;cursor:pointer;display:grid;place-items:center;transition:opacity .15s}.spot span{width:13px;height:13px;border-radius:50%;background:var(--c);border:2px solid #fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 30%,transparent),0 1px 3px #00000059;transition:transform .15s}.spot:hover span{transform:scale(1.2)}.spot.selected span{transform:scale(1.45);box-shadow:0 0 0 6px color-mix(in srgb,var(--c) 35%,transparent),0 1px 4px #0006}.spot.dim{opacity:.22}.spot-label{position:absolute;transform:translate(14px,-50%);background:#182622e0;color:#fff;font-size:12px;font-weight:600;padding:4px 9px;border-radius:8px;white-space:nowrap;pointer-events:none}.spot-label.left{transform:translate(calc(-100% - 14px),-50%)}.theme-chips{margin-bottom:8px}.theme-chips .chip{font-size:13px;padding:7px 12px}.theme-card{border-top:5px solid var(--c)}.theme-card ul{margin:4px 0 0;padding-left:18px;line-height:1.5}.theme-sub{font-size:13px;font-weight:700;color:var(--c, var(--primary));margin-top:12px}.map-lists.single{columns:1}.legend{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.legend-item{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.3}.legend-item .dot{width:12px;height:12px;border-radius:50%;margin-top:3px;flex:none}.paywall{text-align:center;padding:24px 16px}.paywall .lock-icon{width:56px;height:56px;border-radius:50%;margin:0 auto 12px;background:#fff4dd;color:#8a6514;display:grid;place-items:center}.banner{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:var(--radius-sm);background:#fff8e6;border:1px solid #f3e2b3;font-size:14px}.banner.info{background:var(--primary-soft);border-color:#cfe3da}.plan{display:flex;align-items:center;gap:12px;border:2px solid var(--border);border-radius:var(--radius);padding:14px 16px;background:var(--surface);text-align:left;width:100%}.plan.active{border-color:var(--primary);background:#f3f9f6}.plan .price{font-size:20px;font-weight:700}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#141e1c73;z-index:20;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--surface);width:100%;max-width:520px;border-radius:24px 24px 0 0;padding:20px 16px calc(20px + var(--safe-b));max-height:85dvh;overflow:auto}.sheet h2{font-size:19px;margin-bottom:10px}.menu{padding:4px 0}.menu a,.menu button{display:flex;align-items:center;gap:14px;padding:13px 16px;width:100%;border:0;background:none;font-size:15px;text-align:left}.menu a+a,.menu a+button,.menu button+a,.menu button+button{border-top:1px solid var(--border)}.menu svg{color:#4a5956;flex:none}.stats{display:grid;grid-template-columns:repeat(3,1fr);text-align:center}.stats div+div{border-left:1px solid var(--border)}.stats b{display:block;font-size:22px}.stats span{font-size:12px;color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:32px 16px;font-size:15px}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--primary-soft);border-top-color:var(--primary);animation:spin .8s linear infinite;margin:40px auto}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;left:50%;bottom:calc(var(--tabbar-h) + 24px + var(--safe-b));transform:translate(-50%);background:#24332f;color:#fff;padding:10px 16px;border-radius:999px;font-size:14px;z-index:30}.prose p{font-size:15px;line-height:1.6;margin-bottom:12px;color:#2f3c39}.prose h2{font-size:17px;margin:18px 0 8px}.sidenav,.welcome-features{display:none}.results,.home-top,.card-blocks{display:flex;flex-direction:column;gap:12px}.home-bottom .section-title{margin-top:12px}@media (min-width: 960px){:root{--side-w: 248px}#root{max-width:none}.tabbar{display:none}.sidenav{display:flex;flex-direction:column;gap:2px;position:fixed;inset:0 auto 0 0;width:var(--side-w);padding:24px 14px;background:var(--surface);border-right:1px solid var(--border);z-index:10;overflow-y:auto}.sidenav-brand{display:flex;align-items:center;gap:10px;padding:4px 10px 24px;color:var(--primary)}.sidenav-brand b{display:block;font-size:20px;line-height:1.1;color:var(--primary-dark)}.sidenav-brand small{font-size:12.5px;color:var(--muted)}.sidenav-link{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;font-size:15px;font-weight:500;color:#3a4845}.sidenav-link:hover{background:var(--surface-2)}.sidenav-link.active{background:var(--primary-soft);color:var(--primary-dark);font-weight:650}.sidenav-status{margin-top:auto;padding:10px;border-radius:12px;background:var(--primary-soft);color:var(--primary-dark);font-size:13px;font-weight:600;text-align:center}.screen,.screen.no-tabbar{--w: 1120px;max-width:var(--w);padding:36px 48px 64px;margin-left:calc(var(--side-w) + max(0px,(100vw - var(--side-w) - var(--w)) / 2))}.screen.narrow{--w: 780px}.screen.standalone{margin-left:auto;margin-right:auto}.topbar{margin-bottom:24px}.topbar h1{font-size:30px}.topbar .back+h1{font-size:26px}.card.link:hover{border-color:#cfe0d8;box-shadow:0 2px 4px #1e2b280d,0 10px 28px #1e2b2814}.card.link:active{transform:none}.chips.scroll{flex-wrap:wrap;overflow:visible;margin:0;padding:0}.home-top{display:grid;grid-template-columns:1fr 1fr;gap:16px}.home-top .card.soft{display:flex;align-items:center}.tiles{grid-template-columns:repeat(4,1fr);gap:16px}.card.tile{min-height:160px;padding:20px}.home-bottom{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:8px}.results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.map-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:32px;align-items:start}.map-figure{position:sticky;top:24px}.bodymap svg{max-height:560px}.map-lists{columns:2;column-gap:16px}.map-lists>div{break-inside:avoid;padding-bottom:4px}.map-lists .section-title{margin-top:0;padding-top:4px}.map-lists.single{columns:1}.map-lists.single .results{grid-template-columns:1fr}.legend{grid-template-columns:repeat(4,1fr)}.card-head .organ-circle{width:88px;height:88px}.card-head h1{font-size:28px}.card-blocks{display:block;columns:2;column-gap:16px}.card-blocks>.card{break-inside:avoid;margin-bottom:16px}.card-action{width:auto;align-self:flex-start;padding:14px 28px}.fab{right:48px;bottom:40px}.toast{bottom:40px;left:calc(50% + var(--side-w) / 2)}.sheet-backdrop{align-items:center}.sheet{max-width:480px;border-radius:24px}.welcome .content{flex:none;min-height:70vh;padding-top:96px}.welcome .actions{margin-top:36px;max-width:340px}.welcome .actions .btn.ghost{color:var(--primary-dark);text-shadow:none;background:#ffffffb3}.welcome-features{display:block;position:relative;z-index:1;width:min(1100px,calc(100% - 64px));margin:0 auto 48px;padding:28px 32px;border-radius:24px;background:#ffffffed;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow)}.welcome-features h2{font-size:18px;color:var(--primary-dark);margin-bottom:20px}.features-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;text-align:center}.feature{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:13.5px}.feature b{font-size:14px}.feature span{color:var(--muted);line-height:1.35}.feature-icon{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;margin-bottom:4px;background:var(--primary-soft);color:var(--primary)}}.screen.admin{--w: 1280px}.admin-tabs{display:flex;gap:4px;overflow-x:auto;margin:-8px -16px 16px;padding:0 16px 2px;scrollbar-width:none;border-bottom:1px solid var(--border)}.admin-tabs::-webkit-scrollbar{display:none}.admin-tabs a{flex:none;padding:10px 14px;font-size:14px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.admin-tabs a.active{color:var(--primary-dark);border-bottom-color:var(--primary)}.dashboard{transition:opacity .2s}.dashboard.refreshing .chart,.dashboard.refreshing .stat-value{opacity:.6}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card.stat{display:flex;flex-direction:column;gap:4px;padding:14px 16px}.stat-label{font-size:13px;color:var(--muted)}.stat-value{font-size:26px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.stat-sub{font-size:12px;color:var(--muted);line-height:1.35}.admin-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.card h3{font-size:16px}.health{display:flex;flex-direction:column}.health-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--border)}.health-row:first-child{border-top:0}.health-name{font-weight:600;font-size:14.5px}.status-pill{width:26px;height:26px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:800;color:#fff}.status-pill.ok{background:#0ca30c}.status-pill.warning{background:#fab219;color:#3a2a00}.status-pill.critical{background:#d03b3b}.status-pill.off{background:#b9c3c0}.status-label{font-size:12px;font-weight:600;margin-left:6px}.status-label.ok{color:#0a7d0a}.status-label.warning{color:#8a5d00}.status-label.critical{color:#b42f2f}.status-label.off{color:var(--muted)}.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0;font-size:14px}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.meter-head{display:flex;justify-content:space-between;font-size:14px;margin-bottom:6px}.meter-head b{font-variant-numeric:tabular-nums}.meter-track{height:10px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin-bottom:4px}.meter-fill{height:100%;border-radius:999px;transition:width .4s}.meter-fill.ok{background:var(--primary)}.meter-fill.warning{background:#fab219}.meter-fill.critical{background:#d03b3b}.chart{position:relative}.chart svg{width:100%;height:auto;display:block;overflow:visible;touch-action:pan-y}.chart-grid{stroke:var(--border);stroke-width:1}.chart-baseline{stroke:#b9c7c2;stroke-width:1}.chart-axis{fill:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.chart-crosshair{stroke:#6b7a76;stroke-width:1;stroke-dasharray:3 3}.chart-bar rect:focus{outline:none}.chart-bar.hover path{filter:brightness(1.15)}.chart-tip{position:absolute;transform:translate(-50%,-100%);pointer-events:none;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;padding:6px 10px;display:flex;flex-direction:column;align-items:center;white-space:nowrap;z-index:2}.chart-tip b{font-size:14px;font-variant-numeric:tabular-nums}.chart-tip span{font-size:12px;color:var(--muted)}.chart-table{margin-top:6px;font-size:13px}.chart-table summary{cursor:pointer;color:var(--muted);font-size:12px}.chart-table table{width:100%;border-collapse:collapse;margin-top:6px}.chart-table td,.chart-table th{padding:3px 6px;border-bottom:1px solid var(--border);text-align:left}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap}.admin-table td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.admin-table tr:last-child td{border-bottom:0}.admin-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.admin-table.compact th,.admin-table.compact td{padding:6px 4px}.admin-table code,.created-links code{font-size:12.5px;background:var(--surface-2);padding:2px 6px;border-radius:6px;overflow-wrap:anywhere}.user-cell{display:flex;flex-direction:column;gap:2px}.users-table tbody tr:hover{background:#f7faf8}.badge.banned{background:var(--danger-soft);color:var(--danger)}.badge.admin{background:#e8e6f7;color:#4b3f9e}.stats-mini{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.stats-mini b{display:block;font-size:18px}.stats-mini span{font-size:12px;color:var(--muted)}.admin-actions{display:flex;flex-wrap:wrap;gap:8px}.toggle-card{display:flex;gap:14px;align-items:flex-start;cursor:pointer}.toggle-card input{width:22px;height:22px;accent-color:var(--primary);flex:none;margin-top:2px}.toggle-card b{display:block;margin-bottom:4px}.toggle-card .small{display:block;line-height:1.45}.form-grid{display:grid;grid-template-columns:1fr;gap:12px}.created-links{display:flex;flex-direction:column;gap:6px;padding-top:10px;border-top:1px solid var(--border)}@media (max-width: 640px){.users-table th:nth-child(4),.users-table td:nth-child(4){display:none}.admin-table th,.admin-table td{padding:8px}}@media (min-width: 960px){.admin-tabs{margin:-8px 0 20px;padding:0}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.stats-mini,.form-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width: 1280px){.stats-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}.login-methods{width:100%;display:flex;flex-direction:column;gap:12px}.divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.email-form{text-align:left}.code-input{text-align:center;font-size:26px;letter-spacing:10px;font-variant-numeric:tabular-nums}.form-error{color:var(--danger)}.login-method{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--border)}.login-method:first-of-type{border-top:0}.login-method .grow{display:flex;flex-direction:column;gap:2px}.admin-add{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:8px;align-items:center}@media (max-width: 480px){.admin-add{grid-template-columns:1fr}}.password-box .input{padding-right:48px}.password-box .eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;background:none;border-radius:50%;display:grid;place-items:center;color:var(--muted)}.password-box .eye svg{position:static;transform:none}.email-auth{width:100%}.email-auth .segmented{margin-bottom:12px}.card.knowledge-cta{display:flex;align-items:center;gap:14px;margin-bottom:16px;background:linear-gradient(135deg,#e3efea,#f2f7f4);border-color:#d6e6de}.knowledge-cta .icon-circle{width:48px;height:48px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;flex:none}.knowledge .chat{display:flex;flex-direction:column;gap:14px;padding-bottom:140px}.exchange{display:flex;flex-direction:column;gap:8px}.bubble{max-width:88%;padding:12px 14px;border-radius:18px;font-size:15px;line-height:1.5}.bubble.question{align-self:flex-end;background:var(--primary);color:#fff;border-bottom-right-radius:6px;white-space:pre-line}.bubble.answer{align-self:flex-start;background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:6px;box-shadow:var(--shadow)}.answer-topic{font-size:12px;font-weight:700;color:var(--primary-dark);text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px}.answer-text{white-space:pre-line;color:#2f3c39}.answer-more{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.bubble.typing{display:flex;gap:5px;padding:16px}.bubble.typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:blink 1.2s infinite}.bubble.typing span:nth-child(2){animation-delay:.2s}.bubble.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.chat-input{position:fixed;left:50%;transform:translate(-50%);bottom:calc(28px + var(--safe-b));width:calc(100% - 32px);max-width:488px;display:flex;gap:8px;align-items:flex-end;background:var(--bg);padding-top:8px;z-index:6}.chat-input .textarea{min-height:48px;max-height:140px;border-radius:24px;padding:12px 16px;resize:none}.chat-input .send{width:48px;height:48px;flex:none;border:0;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center}.chat-input .send:disabled{opacity:.5}.chat-note{position:fixed;left:50%;transform:translate(-50%);bottom:calc(6px + var(--safe-b));width:calc(100% - 32px);max-width:488px;text-align:center;z-index:6;background:var(--bg)}@media (min-width: 960px){.chat-input,.chat-note{left:calc(var(--side-w) + (100vw - var(--side-w)) / 2);max-width:684px}}.tool-card h3{font-size:16px}.tool-toggle{display:flex;align-items:center;width:100%;border:0;background:none;padding:0;text-align:left;color:inherit;font:inherit;cursor:pointer}.dhs-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--border)}.segmented.mini{margin:0;flex:none;padding:3px}.segmented.mini button{padding:6px 12px;font-size:13px}.verdict{margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--surface-2);line-height:1.5}.verdict.yes{background:#fdeceb;color:#8a2d2d}.verdict.no{background:#e7f3ec;color:#2d6a4c}.chip.rail{display:inline-flex;align-items:center;gap:6px;padding:6px 8px 6px 12px}.chip.rail button{border:0;background:none;padding:0;display:grid;place-items:center;color:var(--muted);cursor:pointer}.chip.rail.repeat{border-color:var(--warn);background:var(--warn-soft)}.chip.hint-chip{font-size:12px;padding:5px 10px;color:var(--muted)}.rail-repeat{padding:8px 0;border-top:1px solid var(--border)}.rail-repeat a{color:var(--primary)}.card.consult-cta{display:flex;align-items:center;gap:14px;margin-top:16px;background:linear-gradient(135deg,#e8eef8,#f3f6fb);border-color:#dbe4f2}.consult-cta .icon-circle,.specialist-card .icon-circle{width:44px;height:44px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;flex:none}.specialist-card .match-reason{margin-top:8px;color:var(--primary-dark);font-weight:600}.chip.kind-chip{font-size:12px;padding:4px 10px}.clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer}.specialist-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px}.specialist-meta span{display:inline-flex;align-items:center;gap:4px}.docs-line{display:flex;gap:6px;align-items:flex-start;margin-top:8px;line-height:1.4}.pick-list{max-height:200px;overflow-y:auto;border:1px solid var(--border);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px;font-weight:400}.badge.status-new,.badge.status-pending{background:var(--warn-soft);color:var(--warn)}.badge.status-accepted,.badge.status-approved{background:#e3f2e9;color:#2d6a4c}.badge.status-declined,.badge.status-rejected,.badge.status-hidden{background:#fdeceb;color:#8a2d2d}.status-card.status-approved{background:#e7f3ec}.status-card.status-rejected,.status-card.status-hidden{background:#fdeceb}.doc-row{gap:10px;padding:10px 12px}.doc-row a{color:inherit;text-decoration:none}.icon-btn{border:0;background:none;padding:6px;border-radius:8px;color:var(--muted);cursor:pointer}.icon-btn:hover{background:var(--surface-2);color:var(--danger)}.shared-event{padding:8px 0;border-top:1px solid var(--border)}.welcome .specialist-link,.specialist-link{display:block;text-align:center;margin-top:4px;color:inherit;opacity:.85}.handedness-row{display:flex;align-items:center;gap:14px;border:1px solid var(--border);background:var(--surface)}.handedness-row .icon-circle{width:44px;height:44px;border-radius:50%;background:var(--surface-2);color:var(--primary);display:grid;place-items:center;flex:none}.notify-row{gap:14px;align-items:center}.notify-row .icon-circle{width:44px;height:44px;border-radius:50%;background:var(--surface-2);color:var(--primary);display:grid;place-items:center;flex:none}.link-btn{border:0;background:none;padding:0;margin-top:6px;color:var(--primary);font-weight:600;cursor:pointer}.switch{position:relative;width:46px;height:28px;flex:none}.switch input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;margin:0;cursor:pointer;z-index:1}.switch span{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:#cfd8d4;transition:background .15s}.switch span:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .15s}.switch input:checked+span{background:var(--primary)}.switch input:checked+span:after{transform:translate(18px)}.switch input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}.push-prompt{gap:10px;align-items:center}.practice-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media (min-width: 640px){.practice-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}.practice-stat{display:flex;flex-direction:column;gap:2px;padding:12px 14px}.practice-stat b{font-size:20px;font-variant-numeric:tabular-nums}.practice-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.practice-filters .field:first-child,.practice-filters .btn{grid-column:1 / -1}.check-row{display:flex;align-items:center;gap:8px;font-size:14px}.check-row input,.task-row input{width:18px;height:18px;accent-color:var(--primary);flex:none}.task-row{display:flex;align-items:center;gap:12px;padding:12px 14px}.task-row.done .small{text-decoration:line-through;color:var(--muted)}.upcoming-row{padding:8px 0;border-top:1px solid var(--border)}.clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.note-card .clamp-3{cursor:auto}.score-row{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:4px}.score-btn{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:8px 0;font-size:14px;font-weight:600;color:#42514d;font-variant-numeric:tabular-nums}.score-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}button.badge{border:0;cursor:pointer}button.badge:disabled{cursor:default}
