:root{--bg-start:#f5efe3;--bg-mid:#f8f5ee;--bg-end:#f2f6f5;--text-primary:#201911;--text-secondary:#5f5549;--text-muted:#7f735f;--surface-strong:#fffc;--surface-soft:linear-gradient(180deg, #ffffffd1 0%, #fcf7efeb 100%);--surface-muted:#33291c14;--border-soft:#2c272014;--shadow-soft:0 22px 60px #291f1014, 0 6px 18px #123b400d;--accent:#1f8a70;--accent-strong:#0f6c69;color:var(--text-primary);background:var(--bg-mid);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-weight:400;line-height:1.5}[data-theme=dark]{--bg-start:#08161e;--bg-mid:#0c1e28;--bg-end:#0a131b;--text-primary:#1c2328;--text-secondary:#55636b;--text-muted:#708088;--surface-strong:#f4f9f8f5;--surface-soft:linear-gradient(180deg, #fcfffffa 0%, #edf4f3fa 100%);--surface-muted:#0c1e2814;--border-soft:#b7cdd275;--shadow-soft:0 28px 70px #00000061, 0 8px 24px #00000038;--accent:#38c9a5;--accent-strong:#2f8ba5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;color:var(--text-primary);background:var(--bg-mid);margin:0;transition:background-color .2s,color .2s}body,button,input,select{font-family:inherit}button{border:0}a{color:inherit;text-decoration:none}@media (width<=760px){:root{font-size:15px}}@media (width<=520px){:root{font-size:14px}}.app-shell{min-height:100vh;position:relative;overflow:hidden}.dashboard-backdrop{background:radial-gradient(circle at top left, #f4b56247, transparent 24%), radial-gradient(circle at 85% 10%, #2bc49f2e, transparent 24%), radial-gradient(circle at bottom right, #17507324, transparent 30%), linear-gradient(180deg, var(--bg-start) 0%, var(--bg-mid) 42%, var(--bg-end) 100%);z-index:-1;position:fixed;inset:0}.dashboard{width:min(1380px,100% - 2rem);margin:0 auto;padding:0 0 2.4rem}.content-grid{grid-template-columns:minmax(0,1.8fr) minmax(320px,.95fr);gap:1.25rem;margin-top:1.25rem;display:grid}.content-grid-single{grid-template-columns:1fr}.top-tools-grid{grid-template-columns:minmax(0,1.3fr) minmax(320px,.9fr);align-items:start;gap:1.25rem;margin-top:1.25rem;display:grid}.stack{gap:1.25rem;display:grid}@media (width<=1280px){.dashboard{width:min(100% - 1.5rem,100%)}.content-grid{grid-template-columns:minmax(0,1.45fr) minmax(300px,.95fr)}.top-tools-grid{grid-template-columns:minmax(0,1.15fr) minmax(300px,.95fr)}}@media (width<=1100px){.dashboard{width:min(100% - 1.2rem,100%)}.content-grid,.top-tools-grid{gap:1rem}}@media (width<=1024px){.content-grid,.top-tools-grid{grid-template-columns:1fr}}@media (width<=760px){.dashboard{width:min(100% - .85rem,100%);padding-top:0;padding-bottom:1.4rem}.content-grid,.top-tools-grid{gap:.9rem;margin-top:.9rem}}@media (width<=520px){.dashboard{width:min(100% - .6rem,100%)}}.panel,.summary-card,.hero-card{border:1px solid var(--border-soft);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.panel{background:var(--surface-soft);border-radius:26px;padding:1.2rem}.panel-large{min-width:0}.panel h2,.hero-card h1{letter-spacing:-.04em;color:var(--text-primary);margin:0;font-family:Georgia,Times New Roman,serif}.panel-heading{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.panel-heading strong{color:var(--accent-strong);font-size:1.1rem}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--text-muted);margin:0 0 .75rem;font-size:.75rem}.empty-state{color:var(--text-secondary);border:1px solid var(--border-soft);background:linear-gradient(135deg,#f5efe352 0%,#fef9ef24 100%);border-radius:18px;padding:1rem}.muted-copy{color:var(--text-muted);font-size:.92rem}input,select,button{font:inherit}input,select{border:1px solid var(--border-soft);background:var(--surface-strong);width:100%;color:var(--text-primary);border-radius:16px;padding:.82rem .9rem;transition:border-color .16s,box-shadow .16s,transform .16s}input:focus,select:focus{border-color:var(--accent);outline:2px solid #1f8a7040;box-shadow:0 0 0 4px #1f8a7014}.primary-button,.ghost-button{cursor:pointer;border-radius:999px;padding:.8rem 1.15rem;transition:transform .16s,background-color .16s,border-color .16s}.primary-button{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-strong) 100%);color:#fff9f2;border:none}.ghost-button{border:1px solid var(--border-soft);background:var(--surface-strong);color:var(--text-primary)}[data-theme=dark] .empty-state{background:linear-gradient(135deg,#fafdfcf2 0%,#ebf3f1f5 100%)}[data-theme=dark] .ghost-button{background:#f8fcfbf0}.primary-button:hover,.ghost-button:hover{transform:translateY(-1px)}@media (width<=760px){.panel,.summary-card,.hero-card{border-radius:22px}.panel{padding:1rem}}.transaction-form{gap:.95rem;display:grid}.admin-panel{position:sticky;top:1rem;overflow:hidden}.admin-panel:before{content:"";background:linear-gradient(90deg,#22b18f 0%,#0f6c69 55%,#ef8c2f 100%);width:100%;height:4px;position:absolute;inset:0 auto auto 0}.admin-panel .panel-heading{margin-bottom:1.15rem}.transaction-form label{gap:.45rem;display:grid}.transaction-form span{color:var(--text-muted);font-size:.82rem}.form-split{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.form-actions{flex-wrap:wrap;gap:.75rem;display:flex}.admin-empty-state{align-content:center;min-height:180px;display:grid}@media (width<=760px){.admin-panel{position:static}.form-split{grid-template-columns:1fr}}.hero-card{color:#f7f4ee;background:radial-gradient(circle at 0 0,#ffffff47,#0000 34%),linear-gradient(135deg,#0d2a3df5 0%,#144e56eb 62%,#e6892b5c 100%);border-radius:28px;grid-template-columns:minmax(0,1.65fr) minmax(260px,.85fr);align-items:stretch;gap:1.25rem;padding:1.4rem;display:grid}.hero-content{align-content:start;gap:.85rem;max-width:760px;display:grid}.hero-topline{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.hero-badge{letter-spacing:.04em;color:#fffaf2d6;background:#ffffff1f;border:1px solid #ffffff1f;border-radius:999px;align-items:center;padding:.35rem .7rem;font-size:.78rem;display:inline-flex}.hero-card h1{color:#fffaf2;max-width:14ch;font-size:clamp(1.9rem,3.6vw,3.2rem);line-height:1}.hero-copy{color:#f7f4eed1;max-width:60ch;margin:0;font-size:.98rem}.hero-highlights{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:.35rem;display:grid}.hero-pill{background:#ffffff14;border:1px solid #ffffff24;border-radius:16px;min-width:0;padding:.85rem .95rem;box-shadow:inset 0 1px #ffffff14}.hero-pill strong{color:#fff9f1;font-size:.95rem;display:block}.hero-pill span{color:#f7f4eeb8;margin-top:.25rem;font-size:.88rem;display:block}.hero-actions{align-content:start;gap:.85rem;width:100%;display:grid}.role-switcher{background:#faf5ed1a;border:1px solid #ffffff24;border-radius:18px;gap:.45rem;padding:.95rem;display:grid}.role-switcher select{color:#17323e;background:#ffffffeb}.role-switcher span{color:#f7f4eecc;font-size:.82rem}.role-note{color:#f7f4eed9;background:#fff8ec1f;border:1px solid #ffffff1f;border-radius:18px;padding:.95rem;font-size:.9rem}@media (width<=1024px){.hero-card{grid-template-columns:1fr}}@media (width<=760px){.hero-card{padding:1.1rem}.hero-card h1{font-size:1.7rem}.hero-copy{font-size:.9rem}.hero-highlights{grid-template-columns:1fr}}@media (width<=520px){.hero-card h1{font-size:1.5rem}.hero-pill strong,.hero-pill span,.role-note,.role-switcher span{font-size:.82rem}}.insight-list{gap:.95rem;display:grid}.insight-card{background:var(--surface-soft);border:1px solid var(--border-soft);border-radius:20px;padding:1rem;position:relative;overflow:hidden}.insight-card:after{content:"";background:radial-gradient(circle,#0f6c691a,#0000 70%);border-radius:50%;width:88px;height:88px;position:absolute;top:-30px;right:-18px}.insight-card span{color:var(--text-muted);font-size:.9rem;display:block}.insight-card strong{color:var(--text-primary);margin-top:.45rem;font-size:1rem;line-height:1.5;display:block}.navbar{border-top:0;border-left:0;border-right:0;border-bottom:1px solid var(--border-soft);background:var(--surface-strong);width:100vw;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:20;border-radius:0;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;margin-bottom:1rem;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:1rem max(1rem,50vw - 690px + 1rem);display:grid;position:sticky;top:0}[data-theme=dark] .navbar{background:#08161ef0;border-bottom-color:#b7cdd22e}[data-theme=dark] .navbar-label,[data-theme=dark] .navbar-links a{color:#a9beb9}[data-theme=dark] .navbar-brand strong,[data-theme=dark] .navbar-links a:hover{color:#edf4f2}[data-theme=dark] .navbar .ghost-button{color:#edf4f2;background:#f5faf91f;border-color:#b7cdd233}.navbar-brand{align-items:center;gap:.85rem;display:flex}.navbar-logo{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-strong) 100%);color:#fff;border-radius:14px;place-items:center;width:42px;height:42px;font-weight:700;display:grid}.navbar-label{text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);margin:0;font-size:.76rem}.navbar-brand strong{color:var(--text-primary)}.navbar-links{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.navbar-links a{color:var(--text-muted);font-size:.92rem}.navbar-links a:hover{color:var(--text-primary)}.navbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:.65rem;display:flex}.theme-toggle{cursor:pointer;background:linear-gradient(135deg, var(--accent) 0%, var(--accent-strong) 100%);color:#fff;border-radius:999px;padding:.8rem 1rem}@media (width<=1280px){.navbar{padding-inline:1rem}}@media (width<=1024px){.navbar{grid-template-columns:1fr}.navbar-links,.navbar-actions{justify-content:flex-start}}.overview-section{margin-top:1.25rem}.overview-spotlight{border:1px solid var(--border-soft);box-shadow:var(--shadow-soft);background:linear-gradient(135deg,#144e561f 0%,#ffffffb8 48%,#ef8c2f1f 100%);border-radius:28px;grid-template-columns:minmax(0,1.05fr) minmax(0,1.25fr);gap:1.1rem;margin-bottom:1.25rem;padding:1.35rem;display:grid;position:relative;overflow:hidden}.overview-spotlight:before{content:"";pointer-events:none;background:radial-gradient(circle,#2f8ba524,#0000 70%);border-radius:50%;width:220px;height:220px;position:absolute;inset:auto auto -80px -60px}[data-theme=dark] .overview-spotlight{background:linear-gradient(135deg,#22646647 0%,#0e1e27e0 50%,#9b5d2238 100%)}.overview-intro{align-content:start;gap:1rem;display:grid}.overview-copy{color:var(--text-secondary);max-width:58ch;margin:.6rem 0 0}.overview-callout{background:#ffffff80;border:1px solid #ffffff61;border-radius:22px;padding:1.1rem 1.15rem;box-shadow:inset 0 1px #ffffff4d}.overview-callout span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;display:block}.overview-callout strong{color:var(--text-primary);margin-top:.45rem;font-size:clamp(2rem,4vw,3rem);line-height:1;display:block}.overview-callout small{color:var(--text-secondary);margin-top:.45rem;display:block}[data-theme=dark] .overview-callout{background:#ffffffa8;border-color:#ffffff75}.overview-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.overview-stat-card{background:var(--surface-strong);border:1px solid var(--border-soft);border-radius:20px;padding:1rem;position:relative;overflow:hidden}[data-theme=dark] .overview-stat-card{background:#122a36fa}.overview-stat-card:before{content:"";background:var(--accent);width:4px;position:absolute;inset:0 auto 0 0}.overview-stat-card.accent-teal:before{background:linear-gradient(#2bc49f 0%,#0f6c69 100%)}.overview-stat-card.accent-amber:before{background:linear-gradient(#f5b94f 0%,#ef7b2d 100%)}.overview-stat-card.accent-sky:before{background:linear-gradient(#5bb6ff 0%,#2f8ba5 100%)}.overview-stat-card.accent-coral:before{background:linear-gradient(#ff9b72 0%,#d85a3b 100%)}.overview-stat-card span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.82rem;display:block}.overview-stat-card strong{color:var(--text-primary);margin-top:.55rem;font-size:1.55rem;display:block}.overview-stat-card small{color:var(--text-secondary);margin-top:.45rem;display:block}.overview-grid{grid-template-columns:minmax(0,1.75fr) minmax(300px,1fr);gap:1.25rem;display:grid}.trend-chart{grid-template-columns:repeat(auto-fit,minmax(70px,1fr));align-items:end;gap:.9rem;min-height:280px;padding-top:.75rem;display:grid}.trend-column{align-items:end;gap:.75rem;height:100%;display:grid}.trend-bar{transform-origin:bottom;background:linear-gradient(#ffffff6b 0%,#0000 25%),linear-gradient(#2bc49f 0%,#1d7f8c 52%,#1b4665 100%);border-radius:20px 20px 10px 10px;min-height:18px;animation:.9s cubic-bezier(.2,.8,.2,1) both riseBar;box-shadow:inset 0 1px #ffffff59,0 16px 28px #135b6733}.trend-column span{color:var(--text-secondary);text-align:center;font-size:.86rem}.breakdown-list{gap:.95rem;display:grid}.breakdown-row{gap:.55rem;display:grid}.breakdown-copy{color:var(--text-primary);justify-content:space-between;gap:1rem;display:flex}.breakdown-copy span{color:var(--text-secondary)}.breakdown-track{background:var(--surface-muted);border-radius:999px;height:12px;overflow:hidden}.breakdown-fill{border-radius:inherit;transform-origin:0;background:linear-gradient(90deg,#f5b94f 0%,#ef7b2d 55%,#c6513e 100%);height:100%;animation:.9s both revealWidth}@media (width<=1024px){.overview-spotlight,.overview-grid{grid-template-columns:1fr}}@media (width<=900px){.overview-spotlight{padding:1.1rem}.overview-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.overview-spotlight{border-radius:22px;gap:.9rem}.overview-stat-grid{grid-template-columns:1fr}.trend-chart{grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;min-height:220px}.trend-column{gap:.45rem}.trend-column span{font-size:.76rem}}@media (width<=520px){.overview-callout{padding:.95rem}.overview-callout strong{font-size:1.9rem}.trend-chart{grid-template-columns:repeat(2,minmax(0,1fr));min-height:200px}}@media (prefers-reduced-motion:reduce){.trend-bar,.breakdown-fill{animation:none}}@keyframes riseBar{0%{opacity:0;transform:scaleY(.2)translateY(10px)}to{opacity:1;transform:scaleY(1)translateY(0)}}@keyframes revealWidth{0%{opacity:.35;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin-top:1.25rem;display:grid}.summary-card{background:var(--surface-soft);border-radius:24px;padding:1.15rem 1.2rem;position:relative;overflow:hidden}.summary-card:after{content:"";pointer-events:none;background:radial-gradient(circle,#1f8a7024,#0000 68%);border-radius:50%;width:140px;height:140px;position:absolute;inset:auto -20% -50% auto}.summary-card:nth-child(2):after{background:radial-gradient(circle,#ef8c2f29,#0000 68%)}.summary-card:nth-child(3):after{background:radial-gradient(circle,#0f6c691f,#0000 68%)}[data-theme=dark] .summary-card:after{background:radial-gradient(circle,#38c9a533,#0000 68%)}[data-theme=dark] .summary-card:nth-child(2):after{background:radial-gradient(circle,#ef8c2f3d,#0000 68%)}[data-theme=dark] .summary-card:nth-child(3):after{background:radial-gradient(circle,#2f8ba533,#0000 68%)}.summary-card span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;display:block}.summary-card strong{color:var(--text-primary);margin-top:.6rem;font-size:clamp(1.6rem,3vw,2.35rem);line-height:1;display:block}.summary-card small{color:var(--text-secondary);max-width:28ch;margin-top:.65rem;display:block}@media (width<=1024px){.summary-grid{grid-template-columns:1fr}}.filter-bar{grid-template-columns:2fr repeat(3,minmax(0,1fr));gap:.9rem;margin-bottom:1rem;display:grid}.filter-bar label{gap:.45rem;display:grid}.filter-bar span{color:var(--text-muted);font-size:.82rem}.transaction-table{border:1px solid var(--border-soft);background:var(--surface-strong);border-radius:22px;overflow:hidden}.transaction-head,.transaction-row{grid-template-columns:1.05fr 1.55fr .9fr 1fr .9fr;align-items:center;gap:.8rem;padding:.95rem 1rem;display:grid}.transaction-head{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;background:#7f735f1f;font-size:.78rem}.transaction-row+.transaction-row{border-top:1px solid var(--border-soft)}.transaction-row{transition:background-color .16s,transform .16s}.transaction-row:hover{background:#7f735f14}.transaction-row strong{color:var(--text-primary)}.transaction-field{gap:.2rem;min-width:0;display:grid}.transaction-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.72rem;display:none}.transaction-subline{color:var(--text-secondary);font-size:.88rem}.transaction-main strong,.transaction-main .transaction-subline{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.transaction-amount-block,.transaction-action{justify-items:start}.type-pill{text-transform:capitalize;border-radius:999px;align-items:center;padding:.3rem .65rem;font-size:.78rem;display:inline-flex}.type-pill.income{color:#16614f;background:#1f8a701f}.type-pill.expense{color:#9c3f1c;background:#d05d321f}.amount-positive{color:#16614f;font-weight:700}.amount-negative{color:#a54620;font-weight:700}[data-theme=dark] .transaction-head{background:#ffffff14}[data-theme=dark] .transaction-row:hover{background:#ffffff0d}[data-theme=dark] .type-pill.income{color:#8cead0;background:#38c9a529}[data-theme=dark] .type-pill.expense{color:#ffbf85;background:#ef8c2f2e}[data-theme=dark] .amount-positive{color:#78e4c4}[data-theme=dark] .amount-negative{color:#ffb07d}@media (width<=1024px){.filter-bar{grid-template-columns:1fr}}@media (width<=760px){.transaction-head{display:none}.transaction-row{border:1px solid var(--border-soft);background:var(--surface-soft);border-radius:18px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.8rem;margin:.7rem;padding:.95rem}.transaction-row+.transaction-row{border-top:1px solid var(--border-soft)}.transaction-label{display:none}.transaction-table{background:0 0;border:none}.transaction-main{grid-column:1/-1}.transaction-date,.transaction-amount-block,.transaction-action,.transaction-field:not(.transaction-main){justify-content:space-between;align-items:center;gap:.75rem;display:flex}.transaction-main strong{white-space:normal;font-size:.98rem;line-height:1.3}.transaction-subline,.transaction-date span:last-child,.transaction-action .muted-copy,.transaction-action .ghost-button,.transaction-amount-block .amount-positive,.transaction-amount-block .amount-negative{font-size:.88rem}}@media (width<=520px){.transaction-row{grid-template-columns:1fr 1fr;gap:.7rem;margin:.55rem;padding:.85rem}.transaction-table{border-radius:18px}.transaction-main,.transaction-action{grid-column:1/-1}.type-pill{font-size:.72rem}.transaction-subline,.transaction-date span:last-child,.transaction-action .muted-copy,.transaction-action .ghost-button,.transaction-amount-block .amount-positive,.transaction-amount-block .amount-negative{font-size:.82rem}}
