:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--accent-bg:#b7a7ff;--accent:#7657e8;--accent-deep:#5f42d4;--accent-soft:#eee9ff;--accent-muted:#b9aaff;--accent-rgb:118, 87, 232;--accent-contrast:#fff;--purple-bg:var(--accent-bg);--purple:var(--accent);--purple-deep:var(--accent-deep);--purple-soft:var(--accent-soft);--page-bg:#fff;--panel:#fff;--panel-rgb:255, 255, 255;--panel-soft:#f7f4ff;--sidebar:#f6f3ff;--text:#201b31;--text-strong:#211b2f;--muted:#8d86a0;--line:#342b4f1a;--field-bg:#fff;--field-readonly:#fbfaff;--focus-ring:rgba(var(--accent-rgb), .24);--control-shadow:0 8px 18px #221b3a12;--panel-shadow:0 16px 34px #2b214814;--success:#2ea96a;--success-soft:#e7f7ef;--danger:#e85b6a;--danger-soft:#fdebed;--shadow:0 22px 60px #37238033;--brand-logo-light:#d5c1ff;--brand-logo-mid:#a981ff;--brand-logo-end:#cdb8ff;--brand-ray:#bea2ff;--brand-wave:#fff;--chart-grid:#f0edf7}:root[data-theme=black]{--accent-bg:#d8d8dc;--accent:#151515;--accent-deep:#000;--accent-soft:#eeeeef;--accent-muted:#9a9aa2;--accent-rgb:21, 21, 21;--panel-rgb:255, 255, 255;--panel-soft:#f6f6f7;--sidebar:#f3f3f4;--muted:#73737d;--line:#1515151f;--shadow:0 22px 60px #0f0f1229;--brand-logo-light:#f0f0f1;--brand-logo-mid:#323235;--brand-logo-end:#a2a2aa;--brand-ray:#38383d;--brand-wave:#fff;--chart-grid:#ededf0}:root[data-theme=blue]{--accent-bg:#bfdbfe;--accent:#2f7fd8;--accent-deep:#1d5ea8;--accent-soft:#e8f3ff;--accent-muted:#9cc8f6;--accent-rgb:47, 127, 216;--panel-soft:#f4f9ff;--sidebar:#eef7ff;--muted:#71859d;--line:#2f7fd824;--shadow:0 22px 60px #2f7fd829;--brand-logo-light:#d9ecff;--brand-logo-mid:#66aef2;--brand-logo-end:#b9dcff;--brand-ray:#84bdf4;--brand-wave:#fff;--chart-grid:#e5f1ff}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--accent-bg:#111114;--accent:#050506;--accent-deep:#000;--accent-soft:#27282d;--accent-muted:#575a62;--accent-rgb:5, 5, 6;--page-bg:#101114;--panel:#18191d;--panel-rgb:24, 25, 29;--panel-soft:#222329;--sidebar:#15161a;--text:#f4f4f6;--text-strong:#fff;--muted:#a0a1aa;--line:#ffffff1f;--field-bg:#1f2026;--field-readonly:#24252b;--control-shadow:0 8px 18px #00000038;--panel-shadow:0 16px 34px #00000047;--success-soft:#2ea96a29;--danger-soft:#e85b6a29;--shadow:0 22px 60px #0000006b;--brand-logo-light:#f4f4f6;--brand-logo-mid:#494b52;--brand-logo-end:#a7a8ae;--brand-ray:#f0f0f2;--brand-wave:#101114;--chart-grid:#ffffff1a}*{box-sizing:border-box}body{background:var(--page-bg);min-width:320px;color:var(--text);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.45}body.contribution-selection-lock,body.contribution-selection-lock *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}button,a{color:inherit;font:inherit}button{cursor:pointer;transform-origin:50%;transition:background .16s,border-color .16s,box-shadow .16s,color .16s,filter .16s,opacity .16s,transform .12s}button:active:not(:disabled):not(.magnetic-action),a.nav-item:active{filter:saturate(1.05);transform:translateY(1px)scale(.98)}button:focus-visible,a:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.click-spark-root{min-height:100vh}.click-spark-layer{z-index:80;pointer-events:none;position:fixed;inset:0;overflow:hidden}.click-spark{left:var(--spark-x);top:var(--spark-y);width:1px;height:1px;position:absolute}.click-spark i{background:linear-gradient(90deg, var(--accent), rgba(var(--accent-rgb), 0));opacity:.9;width:18px;height:2px;transform:rotate(var(--spark-angle)) translateX(0) scaleX(1);transform-origin:0;border-radius:999px;animation:.54s ease-out forwards click-spark-burst;position:absolute;top:0;left:0}@keyframes click-spark-burst{0%{opacity:.95;transform:rotate(var(--spark-angle)) translateX(0) scaleX(.45)}70%{opacity:.72}to{opacity:0;transform:rotate(var(--spark-angle)) translateX(22px) scaleX(.12)}}.magnetic-action{transform:translate3d(var(--magnetic-x,0), var(--magnetic-y,0), 0) scale(var(--magnetic-scale,1));will-change:transform;transition:background .18s,border-color .18s,box-shadow .18s,color .18s,transform .16s}.magnetic-action:active{--magnetic-scale:.96}@media (hover:none),(pointer:coarse){.magnetic-action,.magnetic-action:active{--magnetic-x:0px;--magnetic-y:0px;--magnetic-scale:1;transform:none}}.spotlight-surface{isolation:isolate;position:relative;overflow:hidden}.spotlight-surface:before{content:"";z-index:0;border-radius:inherit;background:radial-gradient(220px circle at var(--spotlight-x,50%) var(--spotlight-y,50%), rgba(var(--accent-rgb), .18), var(--accent-soft) 38%, transparent 68%);opacity:0;pointer-events:none;transition:opacity .18s;position:absolute;inset:-1px}.spotlight-surface:hover:before,.spotlight-surface:focus-within:before{opacity:1}.spotlight-surface>*{z-index:1;position:relative}.dashboard-page{background:var(--page-bg);min-height:100dvh;padding:0}.dashboard-frame{grid-template-columns:var(--sidebar-width,206px) minmax(0, 1fr);background:var(--panel);width:100%;min-height:100dvh;box-shadow:none;border-radius:0;margin:0 auto;transition:grid-template-columns .22s;display:grid;position:relative;overflow:hidden}.dashboard-frame.sidebar-collapsed{--sidebar-width:84px}.auth-page,.admin-page{background:var(--panel);min-height:100vh}.auth-page{place-items:center;padding:24px;display:grid}.auth-panel{border:1px solid var(--line);background:var(--panel);width:min(480px,100%);box-shadow:var(--panel-shadow);border-radius:22px;padding:26px}.auth-brand{align-items:center;gap:12px;margin-bottom:20px;display:flex}.auth-brand h1{margin:4px 0 0;font-size:24px;line-height:1.15}.auth-tabs{border:1px solid var(--line);background:var(--panel-soft);border-radius:999px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:18px;padding:5px;display:grid}.auth-tabs button{min-height:38px;color:var(--muted);background:0 0;border:0;border-radius:999px;font-weight:900}.auth-tabs button.active{background:var(--purple);color:var(--accent-contrast);box-shadow:0 10px 24px rgba(var(--accent-rgb), .2)}.auth-form,.admin-form{gap:14px;display:grid}.auth-form label,.admin-form label{color:var(--text);gap:7px;font-size:13px;font-weight:900;display:grid}.auth-form input,.admin-form input{border:1px solid var(--line);background:var(--field-bg);width:100%;min-height:42px;color:var(--text);font:inherit;border-radius:14px;outline:none;padding:0 13px;font-weight:700}.auth-form input:focus,.admin-form input:focus{border-color:rgba(var(--accent-rgb), .42);box-shadow:0 0 0 3px rgba(var(--accent-rgb), .12)}.auth-message{background:var(--panel-soft);color:var(--accent);border-radius:14px;padding:10px 12px;font-size:13px;font-weight:800}.auth-message.error{background:var(--danger-soft);color:var(--danger)}.auth-submit{width:100%}.auth-hint{color:var(--muted);margin:16px 0 0;font-size:12px;font-weight:800}.license-status-card{border:1px solid var(--line);background:var(--panel-soft);border-radius:16px;gap:5px;margin-bottom:18px;padding:14px;display:grid}.license-status-card span,.license-status-card small{color:var(--muted);font-size:12px;font-weight:800}.license-status-card strong{font-size:16px}.admin-page{gap:16px;padding:24px;display:grid}.admin-topbar{justify-content:space-between;align-items:center;gap:18px;display:flex}.admin-topbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.admin-message{width:fit-content}.admin-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.admin-layout{grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:14px;min-width:0;display:grid}.admin-table-panel{overflow:hidden}.admin-table{min-width:780px}.admin-muted,.admin-empty{color:var(--muted);font-size:12px;font-weight:800}.admin-log-list{gap:10px;max-height:382px;display:grid;overflow:auto}.admin-log-item{border:1px solid var(--line);background:var(--field-readonly);border-radius:14px;gap:4px;padding:12px;display:grid}.admin-log-item strong{font-size:13px}.admin-log-item span,.admin-log-item small{color:var(--muted);font-size:12px;font-weight:800}.sidebar{background:var(--sidebar);flex-direction:column;align-self:start;height:100dvh;min-height:100dvh;padding:24px 18px;transition:padding .22s;display:flex;position:sticky;top:0;overflow:hidden}.brand{align-items:center;gap:10px;min-height:44px;margin-bottom:42px;padding:0 4px;font-size:17px;display:flex}.brand-toggle{width:42px;height:42px;color:inherit;background:0 0;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.brand-toggle:focus-visible{outline:3px solid rgba(var(--accent-rgb), .22);outline-offset:3px}.brand-mark{background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex;overflow:hidden}.brand-logo-svg{width:34px;height:34px;display:block}.brand-logo-rays line{stroke:var(--brand-ray);stroke-width:7px;stroke-linecap:round}.brand-logo-wave{fill:none;stroke:var(--brand-wave);stroke-width:7.2px;stroke-linecap:round;stroke-linejoin:round}.brand-logo-curl{stroke-width:6.8px}.brand strong,.nav-item span,.sidebar-footer{transition:opacity .16s,width .22s,transform .22s}.mobile-sidebar-toggle{display:none}.sidebar-nav,.sidebar-footer{gap:10px;display:grid}.sidebar-footer{margin-top:auto;padding-top:34px}.nav-item{min-height:44px;color:var(--text);border-radius:22px;align-items:center;gap:12px;padding:0 14px;font-size:14px;font-weight:700;text-decoration:none;transition:background .18s,color .18s,transform .18s;display:flex}.dashboard-frame.sidebar-collapsed .sidebar{padding:24px 14px}.dashboard-frame.sidebar-collapsed .brand{justify-content:center;gap:0;height:44px;padding:0}.dashboard-frame.sidebar-collapsed .brand strong{opacity:0;width:0;overflow:hidden;transform:translate(-8px)}.dashboard-frame.sidebar-collapsed .nav-item{justify-content:center;gap:0;width:56px;height:56px;min-height:56px;padding:0}.dashboard-frame.sidebar-collapsed .sidebar-nav{justify-items:center}.dashboard-frame.sidebar-collapsed .nav-item span{opacity:0;width:0;overflow:hidden;transform:translate(-8px)}.dashboard-frame.sidebar-collapsed .sidebar-footer{align-items:center}.nav-item:hover,.nav-item.active{background:var(--purple);color:var(--accent-contrast);transform:translate(2px)}.dashboard-main{width:100%;min-width:0;min-height:100dvh;padding:24px;overflow:hidden}.dashboard-main-overview,.dashboard-main-section{flex-direction:column;display:flex}.topbar,.toolbar,.topbar-actions,.date-filter{align-items:center;display:flex}.topbar{justify-content:space-between;gap:18px;margin-bottom:20px}.topbar h1{letter-spacing:0;margin:0;font-size:clamp(24px,3vw,30px);line-height:1.1}.topbar p{color:var(--muted);margin:4px 0 0;font-size:14px}.topbar-actions{gap:10px}.icon-button,.round-icon,.card-link{border:1px solid var(--line);background:var(--panel);color:var(--text);box-shadow:var(--control-shadow);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.icon-button,.round-icon{width:44px;height:44px}.icon-button.small{width:34px;min-width:34px;height:34px}.profile-pill{border:1px solid var(--line);background:var(--panel);min-height:48px;box-shadow:var(--control-shadow);border-radius:999px;align-items:center;gap:10px;padding:5px 16px 5px 6px;display:flex}.avatar{background:var(--accent-soft);width:38px;height:38px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.profile-pill strong,.profile-pill small{white-space:nowrap;display:block}.profile-pill strong{font-size:13px}.profile-pill small{color:var(--muted);font-size:11px}.toolbar{justify-content:space-between;gap:14px;margin-bottom:14px}.date-filter{gap:8px}.pill-button,.primary-button,.mini-select{border:1px solid var(--line);background:var(--panel);min-height:42px;color:var(--text);box-shadow:var(--control-shadow);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:13px;font-weight:700;display:inline-flex}.pill-button:disabled,.primary-button:disabled,.mini-select:disabled{cursor:not-allowed;opacity:.48;box-shadow:none}.primary-button{background:var(--purple);color:var(--accent-contrast);border-color:#0000}.danger-button{color:var(--danger);border-color:#e85b6a2e}.icon-button:hover,.round-icon:hover,.card-link:hover,.pill-button:hover,.mini-select:hover{border-color:rgba(var(--accent-rgb), .24);box-shadow:var(--control-shadow)}.primary-button:hover{box-shadow:0 14px 28px rgba(var(--accent-rgb), .26)}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;min-width:0;margin-bottom:14px;display:grid}.metric-card,.panel{border:1px solid var(--line);background:var(--panel);min-width:0;box-shadow:var(--panel-shadow);border-radius:22px}.metric-card{min-height:168px;padding:18px;position:relative}.metric-card .card-link{position:absolute;top:16px;right:16px}.card-link{width:46px;height:46px}.metric-label{color:var(--text-strong);margin-bottom:26px;font-size:15px;font-weight:800;display:block}.metric-card strong{margin-bottom:16px;font-size:clamp(24px,2.4vw,30px);line-height:1.05;display:block}.metric-delta{border-radius:999px;align-items:center;gap:8px;max-width:100%;min-height:26px;padding:0 10px;font-size:12px;font-weight:800;display:inline-flex}.metric-delta small{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.metric-delta.positive{background:var(--success-soft);color:var(--success)}.metric-delta.warning{color:#d66b00;background:#f59e0b1f}.profit-contribution-card{height:100%;min-height:168px;box-shadow:none;-webkit-user-select:none;user-select:none;touch-action:pan-y;background:0 0;border:0;border-radius:18px;padding:0;display:flex;overflow:hidden}.contribution-carousel{perspective:1000px;width:100%;height:100%;min-height:168px;position:relative;overflow:hidden}.contribution-track{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:pan-y;height:100%;min-height:168px;display:flex}.contribution-track:active{cursor:grabbing}.contribution-slide{border:1px solid var(--line);background:var(--panel);height:100%;min-height:168px;color:var(--text);box-shadow:var(--panel-shadow);transform-style:preserve-3d;-webkit-user-select:none;user-select:none;border-radius:22px;flex-direction:column;flex:0 0 100%;padding:18px;display:flex}.contribution-rank-row,.contribution-meta-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.contribution-rank,.contribution-meta-row span{border-radius:999px;align-items:center;min-height:24px;font-size:11px;font-weight:900;display:inline-flex}.contribution-rank{color:var(--muted);background:#342b4f14;padding:0 8px}.contribution-profit{font-size:14px;font-weight:900}.contribution-profit.positive{color:var(--success)}.contribution-profit.negative{color:var(--danger)}.contribution-category{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:10px 0 8px;font-size:clamp(24px,2.4vw,30px);line-height:1.05;display:block;overflow:hidden}.contribution-meta-row{color:var(--muted);font-size:11px;font-weight:800}.contribution-meta-row span:first-child{background:var(--success-soft);color:var(--success);padding:0 8px}.contribution-sparkline{pointer-events:none;width:100%;height:32px;margin-top:auto;display:block}.contribution-sparkline line{stroke:var(--chart-grid);stroke-width:1px}.contribution-sparkline polyline{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.contribution-sparkline polyline.positive{stroke:var(--success)}.contribution-sparkline polyline.negative{stroke:var(--danger)}.contribution-empty{background:var(--panel);height:100%;min-height:168px;color:var(--muted);border:1px dashed #342b4f2e;border-radius:22px;place-items:center;font-size:12px;font-weight:800;display:grid}.contribution-empty strong{color:var(--text);margin:0;font-size:clamp(24px,2.4vw,30px);line-height:1.05}.content-grid{grid-template-columns:minmax(0,1fr) 310px;gap:14px;min-width:0;display:grid}.overview-content-grid{grid-template-columns:minmax(0,6fr) minmax(0,4fr);align-items:stretch}.dashboard-main-overview .overview-content-grid{flex:auto;min-height:380px}.overview-content-grid>.panel{height:326px;min-height:0}.dashboard-main-overview .overview-content-grid>.panel{height:100%;min-height:380px}.overview-content-grid .transactions-panel{flex-direction:column;display:flex}.overview-content-grid .transactions-panel .panel-header{flex:none}.overview-content-grid .transactions-panel .table-scroll{flex:auto;min-height:0;overflow:auto}.left-column,.right-column{gap:14px;min-width:0;display:grid}.panel{padding:16px 18px}.panel-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.panel-header h2{flex:none;margin:0;font-size:18px;line-height:1.2}.panel-header.has-controls{align-items:flex-start}.panel-header-controls{flex:auto;justify-content:flex-end;min-width:0;display:flex}.panel-header .card-link{width:44px;height:44px}.money-flow{min-height:286px}.mini-select{min-height:32px;padding:0 12px;font-size:12px}.profit-trend-top{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px;display:flex}.profit-trend-summary{gap:3px;display:grid}.profit-trend-summary span,.profit-trend-summary small{color:var(--muted);font-size:12px;font-weight:800}.profit-trend-summary strong{color:var(--text);font-size:24px;line-height:1.1}.profit-trend-delta.positive{color:var(--success)}.profit-trend-delta.negative{color:var(--danger)}.profit-trend-delta.flat{color:var(--muted)}.profit-trend-toggle{border:1px solid var(--line);background:var(--panel-soft);border-radius:999px;align-items:center;padding:4px;display:inline-flex}.profit-trend-toggle button{min-height:30px;color:var(--muted);background:0 0;border:0;border-radius:999px;padding:0 12px;font-size:12px;font-weight:900}.profit-trend-toggle button.active{background:var(--purple);color:var(--accent-contrast);box-shadow:0 8px 18px rgba(var(--accent-rgb), .22)}.profit-chart{min-height:162px;position:relative}.profit-chart svg{width:100%;height:162px;display:block}.profit-grid-line{stroke:var(--chart-grid);stroke-width:1px}.profit-zero-line{stroke:rgba(var(--accent-rgb), .24);stroke-dasharray:5 7;stroke-width:1.2px}.profit-area{fill:rgba(var(--accent-rgb), .14)}.profit-line{fill:none;stroke:var(--purple);stroke-linecap:round;stroke-linejoin:round;stroke-width:5px}.profit-point{fill:var(--panel);stroke:var(--purple);stroke-width:3px}.profit-point.current{fill:var(--purple)}.cost-area{fill:#f2a65a24}.cost-line{fill:none;stroke:#f2a65a;stroke-linecap:round;stroke-linejoin:round;stroke-width:5px}.cost-point{fill:var(--panel);stroke:#f2a65a;stroke-width:3px}.cost-point.current{fill:#f2a65a}.cost-trend-labels{align-items:start}.profit-chart-empty{color:var(--muted);text-align:center;pointer-events:none;font-size:13px;font-weight:800;position:absolute;inset:50% 0 auto;transform:translateY(-50%)}.profit-trend-labels{color:var(--muted);text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;font-size:11px;font-weight:800;display:grid}.profit-trend-labels .current{color:var(--purple)}.profit-trend-panel .panel-header{margin-bottom:10px}.dashboard-main-overview .profit-trend-panel{flex-direction:column;display:flex}.dashboard-main-overview .profit-chart{flex:auto;min-height:210px}.dashboard-main-overview .profit-chart svg{height:100%;min-height:210px}.budget-body{grid-template-columns:1fr 136px;align-items:center;gap:10px;display:grid}.cost-list{gap:11px;margin:0;padding:0;list-style:none;display:grid}.cost-list li{grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;font-size:12px;font-weight:700;display:grid}.cost-list i{border-radius:50%;width:8px;height:8px}.cost-list strong{color:var(--muted);font-size:11px}.donut-wrap{width:136px;height:136px;position:relative}.donut-wrap svg{width:136px;height:136px;transform:rotate(-90deg)}.donut-bg,.donut-segment{fill:none;stroke-width:12px;stroke-linecap:round}.donut-bg{stroke:var(--accent-soft)}.donut-segment{transform-origin:50%;stroke-linecap:butt;transition:stroke-dasharray .2s,stroke-dashoffset .2s}.donut-center{text-align:center;place-content:center;display:grid;position:absolute;inset:0}.donut-center span{color:var(--muted);font-size:11px;font-weight:700}.donut-center strong{font-size:16px}.transactions-panel{min-width:0;min-height:220px;overflow:hidden}.table-scroll{width:100%;max-width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:1380px}.selectable-table{min-width:1428px}th,td{border-bottom:1px solid var(--chart-grid);text-align:left;white-space:nowrap;padding:13px 16px;font-size:13px}th{background:var(--panel-soft);color:var(--muted);font-size:12px;font-weight:800}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfbff}tbody tr:active{background:#f4efff}tbody tr{cursor:default}tbody tr.selected-row{background:#f4efff}.select-cell{text-align:center;width:48px;min-width:48px}.select-cell input{width:16px;height:16px;accent-color:var(--purple);cursor:pointer}.order-no{color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.profit{border-radius:999px;justify-content:center;align-items:center;min-width:74px;min-height:28px;padding:0 10px;font-weight:800;display:inline-flex}.profit.positive{background:var(--success-soft);color:var(--success)}.profit.negative{background:var(--danger-soft);color:var(--danger)}.transactions-workspace,.cost-workspace,.analytics-workspace{flex:auto;gap:14px;min-height:0;display:grid}.transaction-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;width:100%;display:flex}.transaction-mode-toggle{border:1px solid var(--line);background:var(--panel-soft);border-radius:999px;align-items:center;padding:4px;display:inline-flex}.transaction-mode-toggle button{min-height:34px;color:var(--muted);background:0 0;border:0;border-radius:999px;padding:0 14px;font-size:12px;font-weight:900}.transaction-mode-toggle button.active{background:var(--purple);color:var(--accent-contrast);box-shadow:0 8px 18px rgba(var(--accent-rgb), .2)}.transaction-edit-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-button.active{border-color:rgba(var(--accent-rgb), .28);background:var(--purple-soft);color:var(--purple)}.transaction-selection-copy{background:var(--panel-soft);min-height:34px;color:var(--muted);border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.transaction-groups-panel,.transaction-filter-panel{border:1px solid var(--line);background:var(--panel);box-shadow:var(--panel-shadow);border-radius:18px;gap:14px;padding:16px 18px;display:grid}.transaction-groups-heading,.transaction-filter-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.transaction-groups-heading h2{margin:0;font-size:20px;line-height:1.2}.transaction-groups-heading p{color:var(--muted);margin:6px 0 0;font-size:12px;font-weight:800}.transaction-count-copy{color:var(--text);white-space:nowrap;justify-items:end;gap:3px;font-size:13px;font-weight:900;display:grid}.transaction-count-copy span,.transaction-filter-header span{color:var(--muted);font-size:12px;font-weight:800}.transaction-group-list{align-items:center;gap:10px;padding-bottom:2px;display:flex;overflow-x:auto}.group-chip{border:1px solid var(--line);background:var(--panel);min-height:38px;color:var(--text);font:inherit;white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:900;display:inline-flex}.group-chip small{background:var(--panel-soft);min-width:22px;height:22px;color:var(--muted);border-radius:999px;place-items:center;padding:0 6px;font-size:11px;display:inline-grid}.group-chip.active{background:var(--purple);color:var(--accent-contrast);box-shadow:0 10px 22px rgba(var(--accent-rgb), .2);border-color:#0000}.group-chip.active small{color:var(--accent-contrast);background:#fff3}.group-chip.create{color:var(--purple)}.transaction-filter-header strong{margin-bottom:3px;font-size:15px;display:block}.transaction-filter-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.transaction-filter-list{gap:10px;display:grid}.transaction-filter-row{grid-template-columns:minmax(130px,.28fr) minmax(180px,1fr) auto;align-items:center;gap:10px;display:grid}.transaction-filter-row select,.transaction-filter-row input,.group-form textarea{border:1px solid var(--line);background:var(--panel);width:100%;color:var(--text);font:inherit;border-radius:14px;outline:none;font-size:13px;font-weight:800;transition:border-color .18s,box-shadow .18s}.transaction-filter-row select,.transaction-filter-row input{height:40px;padding:0 12px}.transaction-filter-row select:focus,.transaction-filter-row input:focus,.group-form textarea:focus{border-color:rgba(var(--accent-rgb), .48);box-shadow:0 0 0 4px rgba(var(--accent-rgb), .11)}.empty-filter-copy{color:var(--muted);margin:0;font-size:13px;font-weight:800}.transaction-message{border-radius:14px;place-items:center;min-height:42px;padding:8px 12px;font-size:12px;font-weight:800;display:grid}.transaction-message.success{background:var(--success-soft);color:var(--success)}.modal-backdrop{z-index:70;background:#201b3157;place-items:center;padding:20px;animation:.18s ease-out both modal-backdrop-in;display:grid;position:fixed;inset:0}.bill-modal{border:1px solid rgba(var(--accent-rgb), .18);background:var(--panel);width:min(920px,100%);max-height:calc(100vh - 40px);box-shadow:var(--shadow);transform-origin:50%;border-radius:22px;animation:.26s cubic-bezier(.18,.86,.28,1) both bill-modal-in;overflow:auto}.group-modal{border:1px solid rgba(var(--accent-rgb), .18);background:var(--panel);width:min(520px,100%);box-shadow:var(--shadow);border-radius:22px;overflow:hidden}@keyframes modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes bill-modal-in{0%{opacity:0;transform:translateY(18px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.bill-modal-header{z-index:2;border-bottom:1px solid var(--line);background:rgba(var(--panel-rgb), .94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;gap:14px;padding:18px 20px 12px;display:flex;position:sticky;top:0}.bill-modal-header h2{margin:0;font-size:22px;line-height:1.1}.confirm-backdrop{z-index:72;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#201b3152;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-dialog{border:1px solid var(--line);background:var(--panel);width:min(468px,100%);box-shadow:var(--shadow);transform-origin:50%;border-radius:20px;padding:20px;position:relative;overflow:hidden}.confirm-dialog:before{display:none}.confirm-dialog-visual,.confirm-dialog-copy,.confirm-dialog-actions{z-index:1;position:relative}.confirm-dialog-visual,.confirm-dialog-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.confirm-icon{border-radius:14px;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.confirm-icon.danger{background:var(--danger-soft);color:var(--danger)}.confirm-dialog-copy{gap:8px;margin-top:18px;display:grid}.confirm-dialog-copy h2{letter-spacing:0;margin:0;font-size:20px;line-height:1.2}.confirm-dialog-copy p{color:var(--muted);margin:0;font-size:13px;font-weight:800}.confirm-dialog-actions{justify-content:flex-end;margin-top:22px}.confirm-delete-button{background:var(--danger);box-shadow:0 12px 24px #e85b6a2e}.confirm-delete-button:hover{box-shadow:0 14px 28px #e85b6a38}.form-error-summary{background:var(--danger-soft);color:var(--danger);border-radius:14px;margin:16px 20px 0;padding:10px 12px;font-size:13px;font-weight:900}.bill-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:18px 20px 20px;display:grid}.group-form{gap:14px;padding:18px 20px 20px;display:grid}.form-field{align-content:start;gap:7px;min-width:0;display:grid}.form-field label{color:var(--text-strong);font-size:12px;font-weight:900}.form-field input,.select-control{border:1px solid var(--line);background:var(--field-bg);width:100%;height:42px;min-height:42px;color:var(--text);font:inherit;border-radius:14px;outline:none;padding:0 12px;font-size:13px;font-weight:800;transition:border-color .18s,box-shadow .18s}.group-form textarea{resize:vertical;min-height:108px;padding:12px;line-height:1.5}.select-control{text-align:left;justify-content:space-between;align-items:center;padding-right:36px;display:flex;position:relative}.select-control:after{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);pointer-events:none;width:8px;height:8px;position:absolute;top:50%;right:14px;transform:translateY(-65%)rotate(45deg)}.select-control.placeholder{color:var(--muted)}.form-field input:focus,.select-control:focus{border-color:rgba(var(--accent-rgb), .48);box-shadow:0 0 0 4px rgba(var(--accent-rgb), .11)}.form-field.has-error input,.form-field.has-error .select-control{border-color:#e85b6a94}.field-error{color:var(--danger);font-size:11px;font-weight:800}.suggest-field,.select-field{position:relative}.select-menu{z-index:5;border:1px solid rgba(var(--accent-rgb), .18);background:var(--panel);max-height:168px;box-shadow:var(--panel-shadow);border-radius:16px;gap:4px;padding:8px;display:grid;position:absolute;top:68px;left:0;right:0;overflow:auto}.select-menu button{min-height:34px;color:var(--text);font:inherit;text-align:left;background:0 0;border:0;border-radius:12px;padding:0 10px;font-size:13px;font-weight:900}.select-menu button:hover,.select-menu button.active{background:var(--purple-soft);color:var(--purple)}.suggestion-list{z-index:4;border:1px solid rgba(var(--accent-rgb), .18);background:var(--panel);max-height:128px;box-shadow:var(--panel-shadow);border-radius:16px;flex-wrap:wrap;gap:6px;padding:10px;display:flex;position:absolute;top:68px;left:0;right:0;overflow:auto}.suggestion-list button{border:1px solid rgba(var(--accent-rgb), .18);background:var(--purple-soft);min-height:28px;color:var(--purple);border-radius:999px;padding:0 10px;font-size:12px;font-weight:900}.suggestion-list button:hover{background:var(--purple);color:var(--accent-contrast)}.readonly-field{border:1px solid var(--line);background:var(--field-readonly);border-radius:16px;min-height:72px;padding:10px 12px}.profit-preview{font-size:20px;line-height:1.1}.profit-preview.positive{color:var(--success)}.profit-preview.negative{color:var(--danger)}.bill-form-actions{grid-column:1/-1;justify-content:flex-end;gap:10px;padding-top:4px;display:flex}.analytics-controls{grid-template-columns:minmax(0,1fr) minmax(340px,.8fr);align-items:center;gap:18px;display:grid}.section-kicker{color:var(--purple);margin-bottom:6px;font-size:12px;font-weight:900;display:block}.analytics-controls h2,.trend-heading h2{margin:0;font-size:22px;line-height:1.2}.analytics-controls p,.trend-heading p{color:var(--muted);margin:6px 0 0;font-size:13px}.selector-stack{gap:10px;display:grid}.selector-row{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.selector-pill{border:1px solid var(--line);background:var(--panel);min-height:38px;color:var(--text);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:800;display:inline-flex}.selector-pill span{background:var(--purple-soft);min-width:24px;height:24px;color:var(--purple);border-radius:999px;justify-content:center;align-items:center;font-size:12px;display:inline-flex}.selector-pill.active{background:var(--purple);color:var(--accent-contrast);box-shadow:0 12px 28px rgba(var(--accent-rgb), .22);border-color:#0000}.selector-pill.active span{color:var(--accent-contrast);background:#ffffff38}.selector-pill.soft.active{background:#11101b}.analytics-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.analysis-card{border:1px solid var(--line);background:var(--panel);min-height:112px;box-shadow:var(--panel-shadow);border-radius:22px;padding:18px}.analysis-card span,.analysis-card small{color:var(--muted);font-size:12px;font-weight:800;display:block}.analysis-card strong{margin:10px 0 8px;font-size:24px;line-height:1.1;display:block}.analysis-card.positive strong{color:var(--success)}.analysis-card.negative strong{color:var(--danger)}.analytics-layout{grid-template-columns:340px minmax(0,1fr);gap:14px;min-width:0;display:grid}.model-panel{min-width:0}.model-list{gap:10px;max-height:402px;padding-right:2px;display:grid;overflow:auto}.model-item{border:1px solid var(--line);background:var(--panel);text-align:left;border-radius:16px;gap:5px;width:100%;padding:13px 14px;display:grid}.model-item span,.model-item small{color:var(--muted);font-size:12px;font-weight:800}.model-item strong{color:var(--text-strong);font-size:13px;line-height:1.35}.model-item.active{border-color:rgba(var(--accent-rgb), .28);background:linear-gradient(135deg, var(--panel-soft) 0%, var(--accent-soft) 100%);box-shadow:0 12px 28px rgba(var(--accent-rgb), .14)}.trend-panel{min-width:0}.trend-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.trend-badge{border-radius:16px;justify-items:end;gap:3px;min-width:96px;padding:10px 12px;font-size:12px;font-weight:900;display:grid}.trend-badge strong{font-size:20px}.trend-badge.up{background:var(--success-soft);color:var(--success)}.trend-badge.down{background:var(--danger-soft);color:var(--danger)}.trend-chart{border:1px solid var(--line);background:linear-gradient(180deg, rgba(var(--accent-rgb), .08), rgba(var(--panel-rgb), 0)), var(--panel);border-radius:20px;overflow:hidden}.trend-chart svg{width:100%;height:220px;display:block}.trend-chart line{stroke:var(--chart-grid);stroke-width:1px}.trend-chart polyline{fill:none;stroke:var(--purple);stroke-linecap:round;stroke-linejoin:round;stroke-width:5px}.trend-chart circle{fill:var(--panel);stroke:var(--purple);stroke-width:3px}.trend-scale{color:var(--muted);justify-content:space-between;padding:0 16px 14px;font-size:12px;font-weight:800;display:flex}.trend-meta-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.trend-meta-grid div{border:1px solid var(--line);background:var(--field-readonly);border-radius:16px;padding:14px}.trend-meta-grid span{color:var(--muted);margin-bottom:7px;font-size:12px;font-weight:800;display:block}.trend-meta-grid strong{font-size:14px}.quote-board-panel{overflow:hidden}.quote-table-scroll{overflow-x:auto}.quote-table{background:#fff5cf;border:1px solid #574f38;min-width:900px}.quote-table th,.quote-table td{border-color:#6d6444;padding:8px 10px;font-size:12px}.quote-table th{color:#17130b;background:#ffd95f;font-weight:900}.quote-table td{background:#fff6d8}.quote-up{color:#178c57;font-weight:900}.quote-down{color:var(--danger);font-weight:900}.settings-workspace{gap:14px;min-width:0;display:grid}.settings-panel{gap:18px;display:grid}.settings-panel-heading{align-items:flex-start;gap:12px;display:flex}.settings-panel-heading h2{margin:0;font-size:20px;line-height:1.2}.settings-panel-heading p{color:var(--muted);margin:5px 0 0;font-size:13px;font-weight:800}.settings-panel-icon{background:var(--accent-soft);width:38px;height:38px;color:var(--accent);border-radius:14px;flex:none;justify-content:center;align-items:center;display:inline-flex}.settings-profile-grid{grid-template-columns:190px minmax(0,1fr);align-items:start;gap:18px;display:grid}.settings-avatar-editor{justify-items:center;gap:10px;display:grid}.settings-avatar-preview{border:1px solid var(--line);background:var(--accent-soft);width:104px;height:104px;color:var(--accent);box-shadow:var(--control-shadow);border-radius:50%;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.settings-avatar-preview img{object-fit:cover;width:100%;height:100%;display:block}.avatar-upload-button{min-height:36px;padding:0 14px}.avatar-upload-button input{display:none}.text-button{color:var(--muted);background:0 0;border:0;font-size:12px;font-weight:900}.text-button:hover{color:var(--accent)}.settings-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.settings-form-grid.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.form-field input[readonly]{background:var(--field-readonly);color:var(--muted)}.settings-message{background:var(--panel-soft);min-height:38px;color:var(--accent);border-radius:14px;align-items:center;padding:8px 12px;font-size:13px;font-weight:900;display:grid}.settings-actions{justify-content:flex-end;display:flex}.theme-options{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.theme-option{border:1px solid var(--line);background:var(--panel);min-height:82px;color:var(--text);text-align:left;box-shadow:var(--control-shadow);border-radius:18px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 10px;padding:14px;display:grid}.theme-option strong,.theme-option small{display:block}.theme-option strong{font-size:14px}.theme-option small{color:var(--muted);grid-column:2;font-size:12px;font-weight:800}.theme-option.active{border-color:rgba(var(--accent-rgb), .42);background:var(--accent-soft);box-shadow:0 12px 24px rgba(var(--accent-rgb), .16)}.theme-swatch{border:1px solid var(--line);width:32px;height:32px;box-shadow:inset 0 0 0 6px var(--panel);border-radius:50%}.theme-swatch-purple{background:#7657e8}.theme-swatch-blue{background:#2f7fd8}.theme-swatch-black{background:#151515}.theme-swatch-dark{background:#101114}@media (width<=1080px){.dashboard-page{padding:0}.dashboard-frame{grid-template-columns:var(--sidebar-width,206px) minmax(0, 1fr)}.sidebar{min-height:100dvh;padding:18px 14px}.brand{margin-bottom:30px}.content-grid{grid-template-columns:1fr}.right-column{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-controls,.analytics-layout,.admin-layout,.admin-metric-grid{grid-template-columns:1fr}.selector-row{justify-content:flex-start}.settings-form-grid.three-columns{grid-template-columns:1fr}}@media (width<=820px){.dashboard-frame{grid-template-columns:minmax(0,1fr)}.dashboard-frame.sidebar-collapsed{--sidebar-width:206px}.mobile-sidebar-toggle{z-index:30;border:1px solid var(--line);background:var(--panel);width:42px;height:42px;color:var(--text);box-shadow:var(--control-shadow);border-radius:50%;justify-content:center;align-items:center;position:absolute;top:14px;left:12px}.dashboard-frame.sidebar-collapsed .mobile-sidebar-toggle{display:inline-flex}.sidebar{z-index:24;width:220px;min-height:100%;box-shadow:var(--shadow);padding:18px 14px;transition:none;position:absolute;inset:0 auto 0 0;transform:translate(0)}.dashboard-frame:not(.sidebar-collapsed) .sidebar{pointer-events:auto;transform:translate(0)}.dashboard-frame.sidebar-collapsed .sidebar{pointer-events:none;padding:18px 14px;transform:translate(-100%)}.dashboard-frame.sidebar-collapsed .brand{justify-content:flex-start;gap:10px;height:auto;padding:0 4px}.dashboard-frame.sidebar-collapsed .brand strong,.dashboard-frame.sidebar-collapsed .nav-item span,.dashboard-frame.sidebar-collapsed .sidebar-footer{opacity:1;width:auto;overflow:visible;transform:none}.dashboard-frame.sidebar-collapsed .nav-item{justify-content:flex-start;gap:12px;width:auto;height:auto;min-height:44px;padding:0 14px}.dashboard-frame.sidebar-collapsed .sidebar-footer{align-items:stretch}.dashboard-main{grid-column:1;padding:58px 18px 18px}.topbar,.toolbar,.admin-topbar{flex-direction:column;align-items:flex-start}.topbar-actions,.admin-topbar-actions{flex-wrap:wrap;width:100%}.panel-header.has-controls{flex-direction:column}.panel-header-controls{width:100%}.transaction-header-actions{justify-content:flex-start}.transaction-groups-heading,.transaction-filter-header{flex-direction:column}.transaction-count-copy{justify-items:start}.transaction-filter-row{grid-template-columns:minmax(0,1fr)}.settings-profile-grid,.settings-form-grid,.theme-options{grid-template-columns:1fr}.settings-avatar-editor{justify-items:start}.metric-grid,.right-column,.analytics-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trend-meta-grid{grid-template-columns:1fr}.bill-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.dashboard-page{padding:0}.auth-page,.admin-page{padding:14px}.auth-panel{border-radius:20px;padding:18px}.dashboard-frame{border-radius:0}.metric-grid,.right-column,.budget-body,.analytics-summary-grid{grid-template-columns:1fr}.metric-card,.profit-contribution-card,.contribution-carousel,.contribution-track,.contribution-slide,.contribution-empty{min-height:132px}.profile-pill{max-width:100%}.profit-trend-top{flex-direction:column}.profit-trend-toggle{width:100%}.profit-trend-toggle button{flex:1}.overview-content-grid>.panel{height:auto}.dashboard-main-overview .overview-content-grid{flex:0 auto;min-height:0}.dashboard-main-overview .overview-content-grid>.panel{height:auto;min-height:0}.overview-content-grid .transactions-panel{height:326px}.modal-backdrop{align-items:end;padding:12px}.bill-modal{border-radius:20px;width:100%;max-height:calc(100vh - 24px)}.group-modal{border-radius:20px;width:100%}.bill-modal-header{padding:16px 16px 10px}.confirm-backdrop{place-items:end center;padding:12px}.confirm-dialog{border-radius:20px;width:100%;padding:18px}.confirm-dialog-actions{flex-direction:column-reverse;align-items:stretch}.confirm-dialog-actions .pill-button,.confirm-dialog-actions .primary-button{width:100%}.bill-form{grid-template-columns:1fr;padding:16px}.group-form{padding:16px}.form-error-summary{margin:14px 16px 0}.bill-form-actions{flex-direction:column-reverse}.bill-form-actions .pill-button,.bill-form-actions .primary-button{width:100%}.donut-wrap{margin:0 auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.click-spark-layer{display:none}.magnetic-action{--magnetic-x:0px;--magnetic-y:0px;--magnetic-scale:1;transform:none!important}.spotlight-surface:before{display:none}}
