@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-opsz-normal-D9N6E8K1.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-opsz-normal-IcJDqblK.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-opsz-normal-Cre6nC2_.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-opsz-normal-oos9povj.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-opsz-normal-Bf69Tn_J.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-vietnamese-wdth-normal-rJmnGBSt.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-wdth-normal-7khWdh9v.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-wdth-normal-DY7AcnAa.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#2a3544;--surface:#334154;--surface-2:#3d4d62;--ink:#eceff4;--ink-2:#b6c1ce;--ink-3:#a3afbe;--line:#475a71;--line-strong:#6b7b8e;--brand:#f97316;--brand-fill:#f97316;--brand-grad:linear-gradient(135deg, #fdba74 0%, #f97316 48%, #ea580c 100%);--on-brand:#1d1208;--brand-ink:#ff9a52;--brand-soft:#5f4c46;--go:#3fd68f;--go-2:#48977e;--go-soft:#36625f;--on-go:#0c1f16;--gold:#f4bf4a;--gold-soft:#656251;--gold-ink:#fbe2a2;--on-gold:#2b1d00;--warn:#f08a96;--warn-soft:#5d5162;--on-warn:#2a0c12;--m-idle:#515d6e;--m-base:#404d5f;--m-gap:#334154;--on-ink:#2a3544;--scrim:#0a0e149e;--font:"DM Sans Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-head:"Bricolage Grotesque Variable", "DM Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-num:"Archivo Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--head-weight:750;--head-track:-.025em;--text:16px;--text-sm:14.5px;--text-xs:13px;--h3:20px;--h2:25px;--h1:31px;--num-l:32px;--num-xl:44px;--wide:100;--wider:125;--r-sheet:24px;--r-card:18px;--r-input:12px;--r-pill:999px;--icon-stroke:2.35;--tap:48px;--tap-l:58px;--row:56px;--gutter:16px;--max:1180px;--shadow-sheet:0 -10px 40px #00000073;--shadow-float:0 12px 30px -10px #00000080;--ease:cubic-bezier(.2, .8, .2, 1);--t-fast:.14s;--t:.22s;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}.layer-inst{--bg:#1e2835;--surface:#1e2835;--surface-2:#303e4d;--ink:#eef1f5;--ink-2:#aab6c4;--ink-3:#9ca8b7;--line:#3a495b;--line-strong:#626e7d;--brand-soft:#4e392e;--go-2:#3f8c70;--go-soft:#24493f;--gold-soft:#564f3a;--warn-soft:#4a3843;--m-idle:#3f4854;--m-base:#2d3642;--m-gap:#1e2835;--on-ink:#1e2835;background-color:var(--bg);color:var(--ink)}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg);-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}html:has(dialog[open]){overflow:hidden}body{background:var(--bg);min-height:100dvh;color:var(--ink);font-family:var(--font);font-size:var(--text);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;overflow-wrap:break-word;line-height:1.45}img,svg,video,iframe{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit;letter-spacing:inherit}button{cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}button:disabled{cursor:default}a{color:var(--brand-ink);text-underline-offset:.18em;text-decoration-thickness:1px}:focus{outline:none}:focus-visible{outline:2px solid var(--brand-ink);outline-offset:2px;border-radius:4px}::selection{background:var(--brand-soft)}h1,h2,h3,.wide{font-family:var(--font-head);font-weight:var(--head-weight);letter-spacing:var(--head-track);text-wrap:balance;line-height:1.08}h1{font-size:var(--h1)}h2{font-size:var(--h2)}h3{font-size:var(--h3)}.num{font-family:var(--font-num);font-stretch:calc(var(--wider) * 1%);font-variant-numeric:tabular-nums;letter-spacing:0;font-weight:800;line-height:1}p{text-wrap:pretty}.muted{color:var(--ink-2)}.small{font-size:var(--text-sm)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.stack{flex-direction:column;gap:16px;display:flex}.stack-sm{flex-direction:column;gap:8px;display:flex}#root{isolation:isolate;min-height:100dvh}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.spinner{animation-duration:1.2s!important;animation-iteration-count:infinite!important}}.icon{stroke-width:var(--icon-stroke);flex:none}.btn{min-height:var(--tap);border-radius:calc(var(--r-input) + 2px);font-family:var(--font-head);font-size:16px;font-weight:var(--head-weight);letter-spacing:-.01em;text-align:center;-webkit-user-select:none;user-select:none;transition:transform var(--t-fast) var(--ease), filter var(--t-fast) var(--ease), background-color var(--t-fast) var(--ease), opacity var(--t-fast) var(--ease);border:0;justify-content:center;align-items:center;gap:9px;padding:0 20px;line-height:1.15;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45}.btn[aria-busy=true]{opacity:.8}.btn--lg{min-height:var(--tap-l);padding:0 24px;font-size:18px}.btn--block{width:100%;display:flex}.btn--primary{background:var(--brand-grad);color:var(--on-brand)}.btn--secondary{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line-strong);background:0 0}.btn--ghost{color:var(--brand-ink);padding-inline:12px}.btn--danger{background:var(--warn);color:var(--on-warn)}.btn--record{background:var(--gold-soft);color:var(--gold-ink);box-shadow:inset 0 0 0 1.5px var(--gold)}@media (hover:hover){.btn--primary:hover:not(:disabled),.btn--danger:hover:not(:disabled){filter:brightness(1.06)}.btn--secondary:hover:not(:disabled){background:color-mix(in srgb, var(--ink) 6%, transparent)}.btn--ghost:hover:not(:disabled){background:var(--brand-soft)}}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(1turn)}}.icon-btn{width:var(--tap);height:var(--tap);color:var(--ink);transition:transform var(--t-fast) var(--ease), background-color var(--t-fast) var(--ease);border-radius:50%;flex:none;place-items:center;display:inline-grid;position:relative}.icon-btn:active:not(:disabled){transform:scale(.92)}.icon-btn:disabled{opacity:.35}.icon-btn--filled{background:var(--surface-2)}.icon-btn--ink{background:var(--brand-grad);color:var(--on-brand)}@media (hover:hover){.icon-btn--plain:hover:not(:disabled){background:color-mix(in srgb, var(--ink) 8%, transparent)}}.count{border-radius:var(--r-pill);background:var(--brand-fill);min-width:19px;height:19px;color:var(--on-brand);font-variant-numeric:tabular-nums;place-items:center;padding:0 5px;font-size:11.5px;font-weight:750;line-height:1;display:inline-grid}.icon-btn .count{box-shadow:0 0 0 2px var(--bg);position:absolute;top:5px;right:3px}.field{flex-direction:column;gap:7px;min-width:0;display:flex}.field__label{font-size:var(--text-sm);color:var(--ink-2);font-weight:600}.field__hint{font-size:var(--text-xs);color:var(--ink-2)}.field__error{font-size:var(--text-sm);color:var(--warn);align-items:flex-start;gap:6px;font-weight:550;display:flex}.field__error .icon{margin-top:2px}.input{background:var(--surface-2);border-radius:var(--r-input);min-height:52px;transition:box-shadow var(--t-fast) var(--ease);align-items:center;display:flex}.input:focus-within{box-shadow:inset 0 0 0 2px var(--brand-fill)}.input:has([aria-invalid=true]){box-shadow:inset 0 0 0 2px var(--warn)}.input input,.input textarea{width:100%;min-width:0;height:52px;color:var(--ink);font-size:max(16px, var(--text));background:0 0;border:0;outline:none;flex:1;padding:0 14px;scroll-margin-block:96px}.input input::placeholder,.input textarea::placeholder{color:var(--ink-2);opacity:1}.input input[type=search]::-webkit-search-cancel-button{display:none}.input input:-webkit-autofill{-webkit-box-shadow:0 0 0 40px var(--surface-2) inset;-webkit-text-fill-color:var(--ink)}.input>.icon-btn{color:var(--ink-2);margin-right:2px}.input--area{align-items:stretch}.input textarea{resize:vertical;height:auto;padding:13px 14px;line-height:1.45}.input--num input{font-variant-numeric:tabular-nums;font-weight:600}.input__unit{color:var(--ink-2);font-size:var(--text-sm);white-space:nowrap;padding-right:14px;font-weight:550}.input--xl{min-height:var(--row);justify-content:center}.input--xl input{height:var(--row);text-align:center;font-family:var(--font-num);font-size:var(--num-l);font-weight:800;font-stretch:calc(var(--wider) * 1%);padding:0 6px}.input--xl .input__unit{font-size:var(--text-xs);padding:0 12px 0 0}.stepper{border-radius:var(--r-input);background:var(--surface-2);align-items:center;gap:2px;padding:3px;display:inline-flex}.stepper .icon-btn{width:var(--tap);height:var(--tap);border-radius:calc(var(--r-input) - 3px);background:0 0}.stepper__value{text-align:center;min-width:52px;font-size:21px}.stepper__value small{font-family:var(--font);font-size:var(--text-xs);color:var(--ink-2);margin-left:3px;font-weight:600;font-stretch:100%}.segmented{border-radius:calc(var(--r-input) + 4px);background:var(--surface-2);grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:4px;display:grid}.segmented__opt{min-height:var(--tap);border-radius:var(--r-input);font-size:var(--text-sm);color:var(--ink-2);transition:background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);padding:0 8px;font-weight:650}.segmented__opt[aria-checked=true]{background:var(--ink);color:var(--on-ink)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border-radius:var(--r-pill);background:var(--surface-2);min-height:40px;color:var(--ink-2);font-size:var(--text-sm);transition:background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);margin-block:4px;padding:0 15px;font-weight:650;position:relative}.chip:after{content:"";position:absolute;inset:-4px 0}.chips:has(.chip){margin-block:-4px}.chip[aria-pressed=true],.weekday[aria-pressed=true]{background:var(--brand-grad);color:var(--on-brand)}.weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.weekday{min-height:var(--tap);border-radius:var(--r-input);background:var(--surface-2);color:var(--ink-2);font-size:var(--text-sm);transition:background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);font-weight:700}.sheet{width:100%;max-width:none;max-height:none;color:var(--ink);background:0 0;border:0;margin:auto 0 0;padding:0;overflow:visible}.sheet::backdrop{background:var(--scrim)}.sheet[open]{animation:sheet-in var(--t) var(--ease)}.sheet[open]::backdrop{animation:fade-in var(--t) var(--ease)}@media (width<=719px){.sheet{margin-bottom:var(--kb,0px)}}.sheet__panel{max-height:calc(92dvh - var(--kb,0px));padding-bottom:var(--safe-bottom);border-radius:var(--r-sheet) var(--r-sheet) 0 0;box-shadow:var(--shadow-sheet);flex-direction:column;display:flex}.sheet__panel:before{content:"";background:var(--line-strong);border-radius:2px;align-self:center;width:38px;height:4px;margin-top:8px}.sheet__head{align-items:center;gap:8px;min-height:58px;padding:0 8px 0 20px;display:flex}.sheet__title{min-width:0;font-size:var(--h3);flex:1}.sheet__body{overscroll-behavior:contain;padding:4px 20px 20px;overflow-y:auto}.sheet__foot{box-shadow:inset 0 1px 0 var(--line);padding:12px 20px 16px}@media (width>=720px){.sheet{width:min(560px,100% - 32px);margin:auto}.sheet[open]{animation-name:pop-in}.sheet__panel{border-radius:var(--r-sheet);max-height:min(86dvh,780px);padding-bottom:0}.sheet__panel:before{display:none}.sheet__head{min-height:64px;padding-top:6px}}.actions{gap:12px;display:flex}.actions>*{flex:1;min-width:0}.actions>.btn{padding-inline:12px}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}}@keyframes pop-in{0%{opacity:0;transform:scale(.97)}}@keyframes fade-in{0%{opacity:0}}.toasts{z-index:60;inset:calc(var(--safe-top) + 8px) 0 auto;width:auto;max-width:none;height:auto;max-height:none;color:inherit;padding:0 var(--gutter);pointer-events:none;background:0 0;border:0;flex-direction:column;align-items:center;gap:8px;margin:0;display:flex;position:fixed;overflow:visible}.toast{border-radius:var(--r-card);width:min(100%,440px);min-height:56px;box-shadow:inset 0 0 0 1px var(--line), var(--shadow-float);pointer-events:auto;animation:toast-in var(--t) var(--ease);align-items:center;gap:10px;padding:4px 4px 4px 16px;font-size:15px;font-weight:600;display:flex}.toast>.icon{color:var(--go)}.toast--error>.icon{color:var(--warn)}.toast--record{background:var(--gold-soft);color:var(--gold-ink);box-shadow:inset 0 0 0 1.5px var(--gold), 0 0 26px -4px color-mix(in srgb, var(--gold) 60%, transparent)}.toast--record>.icon{color:var(--gold)}.toast__text{flex:1;padding:6px 0}.toast__action{min-height:var(--tap);border-radius:var(--r-input);color:var(--brand-ink);background:color-mix(in srgb, currentColor 14%, transparent);padding:0 16px;font-weight:700}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}}.screen{--page-max:720px}.screen:has(.page--wide){--page-max:var(--max)}.topbar{z-index:20;min-height:calc(58px + var(--safe-top));padding-top:var(--safe-top);padding-inline:max(8px, calc((100% - var(--page-max,720px)) / 2 + 8px));background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:saturate(1.3)blur(14px);backdrop-filter:saturate(1.3)blur(14px);align-items:center;gap:4px;display:flex;position:sticky;top:0}.topbar:not(.topbar--back){padding-left:max(var(--gutter), calc((100% - var(--page-max,720px)) / 2 + var(--gutter)))}.topbar__title{min-width:0;font-size:var(--h3);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.topbar__actions{align-items:center;gap:2px;display:flex}.icon-btn.feedback-btn{color:var(--ink-3)}.page{width:100%;max-width:var(--page-max,720px);padding:8px var(--gutter) calc(40px + var(--nav-h,0px) + var(--safe-bottom));flex-direction:column;gap:20px;margin:0 auto;display:flex}.page--wide{max-width:var(--max)}.card{background:var(--surface);border-radius:var(--r-card);padding:16px}.box{background:var(--surface-2);border-radius:var(--r-input);padding:12px 14px}.tabs{scrollbar-width:none;box-shadow:inset 0 -1px 0 var(--line);gap:4px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{min-height:var(--tap);color:var(--ink-2);white-space:nowrap;transition:color var(--t-fast) var(--ease);align-items:center;gap:6px;padding:0 12px;font-weight:650;display:inline-flex;position:relative}.tab[aria-selected=true]{color:var(--ink)}.tab[aria-selected=true]:after{content:"";background:var(--brand-grad);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:0;left:12px;right:12px}.list-section{flex-direction:column;gap:8px;display:flex}.section-head{justify-content:space-between;align-items:center;gap:8px;min-height:32px;padding-left:2px;display:flex}.section-title{font-family:var(--font-head);font-size:18px;font-weight:var(--head-weight);letter-spacing:var(--head-track)}.list{background:var(--surface);border-radius:var(--r-card);overflow:hidden}.row{width:100%;min-height:64px;color:var(--ink);text-align:left;transition:background-color var(--t-fast) var(--ease);align-items:center;gap:12px;padding:10px 16px;text-decoration:none;display:flex;position:relative}.row+.row:before{content:"";background:var(--line);height:1px;position:absolute;top:0;left:16px;right:0}.row--action:active{background:var(--surface-2)}@media (hover:hover){.row--action:hover{background:color-mix(in srgb, var(--surface-2) 60%, transparent)}}.row--action:focus-visible{outline-offset:-2px;border-radius:0}.row__lead{flex:none;display:flex}.row__main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.row__title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:650;display:-webkit-box;overflow:hidden}.row__sub{color:var(--ink-2);font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.row__trail{color:var(--ink-2);font-size:var(--text-sm);text-align:right;font-variant-numeric:tabular-nums;flex:none;align-items:center;gap:8px;display:flex}.row>.icon:last-child{color:var(--ink-3)}.avatar{background:var(--surface-2);color:var(--ink);font-family:var(--font-head);border-radius:50%;flex:none;place-items:center;font-weight:750;line-height:1;display:inline-grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.badge{border-radius:var(--r-pill);min-height:24px;font-size:var(--text-xs);white-space:nowrap;background:var(--surface-2);color:var(--ink-2);align-items:center;gap:4px;padding:2px 10px;font-weight:650;line-height:1.2;display:inline-flex}.badge--go{background:var(--go-soft);color:var(--go)}.badge--gold{background:var(--gold-soft);color:var(--gold-ink)}.badge--warn{background:var(--warn-soft);color:var(--warn)}.badge--brand{background:var(--brand-soft);color:var(--brand-ink)}.empty{border-radius:var(--r-card);box-shadow:inset 0 0 0 1.5px var(--line);flex-direction:column;align-items:flex-start;gap:6px;padding:22px 20px;display:flex}.empty__title{font-size:var(--h3)}.empty__body{color:var(--ink-2);max-width:44ch}.empty__action{margin-top:10px}.skeleton{background:color-mix(in srgb, var(--ink) 8%, transparent);flex:none;animation:1.4s ease-in-out infinite pulse;display:block}@keyframes pulse{50%{opacity:.5}}.wring{align-items:center;gap:16px;display:flex}.wring svg{flex:none;overflow:visible}.wring__arc{fill:none;stroke-linecap:round;transition:stroke var(--t) var(--ease)}.wring__arc--done,.wring__arc--extra{stroke:var(--ink)}.wring__arc--today{stroke:var(--brand-fill)}.wring__arc--missed{stroke:var(--warn)}.wring__arc--planned{stroke:var(--line-strong)}.wring__n{font-family:var(--font-num);font-weight:800;font-stretch:calc(var(--wider) * 1%);font-variant-numeric:tabular-nums;fill:var(--ink)}.wring__of{fill:var(--ink-2)}.wring__legend{min-width:0;font-size:var(--text-sm);gap:6px;margin:0;padding:0;list-style:none;display:grid}.wring__legend li{align-items:center;gap:8px;min-width:0;display:flex}.wring__legend span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.wring__legend b{font-weight:700}.wring__legend i{background:var(--line-strong);border-radius:3px;flex:none;width:9px;height:9px}.wring__legend .is-done i,.wring__legend .is-extra i{background:var(--ink)}.wring__legend .is-today i{background:var(--brand-fill)}.wring__legend .is-missed i{background:var(--warn)}.wring--sm{gap:0}.record-glow{border-radius:var(--r-input);box-shadow:0 0 26px -4px color-mix(in srgb, var(--gold) 60%, transparent);position:relative}.record-glow .input,.record-glow .box{background:color-mix(in srgb, var(--gold) 14%, var(--surface-2));box-shadow:inset 0 0 0 2px var(--gold)}.record-glow--anim{animation:record-glow 1.1s var(--ease)}.record-note{color:var(--gold);font-size:var(--text-xs);font-weight:700}.record-check{background:var(--gold);color:var(--on-gold)}@keyframes record-glow{0%{box-shadow:0 0 0 0 var(--gold)}40%{box-shadow:0 0 34px 6px color-mix(in srgb, var(--gold) 70%, transparent)}}.chart{touch-action:pan-y;-webkit-user-select:none;user-select:none;width:100%;position:relative}.chart svg{cursor:crosshair;overflow:visible}.chart svg:focus-visible{outline-offset:4px}.chart__area{fill:color-mix(in srgb, var(--brand-fill) 10%, transparent)}.chart__line{fill:none;stroke:var(--brand-fill);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.chart__dot{fill:var(--brand-fill);stroke:var(--surface);stroke-width:2px}.chart__dot--first{fill:var(--surface);stroke:var(--brand-fill)}.chart__dot--good{fill:var(--go)}.chart__dot--sel{fill:var(--ink)}.chart__guide{stroke:var(--ink-2);stroke-dasharray:3 3}.chart__head{justify-content:space-between;gap:12px;margin-bottom:8px;display:flex}.chart__read{flex-direction:column;gap:2px;min-width:0;display:flex}.chart__read span{font-size:var(--text-xs);color:var(--ink-2)}.chart__read b{font-family:var(--font-num);font-size:var(--h3);font-weight:800;font-stretch:calc(var(--wider) * 1%);font-variant-numeric:tabular-nums;line-height:1.1}.chart__read--end{text-align:right;align-items:flex-end;margin-left:auto}.chart__read.is-good b{color:var(--go)}.chart__read.is-sel b{color:var(--brand-ink)}.spark{flex:none;overflow:visible}.spark polyline{fill:none;stroke:var(--ink-2);stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round}.spark circle{fill:var(--ink-2)}.spark circle.is-good{fill:var(--go)}.xv{aspect-ratio:4/3;border-radius:var(--r-card);background:var(--surface-2);width:100%;display:block;position:relative;overflow:hidden}.xv img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.xv--pair img:nth-child(2){animation:3.6s ease-in-out infinite xv-alt}@keyframes xv-alt{0%,42%{opacity:0}50%,92%{opacity:1}to{opacity:0}}.xv--hero{aspect-ratio:3/2}.xv--thumb{aspect-ratio:auto;border-radius:calc(var(--r-input) * .85);flex:none;width:48px;height:48px}.xv--empty{background:linear-gradient(150deg, color-mix(in srgb, var(--surface-2) 78%, var(--brand-fill) 22%), var(--surface-2) 70%);color:var(--ink-2);place-items:center;display:grid}.xv--map{background:var(--bg);box-shadow:inset 0 0 0 1px var(--line)}.xv--map .mm{--mm-base:var(--m-base);--mm-idle:var(--m-idle);--mm-line:var(--bg);--mm-primary:var(--go);--mm-secondary:var(--go-2);height:88%;margin:auto;position:absolute;inset:0}.xv.xv--video{aspect-ratio:16/9;background:var(--bg)}.xv--video iframe{border:0;width:100%;height:100%;position:absolute;inset:0}button.xv{cursor:pointer}.xv__play{background:var(--brand-grad);width:60px;height:60px;color:var(--on-brand);border-radius:50%;place-items:center;padding-left:3px;display:grid;position:absolute;top:50%;left:50%;translate:-50% -50%}.xv--thumb .xv__play{width:24px;height:24px;padding-left:1px}.xv__play .icon{fill:currentColor}@media (prefers-reduced-motion:reduce){.xv--pair:not(.xv--thumb){aspect-ratio:8/3;grid-template-columns:1fr 1fr;display:grid}.xv--pair:not(.xv--thumb) img{opacity:1;animation:none;position:static}.xv--thumb.xv--pair img:nth-child(2){display:none}}.fb-shot{align-items:center;gap:12px;display:flex}.fb-shot img{border-radius:var(--r-input);object-fit:cover;background:var(--surface-2);width:64px;height:64px}.fb-pick{position:relative;overflow:hidden}.fb-pick input{opacity:0;cursor:pointer;position:absolute;inset:0}.fb-pick:has(input:focus-visible){outline:2px solid var(--brand-ink);outline-offset:2px}.offline-note{border-radius:var(--r-pill);background:var(--surface);width:fit-content;min-height:36px;box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-2);font-size:var(--text-sm);align-items:center;gap:8px;padding:6px 14px 6px 12px;font-weight:600;display:flex}.offline-note .icon{color:var(--warn)}*+.offline-note{margin-top:12px}.frame{--nav-h:88px;--rail:248px}.nav{z-index:30;left:50%;bottom:calc(var(--safe-bottom) + 12px);border-radius:var(--r-pill);width:min(100% - 24px,460px);box-shadow:var(--shadow-float), inset 0 0 0 1px var(--line);position:fixed;translate:-50%}.nav ul{padding:0;list-style:none}.nav__brand,.nav__extra{display:none}.nav .nav__tabs{justify-content:space-between;gap:2px;padding:6px;display:flex}.nav__tabs>li{flex:1 1 0;justify-content:center;min-width:0;display:flex}.nav__tabs>li:has([aria-current=page]){flex:none}.nav__item{width:100%;min-width:var(--tap);border-radius:var(--r-pill);height:50px;color:var(--ink-2);white-space:nowrap;transition:background-color var(--t) var(--ease), color var(--t-fast) var(--ease);justify-content:center;align-items:center;gap:8px;padding:0 12px;font-size:14px;font-weight:650;text-decoration:none;display:flex}.nav__item:active{transform:scale(.96)}.nav__icon{place-items:center;display:grid;position:relative}.nav__icon .count{box-shadow:0 0 0 2px var(--bg);position:absolute;top:-7px;left:13px}.nav__label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.nav__item[aria-current=page]{background:var(--brand-grad);color:var(--on-brand);padding:0 16px 0 14px}.nav__item[aria-current=page] .nav__label{clip-path:none;width:auto;height:auto;position:static;overflow:visible}.nav__item[aria-current=page] .count{box-shadow:0 0 0 2px var(--brand-fill)}@media (width<=479px){.nav--many .nav__item[aria-current=page]{padding:0 12px}.nav--many .nav__item[aria-current=page] .nav__label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.nav--many .nav__tabs>li:has([aria-current=page]){flex:1 1 0}}@media (width<=359px){.nav--many{width:calc(100% - 12px)}.nav--many .nav__tabs{gap:0;padding:4px}.nav--many .nav__item,.nav--many .nav__item[aria-current=page]{padding:0}}.nav__item:focus-visible{outline-offset:-2px}@media (width<=959px) and (pointer:coarse){.frame:has(:is(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=button],[type=submit]),textarea,select,[contenteditable=true]):focus) :is(.nav,.update){display:none}}.frame__main{min-height:100dvh}@media (width>=960px){.frame{--nav-h:0px}.nav{width:var(--rail);padding:calc(var(--safe-top) + 24px) 14px 18px;box-shadow:none;border-radius:0;flex-direction:column;gap:4px;display:flex;top:0;bottom:0;left:0;overflow-y:auto;translate:none}.nav__brand{align-items:center;padding:0 10px 26px;display:flex}.nav .nav__tabs,.nav .nav__extra{flex-direction:column;gap:2px;padding:0;display:flex}.nav__more{display:none!important}.nav .nav__extra{margin-top:auto;padding-top:12px}:is(.nav__tabs>li,.nav__tabs>li:has([aria-current=page])){flex:none;justify-content:stretch}.nav__item,.nav__item[aria-current=page]{height:var(--tap);border-radius:var(--r-input);color:var(--ink-2);background:0 0;justify-content:flex-start;gap:12px;padding:0 12px;font-size:16px;font-weight:600}.nav__icon .count{left:5px}.nav__label,.nav__item[aria-current=page] .nav__label{clip-path:none;width:auto;height:auto;position:static;overflow:visible}.nav__item[aria-current=page]{background:var(--brand-soft);color:var(--ink)}.nav__item[aria-current=page] .nav__icon{color:var(--brand-ink)}.nav__item[aria-current=page] .count{box-shadow:0 0 0 2px var(--brand-soft)}.nav__icon .count{top:-6px;left:14px}.nav__item--quiet{height:auto;min-height:var(--tap);color:var(--ink-3);text-align:left;white-space:normal;padding-block:6px;font-size:15px;line-height:1.25}@media (hover:hover){.nav__item:not([aria-current=page]):hover{background:color-mix(in srgb, var(--ink) 6%, transparent);color:var(--ink)}}.frame__main{margin-left:var(--rail)}}.more-list{margin:0 -8px;padding:0;list-style:none}.more-item{border-radius:var(--r-input);width:100%;min-height:56px;color:var(--ink);text-align:left;align-items:center;gap:14px;padding:0 8px;font-size:16.5px;font-weight:600;text-decoration:none;display:flex}.more-item>span{flex:1}.more-item>.icon:first-child{color:var(--ink-2)}.more-item>.icon:last-child{color:var(--ink-3)}.more-item[aria-current=page]>.icon:first-child{color:var(--brand-ink)}.more-item:active{background:var(--surface-2)}.brand-logo{align-items:flex-end;gap:7px;line-height:1;display:inline-flex}.brand-logo img{display:block}.brand-logo small{color:var(--ink-2);padding-bottom:.15em;font-size:14px;font-weight:500}.brand-logo--space{align-items:center}.brand-logo--space small{padding:0}.brand-icon{border-radius:22%}.brand-hint{max-width:720px;margin:calc(var(--safe-top) + 8px) auto 0;border-radius:var(--r-card);background:var(--surface);color:var(--ink-2);font-size:var(--text-sm);align-items:center;gap:10px;padding:6px 4px 6px 14px;display:flex}@media (width<=751px){.brand-hint{margin-inline:var(--gutter)}}.brand-hint>.icon{color:var(--brand-ink)}.brand-hint p{flex:1}.brand-hint a{font-weight:650}.offline{z-index:55;bottom:calc(var(--safe-bottom) + 96px);padding:0 var(--gutter);pointer-events:none;justify-content:center;display:flex;position:fixed;left:0;right:0}.offline__pill{border-radius:var(--r-pill);background:var(--warn);color:var(--on-warn);box-shadow:var(--shadow-float);font-size:var(--text-sm);align-items:center;gap:8px;padding:8px 14px;font-weight:600;display:inline-flex}.update{z-index:35;left:var(--gutter);right:var(--gutter);bottom:calc(var(--nav-h) + var(--safe-bottom) + 12px);border-radius:var(--r-card);max-width:440px;box-shadow:inset 0 0 0 1px var(--line), var(--shadow-float);animation:sheet-in var(--t) var(--ease);align-items:center;gap:12px;margin:0 auto;padding:8px 8px 8px 18px;font-weight:600;display:flex;position:fixed}.update span{flex:1}@media (width>=960px){.update{left:calc(var(--rail) + 24px);bottom:24px;right:24px}}.screen--loading{animation:0s linear .25s both appear}@keyframes appear{0%{visibility:hidden}}.auth{width:100%;max-width:440px;min-height:100dvh;padding:calc(var(--safe-top) + 20px) var(--gutter) calc(var(--safe-bottom) + 28px);flex-direction:column;gap:28px;margin:0 auto;display:flex}@media (width>=720px){.auth{justify-content:center;padding-block:48px}}.auth__brand{align-items:center;gap:12px;min-height:48px;display:flex}.auth__card{border-radius:var(--r-card);padding:20px 16px 16px}.auth__coach{align-items:center;gap:12px;margin-bottom:6px;display:flex}.auth__coach>span:not(.avatar){flex-direction:column;gap:2px;display:flex}.auth__coach small{color:var(--ink-2);font-size:var(--text-xs)}.auth__coach b{font-family:var(--font-head);font-size:18px;font-weight:var(--head-weight)}.auth__head{flex-direction:column;gap:10px;padding-top:5vh;display:flex}.progress-steps+.auth__head{padding-top:0}@media (width>=720px){.auth__head{padding-top:0}}.auth__head h1{font-size:clamp(34px,10vw,42px);line-height:1.04}.auth__head p{color:var(--ink-2)}.auth form,.auth__form{flex-direction:column;gap:18px;display:flex}.auth__alert{border-radius:var(--r-input);background:var(--warn-soft);box-shadow:inset 3px 0 0 var(--warn);color:var(--ink);font-size:var(--text-sm);align-items:flex-start;gap:10px;padding:12px 14px;font-weight:550;display:flex}.auth__alert .icon{color:var(--warn);margin-top:1px}.auth__foot{color:var(--ink-2);font-size:var(--text-sm)}.auth__group{flex-direction:column;gap:14px;display:flex}.auth__group+.auth__group{padding-top:6px}.auth__pair{grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:14px;display:grid}.auth__user{font-family:var(--font-head);font-size:var(--h3);font-weight:var(--head-weight);overflow-wrap:anywhere;margin-top:4px;line-height:1.2;display:block}.auth__actions{flex-direction:column;align-items:stretch;gap:8px;margin-top:auto;display:flex}@media (width>=720px){.auth__actions{margin-top:0}}.progress-steps{font-size:var(--text-sm);color:var(--ink-2);gap:8px;padding:0;font-weight:600;list-style:none;display:flex}.progress-steps li{border-top:3px solid var(--line);flex:1;align-items:center;gap:8px;min-width:0;padding-top:10px;display:flex}.progress-steps li[aria-current=step]{color:var(--ink);border-top-color:var(--brand-fill)}.progress-steps li.is-done{color:var(--go);border-top-color:var(--go)}.steps{background:var(--surface);border-radius:var(--r-card);counter-reset:step;padding:0;list-style:none}.step{counter-increment:step;grid-template-columns:30px 1fr;align-items:start;gap:10px 12px;padding:16px;display:grid;position:relative}.step>.glyph{grid-column:2;justify-self:start}.step+.step:before{content:"";background:var(--line);height:1px;position:absolute;top:0;left:58px;right:0}.step__n{background:var(--brand-grad);width:30px;height:30px;color:var(--on-brand);font-family:var(--font-num);font-size:var(--text-sm);font-weight:800;font-stretch:calc(var(--wider) * 1%);border-radius:50%;place-items:center;display:grid}.step__n:before{content:counter(step)}.step__text{flex-direction:column;gap:2px;min-width:0;padding-top:3px;font-weight:550;line-height:1.35;display:flex}.step__text small{color:var(--ink-2);font-size:var(--text-sm);font-weight:450}.glyph{background:var(--surface-2);min-height:40px;color:var(--ink);font-size:var(--text-sm);white-space:nowrap;border-radius:10px;align-items:center;gap:8px;padding:0 10px;font-weight:650;display:inline-flex}.glyph .icon{color:var(--brand-ink)}.glyph--ink{color:var(--ink)}.glyph--app{min-height:0;box-shadow:none;color:var(--ink);background:0 0;flex-direction:column;gap:4px;padding:6px 8px 4px;font-size:11px;font-weight:600}.note{border-radius:var(--r-card);background:var(--surface);color:var(--ink);font-size:var(--text-sm);align-items:flex-start;gap:10px;padding:14px 16px;display:flex}.note .icon{color:var(--brand-ink);margin-top:1px}.note--ok{background:var(--go-soft)}.note--ok .icon{color:var(--go)}.note--warn{background:var(--warn-soft)}.note--warn .icon{color:var(--warn)}.auth__later{align-self:center}.auth__actions .auth__later{align-self:stretch}.brand-switch{white-space:nowrap;color:var(--ink-2)}@media (width<=374px){.brand-switch__rest{display:none}}
