:root {
  --paper:#fbfaf6; --white:#fff; --forest:#212e1f; --ink:#232520;
  --sage:#879a85; --soft-sage:#e6e9e2; --tan:#f7f6ee; --sand:#d2d1ad;
  --muted:#6b6b60; --rule:#dfdcd0; --link:#3a4b00; --gain:#3f6546; --loss:#963c31;
  --radius:12px;
  color:var(--ink); background:var(--paper);
  font: 1rem/1.47 "Outfit", system-ui, -apple-system, sans-serif;
  font-variant-numeric: tabular-nums;
}
*, *::before, *::after { box-sizing:border-box; }
body { margin:0; min-width:0; }
::selection { background:var(--sand); color:var(--forest); }
:focus-visible { outline:3px solid var(--link); outline-offset:3px; }
.masthead :focus-visible { outline-color:var(--sand); }
[hidden] { display:none !important; }
.shell { width:min(100% - 64px, 1240px); margin-inline:auto; }
.skip { position:absolute; top:10px; left:12px; transform:translateY(-150%); padding:10px; background:var(--white); z-index:10; color:var(--link); }
.skip:focus { transform:none; }
button, input, select { font:inherit; }
button, select, summary { cursor:pointer; }
a { color:var(--link); text-underline-offset:3px; }
p { margin:.55rem 0 0; }
h1, h2, h3 { margin:0; text-wrap:balance; }
h1, h2 { font-family:"DM Serif Display", Georgia, serif; font-weight:400; }
h1 { font-size:clamp(2rem, 3.7vw, 3.15rem); line-height:1.05; letter-spacing:-.027em; }
h2 { font-size:clamp(1.45rem, 2.25vw, 1.9rem); line-height:1.14; letter-spacing:-.018em; }
h3 { font-weight:660; font-size:1.07rem; line-height:1.36; }
.masthead { background:var(--forest); color:var(--paper); }
.mast-inner { min-height:74px; display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:24px; align-items:center; }
.brand { display:inline-flex; flex-wrap:wrap; align-items:center; gap:8px 14px; justify-self:start; color:var(--paper); text-decoration:none; }
.brand-name { font:400 1.52rem/1.1 "DM Serif Display", Georgia, serif; white-space:nowrap; }
.brand-app { font-size:.8rem; color:var(--soft-sage); padding-left:14px; border-left:1px solid #688064; white-space:nowrap; }
.main-nav { display:flex; gap:8px; align-items:center; }
.main-nav a, .signout button { color:var(--paper); text-decoration:none; font-size:.89rem; font-weight:600; border-radius:6px; min-height:42px; padding:10px 16px; display:flex; align-items:center; }
.main-nav a[aria-current], .main-nav a:hover { background:var(--soft-sage); color:var(--forest); }
.signout { justify-self:end; margin:0; }
.signout button { background:transparent; border:1px solid #688064; min-height:39px; padding:8px 12px; }
.signout button:hover { background:#31442e; }
.content { padding-block:40px 56px; min-height:calc(100vh - 143px); }
.page-head { display:flex; justify-content:space-between; align-items:end; gap:16px 24px; margin-bottom:27px; }
.comparison { color:var(--muted); font-size:.91rem; margin-top:8px; }
.versus { margin-inline:.25em; }
.period { display:inline-flex; background:var(--white); border:1px solid var(--rule); border-radius:8px; padding:3px; align-self:end; flex:none; }
.period a { min-height:40px; display:grid; place-items:center; text-decoration:none; color:var(--ink); font-size:.85rem; font-weight:640; padding:0 14px; border-radius:5px; white-space:nowrap; }
.period a[aria-current] { background:var(--forest); color:var(--paper); }
.period a:hover:not([aria-current]) { background:var(--soft-sage); }
.outcomes { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:0 0 24px; background:var(--white); border:1px solid var(--rule); border-radius:var(--radius); }
.outcome { min-width:0; padding:21px 22px 18px; }
.outcome + .outcome { border-left:1px solid var(--rule); }
.outcome dt { color:var(--muted); font-size:.875rem; }
.outcome dd { margin:0; }
.outcome .measure { font-size:clamp(1.85rem,3.45vw,2.85rem); font-weight:600; letter-spacing:-.035em; line-height:1.23; margin:3px 0 7px; }
.measure-change { display:flex; flex-wrap:wrap; gap:2px 8px; color:var(--muted); font-size:.8rem; }
.measure-change .gain, .measure-change .decline { font-weight:700; }
.gain { color:var(--gain); }
.decline, .error, .errorlist { color:var(--loss); }
.panel { background:var(--white); border:1px solid var(--rule); border-radius:var(--radius); min-width:0; }
.overview-grid { display:grid; grid-template-columns:minmax(0, 2.26fr) minmax(260px,1fr); gap:20px; align-items:start; }
.trend, .next-action { padding:23px 24px; }
.panel-head p, .results-head p, .method-note { font-size:.85rem; color:var(--muted); }
.chart-key, .chart-key span { display:flex; align-items:center; gap:8px; }
.chart-key { flex-wrap:wrap; gap:6px 20px; color:var(--muted); font-size:.8rem; margin:16px 0 14px; }
.sample { width:21px; border-top:2px solid var(--gain); align-self:center; }
.sample.previous { border-color:#81785d; border-top-style:dashed; }
.trend-chart { display:grid; grid-template-columns:30px minmax(0,1fr); align-items:start; column-gap:8px; }
.chart-ticks { display:flex; flex-direction:column; justify-content:space-between; height:204px; font-size:.72rem; text-align:right; color:var(--muted); padding:0 0 2px; }
.plot { min-width:0; height:204px; }
.plot svg { display:block; width:100%; height:100%; }
.axis { stroke:var(--rule); stroke-width:1; fill:none; }
.current-line, .earlier-line { fill:none; stroke-width:2.25; stroke-linejoin:round; stroke-linecap:round; }
.current-line { stroke:var(--gain); }
.earlier-line { stroke:#81785d; stroke-dasharray:5 5; }
.cursor { stroke:var(--sage); stroke-width:1; }
.chart-dates { display:flex; justify-content:space-between; color:var(--muted); font-size:.74rem; margin-top:5px; }
.day-readout { grid-column:2; margin-top:8px; min-height:26px; font-size:.8rem; color:var(--ink); }
.daily { border-top:1px solid var(--rule); margin-top:14px; padding-top:12px; }
.daily summary { width:fit-content; font-size:.86rem; color:var(--link); font-weight:650; }
.daily .text-link { display:inline-block; margin-top:10px; font-size:.85rem; }
.table-scroller { overflow:auto; max-height:320px; margin-top:12px; }
.daily-table { width:100%; border-collapse:collapse; text-align:left; font-size:.83rem; }
.daily-table th, .daily-table td { padding:6px 5px; border-bottom:1px solid var(--rule); }
.next-action { background:var(--soft-sage); border-color:#d4dad0; }
.next-action h2 { margin-bottom:17px; }
.next-action h3 { margin-bottom:8px; }
.next-action p { font-size:.91rem; line-height:1.55; margin-top:10px; }
.next-action .follow-up { border-top:1px solid #c1c9bd; margin-top:15px; padding-top:12px; color:#425440; }
.button { display:inline-flex; justify-content:center; align-items:center; gap:12px; min-height:43px; border:1px solid transparent; border-radius:7px; padding:9px 14px; color:var(--forest); font-size:.88rem; line-height:1.25; font-weight:650; text-decoration:none; }
.button-primary { background:var(--forest); color:var(--paper); }
.button-primary:hover { background:#354a32; }
.button-secondary { background:var(--white); border-color:var(--rule); }
.button-secondary:hover { background:var(--soft-sage); }
.next-action .button { margin-top:18px; }
.sections { display:flex; flex-wrap:wrap; gap:6px 9px; padding:0 0 12px; border-bottom:1px solid var(--rule); margin-bottom:17px; }
.sections a { display:inline-flex; align-items:center; min-height:42px; padding:6px 12px; border-radius:6px; text-decoration:none; color:var(--ink); font-size:.88rem; font-weight:620; }
.sections a[aria-current], .sections a:hover { background:var(--soft-sage); color:var(--forest); }
.filters { padding:15px 17px; display:flex; align-items:end; flex-wrap:wrap; gap:11px; margin-bottom:17px; }
.field { min-width:0; flex:1 1 106px; }
.query-field, .page-field { flex:2 1 200px; }
.country-field { flex:1 1 102px; }
.field label { display:block; margin:0 0 5px; color:var(--ink); font-size:.81rem; font-weight:650; }
input:not([type=hidden]), select { border:1px solid #c6c7b9; border-radius:6px; padding:8px 10px; width:100%; min-width:0; min-height:43px; background:var(--white); font-size:.9rem; line-height:1.3; color:var(--ink); }
input::placeholder { color:var(--muted); opacity:1; }
.filter-actions { display:flex; gap:12px; align-items:center; white-space:nowrap; justify-content:flex-start; }
.filter-actions .text-link { font-size:.88rem; display:grid; align-items:center; min-height:43px; }
.weekly-filter .field { flex:0 1 310px; }
.results-head { padding:17px 21px; display:flex; justify-content:space-between; gap:12px; align-items:center; }
.sort-row { border-block:1px solid var(--rule); background:var(--tan); display:flex; flex-wrap:wrap; align-items:center; gap:4px 11px; padding:7px 20px; font-size:.81rem; }
.sort-row a { color:var(--ink); min-height:32px; display:flex; align-items:center; gap:4px; }
.sort-row a[aria-current] { color:var(--link); font-weight:670; }
.evidence-list { list-style:none; padding:0; margin:0; }
.evidence-row + .evidence-row, .weekly-row { border-top:1px solid var(--rule); }
.result-summary, .weekly-row { display:grid; grid-template-columns:minmax(160px,1.2fr) minmax(250px,1.5fr) 18px; align-items:center; gap:16px; padding:13px 21px; }
.result-summary { list-style:none; }
.result-summary::-webkit-details-marker { display:none; }
.result-summary:hover, .result-summary:focus-visible { background:var(--tan); }
.result-summary:focus-visible { outline-offset:-3px; }
.identity { display:grid; gap:2px; min-width:0; overflow-wrap:anywhere; }
.identity strong { font-size:.96rem; line-height:1.35; }
.identity .path, .identity small { color:var(--muted); }
.identity .path { font-size:.84rem; }
.identity small { font-size:.75rem; }
.row-figures { min-width:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); text-align:right; gap:8px; }
.row-figures span { display:grid; gap:2px; min-width:0; }
.row-figures b { font-size:.99rem; font-weight:640; overflow-wrap:anywhere; }
.row-figures small { font-size:.73rem; color:var(--muted); }
.disclosure { display:block; width:8px; height:8px; border:solid var(--link); border-width:0 2px 2px 0; transform:rotate(45deg); justify-self:center; }
details[open] .disclosure { transform:rotate(225deg); }
.row-details { font-size:.86rem; background:var(--tan); margin:0 19px 13px; padding:13px 16px; border-radius:7px; }
.row-details dl { margin:0; display:grid; grid-template-columns:minmax(125px,.35fr) minmax(0,1.65fr); gap:6px 14px; }
.row-details dt { font-weight:620; }
.row-details dd { margin:0; overflow-wrap:anywhere; }
.weekly-row { grid-template-columns:minmax(140px,1fr) minmax(200px,1fr); }
.weekly-row .row-figures { grid-template-columns:repeat(3,minmax(0,1fr)); }
.pagination { padding:14px 20px; border-top:1px solid var(--rule); display:flex; justify-content:end; align-items:center; gap:12px; font-size:.86rem; }
.method-note { padding-inline:2px; margin-top:14px; max-width:76ch; }
.empty { padding:23px; }
.empty p { color:var(--muted); max-width:60ch; }
.empty .text-link { display:inline-block; margin-top:9px; }
.account-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,420px); gap:36px; align-items:start; max-width:1000px; margin:65px auto 35px; }
.account-intro { padding-block:22px; }
.account-intro p { max-width:34ch; color:var(--muted); margin-top:13px; font-size:1.1rem; }
.account-panel { max-width:460px; padding:26px; }
.account-panel form { display:grid; gap:16px; margin-top:20px; }
.account-panel .button { justify-self:start; min-width:105px; }
.account-panel .text-link { display:inline-block; margin-top:14px; }
.account-panel > p { color:var(--muted); }
.errorlist { margin:4px 0 0; padding-left:18px; font-size:.83rem; }
.footer { padding:19px 0 24px; border-top:1px solid var(--rule); color:var(--muted); font-size:.79rem; }
.footer span { margin:0 5px; }
@media (max-width:950px) {
  .brand-app { display:none; }
  .overview-grid { grid-template-columns:minmax(0,1.9fr) minmax(235px,1fr); gap:14px; }
  .trend, .next-action { padding:17px; }
  .outcome { padding:18px 16px; }
}
@media (max-width:720px) {
  .shell { width:calc(100% - 36px); }
  .mast-inner { min-height:65px; gap:9px; }
  .main-nav { gap:3px; }
  .main-nav a, .signout button { font-size:.79rem; padding:8px 9px; }
  .brand-name { font-size:1.18rem; }
  .content { padding-top:32px; }
  .page-head { align-items:start; flex-direction:column; margin-bottom:19px; }
  .period { align-self:start; }
  .overview-grid { grid-template-columns:1fr; gap:14px; }
  .outcomes { grid-template-columns:repeat(2,minmax(0,1fr)); margin-bottom:15px; }
  .outcome:nth-child(3) { border-left:0; }
  .outcome:nth-child(n+3) { border-top:1px solid var(--rule); }
  .result-summary, .weekly-row { grid-template-columns:minmax(0,1fr) 17px; gap:9px; padding:13px; }
  .result-summary .row-figures { grid-row:2; grid-column:1 / -1; }
  .disclosure { grid-row:1; grid-column:2; align-self:start; margin-top:7px; }
  .row-figures { text-align:left; gap:5px; }
  .row-figures small { font-size:.69rem; }
  .weekly-row .row-figures { grid-column:1 / -1; }
  .account-layout { margin:8px 0; grid-template-columns:1fr; gap:14px; }
  .account-intro { padding-block:5px 12px; }
  .account-panel { padding:20px; }
}
@media (max-width:420px) {
  .shell { width:calc(100% - 28px); }
  .brand-name { font-size:1.06rem; }
  .main-nav a { padding-inline:7px; }
  .signout button { padding-inline:7px; }
  .period a { padding-inline:12px; }
  .outcome { padding:13px 12px; }
  .outcome dt { font-size:.79rem; }
  .outcome .measure { font-size:1.85rem; }
  .measure-change { font-size:.74rem; }
  .plot, .chart-ticks { height:164px; }
  .chart-ticks { font-size:.68rem; }
  .trend-chart { grid-template-columns:24px minmax(0,1fr); column-gap:5px; }
  .results-head { padding:14px 13px; }
  .results-head .button { padding-inline:9px; white-space:nowrap; }
  .sort-row { padding-inline:13px; }
  .result-summary .row-figures { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 12px; }
  .row-details { padding:11px; margin-inline:12px; }
  .row-details dl { grid-template-columns:minmax(105px,.7fr) minmax(0,1fr); gap:6px 9px; }
}
