@font-face{font-family:Karla Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/karla-latin-ext-wght-normal-Dq0rrjgs.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Karla Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/karla-latin-wght-normal-C3-ma4ov.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font: "Karla Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--nav-height: 56px;--header-height: 52px;--safe-bottom: env(safe-area-inset-bottom, 0px);--nav-safe-bottom: min(var(--safe-bottom), 16px);--nav-total: calc(var(--nav-height) + var(--nav-safe-bottom));--bg: #f3f1ec;--surface: #ffffff;--surface-2: #faf8f4;--surface-3: #ebe7dd;--text: #2c2a25;--text-muted: #6d6a61;--text-faint: #9a968b;--border: #e0dcd2;--accent: #3d6b50;--accent-contrast: #ffffff;--danger: #8c3b2e;--shadow: 0 1px 3px rgb(44 42 37 / 8%), 0 4px 16px rgb(44 42 37 / 6%);--gate-bg: #1c1a17;--gate-text: #ece8e0;--gate-muted: #a49e93}:root[data-theme=dark]{--bg: #1c1a17;--surface: #24211d;--surface-2: #2c2924;--surface-3: #38342d;--text: #ece8e0;--text-muted: #a49e93;--text-faint: #7b756a;--border: #38342d;--accent: #7aa98a;--accent-contrast: #1c1a17;--danger: #cf8a77;--shadow: 0 2px 12px rgb(0 0 0 / 45%)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:16px;line-height:1.4;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}button{font:inherit;color:inherit}.app{height:100%;display:flex;flex-direction:column}.app__main{flex:1;overflow-y:auto;padding:0 16px calc(var(--nav-total) + 16px)}.app__header{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--header-height);margin:0 -16px 8px;padding:env(safe-area-inset-top,0px) 16px 0;background:var(--bg)}.app__title{font-size:22px;font-weight:750}.app__subtitle{display:block;font-size:13px;font-weight:450;color:var(--text-muted)}.nav{position:fixed;inset:auto 0 0;z-index:10;display:flex;height:var(--nav-total);padding-bottom:var(--nav-safe-bottom);background:var(--surface);border-top:1px solid var(--border)}.nav__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;background:none;font-size:11px;color:var(--text-muted);cursor:pointer}.nav__item[aria-current=page]{color:var(--accent);font-weight:700}.nav__icon{display:grid;place-items:center;height:24px}.input{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit}.input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.input--time{width:auto;min-width:108px;text-align:center}.input-row{display:flex;gap:8px}.button-primary{padding:12px 18px;border:0;border-radius:var(--radius);background:var(--accent);color:var(--accent-contrast);font-weight:700;cursor:pointer}.button-primary:disabled{opacity:.55;cursor:default}.button-danger{color:var(--danger)}.icon-button{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:none;color:var(--text-muted);cursor:pointer}.icon-button:disabled{opacity:.35;cursor:default}.form-error{margin:6px 0 0;color:var(--danger);font-size:14px}.form-saved{margin:6px 0 0;color:var(--accent);font-size:14px}.error-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0;padding:10px 14px;border-radius:var(--radius);background:var(--danger);color:#fff;font-size:14px}.error-banner__dismiss{border:0;background:none;color:inherit;font-size:16px;cursor:pointer}.login{height:100%;display:grid;place-items:center;padding:24px;background:var(--bg)}.login__card{width:min(360px,100%);display:flex;flex-direction:column;gap:12px;padding:28px 24px;border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.login__title{margin:0;font-size:28px}.login__sub{margin:-6px 0 6px;color:var(--text-muted)}.win-form{margin:4px 0 12px}.win-count{margin:0 0 10px;color:var(--text-muted);font-size:14px}.win-list{list-style:none;margin:0 0 8px;padding:0;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.win-list__row{display:flex;align-items:center;gap:10px;padding:12px 14px}.win-list__row+.win-list__row{border-top:1px solid var(--border)}.win-list__text{flex:1;overflow-wrap:anywhere}.win-list__remove{border:0;background:none;color:var(--text-faint);font-size:14px;cursor:pointer;padding:6px}.streak-badge{padding:5px 11px;border-radius:999px;background:var(--surface-3);color:var(--text-muted);font-size:13px;font-weight:700;white-space:nowrap}.day-note,.empty-note,.mock-note{margin:4px 0 12px;color:var(--text-muted);font-size:14px}.day-group{margin:0 0 18px}.day-group__heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 8px;font-size:16px;font-weight:750}.day-group__count{color:var(--text-faint);font-size:13px;font-weight:450}.week-bars{display:flex;gap:8px;align-items:end;margin:4px 0 20px;padding:14px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.week-bars__day{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px}.week-bars__track{display:flex;align-items:end;width:100%;height:72px}.week-bars__bar{width:100%;min-height:3px;border-radius:4px 4px 2px 2px;background:var(--accent)}.week-bars__bar[data-empty]{background:var(--surface-3)}.week-bars__label{font-size:12px;color:var(--text-faint)}.settings-title{margin:18px 0 8px;font-size:14px;font-weight:750;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.settings-group{margin:0 0 16px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:13px 14px;border:0;background:none;text-align:left;font-size:16px}button.settings-row{cursor:pointer}.settings-row+.settings-row{border-top:1px solid var(--border)}.settings-row--disabled{color:var(--text-muted)}.settings-row__sub{display:block;margin-top:1px;font-size:13px;color:var(--text-faint)}.settings-form{display:flex;flex-direction:column;gap:12px;padding:14px}.settings-field{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-field--column{flex-direction:column;align-items:stretch;gap:8px}.settings-note{resize:vertical}.version-note{margin:20px 0 8px;text-align:center;color:var(--text-faint);font-size:12px}.switch{position:relative;flex-shrink:0;width:50px;height:30px;border:0;border-radius:999px;background:var(--surface-3);cursor:pointer;transition:background .15s ease}.switch:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px #00000040;transition:transform .15s ease}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true]:after{transform:translate(20px)}.switch:disabled{opacity:.55;cursor:default}.gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:24px;background:var(--gate-bg);color:var(--gate-text)}.gate__inner{display:flex;flex-direction:column;align-items:center;gap:10px;width:min(360px,100%);text-align:center}.gate__clock{font-size:44px;font-weight:250;letter-spacing:.03em;font-variant-numeric:tabular-nums}.gate__title{margin:0;font-size:30px;font-weight:800}.gate__note{margin:0 0 10px;color:var(--gate-muted);font-size:16px;line-height:1.5}.gate__ack{width:100%;padding:15px 18px;font-size:17px}.gate__more{margin-top:6px;border:0;background:none;color:var(--gate-muted);font-size:15px;text-decoration:underline;cursor:pointer}.gate__win{width:100%;margin-top:6px}.gate .form-error{color:#cf8a77}
