:root{--bg:#2a1822;--surface:#3a2230;--surface-2:#48293c;--border:#5a3349;--text:#ffeede;--text-dim:#d3a9b8;--accent:#ff8a5c;--accent-2:#ffd166;--warn:#ffd166;--danger:#ff5f6d;--good:#1fae76;--on-accent:#0b0d12;--radius:12px;--shadow:0 1px 3px #00000073;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}[data-theme=dark]{--bg:#0f1115;--surface:#181b22;--surface-2:#20242e;--border:#2a2f3a;--text:#e7eaf0;--text-dim:#9aa3b2;--accent:#6ea8fe;--accent-2:#57d9a3;--warn:#f0a35e;--danger:#f06a6a;--on-accent:#0b0d12;--shadow:0 1px 3px #0006}[data-theme=light]{--bg:#f4f6fa;--surface:#fff;--surface-2:#eef1f6;--border:#d9dee7;--text:#1b2230;--text-dim:#5d6675;--accent:#2f6df0;--accent-2:#1aa06b;--warn:#c9762a;--danger:#d23b3b;--on-accent:#fff;--shadow:0 1px 3px #141e3214}[data-theme=synthwave]{--bg:#1a1033;--surface:#241546;--surface-2:#2e1a57;--border:#3d2a6b;--text:#f5e9ff;--text-dim:#b39ddb;--accent:#ff5fae;--accent-2:#36e2ec;--warn:#ffb454;--danger:#ff5f6d;--shadow:0 1px 3px #00000080}[data-theme=forest]{--bg:#0e1b14;--surface:#13261c;--surface-2:#1a3327;--border:#244736;--text:#e7f3ea;--text-dim:#9bbfa8;--accent:#5fd0a0;--accent-2:#e0b15c;--warn:#e0b15c;--danger:#e6736b;--shadow:0 1px 3px #00000073}[data-theme=solarized]{--bg:#002b36;--surface:#073642;--surface-2:#0a4250;--border:#0f5160;--text:#eee8d5;--text-dim:#93a1a1;--accent:#268bd2;--accent-2:#859900;--warn:#b58900;--danger:#dc322f;--on-accent:#fff;--shadow:0 1px 3px #0006}[data-theme=sunset]{--bg:#2a1822;--surface:#3a2230;--surface-2:#48293c;--border:#5a3349;--text:#ffeede;--text-dim:#d3a9b8;--accent:#ff8a5c;--accent-2:#ffd166;--warn:#ffd166;--danger:#ff5f6d;--shadow:0 1px 3px #00000073}.chart-reveal{animation:1.1s ease-out both chart-reveal}@keyframes chart-reveal{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@media (prefers-reduced-motion:reduce){.chart-reveal{animation:none}}.toast-wrap{z-index:1000;flex-direction:column;gap:8px;max-width:360px;display:flex;position:fixed;bottom:18px;right:18px}.toast{background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--accent-2);color:var(--text);cursor:pointer;border-radius:10px;align-items:center;gap:9px;padding:10px 14px;font-size:13px;animation:.18s toast-in;display:flex;box-shadow:0 6px 24px #0000004d}.toast-error{border-left-color:var(--danger)}.toast-info{border-left-color:var(--accent)}.toast-msg{flex:1;min-width:0}.toast-action{border:1px solid color-mix(in srgb, var(--accent) 50%, var(--border));color:var(--accent);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;padding:4px 10px;font-size:12px;font-weight:600;transition:background .12s,border-color .12s}.toast-action:hover{background:color-mix(in srgb, var(--accent) 14%, transparent);border-color:var(--accent)}.toast-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-right:-4px;padding:4px;display:inline-flex}.toast-close:hover{background:var(--surface);color:var(--text)}.toast-icon{align-items:center;display:inline-flex}.toast-success .toast-icon{color:var(--accent-2)}.toast-error .toast-icon{color:var(--danger)}.toast-info .toast-icon{color:var(--accent)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (width<=520px){.toast-wrap{max-width:none;bottom:12px;left:12px;right:12px}}.theme-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;display:grid}.theme-swatch{border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:10px;flex-direction:column;gap:8px;padding:10px;transition:border-color .12s,transform 80ms;display:flex}.theme-swatch:hover{border-color:var(--accent);transform:translateY(-2px)}.theme-swatch.active{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:-1px}.swatch-bars{border:1px solid var(--border);border-radius:6px;height:30px;display:flex;overflow:hidden}.swatch-bars span{flex:1}.swatch-label{align-items:center;gap:4px;font-size:13px;font-weight:600;display:inline-flex}.swatch-label svg{color:var(--accent-2)}*{box-sizing:border-box}html,body{overflow-x:clip}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0}button,input,select{font-family:inherit}input[type=checkbox]{appearance:none;border:1.5px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:5px;flex-shrink:0;width:20px;height:20px;margin:0;transition:background .12s,border-color .12s;position:relative}input[type=checkbox]:hover{border-color:var(--accent)}input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:checked:after{content:"";border:solid var(--on-accent);border-width:0 2px 2px 0;width:5px;height:9px;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.app{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:4px;width:220px;height:100vh;padding:20px 12px;display:flex;position:sticky;top:0}.sidebar h1{letter-spacing:-.02em;margin:4px 8px 18px;font-size:18px}.sidebar .brand-sub{color:var(--text-dim);margin-top:2px;font-size:11px;font-weight:400;display:block}.nav-btn{text-align:left;width:100%;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;transition:background .12s,color .12s;display:flex}.nav-btn:hover{background:var(--surface-2);color:var(--text)}.nav-btn.active{background:var(--accent);color:var(--on-accent);font-weight:600}.nav-icon{flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.nav-icon svg{display:block}.nav-label-short{display:none}.save-dot{background:var(--accent-2);border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.save-dot.ok{background:var(--accent-2)}.save-dot.busy{background:var(--accent)}.save-dot.bad{background:var(--danger)}.save-dot.off{background:var(--text-dim)}.sync-status{width:100%;color:var(--text-dim);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-size:12px;transition:background .12s,color .12s;display:flex}.sync-status:hover{background:var(--surface-2);color:var(--text)}.status-dot{vertical-align:middle;vertical-align:middle;background:currentColor;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:28px 36px 60px}.page-head{margin-bottom:24px}.page-head h2{letter-spacing:-.02em;margin:0 0 4px;font-size:24px}.page-head p{color:var(--text-dim);margin:0;font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.card h3{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin:0 0 14px;font-size:14px;font-weight:600}.card-head{flex-wrap:wrap;align-items:center;gap:10px 12px;margin-bottom:14px;display:flex}.card-head h3{min-width:min(100%, max-content);margin:0}.card-head-right{align-items:center;gap:12px;margin-left:auto;display:flex}.grid{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.t-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.t-scroll table{min-width:480px}.t-scroll.wide table{min-width:660px}.section-hide-note{text-align:center;margin-top:20px}@media (width<=560px){.editable-list.t-scroll{overflow-x:visible}.editable-list table,.t-scroll.wide.editable-list table{min-width:0}.editable-list thead{display:none}.editable-list tbody,.editable-list tr,.editable-list td{display:block}.editable-list tr{border-bottom:1px solid var(--border);grid-template-columns:1fr 1fr;gap:10px 12px;padding:14px 0;display:grid;position:relative}.editable-list tr:last-child{border-bottom:none}.editable-list td{border:none;padding:0}.editable-list td.num{text-align:left}.editable-list td[data-label]:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);opacity:.85;margin-bottom:4px;font-size:10px;display:block}.editable-list td.cell-main{grid-column:1/-1}.editable-list td.cell-main:before{display:none}.editable-list td.cell-check{align-items:center;gap:8px;display:flex}.editable-list td.cell-check:before{margin-bottom:0}.editable-list td.cell-check:has(+td.cell-check){grid-column:1}.editable-list td.cell-check+td.cell-check{grid-column:2}.editable-list td:not(.cell-check):has(+td.cell-check+td.cell-check){grid-column:1/-1}.editable-list tr:has(>.cell-drag) td.cell-main{padding-left:44px}.editable-list tr:has(>.cell-delete) td.cell-main{padding-right:44px}.editable-list td.cell-delete{width:auto;position:absolute;top:8px;right:0}.editable-list td.cell-drag{width:auto;padding:0;position:absolute;top:8px;left:0}.editable-list td[colspan]{grid-column:1/-1;padding:4px 0}.editable-list td:empty{display:none}.editable-list td.cell-main>span,.editable-list td.cell-main>.src-link{align-items:center;min-height:40px;display:inline-flex}}.check-row{cursor:pointer;align-items:flex-start;gap:10px;padding:6px 0;display:flex}.check-row>span{flex:1;min-width:0;line-height:1.4}.page-footer{border-top:1px solid var(--border);flex-direction:column;gap:16px;margin-top:40px;padding-top:18px;display:flex}.page-footer-controls{display:none}.page-footer-meta{color:var(--text-dim);flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 8px;font-size:12.5px;display:flex}.page-footer-meta .footer-version{color:var(--text-dim)}.page-footer-meta .footer-sep{color:var(--border)}.page-footer-meta .btn-link{color:var(--text-dim);text-decoration:none}.page-footer-meta .btn-link:hover{color:var(--text);text-decoration:underline}.footer-back{margin-bottom:16px;font-size:13px;display:inline-block}@media (width<=820px){.inp,input,select,.profile-select{font-size:16px}.stat .value{font-size:21px}.app{flex-direction:column}.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}.sidebar{z-index:50;border-right:none;border-top:1px solid var(--border);width:100%;height:auto;padding:6px 8px calc(6px + env(safe-area-inset-bottom));flex-direction:row;align-items:center;gap:4px;display:flex;position:fixed;inset:auto 0 0}.sidebar .brand-name,.sidebar>.profile-select,.sidebar>.undo-redo,.sidebar>.sync-status{display:none}.sidebar .brand-home{width:auto;margin:0;padding:11px}.sidebar .brand-home.active{background:var(--surface-2)}.sidebar .nav-list{flex-flow:row;flex:1;gap:2px;width:auto;margin:0}.sidebar .nav-btn{flex-direction:column;flex:1;justify-content:center;gap:3px;width:auto;min-width:0;padding:7px 0 6px}.sidebar .nav-btn[data-tab=dashboard],.sidebar .nav-label{display:none}.sidebar .nav-label-short{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:9px;font-weight:600;line-height:1;display:block;overflow:hidden}.page-footer-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 12px;display:flex}.page-footer-controls .profile-select{width:auto;max-width:50%;margin:0}.page-footer-controls .undo-redo{margin:0}.page-footer-controls .sync-status{width:auto;margin:0;padding:6px 8px}.main{padding:18px 16px calc(86px + env(safe-area-inset-bottom))}.grid-3>:last-child:nth-child(odd),.grid-4>:last-child:nth-child(odd){grid-column:1/-1}}@media (width<=460px){.page-head h2{font-size:20px}}@media (width<=440px){.grid-2{grid-template-columns:1fr}.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;position:relative}.stat .label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:12px}.stat .value{letter-spacing:-.02em;font-size:24px;font-weight:700}.stat .sub{color:var(--text-dim);margin-top:4px;font-size:12px}.stat.clickable{cursor:pointer;transition:border-color .12s,transform 80ms,background .12s}.stat.clickable:hover{border-color:var(--accent);background:var(--surface-2);transform:translateY(-1px)}.stat.clickable:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.stat-arrow{color:var(--text-dim);opacity:0;font-size:14px;transition:opacity .12s;position:absolute;top:14px;right:14px}.stat.clickable:hover .stat-arrow{opacity:1}.value.pos{color:var(--accent-2)}.value.neg{color:var(--danger)}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border);padding:8px 10px;font-size:12px;font-weight:600}td{border-bottom:1px solid var(--border);padding:6px 10px}tr:last-child td{border-bottom:none}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.sort-th{cursor:pointer;-webkit-user-select:none;user-select:none}.sort-th:hover,.sort-th.active{color:var(--text)}.sort-th-inner{align-items:center;gap:5px;display:inline-flex}th.num .sort-th-inner{flex-direction:row-reverse}.sort-arrow{color:var(--accent);font-size:9px;line-height:1}th.cell-drag,td.cell-drag{width:28px;padding-left:4px;padding-right:0}.drag-handle{color:var(--text-dim);cursor:grab;touch-action:none;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;display:inline-flex}.drag-handle:hover:not(.off){color:var(--accent);background:var(--surface-2)}.drag-handle:active{cursor:grabbing}.drag-handle.off{cursor:default;opacity:.22}tr.row-dragging{background:var(--surface-2)}tr.row-dragging td{border-color:#0000}.sort-control{align-items:center;gap:7px;font-size:13px;display:inline-flex}.sort-control .inp{width:auto;height:34px;padding:4px 8px;font-size:13px}.inp{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:8px;width:100%;padding:10px 12px;font-size:15px}.inp:focus{outline:2px solid var(--accent);outline-offset:-1px}.inp.num{text-align:right;font-variant-numeric:tabular-nums}input.inp,select.inp{height:40px}.field{margin-bottom:14px}.field label{color:var(--text-dim);margin-bottom:5px;font-size:12px;display:block}.btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;height:40px;padding:10px 16px;font-size:15px;transition:background .12s,border-color .12s;display:inline-flex}.btn svg{display:block}.btn:hover{background:color-mix(in srgb, var(--surface-2), var(--text) 10%);border-color:color-mix(in srgb, var(--border), var(--text) 18%)}.btn-primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:600}.btn-primary:hover{background:color-mix(in srgb, var(--accent), var(--on-accent) 18%);border-color:color-mix(in srgb, var(--accent), var(--on-accent) 18%)}.btn-danger{color:var(--danger)}.btn-danger:hover{background:color-mix(in srgb, var(--danger), transparent 88%);border-color:color-mix(in srgb, var(--danger), transparent 55%)}.btn-sm{padding:9px 13px;font-size:14px}.btn-lg{gap:8px;padding:11px 20px;font-size:15px;font-weight:600}.snapshot-bar{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:18px;display:flex}.snapshot-bar .note{flex:1;min-width:200px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:disabled:hover{background:var(--surface-2)}.btn-link{font:inherit;color:var(--accent);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.btn-link:hover{color:color-mix(in srgb, var(--accent), var(--text) 25%)}.btn-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.src-link{font:inherit;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:7px;padding:0;display:inline-flex}.src-link svg{color:var(--text-dim);flex:none}.src-link span{text-underline-offset:2px}.src-link:hover span{text-decoration:underline}.src-link:hover svg{color:var(--accent)}.src-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.src-row td{padding-top:15px;padding-bottom:15px}.src-row.divided td{border-top:1px solid var(--border)}.btn-icon{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:5px;display:inline-flex}.btn-icon:hover{background:var(--surface-2);color:var(--danger)}.btn-icon.btn-copy:hover{color:var(--accent)}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spacer{flex:1}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.pill{background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border);border-radius:999px;padding:2px 9px;font-size:11px;display:inline-block}.pill-link{vertical-align:middle;align-items:center;gap:4px;display:inline-flex}.pill-link svg{flex:none}.count-badge{font-variant-numeric:tabular-nums;color:currentColor;background:color-mix(in srgb, currentColor 18%, transparent);border-radius:999px;margin-left:6px;padding:0 6px;font-size:11px}.sync-target{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;margin-bottom:10px;padding:12px 14px}.muted{color:var(--text-dim)}.mt{margin-top:16px}.mb{margin-bottom:16px}.note{color:var(--text-dim);font-size:13px;line-height:1.5}.subhead{color:var(--text);margin:0 0 5px;font-size:14px;font-weight:600}.divider{background:var(--border);border:none;height:1px;margin:20px 0}.fact-list{flex-direction:column;gap:9px;margin:0;padding:0 0 0 18px;display:flex}.fact-list li{color:var(--text-dim);font-size:13px;line-height:1.5}.fact-list li::marker{color:var(--accent)}.fact-list strong{color:var(--text);font-weight:600}.info-page .card+.card{margin-top:20px}.about-hero{border-bottom:1px solid var(--border);align-items:center;gap:14px;margin-bottom:16px;padding-bottom:16px;display:flex}.about-hero .about-name{text-transform:none;letter-spacing:-.01em;color:var(--text);margin:0;font-size:18px;font-weight:600}.about-lead{color:var(--text-dim);margin:0;font-size:14px;line-height:1.6}.about-links{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.about-links a,.about-links .btn-link{color:var(--accent);align-items:center;gap:6px;font-size:13px;text-decoration:none;display:inline-flex}.about-links a:hover,.about-links .btn-link:hover{color:var(--accent);text-decoration:underline}.info-hint{color:var(--text-dim);opacity:.5;cursor:help;background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;padding:2px;transition:opacity .12s;display:inline-flex;position:relative}.info-hint:hover,.info-hint:focus-visible{opacity:1}.info-hint:focus{outline:none}.info-hint:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.info-hint-pop{text-align:left;background:var(--surface-2);width:max-content;max-width:240px;color:var(--text-dim);border:1px solid var(--border);opacity:0;visibility:hidden;z-index:50;pointer-events:none;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:400;line-height:1.45;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 8px);right:-4px;transform:translateY(3px);box-shadow:0 8px 24px #00000047}.info-hint:hover .info-hint-pop,.info-hint:focus .info-hint-pop{opacity:1;visibility:visible;transform:none}.chart-estimate{justify-content:flex-end;margin-top:4px;display:flex}@media print{.chart-estimate{display:none}}.health-checks{align-items:center;display:flex}.health-check{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.health-check+.health-check{border-left:1px solid var(--border);margin-left:18px;padding-left:18px}.health-check-text{flex-direction:column;gap:3px;min-width:0;display:flex}.health-check-label{font-size:13px;font-weight:600}.health-check-detail{color:var(--text-dim);font-size:12px;line-height:1.35}.health-ring{color:var(--text-dim);flex-shrink:0}.health-ring-green{color:var(--good)}.health-ring-amber{color:var(--warn)}.health-ring-red{color:var(--danger)}.health-overall{align-items:center;gap:7px;font-size:12px;font-weight:600;display:inline-flex}.health-overall:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:8px;height:8px}.health-overall-good{color:var(--good)}.health-overall-ok{color:var(--warn)}.health-overall-watch{color:var(--danger)}.health-ring-track{fill:none;stroke:currentColor;opacity:.16;stroke-width:4px}.health-ring-fill{fill:none;stroke:currentColor;stroke-width:4px;stroke-linecap:round;transition:stroke-dashoffset .4s}@media (width<=620px){.health-checks{flex-direction:column;align-items:stretch;gap:14px}.health-check+.health-check{border-left:none;border-top:1px solid var(--border);margin-left:0;padding-top:14px;padding-left:0}}.setup-card{border-left:3px solid var(--accent);margin-bottom:16px}.setup-card .progress{margin-bottom:14px}.setup-steps{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.setup-steps li{align-items:center;gap:10px;display:flex}.setup-steps .setup-label{flex:1;min-width:0;font-size:14px}.setup-steps li.done .setup-label{color:var(--text-dim);text-decoration:line-through}.setup-check{border:1.5px solid var(--border);width:22px;height:22px;color:var(--on-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.setup-steps li.done .setup-check{background:var(--accent-2);border-color:var(--accent-2)}.banner{background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--accent);color:var(--text-dim);border-radius:8px;margin-bottom:16px;padding:12px 14px;font-size:13px;line-height:1.5}.banner.ok{border-left-color:var(--accent-2)}.brand{margin:0 0 10px}.brand-home{cursor:pointer;width:100%;color:var(--text);text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;margin:0 0 6px;padding:10px 12px;transition:background .12s;display:flex}.brand-home:hover{background:var(--surface-2)}.brand-home svg{flex-shrink:0}.brand-name{letter-spacing:-.02em;font-size:17px;font-weight:700;line-height:1.1}.profile-select{background:var(--surface-2);width:100%;color:var(--text);border:1px solid var(--border);border-radius:8px;margin-bottom:8px;padding:10px 12px;font-size:15px}.nav-list{flex-direction:column;gap:4px;width:100%;display:flex}.undo-redo{gap:6px;display:flex}.sidebar .undo-redo{margin-top:auto;margin-bottom:6px}.undo-redo .btn-icon{border:1px solid var(--border);background:var(--surface-2);color:var(--text-dim);border-radius:8px;padding:6px}.sidebar .undo-redo .btn-icon{flex:1;justify-content:center}.undo-redo .btn-icon:hover:not(:disabled){color:var(--accent);background:var(--surface-2);border-color:var(--accent)}.undo-redo .btn-icon:disabled{opacity:.35;cursor:default}.undo-redo .btn-icon:disabled:hover{color:var(--text-dim);background:var(--surface-2);border-color:var(--border)}.onboarding{background:radial-gradient(1100px 620px at 50% -15%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 60%), radial-gradient(900px 520px at 88% 116%, color-mix(in srgb, var(--accent-2) 20%, transparent), transparent 55%), var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:48px 20px;display:flex;position:relative;overflow:hidden}.onboarding-inner{text-align:center;width:100%;max-width:760px;animation:.5s cubic-bezier(.22,1,.36,1) both onboard-in;position:relative}.onboarding-hero{margin-bottom:30px}.onboarding-logo{width:88px;height:88px;color:var(--text);background:linear-gradient(155deg, var(--surface-2), var(--surface));border:1px solid var(--border);box-shadow:0 18px 40px -16px color-mix(in srgb, var(--accent) 60%, transparent), inset 0 1px 0 #ffffff24;border-radius:24px;place-items:center;margin:0 auto 18px;display:grid}.onboarding-inner h1{letter-spacing:-.03em;margin:0 0 6px;font-size:34px;font-weight:700}.brand-accent{background:linear-gradient(120deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text}.onboarding-tagline{letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);margin:0 0 16px;font-size:12px}.onboarding .lead{color:var(--text-dim);max-width:520px;margin:0 auto 18px;font-size:15px;line-height:1.6}.onboarding-pills{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.onboarding-pills .pill{color:var(--text-dim);background:color-mix(in srgb, var(--surface) 70%, transparent);border:1px solid var(--border);border-radius:999px;align-items:center;gap:5px;padding:5px 11px;font-size:12px;font-weight:600;display:inline-flex}.onboarding-pills .pill svg{color:var(--accent-2)}.onboarding-name{text-align:left;max-width:340px;margin:0 auto 26px}.onboarding-cards{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}@media (width<=680px){.onboarding-cards{grid-template-columns:1fr}}.choice{background:color-mix(in srgb, var(--surface) 88%, transparent);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:center;color:var(--text);padding:24px 18px 22px;transition:border-color .14s,transform .1s,background .14s,box-shadow .14s;position:relative}.choice:hover{border-color:var(--accent);background:var(--surface-2);box-shadow:0 14px 30px -16px color-mix(in srgb, var(--accent) 70%, transparent);transform:translateY(-3px)}.choice:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.choice.featured{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--surface));box-shadow:0 14px 34px -18px color-mix(in srgb, var(--accent) 65%, transparent)}.choice.featured:hover{border-color:var(--accent)}.choice-badge{white-space:nowrap;color:var(--on-accent);background:linear-gradient(120deg, var(--accent), var(--accent-2));box-shadow:0 5px 14px -5px color-mix(in srgb, var(--accent) 75%, transparent);border-radius:999px;align-items:center;gap:4px;padding:4px 11px;font-size:11px;font-weight:700;display:inline-flex;position:absolute;top:-11px;left:50%;transform:translate(-50%)}.choice-badge svg{color:var(--on-accent)}.choice-icon{width:48px;height:48px;color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:12px;justify-content:center;align-items:center;margin:0 auto 12px;transition:background .14s,transform .14s;display:flex}.choice:hover .choice-icon{transform:scale(1.06)}.choice-title{margin-bottom:5px;font-size:15px;font-weight:700}.choice-figure{color:var(--accent-2);margin-bottom:8px;font-size:12px;font-weight:700;display:inline-block}.choice-sub{color:var(--text-dim);font-size:12px;line-height:1.45}.onboarding-picker-head{margin-bottom:22px}.btn-back{color:var(--text-dim);background:color-mix(in srgb, var(--surface) 70%, transparent);border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:6px;margin:0 auto 14px;padding:6px 12px;font-size:13px;font-weight:600;transition:color .14s,border-color .14s,background .14s;display:inline-flex}.btn-back:hover{color:var(--text);border-color:var(--accent);background:var(--surface-2)}.btn-back:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.choice-arrow{color:var(--accent);opacity:0;transition:opacity .14s,transform .14s;display:flex;position:absolute;top:14px;right:14px;transform:translate(-4px)}.choice:hover .choice-arrow{opacity:1;transform:none}.onboarding-note{margin-top:24px}.hidden-input{display:none}@keyframes onboard-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.onboarding-inner{animation:none}.choice:hover,.choice:hover .choice-icon{transform:none}}.modal-backdrop{z-index:3000;background:#06080ca8;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:420px;padding:22px;box-shadow:0 20px 60px #0006}.modal-title{color:var(--text);align-items:center;gap:8px;margin:0 0 12px;font-size:16px;font-weight:700;display:flex}.tour{z-index:2000;position:fixed;inset:0}.tour-backdrop{z-index:2000;background:0 0;position:fixed;inset:0}.tour-backdrop.dim{background:#06080ca8}.tour-hole{z-index:2001;pointer-events:none;outline:2px solid var(--accent);outline-offset:2px;border-radius:10px;transition:left .28s cubic-bezier(.22,1,.36,1),top .28s cubic-bezier(.22,1,.36,1),width .28s cubic-bezier(.22,1,.36,1),height .28s cubic-bezier(.22,1,.36,1);position:fixed;box-shadow:0 0 0 9999px #06080ca8}.tour-card{z-index:2002;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(340px,100vw - 24px);padding:16px 18px 14px;transition:left .28s cubic-bezier(.22,1,.36,1),top .28s cubic-bezier(.22,1,.36,1);animation:.18s tour-pop;position:fixed;box-shadow:0 18px 48px -12px #0000008c}.tour-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.tour-icon{width:38px;height:38px;color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.tour-card h3{letter-spacing:-.01em;color:var(--text);text-transform:none;margin:0;font-size:16px;font-weight:700}.tour-body{color:var(--text-dim);margin:0 0 12px;font-size:13.5px;line-height:1.55}.tour-tips{flex-direction:column;gap:6px;margin:0 0 14px;padding:0 0 0 18px;display:flex}.tour-tips li{color:var(--text-dim);font-size:12px;line-height:1.5}.tour-tips li::marker{color:var(--accent)}.tour-action{width:100%;margin:0 0 14px}.tour-foot{flex-direction:column;gap:12px;display:flex}.tour-progress{align-items:center;gap:8px;display:flex}.tour-dots{flex-wrap:wrap;gap:5px;min-width:0;display:flex}.tour-dot{background:var(--border);border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:background .18s,transform .18s}.tour-dot.on{background:var(--accent);transform:scale(1.3)}.tour-count{white-space:nowrap;color:var(--text-dim);font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:auto;font-size:11px}.tour-actions{align-items:center;gap:8px;display:flex}.tour-actions .btn{white-space:nowrap;flex-shrink:0}.tour-skip{color:var(--text-dim)}@keyframes tour-pop{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.tour-hole,.tour-card{transition:none}.tour-card{animation:none}}.pill-accent{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, transparent);vertical-align:middle;align-items:center;gap:4px;font-weight:600;display:inline-flex}.dash-controls{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.compare-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.compare-pick{align-items:center;gap:10px;min-width:0;display:inline-flex}.compare-pick .inp{flex:0 210px;width:auto;min-width:0}.compare-bar-label{color:var(--text-dim);white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.compare-trigger{cursor:pointer;height:40px;color:var(--text-dim);text-align:left;justify-content:space-between;align-items:center;gap:8px;display:inline-flex}.compare-trigger:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border));color:var(--text)}.compare-caret{opacity:.75;font-size:11px}.compare-nudge{align-items:flex-start;gap:12px;display:flex}.compare-nudge strong{color:var(--text)}.compare-nudge-icon{color:var(--accent);flex-shrink:0;margin-top:1px}.stat-compare{color:var(--text-dim);font-variant-numeric:tabular-nums;margin-top:6px;font-size:12px}.stat-compare.pos{color:var(--accent-2)}.stat-compare.neg{color:var(--danger)}.stat-compare-pct{opacity:.85}.dashboard-split{align-items:flex-start;gap:18px;display:flex}.dashboard-split-pane{flex:1 1 0;min-width:0}.dashboard-split-title{border-bottom:2px solid var(--accent);background:var(--bg);z-index:1;margin:0 0 12px;padding-bottom:8px;font-size:15px;position:sticky;top:0}.dashboard-split-pane .grid-4{grid-template-columns:repeat(2,1fr)}.dashboard-split-pane .grid-2,.dashboard-split-pane .dashboard-cards{grid-template-columns:1fr}@media (width<=760px){.dashboard-split{flex-direction:column}.dashboard-split-pane{width:100%}.dashboard-split-title{position:static}}.dashboard-cards{grid-template-columns:repeat(2,1fr);align-items:stretch;gap:16px;display:grid}.dashboard-cards .span-full{grid-column:1/-1}.dash-card-slot{min-width:0;display:flex}.dash-card-slot>.card{flex:1;min-width:0}@media (width<=900px){.dashboard-cards{grid-template-columns:1fr}}.color-grid{flex-wrap:wrap;gap:16px;display:flex}.color-field{text-align:center;width:84px;color:var(--text-dim);flex-direction:column;align-items:center;gap:6px;font-size:12px;display:flex}.color-field input[type=color]{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:8px;width:52px;height:38px;padding:2px}.layout-list-title{text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-size:12px}.layout-list{flex-direction:column;display:flex}.layout-row{align-items:center;gap:4px;padding:4px 0;display:flex}.layout-row.off{opacity:.55}.layout-arrow{font-size:15px;line-height:1}.btn-icon:disabled{opacity:.25;cursor:default}.btn-icon.btn-move:hover{color:var(--accent);background:var(--surface-2)}.metric-dot{vertical-align:middle;border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block}.metric-editor{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;display:flex}.metric-editor .inp{max-width:200px}.metric-editor-field{color:var(--text-dim);align-items:center;gap:6px;font-size:13px;display:inline-flex}.metric-color{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:8px;flex-shrink:0;width:40px;height:34px;padding:2px}.progress{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;height:8px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .3s}.progress-fill.reached{background:var(--accent-2)}.goal-list{flex-direction:column;gap:14px;display:flex}.goal-item{flex-direction:column;gap:6px;display:flex}.goal-fields{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.goal-fields .field{flex:1;min-width:140px}.goal-progress{flex-direction:column;gap:5px;display:flex}.goal-meta{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.goal-editor{flex-direction:column;gap:10px;display:flex}.crash-screen{background:var(--bg);min-height:100vh;color:var(--text);place-items:center;padding:24px;display:grid}.crash-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;max-width:520px;padding:28px}.crash-card h1{margin:0 0 12px;font-size:20px}.crash-card p{color:var(--text-dim);margin:0 0 14px;line-height:1.5}.crash-detail{background:var(--bg);border:1px solid var(--border);max-height:160px;color:var(--text-dim);white-space:pre-wrap;border-radius:8px;padding:10px 12px;font-size:12px;overflow:auto}.crash-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.sync-lock{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--warn);border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding:8px 12px;font-size:13px;display:flex}.sync-lock-msg{color:var(--text);align-items:center;gap:6px;display:inline-flex}.sync-lock-input{max-width:200px;height:32px}.sync-lock-error{color:var(--danger);align-items:center;gap:4px;display:inline-flex}.sync-lock-close{margin-left:auto}.sync-lock-ind{color:var(--warn);align-items:center;display:inline-flex}.report-overlay{z-index:200;background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:0}.report-toolbar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;display:flex}.report-toolbar-title{font-weight:600}.report-hint{font-size:12px}.report-mode{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.report-mode button{color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border:none;padding:5px 12px;font-size:13px}.report-mode button.active{background:var(--accent);color:#fff}.report-sections{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px 16px;width:100%;padding-top:10px;display:flex}.report-sections-label{text-transform:uppercase;letter-spacing:.05em;font-size:11px}.report-check{cursor:pointer;align-items:center;gap:7px;font-size:13px;display:inline-flex}.report-scroll{flex:1;padding:24px;overflow-y:auto}.report-doc{background:var(--bg);width:760px;max-width:100%;color:var(--text);-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:10px;margin:0 auto;padding:36px;box-shadow:0 10px 40px #0000004d}.report-doc.paper{background:#fff}.report-doc.themed{page:themed-bleed}.report-doc .card{margin-top:16px}.report-doc svg{max-width:100%}.report-section+.report-section{margin-top:32px}.report-cover{border-bottom:2px solid var(--border);padding-bottom:20px}.report-brand{color:var(--accent);align-items:center;gap:12px;display:flex}.report-appname{color:var(--text);font-size:20px;font-weight:700}.report-tagline{color:var(--text-dim);font-size:13px}.report-title{letter-spacing:-.02em;margin:20px 0 4px;font-size:30px}.report-meta{color:var(--text-dim);margin:0}.report-spending{flex-wrap:wrap;align-items:center;gap:20px;display:flex}@media print{.app,.tour,.toast-wrap{display:none!important}.report-overlay{background:0 0;position:static}.report-toolbar{display:none!important}.report-scroll{padding:0;overflow:visible}.report-doc{width:auto;max-width:none;box-shadow:none;border-radius:0;margin:0;padding:0}.report-doc .card,.report-doc .stat{box-shadow:none;break-inside:avoid}.report-doc tr{break-inside:avoid}.report-doc.paper .report-section+.report-section{break-before:page;margin-top:0}.report-doc.themed{padding:14mm}}@page themed-bleed{size:A4;margin:0}@page{size:A4;margin:14mm}@media (width<=560px){.grid{gap:10px}.stat{padding:13px 14px}.stat .label{margin-bottom:4px;font-size:11px}.stat .sub{margin-top:3px}}@media (width<=820px){.btn-icon,.drag-handle{min-width:40px;min-height:40px}input[type=checkbox]{width:24px;height:24px}.info-hint{margin:-8px;padding:10px}.sync-status{min-height:40px}.sort-control .inp{height:40px}.toast-action{padding:8px 12px}.toast-close{margin:-6px -6px -6px 0;padding:10px}.btn-back{min-height:40px}.btn-link{margin:-6px -2px;padding:8px 2px}.note a,p a,li a{margin:0 -2px;padding:8px 2px}.src-link{margin:-6px 0;padding:8px 0}.about-links a,.about-links .btn-link{margin:-4px 0;padding:8px 0}.page-footer-meta .btn-link{margin:-6px 0;padding:10px 4px}.footer-back{margin:0 -6px 10px;padding:8px 6px}}
