:root{

  --bg:#0b1220;--bg-soft:#0f172a;--surface:#121c2f;--surface-2:#172338;--surface-3:#1d2b43;

  --border:#25344e;--border-strong:#35506f;--text:#f4f7fb;--text-2:#b7c2d4;--muted:#7d8ba3;

  --primary:#7dd3fc;--primary-strong:#38bdf8;--primary-ink:#082f49;--success:#6ee7b7;--warning:#fcd34d;--danger:#fca5a5;--info:#a5b4fc;

  --shadow:0 18px 55px rgba(0,0,0,.28);--shadow-soft:0 10px 30px rgba(0,0,0,.16);

  --radius-sm:9px;--radius:14px;--radius-lg:20px;--radius-xl:28px;--sidebar:252px;--topbar:76px;

  --font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;

}

[data-theme="light"]{--bg:#f5f7fb;--bg-soft:#eef2f7;--surface:#fff;--surface-2:#f8fafc;--surface-3:#edf2f7;--border:#dbe3ee;--border-strong:#c2cfde;--text:#122033;--text-2:#42526a;--muted:#76849a;--shadow:0 18px 50px rgba(44,62,90,.10);--shadow-soft:0 8px 24px rgba(44,62,90,.08)}

*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.08;letter-spacing:-.035em;margin-bottom:9px}h2{font-size:1.08rem;letter-spacing:-.015em;margin-bottom:4px}h3{font-size:1rem;margin-bottom:6px}p{color:var(--text-2);margin-bottom:0}.skip-link{position:fixed;left:12px;top:-50px;z-index:9999;background:var(--text);color:var(--bg);padding:9px 12px;border-radius:8px}.skip-link:focus{top:12px}.app-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,#0e1728 0%,#0a111e 100%);border-right:1px solid rgba(255,255,255,.07);display:flex;flex-direction:column;padding:22px 16px;z-index:50}.sidebar-brand,.auth-brand{display:flex;align-items:center;gap:12px;padding:3px 7px 24px}.sidebar-brand>span:last-child,.auth-brand>span:last-child{display:flex;flex-direction:column}.sidebar-brand strong,.auth-brand strong{font-size:1.08rem;letter-spacing:.12em}.sidebar-brand small,.auth-brand small{color:#8090aa;font-size:.72rem;margin-top:1px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--primary);color:#07263b;font-weight:900;box-shadow:0 8px 22px rgba(56,189,248,.20)}.brand-mark.large{width:48px;height:48px;border-radius:14px;font-size:1.2rem}.sidebar-nav{display:flex;flex-direction:column;gap:5px;flex:1}.nav-link{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:11px;color:#9dacbf;font-size:.91rem;font-weight:600;transition:.16s ease}.nav-link:hover{background:rgba(255,255,255,.055);color:#eef6ff}.nav-link.active{background:rgba(125,211,252,.12);color:#e8f7ff;box-shadow:inset 0 0 0 1px rgba(125,211,252,.13)}.nav-icon{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:rgba(255,255,255,.055);font-size:.68rem;color:#9fb2c9}.nav-link.active .nav-icon{background:rgba(125,211,252,.16);color:var(--primary)}.nav-section-label{font-size:.66rem;text-transform:uppercase;letter-spacing:.15em;color:#526179;font-weight:800;margin:18px 12px 7px}.sidebar-footer{border-top:1px solid rgba(255,255,255,.065);padding-top:14px;display:flex;align-items:center;gap:7px}.account-card{display:flex;align-items:center;gap:10px;padding:6px;min-width:0;flex:1;border-radius:10px}.account-card:hover{background:rgba(255,255,255,.05)}.avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#20324b;color:var(--primary);font-weight:800}.avatar-large{width:66px;height:66px;font-size:1.4rem;margin-bottom:12px}.account-meta{display:flex;flex-direction:column;min-width:0}.account-meta strong{font-size:.79rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-meta small{font-size:.67rem;color:#72819a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-form{margin:0}.app-main{grid-column:2;min-width:0}.topbar{position:sticky;top:0;height:var(--topbar);z-index:35;display:flex;align-items:center;justify-content:space-between;padding:0 34px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.topbar-title{display:flex;flex-direction:column}.topbar-title strong{font-size:.93rem}.eyebrow{display:block;font-size:.67rem;line-height:1.3;text-transform:uppercase;letter-spacing:.15em;font-weight:800;color:var(--primary);margin-bottom:6px}.topbar-title .eyebrow{font-size:.58rem;margin-bottom:2px}.topbar-profile{display:flex;align-items:center;gap:8px;color:var(--text-2);font-size:.8rem;font-weight:600}.status-dot{width:7px;height:7px;background:var(--success);border-radius:50%;box-shadow:0 0 0 4px rgba(110,231,183,.1)}.icon-button{border:1px solid var(--border);width:36px;height:36px;border-radius:10px;background:var(--surface-2);color:var(--text-2);cursor:pointer;transition:.16s}.icon-button:hover{color:var(--text);border-color:var(--border-strong);background:var(--surface-3)}.mobile-menu-button{display:none}.page-container{max-width:1480px;margin:0 auto;padding:34px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin:0 0 26px}.page-heading>div:first-child{max-width:760px}.page-heading p{font-size:.94rem}.panel,.stat-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft);border-radius:var(--radius-lg)}.panel{padding:22px}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}.panel-header p{font-size:.8rem;color:var(--muted)}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}.compact-stats{grid-template-columns:repeat(3,minmax(0,1fr));max-width:930px}.stat-card{padding:20px;min-height:145px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;width:90px;height:90px;right:-30px;bottom:-36px;border-radius:50%;background:rgba(125,211,252,.045)}.stat-top{display:flex;align-items:center;justify-content:space-between;color:var(--text-2);font-size:.77rem;font-weight:700}.stat-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:rgba(125,211,252,.08);color:var(--primary);font-size:.7rem}.stat-card>strong{font-size:clamp(1.45rem,2.7vw,2.05rem);letter-spacing:-.035em}.stat-card>small{color:var(--muted);font-size:.72rem}.content-grid{display:grid;gap:20px}.content-grid-2-1{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}.content-grid-1-1{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:20px}.transaction-list{display:flex;flex-direction:column}.transaction-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--border)}.transaction-row:first-child{padding-top:0}.transaction-row:last-child{border-bottom:0;padding-bottom:0}.transaction-avatar,.category-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--surface-2);border:1px solid var(--border);color:var(--primary);font-weight:800}.transaction-main{display:flex;flex-direction:column;min-width:0}.transaction-main strong{font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transaction-main small{font-size:.71rem;color:var(--muted);margin-top:2px}.transaction-amount{font-size:.85rem;font-weight:800;color:var(--danger)}.progress-list{display:flex;flex-direction:column;gap:17px}.progress-item>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:.78rem;margin-bottom:7px}.progress-item strong{font-size:.76rem}.progress-track{height:6px;background:var(--surface-3);border-radius:999px;overflow:hidden}.progress-track span{display:block;height:100%;background:linear-gradient(90deg,var(--primary-strong),var(--primary));border-radius:999px}.progress-track.full{grid-column:1/-1}.button{appearance:none;border:1px solid transparent;border-radius:10px;min-height:41px;padding:0 15px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:800;font-size:.8rem;cursor:pointer;transition:.16s ease;white-space:nowrap}.button:focus-visible,.input:focus-visible,.icon-button:focus-visible,.nav-link:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid rgba(125,211,252,.3);outline-offset:2px}.button-primary{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}.button-primary:hover{background:#a5e3ff;border-color:#a5e3ff;transform:translateY(-1px)}.button-secondary{background:var(--surface-2);border-color:var(--border);color:var(--text)}.button-secondary:hover{border-color:var(--border-strong);background:var(--surface-3)}.button-ghost{background:transparent;border-color:transparent;color:var(--text-2)}.button-ghost:hover{background:var(--surface-2);color:var(--text)}.button-danger-ghost{background:rgba(252,165,165,.045);border-color:rgba(252,165,165,.18);color:var(--danger)}.button-danger-ghost:hover{background:rgba(252,165,165,.1);border-color:rgba(252,165,165,.33)}.button-small{min-height:34px;padding:0 11px;font-size:.73rem;border-radius:9px}.button-block{width:100%}.text-link{color:var(--primary);font-size:.75rem;font-weight:800}.field{display:flex;flex-direction:column;gap:6px;color:var(--text-2);font-size:.75rem;font-weight:700}.field>span:first-child{display:flex;align-items:center;gap:4px}.field em{font-style:normal;font-size:.67rem;font-weight:500;color:var(--muted)}.input{width:100%;min-height:43px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:9px 11px;transition:.15s}.input:hover{border-color:var(--border-strong)}.input:focus{border-color:var(--primary-strong);background:var(--surface);box-shadow:0 0 0 3px rgba(56,189,248,.08);outline:none}.input::placeholder{color:color-mix(in srgb,var(--muted) 75%,transparent)}.input:disabled{opacity:.65;cursor:not-allowed}.input.invalid{border-color:rgba(252,165,165,.75);box-shadow:0 0 0 3px rgba(252,165,165,.07)}select.input{cursor:pointer}.textarea{resize:vertical;min-height:96px}.field-error{color:var(--danger);font-weight:600;font-size:.68rem}.field-help{color:var(--muted);font-weight:500;font-size:.68rem}.form-stack{display:flex;flex-direction:column;gap:15px}.form-grid{display:grid;gap:14px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-actions{display:flex;align-items:center;gap:10px;padding-top:3px}.check-field{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);cursor:pointer}.check-field input{margin-top:3px;width:16px;height:16px;accent-color:var(--primary-strong)}.check-field span{display:flex;flex-direction:column}.check-field strong{font-size:.78rem}.check-field small{font-size:.68rem;color:var(--muted);margin-top:2px}.input-prefix{display:flex;align-items:center;position:relative}.input-prefix>span{position:absolute;left:12px;color:var(--muted);z-index:1}.input-prefix .input{padding-left:34px}.filter-panel{margin-bottom:20px;padding:18px 20px}.filter-grid{display:grid;grid-template-columns:1fr 1.3fr 1fr auto;gap:13px;align-items:end}.filter-actions{display:flex;gap:7px}.field-inline{display:flex;flex-direction:row;align-items:center;gap:8px}.field-inline .input{width:auto;min-width:145px}.year-input{width:100px!important;min-width:100px!important}.search-form{display:flex;align-items:flex-end;gap:10px}.grow{flex:1}.table-panel{padding:0;overflow:hidden}.table-panel .panel-header{padding:21px 22px 0}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table th{padding:11px 16px;text-align:left;color:var(--muted);font-size:.64rem;text-transform:uppercase;letter-spacing:.09em;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface-2)}.data-table td{padding:14px 16px;border-bottom:1px solid var(--border);font-size:.77rem;color:var(--text-2);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}.data-table td strong{color:var(--text)}.text-right{text-align:right!important}.amount-cell{color:var(--text)!important;font-weight:800}.actions-col{width:180px}.row-actions{display:flex;justify-content:flex-start;gap:6px}.row-actions form{margin:0}.muted-cell{color:var(--muted)!important;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-subtext{display:block;color:var(--muted);font-size:.66rem;margin-top:3px}.category-line{display:flex;align-items:center;gap:9px}.category-line>span:last-child{display:flex;flex-direction:column}.category-line small{font-size:.65rem;color:var(--muted)}.category-dot{width:8px;height:8px;border-radius:50%;background:var(--primary)}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;background:var(--surface-3);border:1px solid var(--border);color:var(--text-2);font-size:.63rem;font-weight:800}.badge-info{background:rgba(165,180,252,.08);border-color:rgba(165,180,252,.2);color:var(--info)}.badge-success{background:rgba(110,231,183,.08);border-color:rgba(110,231,183,.2);color:var(--success)}.badge-warning{background:rgba(252,211,77,.08);border-color:rgba(252,211,77,.2);color:var(--warning)}.badge-muted{color:var(--muted)}.badge-admin{background:rgba(252,211,77,.07);border-color:rgba(252,211,77,.17);color:var(--warning)}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:44px 22px}.empty-state.compact{padding:26px 8px}.empty-state h3{margin:8px 0 5px}.empty-state p{max-width:420px;font-size:.8rem;margin-bottom:15px}.empty-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:rgba(125,211,252,.07);border:1px solid rgba(125,211,252,.14);color:var(--primary);font-weight:800}.form-layout{display:grid;grid-template-columns:minmax(0,720px) minmax(240px,330px);gap:20px;align-items:start}.form-panel{padding:24px}.side-note{position:sticky;top:calc(var(--topbar) + 20px)}.side-note-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:rgba(125,211,252,.08);color:var(--primary);margin-bottom:15px;font-weight:900}.side-note p{font-size:.78rem}.chip-list{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border-radius:10px;background:var(--surface-2);border:1px solid var(--border);font-size:.73rem;font-weight:700}.chip small{font-size:.57rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 22px 22px}.category-card{border:1px solid var(--border);border-radius:14px;background:var(--surface-2);padding:14px}.category-card-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}.category-card-top>div{display:flex;flex-direction:column}.category-card-top strong{font-size:.8rem}.category-card-top small{font-size:.66rem;color:var(--muted)}.category-icon.small{width:31px;height:31px;border-radius:9px;font-size:.68rem}.category-edit{margin-top:12px;border-top:1px solid var(--border);padding-top:9px}.category-edit summary{font-size:.68rem;color:var(--primary);font-weight:800;cursor:pointer}.compact-form{gap:8px;margin-top:10px;margin-bottom:7px}.compact-form .input{min-height:36px;font-size:.72rem}.analytics-list{display:flex;flex-direction:column}.analytics-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 18px;padding:16px 0;border-bottom:1px solid var(--border)}.analytics-row:last-child{border-bottom:0}.analytics-label{display:flex;align-items:center;gap:11px}.analytics-label>div,.analytics-value{display:flex;flex-direction:column}.analytics-label strong,.analytics-value strong{font-size:.8rem}.analytics-label small,.analytics-value small{font-size:.67rem;color:var(--muted)}.analytics-value{text-align:right}.month-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.month-card{background:var(--surface-2);border:1px solid var(--border);border-radius:13px;padding:14px;display:flex;flex-direction:column}.month-card>span{color:var(--muted);font-size:.67rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.month-card>strong{font-size:.95rem;margin:6px 0 2px}.month-card>small{font-size:.64rem;color:var(--muted)}.export-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.export-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:17px;align-items:center}.export-card p{font-size:.77rem}.export-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:14px;background:rgba(125,211,252,.08);border:1px solid rgba(125,211,252,.14);color:var(--primary);font-size:.72rem;font-weight:900}.muted-export{opacity:.74}.account-summary{text-align:center}.account-summary .avatar{margin-left:auto;margin-right:auto}.account-summary>p{font-size:.77rem}.detail-list{margin-top:20px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.detail-list>div{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--border);font-size:.73rem}.detail-list>div:last-child{border-bottom:0}.detail-list span{color:var(--muted)}.security-note{text-align:left;margin-top:17px;padding:12px;border:1px solid rgba(125,211,252,.13);border-radius:11px;background:rgba(125,211,252,.05)}.security-note strong{font-size:.72rem;color:var(--primary)}.security-note p{font-size:.68rem;margin-top:3px}.alert{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border-radius:11px;border:1px solid var(--border);margin-bottom:16px;font-size:.75rem;background:var(--surface)}.alert-icon{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;font-weight:900;flex:0 0 auto}.alert-success{border-color:rgba(110,231,183,.2);background:rgba(110,231,183,.055)}.alert-success .alert-icon{background:rgba(110,231,183,.12);color:var(--success)}.alert-error{border-color:rgba(252,165,165,.23);background:rgba(252,165,165,.055)}.alert-error .alert-icon{background:rgba(252,165,165,.12);color:var(--danger)}.alert-info .alert-icon,.alert-warning .alert-icon{background:rgba(125,211,252,.1);color:var(--primary)}.alert-close{margin-left:auto;border:0;background:none;color:var(--muted);cursor:pointer;font-size:1rem}.error-page{max-width:660px;margin:8vh auto;text-align:center;padding:50px 30px}.error-code{font-size:.66rem;letter-spacing:.16em;color:var(--primary);font-weight:900}.error-page h1{margin:10px 0}.error-page p{margin-bottom:20px}.auth-body{min-height:100vh;background:#09111e}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(360px,1.05fr) minmax(430px,.95fr)}.auth-brand-panel{padding:52px clamp(32px,6vw,88px);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;background:radial-gradient(circle at 20% 10%,rgba(56,189,248,.13),transparent 30%),linear-gradient(145deg,#0d1829,#09111e 68%)}.auth-brand-panel:after{content:"";position:absolute;right:-140px;bottom:-140px;width:360px;height:360px;border-radius:50%;border:80px solid rgba(125,211,252,.025)}.auth-copy{max-width:630px;position:relative;z-index:1}.auth-copy h1{font-size:clamp(2.7rem,6vw,5.1rem);max-width:800px}.auth-copy p{font-size:clamp(.98rem,1.7vw,1.15rem);max-width:560px}.auth-trust{display:flex;flex-wrap:wrap;gap:8px;position:relative;z-index:1}.auth-trust span{padding:7px 10px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);border-radius:999px;color:#8fa0b9;font-size:.67rem;font-weight:700}.auth-form-panel{background:#0c1422;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:34px}.auth-card{width:min(100%,470px);background:#111c2e;border:1px solid #24344f;border-radius:24px;padding:30px;box-shadow:var(--shadow)}.auth-card-header{margin-bottom:22px}.auth-card-header h2{font-size:1.55rem;margin-bottom:7px}.auth-card-header p{font-size:.78rem}.auth-secondary{text-align:center;margin-top:18px;color:#7d8ba3;font-size:.73rem}.auth-secondary a,.auth-card a{color:var(--primary);font-weight:800}.auth-footnote{font-size:.61rem;color:#506078;margin-top:14px}.form-inline-between{display:flex;justify-content:flex-end;font-size:.71rem}.password-field{position:relative;display:block}.password-field .input{padding-right:58px}.password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:none;color:var(--primary);font-size:.66rem;font-weight:800;cursor:pointer;padding:6px}.sidebar-backdrop{display:none}

