:root{font-family:Segoe UI,Aptos,sans-serif;color-scheme:light}*{box-sizing:border-box}#root,body,html{margin:0;min-height:100%}body{background:#f3f6fb}button,input,select,textarea{font:inherit}a{color:inherit}.theme-light{--brand:#0084b6;--brand-dark:#005a7d;--brand-soft:#e5f4fb;--brand-soft-strong:rgba(0,132,182,0.16);--ink:#0b1520;--muted:#5d7386;--bg:#f3f6fb;--panel:#ffffff;--panel-soft:#f8fbff;--border:#dcecf4;--border-strong:#2fa7df;--success:#1bb36a;--danger:#d64545;--warning:#d68a00;--shadow:0 10px 24px rgba(10,41,61,0.06)}.theme-dark{--brand:#63c2eb;--brand-dark:#b9e9fb;--brand-soft:rgba(99,194,235,0.14);--brand-soft-strong:rgba(99,194,235,0.22);--ink:#eef8ff;--muted:#9cb2c4;--bg:#09141d;--panel:#10202d;--panel-soft:#132532;--border:rgba(99,194,235,0.2);--border-strong:rgba(99,194,235,0.46);--success:#47d68a;--danger:#ff8e8e;--warning:#f3bd56;--shadow:0 12px 34px rgba(0,0,0,0.18)}.app-shell{position:relative;min-height:100vh;background:var(--bg)}.app-ambient{position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at top left,rgba(0,132,182,.08),transparent 28%),radial-gradient(circle at bottom right,rgba(47,167,223,.08),transparent 30%)}.sidebar{position:fixed;top:0;left:-100%;z-index:30;width:min(82vw,302px);height:100vh;padding:18px 16px 22px;background:var(--panel);border-right:1px solid var(--border);box-shadow:0 18px 40px rgba(10,41,61,.12);transition:left .22s ease;overflow-y:auto}.app-shell[dir=rtl] .sidebar{left:auto;right:-100%;border-right:0;border-left:1px solid var(--border)}.sidebar.open{left:0}.app-shell[dir=rtl] .sidebar.open{left:auto;right:0}.sidebar-scrim{position:fixed;inset:0;z-index:20;background:rgba(11,21,32,.34);opacity:0;pointer-events:none;transition:opacity .18s ease}.sidebar-scrim.visible{opacity:1;pointer-events:auto}.brand{display:flex;align-items:center;gap:14px;margin-bottom:24px;padding:8px 6px 16px;border-bottom:1px solid var(--border)}.brand-kicker{display:inline-block;margin-bottom:6px;color:var(--brand);font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.brand h1{margin:0;color:var(--ink);font-size:1.1rem;line-height:1.2}.brand p{margin:4px 0 0;color:var(--muted);font-size:.9rem}.brand-badge{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;color:white;font-weight:800;background:linear-gradient(135deg,var(--brand),#39b6e8)}.nav-list{display:flex;flex-direction:column;gap:8px}.nav-item{width:100%;border:1px solid transparent;background:transparent;color:var(--ink);display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:14px;cursor:pointer;text-align:left;transition:background-color .16s ease,border-color .16s ease,transform .16s ease}.app-shell[dir=rtl] .nav-item{text-align:right}.nav-item.active,.nav-item:hover{background:var(--brand-soft)}.nav-item.active{border-color:var(--border-strong);color:var(--brand-dark)}.nav-item-indicator{width:8px;height:8px;border-radius:999px;background:transparent}.nav-item.active .nav-item-indicator{background:var(--brand)}.main-content{position:relative;z-index:1;min-width:0;padding:0}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;justify-content:space-between;height:60px;padding:0 14px;background:var(--panel);color:var(--ink);border-bottom:1px solid var(--border)}.topbar,.topbar-left{display:flex;align-items:center;gap:12px}.page-intro,.topbar-left{min-width:0}.eyebrow{display:inline-block;color:var(--brand);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.topbar h2{margin:0;color:var(--brand-dark);font-family:Lato,Segoe UI,sans-serif;font-size:1.15rem;line-height:1.25;letter-spacing:0}.topbar p{display:none}.topbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.app-shell[dir=rtl] .budget-header-row,.app-shell[dir=rtl] .card-header,.app-shell[dir=rtl] .list-item,.app-shell[dir=rtl] .recent-item,.app-shell[dir=rtl] .topbar{direction:rtl}.app-shell[dir=rtl] .brand,.app-shell[dir=rtl] .stat-card-label-row,.app-shell[dir=rtl] .topbar-left,.app-shell[dir=rtl] .topbar-right{flex-direction:row-reverse}.app-shell[dir=rtl] .budget-item,.app-shell[dir=rtl] .card-copy,.app-shell[dir=rtl] .data-table td,.app-shell[dir=rtl] .data-table th,.app-shell[dir=rtl] .empty-state,.app-shell[dir=rtl] .field,.app-shell[dir=rtl] .goal-card,.app-shell[dir=rtl] .page-intro{text-align:right}.ghost-action,.ghost-button,.icon-button{border:1px solid var(--border);background:var(--panel);color:var(--brand);cursor:pointer;border-radius:12px;padding:10px 12px;display:inline-flex;align-items:center;justify-content:center;transition:border-color .16s ease,background-color .16s ease,transform .16s ease}.ghost-action:hover,.ghost-button:hover,.icon-button:hover{border-color:var(--border-strong);background:var(--panel-soft);transform:translateY(-1px)}.ghost-action:focus-visible,.ghost-button:focus-visible,.icon-button:focus-visible,.mobile-nav-item:focus-visible,.nav-item:focus-visible,.primary-button:focus-visible,.secondary-button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:0 0 0 3px var(--brand-soft-strong);border-color:var(--border-strong)}.mobile-only{display:inline-flex}.sync-pill{display:none}.content-stage{width:100%;max-width:1220px;margin:0 auto;padding:12px 16px 24px;animation:riseFade .26s ease both}.boot-shell .main-content{padding-bottom:0}.boot-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.wallet-loader{--wallet-color:#12627d;--wallet-dark:#08384a;--bill-color:#b9f1dc;--bill-detail:#1d8f69;--txt-color:#ffffff;--duration:4s;position:relative;width:150px;height:112px}.theme-dark .wallet-loader{--wallet-color:#1c7fa0;--wallet-dark:#0f4f67;--bill-color:#d5fae8;--bill-detail:#2da579}.wallet-loader .wallet-back{position:absolute;bottom:15px;left:8px;width:134px;height:58px;background:linear-gradient(180deg,rgba(8,56,74,.95),rgba(8,56,74,.8));border-radius:12px 12px 6px 6px;z-index:0}.wallet-loader .bill{position:absolute;left:50%;transform:translateX(-50%);top:-30px;width:92px;height:52px;background:linear-gradient(180deg,var(--bill-color),#8de3c3);border-radius:8px;border:1px solid var(--bill-detail);opacity:0}.wallet-loader .bill,.wallet-loader .bill:before{display:flex;align-items:center;justify-content:center}.wallet-loader .bill:before{content:"$";font-family:Segoe UI,Aptos,sans-serif;font-weight:800;font-size:26px;color:var(--bill-detail);border:2px solid var(--bill-detail);border-radius:50%;width:28px;height:28px;background:rgba(255,255,255,.24)}.wallet-loader .bill:after{content:"";position:absolute;left:5px;right:5px;top:5px;bottom:5px;border:1px dashed rgba(29,143,105,.55);border-radius:6px}.wallet-loader .bill-1{z-index:1;animation:walletSlideIn var(--duration) ease-in-out infinite;animation-delay:0s}.wallet-loader .bill-2{z-index:2;animation:walletSlideIn var(--duration) ease-in-out infinite;animation-delay:.8s}.wallet-loader .bill-3{z-index:3;animation:walletSlideIn var(--duration) ease-in-out infinite;animation-delay:1.6s}.wallet-loader .wallet-front{position:absolute;bottom:0;left:0;width:150px;height:68px;background:linear-gradient(180deg,var(--wallet-color),var(--wallet-dark));border-radius:18px;z-index:10;box-shadow:0 12px 22px rgba(8,56,74,.24);display:flex;align-items:center;justify-content:center;animation:walletBounce var(--duration) ease-in-out infinite}.wallet-loader .wallet-front:before{content:"";position:absolute;inset:8px;border:1px dashed rgba(255,255,255,.18);border-radius:14px;pointer-events:none}.wallet-loader .wallet-front:after{content:"";position:absolute;top:12px;left:18px;width:30px;height:6px;border-radius:999px;background:rgba(255,255,255,.18)}.wallet-loader .text{display:inline-flex;align-items:flex-end;gap:1px;font-family:Segoe UI,Aptos,sans-serif;font-size:16px;font-weight:700;color:var(--txt-color);letter-spacing:.04em;text-shadow:0 1px 1px rgba(0,0,0,.25)}.wallet-loader .dot{display:inline-block;min-width:.35em;animation:walletWave 1.5s infinite}.wallet-loader .dot:first-child{animation-delay:0s}.wallet-loader .dot:nth-child(2){animation-delay:.12s}.wallet-loader .dot:nth-child(3){animation-delay:.24s}.page-grid{display:grid;grid-gap:14px;gap:14px}.stats-grid,.two-columns{grid-template-columns:1fr}.stats-grid{display:grid;grid-gap:12px;gap:12px}.stats-grid.single-column{grid-template-columns:1fr}.card,.stat-card{background:var(--panel);border:1px solid var(--border-strong);border-radius:12px;box-shadow:none;padding:16px;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.card:hover,.stat-card:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.card-header{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:14px}.card-copy{width:100%}.card-header h3{margin:0;color:var(--ink);font-size:1rem;line-height:1.3;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.card-header p{margin:6px 0 0;color:var(--muted);font-size:.92rem;line-height:1.45}.card-action{width:100%}.stat-card-label-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.stat-card span{color:var(--brand-dark);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em}.stat-card-pulse{width:10px;height:10px;border-radius:999px;background:var(--brand)}.stat-card strong{display:block;margin:12px 0 6px;color:var(--ink);font-size:1.85rem;line-height:1.1;letter-spacing:-.03em}.stat-card small{color:var(--muted);font-size:.9rem;line-height:1.45}.positive,.tone-success strong{color:var(--success)}.negative,.tone-danger strong{color:var(--danger)}.tone-highlight strong{color:var(--brand)}.form-grid{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px}.field{display:flex;flex-direction:column;gap:8px;min-width:0;width:100%}.field.full,.full{grid-column:1/-1}.field span{color:var(--brand-dark);font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}input,select,textarea{display:block;width:100%;max-width:100%;min-width:0;background:var(--panel-soft);border:1px solid var(--border);color:var(--ink);border-radius:10px;padding:13px 14px;outline:none;transition:border-color .16s ease,background-color .16s ease}input[type=date],input[type=month]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;-webkit-padding-end:10px;padding-inline-end:10px}input[type=date]::-webkit-date-and-time-value,input[type=month]::-webkit-date-and-time-value{text-align:inherit}input[type=date]::-webkit-calendar-picker-indicator,input[type=month]::-webkit-calendar-picker-indicator{margin:0;padding:0}input:hover,select:hover,textarea:hover{border-color:var(--border-strong)}input::placeholder,textarea::placeholder{color:var(--muted)}.primary-button,.secondary-button{border:0;border-radius:0;padding:12px 16px;cursor:pointer;font-weight:800;transition:transform .16s ease,opacity .16s ease}.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.primary-button{background:var(--brand);color:white;letter-spacing:.06em;text-transform:uppercase}.secondary-button{background:var(--brand-soft);color:var(--brand-dark)}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse}.data-table td,.data-table th{padding:12px 8px;border-bottom:1px solid var(--border);text-align:left}.data-table th{color:var(--brand-dark);font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.data-table td{color:var(--ink);font-size:.93rem}.empty-state{padding:22px 18px;border:1px solid var(--border-strong);border-radius:10px;color:var(--muted);text-align:center;background:var(--panel-soft)}.search-input{min-width:0}.inline-actions{margin-top:14px}.budget-list,.goal-list,.list-stack,.transactions-stack{display:flex;flex-direction:column;gap:12px}.budget-item,.goal-card,.list-item,.recent-item{padding:14px;border-radius:10px;background:var(--panel-soft);border:1px solid var(--border)}.budget-header-row,.list-item,.recent-item{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.budget-header-row p,.recent-item p{margin:4px 0 0;color:var(--muted);font-size:.9rem}.progress-track{height:8px;background:var(--brand-soft);border-radius:999px;margin:12px 0 8px;overflow:hidden}.progress-fill{height:100%;border-radius:inherit}.progress-fill.good{background:var(--success)}.progress-fill.warning{background:var(--warning)}.progress-fill.danger{background:var(--danger)}.progress-fill.neutral{background:var(--brand)}.status-pill{padding:7px 10px;border-radius:999px;font-size:.74rem;font-weight:800;letter-spacing:.08em}.status-pill.good{background:rgba(27,179,106,.12);color:var(--success)}.status-pill.warning{background:rgba(214,138,0,.12);color:var(--warning)}.status-pill.danger{background:rgba(214,69,69,.12);color:var(--danger)}.status-pill.neutral{background:var(--brand-soft);color:var(--brand-dark)}.chart-box{width:100%;height:260px}.chart-tooltip{background:var(--panel);color:var(--ink);border:1px solid var(--border-strong);padding:10px 12px;border-radius:10px;min-width:150px}.tooltip-row{display:flex;justify-content:space-between;gap:12px;margin-top:8px}.action-group,.stack-row{display:flex;flex-direction:column;gap:12px}.danger-text,.status-banner{color:var(--danger)}.status-banner{border:1px solid rgba(214,69,69,.3);border-radius:10px;padding:12px 14px;background:rgba(214,69,69,.1)}.error-banner{margin-bottom:14px}@keyframes riseFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes walletSlideIn{0%{top:-30px;opacity:0;transform:translateX(-50%) scale(.84)}10%{opacity:1}24%{top:24px;transform:translateX(-50%) scale(1)}90%{top:24px;opacity:1}to{top:24px;opacity:0}}@keyframes walletBounce{0%,to{transform:scale(1)}12%{transform:scale(1.02,.98)}15%{transform:scale(1)}32%{transform:scale(1.02,.98)}35%{transform:scale(1)}52%{transform:scale(1.02,.98)}55%{transform:scale(1)}}@keyframes walletWave{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media (min-width:640px){.content-stage{padding:16px 20px 28px}.boot-screen{padding:28px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.field-compact-date{min-width:0}.card-header{flex-direction:row;justify-content:space-between}.card-action{width:auto}.topbar p{display:block;margin:4px 0 0;color:var(--muted);font-size:.92rem}}@media (max-width:639px){.wallet-loader{width:132px;height:102px}.wallet-loader .wallet-back{width:118px;height:52px}.wallet-loader .wallet-front{width:132px;height:62px;border-radius:16px}.wallet-loader .bill{width:82px;height:48px}.form-grid,.form-grid>.field,.form-grid>.field-compact-date,.form-grid>.full{min-width:0}.field-compact-date input[type=date],.field-compact-date input[type=month]{font-size:16px;inline-size:100%;block-size:48px}}@media (min-width:960px){.app-shell{display:grid;grid-template-columns:280px 1fr}.sidebar{position:-webkit-sticky;position:sticky;left:auto;right:auto;width:auto;padding:22px 18px;box-shadow:none;background:transparent;border-right:1px solid var(--border);border-left:0}.mobile-only,.sidebar-scrim{display:none}.topbar{top:18px;margin:18px 18px 0;border:1px solid var(--border);border-radius:14px;padding:16px 18px;height:auto;box-shadow:var(--shadow)}.sync-pill{display:inline-flex;align-items:center;border:1px solid var(--border);background:var(--panel-soft);border-radius:999px;padding:8px 12px;color:var(--muted);font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.sync-pill.saved{color:var(--success)}.sync-pill.saving{color:var(--warning)}.sync-pill.error{color:var(--danger)}.content-stage{padding:22px 20px 34px}.stats-grid,.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.span-2{grid-column:span 2}}@media (min-width:1200px){.content-stage{padding:26px 24px 42px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.topbar{margin:22px 24px 0;padding:18px 22px}}