:root {
  /* Care Map color system — mapped from Figma "Color System Guide" (miLvKXo52fcdt88ztrkdCv, node 164-137).
     Primary/600 #04845C is the interactive green (AA: 4.7:1 white-on-fill, 4.7:1 on white);
     Primary/500 #059669 is reserved for the logo, dots, and non-text accents.
     Hover uses a darker step (#036A4A). Var names kept for compatibility. */
  --canvas: #F3F4F6;
  --bg: #FAFAFA;          /* Background */
  --surface: #FFFFFF;     /* Surface */
  --surface-soft: #F4F6F8;
  --line: #E5E7EB;        /* Borders */
  --text: #111827;        /* Text */
  --muted: #6B7280;       /* Secondary */
  --subtle: #9CA3AF;
  --blue: #04845C;        /* Primary (interactive) */
  --blue-2: #E0F6F3;      /* Primary tint 50 */
  --blue-3: #A7F3D0;      /* Primary tint 200 */
  --accent: #059669;      /* Primary/500 — dots & accents */
  --amber: #B45309;       /* Warning (text-safe shade) */
  --amber-bg: #FFFBEB;
  --green: #04845C;       /* Emerald — success */
  --green-bg: #E0F6F3;
  --purple: #D33278;      /* Pop/500 */
  --purple-bg: #F9E4ED;   /* pop/100 */
  --rose: #DC2626;        /* Error (text-safe shade of #EF4444) */
  --rose-bg: #FEF2F2;
  --radius: 16px;
  --radius-sm: 12px;
  --shadow: 0 12px 36px rgba(22, 30, 39, .12);
  --font: "Geist", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", "Segoe UI", sans-serif;
  /* Reading-passage serif, paired with the sans UI font above. Test case: Specialist
     Lens body copy only — nav, buttons, chips, and labels stay in Geist so scan-heavy
     UI keeps the legibility already validated with a real user. */
  --font-serif: "adriane", Georgia, "Iowan Old Style", serif;
}
*{box-sizing:border-box}
html,body,#app{min-height:100%;margin:0}
body{font-family:var(--font);color:var(--text);background:var(--canvas);font-size:15px;line-height:1.45}
button,input,textarea{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(4,120,87,.28);outline-offset:2px}
.app-shell{min-height:100vh;background:var(--bg);display:grid;grid-template-columns:268px 1fr}
.sidebar{border-right:1px solid var(--line);padding:26px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;background:#FCFCFB}
.brand{display:flex;align-items:center;margin:0}
.brand svg{height:34px;width:auto;display:block}
.brand-block{margin:0 8px 30px}
.brand-tagline{margin:auto 8px 14px;font-size:12.5px;color:var(--muted);line-height:1.4;font-style:italic}
.nav-group{display:grid;gap:4px}
.nav-link{border:0;background:transparent;text-align:left;color:#4B5563;padding:10px 11px;border-radius:10px;font-size:14px;display:flex;align-items:center;gap:10px}
.nav-link:hover{background:var(--surface-soft)}
.nav-link.active{background:rgba(243,251,251,.8);color:var(--blue);font-weight:720;box-shadow:inset 0 0 0 1px #B4E8E3}
.nav-link .icon{width:18px;text-align:center;font-size:16px}
.sidebar-footer{border-top:1px solid var(--line);padding:18px 8px 0;color:var(--muted);font-size:12px;line-height:1.45}
.privacy{display:flex;gap:9px;align-items:flex-start}.privacy strong{display:block;color:#374151;margin-bottom:2px}
.main{min-width:0;padding:28px clamp(20px,4vw,56px) 48px;max-width:1480px;width:100%;margin:0 auto}
.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:28px}.eyebrow{font-size:12px;color:var(--blue);font-weight:800;text-transform:uppercase;letter-spacing:.85px}.page-title{font-size:31px;letter-spacing:-1px;margin:3px 0 0;font-weight:780}.profile{display:flex;align-items:center;gap:10px;color:#6B7280;font-size:13px}.avatar{width:34px;height:34px;border-radius:50%;background:#D1FAE5;border:1px solid var(--line);display:grid;place-items:center;color:var(--blue);font-weight:800}
.grid{display:grid;gap:16px}.two{grid-template-columns:1.2fr .8fr}.three{grid-template-columns:repeat(3,1fr)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:0 1px 0 rgba(0,0,0,.02)}
.card.soft{background:var(--surface-soft)}.card.blue{background:#F3FBFB;border-color:#C8E8DE}.card.purple{background:var(--purple-bg);border-color:#FBCFE8}
.card-title{font-size:16px;font-weight:760;letter-spacing:-.15px;margin:0 0 5px}.card-sub{color:var(--muted);font-size:13px;margin:0}.metric{font-weight:800;font-size:30px;letter-spacing:-1px}.metric-label{color:var(--muted);font-size:12px;margin-top:2px}
.btn{border:1px solid transparent;border-radius:11px;padding:10px 13px;font-weight:720;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:#036A4A}.btn-secondary{background:#fff;border-color:var(--blue);color:var(--blue)}.btn-ghost{background:transparent;color:var(--blue);padding-left:0}.btn-danger{background:#fff;border-color:#FECACA;color:var(--rose)}
.action-row{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.section{margin-top:22px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:0 0 10px}.section-head h2{font-size:18px;letter-spacing:-.35px;margin:0}.small-link{font-size:13px;color:var(--blue);border:0;background:transparent;font-weight:700}
.thread-list{display:grid;gap:10px}.thread{display:grid;grid-template-columns:8px 1fr auto;gap:13px;align-items:center;padding:15px;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;text-align:left}.thread:hover{border-color:#A7F3D0;box-shadow:0 5px 15px rgba(4,120,87,.07)}.thread-bar{height:38px;border-radius:8px;background:var(--blue)}.thread-bar.amber{background:var(--amber)}.thread-bar.green{background:var(--green)}.thread-bar.gray{background:#9CA3AF}.thread-name{font-weight:760;letter-spacing:-.15px}.thread-meta{font-size:12px;color:var(--muted);margin-top:3px}.status{font-size:11px;padding:5px 9px;border-radius:99px;font-weight:760;white-space:nowrap}.open{color:var(--blue);background:var(--blue-2)}.investigating{color:var(--amber);background:var(--amber-bg)}.monitoring{color:#6B7280;background:#F3F4F6}.unconnected{color:#6B7280;background:#fff;border:1px dashed #9CA3AF}
.conversation{display:grid;grid-template-columns:1fr 260px;gap:16px}.conversation .prompt{font-size:21px;letter-spacing:-.4px;font-weight:760;margin:0 0 6px}.conversation .helper{font-size:13px;color:var(--muted);margin:0 0 14px}.message-input{border:1px solid #A7F3D0;background:#fff;border-radius:13px;padding:11px 12px;display:flex;align-items:center;gap:10px}.message-input input{border:0;outline:0;flex:1;min-width:0;color:var(--text);background:transparent}.send{border:0;border-radius:9px;background:var(--blue);color:#fff;height:30px;width:30px;font-weight:800}.suggestions{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}.chip-btn{border:1px solid #A7F3D0;background:#fff;color:#065F46;padding:7px 10px;border-radius:99px;font-size:12px;font-weight:680}
.upcoming{display:grid;gap:10px}.appt{display:flex;gap:10px;align-items:flex-start}.appt-icon{height:34px;width:34px;border-radius:10px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);color:var(--blue)}.appt-title{font-size:13px;font-weight:740}.appt-meta{font-size:12px;color:var(--muted);margin-top:2px}
.insight{border-left:4px solid var(--purple);padding:16px 18px;background:#F3FBFB;border-radius:0 14px 14px 0;border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.insight-label{font-size:11px;font-weight:800;color:var(--purple);text-transform:uppercase;letter-spacing:.8px}.insight p{margin:5px 0 12px;font-weight:650;line-height:1.45}
.tabs-wrap{position:relative}
.tabs-wrap::before,.tabs-wrap::after{content:'';position:absolute;top:0;bottom:12px;width:30px;pointer-events:none;opacity:0;transition:opacity .15s;z-index:1}
.tabs-wrap::before{left:0;background:linear-gradient(to right, var(--bg), rgba(250,250,250,0))}
.tabs-wrap::after{right:0;background:linear-gradient(to left, var(--bg), rgba(250,250,250,0))}
.tabs-wrap.can-scroll-left::before{opacity:1}
.tabs-wrap.can-scroll-right::after{opacity:1}
.tabs{display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:16px}.tab{border:0;background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px 11px;color:#6B7280;font-weight:680;font-size:12px}.tab.active{background:var(--blue-2);border-color:#A7F3D0;color:var(--blue)}
.lens-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px}.evidence-list{display:grid;gap:7px}.evidence{background:#fff;border:1px solid var(--line);border-radius:11px;padding:11px;text-align:left}.evidence.active{border-color:#6EE7B7;background:#F7FEFB}.evidence-kicker{font-size:10px;color:var(--subtle);font-weight:760;text-transform:uppercase;letter-spacing:.7px}.evidence-title{font-size:13px;font-weight:730;margin-top:3px;line-height:1.35}.lens-panel{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.lens-heading{padding:17px 18px;border-bottom:1px solid var(--line)}.lens-heading h2{font-size:18px;letter-spacing:-.35px;margin:2px 0 5px}.lens-content{padding:18px}.reasoning-card{border:1px solid var(--line);border-radius:13px;margin-bottom:10px;overflow:hidden}.reasoning-card summary{cursor:pointer;font-weight:760;padding:14px 15px;list-style:none}.reasoning-card summary::-webkit-details-marker{display:none}.reasoning-card summary:after{content:'+';float:right;color:var(--blue);font-size:18px;line-height:16px}.reasoning-card[open] summary:after{content:'–'}.reasoning-body{border-top:1px solid var(--line);padding:13px 15px;color:#374151;font-size:13px}.reasoning-body p{margin:0 0 10px}.mini-label{font-size:10px;letter-spacing:.72px;text-transform:uppercase;font-weight:800;color:var(--subtle);margin:11px 0 4px}.term{color:var(--blue);font-weight:720;background:none;border:0;border-bottom:1px dashed #34D399;border-radius:0;padding:0 1px 1px;cursor:pointer}.term-row{display:flex;flex-wrap:wrap;gap:10px 16px}
.pattern-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}.pattern-card{border:1px solid #C8E8DE;background:#F3FBFB;border-radius:15px;padding:18px}.pattern-card h3{margin:4px 0 8px;font-size:18px;letter-spacing:-.25px}.thread-tags{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.tag{font-size:12px;border-radius:99px;padding:6px 9px;font-weight:700}.tag.blue{background:var(--blue-2);color:var(--blue)}.tag.purple{background:var(--purple-bg);color:var(--purple)}.tag.green{background:var(--green-bg);color:var(--green)}.tag.amber{background:var(--amber-bg);color:var(--amber)}
.event-list{display:grid;gap:9px}.event{display:grid;grid-template-columns:12px 86px 1fr;gap:9px;align-items:start;font-size:13px;padding:9px 0;border-bottom:1px solid #EAECEF}.event:last-child{border-bottom:0}.event-dot{width:9px;height:9px;border-radius:50%;background:var(--purple);margin-top:5px}.event-date{color:var(--muted);font-size:12px}.event-title{font-weight:650}.side-stack{display:grid;gap:12px;align-content:start}.list-check{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:8px;font-size:13px;color:#4B5563}.list-check li:before{content:'✓';color:var(--green);font-weight:800;margin-right:7px}.list-q{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:8px;font-size:13px;color:#4B5563}.list-q li:before{content:'?';color:var(--blue);font-weight:800;margin-right:7px}
.prep-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px}.prep-brief{border:1px solid var(--line);background:#fff;border-radius:16px;overflow:hidden}.prep-header{padding:20px 20px 16px;border-bottom:1px solid var(--line)}.prep-header h2{font-size:22px;letter-spacing:-.5px;margin:4px 0 0}.prep-section{padding:16px 20px;border-bottom:1px solid var(--line)}.prep-section:last-child{border-bottom:0}.prep-section h3{font-size:13px;text-transform:uppercase;letter-spacing:.7px;color:#6B7280;margin:0 0 9px}.question{padding:10px 0;border-bottom:1px solid #EAECEF;font-weight:640;font-size:14px;line-height:1.42}.question:last-child{border-bottom:0}.small{font-size:12px;color:var(--muted);margin-top:4px}.check-row{display:flex;gap:8px;align-items:flex-start;margin:8px 0;color:#4B5563;font-size:13px}.check{width:17px;height:17px;border:1px solid #D1D5DB;border-radius:5px;display:grid;place-items:center;color:var(--blue);flex:0 0 auto}
.modal-backdrop{position:fixed;inset:0;background:rgba(19,28,37,.3);display:grid;place-items:center;padding:20px;z-index:50}.modal{width:min(520px,100%);background:white;border-radius:18px;border:1px solid var(--line);box-shadow:var(--shadow);padding:22px}.modal h2{font-size:21px;letter-spacing:-.4px;margin:0 0 7px}.modal p{color:#4B5563;font-size:14px;margin:0 0 12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.capture-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);z-index:80;background:#111827;color:#fff;padding:11px 14px;border-radius:11px;font-size:13px;box-shadow:0 10px 28px rgba(0,0,0,.22);max-width:min(500px,calc(100vw - 32px));text-align:center}
.mobile-nav{display:none}
.mobile-nav::before,.mobile-nav::after{content:'';position:absolute;top:0;bottom:0;width:22px;pointer-events:none;opacity:0;transition:opacity .15s;z-index:1}
.mobile-nav::before{left:0;background:linear-gradient(to right, rgba(252,252,251,.96), rgba(252,252,251,0))}
.mobile-nav::after{right:0;background:linear-gradient(to left, rgba(252,252,251,.96), rgba(252,252,251,0))}
.mobile-nav.can-scroll-left::before{opacity:1}
.mobile-nav.can-scroll-right::after{opacity:1}
/* Mobile chrome: slim top bar (logo + hamburger) + slide-out drawer, replacing the
   bottom tab bar entirely. Drawer reuses .nav-link/.brand/.sidebar-footer styling
   from the desktop sidebar so it looks and behaves like "the same nav, on mobile." */
.mobile-topbar{display:none}
.hamburger-btn{width:40px;height:40px;border:0;background:transparent;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0;cursor:pointer;flex:0 0 auto}
.hamburger-btn span{display:block;width:22px;height:2px;background:var(--text);border-radius:2px}
.drawer-backdrop{position:fixed;inset:0;background:rgba(19,28,37,.35);z-index:40}
.mobile-drawer{position:fixed;top:0;left:0;bottom:0;width:min(280px,82vw);background:#FCFCFB;z-index:41;padding:26px 18px;display:flex;flex-direction:column;box-shadow:12px 0 32px rgba(0,0,0,.18);animation:drawerIn .18s ease-out}
.mobile-drawer .brand-block{margin:0 8px 26px}
.mobile-drawer .nav-group{display:grid;gap:4px}
.mobile-drawer .sidebar-footer{border-top:1px solid var(--line);padding:18px 8px 0;color:var(--muted);font-size:12px;line-height:1.45}
@keyframes drawerIn{from{transform:translateX(-100%)}to{transform:translateX(0)}}
@media(max-width:960px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.main{padding:84px 18px 24px}.topbar{margin-bottom:20px}.topbar .profile{display:none}.page-title{font-size:27px}.two,.three,.conversation,.lens-grid,.pattern-layout,.prep-layout{grid-template-columns:1fr}.conversation .upcoming{display:none}.desktop-only{display:none}.mobile-topbar{display:flex;position:fixed;z-index:20;top:0;left:0;right:0;align-items:center;justify-content:space-between;background:rgba(252,252,251,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:14px max(16px, env(safe-area-inset-left)) 14px max(16px, env(safe-area-inset-right))}.mobile-topbar .brand{margin:0;font-size:17px}.lens-grid{gap:10px}.evidence-list{grid-template-columns:repeat(2,minmax(0,1fr));overflow:auto;padding-bottom:3px}.evidence{min-width:160px}.event{grid-template-columns:10px 70px 1fr}.prep-layout .side-stack{order:-1}.card{padding:16px}.modal{padding:18px}.thread{grid-template-columns:7px 1fr auto}.thread-bar{height:44px}}
@media(max-width:520px){body{background:var(--bg)}.main{padding:76px 14px 20px}.page-title{font-size:24px}.topbar{align-items:flex-start}.grid{gap:12px}.card{border-radius:14px;padding:15px}.conversation .prompt{font-size:19px}.thread{padding:13px}.status{font-size:10px;padding:4px 7px}.metric{font-size:26px}.three{grid-template-columns:repeat(2,1fr)}.tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:10px}.tab{white-space:nowrap}.prep-header h2{font-size:20px}.section{margin-top:18px}.small-link{white-space:nowrap}.reasoning-card summary{font-size:14px}.mobile-hide{display:none}}

/* v0.2 responsive refinements */
.page-intro{margin:-18px 0 18px;font-size:15px}
.metrics-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.map-links{display:flex;gap:12px;align-items:center}
.thread-copy{min-width:0;display:block}
.thread-name,.thread-meta,.thread-desc{display:block}
.thread-name{line-height:1.25}
.thread-meta{line-height:1.35;margin-top:4px}
.thread-desc{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.35}
.conversation-launch{width:100%;border:1px solid #AFDDCF;background:#fff;border-radius:16px;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;color:var(--muted)}
.conversation-launch:hover{border-color:#6EE7B7;box-shadow:0 3px 10px rgba(4,120,87,.08)}
.conversation-placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.conversation-examples{font-size:12px;color:#4B5563;line-height:1.45;margin:10px 0 0}
.timeline-card{padding:0;overflow:hidden}.timeline-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:18px 18px 14px;border-bottom:1px solid var(--line)}
.timeline-list{padding:4px 18px 12px}.timeline-event{display:grid;grid-template-columns:16px 84px 1fr;gap:12px;width:100%;border:0;background:transparent;text-align:left;padding:15px 0;border-bottom:1px solid #EAECEF}.timeline-event:last-child{border-bottom:0}.timeline-marker{width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid #9CA3AF;margin-top:4px;box-shadow:0 0 0 4px #F5F5F6}.timeline-marker.setback{border-color:var(--amber);box-shadow:0 0 0 4px var(--amber-bg)}.timeline-marker.breakthrough{border-color:var(--green);box-shadow:0 0 0 4px var(--green-bg)}.timeline-date{font-size:12px;color:var(--muted);padding-top:1px}.timeline-content{display:grid;gap:2px;font-size:13px;color:#4B5563}.timeline-content strong{font-size:13px;color:var(--text)}
.modal-close{position:absolute;right:14px;top:12px;border:0;background:transparent;color:#6B7280;font-size:25px;line-height:1;padding:7px}.modal{position:relative}.chat-modal{width:min(600px,100%);padding:20px}.chat-intro{padding-right:28px}.chat-window{background:#F9FAFB;border:1px solid var(--line);border-radius:14px;padding:13px;display:grid;gap:10px;min-height:135px;max-height:48vh;overflow:auto}.chat-bubble{max-width:90%;padding:10px 12px;border-radius:12px;font-size:13px;line-height:1.45}.chat-bubble.assistant{background:#fff;border:1px solid var(--line);color:#374151;justify-self:start}.chat-bubble.user{background:var(--blue);color:#fff;justify-self:end}.chat-bubble p{margin:0 0 9px;color:inherit}.chat-bubble p:last-of-type{margin-bottom:8px}.chat-answer-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.chat-link{border:0;background:transparent;color:var(--blue);padding:0;font-weight:750;font-size:12px;text-align:left}.chat-input{border:1px solid #A7F3D0;background:#fff;border-radius:13px;padding:9px 10px;margin-top:11px;display:flex;align-items:center;gap:9px}.chat-input input{border:0;outline:0;background:transparent;min-width:0;flex:1}.chat-examples{display:grid;gap:7px;margin-top:12px}.chat-examples-label{font-size:11px;color:var(--subtle);font-weight:800;text-transform:uppercase;letter-spacing:.7px}.chat-example{border:1px solid #A7F3D0;background:#fff;color:#065F46;padding:9px 10px;border-radius:10px;font-size:13px;font-weight:680;text-align:left}.chat-example.selected{background:var(--blue-2);border-color:#6EE7B7}
@media (hover:hover) and (pointer:fine){.chat-example:hover{background:var(--blue-2);border-color:#6EE7B7}}
@media(max-width:960px){.timeline-header{display:grid}.timeline-event{grid-template-columns:14px 66px 1fr}.conversation-launch{min-height:54px}.thread{align-items:flex-start}.thread-bar{margin-top:3px}}
@media(max-width:520px){.metrics-row{gap:8px}.metric{font-size:25px}.metric-label{font-size:11px}.map-links{gap:8px}.small-link{font-size:12px}.thread{grid-template-columns:6px minmax(0,1fr) auto;gap:10px}.thread-name{font-size:15px}.thread-meta,.thread-desc{font-size:11px}.status{max-width:96px;white-space:normal;text-align:center;line-height:1.15}.timeline-list{padding:4px 14px 10px}.timeline-header{padding:16px 14px 12px}.timeline-event{grid-template-columns:13px 59px 1fr;gap:9px}.timeline-date{font-size:11px}.chat-modal{align-self:end;border-radius:18px 18px 0 0;width:100%;max-height:90dvh;overflow:auto}.modal-backdrop{align-items:end;padding:0}.chat-window{max-height:42dvh}.chat-example{font-size:12px}.conversation-examples{font-size:11px}}

/* Specialist Lens refinements */
.selected-detail-card{border:1px solid #A7F3D0;background:#F7FEFB;border-radius:13px;padding:15px;margin-bottom:16px;color:#374151;font-size:13px;line-height:1.52}.selected-detail-card p{margin:0 0 10px}.lens-map-label{margin-top:2px}.lens-chip-row{display:flex;flex-wrap:wrap;gap:7px;margin:7px 0 14px}.lens-chip{border:1px solid #D1FAE5;background:#fff;color:#4B5563;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:720}.lens-chip.selected{border-color:#6EE7B7;background:#E0F6F3;color:#04845C}.reasoning-list{margin:0 0 10px 18px;padding:0}.reasoning-list li{margin:0 0 6px;line-height:1.45}
@media(max-width:520px){.lens-chip-row{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.lens-chip{white-space:nowrap}.selected-detail-card{padding:13px}.reasoning-list{margin-left:17px}}


/* Restored home + interaction refinements */
.loading-fallback{min-height:100vh;display:grid;place-items:center;background:var(--bg);color:var(--muted);font-weight:650}
.metrics-row{border-top:1px solid rgb(237,245,253);padding-top:18px;margin-top:18px;width:100%;}
.conversation-launch .send{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;flex:0 0 auto;font-size:24px;line-height:1;padding:0}
/* Conversation card headline/helper — selector previously targeted .conversation only, leaving these unstyled */
.conversation-card .prompt{font-size:24px;letter-spacing:-.5px;font-weight:760;margin:0 0 8px;color:var(--text)}
.conversation-card .helper{font-size:15px;color:var(--muted);margin:0 0 16px}
@media(max-width:520px){.conversation-card .prompt{font-size:20px}.conversation-card .helper{font-size:13px}}
.chat-input .send{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;flex:0 0 auto;font-size:18px;line-height:1;padding:0}
.btn{min-height:44px}
.upcoming .btn{min-height:44px;align-self:start}
.pattern-section-head{margin-top:18px}.pattern-section-head h2{font-size:15px}
@media(max-width:960px){.metrics-row{padding-top:14px;margin-top:14px}.conversation-launch .send{width:42px;height:42px}.upcoming .btn{width:100%}}


/* v0.4 content + layout refinements */
@media (min-width: 961px){
  /* One shared desktop page baseline. */
  .main{padding-top:90px;align-self:start}
}
.home-top{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(230px,.55fr) minmax(280px,.62fr);gap:16px;align-items:stretch}
.conversation-card{display:flex;flex-direction:column;justify-content:center}
.appointment-card{display:flex;flex-direction:column;justify-content:center;gap:16px}
.visit-button{width:100%;min-height:54px}
.home-prep-link{align-self:flex-start;text-align:left;margin-top:-8px}
.glance-card{display:flex;flex-direction:column;justify-content:center}
.glance-card .section-head{margin:0}
.glance-card .metrics-row{margin-top:18px;align-items:center}
.glance-num{font-weight:650;color:var(--text)}
.chat-fab{position:fixed;right:20px;bottom:24px;z-index:15;display:flex;align-items:center;gap:9px;background:#FBCB7A;color:#414652;border:0;border-radius:999px;padding:14px 20px 14px 16px;font-weight:760;font-size:14px;font-family:inherit;box-shadow:0 12px 28px rgba(251,203,122,.45)}
.chat-fab:active{background:#F3B85D}
.chat-fab-icon{width:18px;height:18px;flex:0 0 auto}
@media(max-width:960px){.chat-fab{bottom:calc(20px + env(safe-area-inset-bottom));right:16px;padding:12px 17px 12px 14px;font-size:13px}}
.lens-section-intro h3{margin:0 0 6px;font-size:18px;letter-spacing:-.25px}.lens-section-intro p{margin:0 0 15px;color:var(--muted);font-size:13px;line-height:1.5}
.fit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}.fit-grid article{border:1px solid var(--line);border-radius:12px;padding:13px;background:#fff;display:grid;gap:5px}.fit-grid strong{font-size:13px}.fit-grid span{font-size:12px;color:var(--muted);line-height:1.45}
.compact-callout{padding:13px;margin-bottom:16px}.compact-callout p{font-size:13px;margin:5px 0 0;color:var(--muted)}
.question-options{display:grid;gap:10px}.question-options article{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff}.question-options p{margin:0 0 12px;font-size:14px;font-weight:650;line-height:1.45}
.history-list{display:grid;margin:0 0 14px}.history-list>div{display:grid;grid-template-columns:82px 1fr;gap:3px 10px;border-bottom:1px solid #EAECEF;padding:11px 0}.history-list>div:last-child{border-bottom:0}.history-list span{grid-row:span 2;color:var(--muted);font-size:12px}.history-list strong{font-size:13px}.history-list p{grid-column:2;margin:0;font-size:12px;color:#4B5563;line-height:1.45}
.word-list{display:grid;gap:9px}.word-row{width:100%;display:grid;grid-template-columns:1fr auto;gap:4px 10px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:13px}.word-row strong{font-size:13px}.word-row span{grid-column:1;font-size:12px;color:var(--muted);line-height:1.45}.word-row b{grid-column:2;grid-row:1 / span 2;align-self:center;color:var(--blue);font-size:20px}.word-row.static{grid-template-columns:1fr}.lens-bottom-action{margin-top:16px}.lens-bottom-action p{margin:5px 0 11px;font-weight:680;font-size:13px;line-height:1.45}.lens-footnote{margin:16px 0 0;font-size:12px;color:var(--subtle);line-height:1.5}
@media(max-width:1180px) and (min-width:961px){.home-top{grid-template-columns:minmax(0,1fr) 260px}.glance-card{grid-column:span 2}.glance-card .metrics-row{min-height:0}}
@media(max-width:960px){.main{padding-top:84px}.home-top{grid-template-columns:minmax(0,1fr)}.appointment-card{gap:14px}.glance-card .metrics-row{min-height:0}.fit-grid{grid-template-columns:1fr}.lens-bottom-action{margin-bottom:4px}}
@media(max-width:520px){.home-top{gap:12px}.section-head{flex-wrap:wrap;row-gap:4px}.appointment-card{padding:16px}.fit-grid article{padding:12px}.history-list>div{grid-template-columns:68px 1fr}.history-list span{font-size:11px}.word-row{padding:12px}}
/* Shared page-header alignment. */
.lens-panel-full{width:100%;min-height:0}
.lens-panel-full .lens-content{max-width:1000px}
.detail-selector-wrap{position:relative}
.detail-selector-wrap::before,.detail-selector-wrap::after{content:'';position:absolute;top:0;bottom:4px;width:26px;pointer-events:none;opacity:0;transition:opacity .15s;z-index:1}
.detail-selector-wrap::before{left:0;background:linear-gradient(to right, var(--surface), rgba(255,255,255,0))}
.detail-selector-wrap::after{right:0;background:linear-gradient(to left, var(--surface), rgba(255,255,255,0))}
.detail-selector-wrap.can-scroll-left::before{opacity:1}
.detail-selector-wrap.can-scroll-right::after{opacity:1}
.detail-selector{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}
.detail-chip{border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px;text-align:left;display:grid;gap:4px;min-height:74px;color:#374151}
@media (hover:hover) and (pointer:fine){.detail-chip:hover{border-color:#6EE7B7;background:#F7FEFB}}
.detail-chip.active{border-color:#6EE7B7;background:var(--blue-2);color:var(--text)}
.detail-chip span{font-size:11px;color:var(--subtle);font-weight:760;text-transform:uppercase;letter-spacing:.55px}
.detail-chip.active span{color:#047552}
.detail-chip strong{font-size:13px;line-height:1.3}
.selected-detail-card{border:1px solid var(--blue-3);border-radius:14px;background:#F7FEFB;padding:18px;margin:0 0 16px}
.selected-detail-card h3{font-size:18px;letter-spacing:-.3px;margin:3px 0 8px;color:var(--text)}
.detail-copy{display:grid;gap:6px;margin-bottom:16px}
.lens-summary{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff;margin-top:14px}
.lens-summary h3{font-size:15px;margin:0 0 5px}.lens-summary p{margin:0;color:var(--muted);font-size:13px}
/* Serif test, scoped to the Specialist Lens reading passages only — the actual open
   questions, the big-question summary, and the pull-quote callout. Nav, chips, buttons,
   labels, and list-style content (history, word definitions) stay in Geist on purpose. */
.detail-copy p,.lens-summary p{font-family:var(--font-serif);font-size:16px;line-height:1.6}
.lens-bottom-action p{font-family:var(--font-serif);font-size:16px;font-weight:400;font-style:italic;line-height:1.55}
@media(max-width:960px){
 .main{padding-top:84px;align-self:auto}
 .detail-selector{grid-template-columns:1fr 1fr;gap:8px}
 .detail-chip{min-height:66px;padding:10px}
 .lens-panel-full .lens-content{max-width:none}
}
@media(max-width:520px){
 .detail-selector{display:flex;overflow-x:auto;padding-bottom:4px}
 .detail-chip{min-width:175px;flex:0 0 175px}
 .selected-detail-card{padding:15px}
}


/* Layout stability: horizontal centering only.
   The prior `margin:auto` centered each route vertically in the viewport,
   so screens with different content heights began at different Y positions. */
/* Shared desktop page-header alignment
   All primary routes begin from the same content baseline. */
@media (min-width: 961px){
  .main.page-home,
  .main.page-threads,
  .main.page-thread,
  .main.page-timeline,
  .main.page-patterns,
  .main.page-lens,
  .main.page-prep{
    padding-top:90px;
    align-self:start;
  }
}

/* Thread detail (restored from mobile v1) */
.thread-detail-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:-14px 0 18px}
.flare-note{background:var(--amber-bg);border-color:#FDE68A;color:#92400E;font-size:13px;font-weight:680;line-height:1.5}
.provider-chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid #EAECEF;background:#fff;color:#4B5563;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:700}
.head-with-hint{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.hint-link{font-weight:650;font-size:12px}
.range-toggle{display:flex;gap:6px;flex-wrap:wrap}
.timeline-source{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* Thread reference chip: status dot + status + thread name (name struck through when ruled out) */
.thread-chip .tc-status{font-weight:760}
.thread-chip .tc-sep{opacity:.55}
.thread-chip .tc-name{font-weight:640}
.thread-chip .struck{text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:currentColor}
.timeline-source .thread-chip{font-size:10px;padding:3px 8px}
.timeline-link{border:0;background:none;color:var(--blue);font-weight:720;font-size:12px;padding:0;text-align:left;margin-top:5px;justify-self:start}
.timeline-link:hover{text-decoration:underline}
.self-tag{display:inline-block;margin-left:7px;font-size:10px;font-weight:760;text-transform:uppercase;letter-spacing:.55px;color:#92400E;background:#FFFBEB;border-radius:99px;padding:3px 7px;vertical-align:1px}
.thread-lens-link{margin-top:18px}
.encounter-list{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:4px 18px}
.encounter-row{display:grid;grid-template-columns:84px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid #EAECEF;font-size:13px}
.encounter-row:last-child{border-bottom:0}
.enc-date{color:var(--muted);font-size:12px;padding-top:1px}
.enc-body{display:grid;gap:3px;color:#4B5563;line-height:1.45}
.enc-body strong{color:var(--text);font-size:13px}
@media(max-width:520px){.encounter-row{grid-template-columns:66px 1fr;gap:9px}.enc-date{font-size:11px}.encounter-list{padding:2px 14px}.thread-detail-head{margin-top:-8px}}

/* Thread status system — one component: dot + label + shape.
   Color tokens live here; swap to the Figma color system in one place. */
:root{
  --status-open:#047552; --status-open-bg:#F3FBFB; --status-open-line:#B4E8E3;         /* Primary/650 on Teal/50, Teal/200 stroke */
  --status-invest:#895806; --status-invest-bg:#FEF8EE; --status-invest-line:#FDEFD8;
  --status-monitor:#414652; --status-monitor-bg:#F5F5F6; --status-monitor-line:#EAECEF;
  --status-ruledout:#6B7280; --status-ruledout-bg:#F9FAFB;
  --status-unconn:#6B7280;
}
.thread{grid-template-columns:minmax(0,1fr) auto}
/* Status chip: leading dot + label, inline after the thread name */
.thread-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.status{display:inline-flex;align-items:center;gap:6px}
.main .status{cursor:pointer}
.main .status:hover{box-shadow:inset 0 0 0 1px currentColor}
.status::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto}
.open{color:var(--status-open);background:var(--status-open-bg);box-shadow:inset 0 0 0 1px var(--status-open-line)}
.investigating{color:var(--status-invest);background:var(--status-invest-bg);box-shadow:inset 0 0 0 1px var(--status-invest-line)}
.monitoring{color:var(--status-monitor);background:var(--status-monitor-bg);box-shadow:inset 0 0 0 1px var(--status-monitor-line)}
.ruledout{color:var(--status-ruledout);background:var(--status-ruledout-bg);box-shadow:inset 0 0 0 1px var(--status-monitor-line)}
.unconnected{color:var(--status-unconn)}
.thread-chevron{color:var(--subtle);font-size:22px;align-self:center;line-height:1}
.thread-ruledout{background:#FBFBFA}
.thread-ruledout .thread-desc{color:#6B7280}
.thread-ruledout .thread-name{color:var(--text);text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:currentColor}
.legend-list{display:grid;gap:12px}
.legend-row{display:grid;grid-template-columns:158px 1fr;gap:12px;align-items:start}
.legend-row p{margin:0;font-size:13px;color:#4B5563;line-height:1.5}
.legend-row .status{justify-self:start}
.legend-subhead{font-size:12px;text-transform:uppercase;letter-spacing:.7px;color:var(--subtle);margin:18px 0 10px;font-weight:800}
.legend-marker-cell{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:740;color:#374151}
.legend-marker-cell .timeline-marker{margin-top:0;flex:0 0 auto}
@media(max-width:960px){.thread{grid-template-columns:minmax(0,1fr) auto}}
@media(max-width:520px){.thread{grid-template-columns:minmax(0,1fr) auto}.legend-row{grid-template-columns:1fr;gap:4px}.thread-title-row{gap:8px}.status{max-width:none}}

/* Clinical-language toggle (reasoning layer) */
.medical-wording{border:1px dashed #A7F3D0;border-radius:11px;background:#fff;margin:10px 0 2px;padding:0}
.medical-wording summary{cursor:pointer;list-style:none;padding:11px 13px;color:var(--blue);font-weight:720;font-size:12px}
.medical-wording summary::-webkit-details-marker{display:none}
.medical-wording[open] summary{border-bottom:1px dashed #A7F3D0}
.medical-wording p{margin:0;padding:11px 13px;color:#374151;font-size:13px;line-height:1.55}
