:root{--bg:#f5f7fb;--panel:#fff;--text:#18212f;--muted:#768297;--line:#e6eaf0;--primary:#7567ff;--primary2:#5f52e8;--green:#16b989;--red:#ef6a7b;--amber:#f59e0b;--radius:22px;--shadow:0 16px 40px rgba(42,54,78,.08)}
*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}code{background:#eef0f4;padding:2px 6px;border-radius:6px}.app-layout{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:#111827;color:#fff;padding:24px 18px;display:flex;flex-direction:column;z-index:30}.sidebar-top{display:flex;align-items:center;justify-content:space-between;padding:2px 8px 22px}.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.02em}.brand-large{font-size:22px}.brand-mark{width:36px;height:36px;border-radius:11px;background:linear-gradient(135deg,var(--primary),#998fff);display:grid;place-items:center;color:#fff;box-shadow:0 10px 25px rgba(117,103,255,.28)}.sidebar nav{display:flex;flex-direction:column;gap:6px}.nav-link{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:13px;color:#aeb8c8;font-weight:650;transition:.18s}.nav-link:hover,.nav-link.active{background:#1d2736;color:#fff}.nav-link.active{box-shadow:inset 3px 0 0 var(--primary)}.sidebar-account{margin-top:auto;border-top:1px solid rgba(255,255,255,.09);padding:18px 4px 0;display:grid;grid-template-columns:40px 1fr 36px;gap:10px;align-items:center}.avatar{width:40px;height:40px;border-radius:50%;background:#263247;display:grid;place-items:center;font-weight:800}.sidebar-user{min-width:0;display:flex;flex-direction:column}.sidebar-user strong{font-size:13px}.sidebar-user span{font-size:11px;color:#8e9bb0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-btn{border:0;background:transparent;color:inherit;width:36px;height:36px;border-radius:10px;display:grid;place-items:center}.icon-btn:hover{background:rgba(127,139,160,.12)}.icon-btn.danger{color:var(--red)}.app-main{margin-left:260px;min-height:100vh}.mobile-header{display:none}.mobile-only{display:none}.page{padding:38px 42px 56px;max-width:1580px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px}.page-header h1{font-size:32px;line-height:1.08;margin:6px 0 8px;letter-spacing:-.04em}.page-header p{margin:0;color:var(--muted);font-size:14px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.14em;color:#8994a7}.header-actions,.toolbar-filters,.period-form,.row-actions,.card-actions{display:flex;align-items:center;gap:8px}.period-form select,.toolbar select{border:1px solid var(--line);border-radius:11px;background:white;padding:10px 12px;color:var(--text)}.btn{border:0;border-radius:12px;padding:11px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:750}.btn.primary{background:var(--primary);color:#fff;box-shadow:0 8px 20px rgba(117,103,255,.22)}.btn.primary:hover{background:var(--primary2)}.btn.secondary{background:#edf0ff;color:#5e53d7}.btn.ghost{background:#f0f2f6;color:#596477}.btn.wide{width:100%;padding:13px}.text-link{font-size:12px;font-weight:800;color:var(--primary)}.stats-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.stats-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px;display:flex;gap:15px;align-items:flex-start;box-shadow:0 6px 20px rgba(50,63,84,.035)}.stat-icon{width:42px;height:42px;border-radius:13px;background:#f0f2ff;color:var(--primary);display:grid;place-items:center;flex:0 0 auto}.stat-card.positive .stat-icon{background:#ebfbf5;color:var(--green)}.stat-card.negative .stat-icon{background:#fff0f2;color:var(--red)}.stat-card>div:last-child{display:flex;flex-direction:column;min-width:0}.stat-card span{font-size:12px;color:var(--muted);font-weight:700}.stat-card strong{font-size:24px;margin:4px 0 2px;letter-spacing:-.03em}.stat-card small{font-size:11px;color:#98a2b4}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.insight-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:18px}.insight-strip>div{background:#fff;padding:15px 18px;display:flex;justify-content:space-between;gap:15px;align-items:center}.insight-strip span{font-size:11px;color:var(--muted)}.insight-strip strong{font-size:13px}.dashboard-grid,.stats-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px}.span-3,.span-all{grid-column:1/-1}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 26px rgba(50,63,84,.045)}.chart-panel{padding:22px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px}.panel-head h3{font-size:18px;margin:4px 0 0;letter-spacing:-.02em}.legend{display:flex;gap:7px;align-items:center;color:var(--muted);font-size:11px}.dot,.legend-color{display:inline-block;width:8px;height:8px;border-radius:99px}.dot.income{background:var(--green)}.dot.expense{background:var(--red)}.chart-box{height:290px;margin-top:12px}.chart-box.tall{height:360px}.donut-box{height:210px}.donut-box.large{height:260px}.category-legend{display:flex;flex-direction:column;gap:9px}.category-legend>div{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:8px;font-size:12px}.category-legend span{color:var(--muted)}.category-legend strong{font-size:12px}.empty-chart{height:290px;display:grid;place-items:center;color:var(--muted);font-size:13px}.empty-chart.compact{height:260px}.recent-panel{padding:22px}.recent-list{display:flex;flex-direction:column}.recent-row{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:13px 0;border-top:1px solid #eff1f5}.recent-row:first-child{border-top:0}.recent-icon{width:40px;height:40px;border-radius:12px;background:#f5f6fa;display:grid;place-items:center}.recent-row>div:nth-child(2){display:flex;flex-direction:column}.recent-row strong{font-size:13px}.recent-row span{font-size:11px;color:var(--muted);margin-top:2px}.table-panel{overflow:hidden}.toolbar{padding:16px;display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.search{display:flex;align-items:center;gap:8px;background:#f6f7fa;border:1px solid #eceff3;padding:0 12px;border-radius:11px;min-width:320px}.search input{border:0;outline:0;background:transparent;height:40px;width:100%}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:850px}th,td{text-align:left;padding:14px 16px;border-bottom:1px solid #eff1f5;font-size:12px}th{color:#8a95a8;font-size:10px;letter-spacing:.08em;text-transform:uppercase;background:#fbfcfd}td strong{font-size:12px}td small{display:block;color:var(--muted);margin-top:3px;max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-pill{background:#f4f5f8;padding:6px 8px;border-radius:99px;display:inline-flex;align-items:center;gap:4px}.amount{font-weight:800}.empty-state{text-align:center;padding:42px 20px}.empty-state strong{font-size:14px}.empty-state p{color:var(--muted);font-size:12px;margin:6px auto 0;max-width:420px}.accounts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.account-card,.add-card{min-height:185px;border-radius:20px;padding:20px}.account-card{position:relative;background:#fff;border:1px solid var(--line);display:grid;grid-template-columns:44px 1fr;gap:10px;align-content:start}.account-icon{width:42px;height:42px;border-radius:13px;background:#f1efff;color:var(--primary);display:grid;place-items:center}.account-meta span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.account-meta h3{margin:3px 0 14px;font-size:16px}.account-card>strong{grid-column:1/-1;font-size:26px;letter-spacing:-.03em}.account-card>small{grid-column:1/-1;color:var(--muted)}.card-actions{position:absolute;right:12px;bottom:12px}.add-card{border:1.5px dashed #cfd5e1;background:transparent;color:#667186;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.add-card strong{color:var(--text)}.add-card span{font-size:11px}.budget-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.budget-row{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.budget-main{display:flex;justify-content:space-between;align-items:center;gap:12px}.budget-title{display:flex;gap:10px;align-items:center}.budget-title>span{font-size:22px}.budget-title div{display:flex;flex-direction:column}.budget-title small{color:var(--muted);margin-top:2px}.budget-values{display:flex;gap:8px;align-items:center}.progress{height:8px;background:#eef1f5;border-radius:99px;overflow:hidden;margin:16px 0 8px}.progress span{height:100%;display:block;background:linear-gradient(90deg,var(--primary),#a299ff);border-radius:99px}.budget-row>small{color:var(--muted)}.budget-row>small.over{color:var(--red)}.recurring-list{overflow:hidden}.recurring-row{display:grid;grid-template-columns:42px minmax(190px,1fr) 100px 175px 120px 80px;gap:12px;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}.recurring-row:last-child{border-bottom:0}.recurring-row.is-muted{opacity:.5}.recurring-icon{width:40px;height:40px;border-radius:12px;background:#f1efff;color:var(--primary);display:grid;place-items:center}.recurring-row>div:nth-child(2){display:flex;flex-direction:column}.recurring-row span{font-size:11px;color:var(--muted)}.settings-list{display:grid;gap:14px;max-width:950px}.settings-card{display:grid;grid-template-columns:46px 1fr;gap:14px;padding:20px}.settings-icon{width:44px;height:44px;border-radius:13px;background:#f1efff;color:var(--primary);display:grid;place-items:center}.settings-content{min-width:0}.settings-content h3{margin:0 0 5px}.settings-content>p,.settings-content>small{color:var(--muted);font-size:12px;margin:0 0 14px}.settings-card.muted{opacity:.72}.category-settings{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px}.category-settings>div{display:grid;grid-template-columns:1fr auto 36px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:6px 8px}.category-settings small{color:var(--muted);font-size:10px}.alert{padding:10px 12px;border-radius:10px;font-size:12px}.alert.error{background:#fff0f2;color:#b43f54}.alert.success{background:#ecfbf5;color:#168865}.global-flash{position:fixed;top:18px;right:18px;z-index:80;box-shadow:0 12px 35px rgba(20,30,50,.13);animation:fadeOut .35s 4s forwards}@keyframes fadeOut{to{opacity:0;transform:translateY(-6px);pointer-events:none}}.modal-card{border:0;width:min(680px,calc(100% - 30px));border-radius:24px;padding:24px;box-shadow:0 28px 80px rgba(0,0,0,.24);overflow:visible}.modal-card.small{width:min(500px,calc(100% - 30px))}.modal-card::backdrop{background:rgba(9,14,24,.5);backdrop-filter:blur(4px)}.modal-card[open]:not(:modal){position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);z-index:100;max-height:90vh;overflow:auto}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.modal-head h2{margin:5px 0 0;font-size:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label,.setup-grid label,.auth-card label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:750;color:#596477}.form-grid input,.form-grid select,.form-grid textarea,.setup-grid input,.auth-card input{width:100%;border:1px solid #dfe4eb;border-radius:11px;padding:11px 12px;outline:none;background:#fff;color:var(--text)}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.setup-grid input:focus,.auth-card input:focus{border-color:#a89fff;box-shadow:0 0 0 3px #efedff}.form-grid .full,.setup-grid .full{grid-column:1/-1}.form-grid label small,.setup-grid label small{color:var(--muted);font-weight:500}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.auth-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:#0e1726}.auth-hero{padding:46px 7vw;display:flex;flex-direction:column;color:#fff;background:radial-gradient(circle at 18% 20%,rgba(117,103,255,.22),transparent 30%),linear-gradient(155deg,#111c2f,#0b1320)}.auth-copy{margin:auto 0;max-width:650px}.auth-copy .eyebrow{color:#9e96ff}.auth-copy h1{font-size:58px;line-height:1.02;letter-spacing:-.055em;margin:16px 0 20px}.auth-copy h1 span{color:#9d94ff}.auth-copy>p{color:#a9b4c5;max-width:520px;font-size:17px;line-height:1.6}.feature-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:38px}.feature-row>div{border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035);border-radius:17px;padding:18px;display:flex;flex-direction:column;gap:7px}.feature-row b{font-size:20px;color:#9d94ff}.feature-row strong{font-size:13px}.feature-row span{font-size:11px;color:#8f9aad;line-height:1.5}.auth-panel{background:#f5f7fb;display:grid;place-items:center;padding:30px}.auth-card{width:min(430px,100%);display:flex;flex-direction:column;gap:15px}.auth-card h2{font-size:32px;margin:5px 0 7px;letter-spacing:-.04em}.auth-card>div>p{color:var(--muted);font-size:13px;margin:0}.auth-foot{text-align:center;color:var(--muted)}.setup-body{min-height:100vh;background:#0f1725;padding:35px 18px}.setup-shell{max-width:760px;margin:0 auto}.setup-brand{color:#fff;display:flex;gap:12px;align-items:center;margin-bottom:18px}.setup-brand>div:last-child{display:flex;flex-direction:column}.setup-brand span{font-size:11px;color:#8996aa}.setup-card{background:#fff;border-radius:24px;padding:28px;box-shadow:0 26px 70px rgba(0,0,0,.22);display:flex;flex-direction:column;gap:18px}.setup-card h1{font-size:30px;margin:5px 0 8px;letter-spacing:-.04em}.setup-card p{margin:0;color:var(--muted);font-size:13px}.setup-card hr{width:100%;border:0;border-top:1px solid var(--line)}.setup-card h3{margin:0 0 4px}.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-note{font-size:12px!important}.success-card{text-align:center;align-items:center}.success-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#ecfbf5;color:var(--green);font-size:28px}.success-card .hint{font-size:11px}.backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:20}
@media(max-width:1100px){.stats-row{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.stats-grid{grid-template-columns:1fr}.accounts-grid{grid-template-columns:repeat(2,1fr)}.recurring-row{grid-template-columns:42px 1fr 110px 130px 80px}.recurring-row>span:nth-of-type(1){display:none}.auth-copy h1{font-size:48px}.insight-strip{grid-template-columns:1fr}}
@media(max-width:780px){.mobile-only{display:grid}.sidebar{transform:translateX(-105%);transition:.22s;width:270px}.sidebar.open{transform:none}.app-main{margin-left:0}.mobile-header{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;padding:14px 16px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:15}.mobile-header .brand{justify-self:center}.page{padding:24px 16px 42px}.page-header{align-items:flex-start;flex-direction:column;margin-bottom:20px}.page-header h1{font-size:27px}.header-actions{width:100%;flex-wrap:wrap}.period-form{flex:1}.period-form select{min-width:0;flex:1}.stats-row,.stats-row.three,.accounts-grid,.budget-list{grid-template-columns:1fr}.stat-card strong{font-size:22px}.chart-panel,.recent-panel{padding:16px}.toolbar{flex-direction:column}.search{min-width:0;width:100%}.toolbar-filters{flex-wrap:wrap}.form-grid,.setup-grid{grid-template-columns:1fr}.form-grid label,.form-grid .full,.setup-grid label,.setup-grid .full{grid-column:1}.recurring-row{grid-template-columns:40px 1fr auto;padding:13px}.recurring-row>span{display:none}.recurring-row>strong{font-size:12px}.recurring-row>.row-actions{grid-column:3}.auth-page{grid-template-columns:1fr}.auth-hero{display:none}.auth-panel{min-height:100vh;padding:22px}.feature-row{grid-template-columns:1fr}.modal-card{padding:20px;border-radius:20px;max-height:92vh;overflow:auto}.category-settings{grid-template-columns:1fr}.settings-card{grid-template-columns:1fr}.insight-strip>div{flex-direction:column;align-items:flex-start}.global-flash{left:16px;right:16px;top:70px}}
