:root{--radius: 6px;--row-h: 44px;--header-h: 52px;--tab-h: 52px;--ease: cubic-bezier(.22, .61, .36, 1);--espresso: #3b2c21;--paper: #f2e9d7;--border: #d8c9ae;--ink: #33261b;--cream: #f3e9da;--done: #ac9877;--missed: #b04a28;--muted: #9b8465;--outline: #8a7157;--header-bg: #3b2c21;--header-fg: #f3e9da;--header-muted: #a78d74;--surface: var(--paper);--surface-blur: none;--wash: rgb(59 44 33 / 6%);--wash-strong: rgb(59 44 33 / 12%)}:root[data-theme=glass]{--espresso: #1d1d1f;--paper: #eef1f6;--border: rgb(255 255 255 / 55%);--ink: #1d1d1f;--cream: #ffffff;--done: #6a6a74;--missed: #a82016;--muted: #45454d;--outline: #52525c;--header-bg: rgb(255 255 255 / 62%);--header-fg: #1d1d1f;--header-muted: #45454d;--surface: rgb(255 255 255 / 45%);--surface-blur: saturate(180%) blur(20px);--wash: rgb(29 29 31 / 6%);--wash-strong: rgb(29 29 31 / 12%)}:root[data-theme=sky]{--espresso: #4a3728;--paper: #e8f1f8;--border: #c2d6e4;--ink: #2f2418;--cream: #f6fbff;--done: #9bb0c0;--missed: #c25a3a;--muted: #7d93a3;--outline: #6b8296;--header-bg: #4a3728;--header-fg: #f6fbff;--header-muted: #b9a894;--surface: var(--paper);--surface-blur: none;--wash: rgb(74 55 40 / 6%);--wash-strong: rgb(74 55 40 / 12%)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--paper);color:var(--ink);overscroll-behavior:none;-webkit-font-smoothing:antialiased}:root[data-theme=glass] body{background:radial-gradient(120% 80% at 10% 0%,#dfe9f7 0%,transparent 60%),radial-gradient(120% 90% at 100% 100%,#e7dcf1 0%,transparent 55%),#eef1f6;background-attachment:fixed}.app{display:flex;flex-direction:column;height:100%;max-width:720px;margin:0 auto}.header{height:calc(var(--header-h) + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0;flex:none;display:flex;align-items:center;gap:10px;background:var(--header-bg);color:var(--header-fg);-webkit-backdrop-filter:var(--surface-blur);backdrop-filter:var(--surface-blur)}.header h1{font-size:17px;font-weight:700;margin:0;letter-spacing:-.01em}.header .spacer{flex:1}.header .date{font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--header-muted);text-transform:uppercase}.icon-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:inherit;width:36px;height:36px;border-radius:var(--radius);display:grid;place-items:center;cursor:pointer}.icon-btn:active{background:#ffffff2e}.tabs{height:var(--tab-h);flex:none;display:flex;align-items:center;justify-content:space-around;border-bottom:1px solid var(--border);background:var(--surface);-webkit-backdrop-filter:var(--surface-blur);backdrop-filter:var(--surface-blur)}.tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--muted);width:64px;height:34px;border-radius:var(--radius);display:grid;place-items:center;cursor:pointer;transition:background .12s var(--ease)}.tab[data-active=true]{background:var(--espresso);color:var(--cream)}main{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.empty{padding:32px 16px;text-align:center;color:var(--muted);font-size:15px}.rows{padding:4px 10px 12px}.row{display:flex;align-items:center;gap:12px;min-height:var(--row-h);padding:0 6px;border-radius:var(--radius);position:relative;transition:transform .22s var(--ease),opacity .22s var(--ease);touch-action:pan-y;-webkit-user-select:none;user-select:none}.row:active{background:var(--wash)}.row[data-leaving=windup]{transform:translate(-5px);transition-duration:.11s}.row[data-leaving=out]{transform:translate(110%);opacity:0;transition-timing-function:cubic-bezier(.5,0,1,1);transition-duration:.23s}.row[data-dragging=true]{background:var(--surface);box-shadow:0 6px 18px #0000002e;z-index:2;transition:none}.check{flex:none;width:22px;height:22px;border-radius:5px;border:2px solid var(--outline);background:transparent;display:grid;place-items:center;cursor:pointer;padding:0}.check[data-missed=true]{border-color:var(--missed)}.check[data-checked=true]{background:var(--espresso);border-color:var(--espresso)}.check svg{width:14px;height:14px;stroke:var(--cream);stroke-width:2.6;fill:none;stroke-linecap:round;stroke-linejoin:round}.row .text{flex:1;min-width:0;font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:11px 0}.row[data-checked=true] .text{color:var(--done);text-decoration:line-through}.row[data-missed=true] .text{color:var(--missed)}.badge{flex:none;font-size:11px;font-weight:700;padding:3px 8px;border-radius:var(--radius);background:var(--wash-strong);color:var(--outline)}.badge[data-missed=true]{background:var(--missed);color:var(--cream)}.group{display:flex;align-items:center;gap:8px;padding:14px 6px 6px;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:pan-y}.group .chevron{flex:none;width:10px;height:10px;color:var(--muted);transition:transform .16s var(--ease)}.group[data-collapsed=true] .chevron{transform:rotate(-90deg)}.group .name{font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--outline)}.group .rule{flex:1;height:1px;background:var(--border)}.group .count{font-size:11px;font-weight:700;color:var(--muted)}.addbar{flex:none;display:flex;align-items:center;gap:8px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface);-webkit-backdrop-filter:var(--surface-blur);backdrop-filter:var(--surface-blur)}.addbar input{flex:1;min-width:0;height:40px;padding:0 14px;font:inherit;font-size:16px;color:var(--ink);background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);outline:none}.addbar input:focus{border-color:var(--outline)}.chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:none;height:40px;min-width:44px;padding:0 12px;font:inherit;font-size:13px;font-weight:700;border:1px solid transparent;border-radius:var(--radius);background:var(--espresso);color:var(--cream);cursor:pointer}.chip[data-secondary=true]{background:var(--paper);color:var(--ink);border-color:var(--border)}.cal{padding:12px 10px 4px}.cal-nav{display:flex;align-items:center;justify-content:space-between;padding:0 4px 10px}.cal-nav .title{font-size:16px;font-weight:700}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-dow{text-align:center;font-size:11px;font-weight:700;color:var(--muted);padding-bottom:6px}.cal-day{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font:inherit;font-size:14px;color:var(--ink);cursor:pointer;border-radius:var(--radius);padding:0}.cal-day[data-outside=true]{color:var(--done)}.cal-day[data-selected=true]{box-shadow:inset 0 0 0 1.6px var(--espresso)}.cal-day[data-today=true]{background:var(--espresso);color:var(--cream)}.cal-day .dots{display:flex;gap:3px;height:4px}.cal-day .dot{width:4px;height:4px;border-radius:50%;background:var(--missed)}.cal-day[data-today=true] .dot{background:var(--cream)}.day-list-title{padding:16px 16px 4px;font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--muted);text-transform:uppercase}.note-row{padding:12px 6px;border-bottom:1px solid var(--border);cursor:pointer}.note-row .title{font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-row .snippet{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}.editor{display:flex;flex-direction:column;min-height:100%}.editor textarea{flex:1;width:100%;min-height:40vh;resize:none;border:0;outline:none;padding:4px 16px 16px;font:inherit;font-size:16px;line-height:1.5;color:var(--ink);background:transparent}.editor .note-title{width:100%;border:0;border-bottom:1px solid var(--border);outline:none;padding:14px 16px;font:inherit;font-size:20px;font-weight:700;color:var(--ink);background:transparent}.editor .note-title::placeholder{color:var(--muted);font-weight:600}.editor-bar{flex:none;display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--surface);-webkit-backdrop-filter:var(--surface-blur);backdrop-filter:var(--surface-blur)}.toolbar{flex:none;display:flex;align-items:center;gap:6px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface);-webkit-backdrop-filter:var(--surface-blur);backdrop-filter:var(--surface-blur);overflow-x:auto}.toolbar button{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:none;min-width:46px;height:40px;padding:0 10px;font:inherit;font-size:15px;color:var(--ink);background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}.toolbar button:active{background:var(--wash-strong)}.note-preview{padding:10px 16px 24px;font-size:16px;line-height:1.55;color:var(--ink)}.note-preview h2{font-size:21px;margin:18px 0 6px}.note-preview h3{font-size:18px;margin:16px 0 4px}.note-preview h4,.note-preview h5,.note-preview h6{font-size:16px;margin:14px 0 4px}.note-preview p{margin:0 0 10px}.note-preview ul,.note-preview ol{margin:0 0 10px;padding-left:24px}.note-preview li{margin:2px 0}.note-preview .dim{color:var(--muted)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:flex-end;justify-content:center;z-index:50;animation:fade .16s var(--ease)}.sheet{width:min(100%,520px);background:var(--paper);border-radius:14px 14px 0 0;padding:8px 8px calc(8px + env(safe-area-inset-bottom));animation:rise .2s var(--ease);max-height:80vh;overflow-y:auto}.sheet h2{font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:8px 12px 10px}.sheet button.action{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;text-align:left;border:0;background:transparent;font:inherit;font-size:16px;color:var(--ink);padding:14px 12px;border-radius:var(--radius);cursor:pointer}.sheet button.action:active{background:var(--wash)}.sheet button.action[data-danger=true]{color:var(--missed)}.sheet .divider{height:1px;background:var(--border);margin:6px 12px}.day-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:4px 8px 12px}.day-grid button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;aspect-ratio:1;border-radius:50%;font:inherit;font-size:14px;color:var(--ink);cursor:pointer}.day-grid button[data-selected=true]{background:var(--espresso);color:var(--cream)}.day-grid .hint{grid-column:1 / -1;text-align:center;font-size:12px;color:var(--muted);padding-top:6px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(12px)}}.sync-dot{width:8px;height:8px;border-radius:50%;background:var(--header-muted);flex:none}.sync-dot[data-state=syncing]{animation:pulse 1s ease-in-out infinite}.sync-dot[data-state=error]{background:var(--missed)}.sync-dot[data-state=ok]{background:transparent}@keyframes pulse{50%{opacity:.25}}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 12px;font-size:16px}.settings-row input[type=text],.settings-row input[type=password]{flex:1;min-width:0;height:38px;padding:0 10px;font:inherit;font-size:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--paper);color:var(--ink)}
