:root{--bg: #0b1020;--surface: #121933;--surface-2: #19223f;--surface-3: #232d50;--border: #2a3560;--text: #e6e9f5;--muted: #8b94b8;--primary: #6366f1;--primary-2: #8b5cf6;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--radius: 14px;--shadow: 0 10px 30px rgba(0, 0, 0, .35);--free: #334155;--bg-glow-1: #1e1b4b;--bg-glow-2: #172554;--topbar-bg: rgba(11, 16, 32, .75);--card-bg-end: rgba(18, 25, 51, .85);--backdrop: rgba(3, 6, 18, .65);--modal-shadow: 0 30px 80px rgba(0, 0, 0, .6);color-scheme:dark}[data-theme=light]{--bg: #f4f6fb;--surface: #ffffff;--surface-2: #f3f5fa;--surface-3: #e4e8f1;--border: #dbe1ec;--text: #0f172a;--muted: #64748b;--shadow: 0 6px 20px rgba(15, 23, 42, .07);--free: #cbd5e1;--bg-glow-1: #e0e7ff;--bg-glow-2: #dbeafe;--topbar-bg: rgba(255, 255, 255, .8);--card-bg-end: #ffffff;--backdrop: rgba(15, 23, 42, .35);--modal-shadow: 0 30px 80px rgba(15, 23, 42, .2);color-scheme:light}body,.card,.topbar,.modal,input,select,textarea,.week-day,.task-list li{transition:background-color .3s,border-color .3s,color .3s}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:radial-gradient(1200px 600px at 10% -10%,var(--bg-glow-1) 0%,transparent 60%),radial-gradient(900px 500px at 110% 10%,var(--bg-glow-2) 0%,transparent 55%),var(--bg);background-attachment:fixed;color:var(--text);font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.01em}h1{font-size:24px}h2{font-size:20px}h3{font-size:15px}p{margin:0 0 8px}.muted{color:var(--muted)}.small{font-size:12px}.hint{color:var(--muted);font-size:13px;margin:0}.error-text{color:var(--danger);font-size:13px;margin:0}.warn-text{color:var(--warning);font-weight:600;margin-top:6px;animation:blink 1.2s infinite}.container{max-width:1320px;margin:0 auto;padding:24px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:24px;padding:12px 24px;background:var(--topbar-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px;font-weight:750;font-size:18px}.brand.big{font-size:26px;margin-bottom:4px}.brand-dot{width:14px;height:14px;border-radius:50%;background:conic-gradient(var(--primary),var(--primary-2),#ec4899,var(--primary));box-shadow:0 0 16px var(--primary);animation:spin 6s linear infinite}.topbar nav{display:flex;gap:4px;flex:1}.topbar nav a{padding:8px 14px;border-radius:10px;color:var(--muted);transition:.2s;white-space:nowrap}.topbar nav a:hover{color:var(--text);background:var(--surface-2)}.topbar nav a.active{color:var(--text);background:var(--surface-3)}.user{display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:linear-gradient(135deg,var(--primary),var(--primary-2))}.card{background:linear-gradient(180deg,var(--surface) 0%,var(--card-bg-end) 100%);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.card-head h3{display:flex;align-items:center;gap:8px}.btn{border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:9px 16px;border-radius:10px;cursor:pointer;font:inherit;font-weight:550;transition:transform .1s,background .2s,box-shadow .2s,opacity .2s;white-space:nowrap}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{border:none;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 6px 20px #6366f159}.btn.primary:hover:not(:disabled){box-shadow:0 8px 26px #6366f18c;background:linear-gradient(135deg,#7174f5,#9b70f7)}.btn.ghost{background:transparent}.btn.ghost.active{background:var(--surface-3)}.btn.sm{padding:5px 10px;font-size:13px}.btn.block{width:100%}.btn-group{display:flex}.btn-group .btn{border-radius:0;margin-left:-1px}.btn-group .btn:first-child{border-radius:10px 0 0 10px}.btn-group .btn:last-child{border-radius:0 10px 10px 0}.icon-btn{background:transparent;border:1px solid transparent;color:var(--muted);cursor:pointer;width:32px;height:32px;border-radius:8px;font-size:15px;transition:.15s}.icon-btn:hover{background:var(--surface-3);color:var(--text);border-color:var(--border)}.icon-btn.danger:hover{background:#ef444426;border-color:#ef444466}.actions{display:flex;gap:2px}input,select,textarea{width:100%;font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:9px 12px;outline:none;transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #6366f140}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--success)}input[type=checkbox]{width:18px;height:18px;cursor:pointer}input[type=range]{padding:0;accent-color:var(--primary)}.date-input{width:auto}.form{display:flex;flex-direction:column;gap:14px}.form label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:13px}.form h3{margin-top:6px}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-actions{display:flex;justify-content:flex-end}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.dot.lg{width:14px;height:14px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;cursor:pointer;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;font-size:13px;transition:.15s}.chip:hover{border-color:var(--c, var(--primary))}.chip.active{border-color:var(--c, var(--primary));background:color-mix(in srgb,var(--c, var(--primary)) 22%,transparent)}.project-pick{display:flex;flex-wrap:wrap;gap:8px}.pill{padding:4px 10px;border-radius:999px;font-size:12px;background:color-mix(in srgb,var(--s) 15%,transparent);border:1px solid color-mix(in srgb,var(--s) 40%,transparent)}.tabs{display:flex;gap:4px;background:var(--surface-2);padding:4px;border-radius:12px;margin:14px 0}.tabs button{flex:1;background:transparent;border:none;color:var(--muted);padding:8px 12px;border-radius:9px;cursor:pointer;font:inherit;font-weight:550;transition:.2s}.tabs button.active{background:var(--surface-3);color:var(--text);box-shadow:var(--shadow)}.tabs.inline{display:inline-flex}.tabs.inline button{flex:none}.progress-line,.mini-bar{height:6px;background:var(--surface-3);border-radius:999px;overflow:hidden;margin:8px 0}.progress-line>div,.mini-bar>div{height:100%;border-radius:inherit;transition:width .6s cubic-bezier(.2,.8,.2,1);background:linear-gradient(90deg,var(--c, var(--primary)),var(--success))}.mini-bar>div{background:linear-gradient(90deg,var(--primary),var(--primary-2))}.mini-bar.free>div{background:var(--free)}.mini-bar.ok>div{background:var(--success)}.page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;flex-wrap:wrap}.page-head h1{display:flex;align-items:center;gap:10px}.head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.back{color:var(--muted);display:inline-block;margin-bottom:10px}.back:hover{color:var(--text)}.empty{text-align:center;padding:40px;display:flex;flex-direction:column;align-items:center;gap:10px}.big-emoji{font-size:42px;animation:float 3s ease-in-out infinite}.day-progress{width:280px;height:4px;background:var(--surface-3);border-radius:99px;margin-top:8px;overflow:hidden}.day-progress div{height:100%;background:linear-gradient(90deg,var(--primary),#ec4899);transition:width 1s linear}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:18px}.week-day{display:flex;flex-direction:column;gap:6px;padding:10px 12px;text-align:left;cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:12px;color:var(--text);font:inherit;transition:transform .15s,border-color .2s,background .2s}.week-day:hover{transform:translateY(-2px);border-color:var(--primary)}.week-day.active{background:var(--surface-3);border-color:var(--primary);box-shadow:0 0 0 1px var(--primary),0 8px 24px #6366f140}.week-day.today .wd-top b{color:var(--primary)}.wd-top{display:flex;justify-content:space-between;align-items:baseline;color:var(--muted)}.wd-top b{color:var(--text);font-size:18px}.wd-bar{display:flex;height:6px;border-radius:99px;overflow:hidden;background:var(--surface-3);gap:1px}.wd-free{background:transparent}.plan-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,1fr);gap:18px;align-items:start}.plan-main{min-width:0}.plan-empty{text-align:center;padding:40px 20px}.side{display:flex;flex-direction:column;gap:18px;position:sticky;top:76px}.timeline-card{margin-bottom:18px}.timeline-scroll{overflow-x:auto;overflow-y:hidden;padding:0 12px 6px;margin:0 -6px}.timeline{position:relative;height:112px;cursor:copy}.tl-hour{position:absolute;top:0;bottom:0;border-left:1px dashed var(--border);pointer-events:none}.tl-hour span{position:absolute;top:0;left:0;transform:translate(-50%);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.tl-now{position:absolute;top:18px;bottom:0;width:2px;margin-left:-1px;background:#f43f5e;pointer-events:none;z-index:5;box-shadow:0 0 10px #f43f5e}.tl-now:before{content:"";position:absolute;left:-4px;top:-4px;width:10px;height:10px;border-radius:50%;background:#f43f5e;animation:pulse 1.6s infinite}.tl-now span{position:absolute;left:8px;bottom:0;font-size:11px;color:#f43f5e;font-weight:700}.tl-block{position:absolute;top:22px;bottom:4px;border-radius:10px;cursor:pointer;overflow:hidden;background:color-mix(in srgb,var(--c) 22%,var(--surface-2));border:1px solid color-mix(in srgb,var(--c) 55%,transparent);border-top:4px solid var(--c);transition:transform .15s,box-shadow .2s,opacity .3s,left .4s,width .4s}.tl-block:hover{transform:translateY(-2px);box-shadow:0 6px 20px color-mix(in srgb,var(--c) 35%,transparent);z-index:3}.tl-block.selected{box-shadow:0 0 0 2px var(--c),0 8px 26px color-mix(in srgb,var(--c) 45%,transparent);z-index:2}.tl-block.past{opacity:.5}.tl-block.current{animation:glow 2.4s ease-in-out infinite}.tl-block{cursor:grab;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.tl-block.armed{transform:scale(1.04);box-shadow:0 10px 30px color-mix(in srgb,var(--c) 50%,transparent);z-index:6}.tl-block.dragging{cursor:grabbing;transition:none;opacity:.9;z-index:6;transform:none;box-shadow:0 10px 30px color-mix(in srgb,var(--c) 50%,transparent)}.tl-block.invalid{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 25%,var(--surface-2));box-shadow:0 0 0 2px var(--danger);cursor:not-allowed}.tl-block.pending{outline:2px dashed var(--c);outline-offset:2px;z-index:4}.tl-handle{position:absolute;top:0;bottom:0;width:8px;cursor:ew-resize;z-index:2;touch-action:none}@media (pointer: coarse){.tl-handle{width:16px}.tl-block.selected .tl-handle:after{opacity:.8}}.tl-handle.start{left:0}.tl-handle.end{right:0}.tl-handle:after{content:"";position:absolute;top:50%;left:50%;width:3px;height:22px;transform:translate(-50%,-50%);border-radius:2px;background:var(--c);opacity:0;transition:opacity .15s}.tl-block:hover .tl-handle:after,.tl-block.dragging .tl-handle:after{opacity:.8}.move-plan-name{display:flex;align-items:center;gap:8px;margin:0}.drag-diff{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;align-items:center;margin:12px 0 0}.drag-diff .old{color:var(--muted);text-decoration:line-through}.drag-diff b{font-variant-numeric:tabular-nums}.tl-fill{position:absolute;left:0;top:0;bottom:0;pointer-events:none;background:linear-gradient(90deg,color-mix(in srgb,var(--c) 25%,transparent),color-mix(in srgb,var(--c) 45%,transparent));transition:width 1s linear}.tl-content{position:relative;padding:6px 10px;display:flex;flex-direction:column;gap:2px;min-width:0}.tl-title{display:flex;align-items:center;gap:6px;font-weight:600;min-width:0}.tl-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.tl-meta{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-block.compact .tl-content{padding:6px}.tl-block.compact .tl-title{font-size:12px}.tl-block.compact .tl-title .live,.tl-block.compact .tl-title .trk-badge{display:none}.tl-block.compact .tl-meta{font-size:10px}.live{font-size:9px;padding:1px 6px;border-radius:4px;background:#f43f5e;color:#fff;letter-spacing:.05em;animation:blink 1.4s infinite}.now-card{display:flex;align-items:center;gap:20px;transition:border-color .3s,box-shadow .3s}.now-card.warning{border-color:var(--warning);box-shadow:0 0 0 1px var(--warning),0 0 30px #f59e0b40}.now-info h2{display:flex;align-items:center;gap:8px;margin:2px 0}.next-up{margin-top:10px;font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px}.empty-now{width:100%;text-align:center;color:var(--muted);padding:10px}.ring{position:relative;flex-shrink:0}.ring svg{display:block;overflow:visible}.ring-progress{transition:stroke-dashoffset 1s linear,stroke .3s}.ring.warning{animation:pulse-scale 1.2s ease-in-out infinite}.ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;text-align:center}.ring-time{font-size:28px;font-weight:750;font-variant-numeric:tabular-nums}.ring.warning .ring-time{color:var(--warning)}.ring-caption{color:var(--muted);font-size:12px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat{padding:14px;display:flex;flex-direction:column;gap:2px}.stat b{font-size:16px}.donut{display:flex;align-items:center;gap:20px}.donut-arc{transition:stroke-dasharray .8s cubic-bezier(.2,.8,.2,1),stroke-dashoffset .8s cubic-bezier(.2,.8,.2,1)}.donut-arc:hover{filter:brightness(1.3)}.donut-title{fill:var(--text);font-size:15px;font-weight:700}.donut-sub{fill:var(--muted);font-size:11px}.legend{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.legend li{display:flex;align-items:center;gap:8px;font-size:13px}.legend-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-detail{border-top:3px solid var(--c)}.note{background:var(--surface-2);padding:8px 12px;border-radius:8px;color:var(--muted)}.task-list{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:6px}.task-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--surface-2);border:1px solid transparent;transition:.2s}.task-list li:hover{border-color:var(--border)}.task-list li.done .task-title{text-decoration:line-through;color:var(--muted)}.task-list.big li{padding:10px 12px}.task-title{flex:1;min-width:0;overflow-wrap:anywhere;transition:color .3s}.inline-edit{flex:1;padding:4px 8px}.status-select{width:auto;padding:4px 8px;font-size:12px;border-radius:8px;cursor:pointer;border-color:color-mix(in srgb,var(--s) 50%,transparent);color:var(--s);background:color-mix(in srgb,var(--s) 12%,var(--surface-2))}.mini-list{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-direction:column;gap:4px;color:var(--muted)}.mini-list li{display:flex;align-items:center;gap:8px}.choice-list{display:flex;flex-direction:column;gap:10px}.choice{text-align:left;display:flex;flex-direction:column;gap:2px;padding:12px 14px;cursor:pointer;font:inherit;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;color:var(--text);transition:.15s}.choice span{color:var(--muted);font-size:13px}.choice:hover{border-color:var(--primary);background:var(--surface-3);transform:translate(3px)}.gen-week{margin:10px 0}.gen-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:4px}.gen-day{display:flex;flex-direction:column;align-items:center;padding:8px 4px;border-radius:10px;cursor:pointer;background:var(--surface-2);border:1px solid var(--border);color:var(--muted);font:inherit;transition:.15s}.gen-day b{color:var(--text);font-size:16px}.gen-day.active{background:linear-gradient(135deg,var(--primary),var(--primary-2));border-color:transparent;color:#fff;transform:scale(1.05)}.gen-day.source{border-style:dashed;opacity:.5;cursor:not-allowed}.radio-group{display:flex;flex-direction:column;gap:8px;margin-top:14px}.radio-group label{display:flex;align-items:center;gap:8px;cursor:pointer}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.project-card{display:flex;flex-direction:column;gap:6px;border-top:3px solid var(--c);transition:transform .2s,box-shadow .2s}.project-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px color-mix(in srgb,var(--c) 30%,transparent)}.pc-head{display:flex;justify-content:space-between;align-items:center}.desc{min-height:42px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pc-stats{display:flex;gap:14px;font-size:13px;color:var(--muted)}.pc-stats b{color:var(--text)}.color-pick{display:flex;gap:8px;flex-wrap:wrap}.swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:.15s}.swatch.active{border-color:var(--text);transform:scale(1.15);box-shadow:0 0 12px currentColor}.status-counts{display:flex;gap:8px;flex-wrap:wrap}.add-task{display:flex;gap:10px}.settings-page{max-width:640px}.range-row{display:flex;align-items:center;gap:14px}.range-row b{color:var(--text);min-width:60px}.perm{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted)}.auth-page{min-height:100vh;display:grid;place-items:center;padding:20px;position:relative;overflow:hidden}.auth-glow{position:absolute;width:600px;height:600px;border-radius:50%;filter:blur(80px);opacity:.35;background:conic-gradient(from 0deg,var(--primary),#ec4899,var(--primary-2),var(--primary));animation:spin 18s linear infinite}.auth-card{position:relative;width:100%;max-width:400px;display:flex;flex-direction:column;gap:12px;padding:32px}.auth-card label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:13px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:20px;background:var(--backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:var(--modal-shadow);max-height:90vh;display:flex;flex-direction:column}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-body{padding:20px;overflow:auto}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--border)}.toasts{position:fixed;right:20px;bottom:20px;z-index:200;display:flex;flex-direction:column;gap:10px;width:340px}.toast{display:flex;gap:10px;padding:12px 14px;border-radius:12px;cursor:pointer;background:var(--surface-2);border:1px solid var(--border);box-shadow:var(--shadow);border-left:4px solid var(--primary)}.toast.success{border-left-color:var(--success)}.toast.error{border-left-color:var(--danger)}.toast.warning{border-left-color:var(--warning);animation:shake .5s 2}.toast-title{font-weight:650}.toast-body{color:var(--muted);font-size:13px}.page-enter-active,.page-leave-active{transition:opacity .2s,transform .2s}.page-enter-from{opacity:0;transform:translateY(8px)}.page-leave-to{opacity:0;transform:translateY(-8px)}.modal-enter-active,.modal-leave-active{transition:opacity .2s}.modal-enter-active .modal,.modal-leave-active .modal{transition:transform .25s cubic-bezier(.2,.8,.2,1)}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .modal,.modal-leave-to .modal{transform:scale(.94) translateY(10px)}.toast-enter-active,.toast-leave-active{transition:all .3s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(40px)}.list-enter-active,.list-leave-active,.block-enter-active,.block-leave-active{transition:all .3s}.list-enter-from,.list-leave-to{opacity:0;transform:translate(-12px)}.block-enter-from,.block-leave-to{opacity:0;transform:scale(.95)}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter-from,.fade-leave-to{opacity:0}.tracking{margin-top:12px;display:flex;flex-direction:column;gap:10px}.tracking:not(.compact){padding:12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);margin-bottom:12px}.tracking.running:not(.compact){border-color:color-mix(in srgb,var(--success) 50%,var(--border))}.tracking.paused:not(.compact){border-color:color-mix(in srgb,var(--warning) 50%,var(--border))}.trk-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.trk-btn{min-width:118px;font-weight:600;transition:transform .15s,box-shadow .2s}.trk-btn:active{transform:scale(.96)}.trk-btn.start{background:var(--success);border-color:var(--success);color:#fff}.trk-btn.start:hover{box-shadow:0 0 18px color-mix(in srgb,var(--success) 45%,transparent)}.trk-btn.pause{background:var(--warning);border-color:var(--warning);color:#1f1300}.trk-btn.pause:hover{box-shadow:0 0 18px color-mix(in srgb,var(--warning) 45%,transparent)}.trk-clock{text-align:right}.trk-time{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:8px;justify-content:flex-end}.tracking.compact .trk-time{font-size:18px}.rec-dot{width:9px;height:9px;border-radius:50%;background:#f43f5e;animation:pulse 1.4s infinite}.trk-break{font-size:13px;padding:6px 10px;border-radius:8px;color:var(--warning);background:color-mix(in srgb,var(--warning) 12%,transparent);font-variant-numeric:tabular-nums}.trk-break.long{color:var(--danger);background:color-mix(in srgb,var(--danger) 14%,transparent);animation:blink 1.6s infinite}.trk-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.trk-stats>div{display:flex;flex-direction:column;gap:2px}.trk-stats b{font-variant-numeric:tabular-nums}.eff-text.good{color:var(--success)}.eff-text.mid{color:var(--warning)}.eff-text.low{color:var(--danger)}.eff-bar{position:relative;height:8px;border-radius:999px;background:var(--surface-3);margin:4px 0}.eff-bar.sm{height:6px;margin:8px 0}.eff-fill{height:100%;border-radius:inherit;background:var(--primary);transition:width .6s cubic-bezier(.2,.8,.2,1)}.eff-fill.good{background:var(--success)}.eff-fill.mid{background:var(--warning)}.eff-fill.low{background:var(--danger)}.eff-target{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--text);opacity:.7;border-radius:2px}.session-bar{position:relative;height:14px;border-radius:7px;background:var(--surface-3);overflow:hidden}.sb-plan{position:absolute;top:0;bottom:0;background:color-mix(in srgb,var(--c) 18%,transparent);border-left:1px dashed var(--c);border-right:1px dashed var(--c)}.sb-session{position:absolute;top:3px;bottom:3px;border-radius:4px;background:var(--c);opacity:.9}.sb-session.running{animation:blink 1.6s infinite}.sb-now{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:#f43f5e}.trk-badge{font-size:9px;padding:1px 5px;border-radius:4px;letter-spacing:.05em}.trk-badge.running{background:var(--success);color:#fff;animation:blink 1.6s infinite}.trk-badge.paused{background:color-mix(in srgb,var(--warning) 25%,transparent);color:var(--warning)}.form label.check-row{flex-direction:row;align-items:flex-start;gap:10px;cursor:pointer;color:var(--text)}.check-row input{width:auto;margin-top:3px}.check-row small{display:block}.task-list li.task-row.sub{margin-left:34px;position:relative;padding-top:6px;padding-bottom:6px;font-size:14px}.task-list li.task-row.sub:before{content:"";position:absolute;left:-18px;top:-6px;bottom:50%;width:12px;border-left:1.5px solid var(--border);border-bottom:1.5px solid var(--border);border-bottom-left-radius:6px}.task-list li.task-row.muted{opacity:.6}.task-row .task-title{flex:1;min-width:0}.parent-crumb{color:var(--muted);font-size:12px;margin-right:2px}.expand-btn{width:22px;height:22px;flex-shrink:0;border:none;background:transparent;color:var(--muted);cursor:pointer;border-radius:6px;font-size:12px;transition:transform .2s,background .15s}.expand-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.expand-btn.open{transform:rotate(90deg)}.expand-btn.no-subs{visibility:hidden}.drag-handle{cursor:grab;color:var(--muted);opacity:0;font-size:12px;letter-spacing:-2px;padding:0 2px;-webkit-user-select:none;user-select:none;transition:opacity .15s}.task-row:hover .drag-handle{opacity:.8}.task-row[draggable=true]{cursor:grabbing}.task-list li.drop-before{box-shadow:0 -2px 0 0 var(--primary)}.task-list li.drop-after{box-shadow:0 2px 0 0 var(--primary)}.row-actions{display:flex;align-items:center;gap:2px}.row-actions .icon-btn{opacity:0;transition:opacity .15s}.task-row:hover .row-actions .icon-btn,.row-actions .icon-btn:focus-visible{opacity:1}.sub-progress{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;font-size:12px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}.sub-progress-bar{display:inline-block;width:46px;height:5px;border-radius:999px;background:var(--surface-3);overflow:hidden}.sub-progress-bar>span{display:block;height:100%;border-radius:inherit;background:var(--primary);transition:width .4s}.sub-progress.complete{color:var(--success)}.sub-progress.complete .sub-progress-bar>span{background:var(--success)}.add-sub-row{background:transparent!important;border:1px dashed var(--border)!important}.add-sub{display:flex;gap:8px;width:100%;align-items:center}.add-sub input{padding:6px 10px}.move-label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:13px}@media (max-width: 720px){.row-actions .icon-btn,.drag-handle{opacity:1}.task-list li.task-row.sub{margin-left:18px}.sub-progress-bar{display:none}}.note-btn{display:inline-flex;align-items:center;gap:3px;flex-shrink:0;height:28px;padding:0 7px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;font:inherit;font-size:13px;opacity:.55;transition:.15s}.note-btn:hover,.note-btn.has{opacity:1}.note-btn:hover{background:var(--surface-3)}.note-btn.has{border-color:var(--border);color:var(--text);font-weight:600}.note-btn span{font-size:12px}.md-editor{display:flex;flex-direction:column;gap:6px}.md-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.md-tabs{margin:0}.md-tabs button{padding:5px 12px;font-size:13px}.md-tools{display:flex;gap:2px;flex-wrap:wrap}.md-tool{min-width:30px;height:30px;padding:0 6px;border-radius:7px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;font:inherit;font-size:13px;font-weight:600;transition:.15s}.md-tool:hover{background:var(--surface-3);color:var(--text)}.md-tool.italic{font-style:italic;font-family:Georgia,serif}.md-tool.strike{text-decoration:line-through}.md-tool.code,.md-tool.codeBlock{font-family:ui-monospace,Menlo,monospace;font-size:12px}.md-editor textarea{resize:vertical;min-height:110px;line-height:1.55;font-size:14px}.md-preview{min-height:110px;padding:10px 12px;border:1px dashed var(--border);border-radius:10px}.md-hint{font-size:12px}.md{line-height:1.6;font-size:14px;overflow-wrap:anywhere;color:var(--text)}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p,.md ul,.md ol,.md blockquote,.md pre{margin:0 0 8px}.md h3,.md h4,.md h5{margin:12px 0 6px;line-height:1.3}.md h3{font-size:17px}.md h4{font-size:15px}.md h5{font-size:14px;color:var(--muted)}.md ul,.md ol{padding-left:22px}.md li.md-task{list-style:none;margin-left:-20px}.md li.md-task.checked{color:var(--muted);text-decoration:line-through}.md li.md-task input{width:auto;margin:0 4px 0 0;vertical-align:-2px;accent-color:var(--success)}.md code{font-family:ui-monospace,Menlo,monospace;font-size:.88em;padding:1px 5px;border-radius:5px;background:var(--surface-3)}.md pre{padding:10px 12px;border-radius:10px;background:var(--surface-3);overflow-x:auto}.md pre code{padding:0;background:none;font-size:13px}.md blockquote{padding:4px 12px;border-left:3px solid var(--c, var(--primary));color:var(--muted)}.md a{color:var(--primary)}.md hr{border:none;border-top:1px solid var(--border);margin:12px 0}.note{padding:12px 14px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--c, var(--primary))}.note-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:6px}.note-head .actions{display:flex;opacity:0;transition:opacity .15s}.note:hover .note-head .actions,.note-head .actions:focus-within{opacity:1}.note-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.note-time{font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.note-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;background:var(--surface-3);color:var(--muted);text-decoration:none;font-size:12px}a.note-chip:hover{color:var(--text)}.note-task{color:var(--text);font-weight:550}.note-edit-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:8px}.note-edit-actions .muted{margin-right:auto}.notes-modal{display:flex;flex-direction:column;gap:16px}.note-new{padding-bottom:16px;border-bottom:1px solid var(--border)}.notes-list{display:flex;flex-direction:column;gap:10px}.empty-notes{text-align:center;padding:18px}.notes-page{max-width:900px;margin:0 auto}.notes-filters{margin-bottom:18px}.notes-filters .tabs{margin-top:0}.filter-row{display:grid;grid-template-columns:2fr 1.3fr 1fr 1fr;gap:10px}.notes-day{margin-bottom:22px}.notes-day-title{margin:0 0 10px;font-size:15px}@media (max-width: 720px){.filter-row{grid-template-columns:1fr 1fr}.filter-row input[type=search]{grid-column:1 / -1}.note-head .actions{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%{box-shadow:0 0 #f43f5eb3}to{box-shadow:0 0 0 10px #f43f5e00}}@keyframes pulse-scale{50%{transform:scale(1.04)}}@keyframes glow{50%{box-shadow:0 0 22px color-mix(in srgb,var(--c) 55%,transparent)}}@keyframes blink{50%{opacity:.45}}@keyframes float{50%{transform:translateY(-6px)}}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.tab-bar,.show-sm{display:none}@media (max-width: 1100px){.hide-md{display:none}}@media (max-width: 1000px){.plan-grid{display:flex;flex-direction:column}.plan-main{width:100%}.side{display:contents}.side>.now-card{order:-2;width:100%}.plan-main{order:-1}.side>.stats,.side>.card{width:100%}.now-card .tracking.dup{display:none}}@media (max-width: 720px){body{font-size:15px}.container{padding:14px 12px calc(84px + env(safe-area-inset-bottom))}.card{padding:14px;border-radius:12px}h1{font-size:20px}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px}.status-select{font-size:13px;padding:6px 8px}.topbar{gap:10px;padding:10px 12px;padding-top:calc(10px + env(safe-area-inset-top));justify-content:space-between}.brand{font-size:17px}.hide-sm{display:none}.show-sm{display:inline}.logout-btn{padding:5px 9px;font-size:15px}.lang-switch button{padding:4px 6px}.topbar .main-nav{display:none}.tab-bar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:var(--topbar-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--border)}.tab-bar a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;min-width:0;color:var(--muted);font-size:11px;font-weight:600;border-radius:10px;transition:.2s}.tab-bar a.active{background:color-mix(in srgb,var(--primary) 18%,transparent);color:var(--text)}.tab-ico{font-size:20px;line-height:1.15}.tab-label{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-head{margin-bottom:14px;gap:12px}.page-head>div:first-child{width:100%}.head-actions,.day-progress{width:100%}.toasts{left:12px;right:12px;width:auto;bottom:calc(80px + env(safe-area-inset-bottom))}.modal-backdrop{padding:0;place-items:end stretch}.modal{max-width:none!important;max-height:92vh;border-radius:18px 18px 0 0;border-bottom:none}.modal-body{padding:16px}.modal-head{padding:14px 16px}.modal-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.modal-foot .btn{flex:1;padding:11px 12px}.modal-enter-from .modal,.modal-leave-to .modal{transform:translateY(40px)}.plan-head-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.plan-head-actions .btn-group{display:grid;grid-template-columns:44px 1fr 44px}.plan-head-actions .date-input{width:100%}.plan-head-actions>.btn{padding:10px 8px}.week-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:14px}.week-day{padding:8px 4px;gap:5px;align-items:center;border-radius:10px}.week-day:hover{transform:none}.wd-top{flex-direction:column;align-items:center;gap:0;font-size:11px}.wd-top b{font-size:16px}.wd-bar{width:100%;height:4px}.week-day small{display:none}.timeline-card{margin-bottom:14px}.timeline-card .card-head{flex-direction:column;gap:2px;margin-bottom:10px}.timeline-scroll{margin:0 -14px;padding:0 14px 6px}.now-card{gap:14px}.stats{grid-template-columns:repeat(2,1fr);gap:10px}.stat{padding:12px}.plan-detail .card-head{flex-wrap:wrap}.task-list li.task-row{flex-wrap:wrap;row-gap:4px;column-gap:8px;padding:8px 10px}.task-list li.task-row>.task-title,.task-list li.task-row>.inline-edit{flex:1 1 0;min-width:0}.task-list li.task-row:after{content:"";flex-basis:100%;order:1}.task-list li.task-row>:is(.sub-progress,.row-actions,.status-select,.icon-btn){order:2}.task-list li.task-row>.sub-progress{margin-left:auto}.task-list li.task-row>.row-actions:not(.sub-progress~*){margin-left:auto}.task-list li.task-row>.status-select:not(.sub-progress~*):not(.row-actions~*){margin-left:auto}.task-list li.task-row .icon-btn{width:30px;height:30px}.task-list li.task-row .status-select{max-width:104px}.note-btn{padding:0 5px}input[type=checkbox]{width:20px;height:20px}.project-grid{grid-template-columns:1fr;gap:12px}.project-card:hover{transform:none}.add-task{flex-wrap:wrap}.add-task input{flex:1 1 100%}.add-task .btn{flex:1}}@media (max-width: 640px){.now-card,.donut{flex-direction:column}.now-info{width:100%;text-align:center}.now-info h2,.next-up{justify-content:center}.now-card .tracking{text-align:left}}.prefs{display:flex;align-items:center;gap:6px}.lang-switch{display:flex;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:2px}.lang-switch button{background:transparent;border:none;color:var(--muted);font:inherit;font-size:12px;font-weight:650;padding:4px 8px;border-radius:7px;cursor:pointer;transition:.2s}.lang-switch button.active{background:var(--primary);color:#fff}.theme-btn{font-size:16px}.auth-prefs{position:absolute;top:20px;right:20px;z-index:1}.theme-tabs{margin:0}[data-theme=light] .auth-glow{opacity:.25}[data-theme=light] .tl-hour{border-left-color:var(--surface-3)}
