@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Libre+Baskerville:wght@400;700&display=swap');
:root{--series-1:#2a78d6;--series-2:#d9663f;--ink:#263237;--muted:#738086;--line:#dfe6e4;--paper:#f7f9f7;--white:#fff;--sage:#d9e8df;--mint:#edf5f0;--teal:#3b7068;--navy:#314d57;--coral:#cc785e;--shadow:0 18px 40px rgba(48,73,68,.08)}
*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:'DM Sans',sans-serif;background:var(--paper);font-size:15px}button,input{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{width:270px;flex:0 0 270px;background:#fff;border-right:1px solid var(--line);padding:31px 20px 20px;display:flex;flex-direction:column;min-height:100vh}.brand{display:flex;align-items:center;gap:11px;padding:0 12px 32px}.brand-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--navy);color:#d6ebdf;font-size:23px;line-height:1}.brand-mark.small{width:34px;height:34px;border-radius:10px;font-size:19px}.brand strong{display:block;font-family:'Libre Baskerville',serif;font-size:20px;letter-spacing:-.7px}.brand span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:1px;margin-top:2px}.people-pill{display:flex;align-items:center;gap:10px;background:var(--mint);border-radius:13px;padding:11px 12px;margin-bottom:28px}.avatar,.profile-avatar{display:grid;place-items:center;border-radius:50%;background:#d4e4dc;color:var(--teal);font-weight:700;font-size:11px}.avatar{width:32px;height:32px}.people-pill b,.people-pill small{display:block}.people-pill b{font-size:12px}.people-pill small{color:var(--muted);font-size:10px;margin-top:2px}.chevron{margin-left:auto;color:var(--muted)}.nav-label,.eyebrow{font-family:'DM Mono',monospace;letter-spacing:1.4px;font-size:10px;color:var(--muted);margin:0 0 10px;text-transform:uppercase}.nav{display:flex;flex-direction:column;gap:4px}.nav-item{border:0;background:transparent;color:#67757a;width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:12px 13px;border-radius:10px;font-size:14px;transition:.18s}.nav-item:hover{color:var(--teal);background:#f5f8f6}.nav-item.active{background:var(--navy);color:#fff;box-shadow:0 8px 18px rgba(49,77,87,.18);transform:translateX(6px)}.nav-icon{width:17px;font-size:19px;line-height:1;color:#90a29f}.active .nav-icon{color:#d8ece2}.nav-item em{font-size:10px;font-style:normal;margin-left:auto;background:#e0ebe5;color:var(--teal);padding:2px 6px;border-radius:20px}.active em{background:#53716f;color:#fff}.sidebar-bottom{margin-top:auto}.sync-status{display:flex;align-items:center;gap:10px;padding:14px 12px;border-top:1px solid var(--line);margin-bottom:10px}.sync-status>span{width:8px;height:8px;border-radius:50%;background:#7bb88c;box-shadow:0 0 0 4px #e7f3e9}.sync-status b,.sync-status small{display:block}.sync-status b{font-size:11px}.sync-status small{font-size:10px;color:var(--muted);margin-top:3px}.logout-button{border:0;background:transparent;color:var(--muted);font-size:12px;width:100%;text-align:left;padding:11px 12px}.logout-button span{float:right}.main-content{flex:1;min-width:0}.topbar{height:82px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.78);display:flex;align-items:center;justify-content:space-between;padding:0 5.2vw;position:sticky;top:0;z-index:2;backdrop-filter:blur(14px)}.breadcrumb{font:10px 'DM Mono',monospace;letter-spacing:1.2px;color:var(--muted)}.breadcrumb span{padding:0 9px;color:#b3bfbd}.breadcrumb b{color:var(--teal);font-weight:500}.top-actions{display:flex;gap:19px;align-items:center}.icon-button{border:0;background:transparent;color:var(--muted);font-size:22px;position:relative}.icon-button i{position:absolute;width:5px;height:5px;background:var(--coral);border-radius:50%;top:1px;right:0}.profile-avatar{width:31px;height:31px}.content-wrap{max-width:1050px;padding:54px 5.2vw 90px;margin:auto}.tab-panel{display:none;animation:fadeIn .35s ease}.tab-panel.active{display:block}@keyframes fadeIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:42px}.page-heading h1{font:700 42px 'Libre Baskerville',serif;letter-spacing:-1.8px;margin:0 0 12px;color:#25383e}.subtitle{color:var(--muted);margin:0;font-size:15px}.outline-button,.primary-button{border:1px solid #c8d8d0;background:var(--white);border-radius:9px;padding:11px 16px;color:var(--teal);font-weight:600;font-size:12px;white-space:nowrap}.primary-button{background:var(--navy);color:#fff;border-color:var(--navy);display:flex;justify-content:center;gap:14px;align-items:center}.primary-button span{font-size:17px}.compact{padding:10px 14px}.hero-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:18px;margin-bottom:48px}.feature-card,.quote-card,.need-card,.family-card,.synopsis-card,.empty-card,.upload-banner,.labs-card,.medication-row{background:var(--white);border:1px solid var(--line);border-radius:14px}.feature-card{padding:29px 31px 23px;background:#e5f0e8;border-color:#d5e4da;min-height:226px}.card-kicker{font:10px 'DM Mono',monospace;letter-spacing:1.2px;color:var(--teal);margin-bottom:20px}.feature-card h2{font:400 24px 'Libre Baskerville',serif;line-height:1.4;max-width:550px;margin:0 0 13px;color:#2d474e}.feature-card p,.quote-card small{color:#71837d;font-size:13px}.card-footer{border-top:1px solid #c9ddd0;margin-top:26px;padding-top:14px;display:flex;justify-content:space-between;font-size:10px;color:#789088}.card-footer b{color:var(--teal)}.quote-card{padding:29px 28px;background:#fffdf8;border-color:#eee9db}.quote-mark{font:62px 'Libre Baskerville',serif;color:#d7a587;height:47px}.quote-card p{font:400 19px 'Libre Baskerville',serif;line-height:1.55;color:#475357;margin:0 0 17px}.section-row{display:flex;justify-content:space-between;align-items:end;margin:0 0 17px}.section-title{font:400 24px 'Libre Baskerville',serif;margin:0;color:#2d4147}.muted{color:var(--muted);font-size:11px}.need-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:45px}.need-card{padding:19px;display:flex;gap:14px;align-items:flex-start}.check-circle{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#e4f1e5;color:#55956a;font-size:12px;flex:0 0 auto}.need-card h3{margin:0 0 6px;font-size:14px;font-weight:600}.need-card p{margin:0;color:var(--muted);font-size:11px;line-height:1.4}.more-button{margin-left:auto;border:0;background:transparent;color:#9daaa8;letter-spacing:2px;padding:0 3px}.question-list{border-top:1px solid var(--line)}.question-row{display:flex;align-items:center;gap:18px;padding:17px 4px;border-bottom:1px solid var(--line);font-size:13px}.question-number{color:#a3b1ad;font:10px 'DM Mono',monospace}.text-button{border:0;background:none;padding:0;color:var(--teal);font-size:11px;font-weight:600}.timeline{position:relative;margin-left:61px;border-left:1px solid #cad8d4;padding:2px 0 10px}.timeline-item{position:relative;padding-left:38px;padding-bottom:30px}.timeline-date{position:absolute;right:calc(100% + 17px);top:5px;width:95px;text-align:right;font:10px 'DM Mono',monospace;color:var(--muted)}.timeline-dot{position:absolute;left:-5px;top:6px;width:9px;height:9px;border:2px solid var(--teal);background:var(--paper);border-radius:50%}.timeline-card{padding:22px 24px;background:#fff;border:1px solid var(--line);border-radius:12px}.status-chip,.lab-status,.person-tag,.current-tag{font:9px 'DM Mono',monospace;letter-spacing:.7px}.status-chip{display:inline-block;color:var(--teal);background:#e6f2e9;padding:5px 7px;border-radius:4px}.timeline-card h2{font:400 20px 'Libre Baskerville',serif;margin:14px 0 8px}.timeline-card p{margin:0 0 16px;color:var(--muted);font-size:13px}.family-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.family-card{padding:26px;min-height:180px}.family-icon{font-size:30px;color:#75a399;margin-bottom:15px}.family-card h2{font:400 18px 'Libre Baskerville',serif;line-height:1.45;margin:0 0 22px}.labs-card{overflow:hidden}.table-head,.lab-row{display:grid;grid-template-columns:1fr 1.4fr 1fr 1fr .8fr;gap:15px;align-items:center;padding:16px 20px}.table-head{background:#f1f6f3;color:#7f918d;font:10px 'DM Mono',monospace;letter-spacing:.8px}.lab-row{border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.lab-row b{color:var(--ink)}.lab-row strong{color:var(--teal)}.lab-status{color:#b17c42}.upload-banner{display:flex;align-items:center;gap:16px;padding:18px 21px;margin-bottom:24px;background:#f0f6f2}.upload-icon{width:38px;height:38px;border-radius:11px;background:#dbece2;color:var(--teal);display:grid;place-items:center;font-size:20px}.upload-banner h3{margin:0 0 4px;font-size:13px}.upload-banner p{margin:0;color:var(--muted);font-size:11px}.upload-banner .primary-button{margin-left:auto}.document-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.document-card{display:flex;align-items:center;gap:14px;padding:17px 18px;background:#fff;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink)}.document-card h3{font-size:13px;margin:0 0 5px}.document-card p{font-size:11px;color:var(--muted);margin:0}.document-card>span{margin-left:auto;color:var(--teal)}.pdf-icon{width:35px;height:40px;background:#f8e9e5;border:1px solid #f0d4ca;border-radius:5px;color:#bf6d55;font:10px 'DM Mono',monospace;display:grid;place-items:center}.empty-card{text-align:center;padding:58px 20px;grid-column:1/-1}.empty-icon{font-size:29px;color:#8cb4a5}.empty-card h2{font:400 20px 'Libre Baskerville',serif;margin:14px 0 8px}.empty-card p{color:var(--muted);font-size:13px}.medication-list{display:flex;flex-direction:column;gap:10px}.medication-row{display:flex;align-items:center;gap:15px;padding:16px 19px}.med-icon{width:37px;height:37px;border-radius:10px;background:#e7f1ee;color:var(--teal);display:grid;place-items:center;font-size:22px}.med-copy{flex:1}.med-copy h2{font:400 16px 'Libre Baskerville',serif;margin:0 0 5px}.med-copy p{margin:0;color:var(--muted);font-size:11px}.med-copy p span{padding:0 5px;color:#b2bfbc}.person-tag{padding:4px 7px;border-radius:4px;background:#eef3f0;color:var(--muted)}.current-tag{color:#5a9b68}.synopsis-card{padding:27px 30px;max-width:790px}.synopsis-header{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px;padding-bottom:21px;border-bottom:1px solid var(--line)}.synopsis-text{font:400 21px/1.7 'Libre Baskerville',serif;color:#334a50;margin:29px 0 33px}.synopsis-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid var(--line);padding-top:22px}.synopsis-columns p:not(.eyebrow){font-size:12px;line-height:1.6;margin:0;color:var(--muted)}.disclaimer{max-width:790px;font-size:11px;color:#889692;margin-top:23px;background:#eef3f0;padding:13px 16px;border-radius:8px}.toast{position:fixed;right:27px;bottom:26px;background:var(--navy);color:#fff;border-radius:9px;padding:13px 17px;font-size:12px;box-shadow:var(--shadow);opacity:0;transform:translateY(10px);pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:none}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 80% 12%,#e0efe6,transparent 35%),#f4f8f5}.login-card{width:min(440px,calc(100vw - 38px));background:#fff;border:1px solid var(--line);border-radius:18px;padding:42px 42px 32px;box-shadow:var(--shadow)}.login-card .brand-mark{margin-bottom:25px}.login-card h1{font:400 30px/1.25 'Libre Baskerville',serif;letter-spacing:-1px;color:#2b444b;margin:9px 0 14px}.login-copy{color:var(--muted);font-size:14px;line-height:1.6;margin:0 0 28px}.login-form{display:flex;flex-direction:column;gap:16px}.login-form label{color:#60716f;font:10px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:1px}.login-form input{display:block;width:100%;margin-top:7px;border:1px solid #cad8d3;border-radius:8px;padding:12px;color:var(--ink);outline:none}.login-form input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #e4f1ec}.form-error{font-size:12px;color:#af5b4c;margin:0}.login-form .primary-button{margin-top:2px;padding:13px}.security-note{border-top:1px solid var(--line);margin:27px 0 0;padding-top:18px;color:#889793;font-size:11px}.lock-dot{color:#72a685;font-size:9px;margin-right:7px}
@media(max-width:850px){.content-wrap{padding-left:4vw;padding-right:4vw}.topbar{padding:0 4vw}.page-heading{align-items:flex-start;flex-direction:column}.hero-grid,.need-grid,.document-grid,.family-grid{grid-template-columns:1fr}.timeline{margin-left:0;border-left:0}.timeline-date{position:static;width:auto;text-align:left;margin-bottom:8px}.timeline-dot{display:none}.timeline-item{padding-left:0}.table-head{display:none}.lab-row{grid-template-columns:1fr 1.3fr 1fr;gap:7px}.lab-row span:nth-of-type(2){display:none}.upload-banner{align-items:flex-start;flex-wrap:wrap}.upload-banner .primary-button{margin-left:54px}}
@media(max-width:620px){.topbar{height:62px}.page-heading h1{font-size:33px}.feature-card{padding:23px}.hero-grid{margin-bottom:37px}.section-title{font-size:21px}.synopsis-columns{grid-template-columns:1fr}.medication-row{flex-wrap:wrap}.person-tag{margin-left:52px}.current-tag{margin-left:auto}}
.file-button{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:5px}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}

/* ---------- phones and portrait tablets: every section reachable from a top tab strip ---------- */
@media(max-width:900px){
.app-shell{flex-direction:column}
.sidebar{position:sticky;top:0;z-index:5;width:100%;flex:none;min-height:0;padding:10px 0 0;border-right:0;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(14px)}
.brand{padding:0 16px 8px}
.brand-mark.small{width:30px;height:30px;font-size:17px}
.brand strong{font-size:17px}
.people-pill,.nav-label,.sync-status{display:none}
.nav{flex-direction:row;gap:6px;overflow-x:auto;padding:4px 16px 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-padding:0 16px}
.nav::-webkit-scrollbar{display:none}
.nav-item{width:auto;flex:none;padding:9px 13px;font-size:13px;border-radius:20px;background:#f2f6f4;white-space:nowrap;min-height:40px}
.nav-item.active{transform:none;box-shadow:none}
.nav-icon{font-size:15px;width:auto}
.sidebar-bottom{position:absolute;top:8px;right:8px;margin:0}
.logout-button{padding:10px 12px;width:auto}
.topbar{display:none}
.content-wrap{padding:28px 16px 70px}
}
@media(max-width:620px){.page-heading{margin-bottom:24px}.page-heading h1{font-size:30px}}

/* ---------- vitals ---------- */
.filter-row{display:flex;flex-wrap:wrap;gap:10px;margin:-18px 0 22px;position:sticky;top:82px;z-index:1;padding:10px 0;background:var(--paper)}
@media(max-width:900px){.filter-row{top:104px;margin-top:-8px}}
.segmented{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:10px;padding:3px}
.segmented button{border:0;background:transparent;color:var(--muted);font-size:13px;font-weight:600;padding:8px 14px;border-radius:7px;min-height:38px;min-width:44px}
.segmented button.on{background:var(--navy);color:#fff}
.vitals-body{display:flex;flex-direction:column;gap:16px;transition:opacity .2s}
.vitals-body.refreshing{opacity:.45}
.vital-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px 16px;min-width:0}
.vital-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:10px}
.vital-head h2{font:400 19px 'Libre Baskerville',serif;margin:0 0 4px;color:#2d4147}
.vital-stats{text-align:right}
.vital-value{font-size:28px;font-weight:600;letter-spacing:-.5px;color:var(--ink);line-height:1.1}
.vital-value span{font-size:13px;font-weight:500;color:var(--muted)}
.vital-meta{margin:3px 0 0;font-size:12px;color:var(--muted)}
.vital-empty{font-size:13px;color:var(--muted);margin:6px 0 4px}
.vital-sources{font-size:11px;color:#8a9894;margin:8px 0 0}
.legend{display:flex;gap:16px;font-size:12px;color:var(--muted);margin:0 0 4px}
.legend i,.tip-row i{display:inline-block;width:14px;height:2px;border-radius:2px;vertical-align:middle;margin-right:6px}
.plot{position:relative;width:100%;min-height:210px;touch-action:pan-y}
.plot.strip{min-height:56px}
.strip .chart-tip{top:46px}
.chart-label{margin:14px 0 2px}
.chart-svg{display:block;overflow:visible;outline:none;-webkit-tap-highlight-color:transparent}
.chart-svg:focus-visible:not([data-pointer]){outline:2px solid var(--series-1);outline-offset:4px;border-radius:4px}
.chart-svg .grid{stroke:#e8eeec;stroke-width:1}
.chart-svg .tick{font:10px 'DM Mono',monospace;fill:#8a9894;font-variant-numeric:tabular-nums}
.chart-svg .band{fill:#eef5f0}
.chart-svg .band-label{font:10px 'DM Sans',sans-serif;fill:#7f938c}
.chart-svg .data-line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.chart-svg .raw-line{fill:none;stroke-width:1;opacity:.35;stroke-linejoin:round}
.chart-svg .dot{stroke:#fff;stroke-width:2}
.chart-svg .crosshair{stroke:#9aa9a5;stroke-width:1}
.chart-svg .focus-dot{stroke:#fff;stroke-width:2}
.chart-svg .period-bar{fill:var(--series-2);outline:none}
.chart-svg .period-bar:focus-visible{stroke:var(--ink);stroke-width:2}
.chart-tip{position:absolute;top:4px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:10px 12px;font-size:12px;min-width:150px;z-index:3;pointer-events:auto}
.tip-row{display:flex;align-items:center;gap:6px;margin-bottom:2px}
.tip-row strong{font-size:15px;color:var(--ink)}
.tip-row span{color:var(--muted)}
.tip-sub{color:var(--muted);font-size:11px;margin-top:2px}
.tip-link{display:block;margin-top:8px;border:0;background:var(--mint);color:var(--teal);font-weight:600;font-size:12px;border-radius:7px;padding:8px 10px;width:100%;text-align:left}
.table-toggle{margin-top:8px}
.table-toggle>.text-button{font-size:12px;padding:8px 0}
.reading-table{max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:10px;margin-top:6px}
.reading-table table{width:100%;border-collapse:collapse;font-size:12px}
.reading-table th{position:sticky;top:0;background:#f1f6f3;color:#7f918d;font:10px 'DM Mono',monospace;letter-spacing:.6px;text-align:left;padding:9px 12px;text-transform:uppercase}
.reading-table td{border-top:1px solid var(--line);padding:9px 12px;color:var(--ink)}
.reading-table td:first-child{white-space:nowrap}
.reading-table .num{text-align:right;font-variant-numeric:tabular-nums}
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:6px 0 8px}
.stat-tile{background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:13px 14px}
.stat-tile .eyebrow{margin:0 0 6px}
.stat-value{font-size:22px;font-weight:600;color:var(--ink)}
@media(max-width:620px){.vital-card{padding:16px 14px 12px}.vital-stats{text-align:left}.vital-value{font-size:24px}}

/* ---------- source document viewer ---------- */
html{scroll-padding-top:150px}
body.viewer-open{overflow:hidden}
.viewer{position:fixed;inset:0;z-index:20;background:#e9eeec;display:flex;flex-direction:column}
.viewer[hidden]{display:none}
.viewer-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;padding-top:max(10px,env(safe-area-inset-top));background:#fff;border-bottom:1px solid var(--line)}
.viewer-back{border:0;background:var(--navy);color:#fff;font-weight:600;font-size:14px;border-radius:9px;padding:10px 16px;min-height:44px}
.viewer-title{flex:1;min-width:0}
.viewer-title b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.viewer-page{font-size:12px;color:var(--muted)}
.viewer-tools{display:flex;gap:6px;align-items:center}
.viewer-tools button{width:44px;height:44px;border:1px solid var(--line);background:#fff;border-radius:9px;font-size:18px;color:var(--teal)}
.viewer-original{font-size:12px;font-weight:600;color:var(--teal);padding:0 6px;text-decoration:none;white-space:nowrap}
.viewer-pages{flex:1;overflow:auto;padding:12px;-webkit-overflow-scrolling:touch}
.viewer-sheet{background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.12);margin:0 auto 12px}
.viewer-sheet canvas{display:block;width:100%;height:100%}
.viewer-status{color:var(--muted);margin-top:40px;text-align:center}
@media(max-width:620px){.viewer-original{display:none}.viewer-bar{gap:8px;padding-left:10px;padding-right:10px}}

/* ---------- extracted records ---------- */
.data-body{display:flex;flex-direction:column;gap:14px}
.card-title{font:400 19px 'Libre Baskerville',serif;margin:0 0 10px;color:#2d4147}
.list-note{margin:-10px 0 4px}
.chip{display:inline-block;font:10px 'DM Mono',monospace;letter-spacing:.5px;padding:4px 7px;border-radius:5px;background:#eef3f0;color:var(--muted);white-space:nowrap}
.chip.bad{background:#fbe9e4;color:#a8432a}
.chip.warn{background:#fdf1dc;color:#8a5a00}
.chip.good{background:#e4f1e5;color:#2f7a3f}
.chip-row{display:flex;flex-wrap:wrap;gap:8px}
.source-link{border:0;background:none;padding:6px 0;color:var(--teal);font-size:12px;font-weight:600;text-align:left;white-space:nowrap}
.condition-list{display:flex;flex-direction:column}
.condition-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.condition-row:first-child{border-top:0}
.timeline-year{margin:18px 0 8px}
.data-body .timeline{margin-left:61px}
@media(max-width:850px){.data-body .timeline{margin-left:0}}
.search-input{flex:1;min-width:200px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;background:#fff;min-height:44px}
.search-input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px #e4f1ec}
.toggle-button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:0 14px;font-size:13px;font-weight:600;color:var(--muted);min-height:44px}
.toggle-button.on{background:var(--navy);border-color:var(--navy);color:#fff}
.filter-row.plain{position:static;margin:0 0 4px;padding:0}
.record-list{display:flex;flex-direction:column;gap:8px}
.record-row{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink)}
.record-row[hidden]{display:none}
.record-row:hover{border-color:#c8d8d0}
.record-copy{flex:1;min-width:0}
.record-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.record-title b{font-size:14px}
.record-summary{font-size:12px;color:#5f6f6c;margin:6px 0 0;line-height:1.5}
.record-arrow{color:var(--teal);align-self:center}
.lab-list{display:flex;flex-direction:column;gap:6px}
.lab-wrap{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.lab-item{display:grid;grid-template-columns:minmax(0,2fr) 80px minmax(0,1fr) 86px minmax(0,1fr);gap:12px;align-items:center;width:100%;border:0;background:none;padding:12px 16px;text-align:left;color:var(--ink);min-height:56px}
.lab-item.flagged{box-shadow:inset 3px 0 0 #d9663f}
.lab-name b{display:block;font-size:14px;font-weight:600}
.lab-name small{font-size:11px;color:var(--muted)}
.lab-value{font-weight:600;font-size:14px;font-variant-numeric:tabular-nums}
.lab-ref{font-size:12px;color:var(--muted)}
.spark{width:80px;height:24px;overflow:visible}
.spark path{fill:none;stroke:var(--series-1);stroke-width:1.5}
.spark circle{fill:var(--series-1)}
.lab-detail{padding:4px 16px 16px;border-top:1px solid var(--line)}
.lab-detail .plot{margin-top:14px}
@media(max-width:700px){.lab-item{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name value" "spark flag" "ref ref";row-gap:4px}
.lab-name{grid-area:name}.lab-value{grid-area:value;text-align:right}.spark{grid-area:spark}.lab-flag{grid-area:flag;justify-self:end}.lab-ref{grid-area:ref}}
.gene-row{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid var(--line)}
.gene-main{min-width:0}
.gene-main b{margin-right:8px}
.gene-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}
.mono{font:12px 'DM Mono',monospace;color:#5f6f6c;white-space:pre-line}
.caveat{background:#fdf6e8;border:1px solid #f0dfb8;border-radius:12px;padding:14px 16px;font-size:13px;line-height:1.55;color:#5b4a26}
.reading-table.tall{max-height:none}
.reading-table tr.detected td:first-child{box-shadow:inset 3px 0 0 #d9663f}

details.more summary{font-size:12px;color:var(--muted);cursor:pointer;list-style:none;line-height:1.5}
details.more summary::-webkit-details-marker{display:none}
details.more[open] summary{display:none}

/* ---------- goals ---------- */
.goal-list{border-top:1px solid var(--line);margin-bottom:40px}
.goal-row{display:flex;align-items:center;gap:16px;padding:12px 4px;border-bottom:1px solid var(--line);font-size:14px;min-height:52px}
.goal-text{flex:1;line-height:1.45}
.goal-actions{display:flex;gap:16px}
.goal-actions .text-button{font-size:12px;min-height:44px}
.goal-form{display:flex;flex:1;flex-wrap:wrap;gap:8px;padding:12px 0}
.goal-row .goal-form{padding:0}
.goal-empty{padding:14px 4px}