@media(max-width:1180px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.month-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-grid{grid-template-columns:1fr 1fr}.filter-actions{align-self:end}.export-grid{grid-template-columns:1fr}}

@media(max-width:900px){.app-shell{display:block}.sidebar{transform:translateX(-105%);transition:transform .22s ease;box-shadow:var(--shadow)}.sidebar.open{transform:translateX(0)}.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(3,8,18,.58);z-index:45;opacity:0;pointer-events:none;transition:.2s}.sidebar.open+.sidebar-backdrop{opacity:1;pointer-events:auto}.app-main{min-width:0}.topbar{padding:0 20px}.mobile-menu-button{display:inline-grid;place-items:center;margin-right:12px}.topbar-title{margin-right:auto}.page-container{padding:26px 20px}.content-grid-2-1,.content-grid-1-1,.form-layout{grid-template-columns:1fr}.side-note{position:static}.auth-shell{grid-template-columns:1fr}.auth-brand-panel{display:none}.auth-form-panel{min-height:100vh}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.export-card{grid-template-columns:auto minmax(0,1fr)}.export-card .button,.export-card>.badge{grid-column:1/-1;justify-self:start}.topbar-profile span:last-child{display:none}}

@media(max-width:680px){h1{font-size:1.8rem}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:21px}.page-heading .button{width:100%}.stat-grid,.compact-stats{grid-template-columns:1fr 1fr}.stat-card{min-height:128px;padding:16px}.stat-card>strong{font-size:1.35rem}.form-grid.two,.filter-grid,.month-grid,.category-grid{grid-template-columns:1fr}.filter-actions{display:grid;grid-template-columns:1fr 1fr}.search-form{align-items:stretch;flex-direction:column}.field-inline{width:100%;align-items:stretch;flex-direction:column}.field-inline .input,.year-input{width:100%!important;min-width:0!important}.data-table{min-width:0}.data-table thead{display:none}.data-table,.data-table tbody,.data-table tr,.data-table td{display:block;width:100%}.data-table tr{border-bottom:1px solid var(--border);padding:10px 14px}.data-table tr:last-child{border-bottom:0}.data-table td{border:0;padding:6px 0;display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;text-align:left!important}.data-table td:before{content:attr(data-label);color:var(--muted);font-size:.62rem;text-transform:uppercase;letter-spacing:.07em;font-weight:800}.row-actions{flex-wrap:wrap}.muted-cell{max-width:none;white-space:normal}.table-wrap{overflow:visible}.panel{padding:18px}.table-panel{padding:0}.table-panel .panel-header{padding:18px 18px 0}.transaction-row{grid-template-columns:auto minmax(0,1fr)}.transaction-amount{grid-column:2}.auth-form-panel{padding:18px}.auth-card{padding:24px 20px;border-radius:18px}.category-card-top{grid-template-columns:auto minmax(0,1fr)}.category-card-top>.badge{grid-column:2}.export-card{grid-template-columns:1fr}.export-icon{margin-bottom:4px}.analytics-row{grid-template-columns:1fr}.analytics-value{text-align:left;margin-left:42px}.topbar{height:66px}.page-container{padding-top:22px}}

