:root{color-scheme:light dark;--bg:#f4f6fc;--card:#fff;--text:#202b42;--muted:#57637a;--accent:#385ab1;--tint:#eaf0ff;--line:#d6deed;--done:#e8f3ee;--green:#24654e;--danger:#a02c3e;--shadow:0 8px 35px #28396108;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;font-size:100%;-webkit-text-size-adjust:100%}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--bg);color:var(--text);min-height:100dvh;line-height:1.5}button,input,textarea,select{font:inherit;color:inherit}button,a,input,select,summary{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);background:var(--card);border-radius:14px;min-height:44px;padding:.65rem 1rem;font-weight:600;transition:transform .15s,opacity .15s}button:active{transform:scale(.975)}button:disabled{opacity:.55;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}a{color:var(--accent);text-underline-offset:4px}h1,h2,h3,p{margin:0}h1{font-size:2.05rem;line-height:1.2;letter-spacing:-.065rem;font-weight:700;margin:.55rem 0}h2{font-size:1.18rem;letter-spacing:-.025rem}h3{font-size:1rem}p{color:var(--muted)}[hidden]{display:none!important}.app-wrap{width:min(100%,760px);margin:auto;padding:calc(14px + env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) calc(110px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.brand{display:flex;align-items:center;gap:8px;margin-bottom:12px}.brand>a{display:grid;place-items:center;min-width:44px;min-height:44px;margin-left:-12px;text-decoration:none}.brand strong{font-size:1.65rem;letter-spacing:-.07rem}.brand-mark{font-size:2rem;color:var(--accent)}.brand-dot{color:var(--accent)}.private-label{font-size:.625rem;letter-spacing:.14em;margin-left:auto;color:var(--muted)}#status{font-size:.75rem;min-height:2.3rem;overflow-wrap:anywhere}.page-intro{padding:16px 0 24px}.eyebrow{font-size:.625rem;font-weight:700;letter-spacing:.14em;color:var(--accent)}.small{font-size:.8125rem}.panel{padding:22px;background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);margin:20px 0}.panel>p{margin:8px 0 16px}.date-nav{display:flex;align-items:center;gap:6px;margin:10px 0 20px}.date-nav button{padding:8px 12px}.date-picker{flex:1;min-width:0}.date-picker input{padding:10px 4px!important;text-align:center;background:transparent!important;border:none!important;min-width:0;width:100%}.date-nav h2{flex:1;text-align:center;font-size:1rem}.summary{display:flex;align-items:center;gap:12px;background:linear-gradient(125deg,var(--tint),var(--card));padding:22px 18px}.summary>div:first-child{flex:1}.summary h2{margin:7px 0}.summary p{font-size:.8125rem}.ring{width:88px;flex:0 0 88px}.ring svg{display:block;width:100%}.ring text{fill:var(--text);font-size:19px;font-weight:700}.ring circle{stroke:var(--line)}.ring .progress{stroke:var(--accent)}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:28px 0 5px}.section-heading h2{font-size:1.1rem}.section-hint{margin-bottom:15px}.habit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.habit-card{position:relative;min-width:0}.habit{width:100%;min-height:138px;text-align:left;padding:15px 13px;display:flex;flex-direction:column;gap:8px;border-radius:19px;box-shadow:var(--shadow)}.habit-top{display:flex;justify-content:space-between;width:100%;align-items:center}.habit-icon{font-size:1.35rem;color:var(--accent);background:var(--tint);border-radius:11px;width:34px;height:34px;text-align:center}.habit-state{font-size:.68rem;font-weight:600;color:var(--muted)}.habit-label{font-size:.875rem;line-height:1.25;overflow-wrap:anywhere}.habit-meta{font-size:.6875rem;font-weight:400;color:var(--muted)}.habit[aria-pressed=true]{background:var(--done);border-color:var(--green)}.habit[aria-pressed=true] .habit-state{color:var(--green)}.counter .habit{padding-bottom:56px}.counter-tools{position:absolute;left:12px;bottom:8px;display:flex;gap:6px;align-items:center}.counter-tools button{min-width:44px;min-height:44px;padding:3px 9px;font-size:.8rem}.checkin{margin-top:30px}.checkin h2{font-size:1.5rem;margin-top:7px}.rating{padding:18px 0;border:0;margin:0;border-bottom:1px solid var(--line);min-width:0}.rating legend{float:left;font-size:.9375rem;font-weight:600;width:100%;margin-bottom:10px}.rating-buttons{display:flex;gap:7px;clear:both}.rating-buttons button{flex:1;padding:8px 0;min-width:44px;min-height:46px;border-radius:12px}.rating-buttons button[aria-pressed=true],.range-controls button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:white}.rating-scale{display:flex;justify-content:space-between;font-size:.6875rem;color:var(--muted);margin-top:7px}label{display:block;font-size:.875rem;font-weight:500;margin:16px 0 8px}input,textarea,select{display:block;width:100%;min-width:0;min-height:48px;font-size:1rem;border:1px solid var(--line);border-radius:12px;background:var(--bg);padding:12px;margin-top:7px}textarea{resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.primary,.secondary,.danger{display:block;width:100%;margin:12px 0;min-height:48px}.primary{background:var(--accent);border-color:var(--accent);color:white}.secondary{background:var(--tint);color:var(--accent);border-color:transparent}.danger{color:var(--danger);margin-top:24px}.checkbox{display:flex;align-items:center;gap:12px}.checkbox input{width:24px;min-height:24px;margin:0;accent-color:var(--accent)}summary{min-height:44px;padding:12px 0;cursor:pointer;font-weight:500}details{margin-top:16px}summary span{color:var(--muted);margin-left:8px}.save-note{margin-top:18px!important}.symptom-list{padding:0;list-style:none}.symptom-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0;font-size:.85rem}.tabs{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;background:var(--card);border-top:1px solid var(--line);padding:8px max(12px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));box-shadow:0 -8px 32px #28396108}.tabs button{border:0;background:none;flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:.6875rem;padding:4px;min-height:54px;color:var(--muted)}.tabs button span{font-size:1.4rem;line-height:1.2}.tabs button[aria-current]{color:var(--accent);background:var(--tint)}footer{padding:24px 8px 0}footer>p{text-align:center}footer a{display:inline-flex;align-items:center;min-height:44px}footer details{border-top:1px solid var(--line);margin-top:22px}footer details p{margin-bottom:10px}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.weekdays{text-align:center;font-size:.7rem;color:var(--muted);margin-bottom:10px}.calendar button{min-width:0;min-height:66px;padding:4px 0;border:0;border-radius:9px;font-size:.875rem}.calendar button small{display:block;font-size:.5625rem;font-weight:400;line-height:1.5}.calendar .some{background:var(--tint)}.calendar .many{background:var(--done)}.calendar .mood-low{box-shadow:inset 0 -3px #ad6736}.calendar .mood-high{box-shadow:inset 0 -3px var(--green)}.calendar button[aria-current]{outline:2px solid var(--accent);outline-offset:-2px}.calendar+p{margin-top:16px;font-size:.75rem}.range-controls{display:flex;gap:10px;margin-top:20px}.range-controls button{flex:1}.chart svg{width:100%;height:auto;display:block;margin-top:12px;color:var(--accent)}.chart text{fill:var(--muted);font-size:11px}.chart .gridline{stroke:var(--line)}.chart details{font-size:.8125rem}.chart table{width:100%;border-collapse:collapse}.chart td,.chart th{text-align:left;padding:6px;border-bottom:1px solid var(--line)}.login{margin-top:30px}.login h1{margin:12px 0}.login .small{margin-top:20px}dialog{max-width:min(90%,480px);max-height:85dvh;overflow:auto;border:1px solid var(--line);border-radius:24px;padding:24px;background:var(--card);color:var(--text)}dialog::backdrop{background:#0009}dialog p{margin:14px 0}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.8rem}.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}.skip{position:fixed;left:15px;top:-100px;z-index:100;background:var(--card);padding:14px}.skip:focus{top:15px}input[type=file]{font-size:.85rem}#main>section>h1{margin-top:12px}#main>section:focus{outline:0}
@media(prefers-color-scheme:dark){:root{--bg:#000;--card:#10131b;--text:#f1f3f9;--muted:#aab5cb;--accent:#a7bcff;--tint:#1b253e;--line:#303949;--done:#102b23;--green:#8bdfb9;--danger:#ffa4b1;--shadow:none}.primary,.rating-buttons button[aria-pressed=true],.range-controls button[aria-pressed=true]{color:#121c33}.summary{background:var(--card)}}
@media(min-width:650px){.app-wrap{padding-top:26px}.habit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.tabs{width:520px;margin:auto;border:1px solid var(--line);border-radius:22px 22px 0 0}h1{font-size:2.6rem}.checkin{padding:30px}.login{max-width:480px;margin:50px auto}}
@media(max-width:360px){.app-wrap{padding-left:12px;padding-right:12px}.panel{padding:16px}.rating-buttons{gap:4px}.habit-label{font-size:.8125rem}.date-nav{gap:2px}.date-nav button{padding:8px}.private-label{font-size:.55rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
#history .panel{padding:12px}
#insight{white-space:pre-line}
button{min-width:44px}.checkbox{min-height:44px}
/* Equal grid tracks accommodate counters and long labels without clipping text. */
.habit-grid{grid-auto-rows:1fr}.habit-card{display:flex}.habit{height:100%;min-height:180px;padding-bottom:56px}.habit-label{min-height:2.5em}.habit-meta{margin-top:auto}.workout-list{display:grid;gap:16px;margin-top:20px}.exercise-card{padding:18px;border:1px solid var(--line);border-radius:18px}.exercise-card strong{display:block;margin:8px 0;color:var(--accent);font-size:.875rem}.exercise-card p{font-size:.9375rem}.exercise-card button[aria-pressed=true]{background:var(--done);color:var(--green)}#workout-plan>p{margin-top:12px}#workouts ul{padding-left:20px}#workouts li{margin:8px 0}.tabs button{min-width:0}
