:root{--bg:#fff;--surface:#fff;--text:#17171a;--text-2:#8e8e93;--text-3:#aeaeb2;--border:#ececee;--accent:#0a84ff;--danger:#ff3b30;--hover:#0000000a;--active:#00000012;--warn-bg:#fff3e0;--warn-text:#a85a00;--accent-soft:#0a84ff1f;--shadow-ghost:0 12px 32px #00000029, 0 2px 8px #00000014;--shadow-menu:0 10px 30px #00000024, 0 2px 8px #00000014}@media (prefers-color-scheme:dark){:root{--bg:#000;--surface:#1c1c1e;--text:#f5f5f7;--text-2:#98989d;--text-3:#636366;--border:#2c2c2e;--hover:#ffffff0f;--active:#ffffff1a;--warn-bg:#3a2a10;--warn-text:#ffb340;--accent-soft:#0a84ff33;--shadow-ghost:0 12px 32px #0000008c, 0 2px 8px #0006;--shadow-menu:0 10px 30px #00000080, 0 2px 8px #0006}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}ul{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{min-height:100dvh}.container{max-width:700px;margin:0 auto;padding:0 16px 96px}@media (width>=768px){.container{padding:0 24px 120px}}.loading{min-height:60dvh;color:var(--text-3);letter-spacing:.24em;text-transform:uppercase;place-items:center;font-size:13px;font-weight:600;display:grid}.header{padding:40px 0 0}@media (width>=768px){.header{padding-top:56px}}.header-nav{align-items:center;gap:4px;display:flex}.nav-btn{width:40px;height:40px;color:var(--text-2);border-radius:50%;flex:none;place-items:center;transition:background-color .12s,color .12s;display:grid}.nav-btn:hover{background:var(--hover);color:var(--text)}.header-center{flex-direction:column;flex:1;align-items:flex-start;gap:8px;min-width:0;display:flex}.header-title{min-width:0;margin:0}.header-date{text-align:left;flex-direction:column;align-items:flex-start;display:flex}.weekday{letter-spacing:-.02em;font-size:clamp(28px,9vw,44px);font-weight:800;line-height:1.05}.date{color:var(--text-2);letter-spacing:.12em;margin-top:8px;font-size:15px;font-weight:500}.today-pill{border:1px solid var(--border);background:var(--surface);color:var(--text-2);letter-spacing:.1em;border-radius:999px;padding:4px 11px;font-size:11px;font-weight:700;transition:border-color .12s,color .12s}.today-pill:hover{border-color:var(--accent);color:var(--accent)}.quick-add{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:8px;margin-top:28px;padding:8px 8px 10px 16px;transition:border-color .15s,box-shadow .15s;display:flex}.quick-add:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #0a84ff24}.quick-row{align-items:center;gap:8px;display:flex}.quick-row input{min-width:0;color:var(--text);background:0 0;border:0;outline:0;flex:1;padding:12px 0;font-size:16px}.quick-row input::placeholder{color:var(--text-3)}.quick-target{flex-wrap:wrap;gap:6px;padding-right:8px;display:flex}.chip{border:1px solid var(--border);color:var(--text-2);background:0 0;border-radius:999px;align-items:center;gap:5px;padding:5px 11px;font-size:12.5px;font-weight:500;line-height:1.3;transition:border-color .12s,color .12s,background-color .12s;display:inline-flex}.chip:hover{border-color:var(--text-3);color:var(--text)}.chip-on,.chip-on:hover{background:var(--accent-soft);color:var(--accent);border-color:#0000;font-weight:600}.add-btn{background:var(--accent);color:#fff;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;transition:opacity .15s,transform .1s;display:grid}.add-btn:disabled{opacity:.35;cursor:default}.add-btn:not(:disabled):active{transform:scale(.94)}.section{margin-top:36px}.section-head{align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.section-head h2{letter-spacing:.14em;color:var(--text-2);margin:0;font-size:13px;font-weight:700}.count{color:var(--text-3);font-size:12px;font-weight:500}.section-body{border-radius:16px;transition:background-color .15s,box-shadow .15s}.section-over .section-body{background:var(--hover);box-shadow:inset 0 0 0 1.5px var(--accent)}.empty{color:var(--text-3);margin:0;padding:10px 8px;font-size:14px}.task-list{flex-direction:column;gap:4px;display:flex}.task{background:var(--surface);border-radius:14px;align-items:flex-start;gap:12px;padding:11px 8px;display:flex}.task:hover{background:var(--hover)}.task-dragging{opacity:.3}.check{border:1.8px solid var(--text-3);color:#fff;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;margin-top:1px;transition:background-color .12s,border-color .12s,transform .1s;display:grid}.check:hover{border-color:var(--accent)}.check:active{transform:scale(.9)}.check[aria-checked=true]{background:var(--accent);border-color:var(--accent)}.task-main{flex-direction:column;flex:1;align-items:flex-start;gap:6px;min-width:0;display:flex}.task-title{overflow-wrap:anywhere;font-size:16px;line-height:1.4}.task-done .task-title{color:var(--text-3);text-decoration:line-through;text-decoration-thickness:1.5px}.badge{background:var(--warn-bg);color:var(--warn-text);letter-spacing:.02em;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:600}.edit-input{border:0;border-bottom:2px solid var(--accent);width:100%;color:var(--text);background:0 0;outline:0;padding:2px 0;font-size:16px}.task-actions{opacity:.5;align-items:center;gap:0;display:flex}@media (hover:hover) and (pointer:fine){.task-actions{opacity:0;transition:opacity .15s}.task:hover .task-actions,.task:focus-within .task-actions{opacity:1}}.icon-btn{width:36px;height:36px;color:var(--text-2);border-radius:10px;place-items:center;display:grid}.icon-btn:hover{background:var(--active);color:var(--text)}.icon-btn-danger:hover{color:var(--danger)}.drag-handle{color:var(--text-3);cursor:grab;touch-action:none}.drag-handle:active{cursor:grabbing}.ghost{background:var(--surface);width:min(652px,100vw - 32px);box-shadow:var(--shadow-ghost);pointer-events:none;border-radius:14px;align-items:center;gap:12px;padding:14px 16px;display:flex}.ghost-check{border:1.8px solid var(--text-3);border-radius:50%;flex:none;width:26px;height:26px}.date-menu{display:inline-flex;position:relative}.task-menu{z-index:40;background:var(--surface);border:1px solid var(--border);min-width:176px;box-shadow:var(--shadow-menu);border-radius:14px;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.menu-item{width:100%;min-height:40px;color:var(--text);text-align:left;border-radius:9px;align-items:center;padding:0 10px;font-size:14.5px;display:flex}.menu-item:hover{background:var(--hover)}.menu-item[aria-checked=true]{color:var(--accent);font-weight:600}.date-input-hidden{opacity:0;pointer-events:none;border:0;width:1px;height:1px;padding:0;position:absolute;top:0;left:0}.session-bar{justify-content:space-between;align-items:center;gap:12px;padding-bottom:4px;display:flex}.session-email{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-3);font-size:12.5px;overflow:hidden}.session-signout{color:var(--text-2);flex:none;font-size:12.5px;font-weight:600}.session-signout:hover{color:var(--accent)}.auth-screen{place-items:center;min-height:100dvh;padding:24px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;flex-direction:column;gap:14px;width:min(360px,100%);padding:28px 24px;display:flex}.auth-title{letter-spacing:-.02em;margin:0;font-size:26px;font-weight:800}.auth-subtitle{color:var(--text-2);margin:-6px 0 4px;font-size:14px;line-height:1.45}.auth-field{flex-direction:column;gap:6px;display:flex}.auth-field label{color:var(--text-2);letter-spacing:.1em;text-transform:uppercase;font-size:11.5px;font-weight:700}.auth-field input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:12px;outline:0;padding:12px;font-size:16px;transition:border-color .15s,box-shadow .15s}.auth-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0a84ff24}.auth-error,.auth-notice{border-radius:10px;margin:0;padding:10px 12px;font-size:13.5px;line-height:1.4}.auth-error{color:var(--danger);background:#ff3b301a}.auth-notice{background:var(--warn-bg);color:var(--warn-text)}.auth-submit{background:var(--accent);color:#fff;border-radius:12px;padding:12px;font-size:15px;font-weight:600;transition:opacity .15s}.auth-submit:disabled{opacity:.4;cursor:default}.auth-switch{text-align:center;color:var(--text-2);margin:0;font-size:14px}.auth-switch button{color:var(--accent);font-weight:600}
