:root{--bg:#1a1a1a;--bg-sidebar:#151515;--bg-elev:#212121;--bg-card:#262626;--bg-hover:#2c2c2c;--bg-input:#1e1e1e;--border:#383838;--border-soft:#2b2b2b;--border-strong:#4a4a4a;--scrim:#08080894;--tint:#ffffff03;--tint-strong:#ffffff05;--sheen:#ffffff12;--inset-edge:#ffffff1a;--scroll-thumb:#333;--scroll-thumb-hover:#4c4c4c;--text:#eceae7;--text-dim:#a5a19a;--text-faint:#726f68;--accent:#e4552c;--accent-hover:#f0683f;--accent-press:#cf4a24;--accent-rgb:228, 85, 44;--accent-soft:#e4552c24;--accent-glow:#e4552c47;--on-accent:#fff;--p1:#ff5f57;--p1-rgb:255, 95, 87;--p2:#ff9f43;--p2-rgb:255, 159, 67;--p3:#4a90d9;--p3-rgb:74, 144, 217;--green:#56b168;--green-rgb:86, 177, 104;--radius:10px;--radius-sm:8px;--radius-xs:6px;--radius-lg:14px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 14px #00000052;--shadow:0 14px 40px #00000080;--ring:0 0 0 2px var(--bg), 0 0 0 4px var(--accent-glow);--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--ease:cubic-bezier(.2, .8, .3, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--t-fast:.12s;--t-mid:.15s;--t-slow:.18s;--font:"Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--fs-xs:11px;--fs-sm:12.5px;--fs-md:13.5px;--fs-base:14.5px;--fs-lg:16px;--fs-xl:22px;--sidebar-w:220px;--detail-w:380px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f7f5f2;--bg-sidebar:#efece6;--bg-elev:#fff;--bg-card:#fff;--bg-hover:#eae5dd;--bg-input:#fff;--border:#d8d2c8;--border-soft:#e7e2d9;--border-strong:#b9b2a6;--scrim:#2e282057;--tint:#3c342a05;--tint-strong:#3c342a09;--sheen:#3c342a0d;--inset-edge:#0000001a;--scroll-thumb:#cbc4b8;--scroll-thumb-hover:#b3aa9c;--text:#22201d;--text-dim:#5c574f;--text-faint:#8a847a;--p1:#c8362f;--p1-rgb:200, 54, 47;--p2:#a86a09;--p2-rgb:168, 106, 9;--p3:#2160a4;--p3-rgb:33, 96, 164;--green:#2c8244;--green-rgb:44, 130, 68;--shadow-sm:0 1px 2px #3c342a14;--shadow-md:0 4px 14px #3c342a1f;--shadow:0 14px 40px #3c342a2e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-base);letter-spacing:.005em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;line-height:1.5}#root{height:100%}::selection{background:var(--accent-glow);color:#fff}:root[data-theme=light] ::selection{color:var(--text)}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);transition:background var(--t-fast);background-clip:content-box;border:3px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover);background-clip:content-box}button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:0}button:active:not(:disabled){transform:translateY(1px)}:focus-visible{box-shadow:var(--ring);outline:none}input,textarea,select{font-family:inherit;font-size:inherit;color:var(--text);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);outline:none;padding:8px 10px}input:hover:not(:focus),textarea:hover:not(:focus),select:hover:not(:focus){border-color:var(--border-strong)}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input.invalid,input.invalid:focus{border-color:var(--p1);box-shadow:0 0 0 3px rgba(var(--p1-rgb), .14)}::placeholder{color:var(--text-faint)}kbd{font-family:inherit;font-size:var(--fs-xs);background:var(--bg-card);border:1px solid var(--border);color:var(--text-dim);white-space:nowrap;border-bottom-width:2px;border-radius:5px;padding:1px 5px;font-weight:600}.visually-hidden-file{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes pop-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes view-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes slide-in-right{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}@keyframes tick-draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app{height:100vh;display:flex;overflow:hidden}.main{scroll-behavior:smooth;flex:1;min-width:0;overflow-y:auto}.view{max-width:760px;padding:var(--s6) var(--s6) 96px;animation:view-in .2s var(--ease-out) both;margin:0 auto}.view.wide{max-width:none}.view-head{justify-content:space-between;align-items:flex-start;gap:var(--s3);margin-bottom:var(--s5);display:flex}.view-head h2{font-size:var(--fs-xl);letter-spacing:-.015em;margin:0;font-weight:700}.view-date{color:var(--text-dim);font-size:var(--fs-md);margin:3px 0 0}.head-actions{align-items:center;gap:var(--s2);flex-wrap:wrap;justify-content:flex-end;display:flex}.sidebar{width:var(--sidebar-w);background:var(--bg-sidebar);border-right:1px solid var(--border-soft);padding:18px var(--s3) var(--s3);gap:var(--s1);flex-direction:column;flex-shrink:0;display:flex}.brand{align-items:center;gap:var(--s2);padding:2px var(--s2) 18px;display:flex}.brand-mark{border-radius:var(--radius-sm);background:var(--accent);width:26px;height:26px;color:var(--on-accent);box-shadow:0 2px 8px rgba(var(--accent-rgb), .35);justify-content:center;align-items:center;display:inline-flex}.brand-mark.large{border-radius:13px;width:46px;height:46px}.brand-name{letter-spacing:-.005em;font-size:15.5px;font-weight:700}.nav{flex-direction:column;gap:2px;display:flex}.nav-item{border-radius:var(--radius-sm);color:var(--text-dim);transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);align-items:center;gap:11px;padding:9px 10px;font-size:14px;font-weight:600;display:flex;position:relative}.nav-item svg{transition:transform var(--t-slow) var(--ease-out);flex-shrink:0}.nav-item:hover{background:var(--bg-hover);color:var(--text)}.nav-item:hover svg{transform:scale(1.08)}.nav-item.active{background:var(--accent-soft);color:var(--accent)}.nav-item.active:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;height:18px;position:absolute;top:50%;left:-12px;transform:translateY(-50%)}.nav-count{text-align:center;min-width:20px;font-size:var(--fs-xs);color:var(--text-faint);background:var(--bg-elev);transition:color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);border-radius:999px;margin-left:auto;padding:1px 7px;font-weight:700}.nav-item:hover .nav-count{color:var(--text-dim)}.nav-item.active .nav-count{color:var(--accent);background:rgba(var(--accent-rgb), .18)}.palette-hint{margin-top:var(--s3);justify-content:space-between;align-items:center;gap:var(--s2);border:1px solid var(--border-soft);border-radius:var(--radius-sm);color:var(--text-faint);font-size:var(--fs-md);transition:border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);padding:8px 10px;display:flex}.palette-hint:hover{border-color:var(--border);background:var(--bg-hover);color:var(--text-dim)}.sidebar-foot{align-items:center;gap:var(--s2);padding:var(--s3) var(--s1) 0;border-top:1px solid var(--border-soft);margin-top:auto;display:flex}.foot-name{font-weight:600;font-size:var(--fs-md);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.reset-notice{justify-content:space-between;align-items:center;gap:var(--s3);color:#f4d9c6;background:#3a2a1f;border-bottom:1px solid #5a3f2a;padding:10px 20px;font-size:13px;line-height:1.5;display:flex}.reset-notice button{border-radius:var(--radius-xs);color:inherit;border:1px solid #6a4a30;flex-shrink:0;padding:4px 10px}:root[data-theme=light] .reset-notice{color:#6b4523;background:#fdf1e3;border-bottom-color:#e8d3ba}:root[data-theme=light] .reset-notice button{border-color:#d9bd9c}.primary-btn{background:var(--accent);color:var(--on-accent);border-radius:var(--radius-sm);transition:background var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);padding:11px;font-weight:700;position:relative}.primary-btn:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 4px 14px rgba(var(--accent-rgb), .28)}.primary-btn:active:not(:disabled){background:var(--accent-press);box-shadow:none}.primary-btn:disabled{opacity:.6;cursor:default}.primary-btn.small{font-size:var(--fs-md);padding:8px 16px}.ghost-btn{align-items:center;gap:var(--s1);color:var(--text-dim);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--fs-sm);white-space:nowrap;transition:color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);padding:6px 12px;font-weight:600;display:inline-flex}.ghost-btn:hover:not(:disabled){color:var(--text);border-color:var(--border-strong);background:var(--bg-hover)}.ghost-btn:disabled{opacity:.45;cursor:default}.ghost-btn.is-busy{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.ghost-btn.is-done-flash{color:var(--green);border-color:rgba(var(--green-rgb), .5);background:rgba(var(--green-rgb), .12)}.ghost-btn.subtle{color:var(--text-faint);border-color:#0000}.ghost-btn.subtle:hover:not(:disabled){color:var(--p1);background:rgba(var(--p1-rgb), .1);border-color:#0000}.danger-btn{color:var(--p1);border-radius:var(--radius-sm);font-size:var(--fs-sm);transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);border:1px solid #0000;padding:6px 12px;font-weight:600}.danger-btn:hover{border-color:var(--p1);background:rgba(var(--p1-rgb), .1)}.icon-btn{color:var(--text-dim);border-radius:var(--radius-xs);min-width:30px;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);justify-content:center;align-items:center;padding:5px 9px;font-size:18px;line-height:1;display:inline-flex}.icon-btn:hover{background:var(--bg-hover);color:var(--text)}.icon-btn.tiny{min-width:22px;font-size:var(--fs-sm);padding:2px 4px}.icon-btn.tiny:disabled{opacity:.3;cursor:default}.spinner{vertical-align:-1px;border:2px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;animation:.62s linear infinite spin;display:inline-block}.avatar{color:#fff;width:28px;height:28px;font-size:var(--fs-xs);letter-spacing:.02em;box-shadow:inset 0 0 0 1px var(--inset-edge);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.avatar.big{width:52px;height:52px;font-size:17px}.avatar.tiny{width:22px;height:22px;font-size:9.5px}.chip-row{gap:var(--s1);flex-wrap:wrap;display:flex}.filter-rows{gap:var(--s2);margin-bottom:var(--s5);flex-direction:column;display:flex}.filter-chip{align-items:center;gap:var(--s1);font-size:var(--fs-sm);color:var(--text-dim);border:1px solid var(--border);transition:color var(--t-fast) var(--ease), background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);border-radius:999px;padding:5px 13px;font-weight:600;display:inline-flex}.filter-chip:hover{color:var(--text);background:var(--bg-hover)}.filter-chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.chip-count{font-size:var(--fs-xs);background:var(--bg-hover);color:var(--text-dim);border-radius:999px;padding:0 6px;font-weight:700}.filter-chip.active .chip-count{background:rgba(var(--accent-rgb), .25);color:var(--accent)}.chip{border:1px solid var(--border);color:var(--text-dim);animation:pop-in var(--t-slow) var(--ease-out);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.chip-date{color:var(--green);border-color:rgba(var(--green-rgb), .4);background:rgba(var(--green-rgb), .08)}.chip-priority{color:var(--p2);border-color:rgba(var(--p2-rgb), .4);background:rgba(var(--p2-rgb), .08)}.chip-category{color:var(--p3);border-color:rgba(var(--p3-rgb), .4);background:rgba(var(--p3-rgb), .08)}.chip-recur{color:var(--accent);border-color:rgba(var(--accent-rgb), .4);background:var(--accent-soft)}.streak-chip{font-size:var(--fs-sm);color:var(--p2);background:rgba(var(--p2-rgb), .12);border:1px solid rgba(var(--p2-rgb), .28);white-space:nowrap;cursor:default;border-radius:999px;align-items:center;gap:5px;padding:4px 11px;font-weight:700;display:inline-flex}.badge{font-size:var(--fs-xs);color:var(--text-faint);background:var(--bg-elev);border-radius:5px;align-items:center;gap:3px;padding:1px 6px;font-weight:600;display:inline-flex}.badge.carried{color:var(--p2);background:rgba(var(--p2-rgb), .12)}.badge.carried.stuck{color:var(--p1);background:rgba(var(--p1-rgb), .14)}.badge.recur{color:var(--accent);background:var(--accent-soft);padding:2px 5px}.badge.due{color:var(--p3);background:rgba(var(--p3-rgb), .12)}.badge.shared-badge{color:var(--p3);background:rgba(var(--p3-rgb), .12);margin-left:var(--s1)}.check{border:2px solid var(--text-faint);color:#0000;width:20px;height:20px;transition:background var(--t-mid) var(--ease), border-color var(--t-mid) var(--ease), color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.check:active:not(:disabled){transform:scale(.9)}.check.small{border-width:1.8px;width:17px;height:17px}.check.big{border-width:2.4px;width:26px;height:26px}.check.p1{border-color:var(--p1);background:rgba(var(--p1-rgb), .1)}.check.p2{border-color:var(--p2);background:rgba(var(--p2-rgb), .1)}.check.p3{border-color:var(--p3);background:rgba(var(--p3-rgb), .1)}.check:hover{color:var(--text-dim);border-color:var(--text-dim)}.check.p1:hover{color:var(--p1)}.check.p2:hover{color:var(--p2)}.check.p3:hover{color:var(--p3)}.check.is-done{background:var(--text-faint);border-color:var(--text-faint);color:var(--bg)}.check.checking{background:var(--green);border-color:var(--green);color:#fff;animation:check-pop .36s var(--ease-out)}.check.checking:after{content:"";border:2px solid var(--green);animation:check-ring .42s var(--ease-out) forwards;border-radius:50%;position:absolute;inset:-3px}.check.checking .tick{stroke-dasharray:20;stroke-dashoffset:20px;animation:tick-draw .24s 40ms var(--ease-out) forwards}@keyframes check-pop{0%{transform:scale(.86)}45%{transform:scale(1.28)}to{transform:scale(1)}}@keyframes check-ring{0%{opacity:.7;transform:scale(.85)}to{opacity:0;transform:scale(1.7)}}.empty-note{color:var(--text-faint);font-size:var(--fs-md);padding:var(--s3) var(--s1);margin:0}.empty-state{align-items:center;gap:var(--s2);text-align:center;padding:var(--s7) var(--s5);border:1px dashed var(--border-soft);border-radius:var(--radius);background:linear-gradient(180deg, var(--tint), transparent);animation:fade-in .22s var(--ease-out) both;flex-direction:column;display:flex}.empty-state svg{color:var(--text-faint);opacity:.7}.empty-state p{color:var(--text-dim);font-size:var(--fs-md);margin:0}.empty-state .empty-hint{color:var(--text-faint);font-size:var(--fs-sm)}.skeleton-day{background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:var(--radius);padding:var(--s4) 18px;margin-bottom:var(--s3)}.skeleton-line{background:linear-gradient(90deg, var(--bg-card) 25%, var(--bg-hover) 37%, var(--bg-card) 63%);height:10px;margin-bottom:var(--s2);background-size:400% 100%;border-radius:999px;animation:1.3s ease-in-out infinite shimmer}.skeleton-line:last-child{margin-bottom:0}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field>span{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-size:11.5px;font-weight:700}.field-hint{color:var(--text-faint);min-height:15px;font-size:11.5px;font-style:normal;line-height:1.45}.field input.invalid~.field-hint{color:var(--p1)}.inline-input{max-width:180px}.form-error{color:var(--p1);font-size:var(--fs-md);animation:shake .26s var(--ease);margin:0}.task-group{margin-bottom:var(--s5)}.group-head{align-items:center;gap:var(--s2);margin:0 0 var(--s1);padding:0 var(--s1) var(--s1);font-size:var(--fs-md);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);border-bottom:1px solid var(--border-soft);font-weight:700;display:flex}.group-count{font-size:var(--fs-xs);color:var(--text-faint);background:var(--bg-elev);border-radius:999px;padding:1px 7px;font-weight:700}.task-row{border-radius:var(--radius-sm);transition:background var(--t-fast) var(--ease), opacity var(--t-mid) var(--ease);border:1px solid #0000;outline:none;align-items:center;gap:11px;padding:8px;display:flex}.task-row:hover{background:var(--bg-elev)}.task-row:focus-visible{border-color:var(--border);background:var(--bg-elev);box-shadow:var(--ring)}.task-row.selected{background:var(--accent-soft)}.task-row.done{opacity:.72}.task-row.dragging{opacity:.4}.task-row.drop-before{box-shadow:inset 0 2px 0 0 var(--accent)}.task-row.drop-after{box-shadow:inset 0 -2px 0 0 var(--accent)}.task-children{border-left:1px solid var(--border-soft);padding-left:var(--s1);margin-left:27px}.task-main{align-items:center;gap:var(--s2);cursor:pointer;flex:1;min-width:0;display:flex}.task-title{text-overflow:ellipsis;white-space:nowrap;transition:color var(--t-slow) var(--ease);overflow:hidden}.task-row.done .task-title{color:var(--text-faint);text-decoration:line-through;-webkit-text-decoration-color:var(--text-faint);text-decoration-color:var(--text-faint)}.task-badges{align-items:center;gap:var(--s1);flex-shrink:0;display:inline-flex}.task-row:hover .badge{background:var(--bg-hover)}.pinned{gap:var(--s2);margin-bottom:var(--s5);flex-direction:column;display:flex}.pin-block{background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:var(--radius);padding:var(--s2) var(--s3) 10px;transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease)}.pin-block:hover{border-color:var(--border)}.pin-block:focus-within{border-color:var(--border);box-shadow:var(--shadow-sm)}.pin-block.collapsed{padding-bottom:var(--s2)}.pin-head{align-items:center;gap:var(--s1);display:flex}.pin-toggle{color:var(--text-faint);border-radius:var(--radius-xs);transition:color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);padding:4px;display:inline-flex}.pin-toggle:hover{color:var(--text);background:var(--bg-hover)}.pin-title{font-weight:700;font-size:var(--fs-md);letter-spacing:.01em;color:var(--accent);background:0 0;border:1px solid #0000;flex:1;padding:4px 6px}.pin-title:hover,.pin-title:focus{border-color:var(--border);background:var(--bg-input)}.pin-edit{color:var(--text-faint);font-size:var(--fs-xs);border-radius:var(--radius-xs);transition:opacity var(--t-fast) var(--ease), color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);padding:3px 7px;font-weight:600}.pin-edit:hover{color:var(--accent);background:var(--bg-hover)}.pin-delete{color:var(--text-faint);border-radius:var(--radius-xs);transition:opacity var(--t-fast) var(--ease), color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);padding:3px 7px;font-size:15px;line-height:1}.pin-delete:hover{color:var(--p1);background:var(--bg-hover)}.pin-block .pin-edit,.pin-block .pin-delete,.col-head .pin-delete,.category-row .pin-delete,.template-item-row .pin-delete{opacity:0}.pin-block:hover .pin-edit,.pin-block:focus-within .pin-edit,.pin-block:hover .pin-delete,.pin-block:focus-within .pin-delete,.col-head:hover .pin-delete,.category-row:hover .pin-delete,.category-row:focus-within .pin-delete,.template-item-row:hover .pin-delete,.template-item-row:focus-within .pin-delete,.pin-delete:focus-visible,.pin-edit:focus-visible{opacity:1}.pin-body{width:100%;margin-top:var(--s1);resize:vertical;color:var(--text-dim);font-size:var(--fs-md);background:0 0;border:1px solid #0000;line-height:1.6}.pin-body:hover,.pin-body:focus{border-color:var(--border);background:var(--bg-input);color:var(--text)}.pin-lines{flex-direction:column;gap:6px;padding:4px 6px 2px;display:flex}.pin-text-line{font-size:var(--fs-md);white-space:pre-wrap;margin:0;line-height:1.5}.pin-text-gap{height:4px}.pin-add{color:var(--text-faint);font-size:var(--fs-sm);border-radius:var(--radius-xs);transition:color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);align-self:flex-start;padding:4px 7px;font-weight:600}.pin-add:hover{color:var(--accent);background:var(--accent-soft)}.goal-line{align-items:center;gap:var(--s2);grid-template-columns:minmax(0,1fr) 84px auto auto;padding:3px 0;display:grid}.goal-label{font-size:var(--fs-md);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.goal-bar{background:var(--bg-input);border:1px solid var(--border-soft);border-radius:4px;height:6px;overflow:hidden}.goal-bar-fill{background:linear-gradient(90deg, var(--accent), var(--accent-hover));height:100%;transition:width .26s var(--ease-out);border-radius:4px}.goal-count{color:var(--text-dim);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap}.goal-steppers{opacity:0;transition:opacity var(--t-fast) var(--ease);gap:2px;display:flex}.goal-line:hover .goal-steppers,.goal-steppers:focus-within{opacity:1}.goal-step-btn{width:20px;height:20px;color:var(--text-dim);background:var(--bg-input);border:1px solid var(--border-soft);border-radius:var(--radius-xs);font-size:var(--fs-md);transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);justify-content:center;align-items:center;line-height:1;display:inline-flex}.goal-step-btn:hover{background:var(--bg-hover);color:var(--text)}.quick-add{margin-bottom:var(--s5)}.quick-add-bar{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:border-color var(--t-mid) var(--ease), box-shadow var(--t-mid) var(--ease);align-items:center;gap:10px;padding:4px 6px 4px 14px;display:flex}.quick-add-bar:hover{border-color:var(--border-strong)}.quick-add-bar:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.quick-add.just-added .quick-add-bar{animation:added-flash .42s var(--ease-out)}@keyframes added-flash{0%{border-color:var(--green);box-shadow:0 0 0 3px rgba(var(--green-rgb), .22)}to{border-color:var(--border);box-shadow:0 0 0 3px #0000}}.qa-plus{color:var(--accent);transition:transform var(--t-slow) var(--ease-out);font-size:19px;font-weight:700;line-height:1}.quick-add-bar:focus-within .qa-plus{transform:rotate(90deg)}.quick-add-bar input{background:0 0;border:none;flex:1;padding:9px 0}.quick-add-bar input:hover:not(:focus),.quick-add-bar input:focus{box-shadow:none;border:none}.qa-go{background:var(--accent);color:var(--on-accent);font-weight:700;font-size:var(--fs-md);transition:background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);animation:pop-in var(--t-slow) var(--ease-out);border-radius:7px;padding:7px 14px}.qa-go:hover{background:var(--accent-hover)}.qa-go:active:not(:disabled){background:var(--accent-press)}.qa-chips{gap:var(--s1);padding:var(--s2) var(--s1) 0;flex-wrap:wrap;display:flex}.qa-hint{margin:var(--s2) 0 0;padding:0 var(--s1);color:var(--text-faint);font-size:var(--fs-sm)}.detail{width:var(--detail-w);background:var(--bg-elev);border-left:1px solid var(--border-soft);padding:var(--s4) var(--s5) var(--s5);gap:var(--s3);animation:slide-in-right var(--t-slow) var(--ease-out) both;flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.detail-head{justify-content:space-between;align-items:center;gap:var(--s2);display:flex}.crumb{color:var(--text-faint);font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;max-width:240px;transition:color var(--t-fast) var(--ease);overflow:hidden}.crumb:hover{color:var(--accent)}.save-flag{margin-left:auto;margin-right:var(--s1);font-size:var(--fs-sm);color:var(--green);animation:fade-in .14s var(--ease-out) both;font-weight:600}.detail-title{letter-spacing:-.01em;background:0 0;border:1px solid #0000;padding:7px 8px;font-size:17px;font-weight:700}.detail-title:hover,.detail-title:focus{background:var(--bg-input);border-color:var(--border)}.detail-carried{color:var(--p2);font-size:var(--fs-sm);margin:-6px 0 0;font-weight:600}.detail-repeat-next{color:var(--text-dim);font-size:var(--fs-sm);margin:2px 0 0}.detail-grid{gap:var(--s3);grid-template-columns:1fr 1fr;display:grid}.notes-field textarea{resize:vertical;line-height:1.6}.prio-row{gap:5px;display:flex}.prio-btn{border:1px solid var(--border);color:var(--text-dim);transition:color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);border-radius:7px;flex:1;padding:7px 0;font-size:12px;font-weight:700}.prio-btn:hover{border-color:var(--border-strong);color:var(--text)}.prio-btn.p0.active{border-color:var(--text-dim);color:var(--text)}.prio-btn.p1.active{border-color:var(--p1);color:var(--p1);background:rgba(var(--p1-rgb), .12)}.prio-btn.p2.active{border-color:var(--p2);color:var(--p2);background:rgba(var(--p2-rgb), .12)}.prio-btn.p3.active{border-color:var(--p3);color:var(--p3);background:rgba(var(--p3-rgb), .12)}.detail-section{border-top:1px solid var(--border-soft);padding-top:var(--s3)}.detail-section h4{margin:0 0 var(--s2);text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-size:12px}.sub-row{align-items:center;gap:var(--s2);border-radius:var(--radius-xs);padding:4px 2px;display:flex}.sub-row:hover{background:var(--tint-strong)}.sub-title{text-align:left;padding:2px var(--s1);border-radius:var(--radius-xs);transition:background var(--t-fast) var(--ease);flex:1}.sub-title:hover{background:var(--bg-hover)}.sub-row.done .sub-title{color:var(--text-faint);text-decoration:line-through}.sub-add input{width:100%;margin-top:var(--s1)}.template-row{gap:var(--s2);margin-top:10px;display:flex}.template-row select{flex:1;min-width:0}.comment{gap:var(--s2);padding:7px 0;display:flex}.comment-body{flex:1;min-width:0}.comment-meta{gap:var(--s2);color:var(--text-faint);align-items:baseline;font-size:12px;display:flex}.comment-meta strong{color:var(--text-dim)}.comment-body p{font-size:var(--fs-md);white-space:pre-wrap;overflow-wrap:anywhere;margin:3px 0 0;line-height:1.55}.comment-add{gap:var(--s2);margin-top:var(--s2);display:flex}.comment-add input{flex:1;min-width:0}.detail-foot{justify-content:space-between;align-items:center;gap:var(--s2);border-top:1px solid var(--border-soft);padding-top:var(--s3);margin-top:auto;display:flex}.foot-meta{color:var(--text-faint);font-size:12px}.foot-actions{align-items:center;gap:var(--s2);flex-shrink:0;display:flex}.activity-list{gap:var(--s2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.activity-item{align-items:baseline;gap:var(--s2);font-size:var(--fs-sm);display:flex}.activity-dot{background:var(--text-faint);border-radius:50%;flex-shrink:0;align-self:center;width:6px;height:6px}.activity-item.activity-created .activity-dot,.activity-item.activity-rescheduled .activity-dot{background:var(--p3)}.activity-item.activity-carried .activity-dot{background:var(--p2)}.activity-item.activity-completed .activity-dot{background:var(--green)}.activity-item.activity-comment .activity-dot{background:var(--accent)}.activity-text{min-width:0;color:var(--text);overflow-wrap:anywhere;flex:1}.activity-when{color:var(--text-faint);white-space:nowrap}.boot-screen{background:var(--bg);place-items:center;height:100vh;display:grid}.boot-brand{align-items:center;gap:var(--s3);color:var(--text-faint);font-weight:700;font-size:var(--fs-md);letter-spacing:.08em;text-transform:uppercase;animation:fade-in .3s var(--ease-out) both;flex-direction:column;display:flex}.boot-dots{gap:5px;display:flex}.boot-dots i{background:var(--accent);opacity:.35;border-radius:50%;width:5px;height:5px;animation:1s ease-in-out infinite boot-pulse}.boot-dots i:nth-child(2){animation-delay:.14s}.boot-dots i:nth-child(3){animation-delay:.28s}@keyframes boot-pulse{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}.auth-screen{height:100vh;padding:var(--s5);background:radial-gradient(1100px 520px at 70% -10%, rgba(var(--accent-rgb), .09), transparent 70%), var(--bg);place-items:center;display:grid}.auth-card{background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:var(--radius-lg);width:min(400px,100%);padding:var(--s6) var(--s6) var(--s5);box-shadow:var(--shadow);animation:rise-in .26s var(--ease-out) both}.auth-brand{text-align:center;margin-bottom:var(--s5)}.auth-brand h1{margin:var(--s3) 0 var(--s1);letter-spacing:-.01em;font-size:24px}.auth-sub{color:var(--text-dim);font-size:var(--fs-md);margin:0}.picker-label{text-align:center;color:var(--text-dim);margin:0 0 var(--s4);font-size:var(--fs-md)}.picker-row{gap:var(--s3);justify-content:center;display:flex}.picker-user{align-items:center;gap:var(--s2);background:var(--bg-card);border:1px solid var(--border-soft);border-radius:var(--radius);transition:border-color var(--t-mid) var(--ease), transform var(--t-mid) var(--ease), box-shadow var(--t-mid) var(--ease);flex-direction:column;padding:18px 26px;font-weight:600;display:flex}.picker-user:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.picker-user:active:not(:disabled){transform:translateY(0)}.picker-note{text-align:center;color:var(--text-faint);font-size:var(--fs-sm);margin:18px 0 0;line-height:1.5}.login-form{gap:var(--s3);flex-direction:column;display:flex}.login-form label{gap:var(--s1);font-size:var(--fs-md);color:var(--text-dim);flex-direction:column;display:flex}.password-field{align-items:center;gap:var(--s2);display:flex}.password-field input{flex:1;min-width:0}.password-toggle{flex-shrink:0;padding:8px 12px}.day-toolbar{align-items:center;gap:var(--s2);display:flex}.stuck-note{margin:0 0 var(--s4);padding:10px var(--s3);border-left:3px solid var(--p2);border-radius:var(--radius-xs);background:rgba(var(--p2-rgb), .08);color:var(--text-dim);font-size:var(--fs-md)}.day-done{align-items:center;gap:var(--s3);margin:var(--s5) 0 var(--s4);border:1px solid rgba(var(--accent-rgb), .35);border-radius:var(--radius);background:radial-gradient(420px 120px at 12% 0%, rgba(var(--accent-rgb), .16), transparent 70%), var(--bg-elev);box-shadow:var(--shadow-md);animation:day-done-in .42s var(--ease-out) both;padding:18px 20px;display:flex;position:relative;overflow:hidden}@keyframes day-done-in{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:none}}.day-done:after{content:"";background:linear-gradient(100deg, transparent 20%, var(--sheen) 45%, transparent 70%);animation:day-done-sweep 1.1s .22s var(--ease-out) forwards;pointer-events:none;position:absolute;inset:0;transform:translate(-100%)}@keyframes day-done-sweep{to{transform:translate(100%)}}.day-done-mark{background:var(--accent);width:36px;height:36px;color:var(--on-accent);box-shadow:0 0 0 0 var(--accent-glow);animation:day-done-pulse 1.4s var(--ease-out) .22s 2;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}@keyframes day-done-pulse{0%{box-shadow:0 0 0 0 var(--accent-glow)}70%{box-shadow:0 0 0 14px rgba(var(--accent-rgb), 0)}to{box-shadow:0 0 0 0 rgba(var(--accent-rgb), 0)}}.day-done-mark .tick{stroke-dasharray:22;stroke-dashoffset:22px;animation:tick-draw .42s .26s var(--ease-out) forwards}.day-done-text{min-width:0}.day-done-text strong{letter-spacing:-.005em;font-size:15px;display:block}.day-done-text span{color:var(--text-dim);font-size:var(--fs-md);margin-top:2px;display:block}.day-done-close{color:var(--text-faint);border-radius:var(--radius-xs);transition:color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);margin-left:auto;padding:4px 8px;font-size:17px;line-height:1}.day-done-close:hover{color:var(--text);background:var(--bg-hover)}.day-done-sparks i{background:var(--accent);opacity:0;width:4px;height:4px;animation:spark 1.2s var(--ease-out) forwards;pointer-events:none;border-radius:50%;position:absolute;top:50%}.day-done-sparks i:first-child{animation-delay:.28s;left:22%}.day-done-sparks i:nth-child(2){background:var(--p2);animation-delay:.4s;left:48%}.day-done-sparks i:nth-child(3){background:var(--green);animation-delay:.34s;left:74%}@keyframes spark{0%{opacity:0;transform:translateY(6px)scale(.6)}35%{opacity:.9}to{opacity:0;transform:translateY(-34px)scale(1)}}.week-total{margin:0 0 var(--s4);color:var(--text-dim);font-size:var(--fs-md)}.week-grid{gap:var(--s2);padding-bottom:var(--s3);grid-template-columns:repeat(7,minmax(180px,1fr));align-items:start;display:grid;overflow-x:auto}.week-col{background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:var(--radius);padding:var(--s2);min-height:180px;transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease)}.week-col.is-weekend{background:var(--tint)}.week-col.is-today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.week-col.is-past{background:0 0;border-style:dashed}.week-col.is-past .week-day{color:var(--text-faint)}.week-col.drop-here{border-color:var(--accent);background:var(--accent-soft)}.week-col-head{align-items:baseline;gap:var(--s1);padding:2px var(--s1) var(--s2);border-bottom:1px solid var(--border-soft);margin-bottom:var(--s2);display:flex}.week-day{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--text);font-weight:700}.week-date{font-size:var(--fs-xs);color:var(--text-faint);flex:1}.week-today-flag{font-size:var(--fs-xs);color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:1px 7px;font-weight:700}.week-empty{padding:var(--s3) var(--s1);color:var(--text-faint);font-size:var(--fs-sm);margin:0}.week-card{align-items:flex-start;gap:var(--s2);padding:var(--s2);border-radius:var(--radius-sm);background:var(--bg-card);cursor:grab;transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease), opacity var(--t-fast) var(--ease);border:1px solid #0000;margin-bottom:6px;display:flex}.week-card:hover{border-color:var(--border);background:var(--bg-hover)}.week-card.dragging{opacity:.45}.week-card.done{opacity:.55}.week-card.done .week-card-title{color:var(--text-faint);text-decoration:line-through}.week-card-main{text-align:left;flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.week-card-title{font-size:var(--fs-md);overflow-wrap:anywhere;line-height:1.35}.week-card-meta{align-items:center;gap:var(--s1);font-size:var(--fs-xs);color:var(--text-faint);display:flex}.week-nudge{color:var(--text-faint);border-radius:var(--radius-xs);opacity:0;transition:opacity var(--t-fast) var(--ease), background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);padding:2px 5px;font-size:17px;line-height:1}.week-card:hover .week-nudge,.week-nudge:focus-visible{opacity:1}.week-nudge:hover{color:var(--accent);background:var(--accent-soft)}.week-foot{margin:var(--s4) 0 0;color:var(--text-faint);font-size:var(--fs-sm)}@media (width<=1100px){.week-grid{grid-template-columns:1fr;overflow-x:visible}.week-col{min-height:0}}.project-tabs{align-items:center;gap:var(--s2);margin-bottom:var(--s5);flex-wrap:wrap;display:flex}.template-tabs{align-items:center;gap:var(--s2);margin-bottom:var(--s4);flex-wrap:wrap;display:flex}.project-tab{font-weight:700;font-size:var(--fs-md);color:var(--text-dim);border:1px solid var(--border);transition:color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);border-radius:999px;padding:6px 15px}.project-tab:hover{color:var(--text);background:var(--bg-hover)}.project-tab.active{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.board{gap:var(--s3);padding-bottom:var(--s5);align-items:flex-start;display:flex;overflow-x:auto}.board-col{background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:var(--radius);gap:var(--s2);width:268px;transition:border-color var(--t-mid) var(--ease), background var(--t-mid) var(--ease);flex-direction:column;flex-shrink:0;padding:10px;display:flex}.board-col.drop-target{border-color:var(--accent);background:var(--bg-card)}.board-col.add-col{padding:var(--s3);background:0 0;border-style:dashed;align-items:center}.col-head{align-items:center;gap:var(--s2);padding:0 2px var(--s1);display:flex}.col-name{font-weight:700;font-size:var(--fs-md);text-align:left;text-overflow:ellipsis;white-space:nowrap;transition:color var(--t-fast) var(--ease);flex:1;overflow:hidden}.col-name:hover{color:var(--accent)}.board-card{align-items:center;gap:var(--s2);background:var(--bg-card);border:1px solid var(--border-soft);border-radius:var(--radius-sm);cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);padding:9px 10px;display:flex}.board-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.board-card:active{transform:translateY(0)}.board-card.dragging{opacity:.4}.board-card.done{opacity:.72}.board-card.done .card-title{color:var(--text-faint);text-decoration:line-through}.card-title{min-width:0;font-size:var(--fs-md);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.card-add{font-size:var(--fs-md);color:var(--text-dim);background:0 0;border-color:#0000}.card-add:hover,.card-add:focus{background:var(--bg-input);border-color:var(--border)}.month-nav{align-items:center;gap:2px;display:flex}.month-label{text-align:center;min-width:128px;font-size:14px;font-weight:700}.history-week{margin-bottom:var(--s5)}.history-week-head{padding:0 var(--s1) var(--s1);margin-bottom:var(--s2);border-bottom:1px solid var(--border-soft);align-items:center;gap:10px;display:flex}.history-week-head h3{font-size:var(--fs-md);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);flex:1;margin:0;font-weight:700}.history-day{background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:var(--radius);padding:var(--s3) 18px 18px;margin-bottom:var(--s3);transition:border-color var(--t-fast) var(--ease)}.history-day:hover{border-color:var(--border)}.history-day-head{margin-bottom:var(--s2);align-items:center;gap:10px;display:flex}.history-day-head h3{letter-spacing:-.005em;flex:1;margin:0;font-size:15.5px}.history-cat h4{margin:var(--s3) 0 3px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-size:12px}.history-cat ul{margin:0;padding:0;list-style:none}.history-cat li{align-items:center;gap:var(--s2);font-size:var(--fs-md);color:var(--text-dim);padding:3px 0;display:flex}.history-tick{color:var(--green);flex-shrink:0;align-items:center;display:inline-flex}.settings-tabs{margin-bottom:var(--s4)}.settings-panel{gap:var(--s5);flex-direction:column;max-width:600px;display:flex}.settings-block{background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:var(--radius);padding:var(--s5)}.settings-block h3{font-size:var(--fs-lg);margin:0 0 4px}.settings-block>.primary-btn{align-self:flex-start;padding:10px 22px}.settings-hint{color:var(--text-dim);font-size:var(--fs-sm);margin:0 0 var(--s3)}.settings-version{margin:var(--s5) 0 0;color:var(--text-faint);font-size:var(--fs-xs)}.settings-ok{margin:var(--s3) 0 0;color:var(--green);font-size:var(--fs-sm);font-weight:600}.settings-warn{margin:var(--s3) 0 0;color:var(--p2);font-size:var(--fs-sm);font-weight:600}.category-list{margin:0 0 var(--s3);flex-direction:column;gap:2px;padding:0;list-style:none;display:flex}.category-row{align-items:center;gap:var(--s1);border-radius:var(--radius-xs);padding:4px;display:flex}.category-row:hover{background:var(--bg-hover)}.category-order{gap:2px;display:flex}.category-name{background:0 0;border:1px solid #0000;flex:1}.category-name:hover,.category-name:focus{border-color:var(--border);background:var(--bg-input)}.category-add{gap:var(--s2);display:flex}.category-add input{flex:1}.template-editor{border-top:1px solid var(--border-soft);padding-top:var(--s4)}.template-editor-head{align-items:center;gap:var(--s3);margin-bottom:var(--s3);display:flex}.template-editor-head .detail-title{flex:1}.template-items{margin:0 0 var(--s3);gap:var(--s2);flex-direction:column;padding:0;list-style:none;display:flex}.template-item{background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:var(--s2);transition:border-color var(--t-fast) var(--ease)}.template-item:hover{border-color:var(--border)}.template-item-row{align-items:center;gap:var(--s1);display:flex}.template-item-row input{flex:1}.template-item-row.sub input{font-size:var(--fs-md)}.template-subitems{margin:var(--s1) 0 0 var(--s2);padding-left:var(--s3);border-left:1px solid var(--border-soft);flex-direction:column;gap:4px;list-style:none;display:flex}.recur-group-head{margin:var(--s4) 0 var(--s1);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-weight:700}.recur-group-head:first-of-type{margin-top:0}.recur-list{gap:var(--s1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.recur-row{border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:10px var(--s3);transition:border-color var(--t-fast) var(--ease)}.recur-row:hover{border-color:var(--border)}.recur-line{align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.recur-main{flex-direction:column;flex:240px;gap:2px;min-width:0;display:flex}.recur-title{text-align:left;font-size:var(--fs-base);color:var(--text);text-overflow:ellipsis;white-space:nowrap;padding:0;font-weight:600;overflow:hidden}.recur-title:hover{color:var(--accent)}.recur-meta{font-size:var(--fs-sm);color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.recur-rule{color:var(--accent);font-weight:600}.recur-dot{color:var(--text-faint)}.recur-actions{gap:var(--s2);flex-shrink:0;display:flex}.recur-editor{margin-top:var(--s3);padding-top:var(--s3);border-top:1px dashed var(--border-soft);gap:var(--s3);animation:fade-in .14s var(--ease-out) both;flex-direction:column;display:flex}.recur-editor-foot{justify-content:space-between;align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.recur-preview{font-size:var(--fs-sm);color:var(--text-dim)}.look-swatches{gap:var(--s2);flex-wrap:wrap;display:flex}.look-swatch{align-items:center;gap:var(--s2);border:1px solid var(--border);color:var(--text-dim);font-size:var(--fs-sm);transition:border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);background:0 0;border-radius:999px;padding:6px 12px 6px 8px;font-weight:600;display:inline-flex}.look-swatch:hover{color:var(--text);background:var(--bg-hover)}.look-swatch.active{color:var(--text);border-color:var(--swatch);background:var(--bg-hover)}.look-swatch-dot{background:var(--swatch);width:18px;height:18px;box-shadow:inset 0 0 0 1px var(--inset-edge);transition:box-shadow var(--t-fast) var(--ease);border-radius:50%}.look-swatch.active .look-swatch-dot{box-shadow:0 0 0 2px var(--bg-hover), 0 0 0 4px var(--swatch)}.look-options{gap:var(--s3);flex-wrap:wrap;display:flex}.look-option{text-align:left;padding:var(--s3);border:1px solid var(--border);border-radius:var(--radius);transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);background:0 0;flex-direction:column;flex:200px;align-items:flex-start;gap:3px;display:flex}.look-option:hover{border-color:var(--border-strong)}.look-option.active{border-color:var(--accent);background:var(--accent-soft)}.look-option-name{font-weight:700;font-size:var(--fs-base);color:var(--text)}.look-option.active .look-option-name{color:var(--accent)}.look-option-hint{color:var(--text-dim);font-size:var(--fs-sm);line-height:1.4}.look-preview{border-radius:var(--radius-sm);border:1px solid var(--border-soft);flex-direction:column;gap:5px;width:100%;height:52px;margin-bottom:6px;padding:8px;display:flex;overflow:hidden}.look-preview.theme-dark{background:#1a1a1a;border-color:#383838}.look-preview.theme-light{background:#f7f5f2;border-color:#d8d2c8}.look-preview .lp-bar{background:var(--accent);border-radius:3px;width:42%;height:7px}.look-preview .lp-line{border-radius:3px;width:82%;height:5px}.look-preview .lp-line.short{width:58%}.look-preview.theme-dark .lp-line{background:#4a4a4a}.look-preview.theme-light .lp-line{background:#cfc8bd}.look-preview.rows-comfortable,.look-preview.rows-compact{background:var(--bg);justify-content:center}.look-preview.rows-comfortable{gap:9px}.look-preview.rows-compact{gap:3px}.look-preview .lp-row{background:var(--border-strong);border-radius:3px;width:100%;height:6px}.look-preview .lp-row:nth-child(2){width:74%}.look-preview .lp-row:nth-child(3){width:88%}.profile-preview{margin-bottom:var(--s3);justify-content:center;display:flex}.color-row{gap:var(--s2);flex-wrap:wrap;display:flex}.color-swatch{width:26px;height:26px;box-shadow:inset 0 0 0 1px var(--inset-edge);transition:border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);border:2px solid #0000;border-radius:50%}.color-swatch:hover{transform:scale(1.12)}.color-swatch.active{border-color:var(--text)}.restore-card{margin-top:var(--s4);padding:var(--s4);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);animation:fade-in .18s var(--ease-out) both}.restore-card h4{margin:0 0 var(--s1);font-size:var(--fs-lg)}.restore-list{margin:var(--s2) 0;gap:var(--s1) var(--s4);color:var(--text-dim);font-size:var(--fs-sm);flex-wrap:wrap;padding:0;list-style:none;display:flex}.restore-list strong{color:var(--text)}.restore-actions{align-items:center;gap:var(--s2);margin-top:var(--s3);display:flex}.restore-actions .primary-btn{padding:9px 16px}.overlay{z-index:60;animation:fade-in .14s var(--ease-out) both;display:flex;position:fixed;inset:0}.overlay.palette-overlay{background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;padding-top:12vh}.overlay.confirm-overlay{z-index:70;padding:var(--s5);background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center}.overlay.welcome-overlay{z-index:80;padding:var(--s5);background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:center}.overlay.focus-overlay{background:var(--bg)}.palette{background:var(--bg-elev);border:1px solid var(--border);width:min(560px,100% - 32px);max-height:62vh;box-shadow:var(--shadow);animation:rise-in var(--t-slow) var(--ease-out) both;border-radius:12px;flex-direction:column;align-self:flex-start;display:flex;overflow:hidden}.palette-input{border:none;border-bottom:1px solid var(--border-soft);background:0 0;border-radius:0;padding:15px 18px;font-size:15px}.palette-input:focus,.palette-input:hover:not(:focus){border-color:#0000;border-bottom:1px solid var(--border-soft);box-shadow:none}.palette-list{padding:var(--s1);overflow-y:auto}.palette-item{text-align:left;border-radius:var(--radius-sm);width:100%;font-size:var(--fs-md);transition:background var(--t-fast) var(--ease);align-items:center;gap:11px;padding:9px 12px;display:flex}.palette-item.active{background:var(--bg-hover)}.palette-item:active:not(:disabled){transform:none}.palette-item.done .palette-label{color:var(--text-faint);text-decoration:line-through}.palette-kind{color:var(--accent);text-align:center;flex-shrink:0;width:14px;font-weight:700}.palette-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.palette-meta{color:var(--text-faint);flex-shrink:0;font-size:11.5px}.palette-foot{gap:var(--s3);padding:var(--s2) var(--s3);border-top:1px solid var(--border-soft);color:var(--text-faint);font-size:var(--fs-xs);align-items:center;display:flex}.confirm-box{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--s4);width:100%;max-width:360px}.confirm-box>p{margin:0 0 var(--s2);font-size:var(--fs-base);line-height:1.5}.confirm-box>p:last-of-type{margin-bottom:var(--s4)}.confirm-box .confirm-detail{color:var(--text-dim);font-size:var(--fs-md)}.confirm-actions{justify-content:flex-end;gap:var(--s2);display:flex}.welcome-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(460px,100%);box-shadow:var(--shadow);padding:var(--s6) var(--s6) var(--s5);text-align:left;animation:rise-in .24s var(--ease-out) both}.welcome-card h2{margin:var(--s3) 0 var(--s1);letter-spacing:-.015em;font-size:21px}.welcome-card>p{margin:0 0 var(--s3);color:var(--text-dim);font-size:var(--fs-md)}.welcome-sample-note{padding:10px var(--s3);border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--bg-card);line-height:1.55}.welcome-card>.welcome-sample-note{margin-bottom:var(--s5)}.welcome-tips{margin:0 0 var(--s5);gap:var(--s3);flex-direction:column;padding:0;list-style:none;display:flex}.welcome-tips li{gap:var(--s3);animation:rise-in .26s var(--ease-out) both;align-items:flex-start;display:flex}.welcome-tips li:first-child{animation-delay:60ms}.welcome-tips li:nth-child(2){animation-delay:.12s}.welcome-tips li:nth-child(3){animation-delay:.18s}.welcome-num{background:var(--accent-soft);width:22px;height:22px;color:var(--accent);font-size:var(--fs-xs);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-weight:700;display:inline-flex}.welcome-tip-text strong{font-size:var(--fs-base);font-weight:600;display:block}.welcome-tip-text span{color:var(--text-dim);font-size:var(--fs-md);margin-top:2px;line-height:1.55;display:block}.welcome-actions{justify-content:flex-end;display:flex}.welcome-actions .primary-btn{padding:10px 22px}.focus-panel{flex-direction:column;flex:1;min-width:0;display:flex}.focus-panel:focus{outline:none}.focus-bar{align-items:center;gap:var(--s3);padding:var(--s3) var(--s5);border-bottom:1px solid var(--border-soft);display:flex}.focus-flag{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:3px 11px;font-weight:700}.focus-progress{color:var(--text-dim);font-size:var(--fs-md);flex:1}.focus-body{width:100%;max-width:640px;padding:var(--s7) var(--s5) var(--s6);flex:1;margin:0 auto;overflow-y:auto}.focus-head h2{letter-spacing:-.02em;margin:0;font-size:30px;font-weight:700}.focus-head p{margin:var(--s1) 0 var(--s6);color:var(--text-dim);font-size:var(--fs-lg)}.focus-empty{text-align:center;padding-top:var(--s7)}.focus-empty h2{margin:0 0 var(--s2);font-size:26px}.focus-empty p{margin:0 0 var(--s4);color:var(--text-dim)}.focus-list{gap:var(--s2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.focus-task{align-items:center;gap:var(--s4);padding:var(--s3) var(--s4);border-radius:var(--radius);border:1px solid var(--border-soft);background:var(--bg-elev);transition:border-color var(--t-fast) var(--ease), opacity var(--t-fast) var(--ease);display:flex}.focus-task:hover{border-color:var(--border)}.focus-task.done{opacity:.5}.focus-task.done .focus-title{color:var(--text-faint);text-decoration:line-through}.focus-title{text-align:left;overflow-wrap:anywhere;flex:1;font-size:18px;line-height:1.4}.focus-snooze{opacity:0;transition:opacity var(--t-fast) var(--ease)}.focus-task:hover .focus-snooze,.focus-snooze:focus-visible{opacity:1}.focus-foot{justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s3) var(--s5);border-top:1px solid var(--border-soft);display:flex}.focus-dots{gap:6px;display:flex}.focus-dots i{background:var(--border-strong);width:6px;height:6px;transition:background var(--t-fast) var(--ease);border-radius:50%}.focus-dots i.on{background:var(--accent)}.toast-host{z-index:100;gap:var(--s2);pointer-events:none;flex-direction:column;width:min(420px,100% - 32px);display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{align-items:center;gap:var(--s3);padding:12px var(--s3) 12px 14px;border-radius:var(--radius-sm);background:var(--bg-elev);border:1px solid var(--border);border-left:3px solid var(--p1);box-shadow:var(--shadow-md);color:var(--text);font-size:var(--fs-md);pointer-events:auto;animation:rise-in var(--t-slow) var(--ease-out) both;line-height:1.4;display:flex}.toast span{flex:1}.toast-close{color:var(--text-faint);border-radius:var(--radius-xs);flex-shrink:0;padding:2px 4px;font-size:16px;line-height:1}.toast-close:hover{color:var(--text);background:var(--bg-hover)}@media screen and (width>=701px){:root[data-density=compact] .view{padding:var(--s5) var(--s5) 72px}:root[data-density=compact] .view-head{margin-bottom:var(--s4)}:root[data-density=compact] .task-row{gap:10px;padding:4px 8px}:root[data-density=compact] .task-group,:root[data-density=compact] .pinned,:root[data-density=compact] .filter-rows{margin-bottom:var(--s4)}:root[data-density=compact] .pin-block{padding:6px var(--s3) 8px}:root[data-density=compact] .quick-add-bar{padding:2px 5px 2px 12px}:root[data-density=compact] .nav-item{padding:6px 10px}:root[data-density=compact] .sidebar{padding-top:14px}:root[data-density=compact] .brand{padding-bottom:12px}:root[data-density=compact] .settings-panel{gap:var(--s4)}:root[data-density=compact] .settings-block{padding:var(--s4)}:root[data-density=compact] .detail{padding:var(--s3) var(--s4) var(--s4);gap:10px}}@media (width<=900px){.detail{width:min(var(--detail-w), 100%);z-index:40;box-shadow:var(--shadow);position:fixed;top:0;bottom:0;right:0}}@media (width<=700px){.app,.boot-screen,.auth-screen{height:100dvh}.app{flex-direction:column-reverse}.sidebar{align-items:center;gap:var(--s2);width:100%;padding:var(--s1) 10px;padding-bottom:calc(var(--s1) + env(safe-area-inset-bottom));padding-left:calc(10px + env(safe-area-inset-left));padding-right:calc(10px + env(safe-area-inset-right));border-right:none;border-top:1px solid var(--border-soft);flex-flow:row;overflow-x:auto}.brand,.palette-hint span,.palette-hint kbd,.nav-item span,.foot-name{display:none}.nav-item .nav-count{display:inline-block}.nav{flex-direction:row;flex:1;justify-content:space-around}.nav-item,.sidebar-foot,.sidebar-foot .avatar{flex-shrink:0}.nav-item{padding:10px 16px}.nav-item.active:before{border-radius:3px 3px 0 0;width:16px;height:3px;top:auto;bottom:-4px;left:50%;transform:translate(-50%)}.sidebar-foot{border-top:none;margin-top:0;padding:0}.palette-hint{border:none;justify-content:center;align-items:center;min-width:40px;min-height:40px;margin-top:0;padding:0;display:inline-flex}.palette-hint:before{content:"🔍";font-size:16px;line-height:1}.icon-btn:not(.tiny),.ghost-btn,.filter-chip,.qa-go,.nav-item,.focus-task{min-height:40px}.icon-btn:not(.tiny){min-width:40px}.check,.goal-step-btn,.week-nudge,.pin-toggle{position:relative}.check:after,.goal-step-btn:after,.week-nudge:after,.pin-toggle:after{content:"";position:absolute;inset:-11px}.check.small:after{inset:-12px}.pin-block .pin-edit,.pin-block .pin-delete,.col-head .pin-delete,.category-row .pin-delete,.template-item-row .pin-delete,.goal-steppers,.week-nudge,.focus-snooze{opacity:1}.pin-delete,.pin-edit{padding:8px}.view{padding:18px var(--s3) var(--s7)}.view-head h2{font-size:19px}.detail{padding-top:calc(var(--s4) + env(safe-area-inset-top));padding-bottom:calc(var(--s5) + env(safe-area-inset-bottom));padding-left:calc(var(--s5) + env(safe-area-inset-left));padding-right:calc(var(--s5) + env(safe-area-inset-right))}.detail-grid{grid-template-columns:1fr}.board-col{width:240px}.week-grid{gap:var(--s3)}.week-col{padding:var(--s3)}.week-card{padding:6px 4px}.overlay.palette-overlay{padding-top:calc(12vh + env(safe-area-inset-top))}.overlay.confirm-overlay,.overlay.welcome-overlay{padding:var(--s3)}.welcome-card{padding:var(--s5) var(--s4) var(--s4)}.focus-bar{padding-top:calc(var(--s3) + env(safe-area-inset-top))}.focus-body{padding:var(--s5) var(--s4) var(--s6)}.focus-head h2{font-size:24px}.focus-foot{padding-bottom:env(safe-area-inset-bottom)}.settings-tabs{padding-bottom:2px}.toast-host{bottom:calc(64px + env(safe-area-inset-bottom))}}@media print{.sidebar,.detail,.overlay,.toast-host,.reset-notice,.quick-add,.day-done,.head-actions,.pin-add,.pin-edit,.pin-delete,.pin-toggle,.goal-steppers,.week-nudge,.empty-state svg{display:none!important}html,body{height:auto;color:#000!important;background:#fff!important}.app{height:auto;display:block;overflow:visible}.main{overflow:visible}.view{max-width:none;padding:0;animation:none}.view-head{border-bottom:1px solid #999;margin-bottom:14px;padding-bottom:6px}.view-head h2,.view-date,.task-title,.pin-title,.pin-text-line,.goal-label,.goal-count,.history-cat li,.history-day-head h3{color:#000!important}.group-head,.history-week-head h3{border-bottom:1px solid #ccc;color:#000!important}.pinned,.task-group,.history-day,.task-row{break-inside:avoid;box-shadow:none!important;background:0 0!important;border-color:#ccc!important}.task-row{padding:2px 0}.check{background:0 0!important;border-color:#666!important}.badge{border:1px solid #bbb;color:#555!important;background:0 0!important}}.wkrev-space-toggle{margin-bottom:var(--s5)}.wkrev-summary{background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:var(--radius);padding:var(--s4) var(--s5);margin-bottom:var(--s5)}.wkrev-total{align-items:baseline;gap:var(--s2);margin-bottom:var(--s4);display:flex}.wkrev-total-num{color:var(--accent);font-variant-numeric:tabular-nums;font-size:34px;font-weight:700;line-height:1}.wkrev-total-label{color:var(--text-dim);font-size:var(--fs-md)}.wkrev-cats{gap:var(--s2);flex-direction:column;display:flex}.wkrev-cat-row{align-items:center;gap:var(--s3);grid-template-columns:120px 1fr 26px;display:grid}.wkrev-cat-name{font-size:var(--fs-sm);color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wkrev-cat-bar{background:var(--bg-input);border:1px solid var(--border-soft);border-radius:4px;height:6px;overflow:hidden}.wkrev-cat-fill{background:linear-gradient(90deg, var(--accent), var(--accent-hover));height:100%;transition:width .26s var(--ease-out);border-radius:4px;display:block}.wkrev-cat-count{font-size:var(--fs-sm);color:var(--text-dim);text-align:right;font-variant-numeric:tabular-nums}.wkrev-section{margin-bottom:var(--s5)}.wkrev-section h3{margin:0 0 var(--s2);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-size:12px;font-weight:700}.wkrev-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.wkrev-list li{align-items:center;gap:var(--s2);font-size:var(--fs-md);background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:var(--radius-sm);transition:border-color var(--t-fast) var(--ease);padding:8px 12px;display:flex}.wkrev-list li:hover{border-color:var(--border)}.wkrev-p1-badge{color:var(--p1);background:rgba(var(--p1-rgb), .14);flex-shrink:0}.wkrev-steps-badge{color:var(--accent);background:var(--accent-soft);white-space:nowrap;flex-shrink:0}@media screen and (width>=701px){:root[data-density=compact] .wkrev-summary{padding:var(--s3) var(--s4)}:root[data-density=compact] .wkrev-total{margin-bottom:var(--s3)}:root[data-density=compact] .wkrev-list li{padding:5px 10px}:root[data-density=compact] .wkrev-section{margin-bottom:var(--s4)}}@media (width<=640px){.wkrev-cat-row{grid-template-columns:80px 1fr 22px}}.away-card{margin:0 0 var(--s5);padding:var(--s4) var(--s5);border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--bg-elev);box-shadow:var(--shadow-sm);animation:away-card-in .32s var(--ease-out) both}@keyframes away-card-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.away-card-head{justify-content:space-between;align-items:center;gap:var(--s3);display:flex}.away-card-head strong{letter-spacing:-.005em;font-size:14.5px}.away-card-close{color:var(--text-faint);border-radius:var(--radius-xs);transition:color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);flex-shrink:0;padding:4px 8px;font-size:17px;line-height:1}.away-card-close:hover{color:var(--text);background:var(--bg-hover)}.away-card-lines{margin-top:var(--s2);flex-direction:column;gap:2px;display:flex}.away-card-line{align-items:center;gap:var(--s2);border-radius:var(--radius-xs);width:100%;color:var(--text-dim);font-size:var(--fs-md);text-align:left;transition:color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);padding:6px 8px;display:flex}.away-card-line:hover{color:var(--text);background:var(--bg-hover)}.away-card-dot{background:var(--text-faint);border-radius:50%;flex-shrink:0;width:6px;height:6px}.away-card-dot-completed{background:var(--green)}.away-card-dot-assigned,.away-card-dot-comments{background:var(--accent)}.away-card-dot-rollover{background:var(--p2)}:root[data-density=compact] .away-card{padding:var(--s3) var(--s4)}.nav-item .nav-dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 2px var(--bg-sidebar);border-radius:50%;display:block;position:absolute;top:6px;left:24px}@media (width<=700px){.nav-dot{left:30px}}
