@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+TC:wght@300;400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&family=Noto+Sans+TC:wght@300;400;500;600;700&family=Caveat:wght@400;500;600&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font-body:"IBM Plex Sans TC", "Noto Sans TC", -apple-system, BlinkMacSystemFont, sans-serif;--font-display:"IBM Plex Sans TC", "Noto Sans TC", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--font-family:var(--font-body);--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--radius-card:14px;--radius-btn:10px;--radius-sm:8px;--radius-md:12px;--radius-lg:14px;--radius-xl:18px;--radius-full:9999px;--font-xs:.75rem;--font-sm:.8125rem;--font-base:.9375rem;--font-lg:1.125rem;--font-xl:1.375rem;--font-2xl:1.75rem;--font-3xl:2.25rem;--nav-height:72px;--max-width:430px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s cubic-bezier(.4, 0, .2, 1)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root,[data-theme=light]{--bg:oklch(98.5% .004 240);--surface:oklch(100% 0 0);--surface-2:oklch(97.5% .005 240);--surface-sunk:oklch(96% .006 240);--ink:oklch(22% .02 255);--ink-2:oklch(42% .015 255);--ink-3:oklch(58% .012 255);--line:oklch(90% .008 255);--line-2:oklch(82% .01 255);--accent:oklch(52% .15 258);--accent-soft:oklch(94% .03 258);--accent-ink:oklch(38% .14 258);--ok:oklch(55% .12 160);--ok-soft:oklch(95% .03 160);--warn:oklch(62% .14 65);--warn-soft:oklch(96% .04 65);--danger:oklch(55% .18 25);--danger-soft:oklch(95% .04 25);--nav-bg:oklch(100% 0 0/.85);--chart-grid:oklch(90% .008 255);--shadow-card:0 1px 0 oklch(90% .008 255);--bg-primary:var(--bg);--bg-secondary:var(--surface-2);--bg-card:var(--surface);--bg-card-hover:var(--surface-2);--bg-glass:var(--surface-sunk);--bg-input:var(--surface-sunk);--bg-nav:var(--nav-bg);--text-primary:var(--ink);--text-secondary:var(--ink-2);--text-muted:var(--ink-3);--border:var(--line);--border-active:var(--accent);--accent-dim:var(--accent-soft);--accent-glow:var(--accent-soft);--cyan:var(--accent);--cyan-dim:var(--accent-soft);--warning:var(--warn);--warning-dim:var(--warn-soft);--success:var(--ok);--success-dim:var(--ok-soft);--danger-dim:var(--danger-soft);--danger-glow:var(--danger-soft);--shadow-glow:0 0 12px var(--accent-soft)}[data-theme=dark]{--bg:oklch(17% .01 255);--surface:oklch(21% .012 255);--surface-2:oklch(24% .013 255);--surface-sunk:oklch(19% .011 255);--ink:oklch(96% .005 255);--ink-2:oklch(72% .01 255);--ink-3:oklch(55% .01 255);--line:oklch(30% .012 255);--line-2:oklch(38% .014 255);--accent:oklch(72% .14 258);--accent-soft:oklch(30% .06 258);--accent-ink:oklch(82% .12 258);--ok:oklch(72% .14 160);--ok-soft:oklch(30% .05 160);--warn:oklch(76% .14 70);--warn-soft:oklch(32% .06 65);--danger:oklch(70% .18 25);--danger-soft:oklch(32% .07 25);--nav-bg:oklch(19% .011 255/.85);--chart-grid:oklch(30% .012 255);--shadow-card:0 1px 0 oklch(28% .012 255)}body{font-family:var(--font-body);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-feature-settings:"palt";line-height:1.6;overflow-x:hidden}#root{max-width:var(--max-width);background:var(--bg);min-height:100dvh;padding-top:var(--safe-top);margin:0 auto;position:relative}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page,.view{padding:4px 20px calc(var(--nav-height) + 12px + var(--safe-bottom));min-height:calc(100dvh - var(--safe-top));animation:.3s fadeIn}.page-head{padding:12px 0 18px}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px;font-weight:600;font-family:var(--font-mono);margin-bottom:8px}.eyebrow.small{margin-bottom:8px;font-size:9px}.page-title{font-family:var(--font-display);letter-spacing:-.015em;color:var(--ink);background:0 0;-webkit-background-clip:initial;-webkit-text-fill-color:currentColor;background-clip:initial;margin:0 0 4px;font-size:26px;font-weight:500;line-height:1.15}.page-sub,.page-subtitle{color:var(--ink-2);margin:0 0 var(--space-xl);font-size:13.5px}.topbar{justify-content:space-between;align-items:center;padding:8px 0 6px;display:flex}.brand{align-items:center;gap:10px;display:flex}.brand-mark{width:34px;height:34px;font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--line);background:#fff;border-radius:10px;place-items:center;padding:2px;font-size:12.5px;font-weight:600;display:grid;overflow:hidden}.brand-mark img{object-fit:contain;width:100%;height:100%;display:block}.brand-text{line-height:1.15}.brand-text .hospital{color:var(--ink-3);letter-spacing:.12em;text-transform:uppercase;font-size:10.5px;font-family:var(--font-mono)}.brand-text .system{color:var(--ink);font-size:14px;font-weight:600}.icon-btn{border:1px solid var(--line);width:36px;height:36px;color:var(--ink-2);cursor:pointer;background:0 0;border-radius:10px;place-items:center;transition:background .16s,border-color .16s;display:grid}.icon-btn:hover,.icon-btn:active{background:var(--surface-2);border-color:var(--line-2);color:var(--ink)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card);margin-bottom:12px;padding:16px 18px;animation:.4s backwards slideUp}.card.sunk{background:var(--surface-sunk)}.card-header,.card-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.card-head-left{align-items:center;gap:10px;display:flex}.card-title{color:var(--ink);letter-spacing:-.005em;font-size:14px;font-weight:600}.card-kicker{color:var(--ink-3);font-size:10.5px;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:2px}.card-icon{background:var(--accent-soft);width:28px;height:28px;color:var(--accent-ink);border-radius:8px;flex:none;place-items:center;font-size:1rem;display:grid}.card-icon.accent,.card-icon.cyan{background:var(--accent-soft);color:var(--accent-ink)}.card-icon.ok,.card-icon.success{background:var(--ok-soft);color:var(--ok)}.card-icon.warn,.card-icon.warning{background:var(--warn-soft);color:var(--warn)}.card-icon.danger{background:var(--danger-soft);color:var(--danger)}.card-value{font-family:var(--font-display);font-size:var(--font-3xl);color:var(--ink);font-variant-numeric:tabular-nums;font-weight:300;line-height:1.2}.btn{appearance:none;border-radius:var(--radius-btn);letter-spacing:-.005em;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;width:100%;padding:13px 16px;font-family:inherit;font-size:14px;font-weight:600;transition:transform .12s,background .16s,border-color .16s,opacity .16s;display:inline-flex}.btn:active{transform:translateY(1px)scale(.995)}.btn-primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}[data-theme=dark] .btn-primary{background:var(--accent);color:var(--surface-sunk);border-color:var(--accent)}.btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line-2)}.btn-secondary:hover,.btn-secondary:active{background:var(--surface-2)}.btn-ghost{color:var(--ink-2);border:1px solid var(--line);background:0 0}.btn-ghost:hover{background:var(--surface-2);color:var(--ink)}.btn-danger{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger)}.btn-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.badge{letter-spacing:.02em;font-size:11px;font-weight:600;font-family:var(--font-mono);border-radius:999px;align-items:center;gap:5px;padding:3px 9px;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge.pending{background:var(--warn-soft);color:var(--warn)}.badge.done,.badge.completed{background:var(--ok-soft);color:var(--ok)}.badge.alert{background:var(--danger-soft);color:var(--danger)}.badge.info{background:var(--accent-soft);color:var(--accent-ink)}.status-badge{font-size:11px;font-weight:600;font-family:var(--font-mono);border-radius:999px;align-items:center;gap:4px;padding:3px 9px;display:inline-flex}.status-badge.completed{background:var(--ok-soft);color:var(--ok)}.status-badge.pending{background:var(--warn-soft);color:var(--warn)}.bottom-nav{width:100%;max-width:var(--max-width);background:var(--nav-bg);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--line);padding:10px 10px calc(14px + var(--safe-bottom));z-index:100;justify-content:space-around;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-item{color:var(--ink-3);letter-spacing:.02em;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-direction:column;align-items:center;gap:3px;min-width:52px;padding:4px 8px;font-family:inherit;font-size:10.5px;font-weight:500;text-decoration:none;transition:color .15s;display:flex}.nav-item svg{width:22px;height:22px}.nav-item.active{color:var(--accent-ink)}[data-theme=dark] .nav-item.active{color:var(--accent)}.nav-item.active:before{display:none}.nav-icon{font-size:1.375rem;line-height:1}.sym-list{flex-direction:column;display:flex}.sym-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:11px 0;font-size:13.5px;display:flex}.sym-row:first-child{border-top:none}.sym-name{color:var(--ink-2)}.sym-val{font-family:var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums;font-weight:500}.sym-val.ok{color:var(--ok)}.sym-val.warn{color:var(--warn)}.sym-val.danger{color:var(--danger)}.sym-val .unit{color:var(--ink-3);margin-left:2px;font-weight:400}.symptom-row{justify-content:space-between;align-items:center;padding:11px 0;font-size:13.5px;display:flex}.symptom-row+.symptom-row{border-top:1px solid var(--line)}.symptom-name{color:var(--ink-2)}.symptom-value{color:var(--ink);font-weight:500;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.symptom-value.danger{color:var(--danger)}.symptom-value.warning{color:var(--warn)}.symptom-value.success{color:var(--ok)}.stat-grid,.stats-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card);text-align:left;padding:14px 16px!important}.stat-card[data-tone=danger]{border-color:var(--danger);background:var(--danger-soft)}.stat-card[data-tone=danger] .stat-val,.stat-card[data-tone=danger] .stat-value{color:var(--danger)}.stat-lbl,.stat-label{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px;font-family:var(--font-mono);margin-bottom:6px;font-weight:600}.stat-val,.stat-value{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;font-size:30px;font-weight:300;line-height:1}.stat-val .sub{color:var(--ink-3);margin-left:2px;font-size:14px;font-weight:400}.stat-foot,.stat-trend,.stat-sub{color:var(--ink-3);font-size:11.5px;font-family:var(--font-mono);margin-top:6px}.stat-foot.ok{color:var(--ok)}.stat-foot.warn{color:var(--warn)}.stat-foot.danger{color:var(--danger)}.stat-value.accent{color:var(--accent)}.pod-hero{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card);margin:6px 0 18px;padding:22px 22px 20px;position:relative;overflow:hidden}.pod-hero-row{justify-content:space-between;align-items:flex-end;gap:18px;display:flex}.pod-number{font-family:var(--font-display);letter-spacing:-.04em;color:var(--ink);font-variant-numeric:tabular-nums;font-size:88px;font-weight:200;line-height:.9}.pod-meta{text-align:right}.pod-meta-lbl{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px;font-family:var(--font-mono);margin-bottom:4px;font-weight:600}.pod-meta-val{color:var(--ink-2);font-size:13px;font-family:var(--font-mono)}.pod-caption{border-top:1px solid var(--line);color:var(--ink-2);align-items:center;gap:8px;margin-top:14px;padding-top:14px;font-size:12.5px;display:flex}.pod-phase-tag{background:var(--accent-soft);color:var(--accent-ink);font-family:var(--font-mono);letter-spacing:.04em;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:10.5px;font-weight:600;display:inline-flex}.pod-ruler{grid-template-columns:repeat(14,1fr);gap:3px;height:8px;margin-top:14px;display:grid}.pod-ruler span{background:var(--line);border-radius:2px}.pod-ruler span.filled{background:var(--accent)}.pod-ruler span.today{background:var(--ink)}.pain-hero{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card);margin-bottom:18px;padding:20px 20px 16px}.pain-display{justify-content:space-between;align-items:baseline;margin-bottom:18px;display:flex}.pain-num{font-family:var(--font-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:76px;font-weight:200;line-height:.9}.pain-num .of{color:var(--ink-3);margin-left:4px;font-size:22px;font-weight:400}.pain-word{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);text-align:right;font-size:11px;font-weight:600;line-height:1.4}.pain-word .lvl{color:var(--ink);font-size:13px;font-family:var(--font-body);letter-spacing:-.005em;text-transform:none;margin-top:3px;font-weight:600;display:block}.slider-wrap{padding:10px 0 4px;position:relative}.slider-track-bg{background:var(--surface-sunk);border:1px solid var(--line);border-radius:3px;height:6px;position:relative;overflow:hidden}.slider-track-fill{border-radius:3px;transition:width .1s,background .16s;position:absolute;top:0;bottom:0;left:0}input[type=range].slider{appearance:none;cursor:pointer;background:0 0;width:100%;height:30px;margin:0;position:absolute;inset:0}input[type=range].slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--surface);border:2px solid var(--ink);cursor:grab;border-radius:50%;width:26px;height:26px;box-shadow:0 2px 6px #0000001f}input[type=range].slider::-moz-range-thumb{background:var(--surface);border:2px solid var(--ink);cursor:grab;border-radius:50%;width:24px;height:24px}.slider-ticks{font-family:var(--font-mono);letter-spacing:.12em;color:var(--ink-3);text-transform:uppercase;justify-content:space-between;margin-top:14px;font-size:10px;display:flex}.pain-slider-container{padding:var(--space-md) 0}.pain-value-display{text-align:center;margin-bottom:var(--space-md)}.pain-number{font-family:var(--font-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--ink);font-size:76px;font-weight:200;line-height:.9}.pain-label{font-size:11px;font-family:var(--font-mono);letter-spacing:.1em;color:var(--ink-3);text-transform:uppercase;margin-top:6px}.pain-slider{appearance:none;background:var(--surface-sunk);border:1px solid var(--line);border-radius:3px;outline:none;width:100%;height:6px}.pain-slider::-webkit-slider-thumb{appearance:none;background:var(--surface);border:2px solid var(--ink);cursor:pointer;border-radius:50%;width:26px;height:26px;box-shadow:0 2px 6px #0000001f}.pain-scale{font-family:var(--font-mono);letter-spacing:.12em;color:var(--ink-3);text-transform:uppercase;justify-content:space-between;margin-top:14px;font-size:10px;display:flex}.pain-scale span{font-size:10px}.field{margin-bottom:20px}.field-lbl{color:var(--ink);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:600;font-family:var(--font-mono);justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.field-lbl .hint{color:var(--ink-3);letter-spacing:.02em;text-transform:none;font-size:10.5px;font-weight:400}.form-group{margin-bottom:14px}.form-label{color:var(--ink-2);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:600;font-family:var(--font-mono);margin-bottom:6px;display:block}.form-label span{color:var(--ink-3);letter-spacing:normal;text-transform:none;font-weight:400}.opt-stack{flex-direction:column;gap:8px;display:flex}.opt{appearance:none;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-btn);width:100%;color:var(--ink);cursor:pointer;flex-direction:column;gap:2px;padding:12px 14px;font-family:inherit;font-size:13.5px;transition:background .16s,border-color .16s;display:flex}.opt:hover{background:var(--surface-2)}.opt .opt-main{font-weight:600}.opt .opt-desc{color:var(--ink-3);font-size:12px}.opt.selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.opt.selected .opt-desc{color:var(--accent-ink);opacity:.85}.opt.selected.danger{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.opt.selected.danger .opt-desc{color:var(--danger);opacity:.85}.opt-row{gap:8px;display:flex}.opt-row .opt{text-align:center;flex:1;padding:11px 12px}.option-group{flex-wrap:wrap;gap:8px;display:flex}.option-pill{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:999px;padding:9px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .16s}.option-pill:hover{background:var(--surface-2)}.option-pill.selected{background:var(--ink);color:var(--bg);border-color:var(--ink)}[data-theme=dark] .option-pill.selected{background:var(--accent);color:var(--surface-sunk);border-color:var(--accent)}.option-pill.danger-selected{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.toggle-group{gap:8px;display:flex}.toggle-btn{appearance:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-btn);color:var(--ink);cursor:pointer;text-align:center;flex:1;padding:11px 12px;font-family:inherit;font-size:13.5px;font-weight:500;transition:all .16s}.toggle-btn:hover{background:var(--surface-2)}.toggle-btn.selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.toggle-btn.danger-selected{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.chip-grid{flex-wrap:wrap;gap:8px;display:flex}.chip{appearance:none;background:var(--surface);border:1px solid var(--line);color:var(--ink);cursor:pointer;border-radius:999px;padding:9px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .16s}.chip:hover{background:var(--surface-2)}.chip.selected{background:var(--ink);color:var(--bg);border-color:var(--ink)}[data-theme=dark] .chip.selected{background:var(--accent);color:var(--surface-sunk);border-color:var(--accent)}.chip-ok{background:var(--ok-soft);color:var(--ok);border-color:var(--ok)}.chip-warn{background:var(--warn-soft);color:var(--warn);border-color:var(--warn)}.chip-danger{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.alert-banner{border-radius:var(--radius-card);border:1px solid var(--warn);background:var(--warn-soft);color:var(--ink);align-items:flex-start;gap:12px;margin-bottom:12px;padding:12px 14px;animation:.4s slideUp;display:flex}.alert-banner.danger{border-color:var(--danger);background:var(--danger-soft)}.alert-banner.warning{border-color:var(--warn);background:var(--warn-soft)}.alert-banner.info{border-color:var(--accent);background:var(--accent-soft)}.alert-banner .al-icon,.alert-banner .alert-icon{width:24px;height:24px;color:var(--warn);flex:0 0 24px;place-items:center;margin-top:0;font-size:1.25rem;display:grid}.alert-banner.danger .al-icon,.alert-banner.danger .alert-icon{color:var(--danger)}.alert-banner.info .al-icon,.alert-banner.info .alert-icon{color:var(--accent-ink)}.alert-banner .al-title,.alert-banner .alert-title{color:var(--ink);margin-bottom:2px;font-size:13px;font-weight:600}.alert-banner.danger .alert-title{color:var(--danger)}.alert-banner.warning .alert-title{color:var(--warn)}.alert-banner .al-msg,.alert-banner .alert-message{color:var(--ink-2);font-size:12.5px;line-height:1.5}.alert-banner .alert-content{flex:1}.chat-screen{height:calc(100dvh - var(--nav-height) - var(--safe-bottom));flex-direction:column;padding-bottom:0;display:flex}.chat-container{height:calc(100dvh - var(--nav-height) - var(--safe-bottom));flex-direction:column;display:flex}.chat-disclaimer{border:1px solid var(--warn);background:var(--warn-soft);color:var(--ink-2);text-align:left;border-radius:10px;gap:8px;margin:12px 20px 0;padding:10px 12px;font-size:11.5px;line-height:1.45;display:flex}.chat-messages{flex-direction:column;flex:1;gap:12px;padding:16px 20px 8px;display:flex;overflow-y:auto}.chat-messages::-webkit-scrollbar{width:0}.bubble,.chat-bubble{white-space:pre-wrap;border-radius:14px;max-width:82%;padding:11px 14px;font-size:13.5px;line-height:1.55;animation:.3s slideUp}.bubble.ai,.chat-bubble.ai{background:var(--surface-2);border:1px solid var(--line);color:var(--ink);border-bottom-left-radius:4px;align-self:flex-start}.bubble.user,.chat-bubble.user{background:var(--ink);color:var(--bg);border-bottom-right-radius:4px;align-self:flex-end}[data-theme=dark] .bubble.user,[data-theme=dark] .chat-bubble.user{background:var(--accent);color:var(--surface-sunk)}.bubble-label,.chat-bubble.ai .bubble-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:5px;margin-bottom:5px;font-size:10px;font-weight:600;display:flex}.bubble-foot{border-top:1px solid var(--line);color:var(--ink-3);font-size:10.5px;font-family:var(--font-mono);letter-spacing:.02em;margin-top:8px;padding-top:8px}.chat-input-area{padding:10px 16px calc(14px + var(--safe-bottom));border-top:1px solid var(--line);background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}.quick-qs,.quick-questions{scrollbar-width:none;flex-wrap:nowrap;gap:6px;margin-bottom:2px;padding-bottom:12px;display:flex;overflow-x:auto}.quick-qs::-webkit-scrollbar{display:none}.quick-questions::-webkit-scrollbar{display:none}.quick-q{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);white-space:nowrap;cursor:pointer;border-radius:999px;flex:none;padding:7px 12px;font-family:inherit;font-size:11.5px;transition:all .15s}.quick-q:hover{color:var(--ink);border-color:var(--line-2)}.chat-input-row{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;align-items:center;gap:8px;margin-top:0;padding:6px 6px 6px 14px;display:flex}.chat-input{color:var(--ink);background:0 0;border:none;outline:none;flex:1;padding:8px 2px;font-size:13.5px}.chat-input::placeholder{color:var(--ink-3)}.chat-send{background:var(--ink);width:36px;height:36px;color:var(--bg);cursor:pointer;border:none;border-radius:10px;flex-shrink:0;place-items:center;font-size:1.1rem;display:grid}[data-theme=dark] .chat-send{background:var(--accent);color:var(--surface-sunk)}.chat-send:disabled{opacity:.3;cursor:not-allowed}.chart-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card);margin-bottom:12px;padding:16px 14px 10px}.chart-head{justify-content:space-between;align-items:center;padding:0 4px 8px;display:flex}.range-row{gap:4px;display:flex}.range-chip{font-size:11px;font-family:var(--font-mono);border:1px solid var(--line);color:var(--ink-3);letter-spacing:.04em;cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px}.range-chip.on{color:var(--ink);background:var(--surface-2);border-color:var(--line-2)}.chart svg{width:100%;height:auto;display:block}.pain-chart{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:var(--space-lg);margin-bottom:var(--space-lg);box-shadow:var(--shadow-card)}.pain-chart svg{width:100%;height:160px}.chart-title{font-size:var(--font-sm);margin-bottom:var(--space-md);align-items:center;gap:var(--space-sm);color:var(--ink);font-weight:600;display:flex}.tl-item{margin-bottom:14px;padding:0 0 0 26px;position:relative}.tl-item:before{content:"";background:var(--line);width:1px;position:absolute;top:0;bottom:-14px;left:8px}.tl-item:last-child:before{bottom:0}.tl-item:after{content:"";background:var(--surface);border:2px solid var(--ink-3);border-radius:50%;width:9px;height:9px;position:absolute;top:6px;left:4px}.tl-item.ok:after{border-color:var(--ok)}.tl-item.warn:after{border-color:var(--warn)}.tl-item.alert:after{border-color:var(--danger);background:var(--danger)}.tl-date{font-family:var(--font-mono);letter-spacing:.1em;color:var(--ink-3);text-transform:uppercase;margin-bottom:6px;font-size:11px}.timeline{padding-left:var(--space-xl);position:relative}.timeline:before{content:"";background:var(--line);width:1px;position:absolute;top:0;bottom:0;left:8px}.timeline-item{margin-bottom:var(--space-lg);animation:.4s backwards slideUp;position:relative}.timeline-item:before{content:"";left:calc(-1 * var(--space-xl) + 4px);background:var(--surface);border:2px solid var(--ink-3);border-radius:50%;width:10px;height:10px;position:absolute;top:6px}.timeline-item.alert:before{background:var(--danger);border-color:var(--danger)}.timeline-date{font-size:var(--font-xs);color:var(--ink-3);margin-bottom:var(--space-xs);font-weight:500;font-family:var(--font-mono);letter-spacing:.08em}.timeline-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:var(--space-md);box-shadow:var(--shadow-card)}.timeline-card.has-alert{border-color:var(--danger)}.login{padding:20px 28px calc(32px + var(--safe-bottom));min-height:calc(100dvh - var(--safe-top));flex-direction:column;justify-content:center;display:flex;position:relative;overflow-y:auto}.login-logo,.login-logo-img{border:1px solid var(--line);background:#fff;border-radius:16px;place-items:center;width:64px;height:64px;margin:0 auto 14px;padding:6px;display:grid;overflow:hidden;box-shadow:0 6px 14px -6px #0000001f}.login-logo img,.login-logo-img img{object-fit:contain;width:100%;height:100%;display:block}.login-hosp{text-align:center;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px;font-family:var(--font-mono);margin-bottom:6px}.login-title{font-family:var(--font-display);text-align:center;letter-spacing:-.02em;color:var(--ink);background:0 0;-webkit-background-clip:initial;-webkit-text-fill-color:currentColor;margin:0 0 6px;font-size:28px;font-weight:500}.login-sub{text-align:center;color:var(--ink-2);margin:0 0 28px;font-size:13px}.seg{background:var(--surface-sunk);border:1px solid var(--line);border-radius:10px;margin-bottom:18px;padding:3px;display:flex}.seg button{color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-radius:7px;flex:1;padding:9px 10px;font-family:inherit;font-size:13px;font-weight:600;transition:all .16s}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000000f}.role-toggle{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:14px;padding:4px;display:grid}.role-toggle button{color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:9px 10px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.role-toggle button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000000a}.role-toggle button svg{width:12px;height:12px}.input{background:var(--surface-sunk);border:1px solid var(--line);border-radius:var(--radius-btn);width:100%;color:var(--ink);outline:none;padding:13px 14px;font-family:inherit;font-size:14px;transition:border-color .16s}.input:focus{border-color:var(--accent)}.input-lbl,.input-label{color:var(--ink-2);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:600;font-family:var(--font-mono);margin-bottom:6px;display:block}.input-group{margin-bottom:14px}.input-password-wrap{position:relative}.input-password-wrap .input{padding-right:42px}.input-password-wrap .input-eye{width:30px;height:30px;color:var(--ink-3);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;transition:color .12s,background .12s;display:grid;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.input-password-wrap .input-eye:hover{color:var(--ink);background:var(--surface-2)}.cohort-list{flex-direction:column;gap:7px;display:flex}.cohort-row{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);border-radius:10px;grid-template-columns:auto 1fr auto auto auto;align-items:center;gap:10px;padding:11px 13px;display:grid;position:relative}.cohort-row[data-tone=danger]{border-left:3px solid var(--danger)}.cohort-row[data-tone=warn]{border-left:3px solid var(--warn)}.cr-id{font-family:var(--font-mono);color:var(--ink);letter-spacing:.04em;font-size:12px;font-weight:600}.cr-meta{color:var(--ink-3);font-size:11px;font-family:var(--font-mono);gap:5px;display:flex}.cr-pain{text-align:center;min-width:30px}.cr-pain-num{font-family:var(--font-mono);color:var(--ink);font-size:17px;font-weight:600;line-height:1}.cr-pain-lbl{letter-spacing:.1em;color:var(--ink-3);font-size:8.5px;font-family:var(--font-mono);margin-top:2px}.cr-last{font-family:var(--font-mono);color:var(--ink-3);text-align:right;min-width:28px;font-size:10px}.search-box{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);border-radius:10px;align-items:center;gap:8px;margin-bottom:12px;padding:11px 14px;display:flex}.search-box svg{color:var(--ink-3);flex-shrink:0}.search-box input{color:var(--ink);font-size:13px;font-family:var(--font-mono);letter-spacing:.04em;background:0 0;border:none;outline:none;flex:1}.search-box input::placeholder{color:var(--ink-3)}.case-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.case-id{font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink);font-size:18px;font-weight:600}.case-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.case-k{font-family:var(--font-mono);letter-spacing:.12em;color:var(--ink-3);text-transform:uppercase;margin-bottom:3px;font-size:9.5px}.case-v{color:var(--ink);font-size:13.5px;font-weight:500}.review-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.review-id{font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink);font-size:11.5px;font-weight:600}.review-time{font-family:var(--font-mono);color:var(--ink-3);margin-left:auto;font-size:10px}.review-q{color:var(--ink-2);background:var(--surface-2);border-radius:8px;padding:8px 10px;font-size:13px;font-style:italic;line-height:1.5}.view>*,.page>*{animation:.26s both fadeUp}.view>:nth-child(2),.page>:nth-child(2){animation-delay:40ms}.view>:nth-child(3),.page>:nth-child(3){animation-delay:80ms}.view>:nth-child(4),.page>:nth-child(4){animation-delay:.12s}.view>:nth-child(5),.page>:nth-child(5){animation-delay:.16s}.view>:nth-child(6),.page>:nth-child(6){animation-delay:.2s}.notif-card{margin-top:var(--space-md)}.notif-toggle{border:1px solid var(--line);background:var(--surface-sunk);cursor:pointer;width:48px;height:28px;transition:all var(--transition-base);border-radius:999px;flex-shrink:0;padding:0;position:relative}.notif-toggle.active{background:var(--accent);border-color:var(--accent)}.notif-toggle-knob{background:var(--ink-3);width:20px;height:20px;transition:all var(--transition-base);border-radius:50%;position:absolute;top:3px;left:3px}.notif-toggle.active .notif-toggle-knob{background:#fff;left:23px}.notif-settings{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--line);animation:.3s fadeIn}.notif-time-row{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.notif-time-label{font-size:var(--font-sm);color:var(--ink-2)}.notif-time-input{padding:var(--space-sm) var(--space-md);border:1px solid var(--line);border-radius:var(--radius-btn);background:var(--surface-sunk);color:var(--ink);font-size:var(--font-base);cursor:pointer;transition:border-color var(--transition-fast);outline:none;font-family:inherit}.notif-time-input:focus{border-color:var(--accent)}.notif-time-input::-webkit-calendar-picker-indicator{filter:invert(.5);cursor:pointer}[data-theme=dark] .notif-time-input::-webkit-calendar-picker-indicator{filter:invert(.7)}.notif-test-btn{width:100%;font-size:var(--font-sm);padding:var(--space-sm) var(--space-md)}.survey-question{margin-bottom:var(--space-xl);animation:.4s backwards slideUp}.survey-question-label{align-items:center;gap:var(--space-sm);font-size:var(--font-sm);color:var(--ink);margin-bottom:var(--space-md);font-weight:500;display:flex}.survey-question-icon{flex-shrink:0;font-size:1.25rem}.likert-group{justify-content:space-between;gap:var(--space-sm);display:flex}.likert-btn{aspect-ratio:1;border:2px solid var(--line);background:var(--surface);max-width:56px;color:var(--ink-2);font-size:var(--font-base);cursor:pointer;transition:all var(--transition-base);border-radius:50%;flex:1;justify-content:center;align-items:center;padding:0;font-family:inherit;font-weight:600;display:flex}.likert-btn:hover{border-color:var(--line-2);transform:scale(1.06)}.likert-btn.selected{background:var(--accent);border-color:var(--accent);color:#fff;transform:scale(1.08)}.likert-labels{margin-top:var(--space-xs);justify-content:space-between;padding:0 4px;display:flex}.likert-labels span{color:var(--ink-3);font-size:10.5px;font-family:var(--font-mono);letter-spacing:.06em}.survey-textarea{width:100%;padding:var(--space-md);border:1px solid var(--line);border-radius:var(--radius-btn);background:var(--surface-sunk);color:var(--ink);font-size:var(--font-sm);resize:vertical;transition:border-color var(--transition-fast);outline:none;min-height:80px;font-family:inherit;line-height:1.6}.survey-textarea:focus{border-color:var(--accent)}.survey-textarea::placeholder{color:var(--ink-3)}.r-table-wrap{-webkit-overflow-scrolling:touch;margin:0 calc(-1 * var(--space-md));padding:0 var(--space-md);overflow-x:auto}.r-table{border-collapse:collapse;width:100%;font-size:var(--font-xs);white-space:nowrap;font-family:var(--font-mono)}.r-table th{text-align:left;padding:var(--space-sm) var(--space-sm);color:var(--ink-3);border-bottom:1px solid var(--line);background:var(--surface);letter-spacing:.06em;text-transform:uppercase;font-weight:500;position:sticky;top:0}.r-table td{padding:var(--space-sm) var(--space-sm);border-bottom:1px solid var(--line);color:var(--ink-2)}.r-table tr:last-child td{border-bottom:none}.r-table tr:hover td{background:var(--surface-2)}.review-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card);margin-bottom:12px;padding:var(--space-md)!important}.review-meta{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.review-study-id{font-family:var(--font-mono);font-size:var(--font-xs);color:var(--accent);letter-spacing:.06em;font-weight:600}.review-date{font-family:var(--font-mono);color:var(--ink-3);font-size:10px}.review-bubble{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-btn);font-size:var(--font-sm);margin-bottom:var(--space-sm);line-height:1.6}.review-bubble.user-q{background:var(--accent-soft);border-left:3px solid var(--accent)}.review-bubble.ai-a{background:var(--surface-2);border-left:3px solid var(--ink-3)}.review-label{font-family:var(--font-mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:2px;font-size:9.5px;font-weight:600}.review-actions-expanded{margin-top:var(--space-sm);animation:.2s fadeIn}.btn-review{border-radius:var(--radius-btn);flex:1;padding:var(--space-sm) var(--space-md)!important;font-size:var(--font-sm)!important}.btn-review.correct{background:var(--ok-soft);color:var(--ok);border:1px solid var(--ok)}.btn-review.incorrect{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger)}.success-overlay{z-index:200;background:oklch(98.5% .004 240/.95);flex-direction:column;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}[data-theme=dark] .success-overlay{background:oklch(17% .01 255/.95)}.success-checkmark{background:var(--ok-soft);width:80px;height:80px;color:var(--ok);margin-bottom:var(--space-lg);border-radius:50%;justify-content:center;align-items:center;font-size:2.5rem;animation:.6s pulse;display:flex}.success-text{font-family:var(--font-display);font-size:var(--font-xl);color:var(--ink);margin-bottom:var(--space-sm);font-weight:600}.success-sub{font-size:var(--font-sm);color:var(--ink-2)}.empty-state{text-align:center;padding:var(--space-2xl);color:var(--ink-3)}.empty-state .empty-icon{margin-bottom:var(--space-md);opacity:.5;font-size:3rem}.empty-state p{font-size:var(--font-sm)}.divider{background:var(--line);height:1px;margin:var(--space-lg) 0}.delay-1{animation-delay:50ms}.delay-2{animation-delay:.1s}.delay-3{animation-delay:.15s}.delay-4{animation-delay:.2s}.delay-5{animation-delay:.25s}.consent-view{min-height:calc(100dvh - var(--safe-top));padding:28px 22px calc(28px + env(safe-area-inset-bottom));background:var(--bg);color:var(--ink);font-family:var(--font-body);font-feature-settings:"palt";-webkit-font-smoothing:antialiased;flex-direction:column;display:flex}.consent-view .c-eyebrow{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px;font-size:10.5px;font-weight:600}.consent-view .c-head{border-bottom:1px solid var(--line);margin-bottom:16px;padding:4px 0 14px}.consent-view .c-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);margin:4px 0;font-size:26px;font-weight:600}.consent-view .c-sub{color:var(--ink-2);margin:0;font-size:12.5px;line-height:1.45}.consent-view .c-body{flex-direction:column;gap:14px;margin-bottom:16px;display:flex}.consent-view .c-section .c-sec-label{font-family:var(--font-mono);letter-spacing:.14em;color:var(--accent);text-transform:uppercase;margin-bottom:6px;font-size:9.5px}.consent-view .c-section p{color:var(--ink-2);text-wrap:pretty;margin:0;font-size:12.5px;line-height:1.6}.consent-view .c-fulltext{background:var(--surface);border:1px solid var(--line);overscroll-behavior:contain;white-space:pre-wrap;min-height:320px;max-height:58vh;color:var(--ink-2);border-radius:10px;margin:4px 0 14px;padding:16px 18px;font-size:13.5px;line-height:1.8;overflow-y:auto}.consent-view .c-fulltext::-webkit-scrollbar{width:6px}.consent-view .c-fulltext::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:2px}.consent-view .c-fulltext::-webkit-scrollbar-track{background:0 0}.consent-view .c-scroll-hint{font-family:var(--font-mono);letter-spacing:.1em;color:var(--warn);text-align:center;margin:-4px 0 12px;font-size:10.5px}.consent-view .c-checks{background:var(--surface-2);border:1px solid var(--line);opacity:1;border-radius:12px;flex-direction:column;gap:12px;margin-bottom:14px;padding:14px;transition:opacity .2s;display:flex}.consent-view .c-checks[data-locked=true]{opacity:.45;pointer-events:none}.consent-view .c-chk{color:var(--ink);cursor:pointer;align-items:flex-start;gap:10px;font-size:12.5px;line-height:1.45;display:flex}.consent-view .c-chk input[type=checkbox]{appearance:none;border:1.5px solid var(--line-2);background:var(--surface);cursor:pointer;border-radius:4px;flex-shrink:0;width:18px;height:18px;margin-top:1px;transition:all .12s;position:relative}.consent-view .c-chk input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.consent-view .c-chk input[type=checkbox]:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:10px;position:absolute;top:1px;left:5px;transform:rotate(45deg)}.consent-view .c-sig{border:1px dashed var(--line-2);background:var(--surface);border-radius:12px;margin-bottom:14px;padding:14px}.consent-view .c-sig-label{font-family:var(--font-mono);letter-spacing:.14em;color:var(--ink-3);text-transform:uppercase;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:9.5px;display:flex}.consent-view .c-sig-clear{font-family:var(--font-mono);letter-spacing:.1em;color:var(--ink-3);border:1px solid var(--line);cursor:pointer;text-transform:uppercase;background:0 0;border-radius:6px;padding:3px 8px;font-size:10px}.consent-view .c-sig-clear:hover{color:var(--ink);border-color:var(--line-2)}.consent-view .c-sig-canvas-wrap{border:1px solid var(--line);background:#fff;border-radius:8px;position:relative;overflow:hidden}.consent-view .c-sig-canvas{touch-action:none;cursor:crosshair;width:100%;height:140px;display:block}.consent-view .c-sig-placeholder{color:#bbb;pointer-events:none;letter-spacing:.02em;place-items:center;font-family:Caveat,cursive;font-size:24px;display:grid;position:absolute;inset:0}.consent-view .c-sig-meta{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.06em;justify-content:space-between;margin-top:10px;font-size:10px;display:flex}.consent-view .c-actions{grid-template-columns:1fr 1.4fr;gap:10px;margin-top:4px;display:grid}.consent-view .c-btn{appearance:none;border-radius:var(--radius-btn);letter-spacing:-.005em;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;width:100%;padding:13px 16px;font-family:inherit;font-size:14px;font-weight:600;transition:transform .12s,background .16s,border-color .16s,opacity .16s;display:inline-flex}.consent-view .c-btn:active{transform:translateY(1px)scale(.995)}.consent-view .c-btn-primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}[data-theme=dark] .consent-view .c-btn-primary{background:var(--accent);color:var(--surface-sunk);border-color:var(--accent)}.consent-view .c-btn-primary:disabled{opacity:.35;cursor:not-allowed}.consent-view .c-btn-ghost{color:var(--ink-2);border:1px solid var(--line);background:0 0}.consent-view .c-btn-ghost:hover{background:var(--surface-2);color:var(--ink)}
