:root{--accent:#f06292;--accent-2:#ff8aa8;--accent-rgb:240, 98, 146;--bg:#0e0b14;--surface:#171221;--surface-2:#1e1830;--surface-rgb:23, 18, 33;--text:#f4eef7;--text-muted:#a99fb8;--text-rgb:244, 238, 247;--pos:#5fd99a;--pos-ink:#08130c;--neg:#ff8a96;--warn:#ffc266;--motif:"🌸";--grad-a:var(--accent);--grad-b:var(--accent-2);--tex-sidebar:none;--tex-surface:none;--tex-progress:none;--orn-column:none;--orn-divider:none;--orn-corner:none;--orn-wreath:none;--frame:none;--title-ink:var(--text-muted);--banner:none;--font-display:"Unbounded", sans-serif;--font-body:"Manrope", sans-serif;--r-sm:10px;--r-md:16px;--r-lg:22px;--r-xl:28px;--shadow:0 12px 40px #00000059;--shadow-sm:0 4px 16px #0003;--sidebar-w:248px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background-color:var(--bg);background-image:var(--bg-texture,none);color:var(--text);background-position:50%;background-size:cover;background-attachment:fixed;min-height:100vh;line-height:1.5;overflow-x:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}input,select,textarea{font:inherit;color:inherit}img,video{max-width:100%;display:block}::selection{background:rgba(var(--accent-rgb), .3)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:rgba(var(--text-rgb), .15);border-radius:8px}::-webkit-scrollbar-track{background:0 0}.boot{background:var(--bg);height:100vh;color:var(--text);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.boot-flower{font-size:48px;animation:2.4s ease-in-out infinite spin}.boot-text{color:var(--text-muted);font-family:var(--font-display)}@keyframes spin{0%,to{transform:rotate(0)scale(1)}50%{transform:rotate(180deg)scale(1.15)}}.app{grid-template-columns:var(--sidebar-w) 1fr;background:radial-gradient(1200px 600px at 80% -10%, rgba(var(--accent-rgb), .12), transparent 60%), var(--bg);min-height:100vh;display:grid}.sidebar{background:var(--tex-sidebar) 0 0 / 100% 100% no-repeat, rgba(var(--surface-rgb), .6);border-right:1px solid rgba(var(--text-rgb), .06);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-direction:column;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0}.brand{text-align:center;padding:8px 0 20px}.brand-logo{filter:drop-shadow(0 4px 12px rgba(var(--accent-rgb), .5));font-size:40px;line-height:1}.brand-name{font-family:var(--font-display);color:var(--accent);margin-top:8px;font-size:22px;font-weight:700}.brand-tag{color:var(--text-muted);margin-top:2px;font-size:12px}.nav{flex-direction:column;gap:4px;margin-top:12px;display:flex}.nav-item{border-radius:var(--r-md);color:var(--text-muted);text-align:left;align-items:center;gap:12px;width:100%;padding:12px 14px;font-size:15px;font-weight:600;transition:all .18s;display:flex}.nav-item:hover{color:var(--text);background:rgba(var(--text-rgb), .04)}.nav-item.active{color:#fff;background:linear-gradient(135deg, var(--grad-a), var(--grad-b));box-shadow:0 8px 22px rgba(var(--accent-rgb), .4)}.nav-item .ic{flex-shrink:0;width:20px;height:20px}.sidebar-spacer{flex:1}.profile-card{background:rgba(var(--text-rgb), .03);border:1px solid rgba(var(--text-rgb), .06);border-radius:var(--r-lg);padding:16px}.profile-greet{font-family:var(--font-display);color:var(--accent);margin-bottom:12px;font-size:14px;font-weight:600;line-height:1.3}.profile-actions{gap:8px;margin-bottom:12px;display:flex}.icon-btn{background:rgba(var(--text-rgb), .05);width:40px;height:40px;color:var(--text-muted);border-radius:12px;justify-content:center;align-items:center;transition:all .18s;display:flex;position:relative}.icon-btn:hover{color:var(--text);background:rgba(var(--accent-rgb), .15)}.icon-btn .badge{background:var(--accent);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.profile-user{align-items:center;gap:10px;display:flex}.avatar{background:linear-gradient(135deg, var(--grad-a), var(--grad-b));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:16px;font-weight:700;display:flex}.profile-user .uname{font-size:14px;font-weight:600}.main{flex-direction:column;gap:20px;min-width:0;padding:24px;display:flex}.card{background:var(--tex-surface) 0 0 / 100% 100% no-repeat, var(--surface);border:1px solid rgba(var(--text-rgb), .06);border-radius:var(--r-lg);padding:22px;position:relative}.card:before,.card:after{content:"";background:var(--orn-corner) no-repeat center / contain;z-index:0;opacity:.7;pointer-events:none;width:74px;height:74px;position:absolute}.card:before{top:4px;left:4px}.card:after{bottom:4px;right:4px;transform:rotate(180deg)}.card>*{z-index:1;position:relative}.card-pad-lg{padding:26px 28px}.section-title{font-family:var(--font-display);margin-bottom:4px;font-size:22px;font-weight:700}.section-sub{color:var(--text-muted);margin-bottom:18px;font-size:14px}.hero-progress{background:var(--tex-progress) 0 0 / 100% 100% no-repeat, linear-gradient(120deg, rgba(var(--surface-rgb), .9), rgba(var(--surface-rgb), .6)), radial-gradient(600px 300px at 90% 0%, rgba(var(--accent-rgb), .25), transparent 70%);border:1px solid rgba(var(--accent-rgb), .18);border-radius:var(--r-xl);flex-direction:column;justify-content:space-between;padding:20px 26px;transition:border-color .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden}.hp-top{z-index:1;justify-content:space-between;align-items:flex-start;display:flex;position:relative}.hp-label{color:var(--title-ink);border-radius:var(--r-sm);background:var(--frame) center / 100% 100% no-repeat;padding:7px 18px;font-size:15px;font-weight:600;display:inline-block}.hp-goal{cursor:pointer;font:inherit;background:0 0;border:none;align-items:center;gap:10px;padding:0;transition:opacity .15s;display:flex}.hp-goal:hover{opacity:.82}.hp-goal-line{z-index:1;color:var(--text-muted);margin-top:10px;font-size:13px;position:relative}.chip{border-radius:var(--r-full,999px);background:rgba(var(--text-rgb), .08);color:var(--text-muted);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600}.hp-pct{font-family:var(--font-display);background:linear-gradient(135deg, var(--grad-a), var(--grad-b));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:2px 0;font-size:clamp(40px,5vw,58px);font-weight:800;line-height:1}.hp-pct small{-webkit-text-fill-color:var(--accent);font-size:.45em}.hp-tagline{color:var(--accent);font-size:16px;font-weight:700}.hp-motivate{color:var(--text-muted);margin-top:2px;font-size:13px}.hp-bar-wrap{z-index:1;margin-top:14px;position:relative}.hp-bar{background:rgba(var(--text-rgb), .08);border-radius:999px;height:20px;overflow:hidden}.hp-bar-fill{background:linear-gradient(90deg, var(--grad-a), var(--grad-b));height:100%;box-shadow:0 0 24px rgba(var(--accent-rgb), .6);border-radius:999px;transition:width .8s cubic-bezier(.16,1,.3,1)}.hp-stats{z-index:1;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:14px;display:grid;position:relative}.hp-stat .k{color:var(--text-muted);margin-bottom:4px;font-size:13px;font-weight:600}.hp-stat .v{font-family:var(--font-display);font-size:20px;font-weight:700}.hp-stat .v.accent{color:var(--accent)}.hp-stat+.hp-stat{border-left:1px solid rgba(var(--text-rgb), .08);padding-left:16px}.hero-media{border-radius:var(--r-xl);border:1px solid rgba(var(--text-rgb), .06);min-height:240px;transition:border-color .18s,box-shadow .18s;position:relative;overflow:hidden}.hero-media-bg{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.hero-media-fallback{background:radial-gradient(700px 400px at 75% 30%, rgba(var(--accent-2-rgb), .5), transparent 60%), linear-gradient(160deg, rgba(var(--accent-rgb), .4), var(--surface-2) 70%);position:absolute;inset:0}.hero-media-fallback:after{content:var(--motif);opacity:.18;font-size:200px;position:absolute;top:50%;right:4%;transform:translateY(-50%)}.hero-media-scrim{background:linear-gradient(90deg,#000000a6 0%,#00000040 45%,#0000 70%);position:absolute;inset:0}.hero-media-inner{z-index:1;align-items:stretch;gap:24px;min-height:240px;padding:28px 32px;display:flex;position:relative}.hero-level{border-radius:var(--r-md);text-align:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000059;border:1px solid #ffffff1f;flex-direction:column;flex-shrink:0;align-items:center;width:92px;padding:14px 10px;display:flex}.hero-level .lv-flower{font-size:24px}.hero-level .lv-label{color:#ffffffb3;letter-spacing:1px;margin-top:6px;font-size:11px}.hero-level .lv-num{font-family:var(--font-display);color:#fff;font-size:32px;font-weight:800}.hero-level .lv-xp{color:#fff9;margin-top:4px;font-size:10px}.hero-level .lv-bar{background:#fff3;border-radius:3px;width:100%;height:5px;margin-top:6px;overflow:hidden}.hero-level .lv-bar i{background:linear-gradient(90deg, var(--grad-a), var(--grad-b));height:100%;display:block}.hero-text{flex-direction:column;justify-content:center;display:flex}.hero-title{font-family:var(--font-display);color:#fff;white-space:pre-line;text-shadow:0 2px 20px #00000080;font-size:clamp(28px,3.4vw,44px);font-weight:800;line-height:1.08}.hero-sub{color:#ffffffd9;max-width:420px;margin-top:10px;font-size:15px}.btn{background:linear-gradient(135deg, var(--grad-a), var(--grad-b));color:#fff;box-shadow:0 8px 22px rgba(var(--accent-rgb), .4);border-radius:999px;align-items:center;gap:8px;width:fit-content;padding:11px 20px;font-size:14px;font-weight:700;transition:transform .15s,box-shadow .15s;display:inline-flex}.btn:hover{box-shadow:0 12px 28px rgba(var(--accent-rgb), .55);transform:translateY(-2px)}.btn-ghost{background:rgba(var(--text-rgb), .06);color:var(--text);box-shadow:none}.btn-ghost:hover{background:rgba(var(--text-rgb), .1);box-shadow:none}.btn-sm{padding:8px 14px;font-size:13px}.hero-cta{margin-top:16px}.kpi-row{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.kpi{background:var(--tex-surface) 0 0 / 100% 100% no-repeat, var(--surface);border:1px solid rgba(var(--text-rgb), .06);border-radius:var(--r-lg);min-height:168px;padding:18px 20px 22px;position:relative;overflow:hidden}.kpi-top{justify-content:space-between;align-items:flex-start;display:flex}.kpi-label{color:var(--text-muted);font-size:13px;font-weight:600}.kpi-ic{background:rgba(var(--accent-rgb), .14);width:34px;height:34px;color:var(--accent);border-radius:10px;justify-content:center;align-items:center;display:flex}.kpi-value{font-family:var(--font-display);margin:10px 0 2px;font-size:26px;font-weight:700}.kpi-note{color:var(--text-muted);font-size:13px}.kpi-note.up{color:var(--pos)}.kpi-spark{height:40px;margin-top:8px}.kpi-rings{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.kpi-ring-item{justify-content:center;align-items:center;width:30px;height:30px;display:flex}.mini-ring{display:block}.kpi-ring{position:absolute;bottom:18px;right:18px}.footer-banner{border-radius:var(--r-xl);background:linear-gradient(100deg, rgba(var(--accent-rgb), .22), rgba(var(--accent-2-rgb), .12));border:1px solid rgba(var(--accent-rgb), .2);align-items:center;gap:18px;padding:20px 26px;display:flex}.footer-banner .fb-ic{border-radius:var(--r-md);background:rgba(var(--text-rgb), .1);flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:26px;display:flex}.footer-banner .fb-title{font-family:var(--font-display);font-size:19px;font-weight:700}.footer-banner .fb-sub{color:var(--text-muted);margin-top:2px;font-size:14px}.footer-banner .fb-spacer{flex:1}.grid-2{grid-template-columns:1fr 1fr;gap:20px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.list{flex-direction:column;gap:10px;display:flex}.row{background:var(--surface-2);border:1px solid rgba(var(--text-rgb), .05);border-radius:var(--r-md);align-items:center;gap:14px;padding:14px 16px;display:flex}.row-main{flex:1;min-width:0}.row-title{font-size:15px;font-weight:600}.row-sub{color:var(--text-muted);margin-top:2px;font-size:13px}.row-amount{font-family:var(--font-display);white-space:nowrap;font-size:16px;font-weight:700}.row-actions{gap:6px;display:flex}.tag{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.tag-high{background:color-mix(in srgb, var(--neg) 18%, transparent);color:var(--neg)}.tag-medium{background:color-mix(in srgb, var(--warn) 18%, transparent);color:var(--warn)}.tag-low,.tag-active{background:color-mix(in srgb, var(--pos) 16%, transparent);color:var(--pos)}.tag-cancelled{background:color-mix(in srgb, var(--warn) 16%, transparent);color:var(--warn)}.tag-inactive{background:rgba(var(--text-rgb), .1);color:var(--text-muted)}.tag-accent{background:rgba(var(--accent-rgb), .16);color:var(--accent)}.mini-bar{background:rgba(var(--text-rgb), .1);border-radius:4px;height:7px;margin-top:8px;overflow:hidden}.mini-bar i{background:linear-gradient(90deg, var(--grad-a), var(--grad-b));border-radius:4px;height:100%;display:block}.tag-done{background:color-mix(in srgb, var(--pos) 16%, transparent);color:var(--pos)}.debt-quick{border-top:1px solid rgba(var(--text-rgb), .08);gap:8px;margin-top:14px;padding-top:14px;display:flex}.debt-stats{flex-wrap:wrap;gap:28px;margin-top:14px;display:flex}.debt-stats .row-amount{margin-top:2px;font-size:19px}.pay-summary{background:rgba(var(--text-rgb), .04);border-radius:var(--r-md);justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}.pay-summary .ic{color:var(--text-muted);flex:none}.pay-list{flex-direction:column;gap:2px;max-height:320px;display:flex;overflow-y:auto}.pay-row{border-radius:var(--r-md);align-items:center;gap:12px;padding:10px 12px;display:flex}.pay-row:nth-child(odd){background:rgba(var(--text-rgb), .04)}.pay-date{color:var(--text-muted);flex:auto;font-size:14px}.pay-amt{color:var(--text);font-weight:700}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--text-muted);font-size:13px;font-weight:600}.input,.select{background:var(--surface-2);border:1px solid rgba(var(--text-rgb), .1);border-radius:var(--r-sm);color:var(--text);width:100%;padding:10px 12px;font-size:14px;transition:border-color .15s}.input:focus,.select:focus{border-color:var(--accent);outline:none}.form-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.form-grid .span-2{grid-column:1/-1}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0009;justify-content:center;align-items:center;padding:20px;animation:.2s fade;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid rgba(var(--text-rgb), .1);border-radius:var(--r-lg);width:100%;max-width:600px;max-height:90vh;box-shadow:var(--shadow);padding:30px;animation:.2s pop;overflow-y:auto}.modal-wide{max-width:760px}.modal-head{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-title{font-family:var(--font-display);font-size:20px;font-weight:700}.modal-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.96)translateY(8px)}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.two-col{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.two-col>.col-work,.two-col>.col-side{flex-direction:column;gap:16px;min-width:0;display:flex}@media (width<=1000px){.two-col{grid-template-columns:1fr}}.dash-top{grid-template-columns:minmax(0,4fr) minmax(0,1fr);align-items:stretch;gap:20px;display:grid}.dash-upcoming{flex-direction:column;padding:16px 16px 14px;display:flex;overflow:hidden}.dash-up-list{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow-y:auto}.dash-up-item{align-items:center;gap:8px;display:flex}.dash-up-item .cal-dot{flex-shrink:0;width:9px;height:9px;margin-top:0}.dash-up-main{flex:1;min-width:0}.dash-up-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.dash-up-date{color:var(--text-muted);font-size:11px}.dash-up-amt{white-space:nowrap;font-size:13px;font-weight:700}@media (width<=1000px){.dash-top{grid-template-columns:1fr}}.rail-stat{justify-content:space-between;align-items:center;padding:10px 0;font-size:14px;display:flex}.rail-stat+.rail-stat{border-top:1px solid rgba(var(--text-rgb), .07)}.rail-stat .rs-label{color:var(--text-muted)}.show-all{text-align:center;width:100%;color:var(--text-muted);border-radius:var(--r-sm);margin-top:10px;padding:9px;font-size:13px;font-weight:600;display:block}.show-all:hover{background:rgba(var(--text-rgb), .05);color:var(--text)}.tab.tab-exp.active{color:var(--accent)}.tab.tab-exp.active .tab-count{background:rgba(var(--accent-rgb), .16);color:var(--accent)}.tab.tab-inc.active{color:var(--pos)}.tab.tab-inc.active .tab-count{background:color-mix(in srgb, var(--pos) 16%, transparent);color:var(--pos)}.btn-mint{background:linear-gradient(135deg, color-mix(in srgb, var(--pos) 78%, #000), var(--pos));box-shadow:0 8px 22px color-mix(in srgb, var(--pos) 40%, transparent);color:var(--pos-ink)}.btn-mint:hover{box-shadow:0 12px 28px color-mix(in srgb, var(--pos) 55%, transparent)}.delta-badge{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.delta-badge.good{background:color-mix(in srgb, var(--pos) 18%, transparent);color:var(--pos)}.delta-badge.bad{background:color-mix(in srgb, var(--neg) 18%, transparent);color:var(--neg)}.gauge-wrap{flex:none;display:inline-block;position:relative}.gauge-label{text-align:center;font-family:var(--font-display);font-size:16px;font-weight:800;position:absolute;bottom:2px;left:0;right:0}.kpi-clickable{cursor:pointer}.kpi-fill{flex-direction:column;display:flex}.kpi-center{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;margin:6px 0 0;display:flex}.kpi-center .kpi-rings{justify-content:center;margin-top:0}.debt-grid{grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:12px;display:grid}.debt-cell{text-align:center;cursor:pointer;padding:16px 12px}.debt-cell .gauge-wrap{margin:0 auto}.debt-cell-name{font-family:var(--font-display);margin-top:2px;font-size:13.5px;font-weight:700}.fx .glow-num{text-shadow:0 0 26px color-mix(in srgb, currentColor 55%, transparent)}.fx .row{transition:transform .18s,box-shadow .18s,border-color .18s}.fx .card,.fx .kpi{transition:border-color .22s,box-shadow .22s}@keyframes meter-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes row-rise{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}@keyframes btn-pulse{0%,to{box-shadow:0 8px 22px rgba(var(--accent-rgb), .4)}50%{box-shadow:0 8px 30px rgba(var(--accent-rgb), .7)}}@media (prefers-reduced-motion:no-preference){.fx .card:hover,.fx .kpi:hover,.hero-progress:hover,.hero-media:hover{border-color:rgba(var(--accent-rgb), .28);box-shadow:0 0 0 1px rgba(var(--accent-rgb), .18), 0 16px 40px rgba(var(--accent-rgb), .12)}.fx .row:hover{border-color:rgba(var(--accent-rgb), .3);box-shadow:0 10px 26px rgba(var(--accent-rgb), .12);transform:translateY(-2px)}.fx .meter-bar i{transform-origin:0;animation:.9s cubic-bezier(.2,.8,.2,1) meter-grow}.fx .list>.row{animation:.5s backwards row-rise}.fx .list>.row:first-child{animation-delay:20ms}.fx .list>.row:nth-child(2){animation-delay:60ms}.fx .list>.row:nth-child(3){animation-delay:.1s}.fx .list>.row:nth-child(4){animation-delay:.14s}.fx .list>.row:nth-child(5){animation-delay:.18s}.fx .btn-pulse{animation:2.6s ease-in-out infinite btn-pulse}}.empty{text-align:center;color:var(--text-muted);padding:40px 20px}.empty-flower{opacity:.5;font-size:44px}.boot-flower:before,.brand-logo:before,.hero-level .lv-flower:before,.empty-flower:before{content:var(--motif)}.mb-title:before{content:var(--motif) " "}.profile-greet:after,.hp-label:after{content:" " var(--motif)}.orn-divider{background:var(--orn-divider) no-repeat center / contain;height:30px;margin:2px 0}.hero-media:before,.hero-media:after{content:"";background:var(--orn-column) no-repeat center / auto 100%;z-index:1;opacity:.9;pointer-events:none;width:clamp(44px,11%,78px);position:absolute;top:0;bottom:0}.hero-media:before{left:0}.hero-media:after{right:0;transform:scaleX(-1)}.hero-level{position:relative}.hero-level:after{content:"";background:var(--orn-wreath) no-repeat center / contain;z-index:0;opacity:.9;pointer-events:none;width:86px;height:86px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.hero-level>*{z-index:1;position:relative}.orn-banner{background:var(--banner) no-repeat center / contain;height:210px;margin:14px 0 6px}.cal-grid{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.cal-dow{text-align:center;color:var(--text-muted);padding-bottom:4px;font-size:12px;font-weight:600}.cal-cell{aspect-ratio:1;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid rgba(var(--text-rgb), .05);flex-direction:column;padding:6px;font-size:12px;display:flex;position:relative}.cal-cell.empty-cell{background:0 0;border-color:#0000}.cal-cell.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.cal-day{color:var(--text-muted);font-weight:600}.cal-dot{border-radius:50%;width:6px;height:6px;margin-top:auto}.cal-dot.debt{background:var(--accent)}.cal-dot.subscription{background:#ffc266}.cal-dot.expense{background:#6fa8ff}.cal-mark{color:var(--accent);margin-top:auto;font-size:10px;font-weight:700}.cal-cell.has-items{cursor:pointer}.cal-cell.has-items:hover{border-color:rgba(var(--accent-rgb), .5);background:rgba(var(--accent-rgb), .08)}.cal-pop{background:var(--surface);border:1px solid rgba(var(--text-rgb), .12);border-radius:var(--r-md);min-width:220px;max-width:280px;box-shadow:var(--shadow);z-index:60;opacity:0;visibility:hidden;pointer-events:none;padding:12px 14px;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}.cal-cell.has-items:hover .cal-pop{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.cal-pop:after{content:"";border:6px solid #0000;border-top-color:var(--surface);position:absolute;top:100%;left:50%;transform:translate(-50%)}.cal-pop.below{top:calc(100% + 8px);bottom:auto;transform:translate(-50%)translateY(-4px)}.cal-cell.has-items:hover .cal-pop.below{transform:translate(-50%)translateY(0)}.cal-pop.below:after{border-top-color:#0000;border-bottom-color:var(--surface);top:auto;bottom:100%}.cal-pop-head{color:var(--text);margin-bottom:8px;font-size:13px;font-weight:700}.cal-pop-row{align-items:center;gap:8px;padding:3px 0;font-size:12px;display:flex}.cal-pop-row .cal-dot{flex:none;width:8px;height:8px;margin-top:0}.cal-pop-name{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;flex:auto;overflow:hidden}.cal-pop-amt{color:var(--text);flex:none;font-weight:600}.slider{-webkit-appearance:none;background:rgba(var(--text-rgb), .12);border-radius:4px;outline:none;width:100%;height:8px}.slider::-webkit-slider-thumb{-webkit-appearance:none;background:linear-gradient(135deg, var(--grad-a), var(--grad-b));cursor:pointer;width:24px;height:24px;box-shadow:0 4px 12px rgba(var(--accent-rgb), .5);border-radius:50%}.slider::-moz-range-thumb{background:var(--accent);cursor:pointer;border:none;border-radius:50%;width:24px;height:24px}.theme-presets{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px;display:grid}.preset-card{border-radius:var(--r-md);cursor:pointer;text-align:center;border:2px solid #0000;padding:14px;transition:all .15s;position:relative}.preset-card.active{border-color:var(--accent)}.preset-swatches{justify-content:center;gap:4px;margin-bottom:8px;display:flex}.preset-swatch{border-radius:6px;width:20px;height:20px}.preset-name{font-size:13px;font-weight:600}.color-row{align-items:center;gap:12px;padding:8px 0;display:flex}.color-row label{color:var(--text-muted);flex:1;font-size:14px}.color-input{border:1px solid rgba(var(--text-rgb), .15);cursor:pointer;background:0 0;border-radius:8px;width:44px;height:32px;padding:2px}.donut-wrap{width:64px;height:64px;position:relative}.donut-label{color:var(--accent);justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex;position:absolute;inset:0}.meter{margin-bottom:16px}.meter-head{justify-content:space-between;margin-bottom:6px;font-size:13px;display:flex}.meter-head .ml{color:var(--text-muted);font-weight:600}.meter-head .mv{font-weight:700}.meter-bar{background:rgba(var(--text-rgb), .1);border-radius:6px;height:12px;overflow:hidden}.meter-bar i{background:linear-gradient(90deg, var(--grad-a), var(--grad-b));border-radius:6px;height:100%;transition:width .6s;display:block}.meter-bar i.over{background:linear-gradient(90deg, color-mix(in srgb, var(--neg) 78%, #000), var(--neg))}.meter-bar i.income{background:linear-gradient(90deg, color-mix(in srgb, var(--pos) 78%, #000), var(--pos))}.meter-tag{letter-spacing:.01em;margin-left:10px;font-size:12px;font-weight:700;display:inline-block}.tabs{background:rgba(var(--text-rgb), .06);border-radius:var(--r-md);gap:4px;margin-bottom:18px;padding:4px;display:inline-flex}.tab{border-radius:calc(var(--r-md) - 4px);color:var(--text-muted);background:0 0;align-items:center;gap:7px;padding:8px 16px;font-size:14px;font-weight:600;transition:all .18s;display:inline-flex}.tab:hover{color:var(--text)}.tab.active{color:var(--text);background:var(--surface);box-shadow:0 1px 3px #0000002e}.tab .tab-count{color:var(--text-muted);background:rgba(var(--text-rgb), .08);border-radius:999px;padding:1px 8px;font-size:12px;font-weight:700}.tab.active .tab-count{background:rgba(var(--accent-rgb), .16);color:var(--accent)}.timeline{padding:20px 4px 8px;position:relative}.timeline-track{background:rgba(var(--text-rgb), .1);border-radius:2px;height:4px;margin:30px 0;position:relative}.timeline-fill{background:linear-gradient(90deg, var(--grad-a), var(--grad-b));border-radius:2px;height:100%;position:absolute;top:0;left:0}.timeline-point{flex-direction:column;align-items:center;display:flex;position:absolute;top:50%;transform:translate(-50%,-50%)}.tp-dot{border:3px solid var(--surface);background:rgba(var(--text-rgb), .3);border-radius:50%;width:14px;height:14px}.tp-dot.paid{background:var(--accent)}.tp-dot.today{box-shadow:0 0 0 4px rgba(var(--accent-rgb), .4);background:#fff}.tp-label{color:var(--text-muted);white-space:nowrap;font-size:11px;position:absolute;top:18px}.tp-amount{white-space:nowrap;font-size:11px;font-weight:700;position:absolute;bottom:18px}.scenario{background:var(--surface-2);border:1px solid rgba(var(--text-rgb), .06);border-radius:var(--r-md);padding:16px}.scenario.best{border-color:var(--accent);background:rgba(var(--accent-rgb), .08)}.scenario-label{margin-bottom:4px;font-size:15px;font-weight:700}.scenario-date{font-family:var(--font-display);color:var(--accent);font-size:22px;font-weight:700}.scenario-desc{color:var(--text-muted);margin-top:4px;font-size:13px}.topbar{z-index:40;background:rgba(var(--surface-rgb), .72);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(var(--text-rgb), .06);padding:12px 24px;position:sticky;top:0}.month-switcher{justify-content:center;align-items:center;gap:14px;display:flex}.month-switcher .ms-arrow{border:1px solid rgba(var(--text-rgb), .1);background:var(--surface);width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:background .15s,border-color .15s;display:flex}.month-switcher .ms-arrow:hover{background:rgba(var(--accent-rgb), .15);border-color:rgba(var(--accent-rgb), .4)}.month-switcher .ms-center{align-items:baseline;gap:16px;min-width:0;display:flex}.month-switcher .ms-side{color:var(--text-muted);cursor:pointer;white-space:nowrap;opacity:.7;font-size:13px;transition:opacity .15s,color .15s}.month-switcher .ms-side:hover{opacity:1;color:var(--text)}.month-switcher .ms-current{font-family:var(--font-display);color:var(--accent);white-space:nowrap;font-size:18px;font-weight:700}.month-switcher .ms-today{border:1px solid rgba(var(--accent-rgb), .4);background:rgba(var(--accent-rgb), .12);color:var(--accent);cursor:pointer;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600}.month-switcher .ms-today:hover{background:rgba(var(--accent-rgb), .2)}@media (width<=560px){.topbar{padding:10px 14px}.month-switcher .ms-side{display:none}}.mobile-bar{display:none}@media (width<=1100px){.kpi-row{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr}}@media (width<=860px){.app{grid-template-columns:1fr}.sidebar{z-index:200;width:260px;transition:transform .25s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.mobile-bar{background:var(--surface);border-bottom:1px solid rgba(var(--text-rgb), .06);z-index:50;align-items:center;gap:12px;padding:14px 18px;display:flex;position:sticky;top:0}.mobile-bar .mb-title{font-family:var(--font-display);color:var(--accent);font-weight:700}.grid-2{grid-template-columns:1fr}.hp-stats{grid-template-columns:1fr;gap:12px}.hp-stat+.hp-stat{border-left:none;padding-left:0}.hero-media-inner{flex-direction:column}.scrim-backdrop{display:block}}.scrim-backdrop{z-index:150;background:#00000080;display:none;position:fixed;inset:0}.scrim-backdrop.show{display:block}.brand-logo-img{object-fit:contain;width:58px;height:58px;margin:0 auto 6px;display:block}.asset-row{border-top:1px solid rgba(var(--text-rgb), .07);align-items:center;gap:12px;padding:10px 0;display:flex}.asset-prev{background:rgba(var(--text-rgb), .06);border-radius:10px;flex:none;justify-content:center;align-items:center;width:52px;height:52px;display:flex;overflow:hidden}.asset-prev img{object-fit:contain;width:100%;height:100%}.asset-empty{color:var(--text-muted);font-size:11px}.asset-main{flex:1;min-width:0}.asset-label{margin-bottom:6px;font-size:13px;font-weight:600}.asset-actions{flex-wrap:wrap;gap:6px;display:flex}.preset-card{position:relative}.preset-del{color:#fff;opacity:0;background:#0006;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:15px;line-height:1;transition:opacity .15s;display:flex;position:absolute;top:4px;right:6px}.preset-card:hover .preset-del{opacity:1}.hp-progress-block{flex-direction:column;display:flex}.hp-milestones{flex-wrap:wrap;gap:8px 18px;margin-top:10px;display:flex}.hp-ms{color:var(--text-muted);cursor:default;align-items:center;gap:7px;font-size:13.5px;transition:color .15s;display:flex}.hp-ms:hover{color:var(--text)}.hp-ms-dot{background:rgba(var(--text-rgb), .35);border-radius:50%;flex-shrink:0;width:10px;height:10px}.hp-ms.last .hp-ms-dot{background:var(--pos);box-shadow:0 0 8px #5fd99a99}.hp-ms-mon{text-transform:none}.hp-ms-amt{color:var(--pos);font-weight:600}.dash-up-more{color:var(--accent);align-items:center;gap:4px;margin-top:8px;padding:0;font-size:12px;font-weight:600;transition:opacity .15s;display:inline-flex}.dash-up-more:hover{opacity:.7}.dash-rail{flex-direction:column;gap:16px;min-width:0;display:flex}.dash-actions{flex-direction:column;padding:18px;display:flex}.dash-quick{flex:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.dash-quick .btn{justify-content:center;gap:8px;width:100%;height:100%;min-height:46px}.scenario-row{justify-content:space-between;align-items:center;gap:8px;padding:4px 0;display:flex}.scenario-row+.scenario-row{border-top:1px solid rgba(var(--text-rgb), .06)}.auth-wrap{background:radial-gradient(1000px 500px at 80% -10%, rgba(var(--accent-rgb), .14), transparent 60%), var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--surface);border:1px solid rgba(var(--text-rgb), .08);border-radius:var(--r-lg);width:100%;max-width:380px;padding:28px 26px}.auth-brand{text-align:center;margin-bottom:20px}.auth-logo{font-size:40px;line-height:1}.auth-name{font-family:var(--font-display);color:var(--accent);margin-top:6px;font-size:24px;font-weight:700}.auth-tag{color:var(--text-muted);margin-top:2px;font-size:13px}.auth-tabs{background:rgba(var(--text-rgb), .05);border-radius:var(--r-md);grid-template-columns:1fr 1fr;gap:4px;margin-bottom:18px;padding:4px;display:grid}.auth-tab{border-radius:calc(var(--r-md) - 4px);color:var(--text-muted);padding:9px;font-size:14px;font-weight:600;transition:all .15s}.auth-tab.active{background:var(--surface-2);color:var(--text)}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-form label{color:var(--text-muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.auth-error{background:color-mix(in srgb, var(--neg) 14%, transparent);color:var(--neg);border-radius:var(--r-sm);padding:8px 12px;font-size:13px}.auth-switch{text-align:center;color:var(--text-muted);margin-top:16px;font-size:13px}.auth-switch button{color:var(--accent);font-weight:600}.profile-user .uemail{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:130px;font-size:11px;overflow:hidden}.cal-dot.paid{opacity:.35}.cal-pop-row.is-paid{opacity:.55}.cal-pop-row.is-paid .cal-pop-name{text-decoration:line-through}.row.row-paid{opacity:.7}.save-error-banner{z-index:300;background:color-mix(in srgb, var(--neg) 92%, #000);color:#fff;text-align:center;padding:8px 16px;font-size:13px;font-weight:600;position:sticky;top:0}
