@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Sora:wght@600;700;800&display=swap";:root{--text:#6b6459;--text-h:#1c1a17;--bg:#fbfaf8;--bg-alt:#f5f2ee;--border:#e7e1d8;--accent:#7c3aed;--accent-bg:#7c3aed1a;--accent-border:#7c3aed73;--accent-2:#d97706;--accent-2-bg:#d977061f;--accent-2-border:#d9770666;--accent-3:#f97316;--accent-3-bg:#f973161f;--accent-3-border:#f9731666;--gradient-brand:linear-gradient(135deg, #4f46e5 0%, #0ea5e9 100%);--positive:#16a34a;--positive-bg:#16a34a1f;--negative:#dc2626;--negative-bg:#dc26261f;--shadow-sm:0 1px 2px #1c1a170f, 0 1px 1px #1c1a170a;--shadow-md:0 6px 20px #1c1a1714;--shadow-lg:0 16px 40px #1c1a1724;--sans:"Inter", system-ui, "Segoe UI", Roboto, sans-serif;--display:"Sora", "Inter", system-ui, "Segoe UI", Roboto, sans-serif;font:16px/150% var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#9aa0ac;--text-h:#f5f6f8;--bg:#0e1015;--bg-alt:#171a21;--border:#282c36;--accent:#8b7bf6;--accent-bg:#8b7bf629;--accent-border:#8b7bf680;--accent-2:#fbbf24;--accent-2-bg:#fbbf2429;--accent-2-border:#fbbf2480;--accent-3:#fb923c;--accent-3-bg:#fb923c29;--accent-3-border:#fb923c80;--gradient-brand:linear-gradient(135deg, #818cf8 0%, #22d3ee 100%);--positive:#34d399;--positive-bg:#34d39924;--negative:#f87171;--negative-bg:#f8717124;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 6px 20px #00000059;--shadow-lg:0 20px 48px #00000073}}*{box-sizing:border-box}body{margin:0;overflow-x:hidden}#root{min-height:100svh}h1,h2{font-family:var(--display);color:var(--text-h);letter-spacing:-.01em;font-weight:700}h1{margin:0 0 24px;font-size:34px}h2{margin:0 0 16px;font-size:19px}h3{font-family:var(--display);color:var(--text-h)}p{margin:0}button{font:inherit;cursor:pointer;border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--text-h);border-radius:8px;padding:8px 14px;font-weight:500;transition:border-color .15s,background .15s,transform .1s,box-shadow .15s}button:hover{border-color:var(--accent);transform:translateY(-1px)}button:active{transform:translateY(0)}button[type=submit]{background:var(--gradient-brand);color:#fff;box-shadow:var(--shadow-sm);border:none;font-weight:600}button[type=submit]:hover{box-shadow:var(--shadow-md)}input,select{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:6px 8px;transition:border-color .15s,box-shadow .15s}input:focus-visible,select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);outline:none}a{color:var(--accent)}.app-shell{flex-direction:column;min-height:100svh;display:flex}.nav-bar{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:15;flex-wrap:wrap;align-items:center;gap:24px;padding:14px 24px;display:flex;position:sticky;top:0}.nav-brand-group{flex-direction:column;line-height:1.15;display:flex}.nav-brand{font-family:var(--display);letter-spacing:-.01em;white-space:nowrap;background:var(--gradient-brand);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:18px;font-weight:800}.nav-brand-byline{color:var(--text);white-space:nowrap;font-size:11px}.nav-links{flex-wrap:wrap;flex:1;gap:20px;min-width:0;display:flex}.nav-links a{color:var(--text);border-bottom:2px solid #0000;padding:6px 2px;font-weight:500;text-decoration:none;transition:color .15s,border-color .15s}.nav-links a:hover{color:var(--text-h)}.nav-links a.active{color:var(--text-h);border-bottom-color:var(--accent)}.nav-actions{align-items:center;gap:8px;display:flex}.support-btn{border:1px solid var(--accent-2-border);background:var(--accent-2-bg);color:var(--accent-2);white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.support-btn:hover{border-color:var(--accent-2);transform:translateY(-1px)}.nav-message{background:var(--bg-alt);border:1px solid var(--border);z-index:10;max-width:360px;box-shadow:var(--shadow-md);border-radius:8px;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;font-size:14px;display:flex;position:absolute;top:100%;right:24px}.nav-message.error{border-color:var(--negative);color:var(--negative)}.dismiss-btn{background:0 0;border:none;padding:0 4px;font-size:16px}main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:32px 24px}.app-footer{border-top:1px solid var(--border);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:16px;font-size:14px;display:flex}.footer-disclaimer{color:var(--text);margin:0;font-size:12px}.app-footer-credits{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.footer-badge{height:52px}.page{flex-direction:column;gap:24px;display:flex}.page-header{flex-direction:column;gap:6px;display:flex}.page-tagline{color:var(--text);margin:0;font-size:15px}.card-header{flex-direction:column;gap:10px;display:flex}.card{border:1px solid var(--border);background:var(--bg-alt);box-shadow:var(--shadow-sm);border-radius:14px;flex-direction:column;gap:16px;padding:22px;display:flex}.card h2{margin-bottom:0}.summary-page .card,.summary-page .card-header{gap:1rem}.card.card-income{background:linear-gradient(160deg, color-mix(in srgb, var(--positive) 12%, var(--bg-alt)) 0%, color-mix(in srgb, var(--positive) 5%, var(--bg-alt)) 100%);border-color:color-mix(in srgb, var(--positive) 30%, var(--border))}.card.card-income h2{color:color-mix(in srgb, var(--positive) 65%, var(--text-h))}.card.card-expenses{background:linear-gradient(160deg, color-mix(in srgb, var(--accent-3) 12%, var(--bg-alt)) 0%, color-mix(in srgb, var(--accent-3) 5%, var(--bg-alt)) 100%);border-color:color-mix(in srgb, var(--accent-3) 30%, var(--border))}.card.card-expenses h2{color:color-mix(in srgb, var(--accent-3) 65%, var(--text-h))}.card.card-position{background:var(--accent-bg);border-color:var(--accent-border)}.coming-soon-section{position:relative;overflow:hidden}.coming-soon-section>:not(.coming-soon-ribbon){opacity:.45;pointer-events:none;-webkit-user-select:none;user-select:none}.coming-soon-ribbon{background:var(--accent);color:#fff;text-align:center;letter-spacing:.12em;width:calc(100% + 120px);box-shadow:var(--shadow-sm);z-index:5;padding:8px 0;font-family:Sora,sans-serif;font-size:15px;font-weight:700;position:absolute;top:38px;left:-60px;transform:rotate(-8deg)}.welcome-banner{border:1px solid var(--accent-border);background:var(--accent-bg);box-shadow:var(--shadow-sm);border-radius:14px;flex-direction:column;gap:10px;padding:22px 48px 22px 22px;animation:.5s ease-out welcome-in,4s ease-in-out .5s infinite welcome-glow;display:flex;position:relative}.welcome-banner h2{margin:0}.wave-emoji{transform-origin:70% 70%;animation:2.5s ease-in-out infinite wave;display:inline-block}@keyframes welcome-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes welcome-glow{0%,to{box-shadow:var(--shadow-sm), 0 0 0 0 color-mix(in srgb, var(--accent) 25%, transparent)}50%{box-shadow:var(--shadow-sm), 0 0 18px 2px color-mix(in srgb, var(--accent) 25%, transparent)}}@keyframes wave{0%,60%,to{transform:rotate(0)}10%,30%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}}.welcome-banner-dismiss{cursor:pointer;color:var(--text);background:0 0;border:none;padding:4px;font-size:22px;line-height:1;position:absolute;top:14px;right:14px}.welcome-banner-dismiss:hover{color:var(--text-h)}.line-item-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.line-item-form>input{flex:140px;min-width:100px}.critical-toggle{white-space:nowrap;align-items:center;gap:6px;display:flex}.critical-toggle--wrap{white-space:normal;align-items:flex-start}.critical-toggle--wrap input[type=checkbox]{margin-top:2px}.line-item-table{border-collapse:collapse;width:100%}.line-item-table th,.line-item-table td{text-align:left;border-bottom:1px solid var(--border);padding:8px}.line-item-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--text);border-bottom:2px solid var(--accent-border);font-size:12px;font-weight:600}.line-item-table tbody tr:hover{background:var(--accent-bg)}.line-item-table input{width:100%;min-width:70px}input[type=checkbox]{width:17px;min-width:0;height:17px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.line-item-table th.checkbox-cell,.line-item-table td.checkbox-cell{text-align:center;white-space:nowrap;width:1%}.text-center,.line-item-table td.text-center{text-align:center}.info-tooltip{border-bottom:1px dotted var(--text);cursor:help;position:relative}.info-tooltip:after{content:attr(data-tooltip);background:var(--text-h);color:var(--bg);white-space:normal;text-align:left;opacity:0;visibility:hidden;pointer-events:none;z-index:20;border-radius:6px;width:max-content;max-width:200px;padding:6px 10px;font-size:12px;font-weight:400;line-height:1.4;transition:opacity .15s;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.info-tooltip:hover:after,.info-tooltip:focus-visible:after{opacity:1;visibility:visible}.frequency-group+.frequency-group{margin-top:20px}.frequency-group-heading{text-transform:uppercase;letter-spacing:.04em;color:var(--text);margin:0 0 4px;font-size:14px}.line-item-row--categorized{background:var(--accent-bg)}.line-item-subtotal-row td{border-bottom:none;border-top:2px solid var(--border);font-weight:700}.remove-btn{border:1px solid var(--negative);color:var(--negative);background:0 0;padding:4px 10px;font-size:13px}.remove-btn:hover{background:var(--negative-bg);border-color:var(--negative)}.remove-icon-btn{border:1px solid var(--negative);width:26px;height:26px;color:var(--negative);background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;display:inline-flex}.remove-icon-btn:hover:not(:disabled){background:var(--negative);color:var(--bg)}.remove-icon-btn:disabled{opacity:.4;cursor:not-allowed}.confirm-clear{border:1px solid var(--negative);background:var(--negative-bg);border-radius:10px;padding:12px}.confirm-clear-actions{gap:8px;margin-top:8px;display:flex}.empty-state,.muted{color:var(--text);font-size:14px;font-style:italic}.settings-option-list{margin:0;padding-left:20px}.settings-option-list li+li{margin-top:8px}.modal-overlay{z-index:30;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f0d0a80;justify-content:center;align-items:center;padding:24px;animation:.15s modal-overlay-in;display:flex;position:fixed;inset:0}.modal-content{-webkit-overflow-scrolling:touch;width:min(720px,100%);max-height:90vh;box-shadow:var(--shadow-lg);border-radius:16px;padding:0;animation:.18s modal-content-in;overflow-y:auto}@keyframes modal-overlay-in{0%{opacity:0}}@keyframes modal-content-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.modal-header{border-bottom:1px solid var(--border);background:var(--bg-alt);z-index:1;border-radius:16px 16px 0 0;justify-content:space-between;align-items:center;gap:12px;padding:22px 22px 18px;display:flex;position:sticky;top:0}.modal-header h2{margin:0}.modal-body{flex-direction:column;padding:4px 22px 22px;font-size:14px;display:flex}.modal-body button,.modal-body .critical-toggle{font-size:14px}.modal-content h3{margin:0;font-size:15px}.modal-section{border-bottom:1px solid var(--border);flex-direction:column;gap:10px;padding:18px 0;display:flex}.modal-section:last-child{border-bottom:none;padding-bottom:4px}.modal-close-btn{cursor:pointer;width:32px;height:32px;color:var(--text);background:0 0;border:none;border-radius:50%;flex-shrink:0;padding:0;font-size:20px;line-height:1;transition:background .15s,color .15s}.modal-close-btn:hover{background:var(--accent-bg);color:var(--text-h);transform:none}.section-total{font-size:15px}.settings-bonus-note{background:var(--positive-bg);border:1px solid color-mix(in srgb, var(--positive) 45%, transparent);border-radius:8px;padding:10px 12px;font-size:14px}.settings-personal-note{color:var(--text);background:var(--accent-2-bg);border:1px solid var(--accent-2-border);border-radius:8px;padding:10px 12px;font-size:14px;font-style:italic}.field{flex-direction:column;gap:4px;max-width:260px;font-size:14px;display:flex}.field-wide{max-width:340px}.calc-inputs,.summary-headline{flex-wrap:wrap;gap:16px;display:flex}.summary-headline>div{background:var(--bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:6px;min-width:150px;padding:14px 18px;display:flex}.summary-label{color:var(--text);font-size:13px;font-weight:500}.summary-value{font-family:var(--display);color:var(--text-h);font-size:26px;font-weight:700}.summary-headline .positive{background:var(--positive-bg);border-color:#0000}.summary-headline .negative{background:var(--negative-bg);border-color:#0000}.summary-headline .positive .summary-value{color:var(--positive)}.summary-headline .negative .summary-value{color:var(--negative)}.disclaimer{border:1px solid var(--border);border-left:3px solid var(--accent-2);background:var(--bg-alt);border-radius:8px;padding:12px 16px;font-size:14px}.rate-history-form input{flex:130px}.simulate-hints{margin:0;padding:0;list-style:none}.simulate-hints li{text-indent:-1.6em;padding-left:1.6em}.simulate-hints li+li{margin-top:4px}.simulate-toggles{flex-wrap:wrap;gap:24px;display:flex}.chart-legend{color:var(--text);gap:16px;margin-top:12px;font-size:13px;display:flex}.chart-legend-item{align-items:center;gap:6px;display:flex}.chart-legend-swatch{border-radius:2px;width:10px;height:10px;display:inline-block}.stats-table td:not(:first-child),.stats-table th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.stats-row-emphasise td{border-top:2px solid var(--border);background:var(--bg);font-size:15px;font-weight:700}.stats-table td.positive{color:var(--positive);font-weight:700}.stats-table td.negative{color:var(--negative);font-weight:700}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.utility-comparison-table input[type=number]{min-width:70px}.utility-comparison-table input[type=text]{min-width:110px}.utility-comparison-table th{white-space:nowrap}.utility-table-transposed th,.utility-table-transposed td{min-width:130px}.utility-table-transposed th:first-child,.utility-table-transposed td:first-child{white-space:nowrap;background:var(--bg-alt);min-width:110px;font-weight:600;position:sticky;left:0}.utility-rank-1{color:#7a5900;background:#ffc10766;border-bottom:3px solid #d4a017;font-weight:700}.utility-rank-2{color:#3f4750;background:#949ea859;border-bottom:3px solid #8a94a0;font-weight:700}.utility-rank-3{color:#6b3d10;background:#cd7f3252;border-bottom:3px solid #cd7f32;font-weight:700}@media (width<=700px){main{padding:20px 14px}h1{margin-bottom:16px;font-size:26px}.card{border-radius:12px;padding:16px}.nav-bar{gap:10px;padding:10px 14px}.nav-brand{font-size:15px}.nav-brand-byline{font-size:10px}.nav-links{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;flex-basis:100%;order:3;gap:16px;padding-bottom:2px;overflow-x:auto}.nav-links a{white-space:nowrap}.nav-actions{gap:6px;margin-left:auto}.nav-actions button{padding:6px 10px;font-size:13px}.support-btn-label{display:none}.nav-message{max-width:none;left:14px;right:14px}.summary-headline{gap:10px}.summary-headline>div{flex:calc(50% - 10px);min-width:0;padding:12px 14px}.summary-value{font-size:22px}.line-item-form{gap:10px}.app-footer{padding:14px;font-size:13px}.footer-badge{height:40px}.modal-overlay{padding:0}.modal-content{border-radius:0;width:100%;max-width:none;height:100dvh;max-height:100dvh}.modal-header{border-radius:0;padding:16px 16px 12px}.modal-body{padding:4px 16px 16px}}