@media(max-width:430px){.stat-grid,.compact-stats{grid-template-columns:1fr}.topbar{padding:0 14px}.page-container{padding-left:14px;padding-right:14px}.form-actions{align-items:stretch;flex-direction:column}.form-actions .button{width:100%}}

@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.analytics-bucket{margin:28px 0 42px}.analytics-bucket-header{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:16px}.analytics-bucket-header h2{font-size:1.35rem;margin:0 0 4px}.analytics-bucket-header p{font-size:.8rem}.analytics-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.analytics-kpi{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:18px;padding:18px;background:linear-gradient(135deg,var(--surface),var(--surface-2));box-shadow:var(--shadow-soft);min-height:158px;display:flex;flex-direction:column}.analytics-kpi:after{content:"";position:absolute;width:140px;height:140px;right:-64px;bottom:-78px;border-radius:50%;background:rgba(125,211,252,.08)}.analytics-kpi-expense:after{background:rgba(252,165,165,.08)}.analytics-kpi-net:after{background:rgba(110,231,183,.07)}.analytics-kpi-top{display:flex;justify-content:space-between;align-items:center;color:var(--text-2);font-size:.76rem;font-weight:800}.analytics-kpi-mark{display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:rgba(125,211,252,.11);color:var(--primary);font-size:1rem}.analytics-kpi-expense .analytics-kpi-mark{color:var(--danger);background:rgba(252,165,165,.1)}.analytics-kpi-net .analytics-kpi-mark{color:var(--success);background:rgba(110,231,183,.1)}.analytics-kpi>strong{font-size:clamp(1.5rem,3vw,2.12rem);letter-spacing:-.05em;line-height:1.1;margin:20px 0 4px;position:relative;z-index:1}.analytics-kpi>small{font-size:.67rem;color:var(--muted);position:relative;z-index:1}.analytics-kpi-comparison{margin-top:auto;position:relative;z-index:1;font-size:.65rem;font-weight:800;padding-top:13px}.analytics-kpi-comparison.is-up{color:var(--success)}.analytics-kpi-comparison.is-down{color:var(--danger)}.analytics-kpi-comparison.is-na{color:var(--muted)}.analytics-hero{padding:25px;margin-bottom:18px;background:radial-gradient(circle at 85% 15%,rgba(125,211,252,.11),transparent 31%),var(--surface)}.analytics-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:.67rem;font-weight:800;color:var(--text-2)}.analytics-legend span:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:var(--primary)}.analytics-legend .legend-expense:before{background:var(--danger)}.analytics-legend .legend-net-positive:before{background:var(--success)}.analytics-legend .legend-net-negative:before{background:var(--danger)}.analytics-line-chart,.analytics-net-chart{display:block;width:100%;height:240px;overflow:visible}.chart-gridline{stroke:var(--border);stroke-width:1}.chart-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-line-income{stroke:var(--primary-strong)}.chart-line-expense{stroke:var(--danger)}.chart-line-net{stroke:var(--success)}.chart-baseline{stroke:var(--muted);stroke-width:1;stroke-dasharray:4 4}.chart-label{font:7px var(--font);fill:var(--muted)}.analytics-chart-text{display:flex;justify-content:center;gap:22px;flex-wrap:wrap;font-size:.73rem;color:var(--text-2);padding-top:7px}.analytics-chart-text strong{color:var(--text);margin-left:4px}.analytics-visual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.donut-layout{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px;align-items:center}.analytics-donut{--chart-0:#38bdf8;--chart-1:#a5b4fc;--chart-2:#6ee7b7;--chart-3:#fcd34d;--chart-4:#fca5a5;--chart-other:#64748b;width:142px;height:142px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(var(--surface) 0 43%,transparent 44%),conic-gradient(var(--slices));margin:auto;box-shadow:inset 0 0 0 1px var(--border)}.analytics-donut span{font-size:.8rem;font-weight:900;text-align:center;padding:0 18px;line-height:1.2}.analytics-segment-list{display:flex;flex-direction:column;gap:10px;min-width:0}.analytics-segment-list>div{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:8px;align-items:center;font-size:.7rem}.analytics-segment-list strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analytics-segment-list>div>span:last-child{grid-column:2;color:var(--muted);font-size:.64rem}.segment-dot{width:9px;height:9px;border-radius:50%;background:var(--chart-0)}.segment-1{background:var(--chart-1)}.segment-2{background:var(--chart-2)}.segment-3{background:var(--chart-3)}.segment-4{background:var(--chart-4)}.segment-other{background:var(--chart-other)}.analytics-bars{display:flex;flex-direction:column;gap:14px}.analytics-bar>div{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px;font-size:.72rem}.analytics-bar strong{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analytics-bar div span{color:var(--muted);font-size:.65rem;white-space:nowrap}.analytics-bar-track{display:block;height:8px;background:var(--surface-3);border-radius:999px;overflow:hidden}.analytics-bar-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary-strong),#a5b4fc)}.analytics-detail-link{display:inline-block;margin-top:17px}.analytics-net{margin-bottom:18px}.analytics-net-chart{height:188px}.analytics-insights{margin-bottom:18px;background:linear-gradient(130deg,rgba(165,180,252,.09),rgba(125,211,252,.04) 55%,var(--surface))}.analytics-insights ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.analytics-insights li{position:relative;border:1px solid var(--border);background:rgba(10,20,36,.18);border-radius:12px;padding:12px 12px 12px 30px;font-size:.76rem;color:var(--text-2)}.analytics-insights li:before{content:"✓";position:absolute;left:11px;color:var(--primary);font-weight:900}.analytics-details{display:grid;gap:18px}.comparison-panel{margin-top:2px}

@media(max-width:900px){.analytics-visual-grid{grid-template-columns:1fr}.analytics-line-chart{height:215px}.analytics-bucket-header{align-items:flex-start;flex-direction:column}.analytics-insights ul{grid-template-columns:1fr}}

@media(max-width:680px){.analytics-kpis{grid-template-columns:1fr}.analytics-kpi{min-height:133px}.analytics-kpi>strong{margin:14px 0 3px}.analytics-hero{padding:18px}.analytics-hero .panel-header,.analytics-net .panel-header{flex-direction:column;gap:9px}.analytics-line-chart{height:185px}.analytics-net-chart{height:150px}.donut-layout{grid-template-columns:122px minmax(0,1fr);gap:12px}.analytics-donut{width:116px;height:116px}.analytics-donut span{font-size:.68rem;padding:0 12px}.analytics-bar>div{align-items:flex-start;flex-direction:column;gap:2px}.analytics-bar div span{white-space:normal}.analytics-insights li{font-size:.72rem}.analytics-bucket{margin-top:22px}}

.inline-edit{position:relative}.inline-edit>summary{list-style:none}.inline-edit>summary::-webkit-details-marker{display:none}.compact-edit-form{position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:min(360px,80vw);padding:14px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);display:grid;gap:9px}.compact-edit-form .field>span{font-size:.62rem}.compact-edit-form .input{min-height:36px;font-size:.72rem}.compact-check{padding:7px 0}.compact-check span strong{font-size:.7rem}@media(max-width:680px){.inline-edit{position:static}.compact-edit-form{position:static;width:100%;margin-top:8px;box-shadow:none}.row-actions .inline-edit{width:100%}.row-actions .inline-edit>summary{width:100%}}

