:root{--bg: #f3f5fb;--panel: #ffffff;--panel-2: #f8f9fe;--border: #e6e9f4;--border-strong: #d6dbeb;--text: #1b2240;--text-2: #5b6484;--text-3: #98a0b8;--primary: #4f5ae8;--primary-2: #6d5df0;--primary-soft: #eef0ff;--success: #18a06a;--success-soft: #e6f7f0;--warning: #e8930c;--warning-soft: #fdf3e2;--danger: #e5484d;--danger-soft: #fdebec;--shadow-sm: 0 1px 2px rgba(27, 34, 64, .05);--shadow-md: 0 4px 16px rgba(27, 34, 64, .08);--shadow-lg: 0 16px 48px rgba(27, 34, 64, .16);--radius: 14px;--radius-sm: 10px;--radius-xs: 8px;--sidebar-w: 312px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,select,textarea{font-family:inherit;font-size:14px;color:var(--text);outline:none}a{color:var(--primary);text-decoration:none}::selection{background:var(--primary-soft)}.app-shell{display:flex;height:100vh;overflow:hidden}.main{flex:1;min-width:0;display:flex;flex-direction:column;background:radial-gradient(1100px 420px at 85% -10%,rgba(109,93,240,.1),transparent 60%),radial-gradient(900px 380px at 20% 110%,rgba(79,90,232,.07),transparent 55%),var(--bg)}.main-scroll{flex:1;overflow-y:auto;padding:28px 36px 64px}.main-inner{max-width:1080px;margin:0 auto}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:22px 20px 18px;border-bottom:1px solid var(--border)}.brand-logo{width:42px;height:42px;border-radius:12px;flex-shrink:0;background:linear-gradient(135deg,var(--primary),var(--primary-2));display:grid;place-items:center;font-size:21px;box-shadow:0 6px 16px #4f5ae859}.brand-name{font-size:17px;font-weight:700;letter-spacing:.2px}.brand-sub{font-size:11.5px;color:var(--text-3);margin-top:1px;letter-spacing:.4px}.side-nav{padding:14px 14px 6px;display:flex;flex-direction:column;gap:4px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);color:var(--text-2);font-size:13.5px;font-weight:500;transition:all .15s;border:1px solid transparent;width:100%;text-align:left}.nav-item:hover{background:var(--panel-2);color:var(--text)}.nav-item.active{background:var(--primary-soft);color:var(--primary);font-weight:600;border-color:#4f5ae82e}.nav-item .nav-icon{width:20px;text-align:center;font-size:15px}.nav-item .nav-badge{margin-left:auto;font-size:11px;font-weight:600;color:var(--text-3);background:var(--panel-2);border-radius:999px;padding:1px 8px}.nav-item.active .nav-badge{background:#fff;color:var(--primary)}.overview-card{margin:12px 16px 4px;padding:14px 16px;background:linear-gradient(135deg,#f0f1ff,#f6f2ff);border:1px solid #e4e5fb;border-radius:var(--radius)}.overview-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px}.overview-title{font-size:12px;color:var(--text-2);font-weight:600}.overview-pct{font-size:19px;font-weight:800;color:var(--primary);font-variant-numeric:tabular-nums}.overview-meta{margin-top:8px;font-size:11.5px;color:var(--text-3);display:flex;gap:12px}.side-section-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 8px;font-size:12px;font-weight:700;color:var(--text-3);letter-spacing:.8px}.side-add-btn{font-size:11.5px;font-weight:600;color:var(--primary);background:var(--primary-soft);padding:3px 10px;border-radius:999px}.side-add-btn:hover{background:#e2e5ff}.goal-list{flex:1;overflow-y:auto;padding:2px 12px 16px;display:flex;flex-direction:column;gap:8px}.goal-card{padding:12px 13px 11px;border-radius:var(--radius);border:1px solid var(--border);background:var(--panel);cursor:pointer;transition:all .15s;position:relative}.goal-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.goal-card.active{border-color:var(--primary);background:#fbfbff;box-shadow:0 0 0 3px #4f5ae81f,var(--shadow-sm)}.goal-card.dragging{opacity:.45}.goal-card.drag-over{border-top:2px solid var(--primary)}.goal-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}.goal-emoji{font-size:17px}.goal-name{font-size:13.5px;font-weight:650;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.goal-days{font-size:10.5px;font-weight:600;padding:1px 7px;border-radius:999px;flex-shrink:0;background:var(--panel-2);color:var(--text-3)}.goal-days.warn{background:var(--warning-soft);color:var(--warning)}.goal-days.over{background:var(--danger-soft);color:var(--danger)}.goal-sub{font-size:11px;color:var(--text-3);margin-bottom:7px;display:flex;justify-content:space-between}.goal-drag{position:absolute;left:-4px;top:50%;transform:translateY(-50%);opacity:0;color:var(--text-3);font-size:13px;cursor:grab;padding:4px 2px;transition:opacity .15s}.goal-card:hover .goal-drag{opacity:.7}.progress-track{height:6px;border-radius:999px;background:#edf0f8;overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),var(--primary-2));transition:width .55s cubic-bezier(.22,1,.36,1)}.progress-fill.sm{height:5px}.side-footer{border-top:1px solid var(--border);padding:12px 16px;display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,#6d5df0,#4f5ae8);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700}.user-info{flex:1;min-width:0}.user-name{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:10.5px;color:var(--text-3)}.logout-btn{font-size:11px;color:var(--text-3);padding:4px 8px;border-radius:6px}.logout-btn:hover{background:var(--danger-soft);color:var(--danger)}.btn{display:inline-flex;align-items:center;gap:6px;justify-content:center;padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;transition:all .15s;border:1px solid transparent;white-space:nowrap}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 2px 8px #4f5ae84d}.btn-primary:hover{background:var(--primary-2);transform:translateY(-1px)}.btn-ghost{background:var(--panel);border-color:var(--border);color:var(--text-2)}.btn-ghost:hover{border-color:var(--border-strong);color:var(--text);background:var(--panel-2)}.btn-danger-ghost{background:transparent;color:var(--danger)}.btn-danger-ghost:hover{background:var(--danger-soft)}.btn-sm{padding:5px 11px;font-size:12px;border-radius:var(--radius-xs)}.btn-icon{width:30px;height:30px;padding:0;border-radius:var(--radius-xs);display:inline-grid;place-items:center;color:var(--text-3);font-size:14px}.btn-icon:hover{background:var(--panel-2);color:var(--text)}.pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;background:var(--panel-2);color:var(--text-2)}.pill.type-count{background:var(--primary-soft);color:var(--primary)}.pill.type-check{background:var(--success-soft);color:var(--success)}.pill.week,.pill.note-pill{background:transparent;color:#a9b0c4;font-weight:500;font-size:10px;padding:1px 4px}.pill.note-pill{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill.done{background:var(--success-soft);color:var(--success)}.project-header{margin-bottom:22px}.ph-title-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}.ph-emoji{width:46px;height:46px;border-radius:13px;font-size:23px;display:grid;place-items:center;background:var(--panel);border:1px solid var(--border)}.ph-name-text{font-size:25px;font-weight:800;letter-spacing:.2px;padding:2px 0;min-width:120px;max-width:520px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ph-actions{margin-left:auto;display:flex;gap:8px;align-items:center}.color-dots{display:flex;gap:6px;margin-left:4px}.color-dot{width:16px;height:16px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:transform .12s}.color-dot:hover{transform:scale(1.18)}.color-dot.active{border-color:var(--text);transform:scale(1.12)}.motto-bar{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;color:var(--text-2);font-size:13px;margin-bottom:18px}.motto-text{color:var(--text-2);font-size:13px}.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:26px}.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:15px 17px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;right:-18px;top:-18px;width:64px;height:64px;border-radius:50%;background:var(--primary-soft);opacity:.6}.stat-label{font-size:11.5px;color:var(--text-3);font-weight:600;letter-spacing:.3px}.stat-value{font-size:23px;font-weight:800;margin-top:3px;font-variant-numeric:tabular-nums;letter-spacing:-.3px}.stat-value small{font-size:12px;font-weight:600;color:var(--text-3);margin-left:3px}.stat-sub{font-size:11px;color:var(--text-3);margin-top:2px}.stat-card.core{background:linear-gradient(180deg,#4f5ae80e,#4f5ae805);border-color:#4f5ae824}.stat-card.core .stat-value{font-size:30px;color:var(--primary)}.stat-card.core .stat-value small{color:var(--primary);opacity:.55}.stat-card.core .stat-label{color:var(--primary);opacity:.75}.stat-card.core .stat-value.warn,.stat-card.core .stat-value.warn small{color:var(--warning)}.stat-card.core .stat-value.danger,.stat-card.core .stat-value.danger small{color:var(--danger)}.stat-card.aux .stat-value{font-size:17px;font-weight:700;color:var(--text-2)}.stat-card.aux .stat-value small{font-size:11px}.stat-card.aux .stat-label{color:var(--text-3);opacity:.85}.stat-card.aux:after{opacity:.3}.stat-card.aux.tip{cursor:help}.section-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.8px;color:var(--text-3);margin:26px 0 12px}.section-title:after{content:"";flex:1;height:1px;background:var(--border)}.phase-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .15s}.phase-card.dragging{opacity:.45}.phase-card.drag-over{border-top:2px solid var(--primary)}.phase-head{display:flex;align-items:center;gap:14px;padding:14px 18px 12px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#fcfcff,var(--panel))}.phase-title-line{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.phase-title-text{min-width:0}.phase-actions{display:flex;gap:2px}.phase-drag{cursor:grab;color:var(--text-3);font-size:14px;opacity:.55;padding:2px}.phase-drag:hover{opacity:1}.phase-index{width:24px;height:24px;border-radius:7px;flex-shrink:0;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-size:11px;font-weight:800}.phase-name{font-size:15px;font-weight:700}.phase-range{font-size:11.5px;color:var(--text-3)}.phase-progress{display:flex;align-items:center;gap:10px;flex-shrink:0}.phase-progress .progress-track{width:300px}.phase-pct{font-size:12px;font-weight:700;color:var(--text-2);font-variant-numeric:tabular-nums;min-width:38px}.task-list{padding:6px 10px 10px}.task-row{display:flex;align-items:center;gap:24px;padding:9px 10px;border-radius:var(--radius-sm);transition:background .12s;border:1px solid transparent}.task-row:hover{background:var(--panel-2);border-color:var(--border)}.task-row.dragging{opacity:.4}.task-row.drag-over{border-top:2px solid var(--primary)}.task-row.done .task-name{color:var(--text-3);text-decoration:line-through;text-decoration-color:var(--border-strong)}.task-check{width:19px;height:19px;border-radius:50%;flex-shrink:0;border:1.8px solid var(--border-strong);cursor:pointer;display:grid;place-items:center;transition:all .18s cubic-bezier(.34,1.56,.64,1);font-size:11px;color:transparent;background:var(--panel)}.task-check:hover{border-color:var(--primary)}.task-check:active{transform:scale(.9)}.task-check.checked{background:var(--success);border-color:var(--success);color:#fff}.task-check.pop{animation:popCheck .35s ease-out}.task-drag{cursor:grab;color:var(--text-3);font-size:12px;opacity:0;padding:2px}.task-row:hover .task-drag{opacity:.5}.task-main{flex:1;min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.task-name{font-size:13.5px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}.task-meta{display:flex;align-items:center;gap:7px;margin-top:3px;flex-wrap:wrap}.count-box{display:flex;align-items:center;gap:4px;flex-shrink:0}.count-btn{width:24px;height:24px;border-radius:7px;border:1px solid var(--border-strong);background:var(--panel);color:var(--text-2);font-size:14px;font-weight:600;display:grid;place-items:center;line-height:1;transition:all .16s cubic-bezier(.34,1.56,.64,1)}.count-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.count-btn:active{transform:scale(.92)}.count-val{font-size:13px;font-weight:600;min-width:76px;text-align:center;font-variant-numeric:tabular-nums;color:var(--text-3);padding:2px 6px;border-radius:7px;cursor:text;transition:background .15s;-webkit-user-select:none;user-select:none;white-space:nowrap}.count-val:hover{background:var(--primary-soft)}.count-val b{color:var(--text);font-size:18px;font-weight:800;display:inline-block;letter-spacing:-.2px}.count-inline-input{width:78px;text-align:center;padding:3px 6px;border-radius:7px;border:1.5px solid var(--primary);font-size:15px;font-weight:800;color:var(--primary);background:var(--panel);font-variant-numeric:tabular-nums;outline:none}.count-bar-wrap{width:80px;flex-shrink:0}.task-actions{display:flex;gap:2px;opacity:0;transition:opacity .12s}.task-row:hover .task-actions{opacity:1}.add-row{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px;margin:4px 0 2px;border-radius:var(--radius-sm);color:var(--text-3);font-size:12.5px;font-weight:600;border:1px dashed var(--border-strong);background:transparent}.add-row:hover{color:var(--primary);border-color:var(--primary);background:var(--primary-soft)}.add-phase-card{width:100%;padding:16px;border-radius:var(--radius);border:1.5px dashed var(--border-strong);color:var(--text-3);font-size:13.5px;font-weight:600;background:transparent}.add-phase-card:hover{color:var(--primary);border-color:var(--primary);background:#4f5ae80a}.week-header{display:flex;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}.week-nav{display:flex;align-items:center;gap:4px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px}.week-nav button{padding:7px 12px;border-radius:var(--radius-xs);font-size:13px;font-weight:600;color:var(--text-2)}.week-nav button:hover{background:var(--panel-2);color:var(--text)}.week-nav .wk-title{padding:7px 16px;font-size:14.5px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;min-width:172px;text-align:center}.week-legend{font-size:11.5px;color:var(--text-3);margin-left:auto;display:flex;gap:14px}.week-summary{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:12px;margin-bottom:24px}.week-summary .stat-card.hero{background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;border:none}.week-summary .stat-card.hero:after{background:#ffffff24}.week-summary .stat-card.hero .stat-label{color:#ffffffc7}.week-summary .stat-card.hero .stat-sub{color:#ffffffb3}.week-summary .stat-card.hero .progress-track{background:#ffffff40;margin-top:10px}.week-summary .stat-card.hero .progress-fill{background:#fff}.week-project{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;box-shadow:var(--shadow-sm);overflow:hidden}.week-project-head{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#fcfcff,var(--panel));cursor:pointer}.week-project-head:hover{background:var(--panel-2)}.wp-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.wp-name{font-size:14px;font-weight:700}.wp-stats{margin-left:auto;font-size:11.5px;color:var(--text-3);display:flex;gap:12px;align-items:center}.empty-state{text-align:center;padding:56px 20px;color:var(--text-3)}.empty-icon{width:72px;height:72px;margin:0 auto 16px;border-radius:22px;background:var(--panel);border:1px solid var(--border);display:grid;place-items:center;font-size:32px}.empty-title{font-size:15px;font-weight:700;color:var(--text-2);margin-bottom:6px}.empty-desc{font-size:12.5px;margin-bottom:18px}.login-wrap{display:flex;height:100vh;overflow:hidden}.login-visual{flex:1.15;position:relative;overflow:hidden;background:linear-gradient(150deg,#4f5ae8,#6d5df0 48%,#8b73ff);color:#fff;padding:64px 56px;display:flex;flex-direction:column}.login-visual:before{content:"";position:absolute;right:-120px;top:-120px;width:420px;height:420px;border-radius:50%;background:#ffffff1a}.login-visual:after{content:"";position:absolute;left:-80px;bottom:-140px;width:380px;height:380px;border-radius:50%;background:#ffffff14}.lv-brand{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.lv-logo{width:46px;height:46px;border-radius:13px;background:#ffffff2e;display:grid;place-items:center;font-size:23px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.lv-title{font-size:44px;font-weight:900;line-height:1.22;margin:46px 0 16px;position:relative;z-index:1;letter-spacing:1px}.lv-desc{font-size:15.5px;opacity:.92;line-height:1.9;max-width:420px;position:relative;z-index:1}.lv-features{margin-top:38px;display:flex;flex-direction:column;gap:13px;position:relative;z-index:1}.lv-feature{display:flex;align-items:center;gap:11px;font-size:13.5px;opacity:.95;background:#ffffff1c;padding:11px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.14);max-width:400px}.lv-feature .fe-ic{font-size:17px}.login-side{width:460px;flex-shrink:0;background:var(--panel);display:flex;align-items:center;justify-content:center;padding:40px;border-left:1px solid var(--border)}.login-card{width:100%;max-width:360px}.login-tabs{display:flex;background:var(--panel-2);border-radius:var(--radius-sm);padding:4px;margin-bottom:26px}.login-tab{flex:1;padding:8px 0;text-align:center;border-radius:var(--radius-xs);font-size:13px;font-weight:600;color:var(--text-3);transition:all .15s}.login-tab.active{background:var(--panel);color:var(--text);box-shadow:var(--shadow-sm)}.login-h{font-size:21px;font-weight:800;margin-bottom:6px}.login-sub{font-size:12.5px;color:var(--text-3);margin-bottom:22px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:600;color:var(--text-2);margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:10px 13px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--panel);transition:all .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.field .hint{font-size:11px;color:var(--text-3);margin-top:5px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.login-err{background:var(--danger-soft);color:var(--danger);font-size:12px;padding:9px 12px;border-radius:var(--radius-sm);margin-bottom:14px;display:none}.login-err.show{display:block}.login-submit{width:100%;padding:11px;font-size:14px;margin-top:6px}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#12162e73;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .18s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--panel);border-radius:18px;width:480px;max-width:calc(100vw - 40px);max-height:calc(100vh - 60px);overflow-y:auto;box-shadow:var(--shadow-lg);animation:slideUp .22s cubic-bezier(.22,1,.36,1)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 4px}.modal-title{font-size:17px;font-weight:800}.modal-body{padding:16px 24px 8px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:12px 24px 22px}.modal.wide{width:560px}.emoji-grid{display:flex;flex-wrap:wrap;gap:6px}.emoji-item{width:36px;height:36px;border-radius:9px;font-size:19px;display:grid;place-items:center;border:1.5px solid var(--border);transition:all .12s}.emoji-item:hover{border-color:var(--border-strong);transform:scale(1.1)}.emoji-item.active{border-color:var(--primary);background:var(--primary-soft)}.type-choose{display:flex;gap:10px}.type-opt{flex:1;padding:12px 14px;border-radius:var(--radius-sm);border:1.5px solid var(--border);cursor:pointer;transition:all .15s}.type-opt:hover{border-color:var(--border-strong)}.type-opt.active{border-color:var(--primary);background:var(--primary-soft)}.type-opt .to-name{font-size:13px;font-weight:700}.type-opt .to-desc{font-size:11px;color:var(--text-3);margin-top:2px}#toast-root{position:fixed;top:22px;right:22px;z-index:200;display:flex;flex-direction:column;gap:10px}.toast{background:var(--text);color:#fff;font-size:13px;font-weight:550;padding:11px 18px;border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);animation:slideLeft .25s ease;display:flex;align-items:center;gap:8px;max-width:340px}.toast.success{background:var(--success)}.toast.error{background:var(--danger)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}@keyframes slideLeft{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}@keyframes popCheck{0%{transform:scale(.85)}60%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes numPop{0%{transform:scale(1)}45%{transform:scale(1.14)}to{transform:scale(1)}}.task-row.just-updated,.task-row.just-done{border-radius:var(--radius-sm)}.count-val b.pop{animation:numPop .4s ease-out}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#d3d8e8;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#bfc6dc}::-webkit-scrollbar-track{background:transparent}@media(max-width:1120px){.stat-strip,.week-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.login-visual{display:none}.login-side{width:100%}.sidebar{position:fixed;z-index:50;transform:translate(-100%);transition:transform .25s}.sidebar.open{transform:none}}
