:root{--bg:#0e1628;--card:#18233d;--card-2:#1f2d4d;--line:#2a3a5f;--text:#eef2fb;--muted:#98a6c4;--blue:#3d8bff;--yellow:#f6c945;--green:#5cc98a;--lavender:#b9a4f2;--coral:#ff9a82;--danger:#ff6b6b;--radius:18px;--serif:"Fraunces", Georgia, "Times New Roman", serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);margin:0}body{-webkit-text-size-adjust:100%;overscroll-behavior-y:none;font:16px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{font-family:var(--serif);margin:0;font-weight:700}.muted{color:var(--muted)}p{margin:0}.page{max-width:560px;padding:calc(env(safe-area-inset-top) + 14px) 12px calc(env(safe-area-inset-bottom) + 96px);margin:0 auto}.page.center{text-align:center;place-items:center;gap:12px;min-height:80vh;display:grid}.page-head{justify-content:space-between;align-items:center;gap:12px;margin:4px 4px 14px;display:flex}.page-head h1{font-size:30px;line-height:1.1}.page-head p{margin-top:2px}.summary-row{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;display:grid}.summary-box{background:var(--coral);color:#2a1410;border-radius:var(--radius);text-align:center;min-width:0;padding:14px 12px 12px;container-type:inline-size}.summary-box h2{white-space:nowrap;font-size:clamp(15px,7.5cqw,21px)}.summary-box .big{font-family:var(--serif);font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:8px;font-size:min(23cqw,64px);font-weight:700;line-height:1.05}.summary-box .unit{opacity:.75;margin-top:-2px;font-size:13px}.summary-box .sub{justify-content:space-around;gap:4px;margin-top:10px;font-size:clamp(12px,6cqw,15px);display:flex}.summary-box .sub b{font-size:1.15em}.summary-box .sub span{white-space:nowrap}.card{background:var(--card);border-radius:var(--radius);margin-bottom:14px;overflow:hidden}.card-band{color:#1a1a1a;justify-content:space-between;align-items:center;padding:8px 12px 8px 16px;display:flex}.card-band h2{font-size:20px}.tone-yellow .card-band{background:var(--yellow)}.tone-green .card-band{background:var(--green)}.tone-lavender .card-band{background:var(--lavender)}.card-body{padding:14px 16px 10px}.hero{font-family:var(--serif);margin:2px 0 10px;font-size:44px;font-weight:700;line-height:1.1}.hero small{color:var(--muted);font-size:20px;font-weight:500}.latest{gap:10px;margin:0;display:grid}.latest div{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.latest dt{color:var(--muted)}.latest dd{text-align:right;margin:0;font-weight:600}.latest dd small{color:var(--muted);font-size:13px;font-weight:400;display:block}.plain{margin:6px 0 4px;padding-left:18px}.plain li{padding:2px 0}.plus{background:var(--blue);color:#fff;cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;padding:0 0 3px;font-size:30px;line-height:1;display:grid;box-shadow:0 2px 8px #0000004d}.plus:active{transform:scale(.94)}.rows{margin:0;padding:0;list-style:none}.rows li+li{border-top:1px solid var(--line)}.row{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:48px;padding:0 2px;display:flex}.row.tall{padding-top:8px;padding-bottom:8px}.row:hover{background:#ffffff0a}.row b{font-variant-numeric:tabular-nums}.sub-line{color:var(--muted);font-size:13px;line-height:1.25;display:block}.sub-line.note{font-style:italic}.panel-rows{background:var(--card);border-radius:var(--radius);margin-bottom:14px;padding:4px 14px}.measure-cols{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;justify-items:end;font-size:15px;display:grid}.measure-cols small{color:var(--muted);font-size:13px}.row.tall b{white-space:nowrap}.day-group{background:var(--card);border-radius:var(--radius);margin-bottom:12px;padding:10px 14px 4px}.day-group>header{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.day-group h3{font-size:18px}.section-title{margin:18px 4px 8px;font-size:20px}.empty{color:var(--muted);text-align:center;padding:22px 8px}.panel{background:var(--card);border-radius:var(--radius);margin:12px 0;padding:14px 12px}.panel-title{margin:0 4px 2px;font-size:18px}.headline{font-family:var(--serif);margin:0 4px;font-size:32px;font-weight:700}.headline small{color:var(--muted);font-family:inherit;font-size:16px;font-weight:500}.panel>.muted{margin:0 4px 6px}.chart{touch-action:manipulation;-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.chart .grid{stroke:var(--line);stroke-width:1px}.chart .grid.v{stroke-dasharray:2 4;opacity:.6}.chart .axis{fill:var(--muted);font-size:10px}.chart .axis.small{opacity:.8;font-size:8.5px}.chart .axis.sel{fill:#fff;font-weight:700}.chart .avg-line{stroke:#fff;stroke-width:1.5px;stroke-dasharray:5 4;opacity:.9}.chart .avg-text{fill:#fff;font-weight:600}.chart .pcurve{stroke:#6f86b8;stroke-width:1px;opacity:.75}.chart .pcurve.median{stroke:#cfdcff;stroke-width:2.4px;opacity:1}.chart .plabel{font-size:8.5px}.chart .plabel.median{fill:#fff;font-weight:700}.chart .data-line{stroke:var(--yellow);stroke-width:2.2px}.chart .data-pt{fill:var(--yellow);stroke:var(--bg);stroke-width:1.5px}.chart .data-pt.sel{stroke:#fff;stroke-width:2.5px}.bar-detail{min-height:22px;margin:6px 4px 0;font-size:14px}.stats-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stats-grid div{gap:2px;display:grid}.stats-grid b{font-family:var(--serif);font-size:22px}.chart-wrap{position:relative}.popover{z-index:5;width:200px;position:absolute}.pop-card{background:#263760;border:1px solid #4a5f95;border-radius:14px;gap:2px;padding:10px 12px;font-size:14px;display:grid;position:relative;box-shadow:0 8px 24px #00000080}.pop-card .muted{font-size:12px}.pop-card .btn{margin-top:6px}.pop-x{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:4px 6px;font-size:22px;position:absolute;top:2px;right:6px}.range-pills{flex-wrap:wrap;gap:6px;margin:8px 2px 4px;display:flex}.range-pills button{background:var(--card-2);cursor:pointer;color:var(--muted);border:0;border-radius:999px;padding:6px 12px;font-size:13px}.range-pills button.on{background:var(--blue);color:#fff}.small-print{margin:6px 2px 0;font-size:12px}.panel .empty{padding:10px}.segmented{background:var(--card);border-radius:14px;gap:4px;padding:4px;display:flex}.segmented button{cursor:pointer;min-height:42px;color:var(--muted);background:0 0;border:0;border-radius:10px;flex:1;font-weight:600}.segmented button.on{background:var(--blue);color:#fff}.tabbar{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);background:#0e1628f0;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{max-width:112px;color:var(--muted);cursor:pointer;background:0 0;border:0;flex:1;justify-items:center;gap:2px;min-height:56px;padding:8px 2px 6px;font-size:11px;display:grid}.tabbar button.on{color:var(--blue)}.backdrop{z-index:50;background:#040812b8;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--card);overscroll-behavior:contain;width:100%;max-width:520px;max-height:94dvh;padding:16px 16px calc(env(safe-area-inset-bottom) + 20px);border-radius:24px 24px 0 0;overflow-y:auto}@media (width>=640px){.backdrop{align-items:center}.sheet{border-radius:24px;max-height:90vh}}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.sheet-head h2{font-size:24px}.icon-btn{background:var(--card-2);width:44px;height:44px;color:var(--text);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;font-size:22px;line-height:1;display:grid}.form{gap:14px;display:grid}.field{gap:6px;display:grid}.field-label{color:var(--muted);font-size:14px}.field-hint{color:var(--muted);font-size:12.5px}input,select,textarea{background:var(--bg);border:1px solid var(--line);border-radius:12px;width:100%;min-height:52px;padding:12px 14px;font-size:17px}textarea{resize:vertical;min-height:72px}input:focus,select:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:0;border-color:#0000}input[type=date],input[type=datetime-local]{appearance:none}.big-input{font-size:30px;font-family:var(--serif);min-height:64px;font-weight:700}.row2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.unit-input{align-items:center;gap:8px;display:flex}.unit-input span{color:var(--muted)}.actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.btn{cursor:pointer;background:var(--card-2);border:0;border-radius:14px;min-height:52px;padding:0 18px;font-weight:700}.btn.primary{background:var(--blue);color:#fff}.btn.soft{background:var(--card-2);color:#cfe0ff}.btn.ghost{border:1px solid var(--line);background:0 0}.btn.danger{background:var(--danger);color:#240808}.btn.danger-outline{border:1px solid var(--danger);color:var(--danger);background:0 0}.btn.small{min-height:36px;padding:0 14px;font-size:14px}.btn.block{width:100%}.btn:disabled{opacity:.6}.confirm{grid-template-columns:1fr 1fr;align-items:center;gap:8px;display:grid}.confirm span{color:var(--danger);grid-column:1/-1;font-weight:600}.error{color:var(--danger);font-size:14px}.ok{color:var(--green);font-size:14px}.banner{color:#ffe8a3;background:#4a3b12;border-radius:12px;margin-bottom:10px;padding:8px 12px;font-size:14px}.banner button{color:inherit;cursor:pointer;background:0 0;border:0;text-decoration:underline}.check-list{gap:6px;max-height:38vh;padding-right:2px;display:grid;overflow-y:auto}.check{border:1px solid var(--line);background:var(--bg);cursor:pointer;border-radius:12px;align-items:center;gap:12px;min-height:48px;padding:10px 12px;font-size:15px;display:flex}.check.on{border-color:var(--lavender);background:#b9a4f224}.check input{width:22px;height:22px;min-height:0;accent-color:var(--lavender);flex:none;padding:0}.search{margin-bottom:12px;position:relative}.search input{background:var(--card);border-radius:14px;padding-right:56px}.search .icon-btn{background:0 0;width:44px;height:44px;position:absolute;top:4px;right:4px}.onboarding h1{margin-bottom:6px;font-size:34px}.onboarding .form{margin-top:18px}@media (width>=900px){.page{max-width:640px}}.search input[type=search]::-webkit-search-cancel-button{display:none}
