@charset "UTF-8";:root{--bg-page: #0d1b2a;--bg-surface: #112233;--bg-surface-alt: #0a1520;--bg-input: #0d1b2a;--border: #1e3048;--border-muted: #263238;--border-hover: #263e57;--text-primary: #e8eaf0;--text-secondary: #cfd8dc;--text-muted: #78909c;--text-dim: #546e7a;--text-faint: #455a64;--text-empty: #37474f;--income-color: #81c784;--expense-color: #e57373;--positive-color: #81c784;--negative-color: #e57373;--primary: #1565c0;--primary-hover: #1976d2;--primary-focus: #42a5f5;--primary-subtle: #0d2540;--accent: #64b5f6;--brand-color: #4fc3f7;--attention-bg: #1a0f0a;--attention-border: #4e342e;--attention-title: #ff8a65;--attention-subtitle: #6d4c41;--attention-amount: #ef9a9a;--attention-hover: #231510;--badge-paid-bg: #1b3a1b;--badge-paid-text: #81c784;--row-hover: #14283d;--auth-card-bg: #0d1b2a;--auth-border: rgba(255,255,255,.1);--auth-text: #ffffff;--auth-label: rgba(255,255,255,.55);--auth-input-bg: rgba(255,255,255,.05);--auth-input-border: rgba(255,255,255,.15);--auth-placeholder: rgba(255,255,255,.3);--auth-secondary-text:rgba(255,255,255,.4);--auth-link: #4fc3f7;--auth-btn: #2E75B6;--auth-btn-hover: #1F5C96}body.theme-dark{--bg-page: #121212;--bg-surface: #1E1E1E;--bg-input: #121212;--border: #2C2C2C;--border-muted: #333333;--border-hover: #444444;--text-primary: #E0E0E0;--text-secondary: #D0D0D0;--text-muted: #9E9E9E;--text-dim: #757575;--text-faint: #616161;--text-empty: #424242;--row-hover: #252525;--bg-surface-alt: #141414;--auth-card-bg: #1E1E1E}body.theme-light{--bg-page: #F5F5F5;--bg-surface: #FFFFFF;--bg-surface-alt: #EEEEEE;--bg-input: #FAFAFA;--border: #E0E0E0;--border-muted: #BDBDBD;--border-hover: #9E9E9E;--text-primary: #1A1A1A;--text-secondary: #212121;--text-muted: #616161;--text-dim: #757575;--text-faint: #9E9E9E;--text-empty: #BDBDBD;--income-color: #2E7D32;--expense-color: #C62828;--positive-color: #2E7D32;--negative-color: #C62828;--primary: #1976D2;--primary-hover: #1565C0;--primary-focus: #1565C0;--primary-subtle: #E3F2FD;--accent: #1976D2;--brand-color: #1976D2;--attention-bg: #FFF3E0;--attention-border: #FF8A65;--attention-title: #E64A19;--attention-subtitle: #FF8A65;--attention-amount: #C62828;--attention-hover: #FFE0B2;--badge-paid-bg: #E8F5E9;--badge-paid-text: #2E7D32;--row-hover: #F5F5F5;--auth-card-bg: #FFFFFF;--auth-border: rgba(0,0,0,.1);--auth-text: #1A1A1A;--auth-label: #616161;--auth-input-bg: #F5F5F5;--auth-input-border: #E0E0E0;--auth-placeholder: #BDBDBD;--auth-secondary-text:#757575;--auth-link: #1976D2;--auth-btn: #1976D2;--auth-btn-hover: #1565C0}body.theme-high-contrast{--bg-page: #000000;--bg-surface: #0A0A0A;--bg-surface-alt: #050505;--bg-input: #000000;--border: #444444;--border-muted: #333333;--border-hover: #FFFFFF;--text-primary: #FFFFFF;--text-secondary: #FFFFFF;--text-muted: #CCCCCC;--text-dim: #AAAAAA;--text-faint: #888888;--text-empty: #666666;--income-color: #00FF88;--expense-color: #FF4444;--positive-color: #00FF88;--negative-color: #FF4444;--primary: #44AAFF;--primary-hover: #66BBFF;--primary-focus: #88CCFF;--primary-subtle: #001a33;--accent: #44AAFF;--brand-color: #44AAFF;--attention-bg: #1a0505;--attention-border: #FF4444;--attention-title: #FF8844;--attention-subtitle: #AA4422;--attention-amount: #FF4444;--attention-hover: #0a0a0a;--badge-paid-bg: #002200;--badge-paid-text: #00FF88;--row-hover: #111111;--auth-card-bg: #0A0A0A;--auth-border: rgba(255,255,255,.3);--auth-text: #FFFFFF;--auth-label: #CCCCCC;--auth-input-bg: rgba(255,255,255,.05);--auth-input-border: rgba(255,255,255,.3);--auth-placeholder: rgba(255,255,255,.4);--auth-secondary-text:#AAAAAA;--auth-link: #44AAFF;--auth-btn: #44AAFF;--auth-btn-hover: #66BBFF}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;background:var(--bg-page);color:var(--text-primary);-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font-family:inherit;font-size:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:inherit}.page-container,.dashboard,.annual-page,.budgets-page,.goals-page,.reports-page,.templates-page{max-width:960px;margin:0 auto;padding:1.5rem 2rem}@media(max-width:600px){.page-container,.dashboard,.annual-page,.budgets-page,.goals-page,.reports-page,.templates-page{padding:1rem}}.dashboard-header{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.5rem}.dashboard-header h1{font-size:1.2rem;font-weight:600;color:var(--text-secondary);min-width:180px;text-align:center}.dashboard-header button{background:transparent;border:1px solid var(--border-muted);color:var(--text-muted);width:34px;height:34px;border-radius:8px;font-size:1.3rem;display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s}.dashboard-header button:hover{border-color:var(--text-dim);color:var(--text-secondary)}.summary-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1rem}.summary-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;padding:.9rem 1rem;display:flex;flex-direction:column;gap:.3rem;min-width:0}.summary-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:600}.summary-value{font-size:1.25rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.summary-value.income{color:var(--income-color)}.summary-value.expense{color:var(--expense-color)}.summary-value.positive{color:var(--positive-color)}.summary-value.negative{color:var(--negative-color)}@media(max-width:480px){.summary-strip{grid-template-columns:1fr;gap:.5rem}.summary-card{flex-direction:row;align-items:center;justify-content:space-between;padding:.7rem .9rem}.summary-value{font-size:1.1rem}}.paid-counts{font-size:.8rem;color:var(--text-dim);margin-bottom:1.5rem;text-align:center}.entries-section{margin-bottom:1.75rem}.entries-section h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);font-weight:700;margin-bottom:.6rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}.entry-row{display:flex;align-items:center;justify-content:space-between;padding:.7rem .85rem;border-radius:8px;margin-bottom:.4rem;background:var(--bg-surface);border:1px solid var(--border);cursor:pointer;transition:background .15s,border-color .15s;gap:.75rem}.entry-row:hover{background:var(--row-hover);border-color:var(--border-hover)}.entry-main{display:flex;flex-direction:column;gap:.2rem;min-width:0}.entry-name{font-size:.95rem;font-weight:500;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-category,.entry-due{font-size:.72rem;color:var(--text-dim)}.entry-right{display:flex;align-items:center;gap:.6rem;flex-shrink:0}.entry-amount{font-size:.95rem;font-weight:600;color:var(--text-secondary);font-variant-numeric:tabular-nums}.entry-amount.income{color:var(--income-color)}.badge{font-size:.7rem;padding:.2rem .55rem;border-radius:20px;font-weight:600;white-space:nowrap}.badge.paid,.badge.received{background:var(--badge-paid-bg);color:var(--badge-paid-text)}.btn-mark-paid{background:transparent;border:1px solid var(--primary);color:var(--accent);padding:.22rem .6rem;border-radius:6px;font-size:.75rem;white-space:nowrap;transition:background .15s}.btn-mark-paid:hover{background:var(--primary-subtle)}.empty-state{color:var(--text-empty);font-size:.88rem;font-style:italic;padding:.5rem .85rem}.attention-section{margin-bottom:1.5rem;border:1px solid var(--attention-border);border-radius:10px;background:var(--attention-bg);padding:.85rem 1rem}.attention-title{font-size:.82rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:var(--attention-title);margin-bottom:.25rem;border-bottom:none}.attention-title .attention-icon{font-style:normal}.attention-subtitle{font-size:.78rem;color:var(--attention-subtitle);margin-bottom:.75rem}.attention-row{display:flex;align-items:center;justify-content:space-between;padding:.5rem .4rem;border-radius:6px;margin-bottom:.3rem;gap:.75rem}.attention-row:hover{background:var(--attention-hover)}.attention-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.attention-name{font-size:.92rem;font-weight:500;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attention-meta{font-size:.72rem;color:var(--text-dim)}.attention-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.attention-amount{font-size:.92rem;font-weight:600;color:var(--attention-amount);font-variant-numeric:tabular-nums}.btn-pencil{background:transparent;border:none;font-size:.85rem;cursor:pointer;padding:.1rem .2rem;line-height:1;opacity:.55;transition:opacity .15s}.btn-pencil:hover{opacity:1}.btn-edit-amount{background:transparent;border:1px solid var(--attention-border);color:var(--attention-title);padding:.18rem .5rem;border-radius:6px;font-size:.78rem;cursor:pointer;transition:background .15s}.btn-edit-amount:hover{background:var(--attention-hover)}.inline-edit{display:flex;align-items:center;gap:.3rem;flex-shrink:0}.inline-edit__prefix{color:var(--text-muted);font-size:.88rem}.inline-edit__input{width:80px;background:var(--bg-page);border:1px solid var(--primary);border-radius:6px;padding:.25rem .4rem;color:var(--text-primary);font-size:.88rem;font-variant-numeric:tabular-nums;outline:none}.inline-edit__input:focus{border-color:var(--primary-focus)}.inline-edit__save{background:var(--primary);color:#fff;border:none;padding:.25rem .55rem;border-radius:6px;font-size:.78rem;font-weight:600;cursor:pointer;transition:background .15s}.inline-edit__save:hover{background:var(--primary-hover)}.inline-edit__cancel{background:transparent;border:1px solid var(--border-muted);color:var(--text-muted);padding:.25rem .4rem;border-radius:6px;font-size:.78rem;cursor:pointer;transition:border-color .15s,color .15s}.inline-edit__cancel:hover{border-color:var(--text-dim);color:var(--text-secondary)}.fab{position:fixed;bottom:calc(76px + env(safe-area-inset-bottom,0px));right:1.25rem;width:52px;height:52px;border-radius:50%;background:var(--primary);color:#fff;font-size:1.6rem;border:none;box-shadow:0 4px 16px #1565c080;display:flex;align-items:center;justify-content:center;z-index:40;transition:transform .15s,box-shadow .15s;cursor:pointer}.fab:hover{transform:scale(1.08);box-shadow:0 6px 20px #1565c0a6}@media(min-width:601px){.fab{bottom:1.5rem;right:1.5rem}}.annual-header{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.5rem}.annual-header h1{font-size:1.2rem;font-weight:600;color:var(--text-secondary)}.annual-header .nav-btn{background:transparent;border:1px solid var(--border-muted);color:var(--text-muted);font-size:1.3rem;width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s}.annual-header .nav-btn:hover{border-color:var(--text-dim);color:var(--text-secondary)}.grid-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.annual-grid{width:100%;border-collapse:collapse;font-size:.9rem}.annual-grid th{text-align:right;padding:.5rem .75rem;color:var(--text-faint);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border)}.annual-grid th.col-month{text-align:left}.annual-grid td{padding:.6rem .75rem;border-bottom:1px solid var(--bg-surface)}.annual-grid .col-month{text-align:left}.annual-grid .col-number{text-align:right;font-variant-numeric:tabular-nums}.annual-grid .month-name{font-weight:500;color:var(--text-secondary)}.annual-grid .month-row{cursor:pointer;transition:background .12s}.annual-grid .month-row:hover{background:var(--bg-surface)}.annual-grid .month-row.future{opacity:.4}.annual-grid .income-val{color:var(--income-color)}.annual-grid .expense-val{color:var(--expense-color)}.annual-grid .positive{color:var(--positive-color);font-weight:600}.annual-grid .negative{color:var(--negative-color);font-weight:600}.annual-grid .totals-row td{border-top:2px solid var(--border);border-bottom:none;font-weight:700;background:var(--bg-surface-alt)}@media(max-width:600px){.annual-grid{min-width:460px}}.annual-saving{margin-top:.75rem;text-align:right;font-size:.88rem;color:var(--text-dim)}.annual-saving strong{margin-left:.3rem}.annual-saving .positive{color:var(--positive-color)}.annual-saving .negative{color:var(--negative-color)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;box-sizing:border-box}.auth-card{max-width:420px;width:100%;background:var(--auth-card-bg);border:.5px solid var(--auth-border);border-radius:16px;padding:2.5rem;box-sizing:border-box}.auth-card--wide{max-width:540px}.auth-brand{display:block;text-align:center;font-size:1.1rem;font-weight:700;color:var(--brand-color);margin-bottom:1.25rem;letter-spacing:.01em;text-decoration:none}a.auth-brand:hover{opacity:.85}.auth-title{font-size:1.75rem;font-weight:600;margin:0 0 1.5rem;text-align:center;color:var(--auth-text)}.auth-field{display:flex;flex-direction:column;gap:.35rem}.auth-field label{font-size:.82rem;color:var(--auth-label);font-weight:500}.auth-field input{width:100%;padding:.75rem 1rem;background:var(--auth-input-bg);border:1px solid var(--auth-input-border);border-radius:8px;color:var(--auth-text);font-size:1rem;margin-bottom:1rem;box-sizing:border-box;transition:border-color .15s}.auth-field input:focus{border-color:var(--primary);outline:none}.auth-field input::placeholder{color:var(--auth-placeholder)}.auth-btn{width:100%;padding:.875rem;background:var(--auth-btn);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;margin-top:.5rem;transition:background .15s}.auth-btn:hover:not(:disabled){background:var(--auth-btn-hover)}.auth-btn:disabled{opacity:.6;cursor:default}.auth-secondary{text-align:center;color:var(--auth-secondary-text);font-size:.875rem;margin-top:1.25rem}.auth-secondary a{color:var(--auth-link);text-decoration:none}.auth-secondary a:hover{text-decoration:underline}@media(max-width:480px){.auth-card{padding:1.5rem}}.form-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.form-field label{font-size:.82rem;color:var(--text-muted)}.form-field input,.form-field select,.form-field textarea{background:var(--bg-input);border:1px solid var(--border);border-radius:7px;padding:.55rem .75rem;color:var(--text-primary);font-size:.95rem;transition:border-color .15s;outline:none}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--primary)}.form-error{color:var(--attention-amount);font-size:.83rem;margin:.25rem 0}.field-error{color:var(--attention-amount);font-size:.78rem;margin:.2rem 0 0}.btn-primary{background:var(--primary);color:#fff;border:none;padding:.6rem 1rem;border-radius:8px;font-size:.95rem;font-weight:600;width:100%;transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:disabled{opacity:.5;cursor:default}.loading{color:var(--text-empty);text-align:center;padding:2rem 1rem;font-size:.9rem}.positive{color:var(--positive-color)}.negative{color:var(--negative-color)}@media(max-width:768px){.ln-nav,.la-nav{display:none!important}.la-page>.la-main{padding-top:1rem}.ln-hero{padding-top:2rem}}
