.shell{display:flex;min-height:100vh}.shell__sidebar{position:relative;width:240px;flex-shrink:0;background:#ffffffdb;border-right:1px solid rgba(213,223,219,.9);box-shadow:8px 0 30px #24463e0d;display:flex;flex-direction:column;padding:1.75rem 1.25rem}.shell__toggle{position:absolute;top:1rem;right:-.75rem;z-index:2;width:1.8rem;height:1.8rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:50%;background:var(--color-surface);color:var(--color-ink-muted);cursor:pointer}.shell__toggle-icon,.shell__signout-icon,.shell__nav-action-icon{width:.9rem;height:.9rem;flex-shrink:0}.shell--collapsed .shell__sidebar{width:64px;padding-left:.75rem;padding-right:.75rem}.shell--collapsed .shell__brand{border-left:0;padding-left:0}.shell--collapsed .shell__brand-eyebrow,.shell--collapsed .shell__brand-title,.shell--collapsed .shell__nav-heading,.shell--collapsed .shell__nav-link,.shell--collapsed .shell__user-name,.shell--collapsed .shell__user-role{overflow:hidden;width:0;white-space:nowrap}.shell--collapsed .shell__signout{overflow:hidden;width:100%;padding-left:0;padding-right:0;color:transparent}.shell__brand{margin-bottom:2.5rem;padding-left:.25rem;border-left:3px solid var(--color-accent);padding-left:.75rem}.shell__brand-eyebrow{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent);margin:0 0 .2rem}.shell__brand-title{font-family:var(--font-display);font-size:1.25rem;font-weight:600;margin:0;color:var(--color-ink)}.shell__nav{display:flex;flex-direction:column;gap:.25rem;flex:1}.shell__nav-heading{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-muted);margin:1rem 0 .25rem}.shell__nav-heading--toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.45rem .75rem;border:0;background:none;color:var(--color-ink-muted);cursor:pointer;text-align:left}.shell__nav-action-icon-wrap{display:inline-flex;align-items:center;justify-content:center}.shell__nav-heading--toggle:hover{background:var(--color-bg);color:var(--color-ink)}.shell__submenu{display:flex;flex-direction:column;gap:.25rem;margin-left:.75rem;padding-left:.5rem;border-left:1px solid var(--color-border)}.shell__nav-link{display:block;padding:.55rem .75rem;border-radius:4px;font-size:.9rem;font-weight:500;color:var(--color-ink-muted);text-decoration:none;transition:background .15s ease,color .15s ease}.shell__nav-link--button{width:100%;border:0;background:none;font-family:inherit;text-align:left;cursor:pointer}.shell__nav-link--toggle{display:flex;align-items:center;justify-content:space-between}.shell__nav-link:hover{background:var(--color-bg);color:var(--color-ink)}.shell__nav-link.active{background:#dff1eb;color:var(--color-accent);font-weight:600}.shell__footer{border-top:1px solid var(--color-border);padding-top:1rem;display:flex;flex-direction:column;gap:.75rem}.shell__user{display:flex;flex-direction:column;gap:.15rem}.shell__user-name{font-size:.85rem;font-weight:600;color:var(--color-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell__user-role{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-muted)}.shell__signout{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-ink);font-size:.85rem;cursor:pointer;transition:background .15s ease}.shell__signout:hover{background:var(--color-border)}.shell__content{flex:1;min-width:0;padding:clamp(1.25rem,3vw,2.5rem);max-width:none}.shell__idle-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:1rem;background:#101b188c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.shell__idle-dialog{width:min(420px,100%);display:grid;gap:1rem;padding:2rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 24px 70px #10262038}.shell__idle-dialog h2,.shell__idle-dialog p{margin:0}@media (max-width: 720px){.shell{flex-direction:column}.shell__sidebar{width:100%;flex-direction:row;align-items:center;justify-content:space-between;padding:1rem}.shell__brand{margin-bottom:0}.shell__nav{display:none}.shell__footer{border-top:none;flex-direction:row;padding-top:0}.shell__content{padding:1.5rem}}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.login-card{position:relative;width:100%;max-width:380px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:2.5rem 2rem 2rem;box-shadow:0 1px 2px #101b180a}.login-card__rule{position:absolute;top:0;left:0;right:0;height:3px;background:var(--color-accent);border-radius:6px 6px 0 0}.login-card__eyebrow{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent);margin:0 0 .5rem}.login-card__title{font-family:var(--font-display);font-size:1.6rem;font-weight:600;margin:0 0 .4rem;color:var(--color-ink)}.login-card__subtitle{font-size:.9rem;color:var(--color-ink-muted);margin:0 0 1.75rem}.login-form{display:flex;flex-direction:column;gap:1.1rem}.login-field{display:flex;flex-direction:column;gap:.4rem;font-size:.85rem;color:var(--color-ink-muted);font-weight:500}.login-field input,.login-field select{font-family:var(--font-body);font-size:.95rem;padding:.6rem .7rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-ink);transition:border-color .15s ease}.login-field input:focus,.login-field select:focus{border-color:var(--color-accent);outline:none}.login-error{font-size:.85rem;color:var(--color-error);margin:0}.login-submit{margin-top:.25rem;padding:.7rem 1rem;border:none;border-radius:4px;background:var(--color-accent);color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.login-submit__icon{width:1rem;height:1rem;flex-shrink:0}.login-submit:hover:not(:disabled){background:var(--color-accent-hover)}.login-submit:disabled{opacity:.6;cursor:not-allowed}.dashboard-page__eyebrow{color:var(--color-accent);font:var(--type-page-eyebrow);letter-spacing:.14em;margin:0 0 .4rem;text-transform:uppercase}.dashboard-page h1{font-family:var(--font-display);margin:0 0 1.5rem}.dashboard-rate-meta{display:flex;justify-content:flex-end;gap:.35rem .75rem;flex-wrap:wrap;margin:-1rem 0 1rem;color:var(--color-ink-muted);font:var(--type-mono-caption);text-align:right}.dashboard-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;width:100%}.dashboard-column{min-width:0;padding:1rem;border:1px solid var(--color-border)}.dashboard-column--asset{background:#eff8f1}.dashboard-column--liability{background:#fff1f1}.dashboard-column h2{margin:0 0 1rem;font-family:var(--font-display)}.dashboard-balance{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-accent);display:grid;gap:.5rem;max-width:none;padding:1.5rem}.dashboard-balances{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem;max-width:none}.dashboard-converted{display:grid;gap:.55rem;max-width:none;margin-top:1.25rem;padding:1.5rem;background:var(--color-surface);border:1px solid var(--color-accent);border-left:4px solid var(--color-accent)}.dashboard-converted strong{font-family:var(--font-display);font-size:2.4rem}.dashboard-rate{color:var(--color-ink-muted);font:.75rem var(--font-mono)}.dashboard-balance__label,.dashboard-balance__hint{color:var(--color-ink-muted);font-size:.85rem}.dashboard-balance strong{font-family:var(--font-display);font-size:2.25rem}.dashboard-page__error{color:var(--color-error)}.dashboard-creditors{max-width:none;margin-top:1.5rem}.dashboard-creditors h3{margin:0 0 .75rem;font-family:var(--font-display);font-size:1.2rem}.dashboard-creditors__list{background:var(--color-surface);border:1px solid var(--color-border)}.dashboard-creditor{display:grid;grid-template-columns:minmax(0,1fr) 4.5rem minmax(6rem,auto) minmax(6rem,auto);align-items:center;gap:.5rem;padding:.8rem;font-size:.82rem;border-bottom:1px solid var(--color-border)}.dashboard-creditor:last-child{border-bottom:0}.dashboard-creditor strong{white-space:nowrap}.dashboard-creditor--header{color:var(--color-ink-muted);font:var(--type-table-head);letter-spacing:.06em;text-transform:uppercase}@media (max-width: 720px){.dashboard-columns{grid-template-columns:1fr}.dashboard-creditors{overflow-x:auto}.dashboard-creditors__list{min-width:620px}}.crud-page__header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem}.crud-page__eyebrow{font:var(--type-page-eyebrow);letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent);margin:0 0 .35rem}.crud-page__title{font:var(--type-page-title);margin:0;color:var(--color-ink)}.crud-page__add-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.55rem 1rem;border:none;border-radius:4px;background:var(--color-accent);color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s ease;white-space:nowrap}.icon-button__icon{width:1rem;height:1rem;flex-shrink:0}.crud-page__add-btn:hover{background:var(--color-accent-hover)}.crud-page__secondary-btn{padding:.55rem 1rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-ink);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s ease;white-space:nowrap}.crud-page__secondary-btn:hover{background:var(--color-bg)}.crud-page__secondary-btn:disabled{opacity:.6;cursor:not-allowed}.crud-page__status{font-size:.9rem;color:var(--color-ink-muted);text-align:center;padding:1rem 0}.crud-page__status--error{color:var(--color-error)}.crud-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:1.5rem;margin-bottom:2rem}.crud-form__row{display:flex;gap:1rem;flex-wrap:wrap}.crud-form__row label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;color:var(--color-ink-muted);font-weight:500;flex:1;min-width:160px}.crud-form__row input,.crud-form__row select{font-family:var(--font-body);font-size:.9rem;padding:.55rem .65rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-ink)}.crud-form__error{color:var(--color-error);font-size:.85rem;margin:.75rem 0 0}.crud-form__submit{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem;padding:.6rem 1.1rem;min-width:5rem;border:none;border-radius:4px;background:var(--color-accent);color:#fff;font-weight:600;font-size:.9rem;line-height:1.2;text-align:center;cursor:pointer}.crud-form__submit:disabled{opacity:.6;cursor:not-allowed}.crud-form__cancel{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem;padding:.6rem 1.1rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-ink);font-size:.9rem;cursor:pointer}.crud-form__cancel:hover{background:var(--color-bg)}.crud-table{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;overflow:visible}.crud-table th{text-align:left;font:var(--type-table-head);letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-muted);padding:.75rem 1rem;border-bottom:1px solid var(--color-border)}.crud-table td{padding:.7rem 1rem;font-size:.9rem;color:var(--color-ink);border-bottom:1px solid var(--color-border)}.crud-table tr:last-child td{border-bottom:none}.crud-table__actions{display:flex;gap:.5rem;justify-content:flex-end}.crud-table__edit,.crud-table__delete{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.35rem .65rem;border:1px solid var(--color-border);border-radius:4px;background:none;font-size:.8rem;cursor:pointer}.crud-table__edit{color:var(--color-ink-muted)}.crud-table__edit:hover{background:var(--color-bg)}.crud-table__delete{color:var(--color-error)}.crud-table__delete:hover{background:#b4232f14}.crud-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:1rem;background:#101b1880;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.crud-modal__content{width:min(820px,100%);max-height:92vh;overflow-y:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.35rem 1.5rem;padding:2rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 24px 70px #10262038}.crud-modal__content h2{grid-column:1 / -1;margin:0 0 .5rem;font-family:var(--font-display)}.crud-modal__content p{margin:0}.crud-modal__content--form .crud-form__row{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.crud-modal__content--form .crud-form__row label{display:grid;gap:.35rem;color:var(--color-ink-muted);font-size:.8rem}.crud-modal__content--form .crud-form__row input,.crud-modal__content--form .crud-form__row select{min-height:2.5rem;padding:.65rem .75rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-ink);font:inherit}.crud-modal__content--form>.crud-form__submit,.crud-modal__content--form>.crud-form__cancel{margin-top:0}.crud-modal__content--form>.crud-form__error{grid-column:1 / -1}.crud-modal__content label{display:grid;gap:.35rem;color:var(--color-ink-muted);font-size:.8rem}.crud-modal__content input,.crud-modal__content select{min-height:2.5rem;padding:.65rem .75rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-ink);font:inherit}.crud-modal__actions{display:flex;justify-content:flex-end;gap:.75rem;grid-column:1 / -1}.crud-modal__actions button{padding:.55rem .9rem;border:1px solid var(--color-border);border-radius:4px;background:none;cursor:pointer}.crud-modal__actions .crud-form__submit{margin-top:0;border:0;background:var(--color-accent);color:#fff;font-weight:600}.crud-modal__actions .crud-form__submit:hover{background:var(--color-accent-hover)}.crud-modal__actions .crud-form__cancel{margin-top:0}@media (max-width: 600px){.crud-modal__content{grid-template-columns:1fr}}.users-page__header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem}.users-page__eyebrow{font:var(--type-page-eyebrow);letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent);margin:0 0 .35rem}.users-page__title{font:var(--type-page-title);margin:0;color:var(--color-ink)}.users-page__add-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.55rem 1rem;border:none;border-radius:4px;background:var(--color-accent);color:#fff;font-size:.9rem;font-weight:600;line-height:1.2;cursor:pointer;transition:background .15s ease;white-space:nowrap}.users-page__add-btn:hover{background:var(--color-accent-hover)}.users-page__status{font-size:.9rem;color:var(--color-ink-muted)}.users-page__status--error{color:var(--color-error)}.user-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:1.5rem;margin-bottom:2rem}.user-form__row{display:flex;gap:1rem;flex-wrap:wrap}.user-form__row label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;color:var(--color-ink-muted);font-weight:500;flex:1;min-width:140px}.user-form__row input,.user-form__row select{font-family:var(--font-body);font-size:.9rem;padding:.55rem .65rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-ink)}.user-form__error{color:var(--color-error);font-size:.85rem;margin:.75rem 0 0}.user-form__submit{margin-top:1rem;padding:.6rem 1.1rem;border:none;border-radius:4px;background:var(--color-accent);color:#fff;font-weight:600;font-size:.9rem;cursor:pointer}.user-form__submit:disabled{opacity:.6;cursor:not-allowed}.user-form__cancel{padding:.6rem 1.1rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-ink);font-size:.9rem;cursor:pointer}.user-form__cancel:hover{background:var(--color-bg)}.users-table{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.users-table__hint{margin:0 0 .6rem;color:var(--color-ink-muted);font:var(--type-mono-caption);letter-spacing:.04em}.users-table__group-row td{padding:0!important;background:var(--color-bg)}.users-table__toggle{width:100%;display:flex;align-items:center;gap:.6rem;padding:.7rem 1rem;background:none;border:none;cursor:pointer;text-align:left;font:inherit}.users-table__toggle:hover{background:#edf2f0}.users-table__chevron{display:inline-block;color:var(--color-ink-muted);transition:transform .15s ease}.users-table__chevron--open{transform:rotate(90deg)}.users-table__group-name{flex:1;font-weight:600;color:var(--color-ink)}.users-table__count{font-family:var(--font-mono);font-size:.75rem;color:var(--color-ink-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:.1rem .55rem}.users-table th{text-align:left;font:var(--type-table-head);letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-muted);padding:.75rem 1rem;border-bottom:1px solid var(--color-border)}.users-table td{padding:.7rem 1rem;font-size:.9rem;color:var(--color-ink);border-bottom:1px solid var(--color-border)}.users-table td input{width:100%;min-width:8rem;padding:.4rem .5rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-ink);font:inherit}.users-table__edit{margin-right:.5rem;padding:.35rem .65rem;border:1px solid var(--color-accent);border-radius:4px;background:none;color:var(--color-accent);font-size:.8rem;cursor:pointer}.users-table tr:last-child td{border-bottom:none}.users-table tbody tr{cursor:pointer}.users-table tbody tr:hover{background:#edf8f4}.role-badge{font-family:var(--font-mono);font-size:.75rem;padding:.25rem .5rem;border-radius:4px;border:1px solid var(--color-border);background:var(--color-bg);cursor:pointer}.role-badge--admin{color:var(--color-accent);border-color:var(--color-accent)}.role-badge--super-admin{color:#fff;background:var(--color-accent);border-color:var(--color-accent)}.role-badge--user{color:var(--color-ink-muted)}.role-badge:disabled{opacity:.6;cursor:not-allowed}.users-table__delete{padding:.35rem .65rem;border:1px solid var(--color-border);border-radius:4px;background:none;color:var(--color-error);font-size:.8rem;cursor:pointer}.users-table__delete:hover:not(:disabled){background:#b4232f14}.users-table__delete:disabled{opacity:.4;cursor:not-allowed}.users-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:1rem;background:#101b1880;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.users-modal__content{width:min(520px,100%);display:grid;gap:1rem;padding:2rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 24px 70px #10262038}.users-modal__content h2{margin:0 0 .5rem;font-family:var(--font-display)}.users-modal__content label{display:grid;gap:.35rem;color:var(--color-ink-muted);font-size:.8rem}.users-modal__content input,.users-modal__content select{min-height:2.5rem;padding:.65rem .75rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-ink);font:inherit}.users-modal__content input[readonly]{opacity:.65}.users-modal__actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem}.users-modal__actions button{padding:.55rem .9rem;border:1px solid var(--color-border);border-radius:4px;background:none;cursor:pointer}.users-modal__actions .users-table__edit{border-color:var(--color-accent)}.users-modal__content .user-form__row{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.users-modal__content .user-form__row label{min-width:0}.users-modal__content .user-form__row input,.users-modal__content .user-form__row select{width:100%;box-sizing:border-box}.users-modal__content .user-form__submit{width:100%;margin-top:0}@media (max-width: 560px){.users-modal__content .user-form__row{grid-template-columns:1fr}}.crud-modal__content.users-modal__content{width:min(820px,100%);max-height:92vh;overflow-y:auto}.subgroup-tree__chevron{display:inline-block;color:var(--color-ink-muted);transition:transform .15s ease}.subgroup-tree__chevron--open{transform:rotate(90deg)}.subgroup-tree__group-name{flex:1;font-weight:600;color:var(--color-ink)}.subgroup-tree__count{font-family:var(--font-mono);font-size:.75rem;color:var(--color-ink-muted);background:var(--color-bg);border:1px solid var(--color-border);border-radius:999px;padding:.1rem .55rem}.subgroup-grid__group-row td{padding:0!important;background:var(--color-bg)}.subgroup-grid__toggle{width:100%;display:flex;align-items:center;gap:.6rem;padding:.7rem 1rem;background:none;border:none;cursor:pointer;text-align:left;font:inherit}.subgroup-grid__toggle:hover{background:#edf2f0}.subgroup-grid__name{padding-left:2.4rem!important}.subgroup-grid__empty{padding-left:2.4rem!important;color:var(--color-ink-muted);font-size:.85rem}.ledger-page{width:100%;max-width:none}.ledger-page__header,.ledger-detail__heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.75rem}.ledger-page__header h1,.ledger-detail h2{margin:0;font-family:var(--font-display);letter-spacing:.01em}.ledger-page__eyebrow{margin:0 0 .35rem;color:var(--color-accent);font:var(--type-page-eyebrow);letter-spacing:.14em;text-transform:uppercase}.ledger-page__button{border:0;border-radius:7px;padding:.7rem 1.1rem;background:var(--color-accent);color:#fff;cursor:pointer;font-weight:600;box-shadow:0 5px 14px #087f6d33}.ledger-page__button--with-icon,.ledger-inline-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.ledger-button__icon{width:1rem;height:1rem;flex-shrink:0}.ledger-inline-button{border:1px solid var(--color-border);border-radius:4px;padding:.45rem .7rem;background:none;cursor:pointer}.ledger-form{display:flex;flex-wrap:wrap;gap:1rem;align-items:end;padding:1rem;margin-bottom:1.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px}.ledger-form label{display:flex;flex:1;min-width:150px;flex-direction:column;gap:.35rem;color:var(--color-ink-muted);font-size:.8rem}.ledger-form input,.ledger-form select{padding:.55rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-ink)}.ledger-table-wrap{width:100%}.ledger-table__hint{margin:0 0 .6rem;color:var(--color-ink-muted);font:var(--type-mono-caption);letter-spacing:.04em}.ledger-table{width:100%;min-width:1100px;table-layout:fixed;border-collapse:separate;border-spacing:0;background:#ffffffe6;border:1px solid var(--color-border);border-radius:10px;overflow:hidden;box-shadow:0 12px 28px #24463e0f}.ledger-table th:nth-child(1),.ledger-table td:nth-child(1){width:14%}.ledger-table th:nth-child(2),.ledger-table td:nth-child(2){width:32%;font-size:.96rem;font-weight:600}.ledger-table th:nth-child(3),.ledger-table td:nth-child(3){width:6%}.ledger-table th:nth-child(4),.ledger-table td:nth-child(4){width:14%}.ledger-table th:nth-child(5),.ledger-table td:nth-child(5){width:12%}.ledger-table th:nth-child(6),.ledger-table td:nth-child(6){width:12%}.ledger-table th:nth-child(7),.ledger-table td:nth-child(7){width:10%}.ledger-table th:nth-child(4),.ledger-table td:nth-child(4),.ledger-table th:nth-child(5),.ledger-table td:nth-child(5),.ledger-table th:nth-child(6),.ledger-table td:nth-child(6),.ledger-table th:nth-child(7),.ledger-table td:nth-child(7){text-align:right;white-space:nowrap;overflow-wrap:normal}.ledger-table__balance--zero{background:#e3f5e9}.ledger-table th,.ledger-table td{padding:.8rem .65rem;border-bottom:1px solid var(--color-border);text-align:left;white-space:normal;overflow-wrap:anywhere}.ledger-table th{color:var(--color-ink-muted);font:var(--type-table-head);letter-spacing:.06em;text-transform:uppercase}.ledger-group-cell{display:grid;gap:.2rem;padding-left:1.25rem;border-left:3px solid #c7ddd5;font-size:.72rem;line-height:1.15}.ledger-group-cell span:first-child{color:var(--color-ink);font-weight:600}.ledger-group-cell span:last-child{color:var(--color-ink-muted)}.ledger-table tbody tr{cursor:pointer}.ledger-table tbody tr:hover{background:#edf8f4}.ledger-page__status{padding:1rem;color:var(--color-ink-muted);text-align:center}.ledger-page__error{color:var(--color-error)}.ledger-page__inactive-toggle{display:flex;align-items:center;gap:.5rem;margin-bottom:.8rem;font-size:.85rem;color:var(--color-ink-muted);cursor:pointer}.ledger-page__inactive-toggle input{cursor:pointer}.ledger-page__inactive-toggle select{min-width:220px;padding:.35rem .45rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-ink)}.ledger-table__group-row td{padding:0!important;background:#f7f0df}.ledger-table__classification-row td{background:#e8eef7;border-top:1px solid #c4d2e5}.ledger-table__classification-row .ledger-table__group-name{text-transform:uppercase;letter-spacing:.04em}.ledger-table__group-row:not(.ledger-table__classification-row) .ledger-table__toggle{padding-left:2.25rem}.ledger-table__toggle{width:100%;display:flex;align-items:center;gap:.6rem;padding:.7rem 1rem;background:none;border:none;cursor:pointer;text-align:left;font:inherit}.ledger-table__toggle:hover{background:#edf2f0}.ledger-table__chevron{display:inline-block;color:var(--color-ink-muted);transition:transform .15s ease}.ledger-table__chevron--open{transform:rotate(90deg)}.ledger-table__group-name{flex:1;font-weight:600;color:var(--color-ink)}.ledger-table__count{font-family:var(--font-mono);font-size:.75rem;color:var(--color-ink-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:.1rem .55rem}.ledger-detail{margin-top:2rem}.ledger-detail__heading button{border:1px solid var(--color-border);border-radius:4px;padding:.45rem .7rem;background:none;cursor:pointer}.ledger-history{margin:0;padding:0;list-style:none;border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.ledger-history li{padding:.9rem 1rem;border-bottom:1px solid var(--color-border);background:#fbfcfc}.ledger-history li:last-child{border-bottom:0}.ledger-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:1rem;background:#101b1880;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.ledger-modal__content{width:min(820px,100%);max-height:92vh;overflow-y:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.35rem 1.5rem;padding:2rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 24px 70px #10262038}.ledger-modal__content .ledger-detail__heading,.ledger-modal__actions{grid-column:1 / -1}.ledger-modal__content--detail{display:block}.ledger-modal__content--detail{width:min(1280px,100%);min-height:76vh}.ledger-modal__content--detail .ledger-detail__heading{margin-bottom:1rem}.concept-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-bottom:1.5rem}.concept-summary--compact{gap:.55rem;margin-bottom:1rem}.concept-summary--compact p{padding:.65rem .8rem}.concept-summary p{margin:0;padding:.85rem 1rem;color:var(--color-ink-muted);font-size:.85rem;background:#f5f8f7;border:1px solid var(--color-border);border-radius:8px}.concept-summary p.concept-summary__payment--missing{background:#fee2e2;border-color:#fecaca}.concept-summary strong{display:block;margin-bottom:.3rem;color:var(--color-ink);font-size:.7rem;letter-spacing:.05em;text-transform:uppercase}.ledger-detail__actions{display:flex;gap:.75rem;margin-bottom:1.5rem}.ledger-detail__heading-actions{display:flex;gap:.65rem;align-items:center}.ledger-detail__transaction-actions{display:flex;gap:.65rem}.ledger-detail__transaction-actions button{border:1px solid var(--color-border);border-radius:7px;padding:.65rem .9rem;background:var(--color-surface);color:var(--color-ink);cursor:pointer}.ledger-detail__actions button,.ledger-history__actions button{border:1px solid var(--color-border);border-radius:4px;padding:.45rem .7rem;background:none;cursor:pointer}.ledger-detail__actions button:disabled{opacity:.45;cursor:not-allowed}.ledger-detail__heading .ledger-page__button{border:0;background:var(--color-accent);color:#fff}.ledger-history__actions{float:right;display:flex;gap:.5rem}.ledger-history__actions button:last-child{color:var(--color-error)}.ledger-modal__content--transactions{width:min(1180px,100%);min-height:82vh}.ledger-modal__content--schedule{display:block}.transaction-dashboard{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:1.5rem}.transaction-dashboard div{display:flex;flex-direction:column;gap:.25rem;padding:1rem;border:1px solid var(--color-border);border-radius:8px;background:#f5f8f7}.transaction-dashboard strong{font-size:1.35rem;color:var(--color-ink)}.transaction-dashboard span{color:var(--color-ink-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.transaction-dashboard--compact strong{font-size:1.05rem}.transaction-dashboard--compact div{padding:.8rem .9rem}.schedule-dashboard{margin-bottom:.85rem}.schedule-dashboard{gap:.5rem;margin-bottom:.65rem}.schedule-dashboard div{padding:.5rem .65rem}.schedule-dashboard strong{font-size:.86rem;line-height:1.1}.schedule-dashboard span{font-size:.6rem;letter-spacing:.04em}.schedule-grid-wrap:before{content:"Double-click a schedule row to edit"}.schedule-grid th:nth-child(8),.schedule-grid td:nth-child(8){white-space:normal;min-width:180px;text-align:left}.schedule-grid th:nth-child(9),.schedule-grid td:nth-child(9){min-width:220px}.transaction-filters{display:flex;flex-wrap:wrap;align-items:end;gap:1rem;margin-bottom:1.25rem}.transaction-filters label{display:flex;min-width:170px;flex:1;flex-direction:column;gap:.35rem;color:var(--color-ink-muted);font-size:.8rem}.transaction-filters input,.transaction-filters select{min-height:2.5rem;padding:.65rem .75rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-ink)}.transaction-filters>button{min-height:2.5rem;padding:.65rem .9rem;border:1px solid var(--color-border);border-radius:7px;background:var(--color-surface);cursor:pointer}.transaction-grid-wrap{overflow-x:auto;margin-top:.5rem}.transaction-grid-wrap:before{content:"Double-click a transaction row to edit";display:block;margin:0 0 .6rem;color:var(--color-ink-muted);font:var(--type-mono-caption);letter-spacing:.04em}.transaction-grid{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--color-border);border-radius:8px;overflow:hidden;background:#fbfcfc}.transaction-grid th,.transaction-grid td{padding:.8rem .9rem;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top;white-space:nowrap;overflow-wrap:normal}.transaction-grid th{color:var(--color-ink-muted);font:var(--type-table-head);letter-spacing:.06em;text-transform:uppercase}.transaction-grid td{position:relative;font-size:.86rem}.transaction-grid th:nth-child(1),.transaction-grid td:nth-child(1),.transaction-grid th:nth-child(7),.transaction-grid td:nth-child(7){white-space:nowrap}.transaction-grid th:nth-child(3),.transaction-grid td:nth-child(3),.transaction-grid th:nth-child(4),.transaction-grid td:nth-child(4),.transaction-grid th:nth-child(5),.transaction-grid td:nth-child(5){text-align:right}.transaction-grid tbody tr{cursor:pointer}.transaction-grid tbody tr.transaction-grid__row--highlighted td{background:#fff4c2;box-shadow:inset 0 2px #d79b00,inset 0 -2px #d79b00}.transaction-grid tbody tr.transaction-grid__row--highlighted td:first-child{box-shadow:inset 2px 0 #d79b00,inset 0 2px #d79b00,inset 0 -2px #d79b00}.transaction-grid tbody tr.transaction-grid__row--highlighted td:last-child{box-shadow:inset -2px 0 #d79b00,inset 0 2px #d79b00,inset 0 -2px #d79b00}.transaction-grid tbody tr:hover{background:#edf8f4}.transaction-grid tbody tr:hover td:last-child:after{content:"Double-click to edit";position:absolute;right:.5rem;bottom:calc(100% + .25rem);z-index:2;padding:.3rem .45rem;border-radius:4px;background:var(--color-ink);color:#fff;font:var(--type-table-head);white-space:nowrap;pointer-events:none}.transaction-grid tr:last-child td{border-bottom:0}.ledger-modal__content label{display:flex;flex-direction:column;gap:.35rem;color:var(--color-ink-muted);font-size:.8rem}.ledger-modal__content input,.ledger-modal__content select{min-height:2.5rem;padding:.65rem .75rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-ink)}.ledger-modal__content textarea{min-height:8rem;resize:vertical;padding:.65rem .75rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-ink);font:inherit}.ledger-modal__notes{grid-column:1 / -1}.ledger-modal__actions{display:flex;justify-content:flex-end;gap:.75rem}.ledger-modal__error{grid-column:1 / -1;margin:0;color:var(--color-error);font-size:.85rem}.ledger-modal__actions button,.ledger-detail__heading button{border:1px solid var(--color-border);border-radius:4px;padding:.55rem .9rem;background:none;cursor:pointer}.ledger-modal__actions .ledger-page__button{border:0;background:var(--color-accent);color:#fff}@media (max-width: 600px){.ledger-modal__content{grid-template-columns:1fr}}@media (max-width: 600px){.concept-summary{grid-template-columns:1fr}}@media (max-width: 600px){.transaction-dashboard{grid-template-columns:1fr}.ledger-detail__transaction-actions{flex-direction:column}}.ledger-modal__attachments{grid-column:1 / -1;display:grid;gap:.5rem;border-top:1px solid var(--color-border);padding-top:1rem}.ledger-modal__attachments-title{font-size:.8rem;color:var(--color-ink-muted);font-weight:600}.ledger-modal__attachments-empty{margin:0;font-size:.85rem;color:var(--color-ink-muted)}.ledger-attachment{display:flex;align-items:center;gap:.75rem;font-size:.85rem}.ledger-attachment span{color:var(--color-ink-muted)}.ledger-attachment button,.ledger-attachment__name{border:none;background:none;color:var(--color-accent);cursor:pointer;font:inherit;padding:0;text-align:left}.ledger-attachment__name{flex:1;overflow-wrap:anywhere}.ledger-attachment button:hover,.ledger-attachment__name:hover{text-decoration:underline}.ledger-attachment--pending span:first-child{color:var(--color-ink)}.ledger-modal__attachments-actions{display:flex;align-items:center;gap:.75rem;font-size:.85rem}.ledger-attachment__picker{border:1px solid var(--color-border);border-radius:4px;padding:.45rem .8rem;cursor:pointer;color:var(--color-ink-muted)}.ledger-attachment__picker:hover{border-color:var(--color-accent);color:var(--color-accent)}.transaction-grid__clip{width:2.5rem;text-align:center}.transaction-grid__clip button{border:none;background:none;cursor:pointer;font-size:1rem;padding:0}.ledger-modal__content--single{grid-template-columns:1fr;width:min(760px,100%)}.ledger-modal__attachments-sub{margin:0;color:var(--color-ink-muted);font-size:.85rem}.concept-summary p strong+*{display:block;text-align:right}.attachment-list-wrap{margin-top:0}.attachment-list-wrap:before{content:none}.attachment-list__name{overflow-wrap:anywhere}.attachment-list__actions{white-space:nowrap;text-align:right}.attachment-list__actions button{border:none;background:none;color:var(--color-accent);cursor:pointer;font:inherit;padding:0 .25rem}.attachment-list__actions button:hover{text-decoration:underline}.schedule-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:-.4rem 0 1rem}.schedule-toolbar__meta{color:var(--color-ink-muted);font:var(--type-mono-caption);letter-spacing:.04em}.schedule-pill{display:inline-block;padding:.18rem .55rem;border-radius:999px;border:1px solid var(--color-border);font:var(--type-mono-caption);letter-spacing:.02em;text-transform:uppercase}.schedule-pill--frequency{background:#edf2f0;color:var(--color-ink)}.schedule-pill--active{background:#e3f5e9;color:#1d5b39;border-color:#b8e0c5}.schedule-pill--inactive{background:#f3f5f7;color:var(--color-ink-muted)}.schedule-pill--scheduled{background:#e8f1fb;color:#24527a;border-color:#bfd3e8}.schedule-pill--completed{background:#e3f5e9;color:#1d5b39;border-color:#b8e0c5}.schedule-pill--failed{background:#fde8e8;color:#8b2525;border-color:#efbcbc}.schedule-table__action-cell,.schedule-table__menu-wrap,.schedule-grid tbody tr,.schedule-grid tbody td{overflow:visible}.schedule-table__action-cell{position:relative;width:96px;z-index:2}.schedule-table__menu-wrap{position:relative;display:inline-flex;z-index:10}.schedule-table__menu-trigger{display:inline-flex;align-items:center;justify-content:center;min-width:3.5rem;padding:.35rem .6rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-ink);font-family:var(--font-mono);font-size:.8rem;cursor:pointer}.schedule-table__menu-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483646}.schedule-table__menu{position:fixed;z-index:2147483647;isolation:isolate;display:flex;flex-direction:column;min-width:10rem;padding:.35rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);box-shadow:0 12px 30px #1026201f}.schedule-table__menu-item{border:1px solid var(--color-border);border-width:0;border-radius:4px;padding:.5rem .6rem;background:transparent;color:var(--color-ink);text-align:left;cursor:pointer;font:inherit;white-space:nowrap}.schedule-table__menu-item:hover{background:var(--color-bg)}.schedule-grid--menu-open .schedule-table__menu-trigger{visibility:hidden;pointer-events:none}.schedule-grid--menu-open .schedule-grid__row--menu-open .schedule-table__menu-trigger{visibility:visible;pointer-events:auto}.schedule-grid tbody tr:hover td:last-child:after,.schedule-history-wrap tbody tr:hover td:last-child:after{display:none}.ledger-modal--nested{z-index:20;background:#101b189e}.ledger-modal__content--schedule-history{display:block;width:min(1100px,100%);min-height:auto}.schedule-history__error{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-type-cell{display:flex;align-items:center;gap:.45rem}.transaction-source-pill{display:inline-block;padding:.12rem .4rem;border:1px solid #bfd3e8;border-radius:999px;background:#e8f1fb;color:#24527a;font:var(--type-mono-caption);text-transform:uppercase}.budget-page{width:100%}.budget-page__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.budget-page__header h1{margin:0;font:var(--type-page-title)}.budget-page__actions{display:flex;gap:.75rem}.budget-page__eyebrow{margin:0 0 .35rem;color:var(--color-accent);font:var(--type-page-eyebrow);letter-spacing:.14em;text-transform:uppercase}.budget-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1rem;border:0;border-radius:7px;background:var(--color-accent);color:#fff;cursor:pointer;font-weight:600}.budget-button__icon,.budget-inline-icon,.budget-action-icon{width:1rem;height:1rem;flex-shrink:0}.budget-settings{display:flex;flex-wrap:wrap;gap:1rem;align-items:end;padding:1rem;margin-bottom:1.25rem;background:var(--color-surface);border:1px solid var(--color-border)}.budget-settings label,.budget-modal__content label{display:flex;min-width:150px;flex:1;flex-direction:column;gap:.35rem;color:var(--color-ink-muted);font-size:.8rem}.budget-settings input,.budget-settings select,.budget-modal__content input,.budget-modal__content select,.budget-modal__content textarea{min-height:2.5rem;padding:.6rem .7rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-ink);font:inherit}.budget-settings--view input{opacity:.65}.budget-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.75rem;margin-bottom:1.25rem}.budget-summary div{display:grid;gap:.25rem;padding:1rem;background:var(--color-surface);border:1px solid var(--color-border)}.budget-summary strong{font-family:var(--font-display);font-size:1.4rem}.budget-summary span,.budget-hint{color:var(--color-ink-muted);font-size:.8rem}.budget-summary__negative{border-color:var(--color-error)!important;color:var(--color-error)}.budget-summary__split{grid-template-columns:repeat(3,1fr);gap:.5rem!important}.budget-summary__split>div{padding:0;border:none;background:none}.budget-summary__split strong{font-size:1.05rem}.budget-table-wrap{overflow-x:auto}.budget-table{width:100%;min-width:1050px;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border)}.budget-table th,.budget-table td{padding:.75rem;border-bottom:1px solid var(--color-border);text-align:left}.budget-table th{color:var(--color-ink-muted);font:var(--type-table-head);text-transform:uppercase}.budget-table tbody tr{cursor:pointer}.budget-table tbody tr:hover{background:#edf8f4}.budget-table th:nth-child(3),.budget-table td:nth-child(3){width:9%;text-align:right;white-space:nowrap}.budget-table th:nth-child(4),.budget-table td:nth-child(4){width:7%;text-align:right;white-space:nowrap}.budget-table th:nth-child(5),.budget-table td:nth-child(5){width:8%;text-align:right;white-space:nowrap}.budget-table th:nth-child(5),.budget-table td:nth-child(5){text-align:center}.budget-matrix{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);font-size:.9rem}.budget-matrix th,.budget-matrix td{padding:.45rem .6rem;border:1px solid var(--color-border)}.budget-matrix thead th{color:#1a1a1a;font-weight:600;text-align:center;white-space:nowrap}.budget-matrix thead .budget-matrix__item-head,.budget-matrix thead th[rowSpan="2"]{background:var(--color-bg);color:var(--color-ink-muted);font:var(--type-table-head);text-transform:uppercase}.budget-matrix__item-head,.budget-matrix__item{text-align:left}.budget-matrix__item{position:sticky;left:0;background:var(--color-surface);font-weight:500;white-space:nowrap}.budget-matrix__num{text-align:right;white-space:nowrap;font-family:var(--font-mono)}.budget-matrix th:last-child,.budget-matrix td:last-child{text-align:center}.budget-matrix td:last-child .budget-delete{margin:0 auto}.budget-matrix tbody tr{cursor:pointer}.budget-matrix tbody tr:hover td,.budget-matrix tbody tr:hover .budget-matrix__item{background:#edf8f4}.budget-matrix tfoot td{font-weight:700;border-top:2px solid var(--color-ink);background:var(--color-bg)}.budget-matrix__essential{margin-left:.4rem;color:var(--color-accent)}.budget-matrix__summary-btn{display:inline-flex;align-items:center;justify-content:center;min-height:2rem;padding:.35rem .65rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-ink);font:600 .72rem/1 var(--font-body);text-transform:none;cursor:pointer}.budget-modal__check{flex-direction:row!important;align-items:center;gap:.5rem!important}.budget-modal__check input{min-height:auto!important}.budget-allocations{grid-column:1 / -1;display:grid;gap:.5rem;border-top:1px solid var(--color-border);padding-top:1rem}.budget-allocations__head{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--color-ink-muted);font-weight:600}.budget-allocations__empty{margin:0;font-size:.85rem;color:var(--color-ink-muted)}.budget-allocations__grid{width:100%;border-collapse:collapse;border:1px solid var(--color-border);font-size:.85rem;background:var(--color-bg)}.budget-allocations__grid th,.budget-allocations__grid td{padding:.45rem .6rem;border-bottom:1px solid var(--color-border);text-align:left}.budget-allocations__grid th{color:var(--color-ink-muted);font:var(--type-table-head);text-transform:uppercase;letter-spacing:.05em}.budget-allocations__amount{text-align:right!important;font-family:var(--font-mono);white-space:nowrap}.budget-allocations__actions{display:flex;justify-content:flex-end;gap:.35rem;white-space:nowrap;text-align:right}.budget-allocations__actions button{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:2rem;padding:.35rem .6rem;border-radius:6px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-accent);cursor:pointer;font:600 .75rem/1 inherit}.budget-allocations__actions button:hover{filter:brightness(.98)}.budget-allocations__edit{background:var(--color-accent)!important;border-color:var(--color-accent)!important;color:#fff!important}.budget-allocations__delete{border-color:var(--color-error)!important;color:var(--color-error)!important;background:transparent!important}.budget-allocations__total{margin:0;font-size:.8rem;color:var(--color-ink-muted);text-align:right}.budget-delete{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.35rem .6rem;border:1px solid var(--color-error);border-radius:4px;background:none;color:var(--color-error);cursor:pointer}.budget-empty{padding:1.5rem!important;color:var(--color-ink-muted);text-align:center!important}.budget-error{color:var(--color-error)}.budget-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:1rem;background:#101b1880;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.budget-modal__content{width:min(620px,100%);max-height:92vh;overflow:auto;display:grid;gap:1rem;padding:2rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 24px 70px #10262038}.budget-modal__content h2,.budget-modal__content p{margin:0}.budget-modal__helper{color:var(--color-ink-muted);font-size:.85rem}.budget-modal__actions{display:flex;justify-content:flex-end;gap:.75rem}.budget-modal__actions button:not(.budget-button):not(.budget-delete){display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.6rem .9rem;border:1px solid var(--color-border);border-radius:4px;background:none;cursor:pointer}.budget-modal__content--summary{width:min(680px,100%)}.budget-summary-grid{width:100%;border-collapse:collapse;border:1px solid var(--color-border);background:var(--color-surface)}.budget-summary-grid th,.budget-summary-grid td{padding:.55rem .7rem;border:1px solid var(--color-border)}.budget-summary-grid th{text-align:left;background:var(--color-bg);color:var(--color-ink-muted);font:var(--type-table-head);text-transform:uppercase}.budget-summary-grid__amount{text-align:right;font-family:var(--font-mono)}.budget-history{display:grid;gap:.75rem;max-height:55vh;overflow:auto}.budget-history details{padding:.75rem;border:1px solid var(--color-border)}.budget-history pre{max-height:20rem;overflow:auto;white-space:pre-wrap;font-size:.7rem}.budget-modal--top{z-index:30}.budget-modal--top .budget-modal__content{width:min(480px,100%)}.budgets-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:1rem;background:#101b1880;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.budgets-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1rem;margin-bottom:.9rem}.budgets-filters__toggle{display:inline-flex;align-items:center;gap:.5rem;color:var(--color-ink-muted);font-size:.85rem}.budgets-filters__toggle input{cursor:pointer}.budgets-filters__toggle select{min-width:220px;padding:.35rem .45rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-ink)}.budgets-modal__content{width:min(820px,100%);max-height:92vh;overflow-y:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.35rem 1.5rem;padding:2rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 24px 70px #10262038}.budgets-modal__content h2{grid-column:1 / -1;margin:0 0 .5rem;font-family:var(--font-display)}.budgets-modal__content label{display:flex;flex-direction:column;gap:.35rem;color:var(--color-ink-muted);font-size:.8rem}.budgets-modal__content input,.budgets-modal__content select{min-height:2.5rem;padding:.65rem .75rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-ink)}.budgets-modal__error{grid-column:1 / -1;margin:0;color:var(--color-error);font-size:.85rem}.budgets-modal__actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:.75rem}.budgets-modal__actions button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-width:5.5rem;border:1px solid var(--color-border);border-radius:4px;padding:.55rem .9rem;background:var(--color-surface);color:var(--color-ink);font-size:.9rem;line-height:1.2;cursor:pointer}.budgets-modal__actions .budgets-modal__save{border:0;background:var(--color-accent);color:#fff}.budgets-modal__actions .budgets-modal__save:disabled{opacity:.6;cursor:not-allowed}.budgets-modal__content--warning{max-width:480px;grid-template-columns:1fr}.budgets-modal__actions .budgets-modal__danger{border:1px solid var(--color-error);background:var(--color-error);color:#fff;font-weight:600}.budgets-table{table-layout:fixed;overflow:visible;position:relative;z-index:1}.budgets-table__actions-col{width:96px}.budgets-table__menu-wrap,.budgets-table__action-cell,.budgets-table__row{overflow:visible}.budgets-table__row{outline:none;position:relative;z-index:1}.budgets-table__row--selected{background:#edf8f4;box-shadow:inset 0 0 0 2px #107b5a47}.budgets-table__row--menu-open{z-index:20}.budgets-table__row:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.budgets-table__action-cell{position:relative;width:96px;overflow:visible;z-index:2}.budgets-table__menu-wrap{position:relative;display:inline-flex;overflow:visible;z-index:10}.budgets-table__menu-trigger{display:inline-flex;align-items:center;justify-content:center;min-width:3.5rem;padding:.35rem .6rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-ink);font-family:var(--font-mono);font-size:.8rem;cursor:pointer}.budgets-table__menu-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483646}.budgets-table__menu{position:fixed;z-index:2147483647;isolation:isolate;display:flex;flex-direction:column;min-width:8rem;padding:.35rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);box-shadow:0 12px 30px #1026201f}.budgets-table__menu-item{border:0;border-radius:4px;background:transparent;color:var(--color-ink);text-align:left;padding:.5rem .6rem;font:inherit;cursor:pointer}.budgets-table__menu-item:hover{background:var(--color-bg)}.budgets-table__menu-item--danger{color:var(--color-error)}.budgets-table--menu-open .budgets-table__menu-trigger{visibility:hidden;pointer-events:none}.budgets-table--menu-open .budgets-table__row--menu-open .budgets-table__menu-trigger{visibility:visible;pointer-events:auto}@media (max-width: 600px){.budgets-modal__content{grid-template-columns:1fr}}.fbar-page__actions{display:flex;align-items:center;gap:.75rem}.fbar-page__currency-group{margin-bottom:1.5rem}.fbar-page__hint{margin:0 0 .6rem;color:var(--color-ink-muted);font:var(--type-mono-caption);letter-spacing:.04em}.fbar-page__currency-title{margin:0 0 .75rem;font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--color-ink)}@media (max-width: 560px){.fbar-page__actions{align-items:stretch;flex-direction:column}}.fbar-accounts__table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:6px}.fbar-accounts__table{min-width:1250px}.fbar-accounts__hint{margin:0 0 .6rem;color:var(--color-ink-muted);font:var(--type-mono-caption);letter-spacing:.04em}.fbar-accounts__scope-toggle{display:inline-flex;align-items:center;gap:.5rem;margin:-1rem 0 1rem;color:var(--color-ink-muted);font-size:.85rem;cursor:pointer}.fbar-accounts__scope-toggle input{width:1rem;height:1rem;accent-color:var(--color-accent)}.fbar-accounts__group-row td{padding:0!important;background:var(--color-bg)}.fbar-accounts__group-toggle{width:100%;display:flex;align-items:center;gap:.6rem;padding:.7rem 1rem;border:0;background:none;color:var(--color-ink);font:inherit;text-align:left;cursor:pointer}.fbar-accounts__group-toggle:hover{background:#edf2f0}.fbar-accounts__chevron{display:inline-block;color:var(--color-ink-muted);transition:transform .15s ease}.fbar-accounts__chevron--open{transform:rotate(90deg)}.fbar-accounts__group-name{flex:1;font-weight:600}.fbar-accounts__count{padding:.1rem .55rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-ink-muted);font:.75rem var(--font-mono)}.fbar-accounts__account-no{white-space:nowrap;font-family:var(--font-mono);font-size:.8rem}.fbar-accounts__modal{width:min(760px,100%);max-height:92vh;overflow-y:auto}.fbar-accounts__modal-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.fbar-accounts__form-fields{display:flex;flex-wrap:wrap;gap:1rem}.fbar-accounts__form-fields label{display:flex;min-width:160px;flex:1;flex-direction:column;gap:.35rem;color:var(--color-ink-muted);font-size:.8rem;font-weight:500}.fbar-accounts__form-fields input,.fbar-accounts__form-fields select{min-height:2.35rem;padding:.55rem .65rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-ink);font:inherit}.fbar-accounts__modal-fields label:last-child{grid-column:1 / -1}.fbar-accounts__account-field{display:flex!important;align-items:flex-end;gap:.5rem}.fbar-accounts__account-control{display:flex;gap:.5rem}.fbar-accounts__account-control input{flex:1;min-width:0}.fbar-accounts__country-picker{position:relative}.fbar-accounts__country-results{position:absolute;z-index:3;top:calc(100% + .25rem);left:0;right:0;display:grid;max-height:14rem;overflow-y:auto;padding:.25rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);box-shadow:0 10px 25px #10262026}.fbar-accounts__country-results button{padding:.5rem .6rem;border:0;background:none;color:var(--color-ink);text-align:left;cursor:pointer}.fbar-accounts__country-results button:hover{background:var(--color-bg)}.fbar-accounts__account-field label{flex:1}.fbar-accounts__reveal{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;flex-shrink:0;min-height:2.5rem;padding:.55rem .75rem;border:1px solid var(--color-border);border-radius:4px;background:none;color:var(--color-ink);cursor:pointer}.fbar-accounts__reveal:hover{background:var(--color-bg)}.fbar-accounts__balances{width:min(820px,100%);height:calc(100vh - 2rem);max-height:calc(100vh - 2rem);overflow:hidden;align-content:stretch;grid-template-rows:auto auto minmax(0,1fr) auto}.fbar-accounts__balances>*{grid-column:1 / -1}.fbar-accounts__balances .crud-page__header{margin-bottom:.75rem}.fbar-accounts__balances-table{min-height:0;overflow:auto}.fbar-accounts__balances-table thead th{position:sticky;top:0;background:var(--color-surface)}@media (max-width: 650px){.fbar-accounts__modal-fields{grid-template-columns:1fr}.fbar-accounts__modal-fields label:last-child{grid-column:auto}}.fbar-config__hint{margin:0 0 .6rem;color:var(--color-ink-muted);font:var(--type-mono-caption);letter-spacing:.04em}.fbar-config__check{display:flex!important;grid-template-columns:auto 1fr;align-items:center;gap:.65rem!important;color:var(--color-ink)!important;cursor:pointer}.fbar-config__check input{width:1rem;min-height:1rem!important;accent-color:var(--color-accent)}.fbar-config__accounts{display:grid;gap:.75rem;max-height:18rem;overflow-y:auto;padding:.8rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg)}.fbar-config__empty{color:var(--color-ink-muted)}.crud-modal__content--form .crud-form__row>label:has(.fbar-config__accounts){grid-column:1 / -1}.fbar-dashboard__table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:6px}.fbar-dashboard__table{width:auto;min-width:0}.fbar-dashboard__table th,.fbar-dashboard__table td{min-width:0;padding:.6rem .75rem;white-space:nowrap}.fbar-dashboard__table th{font:var(--type-table-head)}.fbar-dashboard__table td{font-size:1rem}.fbar-dashboard__amount--high{background:#f4b8b8}.fbar-dashboard__amount--low{background:#b9dfc2}.fbar-dashboard__table th:not(:first-child),.fbar-dashboard__table td:not(:first-child){text-align:right}.fbar-dashboard__table th:first-child,.fbar-dashboard__table td:first-child{min-width:0}.fbar-dashboard__year{font-family:var(--font-mono);font-weight:600}.fbar-dashboard__pending{color:var(--color-error);font-size:.8rem}.fbar-dashboard__details-button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.4rem .65rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-ink);cursor:pointer;font:inherit;font-size:.82rem}.fbar-dashboard__details-button:hover{border-color:var(--color-accent)}.fbar-dashboard__modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:1rem;background:#141b198c}.fbar-dashboard__modal{position:relative;z-index:1;display:flex;flex-direction:column;width:min(58rem,100%);max-height:min(90vh,56rem);overflow:hidden;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);box-shadow:0 1rem 3rem #00000038}.fbar-dashboard__modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.fbar-dashboard__modal-header h2{margin:0;font-family:var(--font-display);font-size:1.35rem}.fbar-dashboard__modal-close{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;flex:0 0 auto;padding:.45rem .75rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-ink);cursor:pointer}.fbar-dashboard__modal-content{overflow-y:auto;padding:.5rem 1.25rem 1.25rem}.fbar-dashboard__user-details{padding:1rem 0;border-bottom:1px solid var(--color-border)}.fbar-dashboard__user-details:last-child{border-bottom:0}.fbar-dashboard__user-details h3{margin:0 0 .75rem;font-family:var(--font-display)}.fbar-dashboard__user-total{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:.75rem;background:#eef3f0}.fbar-dashboard__user-total strong{text-align:right}.fbar-dashboard__accounts-grid{width:100%;border-collapse:collapse;border:1px solid var(--color-border);background:var(--color-surface)}.fbar-dashboard__accounts-grid th,.fbar-dashboard__accounts-grid td{padding:.55rem .65rem;border:1px solid var(--color-border)}.fbar-dashboard__accounts-grid th{text-align:left;color:var(--color-ink-muted);font:var(--type-table-head);text-transform:uppercase}.fbar-dashboard__accounts-grid-amount{text-align:right;white-space:nowrap;font-family:var(--font-mono)}.fbar-dashboard__account-details-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.35rem .55rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-ink);cursor:pointer;font:inherit;font-size:.82rem}.fbar-dashboard__account-details-btn:hover{border-color:var(--color-accent)}.fbar-dashboard__details-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3;width:min(48rem,calc(100vw - 2.5rem));max-height:min(86vh,54rem);overflow:hidden;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);box-shadow:0 1rem 3rem #00000042}.fbar-dashboard__details-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;background:#101b1873;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.fbar-dashboard__details-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border-bottom:1px solid var(--color-border)}.fbar-dashboard__details-modal-header h3{margin:0;font-family:var(--font-display);font-size:1.15rem}.fbar-dashboard__details-modal-content{overflow-y:auto;padding:1rem}.fbar-dashboard__details-owner{margin:0 0 .75rem;font-size:.9rem;color:var(--color-ink-muted)}.fbar-dashboard__details-grid{display:grid;gap:.55rem}.fbar-dashboard__details-row{display:grid;grid-template-columns:minmax(12rem,38%) minmax(0,1fr);align-items:start;gap:.65rem;padding:.55rem .65rem;border:1px solid var(--color-border);border-radius:4px;background:#f7f8f7}.fbar-dashboard__details-row strong{font:.64rem var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--color-ink-muted);line-height:1.35;padding-top:.15rem}.fbar-dashboard__details-value{display:block;-webkit-user-select:text;user-select:text;word-break:break-word;font:.92rem/1.35 var(--font-body);color:var(--color-ink)}@media (max-width: 600px){.fbar-dashboard__modal-backdrop{padding:.5rem}.fbar-dashboard__modal-header,.fbar-dashboard__modal-content{padding-left:.85rem;padding-right:.85rem}.fbar-dashboard__user-total{align-items:flex-start;flex-direction:column;gap:.35rem}.fbar-dashboard__user-total strong{text-align:left}}:root{--color-bg: #eef3f1;--color-surface: #ffffff;--color-ink: #17211f;--color-ink-muted: #64716d;--color-border: #d5dfdb;--color-accent: #087f6d;--color-accent-hover: #056354;--color-warn: #B7791B;--color-error: #B4232F;--font-display: "Space Grotesk", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "IBM Plex Mono", "Courier New", monospace;--type-page-eyebrow: 400 .7rem/1.2 var(--font-mono);--type-page-title: 600 1.6rem/1.2 var(--font-display);--type-table-head: 500 .65rem/1.2 var(--font-mono);--type-mono-caption: 400 .7rem/1.2 var(--font-mono);--type-button-label: 600 .9rem/1.2 var(--font-body)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:linear-gradient(135deg,#eef3f1,#f7f9f8 55%,#e8f1ee);color:var(--color-ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}#root{min-height:100vh}button{font-family:inherit;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}button:hover:not(:disabled){transform:translateY(-1px)}a{color:var(--color-accent)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