.analytics-comparison-controls{margin-bottom:18px}.analytics-year-comparison{display:grid;gap:18px}.analytics-year-kpis{margin:0}.comparison-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.comparison-values span{display:grid;gap:3px;min-width:0}.comparison-values small{color:var(--muted);font-weight:800}.comparison-values strong{font-size:.9rem;overflow-wrap:anywhere}.analytics-year-chart{margin:0}.analytics-year-comparison-chart{display:block;width:100%;height:250px;overflow:visible}.comparison-bar-a{fill:rgba(56,189,248,.38)}.comparison-bar-b{fill:rgba(248,113,113,.38)}.analytics-comparison-table{margin:0}.analytics-comparison-table .data-table td:first-child strong{overflow-wrap:anywhere}@media(max-width:900px){.analytics-year-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.analytics-year-kpis{grid-template-columns:1fr}.analytics-year-comparison-chart{height:200px}.comparison-table{min-width:620px}}



.form-errors{border:1px solid rgba(252,165,165,.23);background:rgba(252,165,165,.055);border-radius:11px;padding:11px 13px;color:var(--text-2);font-size:.75rem}.form-errors strong{display:block;color:var(--danger);margin-bottom:5px}.form-errors ul{margin:0;padding-left:18px}



/* Mobile action rows must not depend on a translated data-label value. */

.data-table td.action-cell{grid-template-columns:1fr}.data-table td.action-cell:before{display:none}



/* EXP-049 financial home dashboard: server-prepared, selected-currency presentation only. */

