@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300..800;1,300..800&family=JetBrains+Mono:ital,wght@0,400..700;1,400..700&display=swap";*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation;height:100%}*{-webkit-tap-highlight-color:transparent}button,.btn,.chip,.tab,.seg button,summary,.fab{-webkit-user-select:none;user-select:none}img,svg{max-width:100%;display:block}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}:root{--turq:#00d2be;--turq-dim:#00a19c;--silver:silver;--bg:#08090c;--surface:#15171c;--surface-2:#22262e;--sunken:#0d0e12;--separator:#ffffff1c;--border:#ffffff14;--border-2:#ffffff29;--border-glow:#00d2be47;--text:#fff;--text-2:#ebebf5a6;--text-3:#ebebf559;--accent:var(--turq);--accent-soft:#00d2be26;--on-accent:#00312d;--ok:#00d2be;--ok-soft:#00d2be29;--warn:#ffd426;--warn-soft:#ffd42629;--bad:#ff453a;--bad-soft:#ff453a29;--mat-bar:#15171cc7;--mat-float:#22262eb8;--mat-sheet:#15171ceb;--blur:saturate(180%) blur(24px);--blur-strong:saturate(200%) blur(36px);--hairline:.5px;--r-xs:8px;--r-sm:12px;--r-md:16px;--r-lg:20px;--r-xl:28px;--r-2xl:34px;--r-cap:999px;--shadow-1:0 2px 10px #0006;--shadow-2:0 16px 48px #0009;--shadow-float:0 10px 32px #00000080;--ring:0 0 0 4px #00d2be4d;--gut:16px;--maxw:720px;--tabbar-h:56px;--bar-inset:max(12px, env(safe-area-inset-right));--bar-w:min(100vw - 2 * var(--bar-inset), calc(var(--maxw) - 24px));--font:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "SF Pro Display", system-ui, "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace;--ease:cubic-bezier(.32, .72, 0, 1)}html[data-theme=light],:root[data-theme=light],[data-theme=light]{--bg:#f2f2f7;--surface:#fff;--surface-2:#f2f2f7;--sunken:#e9e9ef;--separator:#3c3c4329;--border:#3c3c431f;--border-2:#3c3c433d;--text:#000;--text-2:#3c3c439e;--text-3:#3c3c4357;--accent:var(--turq-dim);--accent-soft:#00a19c21;--on-accent:#fff;--ok:var(--turq-dim);--ok-soft:#00a19c21;--warn:#b25000;--warn-soft:#b250001f;--bad:#d70015;--bad-soft:#d700151c;--mat-bar:#f9f9fbc2;--mat-float:#ffffffb3;--mat-sheet:#ffffffeb;--shadow-1:0 1px 2px #0000000d;--shadow-2:0 12px 40px #00000029;--shadow-float:0 6px 22px #00000024;--ring:0 0 0 4px #00a19c42}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;letter-spacing:-.01em;overscroll-behavior-y:none;overflow-wrap:break-word;min-height:100dvh;font-size:17px;line-height:1.42}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.num{font-variant-numeric:tabular-nums}.faint{color:var(--text-3)}.dim{color:var(--text-2)}.hidden{display:none!important}:focus-visible{box-shadow:var(--ring);border-radius:var(--r-xs);outline:none}.skip-link{z-index:999;background:var(--accent);color:var(--on-accent);border-radius:0 0 var(--r-md) 0;padding:12px 18px;font-weight:600;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}.app{min-height:100dvh;display:flex}.col{flex-direction:column;flex:1;min-width:0;display:flex}.appbar{z-index:40;background:var(--mat-bar);-webkit-backdrop-filter:var(--blur);box-shadow:inset 0 calc(var(--hairline) * -1) 0 var(--separator);padding-top:env(safe-area-inset-top);position:sticky;top:0}.appbar-inner{max-width:var(--maxw);padding:8px var(--gut);padding-left:max(var(--gut), env(safe-area-inset-left));padding-right:max(var(--gut), env(safe-area-inset-right));align-items:center;gap:12px;min-height:50px;margin:0 auto;display:flex}.appbar-title{flex:1;min-width:0}.appbar-title .t1{letter-spacing:-.022em;font-size:22px;font-weight:700;line-height:1.18;display:block}.appbar-title .t2{color:var(--text-2);letter-spacing:-.005em;margin-top:1px;font-size:13px;display:block}.appbar-actions{align-items:center;gap:6px;display:flex}.page{max-width:var(--maxw);width:100%;padding:12px var(--gut);padding-left:max(var(--gut), env(safe-area-inset-left));padding-right:max(var(--gut), env(safe-area-inset-right));padding-bottom:calc(var(--tabbar-h) + 40px + env(safe-area-inset-bottom));flex:1;margin:0 auto}@keyframes sectionFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.section{animation:sectionFadeIn .28s var(--ease) backwards;margin-bottom:26px}.section:first-child{animation-delay:20ms}.section:nth-child(2){animation-delay:50ms}.section:nth-child(3){animation-delay:80ms}.section:nth-child(4){animation-delay:.11s}.section:nth-child(5){animation-delay:.14s}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin:0 4px 8px;display:flex}.section-head h2{letter-spacing:-.022em;font-size:20px;font-weight:700}.eyebrow{letter-spacing:.04em;text-transform:uppercase;color:var(--text-2);font-size:12px;font-weight:700}.stack{gap:12px;display:grid}.stack-lg{gap:20px;display:grid}.row-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.row-3{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1);transition:border-color .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease);padding:18px}.card[data-metric]:hover,.card[data-day-notes]:hover,button.card:hover{border-color:var(--border-glow);box-shadow:0 6px 24px -4px #00d2be24, var(--shadow-1);transform:translateY(-1px)}.card.tint{background:var(--accent-soft);box-shadow:none;border-color:#00d2be38}.card.flush{padding:0;overflow:hidden}.hero{border-radius:var(--r-xl);background:radial-gradient(125% 110% at 0% 0%, #00d2be2e 0%, #00a19c0a 50%, transparent 75%), var(--surface);box-shadow:0 8px 32px -4px #00d2be1f, var(--shadow-1);border:1px solid #00d2be38;padding:22px;position:relative;overflow:hidden}.btn{border-radius:var(--r-cap);letter-spacing:-.01em;cursor:pointer;height:50px;transition:transform .18s var(--ease), opacity .18s, background .18s, box-shadow .18s, border-color .18s;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-size:16px;font-weight:600;display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active{opacity:.88;transform:scale(.96)}.btn svg{flex:none;width:19px;height:19px}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){filter:brightness(1.05);box-shadow:0 4px 20px #00d2be5c}.btn-secondary{background:var(--surface-2);color:var(--text);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--surface);border-color:var(--border-2)}.btn-quiet{color:var(--accent);background:0 0}.btn-quiet:hover:not(:disabled){background:var(--accent-soft)}.btn-outline{color:var(--accent);border-color:var(--accent);background:0 0}.btn-outline:hover:not(:disabled){background:var(--accent-soft)}.btn-danger{background:var(--bad-soft);color:var(--bad);border-color:#ff453a33}.btn-danger:hover:not(:disabled){background:#ff453a40}.btn-sm{height:42px;padding:0 16px;font-size:14px}.btn-lg{height:54px;font-size:16.5px}.btn-xl{height:58px;font-size:17.5px}.btn-block{width:100%}.btn:disabled{opacity:.35;cursor:not-allowed;box-shadow:none;transform:none}.iconbtn{border-radius:var(--r-cap);width:44px;height:44px;color:var(--accent);transition:background .18s, transform .18s var(--ease);flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.iconbtn:active{background:var(--surface-2);transform:scale(.92)}.iconbtn svg{width:22px;height:22px}.link{color:var(--accent);cursor:pointer;justify-content:center;align-items:center;min-width:44px;min-height:44px;margin:-10px -4px;padding:0 4px;font-size:17px;font-weight:500;display:inline-flex}.link:active{opacity:.5}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border-radius:var(--r-cap);background:var(--surface-2);height:38px;color:var(--text);cursor:pointer;transition:background .18s, color .18s, transform .18s var(--ease);border:none;align-items:center;gap:5px;padding:0 16px;font-size:15px;font-weight:500;display:inline-flex}.chip:active{transform:scale(.95)}.chip.is-on{background:var(--accent);color:var(--on-accent);font-weight:600}.seg{background:var(--surface-2);border-radius:var(--r-cap);gap:2px;padding:2px;display:inline-flex}.seg button{border-radius:var(--r-cap);height:34px;color:var(--text);transition:background .22s var(--ease), color .22s;padding:0 16px;font-size:15px;font-weight:500}.seg button.is-on{background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-1);font-weight:600}.badge{border-radius:var(--r-cap);letter-spacing:0;background:var(--surface-2);color:var(--text-2);align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-bad{background:var(--bad-soft);color:var(--bad)}.badge-live{background:var(--accent);color:var(--on-accent)}.field{gap:7px;margin-bottom:16px;display:grid}.field>label,.field-label{color:var(--text-2);letter-spacing:-.01em;font-size:15px;font-weight:500}.opt{color:var(--text-3);font-weight:400}input[type=text],input[type=email],input[type=password],input[type=number],input[type=time],input[type=date],textarea,select{background:var(--surface-2);border-radius:var(--r-sm);width:100%;color:var(--text);appearance:none;border:none;padding:14px 16px;font-size:17px;transition:box-shadow .18s}input[type=file]{padding:12px;font-size:15px}input:focus,textarea:focus,select:focus{box-shadow:var(--ring);outline:none}input::placeholder,textarea::placeholder{color:var(--text-3)}textarea{resize:vertical;min-height:92px;line-height:1.45}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.affix{align-items:center;display:flex;position:relative}.affix .unit{color:var(--text-3);pointer-events:none;position:absolute;left:16px}.affix.has-unit input{padding-left:46px}.affix .suffix{color:var(--text-3);pointer-events:none;font-size:15px;position:absolute;right:16px}.form-error{color:var(--bad);margin:-8px 0 12px;font-size:15px}.stepper{background:var(--surface-2);border-radius:var(--r-lg);text-align:center;padding:16px 12px}.stepper .lbl{text-transform:uppercase;letter-spacing:.02em;color:var(--text-2);font-size:13px;font-weight:600}.stepper .val{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:6px 0 12px;font-size:40px;font-weight:300}.stepper .val small{color:var(--text-3);margin-left:3px;font-size:15px;font-weight:400}.stepper .ctl{justify-content:center;gap:10px;display:flex}.stepper .ctl button{border-radius:var(--r-md);background:var(--surface);height:52px;color:var(--accent);transition:transform .18s var(--ease), background .18s;flex:1;justify-content:center;align-items:center;display:flex}.stepper .ctl button:active{background:var(--sunken);transform:scale(.94)}.rest-timer{background:var(--accent-soft);border-radius:var(--r-md);color:var(--accent);align-items:center;gap:12px;margin-top:14px;padding:14px 16px;display:flex}.rest-timer .time{font-variant-numeric:tabular-nums;font-size:24px;font-weight:400}.rest-timer .presets{align-items:center;gap:6px;margin-left:auto;display:flex}.rest-timer .presets button{background:var(--surface);border-radius:var(--r-cap);color:var(--text-2);padding:7px 12px;font-size:13px;font-weight:600}.rest-timer .presets .iconbtn{background:0 0;width:34px;height:34px}.set-row{color:var(--text-3);font-variant-numeric:tabular-nums;box-shadow:inset 0 calc(var(--hairline) * -1) 0 var(--separator);justify-content:space-between;align-items:center;gap:12px;padding:14px 0;font-size:17px;display:flex}.set-row:last-child{box-shadow:none}.set-row.logged{color:var(--text)}.set-row span:last-child{align-items:center;display:inline-flex}.set-row svg{display:inline}.bar{background:var(--surface-2);border-radius:var(--r-cap);height:8px;overflow:hidden}.bar>i{background:var(--accent);border-radius:var(--r-cap);height:100%;transition:width .55s var(--ease);display:block}.bar>i.warn{background:var(--warn)}.bar>i.done{background:var(--accent)}.meter-row{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:7px;display:flex}.meter-row .k{color:var(--text-2);font-size:15px}.meter-row .v{font-variant-numeric:tabular-nums;font-size:15px}.stat{gap:2px;display:grid}.stat .k{text-transform:uppercase;letter-spacing:.02em;color:var(--text-2);font-size:13px;font-weight:600;display:block}.stat .v{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:34px;font-weight:300;display:block}.stat .v small{color:var(--text-3);margin-left:4px;font-size:15px;font-weight:400}.stat .d{font-size:13px;font-weight:500;display:block}.streak-wrap{align-items:center;gap:16px;display:flex}.streak-flame{border-radius:var(--r-md);background:var(--accent-soft);width:58px;height:58px;color:var(--accent);flex:none;place-items:center;display:grid}.streak-flame svg{width:28px;height:28px}.streak-n{letter-spacing:-.035em;font-variant-numeric:tabular-nums;font-size:44px;font-weight:300;line-height:1}.gridwrap{-webkit-overflow-scrolling:touch;padding-bottom:4px;overflow-x:auto}.daygrid{grid-template-rows:repeat(7,1fr);grid-auto-flow:column;gap:3px;min-width:max-content;display:grid}.daygrid .cell{background:var(--surface-2);border-radius:4px;width:14px;height:14px}.daygrid .cell.l1{background:#00d2be47}.daygrid .cell.l2{background:#00d2be7a}.daygrid .cell.l3{background:#00d2beb8}.daygrid .cell.l4{background:var(--turq)}.daygrid .cell.today{box-shadow:0 0 0 1.5px var(--silver)}.grid-legend{color:var(--text-3);justify-content:flex-end;align-items:center;gap:6px;margin-top:10px;font-size:13px;display:flex}.grid-legend .cell{background:var(--surface-2);border-radius:3px;width:12px;height:12px}.grid-months{color:var(--text-3);gap:0;min-width:max-content;margin-bottom:6px;font-size:12px;display:flex}.grid-months span{white-space:nowrap;flex:none;width:17px;overflow:visible}.timeline{display:grid}.tl-item{grid-template-columns:18px 1fr;gap:12px;display:grid}.tl-rail{flex-direction:column;align-items:center;padding-top:6px;display:flex}.tl-dot{border-radius:var(--r-cap);background:var(--border-2);flex:none;width:10px;height:10px}.tl-dot.is-on{background:var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}.tl-dot.is-done{background:var(--accent);opacity:.65}.tl-dot.is-skip{background:var(--text-3)}.tl-line{background:var(--separator);flex:1;width:2px;min-height:10px;margin-top:5px}.tl-body{min-width:0;padding-bottom:20px}.tl-head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:4px;display:flex}.tl-when{text-transform:uppercase;letter-spacing:.02em;color:var(--text-2);font-size:13px;font-weight:600}.tl-title{letter-spacing:-.01em;font-size:17px;font-weight:600}.tl-desc{color:var(--text-2);font-size:16px;line-height:1.45}.tl-item.is-dim .tl-body{opacity:.5}.tl-macros{align-items:baseline;gap:18px;margin:10px 0;display:flex}.tl-macros b{letter-spacing:-.025em;font-variant-numeric:tabular-nums;font-size:24px;font-weight:300}.tl-macros small{color:var(--text-3);margin-left:3px;font-size:13px}.tl-actions{flex-wrap:wrap;gap:8px;display:flex}.list{display:grid}.list-row{cursor:pointer;text-align:left;min-height:52px;box-shadow:inset 0 calc(var(--hairline) * -1) 0 var(--separator);align-items:center;gap:14px;padding:14px 0;transition:background .12s;display:flex}.list-row:last-child{box-shadow:none}.list-row:active:not(.plain){background:var(--surface-2)}.list-row .ic{color:var(--accent);flex:none;display:flex}.list-row .ic svg{width:22px;height:22px}.list-row .grow{flex:1;min-width:0}.list-row .t{letter-spacing:-.01em;font-size:17px;display:block}.list-row .s{color:var(--text-2);margin-top:1px;font-size:14px;display:block}.list-row.plain{cursor:default}.kv{box-shadow:inset 0 calc(var(--hairline) * -1) 0 var(--separator);justify-content:space-between;gap:12px;padding:12px 0;display:flex}.kv:last-child{box-shadow:none}.kv .k{color:var(--text-2);font-size:17px}.kv .v{font-variant-numeric:tabular-nums;font-size:17px;font-weight:500}.bookend{background:var(--surface);border-radius:var(--r-lg);width:100%;box-shadow:var(--shadow-1);text-align:left;align-items:center;gap:14px;min-height:72px;padding:14px 16px;transition:background .12s;display:flex}button.bookend:active{background:var(--surface-2)}.bookend .bk-action{color:var(--accent);flex:none;font-size:17px;font-weight:500}.bookend.is-on{background:var(--accent-soft);box-shadow:none}.bookend .bk-ic{border-radius:var(--r-sm);background:var(--surface-2);width:42px;height:42px;color:var(--text-2);flex:none;place-items:center;display:grid}.bookend.is-on .bk-ic{background:var(--accent);color:var(--on-accent)}.bookend .bk-ic svg{width:21px;height:21px}.bookend .bk-copy{flex:1;gap:1px;min-width:0;display:grid}.bookend .bk-copy strong{letter-spacing:-.01em;font-size:17px;font-weight:600}.bookend .bk-copy span{color:var(--text-2);font-size:14px}.scrim{z-index:90;-webkit-backdrop-filter:blur(3px);animation:fade .22s var(--ease);overscroll-behavior:contain;background:#0000006b;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:var(--maxw);background:var(--mat-sheet);-webkit-backdrop-filter:var(--blur-strong);border-radius:var(--r-2xl) var(--r-2xl) 0 0;box-shadow:var(--shadow-2);max-height:92dvh;animation:slideup .38s var(--ease);padding-bottom:env(safe-area-inset-bottom);touch-action:pan-y;flex-direction:column;display:flex}.sheet-grab{cursor:grab;flex:none;justify-content:center;width:100%;padding:10px 0 4px;display:flex}.sheet-grab:before{content:"";border-radius:var(--r-cap);background:var(--border-2);width:36px;height:5px}.sheet.is-dragging{transition:none;animation:none}.sheet-head{padding:6px var(--gut) 14px;flex:none;align-items:center;gap:12px;display:flex}.sheet-head h2{letter-spacing:-.022em;flex:1;font-size:20px;font-weight:700}.sheet-body{padding:0 var(--gut) 18px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;overflow-y:auto}.sheet-foot{padding:14px var(--gut);box-shadow:inset 0 var(--hairline) 0 var(--separator);flex:none;gap:10px;display:flex}.sheet-foot .btn{flex:1}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slideup{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes toastin{0%{opacity:0;transform:translateY(16px)scale(.96)}to{opacity:1;transform:none}}.toast-host,.toast-container{z-index:10000;top:max(16px, env(safe-area-inset-top,16px));pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:calc(100% - 32px);max-width:440px;display:flex;position:fixed;left:50%;transform:translate(-50%)}@media (width>=900px){.toast-host,.toast-container{align-items:flex-end;top:24px;left:auto;right:28px;transform:none}}.toast,.toast-item{background:var(--mat-float);width:100%;-webkit-backdrop-filter:var(--blur-strong);color:var(--text);border-radius:var(--r-cap);border:1px solid var(--border-2);box-shadow:var(--shadow-float);animation:toastin .3s var(--ease);pointer-events:auto;align-items:center;gap:12px;padding:10px 14px 10px 12px;display:flex}.toast .ic,.toast .toast-icon-badge{width:28px;height:28px;color:var(--accent);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.toast .msg,.toast .toast-text{color:var(--text);flex:1;font-size:14px;font-weight:550}.toast.bad .ic,.toast-error .toast-icon-badge{color:var(--bad);background:var(--bad-soft)}.toast.good .ic,.toast-success .toast-icon-badge{color:var(--ok);background:var(--ok-soft)}.toast.warn .ic,.toast-warning .toast-icon-badge{color:var(--warn);background:var(--warn-soft)}.toast button,.toast .toast-close{color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;transition:all .15s;display:inline-flex}.toast button:hover,.toast .toast-close:hover{color:var(--text);background:var(--surface-2)}.alert{border-radius:var(--r-md);align-items:flex-start;gap:10px;padding:14px 16px;font-size:15px;line-height:1.4;display:flex}.alert svg{flex:none;width:20px;height:20px;margin-top:1px}.alert-ok{background:var(--ok-soft);color:var(--ok)}.alert-warn{background:var(--warn-soft);color:var(--warn)}.alert-bad{background:var(--bad-soft);color:var(--bad)}.alert-info{background:var(--surface);color:var(--text-2)}.empty{text-align:center;color:var(--text-2);padding:40px 24px}.empty h3{color:var(--text);letter-spacing:-.022em;margin-bottom:6px;font-size:20px;font-weight:600}.empty p{margin-bottom:18px;font-size:15px}.skel{background:linear-gradient(90deg, var(--surface) 25%, var(--surface-2) 50%, var(--surface) 75%);border-radius:var(--r-sm);background-size:200% 100%;animation:1.4s infinite shimmer}.skel-line{height:14px;margin-bottom:10px}.skel-card{border-radius:var(--r-lg);height:92px;margin-bottom:12px}@keyframes shimmer{to{background-position:-200% 0}}.avatar{border-radius:var(--r-cap);background:var(--accent);width:34px;height:34px;color:var(--on-accent);flex:none;place-items:center;font-size:15px;font-weight:600;display:grid}.avatar.silver{background:var(--silver);color:#14181a}.avatar-lg{width:60px;height:60px;font-size:24px}.toggle{border-radius:var(--r-cap);background:var(--border-2);cursor:pointer;width:51px;height:31px;transition:background .26s var(--ease);border:none;flex:none;padding:0;position:relative}.toggle.on{background:var(--accent)}.toggle .knob{border-radius:var(--r-cap);width:27px;height:27px;transition:left .26s var(--ease);background:#fff;position:absolute;top:2px;left:2px;box-shadow:0 3px 8px #0000002e}.toggle.on .knob{left:22px}.toggle:after{content:"";width:62px;height:46px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.codebox{font-family:var(--mono);letter-spacing:.22em;color:var(--accent);background:var(--surface-2);border-radius:var(--r-lg);text-align:center;justify-content:center;align-items:center;padding:22px 16px;font-size:32px;font-weight:600;display:flex}.daycard{border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-1);overflow:hidden}.daycard.is-next{box-shadow:0 0 0 2px var(--accent)}.daycard>summary{cursor:pointer;align-items:center;gap:13px;min-height:64px;padding:15px 16px;list-style:none;display:flex}.daycard>summary::-webkit-details-marker{display:none}.daycard>summary:active{background:var(--surface-2)}.daycard .dow{border-radius:var(--r-sm);text-align:center;background:var(--surface-2);width:46px;height:46px;color:var(--text-2);letter-spacing:.02em;text-transform:uppercase;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.daycard.is-next .dow{background:var(--accent);color:var(--on-accent)}.daycard.is-rest .dow{background:var(--sunken);color:var(--text-3)}.daycard .dc-copy{flex:1;min-width:0}.daycard .dc-copy .t{letter-spacing:-.01em;font-size:17px;font-weight:600;display:block}.daycard .dc-copy .s{color:var(--text-2);margin-top:1px;font-size:14px;display:block}.daycard .ex-list{box-shadow:inset 0 var(--hairline) 0 var(--separator);padding:2px 16px 14px}.daycard .ex{box-shadow:inset 0 calc(var(--hairline) * -1) 0 var(--separator);grid-template-columns:1fr auto;grid-template-areas:"name edit""params edit";align-items:center;gap:2px 10px;padding:11px 0;display:grid}.daycard .ex:last-child{box-shadow:none}.daycard .ex .n{grid-area:name;font-size:16px}.daycard .ex .p{color:var(--text-2);font-variant-numeric:tabular-nums;grid-area:params;font-size:14px}.daycard .ex .iconbtn{grid-area:edit;margin:0}.sidebar{display:none}.tabbar{z-index:50;left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));bottom:calc(10px + env(safe-area-inset-bottom));height:var(--tabbar-h);background:var(--mat-bar);-webkit-backdrop-filter:var(--blur-strong);border-radius:var(--r-cap);border:1px solid var(--border);max-width:calc(var(--maxw) - 24px);align-items:stretch;margin:0 auto;display:flex;position:fixed;box-shadow:0 16px 36px -6px #000000a6,0 0 1px #ffffff1a}.tabbar .tab{color:var(--text-2);border-radius:var(--r-cap);transition:color .18s, transform .18s var(--ease);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:500;display:flex;position:relative}.tabbar .tab svg{width:22px;height:22px;transition:transform .18s var(--ease)}.tabbar .tab:hover{color:var(--text)}.tabbar .tab.is-on{color:var(--accent);font-weight:600}.tabbar .tab.is-on svg{transform:translateY(-1px)}.tabbar .tab.is-on:after{content:"";border-radius:var(--r-cap);background:var(--accent);width:14px;height:3px;box-shadow:0 0 8px var(--accent);position:absolute;bottom:5px}.tabbar .tab:active{transform:scale(.92)}.fab{z-index:51;right:calc(var(--bar-inset) + (var(--bar-w) / 10) - 28px);bottom:calc(var(--tabbar-h) + 24px + env(safe-area-inset-bottom));border-radius:var(--r-cap);background:var(--accent);width:56px;height:56px;color:var(--on-accent);box-shadow:0 8px 24px #00d2be6b, var(--shadow-float);transition:transform .2s var(--ease), box-shadow .2s var(--ease), filter .2s;place-items:center;display:grid;position:fixed}.fab:hover{box-shadow:0 12px 30px #00d2be8c, var(--shadow-float);filter:brightness(1.06);transform:translateY(-2px)scale(1.04)}.fab:active{transform:scale(.9)}.fab svg{width:27px;height:27px}@media (width>=745px) and (width<=899px){.fab{right:calc((100vw - (var(--maxw) - 24px)) / 2 + ((var(--maxw) - 24px) / 10) - 28px)}}.auth-wrap{min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) var(--gut) max(24px, env(safe-area-inset-bottom));background:radial-gradient(90% 55% at 50% 0%, #00d2be29 0%, transparent 60%), var(--bg);place-items:center;display:grid}.auth-card{width:100%;max-width:420px}.brand-mark{justify-content:center;align-items:center;gap:12px;margin-bottom:10px;display:flex}.brand-mark .bm{border-radius:var(--r-md);background:var(--accent);width:52px;height:52px;color:var(--on-accent);place-items:center;display:grid;box-shadow:0 0 24px #00d2be59}.brand-mark .bm svg{width:28px;height:28px}.brand-name{letter-spacing:-.026em;font-size:28px;font-weight:700}.auth-sub{text-align:center;color:var(--text-2);margin-bottom:26px;font-size:16px}@media (width>=900px){.tabbar,.fab{display:none}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex:none;gap:4px;width:260px;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.sb-brand{align-items:center;gap:11px;padding:8px 12px 24px;display:flex}.sb-brand .bm{border-radius:var(--r-sm);background:var(--accent);width:38px;height:38px;color:var(--on-accent);flex:none;place-items:center;display:grid;box-shadow:0 0 16px #00d2be4d}.sb-brand .bm svg{width:21px;height:21px}.sb-brand .nm{display:grid}.sb-brand .nm b{letter-spacing:-.02em;font-size:17px;font-weight:700}.sb-brand .nm span{color:var(--text-2);font-size:13px}.sb-link{border-radius:var(--r-sm);color:var(--text);transition:background .18s, color .18s, transform .18s var(--ease);align-items:center;gap:12px;padding:11px 14px;font-size:15px;font-weight:500;display:flex}.sb-link svg{width:20px;height:20px;color:var(--accent);flex:none}.sb-link:hover{background:var(--surface-2);transform:translate(2px)}.sb-link.is-on{background:var(--accent-soft);color:var(--accent);border:1px solid #00d2be33;font-weight:600}.sb-link.is-on svg{color:var(--accent)}.sb-sep{background:var(--border);height:1px;margin:14px 8px}.sb-foot{margin-top:auto}.page{padding-bottom:40px}.toast-host{bottom:28px}}@media (width<=899px){:root{--gut:16px}.appbar-title .t1{font-size:24px}.row-3{grid-template-columns:1fr 1fr}.stat .v{font-size:32px}.streak-n{font-size:46px}.daygrid .cell{width:15px;height:15px}.grid-months span{width:18px}}@media (width<=350px){:root{--gut:13px}.row-2,.row-3{grid-template-columns:1fr}.stat .v{font-size:28px}.codebox{letter-spacing:.16em;font-size:26px}.tabbar .tab span{font-size:9px}.fab{width:52px;height:52px}}@media (width<=899px) and (orientation:landscape) and (height<=500px){:root{--tabbar-h:46px}.tabbar .tab svg{width:21px;height:21px}.fab{width:46px;height:46px;bottom:calc(var(--tabbar-h) + 16px + env(safe-area-inset-bottom))}}@media (display-mode:standalone){.appbar{padding-top:max(env(safe-area-inset-top), 10px)}body{overscroll-behavior:none}}@media (hover:none){.btn:hover,.chip:hover,.iconbtn:hover,.sb-link:hover{background:inherit}.btn-primary:hover{background:var(--accent)}.btn-secondary:hover{background:var(--surface-2)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.date-nav{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-cap);box-shadow:var(--shadow-1);justify-content:space-between;align-items:center;margin-bottom:16px;padding:6px 12px;display:flex}.date-nav .date-label{text-align:center;flex-direction:column;align-items:center;line-height:1.25;display:flex}.date-nav .iconbtn{width:36px;height:36px;color:var(--text-2);border-radius:var(--r-cap);transition:all .15s}.date-nav .iconbtn:hover{color:var(--accent);background:var(--surface-2)}.pill-strip{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;margin-bottom:14px;padding:4px 2px 12px;display:flex;overflow-x:auto}.pill-strip::-webkit-scrollbar{display:none}.pill-tab{border-radius:var(--r-cap);background:var(--surface);color:var(--text-2);border:1px solid var(--border);cursor:pointer;transition:all .2s var(--ease);flex:none;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex}.pill-tab:hover{color:var(--text);background:var(--surface-2);border-color:var(--border-2)}.pill-tab.is-active,.pill-tab.is-on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent);box-shadow:0 0 12px #00d2be33}.pill-tab.is-done{color:var(--ok)}.reorder-ctl{align-items:center;gap:2px;display:inline-flex}.reorder-ctl button{color:var(--text-3);border-radius:var(--r-xs);transition:color .15s,background .15s}.reorder-ctl button:hover:not(:disabled){color:var(--accent);background:var(--surface-2)}.input-eye-wrap{align-items:center;display:flex;position:relative}.input-eye-wrap input{padding-right:44px}.eye-toggle-btn{width:36px;height:36px;color:var(--text-2);border-radius:var(--r-cap);cursor:pointer;justify-content:center;align-items:center;transition:color .15s,background .15s;display:flex;position:absolute;right:6px}.eye-toggle-btn:hover{color:var(--accent);background:var(--surface-2)}.tap-val{cursor:pointer;border-radius:var(--r-xs);border-bottom:1px dashed #00d2be66;padding:0 4px;transition:all .15s}.tap-val:hover{color:var(--accent);border-bottom-color:var(--accent);background:var(--accent-soft)}
