:root{--touch-target-min: 48px;--surface: #f4faff;--surface-dim: #c0dfee;--surface-bright: #f4faff;--surface-container-lowest: #ffffff;--surface-container-low: #e6f6ff;--surface-container: #d9f2ff;--surface-container-high: #ceedfd;--surface-container-highest: #c9e7f7;--surface-variant: #c9e7f7;--surface-tint: #0061a4;--on-surface: #001f2a;--on-surface-variant: #404752;--inverse-surface: #163440;--inverse-on-surface: #e0f4ff;--outline: #707883;--outline-variant: #bfc7d4;--primary: #0061a4;--on-primary: #ffffff;--primary-container: #2196f3;--on-primary-container: #002c4f;--inverse-primary: #9ecaff;--primary-fixed: #d1e4ff;--primary-fixed-dim: #9ecaff;--on-primary-fixed: #001d36;--on-primary-fixed-variant: #00497d;--secondary: #006e1c;--on-secondary: #ffffff;--secondary-container: #91f78e;--on-secondary-container: #00731e;--secondary-fixed: #94f990;--secondary-fixed-dim: #78dc77;--on-secondary-fixed: #002204;--on-secondary-fixed-variant: #005313;--tertiary: #bb1614;--on-tertiary: #ffffff;--tertiary-container: #ff5748;--on-tertiary-container: #5e0002;--tertiary-fixed: #ffdad5;--tertiary-fixed-dim: #ffb4a9;--on-tertiary-fixed: #410001;--on-tertiary-fixed-variant: #930005;--error: #ba1a1a;--on-error: #ffffff;--error-container: #ffdad6;--on-error-container: #93000a;--bg: var(--surface);--bg2: var(--surface-container-low);--card: var(--surface-container-lowest);--card2: var(--surface-container);--border: var(--outline-variant);--primary-light: var(--primary-fixed);--primary-glow: rgba(0, 97, 164, .15);--accent: #2196f3;--accent2: #64b5f6;--green: var(--secondary);--green-light: var(--secondary-container);--red: var(--tertiary);--red-light: var(--tertiary-fixed);--text: var(--on-surface);--text2: var(--on-surface-variant);--text3: var(--outline);--income: var(--secondary);--expense: var(--tertiary);--elevation-1: 0 1px 3px rgba(0, 31, 42, .08), 0 1px 2px rgba(0, 31, 42, .12);--elevation-2: 0 3px 6px rgba(0, 31, 42, .1), 0 2px 4px rgba(0, 31, 42, .08);--elevation-3: 0 10px 20px rgba(0, 31, 42, .12), 0 3px 6px rgba(0, 31, 42, .08);--shadow: 0 2px 12px rgba(0, 97, 164, .08);--shadow-lg: 0 4px 24px rgba(0, 97, 164, .12);--font-display: "Hanken Grotesk", -apple-system, sans-serif;--font-body: "Inter", -apple-system, sans-serif;--font-mono: "JetBrains Mono", monospace;--radius-sm: .25rem;--radius-default: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-full: 9999px;--spacing-container-margin: 1rem;--spacing-stack-gap: .75rem;--spacing-inline-gap: 1rem;--spacing-card-padding: 1.25rem;--spacing-section-padding: 2rem;--sidebar-width: 248px;--bottom-nav-height: 64px;--header-height: 56px}html.theme-light{--surface: #f4faff;--bg: var(--surface);--card: #ffffff;--text: #001f2a;--text2: #404752}html.theme-dark{--surface: #0a1923;--surface-container-lowest: #10222f;--surface-container-low: #162c3d;--surface-container: #1b354a;--surface-container-high: #213f57;--surface-container-highest: #284a66;--on-surface: #e0f4ff;--on-surface-variant: #9fb8cc;--outline: #6f8fa8;--outline-variant: #32506a;--primary: #9ecaff;--on-primary: #003258;--primary-container: #00497d;--on-primary-container: #d1e4ff;--secondary: #78dc77;--on-secondary: #00390a;--secondary-container: #005313;--on-secondary-container: #94f990;--tertiary: #ffb4a9;--on-tertiary: #680003;--tertiary-container: #930005;--on-tertiary-container: #ffdad5;--bg: var(--surface);--card: var(--surface-container-lowest);--card2: var(--surface-container);--text: var(--on-surface);--text2: var(--on-surface-variant);--text3: var(--outline);--income: var(--secondary);--expense: var(--tertiary)}html.theme-dark body{color-scheme:dark}body{font-family:var(--font-body);color:var(--text);background:var(--bg);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6,.font-display{font-family:var(--font-display);font-weight:700;color:var(--text);margin:0}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.1rem}h4{font-size:1rem}p{margin:0}code,pre,.mono,.font-mono,.amount{font-family:var(--font-mono)}.text-navy{color:var(--primary)}.text-blue{color:var(--accent)}.text-income{color:var(--income)}.text-expense{color:var(--expense)}.text-muted{color:var(--text2)}.text-faint{color:var(--text3)}.text-center{text-align:center}.text-right{text-align:right}.font-bold{font-weight:700}.font-semibold{font-weight:600}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}#root{display:flex;flex-direction:column}.app-content{flex:1;min-height:100vh;display:flex;flex-direction:column}.app-main{flex:1;padding:20px;max-width:1200px;width:100%;margin:0 auto}.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.page-title{font-size:1.35rem;font-weight:700}@media (max-width: 768px){.app-main{padding:16px 14px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:var(--radius-default);border:none;font-family:var(--font-body);font-size:14px;font-weight:600;cursor:pointer;min-height:var(--touch-target-min);transition:background .15s ease,opacity .15s ease,transform .1s ease;text-decoration:none;white-space:nowrap}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover:not(:disabled){background:var(--on-primary-fixed-variant)}.btn-secondary{background:var(--surface-container);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--surface-container-high)}.btn-danger{background:var(--error);color:var(--on-error)}.btn-ghost{background:transparent;color:var(--primary)}.btn-ghost:hover:not(:disabled){background:var(--primary-glow)}.btn-income{background:var(--income);color:var(--on-secondary)}.btn-expense{background:var(--expense);color:var(--on-tertiary)}.btn-block{width:100%}.btn-sm{padding:6px 12px;min-height:36px;font-size:13px}.btn-icon{padding:10px;min-width:var(--touch-target-min)}.card{background:var(--card);border-radius:var(--radius-lg);padding:var(--spacing-card-padding);box-shadow:var(--shadow)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.card-title{font-size:1rem;font-weight:700}.kpi-card{background:var(--card);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px}.kpi-label{font-size:12px;color:var(--text2);font-weight:500;text-transform:uppercase;letter-spacing:.03em}.kpi-value{font-size:1.5rem;font-weight:700;font-family:var(--font-display)}.kpi-sub{font-size:12px;color:var(--text3)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.form-group{margin-bottom:14px;display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;font-weight:600;color:var(--text2)}.form-hint{font-size:12px;color:var(--text3)}.input,.select,.textarea{width:100%;padding:11px 14px;border:1px solid var(--outline-variant);border-radius:var(--radius-default);background:var(--surface-container-lowest);color:var(--text);font-family:var(--font-body);font-size:14px;min-height:var(--touch-target-min);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.textarea{min-height:90px;resize:vertical}.form-error{color:var(--error);font-size:13px;font-weight:500}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:600}.badge-income{background:var(--secondary-container);color:var(--on-secondary-container)}.badge-expense{background:var(--tertiary-fixed);color:var(--on-tertiary-container)}.badge-neutral{background:var(--surface-container);color:var(--text2)}.list-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--outline-variant)}.list-row:last-child{border-bottom:none}@keyframes pageFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalOverlayFade{0%{opacity:0}to{opacity:1}}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.96) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes fabActionPop{0%{opacity:0;transform:translateY(8px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.page-container{animation:pageFadeIn .2s ease-out forwards}@keyframes sheetSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.bottom-sheet-overlay{position:fixed;inset:0;background:#0000008c;z-index:1000;display:flex;align-items:flex-end;justify-content:center;animation:modalOverlayFade .2s ease-out forwards}.bottom-sheet{width:100%;max-width:560px;background:var(--card);border-radius:24px 24px 0 0;padding:1.5rem;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:sheetSlideUp .25s cubic-bezier(.16,1,.3,1) forwards}.modal-overlay{position:fixed;inset:0;background:#00000080;z-index:300;display:flex;align-items:center;justify-content:center;padding:16px;animation:modalOverlayFade .18s ease-out forwards}.modal{background:var(--surface-container-lowest);border-radius:var(--radius-lg);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:modalScaleIn .22s cubic-bezier(.16,1,.3,1) forwards}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--outline-variant)}.modal-title{font-size:1.1rem;font-weight:700}.modal-body{padding:18px}.modal-footer{display:flex;gap:10px;justify-content:flex-end;padding:14px 18px;border-top:1px solid var(--outline-variant)}.modal-close{background:none;border:none;color:var(--text2);cursor:pointer;font-size:22px;line-height:1;padding:4px;min-width:36px;min-height:36px;border-radius:var(--radius-full)}.modal-close:hover{background:var(--surface-container)}.toast-container{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:400;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;width:100%;max-width:420px;padding:0 16px}.toast{background:var(--inverse-surface);color:var(--inverse-on-surface);padding:12px 18px;border-radius:var(--radius-default);font-size:14px;font-weight:500;box-shadow:var(--elevation-3);pointer-events:auto;width:100%;text-align:center;animation:modalScaleIn .18s ease-out forwards}.toast-error{background:var(--error);color:var(--on-error)}.toast-success{background:var(--secondary);color:var(--on-secondary)}.page-loader{display:flex;align-items:center;justify-content:center;min-height:60vh;flex-direction:column;gap:12px;color:var(--text2)}.spinner{width:32px;height:32px;border:3px solid var(--surface-container-high);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:48px 20px;color:var(--text2)}.empty-state-icon{font-size:40px;margin-bottom:12px;color:var(--text3)}.fab-container{position:fixed;right:20px;bottom:24px;z-index:150;display:flex;flex-direction:column;align-items:flex-end;gap:10px}.fab-main{width:56px;height:56px;border-radius:50%;background:var(--primary);color:var(--on-primary);border:none;cursor:pointer;box-shadow:var(--elevation-3);display:flex;align-items:center;justify-content:center;font-size:26px;transition:transform .22s cubic-bezier(.34,1.56,.64,1),background-color .15s ease}.fab-main.open{transform:rotate(45deg)}.fab-action{display:flex;align-items:center;gap:10px;background:var(--card);color:var(--text);border:1px solid var(--outline-variant);border-radius:var(--radius-full);padding:8px 14px;cursor:pointer;box-shadow:var(--elevation-2);font-size:13px;font-weight:600;animation:fabActionPop .18s cubic-bezier(.16,1,.3,1) forwards;transition:transform .12s ease,background-color .15s ease}.period-pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;position:relative}.period-pill{display:inline-flex;align-items:center;gap:4px;padding:6px 13px;border-radius:20px;border:1.5px solid var(--border);background:none;color:var(--text3);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.period-pill:hover{border-color:var(--primary);color:var(--primary)}.period-pill.active{background:var(--primary);border-color:var(--primary);color:#fff}.period-popover{position:absolute;top:100%;right:0;margin-top:6px;background:var(--card);border-radius:14px;box-shadow:var(--shadow-lg);padding:16px;z-index:500;width:240px}.period-popover-tabs{display:flex;gap:0;background:var(--bg);border-radius:10px;padding:3px;margin-bottom:12px}.period-popover-tab{flex:1;padding:7px 0;border-radius:8px;border:none;background:none;color:var(--text3);font-size:12px;font-weight:600;cursor:pointer}.period-popover-tab.active{background:var(--card);color:var(--primary);box-shadow:var(--shadow)}.app-header{position:sticky;top:0;z-index:100;background:var(--card);border-bottom:1px solid var(--outline-variant);box-shadow:var(--shadow)}.app-header-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;max-width:1200px;margin:0 auto}.app-header-brand{display:flex;align-items:center;gap:10px;min-width:0}.app-header-logo-text{font-family:var(--font-display);font-size:20px;font-weight:700}.app-header-biz-name{font-size:12px;color:var(--text2);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.app-header-lang-pill{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;border-radius:var(--radius-full);border:1.5px solid var(--border);background:none;color:var(--text3);font-size:12px;font-weight:700;cursor:pointer;min-height:32px;transition:all .2s}.app-header-lang-pill:hover{border-color:var(--primary);color:var(--primary)}.app-header-lang-pill.active{border-color:var(--primary);color:var(--primary);background:var(--primary-glow)}.app-header-icon-btn{border:1.5px solid var(--border);border-radius:var(--radius-full)}@media (max-width: 768px){.app-header-inner{padding:10px 14px}.app-header-logo-text{font-size:18px}}.home-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:1.25rem;align-items:start}@media (max-width: 640px){.home-grid{gap:.6rem}.home-grid .card{padding:.75rem}}.home-card-label{font-size:.75rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text2);margin-bottom:.85rem}@media (max-width: 640px){.home-card-label{font-size:.65rem;margin-bottom:.5rem}}.home-business-list{display:flex;flex-direction:column;gap:.65rem}@media (max-width: 640px){.home-business-list{gap:.4rem}}.home-business-item{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border-radius:var(--radius-md);border:1px solid var(--outline-variant);background:var(--surface-container-lowest);color:var(--text);font-size:.95rem;font-weight:700;cursor:pointer;text-align:left;min-height:var(--touch-target-min);transition:all .15s ease;width:100%}.home-business-item span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.home-business-item:hover{border-color:var(--primary);background:var(--surface-container-low)}@media (max-width: 640px){.home-business-item{gap:.5rem;padding:.55rem .6rem;font-size:.78rem;min-height:40px}}.home-business-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-md);background:var(--primary-glow);color:var(--primary);flex-shrink:0}@media (max-width: 640px){.home-business-icon{width:26px;height:26px}}.home-year-stepper{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding-bottom:.85rem;margin-bottom:.85rem;border-bottom:1px solid var(--outline-variant)}.home-year-btn{width:34px;height:34px;border-radius:var(--radius-md);border:1px solid var(--outline-variant);background:var(--surface-container-lowest);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer}.home-year-btn:disabled{opacity:.4;cursor:not-allowed}.home-year-value{font-size:1.4rem;font-weight:800;color:var(--primary)}@media (max-width: 640px){.home-year-stepper{gap:.25rem;padding-bottom:.5rem;margin-bottom:.5rem}.home-year-btn{width:26px;height:26px}.home-year-value{font-size:1.1rem}}.home-month-list{display:flex;flex-direction:column;gap:.6rem}@media (max-width: 640px){.home-month-list{gap:.35rem}}.home-month-pill{padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--outline-variant);background:var(--surface-container-lowest);color:var(--text);font-size:.95rem;font-weight:700;text-align:center;cursor:pointer;min-height:var(--touch-target-min);transition:all .15s ease;width:100%}.home-month-pill:hover:not(:disabled){border-color:var(--primary)}.home-month-pill.current{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.home-month-pill.disabled{border-style:dashed;color:var(--text3);cursor:not-allowed;opacity:.6}@media (max-width: 640px){.home-month-pill{padding:.45rem .6rem;font-size:.78rem;min-height:36px}}.tax-sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.tax-sheet-title{margin:0;font-family:var(--font-display);font-size:1.35rem;font-weight:800;color:var(--text)}.tax-sheet-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;border:none;border-radius:var(--radius-full);background:var(--surface-container-low);color:var(--text);cursor:pointer}.tax-sheet-subtitle{margin:.5rem 0 1rem;font-size:.9rem;line-height:1.45;color:var(--text2)}.tax-sheet-range{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.75rem}.tax-sheet-field{display:flex;flex-direction:column;gap:.35rem;min-width:0;font-size:.85rem;color:var(--text2)}.tax-sheet-field .input{border-radius:var(--radius-md);background:var(--surface-container-low);font-size:1rem}.tax-sheet-presets{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.85rem}.tax-sheet-chip{padding:.45rem .9rem;border:1.5px solid var(--outline-variant);border-radius:var(--radius-full);background:var(--surface-container-lowest);color:var(--text);font-size:.85rem;font-weight:700;cursor:pointer;transition:all .15s ease}.tax-sheet-chip:hover{border-color:var(--primary);color:var(--primary)}.tax-sheet-chip.active{border-color:var(--primary);background:var(--primary-glow);color:var(--primary)}.tax-sheet-exports{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.75rem;margin-top:1.25rem}.tax-sheet-export{width:100%;border-radius:var(--radius-md);font-weight:700;white-space:normal}.tax-sheet-export.outlined{border:1.5px solid var(--primary);background:var(--surface-container-low);color:var(--primary)}.tax-sheet-export.outlined:hover:not(:disabled){background:var(--surface-container)}.tax-sheet-disclaimer{margin:1.25rem 0 0;font-size:.75rem;line-height:1.5;text-align:center;color:var(--text2)}.month-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.month-title{font-family:var(--font-display);font-size:1.35rem;font-weight:800;color:var(--text);margin:0}.month-saldo-stack{display:flex;flex-direction:column;gap:.85rem;margin-bottom:1.25rem}.month-saldo-card{padding:1.1rem 1.25rem}.month-saldo-label{font-size:.75rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text2);margin-bottom:.75rem}.month-saldo-row{display:flex;gap:1.5rem;flex-wrap:wrap}.month-saldo-cell-label{font-size:.8rem;color:var(--text2);margin-bottom:.2rem}.month-saldo-cell-value{font-size:1.05rem;font-weight:700}.month-tabs{display:flex;gap:.6rem;margin-bottom:1.25rem}.month-tab{padding:.6rem 1.25rem;border-radius:var(--radius-md);border:1px solid var(--outline-variant);background:var(--surface-container-lowest);color:var(--text);font-weight:700;cursor:pointer;min-height:var(--touch-target-min)}.month-tab.income.active{background:var(--secondary-container);border-color:var(--income);color:var(--on-secondary-container)}.month-tab.expense.active{background:var(--card);border-color:transparent;box-shadow:var(--shadow);color:var(--expense)}.month-body{display:grid;grid-template-columns:clamp(120px,26vw,200px) minmax(0,1fr);gap:1rem 1.25rem;align-items:start}.month-photos{display:flex;flex-direction:column;gap:.75rem;min-width:0}.month-photos-title{font-size:.85rem;font-weight:700;color:var(--text2)}.month-photos-empty{font-size:.85rem;color:var(--text2)}.month-photo-card{background:var(--card);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;cursor:pointer}.month-photo-card:hover{background:var(--surface-container-low)}.month-photo-thumb{border-radius:0!important;border:none!important;box-shadow:none!important}.month-photo-meta{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;padding:.5rem .65rem}.month-photo-title{min-width:0;font-weight:700;font-size:.82rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-photo-amount{flex-shrink:0;font-weight:700;font-size:.82rem}.month-photo-amount.income,.month-row-amount.income,.month-section-total.income{color:var(--income)}.month-photo-amount.expense,.month-row-amount.expense,.month-section-total.expense{color:var(--expense)}.month-sections{display:flex;flex-direction:column;gap:1.25rem;min-width:0}.month-tx-empty{padding:2rem;text-align:center;color:var(--text2)}.month-section{border-top:1px solid var(--outline-variant)}.month-section-head{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.75rem .25rem}.month-section-title{margin:0;font-family:var(--font-display);font-size:1rem;font-weight:800;color:var(--text)}.month-section-total{font-weight:800;font-size:1rem}.month-row{padding:.7rem .75rem;border-bottom:1px solid var(--outline-variant);border-radius:0 0 var(--radius-md) var(--radius-md);cursor:pointer}.month-row:hover{background:var(--surface-container-low)}.month-row-main{display:flex;align-items:baseline;gap:.75rem}.month-row-title{flex:1;min-width:0;font-weight:700;font-size:.95rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-row-date{flex-shrink:0;font-size:.78rem;color:var(--text2)}.month-row-amount{flex-shrink:0;font-weight:700;font-size:.95rem}.month-row-sub{display:flex;flex-wrap:wrap;gap:.2rem .9rem;margin-top:.25rem;font-size:.75rem;color:var(--text2)}.op-detail-lines{display:flex;flex-direction:column}.op-detail-line{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--outline-variant);cursor:pointer}.op-detail-line:last-child{border-bottom:none}.op-detail-line-title{font-weight:700;font-size:.92rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.op-detail-line-sub{margin-top:.15rem;font-size:.75rem;color:var(--text2)}.op-detail-line-amount{flex-shrink:0;font-weight:700;font-size:.92rem;color:var(--text)}.fixed-switch{position:relative;display:flex;justify-content:space-between;align-items:center;gap:1rem;cursor:pointer}.fixed-switch.disabled{opacity:.6;cursor:default}.fixed-switch-text{display:flex;flex-direction:column;gap:.15rem;min-width:0}.fixed-switch-label{font-weight:700;font-size:.92rem;color:var(--text)}.fixed-switch-hint{font-size:.75rem;color:var(--text2)}.fixed-switch-input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:inherit}.fixed-switch-track{position:relative;flex-shrink:0;width:44px;height:26px;border-radius:13px;background:var(--outline-variant);transition:background-color .15s ease}.fixed-switch-track:after{content:"";position:absolute;top:3px;inset-inline-start:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:inset-inline-start .15s ease}.fixed-switch-input:checked+.fixed-switch-track{background:var(--primary)}.fixed-switch-input:checked+.fixed-switch-track:after{inset-inline-start:21px}.fixed-switch-input:focus-visible+.fixed-switch-track{outline:2px solid var(--primary);outline-offset:2px}.gov-subtitle{margin:-.5rem 0 1.25rem;font-size:.9rem;color:var(--text2)}.gov-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.25rem}.gov-card{padding:1.1rem 1.25rem}.gov-card-head{display:flex;align-items:flex-start;gap:.85rem}.gov-card-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border-radius:var(--radius-md);background:var(--primary-glow);color:var(--primary)}.gov-card-name-row{flex:1;min-width:0;display:flex;align-items:center;gap:.35rem;min-height:44px}.gov-card-name{margin:0;min-width:0;font-family:var(--font-display);font-size:1.1rem;font-weight:800;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gov-card-name-edit{flex:1;min-width:0;display:flex;align-items:center;gap:.4rem}.gov-card-icon-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border:none;border-radius:var(--radius-full);background:transparent;color:var(--text2);cursor:pointer}.gov-card-icon-btn:hover{background:var(--surface-container-low);color:var(--text)}.gov-card-paid{flex-shrink:0;text-align:end}.gov-card-paid-value{font-size:1.25rem;font-weight:800;color:var(--expense)}.gov-card-paid-label{font-size:.8rem;color:var(--text2)}.gov-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem 1.25rem;margin-top:.6rem;font-size:.88rem;color:var(--text)}.gov-card-files{display:inline-flex;align-items:center;gap:.35rem;color:var(--text2)}.gov-card-payments{margin-top:.85rem;padding-top:.75rem;border-top:1px solid var(--outline-variant)}.gov-card-payments-title{font-size:.8rem;font-weight:700;color:var(--text2)}.gov-card-payments-empty{font-size:.85rem;color:var(--text2)}.gov-card-payment{display:flex;align-items:baseline;gap:.75rem;padding:.3rem 0;font-size:.85rem}.gov-card-payment-date{flex-shrink:0;color:var(--text2)}.gov-card-payment-vendor{flex:1;min-width:0;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gov-card-payment-amount{flex-shrink:0;font-weight:700;color:var(--expense)}.gov-card-open{display:flex;align-items:center;justify-content:center;gap:.35rem;width:100%;margin-top:.85rem;padding:.7rem 1rem;border:1px solid var(--outline-variant);border-radius:var(--radius-md);background:transparent;color:var(--primary);font-weight:700;cursor:pointer;min-height:var(--touch-target-min)}.gov-card-open:hover{border-color:var(--primary);background:var(--surface-container-low)}.gov-add{padding:1rem 1.25rem;border:1.5px dashed var(--outline-variant);border-radius:var(--radius-lg)}.gov-add-title{margin:0 0 .75rem;font-family:var(--font-display);font-size:1rem;font-weight:800;color:var(--text)}.gov-add-row{display:flex;gap:.6rem}.gov-add-row .input{flex:1;min-width:0}.gov-add-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.85rem}.gov-add-chips-label{font-size:.85rem;color:var(--text2)}.gov-chip{padding:.4rem .85rem;border:1px solid var(--outline-variant);border-radius:var(--radius-full);background:var(--surface-container-lowest);color:var(--text);font-size:.85rem;font-weight:700;cursor:pointer}.gov-chip:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.gov-chip:disabled{opacity:.5;cursor:not-allowed}.gov-year{margin-top:1.25rem}.gov-linked-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .85rem;border:1px solid var(--outline-variant);border-radius:var(--radius-full);background:var(--primary-glow);color:var(--primary);font-size:.85rem}.month-header-action{margin-inline-start:auto}.contact-search{position:relative;margin-bottom:1rem;color:var(--text3)}.contact-search>svg{position:absolute;inset-inline-start:14px;top:50%;transform:translateY(-50%);pointer-events:none}.contact-search .input{padding-inline-start:40px}.contact-list{display:flex;flex-direction:column;gap:.75rem}.contact-card{display:flex;align-items:center;gap:.85rem;padding:.9rem 1.1rem}.contact-avatar{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border-radius:var(--radius-full);background:var(--primary-glow);color:var(--primary);font-family:var(--font-display);font-size:1.1rem;font-weight:800}.contact-info{flex:1;min-width:0}.contact-name{font-family:var(--font-display);font-weight:800;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-phone{margin-top:2px;font-size:.85rem;color:var(--text2)}.contact-actions{display:flex;gap:.5rem;flex-shrink:0}.contact-empty{margin:1.5rem 0;text-align:center;color:var(--text2)}.contact-form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem}.project-tabs,.project-status-chips{display:flex;flex-wrap:wrap;gap:.5rem}.project-tabs{margin-bottom:1rem}.project-tab{padding:.45rem .9rem;border:1px solid var(--outline-variant);border-radius:var(--radius-full);background:var(--surface-container-lowest);color:var(--text);font-size:.85rem;font-weight:700;cursor:pointer}.project-tab-active{border-color:var(--primary);background:var(--primary);color:var(--on-primary)}.project-list{display:flex;flex-direction:column;gap:.85rem}.project-card{display:block;width:100%;border:none;padding:1rem 1.25rem;text-align:start;font:inherit;color:inherit;cursor:pointer}.project-card-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.project-card-name{min-width:0;font-family:var(--font-display);font-size:1.05rem;font-weight:800;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-status-planning{background:var(--surface-container);color:var(--text2)}.project-status-in_progress{background:var(--primary-fixed);color:var(--on-primary-fixed-variant)}.project-status-done{background:var(--secondary-container);color:var(--on-secondary-container)}.project-progress{height:8px;overflow:hidden;border-radius:var(--radius-full);background:var(--surface-container-high)}.project-progress-bar{height:100%;border-radius:var(--radius-full);background:var(--primary)}.project-card-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;margin-top:.65rem;font-size:.85rem;color:var(--text2)}.project-card-files{display:inline-flex;align-items:center;gap:4px}.project-detail{display:flex;flex-direction:column;gap:1rem}.project-section{padding:1.1rem 1.25rem}.project-section-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.75rem}.project-section-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;border-radius:var(--radius-md);background:var(--primary-glow);color:var(--primary)}.project-section-title{margin:0;font-family:var(--font-display);font-size:1rem;font-weight:800;color:var(--text)}.project-section-hint{margin-inline-start:auto;font-size:.85rem;color:var(--text2)}.project-section-empty{margin:0 0 .75rem;font-size:.9rem;color:var(--text2)}.project-header-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.project-header-actions{display:flex;justify-content:flex-end;gap:.75rem;margin:.25rem 0 1rem}.project-items{display:flex;flex-direction:column;margin:0 0 .75rem;padding:0;list-style:none}.project-item{display:flex;align-items:center;gap:.65rem;padding:.55rem 0;border-bottom:1px solid var(--surface-container)}.project-item:last-child{border-bottom:none}.project-item-text{flex:1;min-width:0;color:var(--text);overflow-wrap:anywhere;white-space:pre-wrap}.project-item-done{color:var(--text3);text-decoration:line-through}.project-item-sub{font-size:.8rem;color:var(--text2);white-space:nowrap}.project-item-amount{font-weight:700;color:var(--text);white-space:nowrap}.project-item-remove{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;border:none;border-radius:var(--radius-full);background:transparent;color:var(--text3);cursor:pointer}.project-item-remove:hover{background:var(--error-container);color:var(--error)}.project-note{align-items:flex-start}.project-note-body{flex:1;min-width:0}.project-note-save{margin-top:.6rem}.project-add-row{display:flex;gap:.5rem}.project-add-row .input{flex:1;min-width:0}.project-add-row .project-add-date{flex:0 0 150px}.project-add-row .project-add-amount{flex:0 0 100px}.project-add-row .btn{align-self:stretch}.project-files{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem;margin-bottom:.75rem}.project-file-thumb{height:120px}.project-file-name{display:flex;align-items:center;justify-content:space-between;gap:.25rem;margin-top:.35rem;font-size:.8rem;color:var(--text2)}.project-file-name span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-upload,.project-delete{width:100%;padding:.85rem;border:1.5px dashed var(--outline-variant);border-radius:var(--radius-lg);background:transparent;font:inherit;font-weight:700;cursor:pointer}.project-upload{color:var(--primary)}.project-upload:disabled{opacity:.5;cursor:not-allowed}.project-delete{border-color:var(--error);color:var(--error)}.project-links{display:flex;flex-wrap:wrap;gap:.5rem}.project-link-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;border:1px solid var(--outline-variant);border-radius:var(--radius-full);background:var(--surface-container-lowest);color:var(--text);font-size:.85rem;font-weight:700;cursor:pointer}.project-link-chip-on{border-color:var(--primary);background:var(--primary-glow);color:var(--primary)}.row{display:flex;gap:12px}.col{display:flex;flex-direction:column;gap:12px}.flex-1{flex:1}.gap-sm{gap:6px}.gap-md{gap:12px}.gap-lg{gap:20px}.mt-sm{margin-top:8px}.mt-md{margin-top:16px}.mt-lg{margin-top:24px}.mb-sm{margin-bottom:8px}.mb-md{margin-bottom:16px}.mb-lg{margin-bottom:24px}.hidden{display:none!important}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-shimmer{background:linear-gradient(90deg,var(--surface-container-low) 25%,var(--surface-container-high) 50%,var(--surface-container-low) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite linear;border-radius:var(--radius-sm)}*{-webkit-tap-highlight-color:transparent}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;display:block}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--outline-variant);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--outline)}