.dashboard-home-heading{align-items:flex-end}.dashboard-filters{display:grid;grid-template-columns:150px 110px auto;gap:9px;align-items:end}.dashboard-filters .input{min-height:39px}.dashboard-section{margin-bottom:20px}.dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.dashboard-kpi{position:relative;overflow:hidden;min-height:158px;padding:18px;border:1px solid var(--border);border-radius:18px;background:linear-gradient(135deg,var(--surface),var(--surface-2));box-shadow:var(--shadow-soft);display:flex;flex-direction:column}.dashboard-kpi:after{content:"";position:absolute;right:-46px;bottom:-65px;width:130px;height:130px;border-radius:50%;background:rgba(125,211,252,.08)}.dashboard-kpi-expenses:after{background:rgba(252,165,165,.09)}.dashboard-kpi-net:after{background:rgba(110,231,183,.09)}.dashboard-kpi-top{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text-2);font-size:.75rem;font-weight:800}.dashboard-kpi-top>span:last-child{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:rgba(125,211,252,.1);color:var(--primary);font-size:.75rem}.dashboard-kpi>strong{position:relative;z-index:1;margin:21px 0 5px;font-size:clamp(1.28rem,2.25vw,1.85rem);letter-spacing:-.045em;overflow-wrap:anywhere}.dashboard-kpi>small{position:relative;z-index:1;margin-top:auto;color:var(--muted);font-size:.66rem;font-weight:700}.dashboard-comparison.up{color:var(--success)}.dashboard-comparison.down{color:var(--danger)}.dashboard-comparison.flat{color:var(--primary)}.dashboard-visual-grid{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(280px,1fr);gap:20px}.dashboard-activity,.dashboard-distribution{min-width:0}.dashboard-activity-legend{display:flex;flex-wrap:wrap;gap:13px;margin:-4px 0 13px;font-size:.66rem;color:var(--text-2);font-weight:800}.dashboard-activity-legend span:before{content:"";display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:var(--primary-strong)}.dashboard-activity-legend span:nth-child(2):before{background:var(--danger)}.dashboard-activity-legend span:last-child:before{background:var(--muted)}.dashboard-activity-chart{display:flex;align-items:end;gap:4px;height:195px;padding:11px 3px 0;border-bottom:1px solid var(--border);overflow-x:auto}.dashboard-activity-column{display:grid;grid-template-rows:1fr auto;gap:7px;min-width:24px;flex:1;text-align:center}.dashboard-activity-bars{height:160px;display:flex;align-items:end;justify-content:center;gap:3px}.dashboard-activity-bars span{display:block;width:calc(50% - 2px);min-height:2px;border-radius:5px 5px 0 0;background:var(--primary-strong)}.dashboard-activity-bars .expense-bar{background:var(--danger)}.dashboard-activity-column small{font-size:.57rem;color:var(--muted);white-space:nowrap}.dashboard-activity-table-wrap{overflow-x:auto;margin-top:15px}.dashboard-activity-table{width:100%;border-collapse:collapse;font-size:.67rem;white-space:nowrap}.dashboard-activity-table th,.dashboard-activity-table td{padding:7px 8px;text-align:right;border-bottom:1px solid var(--border)}.dashboard-activity-table th:first-child,.dashboard-activity-table td:first-child{text-align:left}.dashboard-activity-table th{color:var(--muted);font-size:.58rem;text-transform:uppercase;letter-spacing:.07em}.dashboard-donut-layout{display:grid;grid-template-columns:140px minmax(0,1fr);gap:16px;align-items:center}.dashboard-donut{width:136px;height:136px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(var(--surface) 0 43%,transparent 44%),conic-gradient(var(--slices));box-shadow:inset 0 0 0 1px var(--border)}.dashboard-donut span{display:flex;flex-direction:column;gap:3px;padding:0 18px;text-align:center;color:var(--muted);font-size:.6rem;font-weight:800}.dashboard-donut strong{color:var(--text);font-size:.72rem;overflow-wrap:anywhere}.dashboard-wallet-list{display:flex;flex-direction:column;gap:10px;min-width:0}.dashboard-wallet-list>div{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:8px;align-items:center}.dashboard-wallet-list strong{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-wallet-list small{grid-column:2;color:var(--muted);font-size:.62rem}.dashboard-dot{grid-row:span 2;width:9px;height:9px;border-radius:50%;background:#38bdf8}.dashboard-dot-1{background:#a5b4fc}.dashboard-dot-2{background:#6ee7b7}.dashboard-dot-3{background:#fcd34d}.dashboard-dot-4{background:#fca5a5}.dashboard-wallet-list.signed>div{grid-template-columns:minmax(0,1fr) auto;padding:9px 0;border-bottom:1px solid var(--border)}.dashboard-wallet-list.signed>div:last-child{border-bottom:0}.dashboard-wallet-list.signed small{grid-column:2;white-space:nowrap}.dashboard-distribution-note{padding:11px 12px;margin-bottom:13px;border:1px solid rgba(252,211,77,.22);border-radius:11px;background:rgba(252,211,77,.055)}.dashboard-distribution-note strong{font-size:.72rem;color:var(--warning)}.dashboard-distribution-note p{margin-top:3px;font-size:.67rem}.dashboard-goal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.dashboard-goal{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2)}.dashboard-goal-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:rgba(125,211,252,.1);color:var(--primary);font-size:.73rem;font-weight:900}.dashboard-goal-main{display:flex;flex-direction:column;min-width:0;gap:3px}.dashboard-goal-main strong{font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-goal-main small,.dashboard-goal-amount small{font-size:.61rem;color:var(--muted)}.dashboard-goal-main .progress-track{margin-top:3px}.dashboard-goal-amount{display:flex;flex-direction:column;align-items:end;text-align:right;min-width:0}.dashboard-goal-amount strong{font-size:.72rem;white-space:nowrap}.dashboard-goal-amount small{white-space:nowrap}

@media(max-width:1180px){.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-visual-grid{grid-template-columns:1fr}.dashboard-goal-grid{grid-template-columns:1fr}}

@media(max-width:680px){.dashboard-home-heading{align-items:stretch}.dashboard-filters{grid-template-columns:1fr 1fr}.dashboard-filters .button{grid-column:1/-1;width:100%}.dashboard-kpi{min-height:136px;padding:15px}.dashboard-kpi>strong{margin:16px 0 4px;font-size:1.2rem}.dashboard-activity-chart{height:174px}.dashboard-activity-bars{height:140px}.dashboard-donut-layout{grid-template-columns:116px minmax(0,1fr);gap:12px}.dashboard-donut{width:112px;height:112px}.dashboard-donut span{padding:0 10px;font-size:.54rem}.dashboard-donut strong{font-size:.61rem}.dashboard-goal{grid-template-columns:auto minmax(0,1fr)}.dashboard-goal-amount{grid-column:2;align-items:start;text-align:left}.dashboard-goal-amount small{white-space:normal}.dashboard-activity-table{font-size:.62rem}}



/* EXP-050: authoritative server-rendered Posted Cashflow Activity time series. */

.dashboard-activity-legend .dashboard-activity-net-legend:before{background:#a5b4fc}.dashboard-activity-chart{display:block;height:auto;padding:0;border:0;overflow-x:auto}.dashboard-activity-svg{display:block;width:100%;min-width:620px;height:auto}.dashboard-activity-grid{stroke:var(--border);stroke-width:1}.dashboard-activity-zero-line{stroke:var(--text-2);stroke-width:1.4}.dashboard-activity-y-label,.dashboard-activity-x-label{fill:var(--muted);font-size:10px;font-weight:700}.dashboard-activity-svg path.dashboard-activity-line{fill:none!important;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.8}.dashboard-activity-svg path.dashboard-activity-line.income{stroke:#38bdf8}.dashboard-activity-svg path.dashboard-activity-line.expenses{stroke:#f87171}.dashboard-activity-svg path.dashboard-activity-line.net{stroke:#a5b4fc}.dashboard-activity-point circle.income{stroke:#38bdf8;fill:#38bdf8}.dashboard-activity-point circle.expenses{stroke:#f87171;fill:#f87171}.dashboard-activity-point circle.net{stroke:#a5b4fc;fill:#a5b4fc}.dashboard-activity-point{cursor:help;outline:none}.dashboard-activity-point circle{stroke-width:1.5;transition:r .15s ease}.dashboard-activity-point:hover circle,.dashboard-activity-point:focus circle{r:5;stroke:var(--surface);stroke-width:2.5}.dashboard-activity-zero{margin:0 0 12px}.dashboard-activity-table-wrap{max-height:255px}.dashboard-activity-table{min-width:520px}@media(max-width:680px){.dashboard-activity-chart{height:auto}.dashboard-activity-svg{min-width:570px}.dashboard-activity-y-label,.dashboard-activity-x-label{font-size:9px}}



/* EXP-050 final visual remediation: equal desktop cards with centered, useful Wallet distribution. */

@media(min-width:1181px){.dashboard-visual-grid{align-items:stretch}.dashboard-distribution{display:flex;flex-direction:column;min-height:0}.dashboard-distribution>.dashboard-donut-layout{flex:1;min-height:420px;grid-template-columns:1fr;justify-items:center;align-content:center;gap:20px}.dashboard-distribution .dashboard-donut{width:clamp(240px,23vw,340px);height:clamp(240px,23vw,340px)}.dashboard-distribution .dashboard-wallet-list{width:min(100%,300px)}}

@media(min-width:681px) and (max-width:1180px){.dashboard-distribution .dashboard-donut-layout{grid-template-columns:220px minmax(0,300px);justify-content:center;gap:24px}.dashboard-distribution .dashboard-donut{width:220px;height:220px}}

@media(max-width:680px){.dashboard-distribution .dashboard-donut-layout{grid-template-columns:1fr;justify-items:center;gap:18px}.dashboard-distribution .dashboard-donut{width:min(72vw,250px);height:min(72vw,250px)}.dashboard-distribution .dashboard-wallet-list{width:min(100%,300px)}}


/* 2026-09-12 admin users sortable headers. */
.sort-link{display:inline-flex;align-items:center;gap:7px;color:inherit;font:inherit;font-weight:inherit;white-space:nowrap}.sort-link:hover{color:var(--primary)}.sort-indicator{display:inline-grid;place-items:center;min-width:16px;color:var(--muted);font-size:.68rem;line-height:1}.data-table th[aria-sort="ascending"] .sort-indicator,.data-table th[aria-sort="descending"] .sort-indicator{color:var(--primary)}
/* 2026-09-12 client-side sortable grid headers: arrows read as table affordances, not buttons. */
.table-sort-button{appearance:none;-webkit-appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;padding:0;margin:0;display:inline-flex;align-items:center;gap:7px;cursor:pointer;white-space:nowrap;text-align:inherit}.table-sort-button:hover,.table-sort-button:focus-visible{color:var(--primary)}.table-sort-button-right{margin-left:auto}.table-sort-arrows{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:0;width:10px;color:var(--muted);font-size:.52rem;line-height:.62;opacity:.72;transform:translateY(-1px)}.data-table th.sorted-asc .table-sort-arrows span:first-child,.data-table th.sorted-desc .table-sort-arrows span:last-child{color:var(--primary);opacity:1}.data-table th.sorted-asc .table-sort-arrows span:last-child,.data-table th.sorted-desc .table-sort-arrows span:first-child{opacity:.28}.data-table th[aria-sort="none"] .table-sort-arrows span{opacity:.62}


/* 2026-09-12 navigation UX: the primary sidebar is a hamburger-controlled drawer on every viewport. */
.app-shell{display:block}.sidebar{width:min(var(--sidebar),calc(100vw - 28px));transform:translateX(-105%);transition:transform .22s ease;box-shadow:var(--shadow)}.sidebar.open{transform:translateX(0)}.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(3,8,18,.58);z-index:45;opacity:0;pointer-events:none;transition:opacity .2s ease}.sidebar.open+.sidebar-backdrop{opacity:1;pointer-events:auto}.app-main{min-width:0}.sidebar-nav{min-height:0;overflow-y:auto}.mobile-menu-button{display:inline-grid;place-items:center;margin-right:12px}.sidebar-open{overflow:hidden}@media(min-width:901px){.page-container{padding-left:34px;padding-right:34px}}

/* 2026-09-12 filtered grand totals, recurring definitions and pinnable desktop navigation. */
.analytics-v2-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.analytics-v2-tabs a{padding:10px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);font-size:.78rem;font-weight:800;color:var(--text-2)}.analytics-v2-tabs a.active{background:rgba(125,211,252,.14);border-color:rgba(125,211,252,.35);color:var(--primary)}.analytics-v2-controls{margin-bottom:20px}.analytics-v2-periods,.analytics-v2-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.analytics-v2-periods{margin-bottom:14px}.analytics-v2-more{margin-top:15px;border-top:1px solid var(--border);padding-top:12px}.analytics-v2-more summary{cursor:pointer;color:var(--primary);font-size:.76rem;font-weight:800;margin-bottom:12px}.analytics-v2-form .field{min-width:150px;flex:1}.analytics-v2-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.analytics-v2-chart-grid,.analytics-v2-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:18px}.analytics-v2-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-v2-chart-grid .panel{min-height:250px}.analytics-v2-bar{margin:13px 0}.analytics-v2-bar>div{display:flex;justify-content:space-between;gap:10px;font-size:.72rem}.analytics-v2-bar strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analytics-v2-bar span{white-space:nowrap;color:var(--muted)}.analytics-v2-bar i{display:block;height:8px;margin-top:6px;background:var(--surface-3);border-radius:999px;overflow:hidden}.analytics-v2-bar b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary-strong),#a5b4fc)}.analytics-v2-months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:18px 0}.analytics-v2-months h2,.analytics-v2-months p{grid-column:1/-1}.analytics-v2-months>div{display:flex;flex-direction:column;padding:8px;background:var(--surface-2);border-radius:9px;font-size:.68rem}.analytics-v2-months span{color:var(--muted)}
@media(max-width:900px){.analytics-v2-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-v2-chart-grid{grid-template-columns:1fr}.analytics-v2-detail-grid{grid-template-columns:1fr}}@media(max-width:680px){.analytics-v2-kpis{grid-template-columns:1fr}.analytics-v2-form{display:grid;grid-template-columns:1fr}.analytics-v2-form .field{min-width:0}.analytics-v2-periods .button{flex:1}.analytics-v2-months{grid-template-columns:repeat(2,minmax(0,1fr))}}
.analytics-v2-trend{max-height:370px;overflow:auto}.analytics-v2-trend>div{min-width:180px}
.sidebar-brand-copy{display:flex;flex-direction:column;min-width:0}.sidebar-pin-button{display:none;margin-left:auto;flex:0 0 auto;font-size:.9rem}.sidebar-pin-button.active{color:var(--primary);border-color:rgba(125,211,252,.32);background:rgba(125,211,252,.1)}.app-main{transition:margin-left .22s ease}.grand-total-row td{background:color-mix(in srgb,var(--surface-2) 82%,var(--surface));border-top:1px solid var(--border-strong);border-bottom:0;font-weight:800}.grand-total-row .amount-cell{color:var(--text)}
@media(min-width:901px){.sidebar.pinned{transform:translateX(0);box-shadow:none}.sidebar-pinned .app-main{margin-left:var(--sidebar)}.sidebar-pin-button{display:inline-grid;place-items:center}.sidebar-pinned{overflow:auto}}
@media(max-width:900px){.sidebar-pin-button{display:none!important}.sidebar-pinned .app-main{margin-left:0}}
@media(max-width:680px){.data-table tfoot{display:block;width:100%}.grand-total-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px!important}.grand-total-row td{display:block!important;width:auto!important;padding:3px 0!important}.grand-total-row td:before{display:none!important}.grand-total-row td:first-child{grid-column:1}.grand-total-row td:nth-last-child(2){grid-column:2;text-align:right!important}.grand-total-row td:last-child{display:none!important}}

