@charset "UTF-8";
:root { color-scheme: light; --page:#faf7f5; --surface:#fcfcfb; --text:#302f35; --secondary:#686570; --muted:#77717a; --line:#e9e5e3; --accent:#99546d; --accent-hover:#82445a; --accent-wash:#f7eaf0; --actual:#2a78d6; --predicted:#eb6834; --actual-wash:#eaf2fd; --predicted-wash:#fff0e7; --shadow:0 6px 25px #44323f04; --sidebar:#fcfcfb; }
:root[data-theme="dark"] { color-scheme:dark; --page:#111113; --surface:#1a1a19; --text:#f0efec; --secondary:#c3c2b7; --muted:#aaa39f; --line:#343232; --accent:#e4a6be; --accent-hover:#f0b9cf; --accent-wash:#35232d; --actual:#3987e5; --predicted:#d95926; --actual-wash:#1b293b; --predicted-wash:#35251d; --shadow:none; --sidebar:#191918; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:28px; }
body { margin:0; background:var(--page); color:var(--text); font:14px/1.6 system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:disabled { opacity:.45; cursor:not-allowed; }
a { color:inherit; text-decoration:none; }
h1,h2,h3,p { margin:0; }
h1 { font-size:27px; line-height:1.45; letter-spacing:-.6px; font-weight:650; }
h2 { font-size:19px; font-weight:650; }
h3 { font-size:14px; font-weight:650; }
[hidden] { display:none!important; }
:focus-visible { outline:3px solid var(--actual); outline-offset:3px; }
.sidebar { position:fixed; inset:0 auto 0 0; width:225px; background:var(--sidebar); border-right:1px solid var(--line); padding:36px 25px; display:flex; flex-direction:column; z-index:10; }
.brand { display:flex; align-items:center; gap:12px; font-size:25px; font-weight:700; letter-spacing:3px; }
.brand-mark { display:grid; place-items:center; background:var(--accent-wash); color:var(--accent); border-radius:16px; font-size:34px; width:49px; height:49px; letter-spacing:0; }
.brand small { display:block; font-size:8px; font-weight:600; letter-spacing:1.35px; margin-top:1px; color:var(--secondary); }
.sidebar-caption { color:var(--muted); font-size:12px; margin:22px 0 36px 3px; }
nav { display:flex; flex-direction:column; gap:8px; }
.nav-link { display:flex; gap:14px; align-items:center; padding:12px 15px; border:0; background:none; border-radius:10px; color:var(--secondary); text-align:left; }
.nav-link>span { font-size:20px; width:22px; text-align:center; line-height:1; }
.nav-link:hover { background:var(--page); }
.nav-link.active { background:var(--accent-wash); color:var(--accent); font-weight:600; }
.sidebar-bottom { margin-top:auto; font-size:11px; color:var(--secondary); border-top:1px solid var(--line); padding-top:23px; }
.sidebar-bottom strong { font-weight:600; }
.sidebar-bottom p { margin:10px 0 16px; line-height:1.9; }
.privacy-dot { display:inline-block; width:6px; height:6px; margin-right:6px; border-radius:50%; background:var(--accent); }
main { margin-left:225px; padding:36px 40px 20px; max-width:1710px; }
.page-header { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:0 0 30px; }
.eyebrow { font-size:11px; font-weight:600; letter-spacing:1px; color:var(--secondary); }
.page-header .eyebrow { margin-bottom:9px; }
.page-header .muted { margin-top:8px; }
.heading-dot { color:var(--accent); }
.muted { color:var(--secondary); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:43px; border-radius:9px; padding:10px 18px; font-size:13px; font-weight:600; border:1px solid transparent; transition:background .15s; white-space:nowrap; }
.button.primary { background:var(--accent); color:var(--surface); }
.button.primary:hover { background:var(--accent-hover); }
.button.primary>span { font-size:19px; line-height:1; }
.button.secondary { border-color:var(--line); background:var(--surface); color:var(--text); }
.button.secondary:hover { background:var(--page); }
.button.small { min-height:35px; padding:7px 12px; font-size:12px; }
.text-button { border:0; background:none; color:var(--accent); padding:5px 2px; font-size:12px; border-radius:4px; }
.text-button:hover { text-decoration:underline; }
.icon-button { border:1px solid var(--line); background:var(--surface); color:var(--secondary); border-radius:8px; min-width:34px; height:34px; font-size:22px; display:inline-grid; place-items:center; padding:0 8px; }
.icon-button:hover { background:var(--page); }
.overview-grid { display:grid; grid-template-columns:minmax(0,2.3fr) minmax(245px,1fr); gap:22px; }
.card { background:var(--surface); border:1px solid var(--line); border-radius:17px; box-shadow:var(--shadow); }
.forecast-card { padding:26px 28px 0; overflow:hidden; }
.card-topline { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.pill { color:var(--secondary); background:var(--page); border:1px solid var(--line); font-size:10px; padding:3px 9px; border-radius:20px; white-space:nowrap; }
.forecast-main { display:flex; justify-content:space-between; align-items:center; gap:10px; padding-top:24px; }
.forecast-main h2 { font-size:14px; font-weight:500; color:var(--secondary); }
.hero-value { font-size:48px; font-weight:650; line-height:1.3; letter-spacing:-1.7px; margin:7px 0; }
.hero-value small { font-size:18px; margin-left:9px; letter-spacing:0; font-weight:500; }
.forecast-main .muted { font-size:12px; line-height:1.8; }
.bloom { position:relative; flex:0 0 110px; height:115px; opacity:.9; }
.bloom i { position:absolute; width:40px; height:66px; top:0; left:35px; border-radius:50%; background:var(--accent-wash); transform-origin:center 58px; }
.bloom i:nth-child(2) { transform:rotate(60deg); }
.bloom i:nth-child(3) { transform:rotate(120deg); }
.bloom i:nth-child(4) { transform:rotate(180deg); }
.bloom i:nth-child(5) { transform:rotate(240deg); }
.bloom i:nth-child(6) { transform:rotate(300deg); }
.bloom b { position:absolute; top:37px; left:39px; color:var(--accent); font-size:29px; font-weight:400; }
.forecast-explanation { margin:20px 0 21px; padding:11px 12px; background:var(--page); border-radius:8px; color:var(--secondary); font-size:11px; }
.stats-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--line); padding:19px 0 23px; gap:18px; }
.stats-row>div+div { padding-left:22px; border-left:1px solid var(--line); }
.stats-row p { font-size:11px; color:var(--secondary); }
.stats-row strong { display:block; font-size:26px; font-weight:600; line-height:1.6; }
.stats-row small { font-size:11px; color:var(--secondary); font-weight:400; }
.stats-row span { display:block; font-size:10px; color:var(--secondary); }
.care-card { padding:27px 25px; background:var(--accent-wash); border-color:transparent; position:relative; }
.care-icon { position:absolute; top:20px; right:23px; font-size:30px; color:var(--accent); font-weight:300; }
.care-card .eyebrow { margin-bottom:27px; }
.care-card h2 { font-size:18px; margin-bottom:13px; }
.care-card>p:not(.eyebrow) { font-size:13px; color:var(--secondary); line-height:1.95; }
.care-divider { width:33px; height:1px; background:var(--accent); opacity:.4; margin:24px 0 20px; }
.care-card .care-detail { font-size:12px!important; }
.care-footer { display:block; color:var(--secondary); font-size:10px; margin-top:23px; letter-spacing:1px; }
.content-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr); gap:22px; margin:22px 0; }
.calendar-card,.insights-card,.history-card { padding:25px 27px; scroll-margin-top:25px; }
.section-header { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:20px; }
.section-header .eyebrow { margin-bottom:4px; }
.month-controls { display:flex; align-items:center; gap:8px; }
.month-controls strong { font-size:12px; min-width:95px; text-align:center; font-weight:600; }
.month-controls .text-button { margin-left:3px; }
.legend { display:flex; align-items:center; flex-wrap:wrap; gap:18px; margin:3px 0 21px; font-size:10px; color:var(--secondary); }
.legend>span { display:inline-flex; align-items:center; gap:6px; }
.swatch { height:8px; width:8px; border-radius:2px; background:var(--actual); display:inline-block; }
.swatch.predicted { background:var(--predicted); }
.legend b { font-size:9px; font-weight:500; color:var(--secondary); }
.today-swatch { width:9px; height:9px; border:1.5px solid var(--text); border-radius:50%; }
.weekdays,.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); text-align:center; gap:5px; }
.weekdays { color:var(--secondary); font-size:10px; padding-bottom:10px; }
.calendar-day { position:relative; height:47px; border:0; border-radius:8px; color:var(--text); background:transparent; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:12px; line-height:1.5; }
.calendar-day.outside { color:var(--muted); opacity:.65; }
.calendar-day.actual { background:var(--actual-wash); }
.calendar-day.predicted { background:var(--predicted-wash); }
.day-number { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; }
.calendar-day.today .day-number { box-shadow:inset 0 0 0 1.5px var(--text); font-weight:650; }
.day-tag { display:flex; align-items:center; gap:4px; font-size:8px; color:var(--secondary); }
.day-tag::before { content:""; width:5px; height:5px; border-radius:2px; background:var(--actual); }
.predicted .day-tag::before { background:var(--predicted); }
.calendar-day:hover,.calendar-day.selected { box-shadow:inset 0 0 0 1px var(--secondary); }
.calendar-day.today.selected { box-shadow:inset 0 0 0 1px var(--secondary); }
.calendar-detail { min-height:40px; color:var(--secondary); font-size:11px; margin-top:18px; background:var(--page); border-radius:7px; padding:10px 12px; }
.microcopy { font-size:10px; color:var(--secondary); margin-top:10px; line-height:1.8; }
.insights-card>h2 { margin-top:5px; margin-bottom:20px; }
.insight-row { display:flex; gap:14px; padding:15px 0; }
.number-label { font-size:11px; background:var(--page); border:1px solid var(--line); border-radius:50%; height:29px; flex:0 0 29px; display:grid; place-items:center; color:var(--secondary); }
.insight-row h3 { font-size:12px; margin:2px 0 7px; }
.insight-row p { font-size:11px; color:var(--secondary); line-height:1.95; }
.medical-note { font-size:10px; color:var(--secondary); line-height:1.9; padding:11px 12px; background:var(--page); border-radius:8px; margin-top:12px; }
.history-actions { display:flex; gap:8px; }
.count-badge { font-size:10px; font-weight:500; padding:2px 7px; border-radius:12px; background:var(--page); color:var(--secondary); vertical-align:middle; margin-left:5px; }
.empty-state { text-align:center; padding:23px 10px 29px; }
.empty-state>span { display:block; font-size:33px; color:var(--accent); margin-bottom:10px; }
.empty-state p { color:var(--secondary); font-size:12px; margin:7px 0 12px; }
.table-scroll { overflow-x:auto; }
table { border-collapse:collapse; width:100%; text-align:left; font-size:12px; }
th { color:var(--secondary); font-size:10px; font-weight:500; background:var(--page); padding:10px 12px; white-space:nowrap; }
td { padding:15px 12px; border-bottom:1px solid var(--line); font-variant-numeric:tabular-nums; vertical-align:top; }
tr:last-child td { border-bottom:0; }
td:first-child { min-width:166px; }
td:nth-child(2) { min-width:120px; }
td:nth-child(3) { min-width:100px; }
td:last-child { white-space:nowrap; }
.cell-sub { display:block; font-size:10px; color:var(--secondary); margin-top:4px; }
.notes-cell { max-width:380px; min-width:160px; overflow-wrap:anywhere; white-space:pre-wrap; }
.symptom-label { display:inline-block; font-size:10px; color:var(--secondary); background:var(--page); border-radius:4px; padding:1px 6px; margin:0 4px 4px 0; }
.button.danger { color:#b12f40; background:transparent; border-color:var(--line); }
:root[data-theme="dark"] .button.danger { color:#ffa4af; }
.delete-link { margin-left:10px; color:var(--secondary); }
.page-footer { display:flex; justify-content:space-between; gap:16px; margin-top:24px; font-size:10px; color:var(--secondary); }
.ongoing-panel { display:flex; justify-content:space-between; align-items:center; gap:10px; background:var(--actual-wash); padding:10px 12px; border-radius:8px; margin-bottom:18px; font-size:11px; }
.demo-banner,.warning-banner { display:flex; align-items:center; justify-content:space-between; gap:12px; border:1px solid var(--line); border-radius:8px; background:var(--accent-wash); padding:12px 16px; font-size:12px; margin-bottom:20px; }
.warning-banner { background:var(--predicted-wash); }
dialog { padding:26px; width:min(560px,calc(100% - 28px)); max-height:calc(100dvh - 40px); border:1px solid var(--line); border-radius:17px; color:var(--text); background:var(--surface); box-shadow:0 25px 90px #0003; overflow-y:auto; }
dialog::backdrop { background:#21182480; backdrop-filter:blur(3px); }
.dialog-header { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:22px; }
.dialog-header .eyebrow { margin-bottom:3px; }
.dialog-footer { display:flex; justify-content:flex-end; gap:10px; margin-top:25px; }
form>label { display:block; margin:18px 0; }
.form-row { display:flex; gap:16px; margin:19px 0; }
.form-row>label { flex:1; min-width:0; }
label { font-size:12px; }
input[type="date"],input[type="number"],select,textarea { display:block; width:100%; color:var(--text); background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:10px; margin-top:7px; min-height:42px; }
input:disabled { opacity:.45; background:var(--page); }
textarea { resize:vertical; }
.check-label { display:flex; align-items:flex-start; gap:8px; font-size:11px; color:var(--secondary); }
input[type="checkbox"] { accent-color:var(--accent); height:16px; width:16px; flex:0 0 16px; margin:1px 0 0; }
.consent-label { padding:12px; background:var(--page); border-radius:8px; }
.symptom-fieldset { padding:0; margin:20px 0; border:0; }
.symptom-fieldset legend { font-size:12px; margin-bottom:10px; }
.symptom-fieldset legend span { font-size:10px; margin-left:8px; }
.symptom-options { display:flex; gap:7px; flex-wrap:wrap; }
.symptom-options label { position:relative; }
.symptom-options input { position:absolute; opacity:0; width:100%; height:100%; margin:0; }
.symptom-options span { display:block; padding:7px 11px; border:1px solid var(--line); border-radius:7px; color:var(--secondary); font-size:11px; }
.symptom-options input:checked+span { color:var(--text); background:var(--accent-wash); border-color:var(--accent); }
.symptom-options input:focus-visible+span { outline:3px solid var(--actual); outline-offset:3px; }
.form-error { font-size:12px; color:var(--text); background:var(--predicted-wash); border-left:3px solid var(--predicted); padding:10px 12px; margin-top:12px; border-radius:4px; }
.data-action { display:flex; align-items:center; gap:20px; justify-content:space-between; padding:22px 0; }
.data-action p { font-size:11px; color:var(--secondary); margin-top:5px; }
.danger-zone { border-top:1px solid var(--line); margin-top:16px; }
.toast { position:fixed; bottom:24px; left:calc(50% + 112px); transform:translateX(-50%); max-width:calc(100% - 30px); padding:12px 22px; color:var(--surface); background:var(--text); border-radius:10px; box-shadow:0 4px 30px #0002; z-index:100; font-size:12px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
:root[data-texture="true"] .calendar-day.actual { background-image:repeating-linear-gradient(45deg,transparent 0 7px,color-mix(in srgb,var(--actual) 15%,transparent) 7px 8px); }
:root[data-texture="true"] .calendar-day.predicted { background-image:repeating-linear-gradient(135deg,transparent 0 7px,color-mix(in srgb,var(--predicted) 15%,transparent) 7px 8px); }
@media(min-width:1600px) { main { padding-left:65px; padding-right:65px; } }
@media(max-width:1200px) { .sidebar { width:195px; padding:30px 19px; } main { margin-left:195px; padding:29px 25px 20px; } h1 { font-size:23px; } .overview-grid { grid-template-columns:minmax(0,2fr) minmax(230px,1fr); gap:16px; } .content-grid { gap:16px; grid-template-columns:minmax(0,1.45fr) minmax(270px,1fr); } .forecast-card,.calendar-card,.insights-card,.history-card { padding-left:21px; padding-right:21px; } .bloom { transform:scale(.85); flex-basis:95px; } .hero-value { font-size:43px; } .month-controls { gap:5px; } .month-controls strong { min-width:80px; } .month-controls .text-button { display:none; } .toast { left:calc(50% + 97px); } }
@media(max-width:1000px) { .content-grid { grid-template-columns:1fr; } .insights-card { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 20px; } .insights-card>.eyebrow,.insights-card>h2,.insights-card>.medical-note { grid-column:1/-1; } .insight-row { gap:10px; } .overview-grid { grid-template-columns:minmax(0,1.7fr) minmax(210px,1fr); } .bloom { display:none; } .care-card { padding:24px 20px; } .care-card h2 { font-size:16px; } .calendar-day { height:53px; } .page-header { align-items:flex-start; } .page-header>.button { margin-top:16px; } h1 { font-size:20px; } .stats-row>div+div { padding-left:14px; } .stats-row { gap:13px; } }
@media(max-width:760px) { .sidebar { position:static; width:100%; padding:15px 20px 10px; border-right:0; border-bottom:1px solid var(--line); } .brand { font-size:22px; gap:10px; } .brand-mark { width:37px; height:37px; font-size:27px; border-radius:12px; } .brand small { font-size:7px; } .sidebar-caption,.sidebar-bottom { display:none; } nav { flex-direction:row; gap:5px; margin-top:16px; justify-content:space-between; } .nav-link { padding:8px 9px; font-size:11px; gap:6px; } .nav-link>span { font-size:16px; width:16px; } main { margin:0; padding:24px 20px; } h1 { font-size:22px; } .page-header { align-items:center; margin-bottom:22px; } .page-header>.button { margin-top:0; } .overview-grid { grid-template-columns:1fr; } .care-card { padding:20px 22px; } .care-card .eyebrow { margin-bottom:10px; } .care-card h2 { font-size:17px; margin-bottom:8px; } .care-card .care-detail,.care-divider,.care-footer { display:none; } .care-card>p:not(.eyebrow) br { display:none; } .care-icon { top:25px; font-size:40px; } .forecast-card { padding-top:23px; } .hero-value { font-size:48px; } .bloom { display:block; flex-basis:100px; } .insights-card { display:block; } .insights-card>h2 { margin-bottom:12px; } .insight-row { padding:12px 0; } .calendar-day { height:48px; } .toast { left:50%; } }
@media(max-width:450px) { main { padding:22px 14px; } .sidebar { padding-left:14px; padding-right:14px; } .page-header { flex-direction:column; align-items:flex-start; gap:14px; } h1 { font-size:20px; } .page-header>.button { width:100%; } .page-header .muted { font-size:12px; } .calendar-card,.insights-card,.history-card,.forecast-card { padding-left:18px; padding-right:18px; } .section-header { align-items:flex-start; flex-wrap:wrap; gap:12px; } .calendar-card .section-header { align-items:center; } .month-controls strong { min-width:80px; font-size:11px; } .month-controls .icon-button { min-width:28px; height:30px; } .month-controls { gap:4px; } .calendar-card .eyebrow { font-size:9px; letter-spacing:0; } .legend { gap:12px; margin-bottom:14px; } .calendar-grid { gap:3px; } .calendar-day { height:43px; } .hero-value { font-size:43px; } .bloom { transform:scale(.8); flex-basis:75px; } .forecast-main { padding-top:20px; } .stats-row { gap:9px; } .stats-row>div+div { padding-left:11px; } .stats-row span { font-size:9px; } .page-footer { flex-direction:column; gap:3px; } dialog { padding:22px 18px; } .form-row { gap:12px; } .card-topline .eyebrow { font-size:10px; } .pill { font-size:9px; padding:3px 6px; } .demo-banner { align-items:flex-start; } .demo-banner .text-button { flex:0 0 auto; } }
.backup-buttons { display:flex; flex-wrap:wrap; gap:8px; }
html.modal-open body { overflow:hidden; }
.runtime-diagnostics { margin-top:18px; padding:12px; border:1px solid var(--line); border-radius:8px; color:var(--secondary); font-size:12px; }
.runtime-diagnostics summary { cursor:pointer; min-height:44px; display:flex; align-items:center; }
.runtime-diagnostics pre { white-space:pre-wrap; overflow-wrap:anywhere; font:12px/1.8 system-ui,sans-serif; }
.runtime-diagnostics p { margin:8px 0; }
#startup-warning { align-items:flex-start; }
#startup-warning .button { flex-shrink:0; }
@media(max-width:760px) {
  html { scroll-padding-top:20px; }
  .sidebar { padding-top:calc(16px + env(safe-area-inset-top)); padding-left:max(18px,env(safe-area-inset-left)); padding-right:max(18px,env(safe-area-inset-right)); }
  nav { position:fixed; bottom:0; left:0; right:0; margin:0; padding:9px max(10px,env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left)); background:var(--surface); border-top:1px solid var(--line); z-index:20; gap:6px; }
  .nav-link { flex:1; justify-content:center; flex-direction:column; gap:3px; padding:7px 4px; min-height:52px; font-size:11px; }
  .nav-link>span { font-size:20px; width:24px; }
  main { padding-left:max(16px,env(safe-area-inset-left)); padding-right:max(16px,env(safe-area-inset-right)); padding-bottom:calc(105px + env(safe-area-inset-bottom)); }
  .button,.button.small,.icon-button,.text-button { min-height:44px; }
  .icon-button { min-width:44px; }
  .month-controls .icon-button { min-width:44px; height:44px; }
  .calendar-card .section-header { align-items:center; }
  .calendar-card .section-header>div:first-child>.eyebrow { display:none; }
  .calendar-card h2 { font-size:17px; }
  .month-controls strong { min-width:78px; }
  .calendar-grid { gap:2px; }
  .calendar-day { min-height:46px; }
  .calendar-card { padding-left:14px; padding-right:14px; }
  .day-tag { font-size:9px; }
  .calendar-day.outside { opacity:.75; }
  input[type="date"],input[type="number"],select,textarea { font-size:16px; min-height:48px; max-width:100%; min-width:0; -webkit-appearance:none; appearance:none; }
  select { padding-right:28px; background-image:linear-gradient(45deg,transparent 50%,var(--secondary) 50%),linear-gradient(135deg,var(--secondary) 50%,transparent 50%); background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%; background-size:5px 5px; background-repeat:no-repeat; }
  input[type="date"]::-webkit-date-and-time-value { text-align:left; }
  .form-row { flex-direction:column; gap:16px; }
  label,.symptom-fieldset legend { font-size:13px; }
  input[type="checkbox"] { width:20px; height:20px; flex-basis:20px; }
  .check-label { align-items:center; line-height:1.8; min-height:44px; }
  .symptom-options span { padding:12px; min-height:44px; font-size:12px; }
  dialog { width:calc(100% - 20px); max-height:calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); padding:22px 20px; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
  .dialog-header { margin-bottom:16px; }
  .dialog-footer { position:sticky; bottom:-22px; background:var(--surface); padding:12px 0; margin-top:14px; border-top:1px solid var(--line); }
  .dialog-footer>.button { flex:1; }
  .history-actions { gap:8px; }
  .history-card .section-header { flex-wrap:wrap; }
  .history-card .eyebrow { font-size:10px; }
  .table-scroll { overflow:visible; }
  table,tbody,tr,td { display:block; width:100%; }
  thead { display:none; }
  tr { border:1px solid var(--line); border-radius:10px; margin:12px 0; padding:14px; }
  td,td:first-child,td:nth-child(2),td:nth-child(3) { min-width:0; padding:5px 0; border:0; }
  td:first-child { font-weight:600; }
  td:nth-child(2),td:nth-child(3) { display:inline-block; width:49%; font-size:12px; vertical-align:top; }
  .notes-cell { max-width:none; min-width:0; }
  td:last-child { text-align:right; margin-top:4px; border-top:1px solid var(--line); }
  .cell-sub { font-size:11px; }
  .hero-value { font-size:44px; }
  .forecast-main { min-width:0; }
  .forecast-main>div:first-child { min-width:0; }
  .forecast-main .muted { overflow-wrap:anywhere; }
  .bloom { flex-basis:60px; transform:scale(.68); transform-origin:center; }
  .forecast-explanation,.insight-row p,.calendar-detail,.medical-note,.microcopy,.stats-row span { font-size:12px; }
  .stats-row strong { font-size:26px; }
  .stats-row>div+div { padding-left:10px; }
  .stats-row { gap:8px; }
  .card-topline { flex-wrap:wrap; }
  .pill { font-size:10px; }
  .toast { bottom:calc(92px + env(safe-area-inset-bottom)); max-width:calc(100% - 32px); width:max-content; white-space:normal; }
  .page-footer { font-size:11px; }
}
@media(orientation:landscape) and (max-height:500px) and (max-width:1000px) {
  .sidebar { position:static; width:100%; padding:calc(10px + env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 10px max(18px,env(safe-area-inset-left)); border-right:0; border-bottom:1px solid var(--line); }
  .sidebar-caption,.sidebar-bottom { display:none; }
  .brand { font-size:20px; }
  .brand-mark { width:35px; height:35px; font-size:27px; }
  nav { position:fixed; inset:auto 0 0; margin:0; padding:6px max(14px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left)); background:var(--surface); border-top:1px solid var(--line); flex-direction:row; z-index:20; }
  .nav-link { flex:1; justify-content:center; min-height:44px; padding:7px; }
  main { margin:0; padding:20px max(20px,env(safe-area-inset-right)) calc(85px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left)); }
  .overview-grid { grid-template-columns:minmax(0,1.7fr) minmax(220px,1fr); }
  .toast { left:50%; bottom:calc(70px + env(safe-area-inset-bottom)); }
  dialog { max-height:calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); }
  input[type="date"],input[type="number"],select,textarea { font-size:16px; min-height:44px; }
  .button,.icon-button,.text-button { min-height:44px; }
}
@media(max-width:370px) { .bloom { display:none; } .hero-value { font-size:38px; } .month-controls strong { min-width:69px; font-size:10px; } .calendar-card h2 { font-size:15px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
@media print { .sidebar,.page-header>.button,.history-actions,.month-controls,.page-footer,.text-button,.ongoing-panel button { display:none; } main { margin:0; padding:0; } .card { break-inside:avoid; } .calendar-day.actual { background-image:repeating-linear-gradient(45deg,transparent 0 7px,#2a78d633 7px 8px); } .calendar-day.predicted { background-image:repeating-linear-gradient(135deg,transparent 0 7px,#eb683433 7px 8px); } }
@media(forced-colors:active) { .calendar-day.actual { border:2px solid ButtonText; } .calendar-day.predicted { border:2px dashed ButtonText; } .swatch { forced-color-adjust:none; } }
