:root{--finance-background:#f6f7f9;--finance-surface:#fff;--finance-surface-muted:#eef0f4;--finance-border:#d9dde4;--finance-text:#181b20;--finance-text-muted:#666d78;--finance-accent:#1f4f8f;--finance-accent-text:#fff;--finance-danger:#a8362c;--finance-warning:#9a6a0c;--finance-radius:10px;--finance-gap:12px}@media (prefers-color-scheme:dark){:root{--finance-background:#15171b;--finance-surface:#1d2026;--finance-surface-muted:#23272e;--finance-border:#313640;--finance-text:#e9ebef;--finance-text-muted:#969da9;--finance-accent:#7aa9e8;--finance-accent-text:#11141a;--finance-danger:#ea7d70;--finance-warning:#d8a44a}}body{margin:0}.finance-app{background:var(--finance-background);min-height:100vh;color:var(--finance-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px}.finance-shell{flex-direction:column;gap:16px;max-width:1100px;margin:0 auto;padding:24px 16px 64px;display:flex}.finance-shell--insurance{--finance-accent:#1f6a5a}.finance-shell--budget{--finance-accent:#6b4796}@media (prefers-color-scheme:dark){.finance-shell--insurance{--finance-accent:#6ec5ad}.finance-shell--budget{--finance-accent:#b696e4}}.finance-header{justify-content:space-between;align-items:flex-start;gap:var(--finance-gap);flex-wrap:wrap;display:flex}.finance-header__overline{letter-spacing:.08em;text-transform:uppercase;color:var(--finance-text-muted);margin:0;font-size:12px;font-weight:650}.finance-header__title{margin:2px 0 0;font-size:22px;font-weight:650}.finance-header__subtitle{color:var(--finance-text-muted);margin:4px 0 0}.finance-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.finance-filters{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.finance-button{border:1px solid var(--finance-border);border-radius:var(--finance-radius);background:var(--finance-surface);color:var(--finance-text);cursor:pointer;padding:7px 13px;font-family:inherit;font-size:13px;transition:background .12s,border-color .12s}.finance-button:hover:not(:disabled){border-color:var(--finance-accent)}.finance-button:disabled{opacity:.55;cursor:not-allowed}.finance-button--primary{background:var(--finance-accent);border-color:var(--finance-accent);color:var(--finance-accent-text);font-weight:600}.finance-button--danger{border-color:var(--finance-danger);color:var(--finance-danger);background:0 0}.finance-button--ghost{color:var(--finance-text-muted);background:0 0;border-color:#0000;padding:4px 8px}.finance-button--ghost:hover:not(:disabled){color:var(--finance-text);background:var(--finance-surface-muted)}.finance-panel{background:var(--finance-surface);border:1px solid var(--finance-border);border-radius:var(--finance-radius);gap:var(--finance-gap);flex-direction:column;padding:16px;display:flex}.finance-panel__header{justify-content:space-between;align-items:center;gap:var(--finance-gap);flex-wrap:wrap;display:flex}.finance-panel__title{margin:0;font-size:15px;font-weight:650}.finance-panel__description{color:var(--finance-text-muted);max-width:68ch;margin:2px 0 0;font-size:13px}.finance-form{gap:var(--finance-gap);flex-direction:column;display:flex}.finance-form__row{gap:var(--finance-gap);flex-wrap:wrap;display:flex}.finance-form__row>*{flex:180px}.finance-form__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.finance-field{flex-direction:column;gap:4px;display:flex;position:relative}.finance-field__label{color:var(--finance-text-muted);font-size:12px}.finance-field__input,.finance-field__textarea{border:1px solid var(--finance-border);border-radius:var(--finance-radius);background:var(--finance-surface);color:var(--finance-text);box-sizing:border-box;width:100%;padding:8px 10px;font-family:inherit;font-size:14px}.finance-field__textarea{resize:vertical;min-height:64px}.finance-field__input:focus,.finance-field__textarea:focus{outline:2px solid var(--finance-accent);outline-offset:1px}.finance-field__hint{color:var(--finance-text-muted);font-size:12px}.finance-summary{gap:var(--finance-gap);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));display:grid}.finance-summary__tile{border:1px solid var(--finance-border);border-radius:var(--finance-radius);background:var(--finance-surface);flex-direction:column;gap:4px;padding:12px;display:flex}.finance-summary__label{color:var(--finance-text-muted);font-size:12px}.finance-summary__value{font-variant-numeric:tabular-nums;font-size:20px;font-weight:650}.finance-summary__value--due{color:var(--finance-warning)}.finance-details{gap:var(--finance-gap);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:0;display:grid}.finance-details__row{border-top:1px solid var(--finance-border);flex-direction:column;gap:2px;padding-top:8px;display:flex}.finance-details__label{color:var(--finance-text-muted);font-size:12px}.finance-details__value{white-space:pre-wrap;margin:0}.finance-table-wrapper{overflow-x:auto}.finance-table{border-collapse:collapse;width:100%;font-size:13px}.finance-table th{text-align:left;color:var(--finance-text-muted);border-bottom:1px solid var(--finance-border);white-space:nowrap;padding:8px;font-weight:600}.finance-table td{border-bottom:1px solid var(--finance-border);vertical-align:top;padding:10px 8px}.finance-table tr:last-child td{border-bottom:none}.finance-table__number{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.finance-table__aside{color:var(--finance-text-muted);white-space:nowrap}.finance-table__row--due td{background:var(--finance-surface-muted)}.finance-link{font:inherit;color:var(--finance-accent);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;text-decoration:none}.finance-link:hover{text-decoration:underline}.finance-pill{border:1px solid var(--finance-border);background:var(--finance-surface-muted);color:var(--finance-text-muted);white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.finance-pill--active{border-color:var(--finance-accent);color:var(--finance-accent)}.finance-pill--lapsed{border-color:var(--finance-warning);color:var(--finance-warning)}.finance-pill--canceled{border-color:var(--finance-border)}.finance-pill--due{border-color:var(--finance-warning);color:var(--finance-warning)}.finance-pill--overdue{border-color:var(--finance-danger);color:var(--finance-danger)}.finance-banner{justify-content:space-between;align-items:center;gap:var(--finance-gap);border:1px solid var(--finance-border);border-radius:var(--finance-radius);background:var(--finance-surface);padding:10px 12px;display:flex}.finance-banner--success{border-color:var(--finance-accent);color:var(--finance-accent)}.finance-banner--error{border-color:var(--finance-danger);color:var(--finance-danger)}.finance-empty{border:1px dashed var(--finance-border);border-radius:var(--finance-radius);text-align:center;color:var(--finance-text-muted);padding:28px 16px}.finance-spinner{color:var(--finance-text-muted);justify-content:center;align-items:center;gap:8px;padding:32px;display:flex}.finance-spinner__dot{border:2px solid var(--finance-border);border-top-color:var(--finance-accent);border-radius:50%;width:10px;height:10px;animation:.7s linear infinite finance-spin}@keyframes finance-spin{to{transform:rotate(360deg)}}.finance-login{background:var(--finance-surface);border:1px solid var(--finance-border);border-radius:var(--finance-radius);gap:var(--finance-gap);flex-direction:column;align-items:flex-start;max-width:420px;margin:15vh auto 0;padding:28px;display:flex}.finance-login__title{margin:0;font-size:20px}.finance-login__message,.finance-login__error{color:var(--finance-text-muted);margin:0}.finance-login__error{color:var(--finance-danger)}.finance-nav{flex-wrap:wrap;gap:4px;display:flex}.finance-nav__link{color:var(--finance-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;font-family:inherit;font-size:13px}.finance-nav__link:hover{color:var(--finance-text);background:var(--finance-surface-muted)}.finance-nav--launcher{border:1px solid var(--finance-border);border-radius:var(--finance-radius);background:var(--finance-surface-muted);gap:6px;padding:5px}.finance-nav--launcher .finance-nav__link{border-radius:calc(var(--finance-radius) - 4px);padding:8px 16px;font-size:14px}.finance-nav--launcher .finance-nav__link--current{background:var(--finance-accent);border-color:var(--finance-accent);color:var(--finance-accent-text);font-weight:650}.finance-nav--tabs{border-bottom:1px solid var(--finance-border);padding-bottom:4px}.finance-nav--tabs .finance-nav__link{border-radius:var(--finance-radius) var(--finance-radius) 0 0;padding:7px 13px}.finance-nav--tabs .finance-nav__link--current{background:var(--finance-surface);border-color:var(--finance-border);border-bottom-color:var(--finance-surface);color:var(--finance-text);margin-bottom:-5px;font-weight:650}.finance-money{font-variant-numeric:tabular-nums;white-space:nowrap}.finance-money--out{color:var(--finance-danger)}.finance-money--in{color:var(--finance-accent)}.finance-checkbox{align-items:flex-start;gap:8px;font-size:13px;display:flex}.finance-checkbox input{margin-top:3px}.finance-checkbox__body{flex-direction:column;gap:2px;display:flex}.finance-inline-choice{flex-direction:column;gap:6px;min-width:200px;display:flex}.finance-progress{background:var(--finance-surface-muted);border:1px solid var(--finance-border);border-radius:999px;flex:120px;min-width:90px;height:8px;position:relative;overflow:hidden}.finance-progress__fill{background:var(--finance-accent);height:100%;display:block}.finance-progress--over .finance-progress__fill{background:repeating-linear-gradient(45deg, var(--finance-danger), var(--finance-danger) 4px, var(--finance-surface) 4px, var(--finance-surface) 8px)}.finance-progress-row{align-items:center;gap:8px;display:flex}.finance-progress-row__value{font-variant-numeric:tabular-nums;color:var(--finance-text-muted);white-space:nowrap}.finance-budget-grid{gap:var(--finance-gap);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));display:grid}.finance-table__row--skipped td{background:var(--finance-surface-muted);opacity:.75}.finance-table__row--warning td{box-shadow:inset 3px 0 0 var(--finance-warning)}.finance-table__row--over td{box-shadow:inset 3px 0 0 var(--finance-danger)}.finance-note{color:var(--finance-text-muted);margin:4px 0 0;font-size:12px}.finance-note--warning{color:var(--finance-warning)}.finance-note--skipped{color:var(--finance-text-muted);font-style:italic}.finance-notice{border:1px solid var(--finance-border);border-radius:var(--finance-radius);background:var(--finance-surface-muted);border-left-width:3px;padding:10px 12px;font-size:13px}.finance-notice--warning{border-left-color:var(--finance-warning)}.finance-notice__list{margin:6px 0 0;padding-left:18px}.finance-summary__value--over{color:var(--finance-danger)}.finance-field__label--hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
