:root{--color-bg:#f8fafc;--color-surface:#fff;--color-surface-muted:#f1f5f9;--color-border:#e2e8f0;--color-text:#0f172a;--color-text-muted:#64748b;--color-primary:#1e293b;--color-primary-hover:#0f172a;--color-primary-contrast:#fff;--color-secondary:#1d5b78;--color-secondary-muted:#27779a33;--color-tertiary:#b0b3a8;--color-tertiary-muted:#b0b3a833;--color-accent:#2563eb;--color-danger:#bd1a1a;--color-success:#15803d;--color-nav-active-bg:#e8edf3;--color-initials:#fff;--avatar-gradient:linear-gradient(135deg, #b0b3a8 20%, #2a2e44 50%, #1d5b78 80%);--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--shadow-sm:0 1px 2px #0f172a0f;--shadow-md:0 8px 24px #0f172a1f;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--header-height:64px;--content-max-width:1400px}[data-theme=dark]{--color-bg:#0f172a;--color-surface:#1a202c;--color-surface-muted:#2d3748;--color-border:#334155;--color-text:#f1f5f9;--color-text-muted:#94a3b8;--color-primary:#f1f5f9;--color-primary-hover:#fff;--color-primary-contrast:#0f172a;--color-accent:#60a5fa;--color-danger:#ef4444;--color-success:#22c55e;--color-nav-active-bg:#334155;--color-initials:#fff}
.app-header{height:var(--header-height);background-color:var(--color-surface);border-bottom:1px solid var(--color-border)}.app-header-inner{height:100%;max-width:var(--content-max-width);justify-content:space-between;align-items:center;gap:24px;margin:0 auto;padding:0 24px;display:flex}.app-header-left{align-items:center;gap:28px;display:flex}.nav-links{align-items:center;gap:4px;display:flex}.nav-link{border-radius:var(--radius-sm);color:var(--color-text-muted);padding:7px 12px;font-size:.92rem;font-weight:500;text-decoration:none}.nav-link:hover{color:var(--color-text);background-color:var(--color-surface-muted)}.nav-link-active,.nav-link-active:hover{color:var(--color-text);background-color:var(--color-nav-active-bg)}.account-menu{position:relative}.account-trigger{background-color:#0000;border:1px solid #0000;border-radius:999px;align-items:center;gap:10px;padding:5px 10px 5px 5px;display:flex}.account-trigger:hover{background-color:var(--color-surface-muted)}.avatar{background:var(--avatar-gradient);width:32px;height:32px;color:var(--color-initials);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.78rem;font-weight:600;display:flex}.account-name{color:var(--color-text);font-size:.92rem;font-weight:500}.account-dropdown{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:240px;box-shadow:var(--shadow-md);z-index:50;padding:6px;position:absolute;top:calc(100% + 8px);right:0}.account-dropdown-header{padding:8px 10px 10px}.account-dropdown-name{font-size:.92rem;font-weight:600}.account-dropdown-email{color:var(--color-text-muted);font-size:.82rem}.account-dropdown-section{border-top:1px solid var(--color-border);margin-top:4px;padding-top:4px}.account-dropdown-section:first-of-type{border-top:none;margin-top:0;padding-top:0}.account-dropdown-item{border-radius:var(--radius-sm);width:100%;color:var(--color-text);text-align:left;background-color:#0000;border:none;align-items:center;gap:10px;padding:8px 10px;font-size:.9rem;display:flex}.account-dropdown-item:hover{background-color:var(--color-surface-muted)}.account-dropdown-item svg{color:var(--color-text-muted);flex-shrink:0}.app-header-right{align-items:center;gap:12px;display:flex}.view-as-switcher{border:1px solid var(--color-border);background-color:var(--color-surface);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;display:flex}.view-as-label{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);font-size:.7rem;font-weight:700}.view-as-select{color:var(--color-text);background:0 0;border:none;outline:none;max-width:200px;font-size:.85rem}.view-as-select:focus{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}[data-theme=dark] .view-as-select{background:var(--color-surface);color:var(--color-primary)}@keyframes expandCircle{0%{clip-path:circle(0% at 100% 0);opacity:0}1%{opacity:1}to{clip-path:circle(150% at 100% 0);opacity:1}}@keyframes collapseCircle{0%{clip-path:circle(150% at 100% 0);opacity:1}99%{opacity:1}to{clip-path:circle(0% at 100% 0);opacity:0}}.mobile-nav-toggle{border-radius:var(--radius-sm);width:40px;height:40px;color:var(--color-text);background-color:#0000;border:none;justify-content:center;align-items:center;padding:0;display:none}.mobile-nav-toggle:hover{background-color:var(--color-surface-muted)}.mobile-nav{z-index:100;background-color:var(--color-surface);pointer-events:none;flex-direction:column;padding:12px 16px 24px;display:flex;position:fixed;inset:0;overflow-y:auto}.mobile-nav-open{pointer-events:auto;animation:.4s ease-out forwards expandCircle}.mobile-nav-closed{pointer-events:none;animation:.4s ease-out forwards collapseCircle}.mobile-nav-top{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding-bottom:16px;display:flex}.mobile-nav-close{border-radius:var(--radius-sm);width:40px;height:40px;color:var(--color-text);background-color:#0000;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.mobile-nav-close:hover{background-color:var(--color-surface-muted)}.mobile-nav-viewas{border-bottom:1px solid var(--color-border);padding:16px 0}.mobile-nav-viewas .view-as-switcher{width:100%}.mobile-nav-viewas .view-as-select{flex:1;max-width:none}.mobile-nav-links{flex-direction:column;gap:4px;padding:16px 0;display:flex}.mobile-nav-link{border-radius:var(--radius-md);color:var(--color-text);padding:12px 14px;font-size:1rem;font-weight:500;text-decoration:none}.mobile-nav-link:hover{background-color:var(--color-surface-muted)}.mobile-nav-link-active,.mobile-nav-link-active:hover{background-color:var(--color-nav-active-bg)}.mobile-nav-actions{border-top:1px solid var(--color-border);flex-direction:column;gap:2px;margin-top:auto;padding-top:16px;display:flex}.mobile-nav-action{border-radius:var(--radius-md);width:100%;color:var(--color-text);text-align:left;background-color:#0000;border:none;align-items:center;gap:12px;padding:12px 14px;font-size:.95rem;display:flex}.mobile-nav-action:hover{background-color:var(--color-surface-muted)}.mobile-nav-action svg{color:var(--color-text-muted);flex-shrink:0}.mobile-nav-profile{gap:12px;padding:10px 14px}.mobile-nav-profile-text{flex-direction:column;min-width:0;display:flex}.mobile-nav-profile-name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.mobile-nav-profile-email{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}@media (max-width:768px){.app-header-inner{gap:12px;padding:0 16px}.nav-links,.account-menu,.app-header-right .view-as-switcher{display:none}.mobile-nav-toggle{display:inline-flex}}
.app-main{max-width:var(--content-max-width);margin:0 auto;padding:40px 24px}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.page-header-action{flex-shrink:0;padding-top:2px}.page-title{font-size:1.9rem;font-weight:700}.page-description{max-width:640px;color:var(--color-text-muted);margin-top:8px}
.field{display:block}.field-label{margin-bottom:6px;font-size:.85rem;font-weight:500;display:block}.field-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);width:100%;color:var(--color-text);padding:9px 12px;font-size:.95rem}.field-input:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #2563eb26}.btn{border-radius:var(--radius-sm);border:1px solid #0000;justify-content:center;align-items:center;padding:9px 16px;font-size:.95rem;font-weight:500;display:inline-flex}.btn-primary{background-color:var(--color-primary);color:var(--color-primary-contrast)}.btn-primary:hover{background-color:var(--color-primary-hover)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-block{width:100%}.btn-ghost{color:var(--color-text-muted);background-color:#0000}.btn-ghost:hover{background-color:var(--color-surface-muted);color:var(--color-text)}.link-button{color:var(--color-accent);background:0 0;border:none;padding:0;font-weight:500;text-decoration:underline}.form-error{color:var(--color-danger);font-size:.88rem}.form-info{color:var(--color-success);font-size:.88rem}
.login-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:var(--shadow-sm);padding:32px}.login-brand{align-items:center;gap:10px;margin-bottom:20px;display:flex}.login-title{font-size:1.4rem;font-weight:700}.login-subtitle{color:var(--color-text-muted);margin-top:4px;margin-bottom:20px;font-size:.92rem}.login-form{flex-direction:column;gap:16px;display:flex}.login-switch{color:var(--color-text-muted);text-align:center;margin-top:20px;font-size:.9rem}
.back-link{color:var(--color-text-muted);align-items:center;gap:6px;font-size:.9rem;font-weight:500;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--color-text)}.profile-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);max-width:620px;box-shadow:var(--shadow-sm);flex-direction:column;gap:18px;padding:24px;display:flex}.profile-card-header{border-bottom:1px solid var(--color-border);align-items:center;gap:14px;padding-bottom:18px;display:flex}.profile-card-name{font-size:1.05rem;font-weight:600}.profile-card-email{color:var(--color-text-muted);font-size:.88rem}.avatar-lg{width:52px;height:52px;font-size:1rem}.field-with-icon{display:block;position:relative}.field-icon{color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.field-input-icon{padding-left:34px}.profile-note{border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface-muted);color:var(--color-text-muted);align-items:center;gap:10px;padding:10px 12px;font-size:.85rem;display:flex}.profile-note svg{flex-shrink:0}.profile-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}
.settings-section{flex-direction:column;gap:24px;display:flex}.settings-item{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:24px;padding:20px;display:flex}.settings-item-header{flex:1}.settings-item-title{color:var(--color-text);margin:0 0 4px;font-size:1rem;font-weight:600}.settings-item-description{color:var(--color-text-muted);margin:0;font-size:.9rem}.dark-mode-toggle{border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface-muted);width:44px;height:44px;color:var(--color-text);cursor:pointer;z-index:10;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex;position:relative}.dark-mode-toggle:hover{background-color:var(--color-border);border-color:var(--color-text-muted);color:var(--color-text)}.dark-mode-toggle:active{transform:scale(.95)}.dark-mode-toggle svg{flex-shrink:0;width:24px;height:24px}
.len-filterbar{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;align-items:center;gap:12px 20px;margin-bottom:16px;padding:14px 16px;display:flex}.len-filter-groep{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.len-filter-label{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);margin-right:2px;font-size:.7rem;font-weight:700}.len-filter-sep{background-color:var(--color-border);width:1px;height:20px;margin:0 4px}.len-pill{border:1px solid var(--color-border);color:var(--color-text-muted);white-space:nowrap;background-color:#0000;border-radius:999px;padding:5px 13px;font-size:.82rem;font-weight:500}.len-pill:hover{background-color:var(--color-surface-muted);color:var(--color-text)}.len-pill-active{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-contrast)}.len-pill-active:hover{background-color:var(--color-primary-hover);color:var(--color-primary-contrast)}.len-zoek{min-width:200px}.len-teller{color:var(--color-text-muted);margin-bottom:12px;font-size:.8rem}.len-leeg{text-align:center;padding:32px 0}.len-lijst{flex-direction:column;gap:12px;display:flex}.len-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.len-card-head{text-align:left;background-color:#0000;border:none;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px 18px;display:flex}.len-card-head:hover .len-card-title{color:var(--color-accent)}.len-card-title{color:var(--color-text);font-size:1rem;font-weight:600}.len-card-badges{flex-shrink:0;align-items:center;gap:8px;display:flex}.len-chevron{color:var(--color-text-muted);font-size:.8rem;transition:transform .18s;display:inline-block}.len-chevron-open{transform:rotate(180deg)}.len-badge{letter-spacing:.05em;text-transform:uppercase;border-radius:var(--radius-sm);white-space:nowrap;padding:3px 8px;font-size:.65rem;font-weight:700}.len-badge-bv{background-color:var(--color-primary);color:var(--color-primary-contrast)}.len-badge-priv{background-color:var(--color-surface-muted);color:var(--color-text-muted)}.len-badge-actief{color:var(--color-success);background-color:#15803d1f}.len-badge-toekomstig{color:var(--color-accent);background-color:#2563eb1f}.len-badge-afgelopen{background-color:var(--color-surface-muted);color:var(--color-text-muted)}.len-badge-open{color:var(--color-danger);text-transform:none;letter-spacing:0;background-color:#dc26261a;font-weight:600}.len-card-summary{color:var(--color-text);border-bottom:1px solid var(--color-border);background-color:var(--color-surface-muted);flex-wrap:wrap;gap:6px 22px;padding:8px 18px 12px;font-size:.82rem;display:flex}.len-muted{color:var(--color-text-muted)}.len-card-body{padding:16px 18px 18px}.len-meta-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.len-meta-grid-spaced{margin-top:12px}.len-meta-grid dt{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:2px;font-size:.65rem;font-weight:600}.len-meta-grid dd{color:var(--color-text);font-size:.9rem;font-weight:600}.len-strong{color:var(--color-text);font-size:1rem}.len-pos{color:var(--color-success)}.len-danger{color:var(--color-danger)}.len-accent{color:var(--color-accent);font-weight:600}.len-divider{border:none;border-top:1px solid var(--color-border);margin:12px 0}.len-open-rij{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.len-progress{background-color:var(--color-surface-muted);border-radius:999px;height:6px;margin-top:14px;overflow:hidden}.len-progress-fill{background-color:var(--color-primary);border-radius:999px;height:100%}.len-progress-label{color:var(--color-text-muted);margin-top:5px;font-size:.75rem}.len-card-acties{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.len-card-acties .btn{padding:7px 13px;font-size:.85rem}.len-btn-danger{color:var(--color-danger)}.len-btn-danger:hover{color:var(--color-danger);background-color:#dc262614}.len-schema-wrap{border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-top:14px;overflow-x:auto}.len-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:.8rem}.len-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);background-color:var(--color-surface-muted);border-bottom:1px solid var(--color-border);padding:8px 12px;font-size:.65rem}.len-table td{border-bottom:1px solid var(--color-border);color:var(--color-text);padding:7px 12px}.len-table tr:last-child td{border-bottom:none}.len-table-fixed{table-layout:fixed}.len-table-fixed th,.len-table-fixed td{text-overflow:ellipsis;overflow:hidden}.len-dash{color:var(--color-text-muted)}.len-check{cursor:pointer;align-items:center;gap:5px;display:inline-flex}.len-check input{cursor:pointer}.len-status-ok{color:var(--color-success);font-weight:600}.len-status-open{color:var(--color-danger);font-weight:600}.len-status-future{color:var(--color-text-muted)}.len-modal-overlay{z-index:100;background-color:#0f172a80;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.len-modal{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);width:100%;max-width:640px;margin:auto}.len-modal-head{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.len-modal-head h2{font-size:1.1rem;font-weight:700}.len-modal-close{color:var(--color-text-muted);border-radius:var(--radius-sm);background-color:#0000;border:none;padding:4px 8px;font-size:1.1rem;line-height:1}.len-modal-close:hover{background-color:var(--color-surface-muted);color:var(--color-text)}.len-modal-body{padding:20px}.len-form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.len-form-full{grid-column:1/-1}.len-radio-rij{flex-wrap:wrap;gap:8px 16px;display:flex}.len-radio-rij label,.len-maand-kiezer label{cursor:pointer;align-items:center;gap:6px;font-size:.9rem;display:flex}.len-maand-kiezer{flex-wrap:wrap;gap:6px 12px;display:flex}.len-maand-kiezer label{font-size:.85rem}.len-tt-lijst{flex-direction:column;gap:4px;margin-bottom:8px;list-style:none;display:flex}.len-tt-lijst li{align-items:center;gap:10px;font-size:.85rem;display:flex}.len-tt-del{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-danger);background-color:#0000;padding:1px 7px;font-size:.75rem}.len-tt-invoer{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.len-tt-invoer .field-input{flex:1;width:auto;min-width:130px}.len-modal-acties{align-items:center;gap:14px;margin-top:20px;display:flex}.len-period-nav{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.len-period-title{flex:1;min-width:130px;font-size:1.15rem;font-weight:700}.len-period-nav .btn{padding:6px 12px}.len-overview-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto}.len-overview-cards{flex-direction:column;gap:8px;display:none}.len-ov-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:10px 12px}.len-ov-card-title{color:var(--color-text);margin-bottom:8px;font-size:.9rem;font-weight:600}.len-ov-grid{grid-template-columns:1fr 1fr 1fr 1fr;gap:4px 10px;display:grid}.len-ov-item dt{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-size:.6rem;font-weight:600}.len-ov-item dd{color:var(--color-text);font-size:.85rem;font-weight:600}.len-ov-status{border-top:1px solid var(--color-border);flex-wrap:wrap;gap:4px 18px;margin-top:8px;padding-top:8px;display:flex}.len-ov-status-row{align-items:center;gap:6px;display:flex}.len-ov-status-label{color:var(--color-text-muted);font-size:.72rem}.len-year-block{margin-bottom:20px}.len-year-block-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.len-year-block-title{text-transform:uppercase;letter-spacing:.07em;font-size:.72rem;font-weight:700}.len-year-block-sub{color:var(--color-text-muted);font-size:.78rem}.len-contracts{margin-top:16px}.len-contracts-title{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);margin-bottom:8px;font-size:.7rem;font-weight:700}.len-contracts-lijst{flex-direction:column;gap:6px;margin-bottom:10px;list-style:none;display:flex}.len-contracts-lijst li{align-items:center;gap:8px;display:flex}.len-contract-open{color:var(--color-accent);text-align:left;background:0 0;border:none;padding:0;font-size:.88rem;text-decoration:underline}.len-upload{cursor:pointer}.len-upload-busy{opacity:.6;cursor:progress}.cf-form-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:16px;padding:16px}.cf-form-grid{grid-template-columns:130px 1fr auto 1fr auto;align-items:end;gap:12px;display:grid}.cf-bank-groups{margin-bottom:16px}.cf-bank-group{margin-bottom:12px}.cf-bank-group-title{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:3px;margin-bottom:6px;padding:0;font-size:.72rem;font-weight:700;display:inline-flex}.cf-bank-group-title:hover{color:var(--color-text)}.cf-table-wrap{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto}.cf-table{border-collapse:collapse;white-space:nowrap;width:max-content;min-width:100%;font-size:.78rem}.cf-table th,.cf-table td{border-bottom:1px solid var(--color-border);text-align:right;font-variant-numeric:tabular-nums;padding:6px 10px}.cf-table thead th{background-color:var(--color-surface);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);border-bottom:2px solid var(--color-border);font-size:.65rem;font-weight:700}.cf-year-th{text-align:center;border-left:2px solid var(--color-border);color:var(--color-text);background-color:var(--color-surface-muted)!important}.cf-stand{border-right:2px solid var(--color-border);font-weight:600}.cf-month{text-align:center;min-width:78px}.cf-label{background-color:var(--color-surface);z-index:2;font-variant-numeric:normal;min-width:190px;max-width:190px;position:sticky;left:0;text-align:left!important}.cf-table thead .cf-label{z-index:3}.cf-label-main{color:var(--color-text);font-weight:700}.cf-label-sub{color:var(--color-text-muted);background-color:var(--color-surface-muted);font-style:italic;padding-left:22px!important}.cf-row-sub td{background-color:var(--color-surface-muted)}.cf-num{color:var(--color-text)}.cf-obligo{font-weight:700}.cf-pos{color:var(--color-success)}.cf-open,.cf-danger{color:var(--color-danger);font-weight:600}.cf-strong{font-weight:700}.cf-current{background-color:#2563eb14!important}@media (max-width:640px){.len-meta-grid{grid-template-columns:1fr 1fr}.len-form-grid,.cf-form-grid{grid-template-columns:1fr}.cf-form-grid>button{width:100%}.len-overview-card{display:none}.len-overview-cards{display:flex}.len-check{font-size:.72rem}.len-ov-status-row{flex-direction:row;justify-content:space-between;width:100%;display:flex}}
.dashboard-row{grid-template-columns:2fr 1fr;gap:10px;display:grid}.dashboard-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.dashboard-metric{background-color:var(--color-surface);border:1px solid var(--color-border);border-top:3px solid var(--color-primary);border-radius:var(--radius-md);padding:14px 16px}.dashboard-metric-label{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);margin-bottom:6px;font-size:.65rem;font-weight:700}.dashboard-metric-value{font-size:1.15rem;font-weight:700}.dashboard-metric-value-pos{color:var(--color-success)}.dashboard-metric-value-danger{color:var(--color-danger)}.dashboard-expected-bankstand,.dashboard-active-loans{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:28px;padding:20px}.dashboard-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.dashboard-title{color:var(--color-text);margin:0 0 4px;font-size:1.1rem;font-weight:700}.dashboard-subtitle{color:var(--color-text-muted);margin:0;font-size:.85rem}.dashboard-date-input{border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text);cursor:pointer;min-width:180px;padding:10px 14px;font-size:.95rem}.dashboard-date-input:hover,.dashboard-date-input:focus{border-color:var(--color-accent);outline:none}.dashboard-balance-cards{grid-template-columns:1fr 1fr;gap:16px;display:grid}.dashboard-balance-cards-single{grid-template-columns:1fr}.dashboard-balance-card{border-radius:var(--radius-md);border:1px solid var(--color-border);padding:14px 16px}.dashboard-balance-card-prive{background-color:var(--color-bg);border-color:var(--color-text-muted)}.dashboard-balance-card-bv{background-color:var(--color-tertiary-muted);border-color:var(--color-tertiary)}.dashboard-balance-type{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:10px;font-size:.65rem;font-weight:700}.dashboard-balance-amount{color:var(--color-text);font-size:1.25rem;font-weight:700}.dashboard-balance-note{color:var(--color-text-muted);margin-top:8px;font-size:.75rem}.dashboard-loans-grid-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);overflow-x:auto}.dashboard-loans-grid{grid-template-columns:minmax(220px,2fr) repeat(6,minmax(120px,1fr));align-items:center;gap:10px;min-width:1100px;display:grid}.dashboard-loans-grid-head{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);background-color:var(--color-surface-muted);border-bottom:1px solid var(--color-border);padding:12px 16px;font-size:.65rem;font-weight:700}.dashboard-loans-grid-list{flex-direction:column;display:flex}.dashboard-loans-row{border-bottom:1px solid var(--color-border);padding:10px 14px}.dashboard-loans-row:last-child{border-bottom:none}.dashboard-loans-row:nth-child(2n){background-color:var(--color-surface-muted)}.dashboard-loans-item{border-bottom:1px solid var(--color-border)}.dashboard-loans-item:last-child{border-bottom:none}.dashboard-loans-namecell{flex-direction:column;gap:2px;min-width:0;display:flex}.dashboard-loans-name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;font-size:.92rem;font-weight:700;display:flex;overflow:hidden}.dashboard-loans-type{text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:.62rem;font-weight:700}.dashboard-loans-type-priv{background-color:var(--color-surface-muted);color:var(--color-text-muted)}.dashboard-loans-type-bv{background-color:var(--color-primary);color:var(--color-primary-contrast)}.dashboard-loans-value{font-variant-numeric:tabular-nums;color:var(--color-text);white-space:nowrap;font-size:.9rem}.dashboard-loans-value-danger{color:var(--color-danger);font-weight:700}.dashboard-loans-progress-block{padding:0 14px 10px}.dashboard-loans-progress-meta{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;gap:12px;margin-top:5px;margin-bottom:5px;font-size:.65rem;font-weight:700;display:flex}.dashboard-loans-progress{background-color:var(--color-surface-muted);border-radius:999px;height:5px;overflow:hidden}.dashboard-loans-progress-fill{background:linear-gradient(90deg, var(--color-success));border-radius:999px;height:100%}.dashboard-graphs{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:28px;padding:20px}.dashboard-graph-filter{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.dashboard-graph-btn{border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text-muted);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:.8rem;font-weight:600;transition:background-color .15s,color .15s,border-color .15s}.dashboard-graph-btn:hover{border-color:var(--color-text-muted);color:var(--color-text)}.dashboard-graph-btn-active{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-contrast)}.dashboard-graph-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.dashboard-graph-card{background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);grid-column:span 1;padding:16px}.dashboard-graph-card:nth-child(3),.dashboard-graph-card:nth-child(2){grid-column:span 1}.dashboard-graph-title{color:var(--color-text);align-items:baseline;gap:6px;margin:0 0 12px;font-size:.95rem;font-weight:700;display:flex}.dashboard-graph-sub{color:var(--color-text-muted);font-size:.75rem;font-weight:500}.dashboard-graph-placeholder{border-radius:var(--radius-sm);background:repeating-linear-gradient(45deg, var(--color-surface-muted), var(--color-surface-muted) 10px, var(--color-surface) 10px, var(--color-surface) 20px);opacity:.5;height:280px}.arrow-right-span{position:relative}.arrow-top-right{font-size:.56rem;position:absolute;right:-4px}.dashboard-graph-progress-open{color:var(--color-danger);font-weight:600}@media (max-width:960px){.dashboard-graph-card:nth-child(2),.dashboard-graph-card:nth-child(3){grid-column:span 2}}@media (max-width:640px){.dashboard-metrics{grid-template-columns:1fr 1fr}.dashboard-header{flex-direction:column;align-items:stretch}.dashboard-date-input{width:100%;min-width:auto}.dashboard-balance-cards,.dashboard-graph-grid{grid-template-columns:1fr}}
.modal-overlay{z-index:50;font-family:var(--font-sans), sans-serif;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0f172a66;transition:opacity .2s ease-in-out;position:fixed;inset:0}.modal-container{z-index:10;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:500px;box-shadow:var(--shadow-md);flex-direction:column;animation:.2s ease-out modalFadeIn;display:flex;position:relative;overflow:hidden}.modal-header{border-bottom:1px solid var(--color-border);background-color:var(--color-surface);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.modal-title{color:var(--color-text);margin:0;font-size:1.25rem;font-weight:600;line-height:1.5}.modal-close-btn{cursor:pointer;color:var(--color-text-muted);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;font-size:1.75rem;line-height:1;transition:color .15s,background-color .15s;display:flex}.modal-close-btn:hover{color:var(--color-text);background-color:var(--color-surface-muted)}.modal-body{color:var(--color-text);max-height:calc(100vh - 200px);padding:24px;font-size:.95rem;line-height:1.6;overflow-y:auto}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}
.pending-overlay{z-index:100;background-color:#0f172a8c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.pending-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;max-width:440px;box-shadow:var(--shadow-md);padding:28px}.pending-title{color:var(--color-text);margin:0 0 12px;font-size:1.15rem;font-weight:700}.pending-text{color:var(--color-text-muted);margin:0 0 18px;font-size:.92rem;line-height:1.5}.admin-panel{flex-direction:column;gap:28px;display:flex}.admin-section{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:20px}.admin-section-title{color:var(--color-text);margin:0 0 12px;font-size:1rem;font-weight:700}.admin-flash{border-radius:var(--radius-sm);padding:10px 14px;font-size:.88rem;font-weight:500}.admin-flash-ok{color:var(--color-success);background-color:#15803d1a;border:1px solid #15803d4d}.admin-flash-err{color:var(--color-danger);background-color:#dc26261a;border:1px solid #dc26264d}.admin-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.admin-list-item{background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.admin-meta{color:var(--color-text-muted);margin-left:8px;font-size:.78rem;font-weight:400}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%}.admin-table thead{background-color:var(--color-surface-muted)}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:10px 14px;font-size:.88rem}.admin-table th{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);font-size:.65rem;font-weight:700}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table select,.admin-field select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);color:var(--color-text);padding:4px 8px;font-size:.85rem}.admin-field{color:var(--color-text-muted);align-items:center;gap:8px;margin-bottom:14px;font-size:.88rem;display:inline-flex}.admin-pill{text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700;display:inline-block}.admin-pill-ok{color:var(--color-success);background-color:#15803d1f}.admin-pill-pending{color:#b45309;background-color:#d977061f}.admin-pill-admin{background-color:var(--color-primary);color:var(--color-primary-contrast);margin-left:8px}
*,:before,:after{box-sizing:border-box}*{margin:0}html,body{height:100%}body{font-family:var(--font-sans), sans-serif;background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:var(--color-accent)}button{font-family:inherit;font-size:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.muted{color:var(--color-text-muted)}.link-no-underline{color:inherit;text-decoration:none}.centered-screen{min-height:100vh;color:var(--color-text-muted);justify-content:center;align-items:center;padding:24px;display:flex}.brand{align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-mark{background-image:url(/img/logo.png);background-position:50%;background-size:cover;border-radius:8px;flex-shrink:0;width:28px;height:28px}.brand-name{color:var(--color-text);font-size:1.05rem;font-weight:700}