/* EXP-051 visual acceptance remediation: graphical Analytics presentation only. */
.forecast-chart{overflow-x:auto}.forecast-chart svg{display:block;width:100%;min-width:560px;height:auto}.forecast-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.forecast-line.income{stroke:#38bdf8}.forecast-line.expenses{stroke:#f87171}.forecast-line.net{stroke:#a5b4fc}.forecast-zero{stroke:var(--text-2);stroke-width:1.25}.analytics-kpi .is-negative{color:var(--danger)}.forecast-composition{margin:-4px 0 18px;color:var(--muted);font-size:.76rem;font-weight:700}
.analytics-v2-empty{padding:24px 0;text-align:center;color:var(--muted)}.analytics-v2-horizontal-chart{display:grid;gap:15px;margin-top:18px}.analytics-v2-horizontal-row>div,.analytics-v2-wallet-row header{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.analytics-v2-horizontal-row strong,.analytics-v2-wallet-row header strong,.analytics-v2-comparison-row>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analytics-v2-horizontal-row span{font-weight:800;color:var(--text);white-space:nowrap}.analytics-v2-horizontal-row i,.analytics-v2-paired-bar i,.analytics-v2-comparison-row i{display:block;height:9px;margin-top:7px;background:var(--surface-3);border-radius:999px;overflow:hidden}.analytics-v2-horizontal-row b,.analytics-v2-paired-bar b,.analytics-v2-comparison-row b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary-strong),#a5b4fc)}.analytics-v2-wallet-analysis{margin-bottom:18px}.analytics-v2-wallet-chart{display:grid;gap:14px}.analytics-v2-wallet-row{padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}.analytics-v2-wallet-row header{margin-bottom:12px}.analytics-v2-wallet-row header>span,.analytics-v2-wallet-row footer strong{color:var(--success);font-weight:800}.analytics-v2-wallet-row .is-negative{color:var(--danger)}.analytics-v2-paired-bar{display:grid;grid-template-columns:82px minmax(0,1fr) auto;gap:10px;align-items:center;margin:8px 0;font-size:.73rem}.analytics-v2-paired-bar>span{color:var(--muted);font-weight:800}.analytics-v2-paired-bar b.expense{background:linear-gradient(90deg,#f87171,#fca5a5)}.analytics-v2-paired-bar em,.analytics-v2-comparison-row em{font-style:normal;font-weight:800;white-space:nowrap}.analytics-v2-wallet-row footer{margin-top:12px;padding-top:10px;border-top:1px solid var(--border);font-size:.74rem;color:var(--muted)}.analytics-v2-column-chart{margin:18px 0}.analytics-v2-year-legend{display:flex;gap:13px;align-items:center;font-size:.72rem;font-weight:800;white-space:nowrap}.analytics-v2-year-legend span{display:inline-flex;align-items:center;gap:6px}.analytics-v2-year-legend i{width:10px;height:10px;border-radius:3px}.year-a{color:#c4b5fd}.year-b{color:var(--primary)}.analytics-v2-year-legend .year-a i,.analytics-v2-column-bars .year-a,.analytics-v2-comparison-row b.year-a{background:#8b5cf6}.analytics-v2-year-legend .year-b i,.analytics-v2-column-bars .year-b,.analytics-v2-comparison-row b.year-b{background:var(--primary-strong)}.analytics-v2-axis{height:230px;float:left;width:92px;display:flex;flex-direction:column;justify-content:space-between;padding:2px 10px 25px 0;color:var(--muted);font-size:.66rem;font-weight:800;text-align:right}.analytics-v2-column-plot{height:230px;margin-left:92px;padding:0 4px 25px;border-bottom:1px solid var(--border);border-left:1px solid var(--border);display:grid;grid-template-columns:repeat(12,minmax(42px,1fr));gap:6px;align-items:end;overflow-x:auto}.analytics-v2-month-column{height:100%;min-width:42px;display:grid;grid-template-rows:1fr auto;gap:7px;text-align:center;color:var(--muted);font-size:.61rem;font-weight:800}.analytics-v2-column-bars{display:flex;align-items:end;justify-content:center;gap:4px;height:100%}.analytics-v2-column-bars b{display:block;width:min(19px,40%);min-height:2px;border-radius:5px 5px 0 0;cursor:help}.analytics-v2-column-bars b:focus-visible,.analytics-v2-paired-bar b:focus-visible,.analytics-v2-comparison-row b:focus-visible{outline:3px solid rgba(125,211,252,.35);outline-offset:3px}.analytics-v2-comparison-bars{display:grid;gap:16px;margin-top:16px}.analytics-v2-comparison-row{display:grid;gap:7px}.analytics-v2-comparison-row>div{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:8px;align-items:center;font-size:.68rem}.analytics-v2-comparison-row>div>span{font-weight:800}.analytics-v2-comparison-row i{margin:0}.analytics-v2-trend{margin-top:0}.analytics-v2-trend .analytics-v2-horizontal-chart{max-height:330px;overflow:auto;padding-right:4px}
@media(max-width:900px){.analytics-v2-axis{width:74px}.analytics-v2-column-plot{margin-left:74px;min-width:0}.analytics-v2-year-legend{margin-top:8px}.analytics-v2-column-chart .panel-header{display:block}}
@media(max-width:680px){.analytics-v2-paired-bar{grid-template-columns:70px minmax(0,1fr)}.analytics-v2-paired-bar em{grid-column:2}.analytics-v2-axis{width:58px;font-size:.57rem}.analytics-v2-column-plot{margin-left:58px;grid-template-columns:repeat(12,42px);overflow-x:auto}.analytics-v2-month-column{font-size:.55rem}.analytics-v2-year-legend{flex-wrap:wrap}.analytics-v2-comparison-row>div{grid-template-columns:34px minmax(0,1fr)}.analytics-v2-comparison-row em{grid-column:2}}

/* EXP-053 Forecast insights: projected balance, chart readability, monthly bars and paged raw detail. */
.forecast-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.forecast-chart{margin-bottom:18px}.forecast-chart-header{align-items:flex-start;gap:18px}.forecast-legend{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap;font-size:.72rem;font-weight:800;color:var(--text-2)}.forecast-legend span{display:inline-flex;align-items:center;gap:6px}.forecast-legend i{display:block;width:18px;height:3px;border-radius:999px}.forecast-legend .income i{background:#38bdf8}.forecast-legend .expenses i{background:#f87171}.forecast-legend .net i{background:#a5b4fc}.forecast-grid{stroke:var(--border);stroke-width:1;stroke-dasharray:3 5}.forecast-grid.forecast-zero{stroke:var(--text-2);stroke-width:1.25;stroke-dasharray:none}.forecast-axis-line{stroke:var(--border-strong);stroke-width:1}.forecast-axis-label{fill:var(--muted);font-size:10px;font-weight:700}.forecast-axis-x{font-size:11px}.forecast-point{stroke:var(--surface);stroke-width:2;cursor:help}.forecast-point.income{fill:#38bdf8}.forecast-point.expenses{fill:#f87171}.forecast-point.net{fill:#a5b4fc}.forecast-point:focus{outline:none;stroke:var(--text);stroke-width:3}.forecast-point-value{fill:var(--text-2);font-size:8.5px;font-weight:800;pointer-events:none;paint-order:stroke fill;stroke:var(--surface);stroke-width:2px;stroke-linejoin:round}.forecast-monthly-bars{margin-bottom:18px}.forecast-month-row i{height:12px}.forecast-month-bar{transform-origin:left center}.forecast-month-bar.income{background:linear-gradient(90deg,#0ea5e9,#38bdf8)}.forecast-month-bar.expenses{background:linear-gradient(90deg,#ef4444,#f87171)}.forecast-table-header{align-items:flex-start;gap:16px}.forecast-table-header>div{min-width:0}.forecast-table-header .button{flex:0 0 auto}.forecast-table .is-pagination-hidden,table[data-paginated-table] .is-pagination-hidden{display:none!important}.forecast-pagination,.table-pagination{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;margin-top:16px}.forecast-pagination>label,.table-pagination>label{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:.72rem;font-weight:800}.forecast-pagination select,.table-pagination select{width:auto;min-width:76px;padding-top:8px;padding-bottom:8px}.forecast-pagination>[data-forecast-page-status],.forecast-pagination>[data-table-page-status],.table-pagination>[data-table-page-status]{text-align:center;color:var(--muted);font-size:.72rem;font-weight:800}.forecast-pagination>div,.table-pagination>div{display:flex;gap:8px}.forecast-upcoming-panel .grand-total-row td:last-child{white-space:nowrap;text-align:right}
@media(max-width:900px){.forecast-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.forecast-chart-header{display:block}.forecast-legend{justify-content:flex-start;margin-top:10px}.forecast-pagination,.table-pagination{grid-template-columns:1fr auto}.forecast-pagination>[data-forecast-page-status],.forecast-pagination>[data-table-page-status],.table-pagination>[data-table-page-status]{grid-column:1/-1;grid-row:2;text-align:left}}
@media(max-width:680px){.forecast-kpis{grid-template-columns:1fr}.forecast-chart svg{min-width:760px}.forecast-table-header{display:flex;flex-direction:column}.forecast-pagination,.table-pagination{grid-template-columns:1fr}.forecast-pagination>[data-forecast-page-status],.forecast-pagination>[data-table-page-status],.table-pagination>[data-table-page-status]{grid-column:auto;grid-row:auto}.forecast-pagination>div,.table-pagination>div{justify-content:space-between}.forecast-pagination>div .button,.table-pagination>div .button{flex:1}.forecast-table .grand-total-row td:first-child{grid-column:1!important}.forecast-table .grand-total-row td:last-child{display:block!important;grid-column:2!important;text-align:right!important}}

/* EXP-053 presentation refinement: align Forecasts with the VIBA analytics visual language. */
.forecast-controls form{display:grid;gap:16px}.forecast-controls-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.forecast-controls-heading h2{margin:3px 0 5px}.forecast-controls-heading p{margin:0;color:var(--muted);font-size:.76rem}.forecast-horizon-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin:0}.forecast-primary-filters{grid-template-columns:minmax(220px,340px) auto;justify-content:flex-start;align-items:end}.forecast-primary-filters .button{min-height:42px}.forecast-more-filters{margin-top:0}.forecast-balance-hero{margin-bottom:18px;padding:24px;background:radial-gradient(circle at 88% 12%,rgba(125,211,252,.12),transparent 30%),linear-gradient(135deg,var(--surface),var(--surface-2))}.forecast-story-heading{margin-bottom:22px}.forecast-story-heading h2{margin:4px 0 6px}.forecast-story-heading p{margin:0;color:var(--text-2);font-size:.8rem}.forecast-story-heading small{display:block;margin-top:7px;color:var(--muted);font-weight:800}.forecast-balance-flow{display:grid;grid-template-columns:minmax(170px,1fr) minmax(220px,1.25fr) auto minmax(190px,1fr);gap:18px;align-items:center}.forecast-balance-node{border:1px solid var(--border);border-radius:16px;padding:18px;background:color-mix(in srgb,var(--surface-2) 84%,transparent);min-width:0}.forecast-balance-node>span{display:block;color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.forecast-balance-node>strong{display:block;margin-top:8px;font-size:clamp(1.55rem,3vw,2.3rem);letter-spacing:-.05em;line-height:1.05}.forecast-balance-node.projected{border-color:rgba(110,231,183,.25);background:linear-gradient(135deg,rgba(110,231,183,.07),var(--surface-2))}.forecast-balance-node.projected>small{display:block;margin-top:8px;font-size:.72rem;font-weight:900}.forecast-balance-node .is-negative,.forecast-balance-bridge .is-negative{color:var(--danger)}.forecast-balance-node .is-positive{color:var(--success)}.forecast-balance-bridge{display:grid;gap:9px;padding:4px 0}.forecast-balance-bridge>span{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;border-radius:11px;font-size:.82rem;font-weight:900}.forecast-balance-bridge>span small{font-size:.68rem;color:var(--text-2);font-weight:800}.forecast-balance-bridge .income{background:rgba(56,189,248,.08);color:var(--primary)}.forecast-balance-bridge .expense{background:rgba(248,113,113,.08);color:var(--danger)}.forecast-balance-bridge>strong{padding-top:6px;border-top:1px solid var(--border);font-size:.78rem}.forecast-balance-arrow{font-size:1.8rem;color:var(--primary);font-weight:900}.forecast-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.forecast-kpi{min-height:138px}.forecast-kpi>strong{margin-top:18px}.forecast-kpi.analytics-kpi-income .analytics-kpi-mark{color:var(--primary);background:rgba(125,211,252,.11)}.forecast-kpi.analytics-kpi-expense .analytics-kpi-mark{color:var(--danger);background:rgba(252,165,165,.1)}.forecast-kpi.analytics-kpi-net .analytics-kpi-mark{color:var(--success);background:rgba(110,231,183,.1)}
@media(max-width:1000px){.forecast-controls-heading{align-items:flex-start;flex-direction:column}.forecast-horizon-buttons{justify-content:flex-start}.forecast-balance-flow{grid-template-columns:1fr 1fr}.forecast-balance-arrow{display:none}.forecast-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.forecast-primary-filters{grid-template-columns:1fr}.forecast-primary-filters .button{width:100%}.forecast-horizon-buttons{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.forecast-horizon-buttons .button{padding-left:8px;padding-right:8px}.forecast-balance-hero{padding:18px}.forecast-balance-flow{grid-template-columns:1fr}.forecast-balance-bridge{order:2}.forecast-balance-node.projected{order:3}.forecast-kpis{grid-template-columns:1fr}.forecast-balance-node>strong{font-size:1.8rem}}
.forecast-balance-label{display:block;margin-top:5px;color:var(--text-2);font-size:.68rem;font-weight:800}.forecast-balance-node.projected>.forecast-balance-label{margin-top:5px;color:var(--text-2)}.forecast-balance-node.projected>.forecast-balance-change{display:block;margin-top:8px;font-size:.72rem;font-weight:900}
/* Unified table pagination spacing: match Analytics/Forecasts panel inset. */
.table-panel .forecast-pagination[data-table-pagination],
.table-panel .table-pagination[data-table-pagination]{margin:16px 22px 22px}
@media(max-width:680px){
  .table-panel .forecast-pagination[data-table-pagination],
  .table-panel .table-pagination[data-table-pagination]{margin:16px 18px 18px}
}

/* EXP-056 Forecast savings integration: liquidity allocation versus financial result. */
.forecast-bucket{--forecast-saving-series:#34d399;--forecast-saving-label:#a7f3d0;--forecast-saving-soft:rgba(52,211,153,.10)}[data-theme="light"] .forecast-bucket{--forecast-saving-series:#047857;--forecast-saving-label:#065f46;--forecast-saving-soft:rgba(4,120,87,.09)}
.forecast-line.savings{stroke:var(--forecast-saving-series)}.forecast-point.savings{fill:var(--forecast-saving-series)}.forecast-point-value.savings{fill:var(--forecast-saving-label)}.forecast-legend .savings i{background:var(--forecast-saving-series)}.forecast-month-bar.savings{background:linear-gradient(90deg,#059669,var(--forecast-saving-series))}
.forecast-balance-bridge .saving{background:var(--forecast-saving-soft);color:var(--forecast-saving-series)}.forecast-kpi.analytics-kpi-saving .analytics-kpi-mark{color:var(--forecast-saving-series);background:var(--forecast-saving-soft)}
.forecast-position-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.forecast-position-strip>div{padding:14px 16px;border:1px solid var(--border);border-radius:13px;background:color-mix(in srgb,var(--surface-2) 86%,transparent)}.forecast-position-strip span,.forecast-position-strip small{display:block;color:var(--muted);font-size:.68rem;font-weight:800}.forecast-position-strip strong{display:block;margin-top:7px;font-size:1.1rem}.forecast-position-strip .total{border-color:rgba(110,231,183,.25);background:rgba(110,231,183,.06)}.forecast-position-strip .total strong{font-size:1.28rem}.forecast-position-strip small{margin-top:6px;line-height:1.45}.forecast-position-scope-note{margin:18px 0 0;padding:12px 14px;border-top:1px solid var(--border);color:var(--muted);font-size:.72rem;font-weight:700;line-height:1.5}
.forecast-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1200px){.forecast-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.forecast-position-strip{grid-template-columns:1fr}.forecast-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.forecast-kpis{grid-template-columns:1fr}}

/* EXP-057 Forecast position timeline and paired cash-flow layout. */
.forecast-balance-cashflow-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.forecast-balance-cashflow-pair>span{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;border-radius:11px;font-size:.82rem;font-weight:900;min-width:0}.forecast-balance-cashflow-pair>span small{font-size:.68rem;color:var(--text-2);font-weight:800}.forecast-monthly-flow-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.forecast-monthly-flow-grid .forecast-monthly-bars{margin-bottom:0}.forecast-monthly-savings{margin-bottom:18px}
.forecast-line.position-wallet{stroke:#38bdf8}.forecast-point.position-wallet{fill:#38bdf8}.forecast-legend .position-wallet i{background:#38bdf8}.forecast-line.position-pots{stroke:var(--forecast-saving-series)}.forecast-point.position-pots{fill:var(--forecast-saving-series)}.forecast-legend .position-pots i{background:var(--forecast-saving-series)}.forecast-line.position-total{stroke:var(--text);stroke-width:3.5}.forecast-point.position-total{fill:var(--text)}.forecast-legend .position-total i{background:var(--text)}.forecast-position-chart{margin-top:0}.forecast-position-chart .forecast-point{cursor:help}
@media(max-width:900px){.forecast-monthly-flow-grid{grid-template-columns:1fr}}
@media(max-width:680px){.forecast-balance-cashflow-pair{grid-template-columns:1fr}}

/* EXP-053 wallet evolution: server-composed wallet liquidity series. */
.forecast-wallet-evolution-chart{margin-top:0}.forecast-wallet-legend{justify-content:flex-start}.forecast-wallet-legend span{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forecast-line.wallet-series-0{stroke:#38bdf8}.forecast-point.wallet-series-0{fill:#38bdf8}.forecast-legend .wallet-series-0 i{background:#38bdf8}.forecast-line.wallet-series-1{stroke:#a78bfa}.forecast-point.wallet-series-1{fill:#a78bfa}.forecast-legend .wallet-series-1 i{background:#a78bfa}.forecast-line.wallet-series-2{stroke:#34d399}.forecast-point.wallet-series-2{fill:#34d399}.forecast-legend .wallet-series-2 i{background:#34d399}.forecast-line.wallet-series-3{stroke:#fb923c}.forecast-point.wallet-series-3{fill:#fb923c}.forecast-legend .wallet-series-3 i{background:#fb923c}.forecast-line.wallet-series-4{stroke:#f472b6}.forecast-point.wallet-series-4{fill:#f472b6}.forecast-legend .wallet-series-4 i{background:#f472b6}.forecast-line.wallet-series-5{stroke:#facc15}.forecast-point.wallet-series-5{fill:#facc15}.forecast-legend .wallet-series-5 i{background:#facc15}.forecast-wallet-balance-table{margin-bottom:18px}.forecast-wallet-balance-table .amount-cell{white-space:nowrap}.forecast-wallet-balance-table .is-positive{color:var(--success)}.forecast-wallet-balance-table .is-negative{color:var(--danger)}
@media(max-width:680px){.forecast-wallet-legend span{max-width:130px}.forecast-wallet-balance-table .data-table{min-width:640px}}

/* EXP-058 UI remediation: keep all forecast horizon choices on one row when the viewport can support the button set. */
@media(min-width:681px){
  .forecast-controls-heading{display:grid;grid-template-columns:minmax(0,1fr);align-items:start}
  .forecast-horizon-buttons{width:100%;justify-content:flex-start;flex-wrap:nowrap;gap:8px}
  .forecast-horizon-buttons .button{flex:0 0 auto}
}
