: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-header{justify-content:space-between;align-items:flex-start;gap:var(--finance-gap);flex-wrap:wrap;display:flex}.finance-header__title{margin: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}.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--cancelled{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)}
