:root{--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 3rem;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-pill: 999px;--fs-xs: .72rem;--fs-sm: .85rem;--fs-base: .95rem;--fs-lg: 1.1rem;--fs-xl: 1.5rem;--fs-2xl: 2rem;--bg: #f4f5f8;--surface: #ffffff;--surface-2: #f1f3f6;--border: #e6e8ec;--text: #141821;--text-muted: #626a78;--text-faint: #9aa1ad;--accent: #6366f1;--accent-strong: #4f46e5;--accent-contrast: #ffffff;--accent-soft: #eceefe;--success: #16a34a;--danger: #dc2626;--high-bg: #fee2e2;--high-fg: #b91c1c;--med-bg: #fef3c7;--med-fg: #92610a;--low-bg: #dcfce7;--low-fg: #15803d;--cat-bg: var(--accent-soft);--cat-fg: var(--accent-strong);--overdue-fg: #dc2626;--overdue-border: #f87171;--overdue-tint: rgba(248, 113, 113, .07);--shadow-sm: 0 1px 2px rgba(17, 21, 30, .05), 0 1px 3px rgba(17, 21, 30, .06);--shadow-md: 0 4px 14px rgba(17, 21, 30, .08);--shadow-lg: 0 12px 32px rgba(17, 21, 30, .16);--t-fast: .15s;--t-base: .2s;--ease: cubic-bezier(.4, 0, .2, 1)}:root[data-theme=dark]{--bg: #0e1014;--surface: #181b22;--surface-2: #20242d;--border: #2a2f3a;--text: #e8eaed;--text-muted: #9aa3b2;--text-faint: #6b7280;--accent: #818cf8;--accent-strong: #6366f1;--accent-contrast: #ffffff;--accent-soft: rgba(129, 140, 248, .16);--success: #4ade80;--danger: #f87171;--high-bg: rgba(248, 113, 113, .16);--high-fg: #fca5a5;--med-bg: rgba(251, 191, 36, .16);--med-fg: #fcd34d;--low-bg: rgba(74, 222, 128, .16);--low-fg: #86efac;--cat-bg: rgba(129, 140, 248, .18);--cat-fg: #c7d2fe;--overdue-fg: #fca5a5;--overdue-border: #ef4444;--overdue-tint: rgba(248, 113, 113, .1);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 6px 18px rgba(0, 0, 0, .4);--shadow-lg: 0 14px 36px rgba(0, 0, 0, .55)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased}body,.sidebar,.surface,.task-item,.stat-card,.nav-item,.add-input,select,.btn,.topbar{transition:background-color var(--t-base) var(--ease),border-color var(--t-base) var(--ease),color var(--t-base) var(--ease)}.app-shell{min-height:100vh;background:var(--bg)}.layout{display:flex;align-items:flex-start}.sidebar{width:240px;flex-shrink:0;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:var(--sp-5) var(--sp-3);background:var(--surface);border-right:1px solid var(--border)}.sidebar-brand{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-3) var(--sp-5)}.brand-mark{width:28px;height:28px;flex-shrink:0;display:block;border-radius:7px}.brand-word{font-size:var(--fs-xl);font-weight:800;letter-spacing:-.03em;color:var(--text)}.sidebar-nav{display:flex;flex-direction:column;gap:var(--sp-1)}.nav-item{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:.6rem .75rem;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-muted);font-size:var(--fs-base);font-weight:500;text-align:left;cursor:pointer;transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item:active{transform:scale(.98)}.nav-item.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.nav-icon{font-size:1rem;width:1.2rem;text-align:center}.nav-label{flex:1}.nav-badge{font-size:var(--fs-xs);font-weight:700;min-width:1.3rem;text-align:center;padding:.05rem .4rem;border-radius:var(--r-pill);background:var(--surface-2);color:var(--text-muted)}.nav-item.active .nav-badge{background:var(--accent);color:var(--accent-contrast)}.nav-badge.danger{background:var(--high-bg);color:var(--high-fg)}.sidebar-footer{margin-top:auto;padding-top:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);border-top:1px solid var(--border)}.sidebar-user{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.user-avatar{flex-shrink:0;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--accent-contrast);font-size:var(--fs-sm);font-weight:700}.user-email{font-size:var(--fs-sm);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.footer-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.logout-btn{flex-shrink:0}.theme-toggle{flex-shrink:0;width:38px;height:38px;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface);font-size:1.05rem;cursor:pointer;transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.theme-toggle:hover{transform:scale(1.08);box-shadow:var(--shadow-sm)}.main{flex:1;min-width:0}.topbar{display:none;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);position:sticky;top:0;z-index:30;background:var(--surface);border-bottom:1px solid var(--border)}.hamburger{border:1px solid var(--border);background:var(--surface);border-radius:var(--r-sm);width:38px;height:38px;font-size:1.1rem;cursor:pointer;color:var(--text)}.topbar-title{font-weight:800;font-size:var(--fs-lg);letter-spacing:-.02em}.content{max-width:760px;margin:0 auto;padding:var(--sp-6) var(--sp-4) var(--sp-7)}.backdrop{display:none}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3);margin-bottom:var(--sp-5)}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--sp-1)}.stat-value{font-size:var(--fs-2xl);font-weight:700;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat-label{font-size:var(--fs-sm);color:var(--text-muted)}.stat-success .stat-value{color:var(--success)}.stat-danger{border-color:var(--overdue-border);background:var(--overdue-tint)}.stat-danger .stat-value{color:var(--overdue-fg)}.add-form{display:flex;gap:var(--sp-2)}.add-input{flex:1;min-width:0;padding:.7rem .85rem;font-size:var(--fs-base);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm)}.add-input::placeholder{color:var(--text-faint)}.add-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.btn{padding:.6rem .95rem;font-size:var(--fs-sm);font-weight:500;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;transition:background-color var(--t-fast) var(--ease),transform .1s var(--ease),border-color var(--t-fast) var(--ease)}.btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--text-faint)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.btn-sm{padding:.35rem .7rem;font-size:var(--fs-xs)}.btn-icon{padding:.4rem .7rem}.btn-danger{color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--high-bg);border-color:var(--overdue-border)}.toolbar{display:flex;gap:var(--sp-4);margin:var(--sp-5) 0 var(--sp-4);flex-wrap:wrap}.control{display:inline-flex;align-items:center;gap:var(--sp-2)}.control-label{font-size:var(--fs-sm);color:var(--text-muted)}select{padding:.45rem .6rem;font-size:var(--fs-sm);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer}select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.banner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:.75rem .95rem;border-radius:var(--r-sm);margin-bottom:var(--sp-4)}.banner-error{background:var(--high-bg);color:var(--high-fg);border:1px solid var(--overdue-border)}.view-pane{animation:viewIn var(--t-base) var(--ease)}.board{display:flex;flex-direction:column;gap:var(--sp-5)}.section-head{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}.section-dot{width:9px;height:9px;border-radius:50%;background:var(--text-faint)}.section-title{margin:0;font-size:var(--fs-base);font-weight:600}.section-count{font-size:var(--fs-xs);font-weight:600;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);padding:.1rem .5rem}.tone-danger .section-dot{background:var(--danger)}.tone-danger .section-title{color:var(--overdue-fg)}.tone-accent .section-dot{background:var(--accent)}.tone-muted .section-title{color:var(--text-muted)}.task-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.task-item{display:flex;align-items:flex-start;gap:var(--sp-3);padding:.85rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm);animation:itemIn .19s var(--ease);transition:box-shadow var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),background-color var(--t-base) var(--ease)}.task-item:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--text-faint)}.task-item.completed{opacity:.62}.task-item.completed .task-title{text-decoration:line-through;color:var(--text-muted)}.task-item.overdue{border-left:3px solid var(--overdue-border);background:var(--overdue-tint)}.task-item.removing{animation:itemOut .22s var(--ease) forwards}.check{position:relative;flex-shrink:0;width:22px;height:22px;margin-top:1px;border-radius:50%;border:2px solid var(--text-faint);background:transparent;cursor:pointer;display:grid;place-items:center;padding:0;transition:background-color var(--t-base) var(--ease),border-color var(--t-base) var(--ease),transform var(--t-fast) var(--ease)}.check:hover:not(:disabled){border-color:var(--accent)}.check:active{transform:scale(.9)}.check .check-mark{color:#fff;font-size:.78rem;line-height:1;transform:scale(0);transition:transform .26s cubic-bezier(.2,1.6,.4,1)}.check.checked{background:var(--success);border-color:var(--success)}.check.checked .check-mark{transform:scale(1)}.task-body{flex:1;min-width:0}.task-title{font-weight:600;word-break:break-word}.task-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-top:var(--sp-2)}.badge{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.15rem .55rem;border-radius:var(--r-pill)}.badge.category{background:var(--cat-bg);color:var(--cat-fg)}.priority-high{background:var(--high-bg);color:var(--high-fg)}.priority-medium{background:var(--med-bg);color:var(--med-fg)}.priority-low{background:var(--low-bg);color:var(--low-fg)}.due{font-size:var(--fs-sm);color:var(--text-muted)}.due-overdue{color:var(--overdue-fg);font-weight:600}.task-actions{display:flex;gap:var(--sp-2);flex-shrink:0}.task-item.editing{flex-direction:column;gap:var(--sp-3);animation:none}.edit-fields{display:flex;flex-wrap:wrap;gap:var(--sp-3);width:100%}.edit-fields label{display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-xs);color:var(--text-muted);flex:1 1 140px}.edit-fields input,.edit-fields select{padding:.45rem .55rem;font-size:var(--fs-base);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm)}.edit-fields input:focus,.edit-fields select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.empty{text-align:center;padding:var(--sp-7) var(--sp-4);background:var(--surface);border:1px dashed var(--border);border-radius:var(--r-lg)}.empty-icon{font-size:2.4rem}.empty-title{margin:var(--sp-3) 0 var(--sp-1);font-weight:600;font-size:var(--fs-lg)}.empty-sub{margin:0 auto;max-width:36ch;color:var(--text-muted)}.skeleton-wrap{display:flex;flex-direction:column;gap:var(--sp-2)}.skeleton-row{display:flex;gap:var(--sp-3);padding:.85rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md)}.skeleton-check{width:22px;height:22px;border-radius:50%;flex-shrink:0}.skeleton-body{flex:1}.skeleton-line{height:14px;border-radius:6px;margin-bottom:var(--sp-3)}.skeleton-badges{display:flex;gap:var(--sp-2)}.skeleton-badge{width:64px;height:16px;border-radius:var(--r-pill)}.shimmer{background:linear-gradient(90deg,var(--surface-2) 25%,var(--border) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:shimmer 1.3s ease infinite}.toast-container{position:fixed;bottom:var(--sp-4);right:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2);z-index:60;max-width:calc(100vw - 2 * var(--sp-4))}.toast{display:flex;align-items:center;gap:var(--sp-2);min-width:220px;padding:.7rem .85rem;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--r-sm);box-shadow:var(--shadow-lg);animation:toastIn var(--t-base) var(--ease)}.toast-success{border-left-color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-info{border-left-color:var(--accent)}.toast-icon{font-weight:700}.toast-success .toast-icon{color:var(--success)}.toast-error .toast-icon{color:var(--danger)}.toast-msg{flex:1;font-size:var(--fs-sm)}.toast-close{border:none;background:none;color:var(--text-faint);font-size:1.1rem;line-height:1;cursor:pointer;padding:0 .2rem}.toast-close:hover{color:var(--text)}@keyframes itemIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes itemOut{to{opacity:0;transform:translate(-16px) scale(.97);margin-bottom:-54px}}@keyframes viewIn{0%{opacity:0}to{opacity:1}}@keyframes toastIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{to{background-position:-135% 0}}.content-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}.content-greeting{margin:0;font-size:var(--fs-xl);font-weight:700;letter-spacing:-.02em}.plan-btn{font-weight:600}.subtask-status{margin:var(--sp-2) 0 0;font-size:var(--fs-sm);color:var(--text-muted)}.subtask-status.error{color:var(--danger)}.subtask-list{list-style:none;margin:var(--sp-3) 0 0;padding:var(--sp-2) 0 0;border-top:1px dashed var(--border);display:flex;flex-direction:column;gap:var(--sp-1)}.subtask{display:flex;align-items:center;gap:var(--sp-2);animation:itemIn .16s var(--ease)}.subtask-check{flex-shrink:0;width:17px;height:17px;border-radius:50%;border:2px solid var(--text-faint);background:transparent;cursor:pointer;display:grid;place-items:center;padding:0;transition:background-color var(--t-base) var(--ease),border-color var(--t-base) var(--ease)}.subtask-check:hover{border-color:var(--accent)}.subtask-check .check-mark{color:#fff;font-size:.6rem;line-height:1;transform:scale(0);transition:transform .22s cubic-bezier(.2,1.6,.4,1)}.subtask-check.checked{background:var(--success);border-color:var(--success)}.subtask-check.checked .check-mark{transform:scale(1)}.subtask-text{flex:1;font-size:var(--fs-sm);word-break:break-word}.subtask.done .subtask-text{text-decoration:line-through;color:var(--text-muted)}.subtask-del{flex-shrink:0;border:none;background:none;color:var(--text-faint);font-size:1.1rem;line-height:1;cursor:pointer;padding:0 .2rem;opacity:0;transition:opacity var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.subtask:hover .subtask-del{opacity:1}.subtask-del:hover{color:var(--danger)}.subtask-text{cursor:text}.subtask-input{flex:1;min-width:0;font-size:var(--fs-sm);color:var(--text);background:var(--surface);border:1px solid var(--accent);border-radius:var(--r-sm);padding:.15rem .4rem}.subtask-input:focus{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.subtask.add-step:hover .subtask-del{opacity:0}.add-step-form{display:flex;align-items:center;gap:var(--sp-2);flex:1}.add-step-plus{flex-shrink:0;width:17px;text-align:center;color:var(--text-faint);font-weight:700}.steps-btn{display:inline-flex;align-items:center;gap:.35rem}.steps-icon{color:var(--accent)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;padding:var(--sp-4);z-index:70;animation:viewIn var(--t-base) var(--ease)}.modal{width:100%;max-width:460px;max-height:85vh;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:var(--sp-5);animation:modalIn var(--t-base) var(--ease)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3)}.modal-title{margin:0;font-size:var(--fs-lg);font-weight:700}.modal-close{border:none;background:none;color:var(--text-faint);font-size:1.5rem;line-height:1;cursor:pointer;padding:0 .3rem}.modal-close:hover{color:var(--text)}.plan-skeleton{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3) 0}.modal-error{color:var(--danger);display:flex;flex-direction:column;gap:var(--sp-2);align-items:flex-start}.plan-note{margin:0 0 var(--sp-2);font-size:var(--fs-sm);color:var(--med-fg);background:var(--med-bg);padding:.4rem .6rem;border-radius:var(--r-sm)}.plan-summary{margin:0 0 var(--sp-4);color:var(--text)}.plan-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.plan-item{display:flex;gap:var(--sp-3);align-items:flex-start;padding:var(--sp-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);animation:itemIn .18s var(--ease)}.plan-rank{flex-shrink:0;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--accent-contrast);font-size:var(--fs-sm);font-weight:700}.plan-item-title{font-weight:600}.plan-item-reason{font-size:var(--fs-sm);color:var(--text-muted);margin-top:2px}@keyframes modalIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-overlay.blur{background:#00000052;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}.settings-modal{max-width:400px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4) 0;border-bottom:1px solid var(--border)}.settings-row:last-child{border-bottom:none}.settings-label{font-weight:600}.settings-select{padding:.4rem .6rem;font-size:var(--fs-base);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer}.settings-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.theme-switch{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface-2);cursor:pointer}.theme-switch span{padding:.35rem .7rem;font-size:var(--fs-sm);border-radius:var(--r-pill);color:var(--text-muted);transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.theme-switch span.active{background:var(--accent);color:var(--accent-contrast);font-weight:600}.icon-btn{flex-shrink:0;display:inline-grid;place-items:center;width:32px;height:32px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text-muted);cursor:pointer;transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),transform .25s var(--ease)}.icon-btn:hover{background:var(--surface-2);color:var(--text);transform:rotate(45deg)}.auth-page{min-height:100vh;display:grid;place-items:center;padding:var(--sp-4);background:var(--bg)}.auth-card{display:grid;grid-template-columns:1fr 1.05fr;width:100%;max-width:940px;min-height:580px;background:var(--surface);border:1px solid var(--border);border-radius:24px;overflow:hidden;box-shadow:var(--shadow-lg);animation:viewIn var(--t-base) var(--ease);font-family:Space Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.auth-panel{display:flex;flex-direction:column;justify-content:center;padding:var(--sp-7) 2.75rem}.auth-brand{display:flex;align-items:center;gap:11px}.auth-brand-mark{width:34px;height:34px;border-radius:9px;display:block}.auth-brand-word{font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--text)}.auth-title{margin:2.25rem 0 0;font-size:1.7rem;font-weight:600;letter-spacing:-.02em;color:var(--text)}.auth-tagline{margin:var(--sp-2) 0 var(--sp-3);color:var(--text-muted);font-size:var(--fs-base)}.auth-field{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-4);font-size:13px;font-weight:500;color:var(--text-muted)}.auth-field input{width:100%;box-sizing:border-box;padding:.85rem 1rem;font:inherit;font-size:15px;font-weight:400;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.auth-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.auth-error{margin:var(--sp-4) 0 0;padding:.55rem .7rem;font-size:var(--fs-sm);color:var(--high-fg);background:var(--high-bg);border:1px solid var(--overdue-border);border-radius:var(--r-sm)}.auth-submit{margin-top:var(--sp-5);width:100%;padding:.95rem;font-family:inherit;font-size:15.5px;font-weight:600;color:#fff;border:none;border-radius:var(--r-md);background:linear-gradient(120deg,#7464ed,#3b53d3);box-shadow:0 12px 26px -10px #3b53d3a6}.auth-submit:hover:not(:disabled){background:linear-gradient(120deg,#7c6ef0,#4258dd);border-color:transparent}.auth-switch{margin:var(--sp-5) 0 0;text-align:center;font-size:var(--fs-base);color:var(--text-muted)}.auth-visual{position:relative;overflow:hidden;display:flex;align-items:center;padding:3rem 2.5rem;background:linear-gradient(160deg,#5b4bd8,#3341c4)}.auth-visual:before{content:"";position:absolute;top:-60px;left:20%;width:300px;height:300px;border-radius:50%;background:#9a7cf0;filter:blur(65px);opacity:.5;pointer-events:none}.auth-visual-inner{position:relative;width:100%}.auth-visual-eyebrow{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#ffffffb3}.auth-visual-headline{margin:var(--sp-2) 0 var(--sp-5);font-size:21px;font-weight:600;letter-spacing:-.01em;color:#fff}.auth-visual-flow{display:flex;flex-direction:column;gap:var(--sp-4)}.auth-bubble{align-self:flex-start;max-width:82%;padding:12px 15px;font-size:13.5px;line-height:1.5;color:#fff;background:#ffffff29;border-radius:16px 16px 16px 4px}.auth-visual-caption{display:flex;align-items:center;gap:var(--sp-2);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11.5px;letter-spacing:1px;text-transform:uppercase;color:#ffffffb3}.auth-chips{display:flex;flex-direction:column;gap:var(--sp-2)}.auth-chip{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#ffffff1a;border:1px solid rgba(255,255,255,.14);border-radius:var(--r-md)}.auth-chip-box{width:18px;height:18px;flex-shrink:0;border-radius:5px;border:2px solid rgba(255,255,255,.4)}.auth-chip-text{flex:1;font-size:13.5px;color:#fff}.auth-chip-ai{font-size:10.5px;font-weight:500;color:#ffffffd9;background:#ffffff29;padding:2px 8px;border-radius:var(--r-pill)}@media (max-width: 820px){.auth-card{grid-template-columns:1fr;max-width:440px;min-height:0}.auth-visual{display:none}}.link{background:none;border:none;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;padding:0;text-decoration:underline}.eyebrow{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.view-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-5)}.view-title{margin:var(--sp-1) 0 0;font-family:Space Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1.9rem;font-weight:700;letter-spacing:-.03em;color:var(--text)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.cal{animation:viewIn var(--t-base) var(--ease)}.cal-nav{display:flex;gap:var(--sp-2);align-items:center}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--sp-2)}.cal-col{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.cal-daylabel{text-align:center;display:flex;flex-direction:column;gap:2px}.cal-daynum{font-size:1.05rem;font-weight:600;color:var(--text-muted)}.cal-daynum.is-today{align-self:center;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;color:#fff;background:linear-gradient(120deg,#7464ed,#3b53d3)}.cal-cell{flex:1;min-height:180px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-2);display:flex;flex-direction:column;gap:6px}.cal-col.is-today .cal-cell{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.cal-ev{font-size:.72rem;line-height:1.3;font-weight:500;padding:6px 8px;border-radius:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--accent-soft);color:var(--cat-fg)}.cal-ev.tone-danger{background:var(--high-bg);color:var(--high-fg)}.cal-ev.tone-done{background:var(--surface);color:var(--text-faint);text-decoration:line-through;border:1px solid var(--border)}.cal-more{font-size:.68rem;color:var(--text-faint);padding-left:4px}.cal-empty{margin-top:var(--sp-4);text-align:center;color:var(--text-muted);font-size:var(--fs-sm)}.mom{animation:viewIn var(--t-base) var(--ease)}.mom-stats{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:var(--sp-4);margin-bottom:var(--sp-4)}.mom-streak{border-radius:var(--r-lg);padding:var(--sp-5);color:#fff;position:relative;overflow:hidden;background:linear-gradient(120deg,#7464ed,#3b53d3);box-shadow:0 14px 30px -14px #3b53d3b3}.mom-streak-label{color:#fff;opacity:.9}.mom-streak-num{display:flex;align-items:baseline;gap:8px;font-size:2.9rem;font-weight:700;letter-spacing:-.04em;line-height:1;margin-top:var(--sp-3)}.mom-streak-unit{font-size:1rem;font-weight:600;opacity:.85;letter-spacing:0}.mom-streak-sub{font-size:var(--fs-sm);opacity:.9;margin-top:var(--sp-2)}.mom-stat{padding:var(--sp-5);display:flex;flex-direction:column;justify-content:center}.mom-stat-num{font-size:2.2rem;font-weight:700;letter-spacing:-.03em;color:var(--text);line-height:1}.mom-stat-label{font-size:var(--fs-sm);color:var(--text-muted);margin-top:var(--sp-2)}.mom-chart{padding:var(--sp-5);margin-bottom:var(--sp-5)}.mom-chart-head{display:flex;align-items:center;justify-content:space-between}.mom-chart-title{font-size:var(--fs-base);font-weight:600;color:var(--text)}.mom-bars{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-3);height:150px;margin-top:var(--sp-5)}.mom-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);height:100%;justify-content:flex-end}.mom-bar{width:100%;max-width:44px;border-radius:9px 9px 3px 3px;background:var(--accent-soft);transition:height var(--t-base) var(--ease)}.mom-bar.is-today{background:linear-gradient(120deg,#7464ed,#3b53d3)}.mom-bar-label{font-size:var(--fs-xs);color:var(--text-muted)}.mom-bar-label.is-today{color:var(--accent);font-weight:600}.mom-divider{display:flex;align-items:center;gap:var(--sp-3);margin:var(--sp-5) 0 var(--sp-3)}.mom-rule{flex:1;height:1px;background:var(--border)}.mom-done-list{display:flex;flex-direction:column;gap:var(--sp-2)}.mom-done{display:flex;align-items:center;gap:var(--sp-3);padding:.8rem 1rem}.mom-done-tick{width:22px;height:22px;flex-shrink:0;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:.8rem;color:#fff;font-weight:700;background:linear-gradient(135deg,var(--success),#12894a)}.mom-done-title{flex:1;min-width:0;font-size:var(--fs-sm);color:var(--text-muted);text-decoration:line-through;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mom-done-time{font-size:var(--fs-xs);color:var(--text-faint);white-space:nowrap}.mom-loading{height:320px;border-radius:var(--r-lg);background:var(--surface-2)}@media (max-width: 720px){.cal-grid{grid-template-columns:1fr}.cal-cell{min-height:0}.cal-col{flex-direction:row;align-items:center;gap:var(--sp-3)}.cal-daylabel{flex-direction:row;gap:var(--sp-2);min-width:64px}.mom-stats{grid-template-columns:1fr}.mom-bars{gap:var(--sp-1)}}@media (max-width: 768px){.sidebar{position:fixed;top:0;left:0;height:100vh;width:264px;transform:translate(-100%);transition:transform var(--t-base) var(--ease);z-index:45;box-shadow:var(--shadow-lg)}.sidebar.open{transform:translate(0)}.topbar{display:flex}.backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;opacity:0;pointer-events:none;transition:opacity var(--t-base) var(--ease);z-index:40}.backdrop.show{opacity:1;pointer-events:auto}.content{padding:var(--sp-5) var(--sp-3) var(--sp-6)}.add-form{flex-wrap:wrap}.add-form .btn-primary{width:100%}.task-item{flex-wrap:wrap}.task-actions{width:100%;margin-left:34px}.toast-container{left:var(--sp-3);right:var(--sp-3)}.toast{min-width:0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
