:root{--accent:#6f497c;--bg:#f8f6f3;--card:#fff;--ink:#2b242e;--flow1:#eaddf7;--flow2:#b597d1;--flow3:#674284;--mood:#467f7c;--error:#a44359;--onaccent:#fff;--line:color-mix(in srgb,var(--ink) 13%,transparent);--muted:color-mix(in srgb,var(--ink) 68%,var(--card));font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--bg);font-size:16px;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);border-radius:14px;padding:12px 17px;color:var(--ink);background:var(--card);min-height:44px;font-weight:600}button:hover{border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}a{color:var(--accent);text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.primary{background:var(--accent);color:var(--onaccent);border-color:transparent}.danger{color:var(--error)}.quiet{background:transparent;border-color:transparent}.shell{max-width:1080px;margin:auto;padding:0 40px}.top{display:flex;align-items:center;justify-content:space-between;padding:36px 0;border-bottom:1px solid var(--line);gap:12px}.brand{font-family:Georgia,serif;text-decoration:none;color:var(--ink);font-size:31px;letter-spacing:-1px}.moon{color:var(--accent);display:inline-block;transform:rotate(-30deg);margin-right:5px}.brand-note{display:block;font-family:system-ui,sans-serif;font-size:9px;letter-spacing:2.3px;margin:7px 0 0 37px}.menu-button{display:flex;align-items:center;gap:10px;font-size:13px;background:transparent}.bars{width:19px;display:grid;gap:4px}.bars i{height:2px;background:currentColor;transition:transform .2s,opacity .2s}.menu-button[aria-expanded=true] i:first-child{transform:translateY(6px) rotate(45deg)}.menu-button[aria-expanded=true] i:nth-child(2){opacity:0}.menu-button[aria-expanded=true] i:last-child{transform:translateY(-6px) rotate(-45deg)}nav{padding:18px 0;border-bottom:1px solid var(--line)}nav:not([hidden]){display:flex;flex-wrap:wrap;gap:8px;animation:appear .2s}nav button[aria-current=page]{background:var(--accent);color:var(--onaccent)}main{padding:40px 0 24px;min-height:68vh}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:var(--accent);margin:0 0 14px}h1,h2,h3,p{margin-top:0}h1{font:normal clamp(32px,5vw,48px)/1.12 Georgia,serif;letter-spacing:-1px;margin-bottom:14px}h2{font-size:21px;font-weight:650;letter-spacing:-.4px}h3{font-size:16px}p{line-height:1.65}.muted,.small{color:var(--muted)}.small{font-size:12px;line-height:1.6}.welcome{max-width:650px;padding:35px 0}.welcome h1{font-size:clamp(44px,6vw,70px)}.welcome>.primary{margin:15px 0}.notice{background:color-mix(in srgb,var(--accent) 7%,var(--card));border:1px solid var(--line);padding:20px;border-radius:18px;margin:24px 0;font-size:14px}.notice p:last-child{margin-bottom:0}.page-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.page-title p{margin-bottom:0}.layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(240px,1fr);gap:24px;align-items:start}.card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:26px;margin-bottom:22px;overflow:hidden}.card:last-child{margin-bottom:0}.card-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px}.card-heading h2{margin:0}.month-arrows{display:flex;gap:5px}.month-arrows button{padding:8px 14px;font-size:20px}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekdays{text-align:center;font-size:11px;color:var(--muted);margin-bottom:12px}.day{position:relative;padding:0;min-height:54px;aspect-ratio:1;border:1px solid transparent;border-radius:13px;font-size:14px;font-weight:500;background:transparent;user-select:none;-webkit-user-select:none}.day.outside{opacity:.38}.day.today{outline:1px solid var(--accent);outline-offset:-3px;font-weight:800}.day[data-flow='0']{border-color:var(--accent)}.day[data-flow='1']{background:var(--flow1);color:var(--onflow1)}.day[data-flow='2']{background:var(--flow2);color:var(--onflow2)}.day[data-flow='3']{background:var(--flow3);color:var(--onflow3)}.day.selected{box-shadow:inset 0 0 0 3px var(--accent);opacity:1}.day.forecast{border:1px dashed var(--accent)}.day.hasnote:after{content:'';position:absolute;bottom:6px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:currentColor}.calendar.editing{touch-action:none}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-top:18px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:5px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.toolbar>*{flex:1}.tip{font-size:12px;line-height:1.6;color:var(--muted);margin:12px 0 0}.big-date{font:normal 32px Georgia,serif;margin:12px 0}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:24px}.stat{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px}.stat h2{font-size:18px;line-height:1.3;margin-bottom:12px}.stat strong{font-size:15px;color:var(--accent);font-weight:600}.entry{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}.entry:last-child{border:0}.entry p{margin:4px 0 0}.empty{padding:25px 0;color:var(--muted);line-height:1.7}.chart{overflow:auto}.chart svg{display:block;width:100%;min-width:320px;height:auto}.chart text{fill:var(--muted);font-family:system-ui,sans-serif;font-size:10px}.chart line{stroke:var(--line)}.chart polyline{fill:none;stroke:var(--accent);stroke-width:2}.chart circle{fill:var(--accent)}.chart.mood polyline{stroke:var(--mood)}.chart.mood circle{fill:var(--mood)}.chart .bar{fill:var(--accent)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}th,td{padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}details{margin-top:16px;border-top:1px solid var(--line);padding-top:16px}summary{cursor:pointer;font-weight:650;line-height:1.5}details>div{margin-top:18px}.row{display:flex;gap:15px;align-items:center}.row>*{flex:1}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:block;font-size:13px;font-weight:600;line-height:1.6}input:not([type=checkbox]):not([type=color]),select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--card);color:var(--ink);min-height:46px;margin-top:7px}textarea{resize:vertical;min-height:100px}input[type=checkbox]{width:18px;height:18px;vertical-align:middle;accent-color:var(--accent);margin-right:8px}input[type=color]{width:55px;height:42px;background:transparent;border:0;padding:2px;cursor:pointer}.check{padding:10px 0}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);border-radius:30px;padding:8px 12px;font-size:12px;font-weight:500}.chip:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--card))}.chip input{width:14px;height:14px}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px;flex-wrap:wrap}.form-error{color:var(--error);font-size:14px;line-height:1.5;margin-top:15px}.form-error:empty{display:none}dialog{border:1px solid var(--line);border-radius:24px;padding:0;background:var(--card);color:var(--ink);max-width:570px;width:calc(100% - 24px);max-height:90dvh;box-shadow:0 20px 100px #0002}dialog::backdrop{background:rgb(0 0 0 / 35%)}#dialogBody{padding:26px}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:20px;position:sticky;top:0;background:var(--card);padding-bottom:15px;z-index:2}.dialog-top h2{margin:0}.close{font-size:24px;line-height:1;padding:8px 14px}.section-gap{margin-top:20px}.color-row{display:grid;grid-template-columns:1fr 55px 100px;align-items:center;gap:10px;margin:12px 0}.color-row input{margin:0!important}.meter{height:7px;background:var(--line);border-radius:8px;overflow:hidden;margin-top:7px}.meter span{display:block;background:var(--accent);height:100%}.aligned{display:grid;grid-template-columns:repeat(15,minmax(32px,1fr));gap:4px;min-width:550px;text-align:center;font-size:10px}.aligned div{padding:8px 2px;border-radius:8px;background:color-mix(in srgb,var(--accent) 8%,var(--card))}.aligned .zero{outline:2px solid var(--accent);outline-offset:-2px}.aligned b{display:block;font-size:14px;margin:10px 0}.aligned small{color:var(--muted)}footer{padding:28px 0 38px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:18px;font-size:11px;color:var(--muted)}footer div{display:flex;gap:18px}#toast{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:var(--ink);color:var(--card);padding:13px 22px;border-radius:14px;z-index:10;max-width:92vw;font-size:14px;box-shadow:0 5px 30px #0002}#toast:empty{display:none}.skip{position:fixed;top:-100px}.skip:focus{top:8px;z-index:20;background:var(--card);padding:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0)}@keyframes appear{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@media(max-width:740px){.shell{padding:0 20px;padding-top:env(safe-area-inset-top)}.top{padding:22px 0}.brand{font-size:27px}.brand-note{font-size:8px;letter-spacing:1.6px}main{padding-top:28px}.layout{grid-template-columns:1fr;gap:0}.card{padding:20px;border-radius:20px}.day{min-height:42px}.weekdays,.calendar{gap:4px}.stat-grid{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:16px}.stat h2{font-size:16px}.page-title{align-items:flex-start;gap:10px}.page-title>button{font-size:12px;padding:10px}footer{flex-direction:column;padding-bottom:calc(25px + env(safe-area-inset-bottom))}.fields{gap:12px}#dialogBody{padding:20px}dialog{max-height:92dvh}.color-row{grid-template-columns:1fr 45px 90px;font-size:12px}.welcome{padding-top:15px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.calculation-guide{margin-bottom:28px}.calculation-guide h3{font-size:18px;margin-top:24px}.formula{background:color-mix(in srgb,var(--accent) 8%,var(--card));border-left:3px solid var(--accent);padding:16px 18px;border-radius:0 12px 12px 0;font-weight:650;line-height:1.8}.prediction-status{border:1px solid var(--line);padding:14px;border-radius:12px}.test-case{padding:20px 0;border-bottom:1px solid var(--line)}.test-case:last-child{border-bottom:0}#reportPreview{min-height:280px}

[hidden]{display:none!important}.bot-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.welcome #androidRequest{margin-top:12px}

/* Spacious request dialog and optional calculation details. */
dialog:has(#androidForm){max-width:640px;box-shadow:none}dialog:has(#androidForm) #dialogBody{padding:32px}#androidForm>p:first-child{margin-bottom:24px}#androidForm>.small{margin:18px 0 0;line-height:1.8}#androidForm .form-actions{margin-top:28px;gap:12px}.calculation-guide{margin:0 0 24px;padding-top:0;border-top:0}.calculation-guide>summary{padding:10px 0;font-size:14px}.calculation-guide[open]>div{margin-top:12px}.calculation-guide .formula{background:transparent;border-left:2px solid var(--line);border-radius:0}summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@media(max-width:600px){dialog:has(#androidForm) #dialogBody{padding:24px}#androidForm .form-actions>button{flex:1}#androidForm input{font-size:16px}}

/* Color editor with a live example page. */
dialog:has(.theme-layout){max-width:1100px}.theme-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}.theme-controls{min-width:0}.theme-preview{background:var(--bg);border:1px solid var(--line);border-radius:18px;padding:20px;position:sticky;top:60px}.theme-preview .card{padding:18px;border-radius:16px;margin-bottom:16px}.theme-preview .day{display:grid;place-items:center;min-height:30px;border-radius:9px}.theme-preview h3{margin-bottom:12px}.theme-preview .chart svg{min-width:0}.theme-preview .eyebrow{font-size:10px;letter-spacing:1px}.preview-accent{color:var(--accent)}.preview-button{display:inline-block;background:var(--accent);color:var(--onaccent);border-radius:12px;padding:10px 14px;margin-top:16px;font-size:13px;font-weight:600}.preview-input{display:block;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:12px;margin-top:7px;font-weight:400}.preview-error{color:var(--error);font-size:12px;margin:12px 0 0}footer{justify-content:flex-end}#feedbackStatus:empty{display:none}@media(max-width:800px){.theme-layout{grid-template-columns:1fr;gap:20px}.theme-preview{position:static}.theme-preview .day{min-height:28px}.theme-controls .color-row{grid-template-columns:minmax(0,1fr) 40px 88px;gap:6px}}

.theme-preview .day{aspect-ratio:auto;height:34px}.theme-preview .chart svg{height:55px;margin-bottom:12px}.theme-preview .card{margin-bottom:12px}.theme-preview .card:last-of-type{margin-bottom:0}@media(max-width:800px){.theme-preview{order:-1;position:sticky;top:54px;z-index:1;max-height:240px;overflow:auto;padding:14px;box-shadow:0 5px 15px #0001}.theme-preview .day{height:28px}.theme-controls{order:1}}

dialog:has(.theme-layout) .form-actions{position:sticky;bottom:0;z-index:3;background:var(--card);padding:14px 0;margin-top:12px;border-top:1px solid var(--line)}

/* Adjacent-page arrows and a horizontally scrollable row of navigation buttons. */
#navigation:not([hidden]){display:flex;flex-wrap:nowrap;align-items:center;gap:10px;min-width:0}.nav-tabs{display:flex;flex:1;min-width:0;gap:8px;overflow-x:auto;scrollbar-width:none;padding:4px;scroll-padding:4px}.nav-tabs::-webkit-scrollbar{display:none}.nav-tabs>button{flex:none;white-space:nowrap;padding:12px 13px;font-size:14px}.nav-arrow{flex:none;display:grid;place-items:center;width:44px;min-width:44px;height:46px;padding:0;font-size:26px;line-height:1}.nav-arrow:disabled{opacity:.3}@media(max-width:740px){#navigation:not([hidden]){gap:6px}.nav-tabs{gap:6px}.nav-tabs>button{padding:11px 14px}.nav-arrow{width:44px;min-width:44px}}

/* Drawn chevrons replace font glyphs; align arrow controls with the tab pills. */
.nav-arrow{height:44px;border-radius:50%;border:0;background:color-mix(in srgb,var(--accent) 9%,var(--card));color:var(--accent);transition:background-color .15s}.nav-arrow svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.nav-arrow:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 18%,var(--card))}.nav-arrow:disabled{opacity:.24}.add-symptom{color:var(--accent);border-style:dashed;min-height:40px}.inline-symptom{padding:16px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--accent) 4%,var(--card))}.inline-symptom .toolbar{margin-top:12px}.inline-symptom .form-error:empty{display:none}
