@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&display=swap");:root{--bg:#f4f3f1;--surface:#ffffff;--border:#d8d5cf;--text:#1f1e1c;--muted:#6b6760;--accent:#a67c3d;--accent-soft:#f3eadb;--warning-soft:#fff4e5;--warning-border:#d4a24c;--info-soft:#eef4ff;--info-border:#6b8fc7;--error:#9b2c2c}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:IBM Plex Sans,sans-serif;font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums}a{color:var(--accent)}button,input,select,textarea{font:inherit}main{max-width:960px;margin:0 auto;padding:2rem 1.5rem 4rem}h1{font-size:1.5rem;font-weight:600;margin:0 0 .5rem}.lead{color:var(--muted);margin:0 0 2rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:1.25rem;margin-bottom:1.5rem}.card h2{font-size:1rem;margin:0 0 1rem}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.field label{font-size:.875rem;font-weight:500}.field input,.field select,.field textarea{border:1px solid var(--border);border-radius:4px;padding:.6rem .75rem;background:var(--surface)}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--accent);outline-offset:0}.actions{display:flex;gap:.75rem;align-items:center}button.primary{background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:4px;padding:.65rem 1rem;cursor:pointer}button.primary:disabled{opacity:.55;cursor:not-allowed}button.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.65rem 1rem;cursor:pointer}.banner{border-radius:4px;padding:.85rem 1rem;margin-bottom:1rem}.banner.info{background:var(--info-soft);border:1px solid var(--info-border)}.banner.prominent{font-weight:600;border-width:2px;padding:1rem 1.1rem}.banner.error{background:#fdecec;border:1px solid var(--error);color:var(--error)}.login-main{max-width:28rem}.login-main .brand{font-size:.8125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 1.25rem}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:1.5rem}.login-card .primary{width:100%;min-height:2.75rem}.mfa-explanation{color:var(--muted);margin:0 0 1.25rem;line-height:1.45}.field-hint{font-size:.8125rem;color:var(--muted)}.review-item{border-top:1px solid var(--border);padding-top:1rem;margin-top:1rem}.review-toggle{width:100%;text-align:left;background:var(--surface);padding:.75rem 1rem;cursor:pointer}.review-panel,.review-toggle{border:1px solid var(--border);border-radius:4px}.review-panel{margin-top:.75rem;padding:1rem;background:#faf9f7}.compare-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem;margin:1rem 0}.compare-grid h3{font-size:.875rem;margin:0 0 .5rem}.candidate-list{display:flex;flex-direction:column;gap:.75rem}.candidate-card{border:1px solid var(--border);border-radius:4px;padding:.75rem;background:var(--surface)}.muted{color:var(--muted);font-size:.875rem}.blocked-overlay{opacity:.55;pointer-events:none}.detail-list{display:grid;grid-gap:1rem;gap:1rem;margin:0}.detail-list div{display:grid;grid-gap:.25rem;gap:.25rem}.detail-list dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.detail-list dd{margin:0;font-weight:500}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table td,.data-table th{border-bottom:1px solid var(--border);padding:.65rem .5rem;text-align:left;vertical-align:top}.data-table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.role-badge{display:inline-block;border:1px solid var(--border);border-radius:999px;padding:.15rem .55rem;margin:.1rem .25rem .1rem 0;font-size:.75rem;background:#faf9f7}.checkbox-group{display:grid;grid-gap:.5rem;gap:.5rem}.checkbox-group label{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.inline-edit{border-top:1px solid var(--border);margin-top:.75rem;padding-top:.75rem}button.destructive{background:transparent;border-color:#8b3a3a;color:#8b3a3a}button.destructive-confirm{background:#8b3a3a;border-color:#8b3a3a;color:#fff}.facility-header{display:grid;grid-gap:.35rem;gap:.35rem;margin-bottom:1.5rem}.facility-meta{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;font-size:.875rem}.status-badge{display:inline-block;border:1px solid var(--border);border-radius:999px;padding:.15rem .6rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.status-badge.status-pending{background:var(--warning-soft);border-color:var(--warning-border)}.status-badge.status-active,.status-badge.status-current{background:#edf5ef;border-color:#7aa889}.status-badge.status-in-arrears,.status-badge.status-warning{background:var(--warning-soft);border-color:var(--warning-border)}.status-badge.status-danger,.status-badge.status-default{background:#f8ecec;border-color:#c98a8a}.status-badge.status-closed{background:#ececea;border-color:#a8a49c}.status-badge.status-written-off{background:#e8e7e4;border-color:#8f8b84}.reports-card{max-width:none;padding:0}.workspace-wide{max-width:1360px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.page-header h1{margin:0 0 .35rem}.page-header .muted{margin:0}.report-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem 1.5rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.filter-field{display:flex;flex-direction:column;gap:.3rem}.filter-field>span{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.filter-field select{min-width:13rem}.toolbar-count{margin:0 0 .5rem auto;color:var(--muted);font-size:.8125rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.table-scroll{overflow-x:auto}.reports-table{width:100%}.reports-table td,.reports-table th{white-space:nowrap;vertical-align:middle}.reports-table td:first-child,.reports-table th:first-child{padding-left:1.25rem}.reports-table td:last-child,.reports-table th:last-child{padding-right:1.25rem}.reports-table .wrap{white-space:normal;min-width:10rem}.reports-table .status-badge{white-space:nowrap}.reports-table td.num,.reports-table th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.reports-table tbody tr:hover{background:#faf9f7}.reports-table .cell-muted{color:var(--muted)}.facility-link{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125rem;color:var(--accent);text-decoration:underline;text-underline-offset:2px}.facility-link:focus-visible,.facility-link:hover{color:var(--text)}.totals-row td{border-top:2px solid var(--muted);border-bottom:none;font-weight:600;background:#faf9f7}.totals-row td:first-child{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;justify-content:space-between;align-items:center;height:3.25rem;padding:0 1.5rem;background:var(--surface);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar-brand{font-size:.8125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text);text-decoration:none}.topbar-session{display:flex;align-items:center;gap:.5rem}.topbar-session .role-badge{margin:0}.app-body{display:flex;flex:1 1;align-items:stretch}.sidenav{width:13rem;flex-shrink:0;border-right:1px solid var(--border);background:#faf9f7;padding:1.25rem .75rem;position:-webkit-sticky;position:sticky;top:3.25rem;height:calc(100vh - 3.25rem);overflow-y:auto}.sidenav ul{list-style:none;margin:0;padding:0}.sidenav-section{margin-bottom:1.25rem}.sidenav-heading{font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .35rem;padding:0 .6rem}.sidenav-link{display:block;padding:.4rem .6rem;border-radius:4px;color:var(--text);text-decoration:none;font-size:.875rem}.sidenav-link:hover{background:#f1efeb}.sidenav-link.active{background:var(--accent-soft);font-weight:500}.app-content{flex:1 1;min-width:0}.glance-list{display:flex;flex-wrap:wrap;gap:1rem 3rem;margin:0}.glance-list dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.glance-list dd{margin:.25rem 0 0;font-size:1.125rem;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.glance-states{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.glance-skeleton{height:3.5rem;border-radius:4px;background:linear-gradient(90deg,#eceae6 25%,#f7f6f4 50%,#eceae6 75%);background-size:200% 100%}.card-title{font-size:1rem;margin:0 0 1rem}.reports-card .card-title{padding:1.1rem 1.25rem 0;margin:0 0 .5rem}.reports-card .card-note{padding:0 1.25rem 1.1rem;margin:0}.reports-card .glance-skeleton{margin:1rem 1.25rem 1.1rem}.workspace-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:.6rem;gap:.6rem}a.ghost,button.ghost{background:transparent;border:1px solid var(--border);border-radius:4px;padding:.5rem .9rem;color:var(--text);cursor:pointer}a.ghost{display:inline-block;text-decoration:none}a.ghost:hover,button.ghost:hover{border-color:var(--muted)}.empty-state{padding:2rem 1rem;text-align:center}.empty-state .ghost{margin-top:.75rem}.money-field{display:flex;align-items:center;gap:.5rem}.money-suffix{color:var(--muted);font-size:.875rem}.recap-list{display:grid;grid-gap:.75rem;gap:.75rem;margin:0 0 1rem}.recap-list div{display:grid;grid-gap:.15rem;gap:.15rem}.recap-list dt{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.recap-list dd{margin:0}.banner.warning{background:var(--warning-soft);border:1px solid var(--warning-border);border-radius:4px;padding:.75rem 1rem;margin-bottom:1rem}.tablist{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.tab{background:transparent;border:none;border-bottom:2px solid transparent;padding:.65rem .9rem;cursor:pointer;color:var(--muted)}.tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent);font-weight:500}.hash-cell{display:flex;align-items:center;gap:.5rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem}.hash-copy{border:1px solid var(--border);background:var(--surface);border-radius:4px;padding:.15rem .45rem;font-size:.7rem;cursor:pointer}.verify-pass{display:inline-flex;align-items:center;gap:.4rem;color:var(--muted);font-size:.875rem;margin-top:.75rem}.verify-fail{margin-top:1rem;padding:1rem 1.1rem;border:2px solid var(--error);background:#fdecec;color:var(--error);border-radius:4px;font-weight:600}.verify-fail p{margin:.35rem 0 0;font-weight:400}.skeleton-row td{height:2rem;background:linear-gradient(90deg,#eceae6 25%,#f7f6f4 50%,#eceae6 75%);background-size:200% 100%}.entry-type-reversal{color:var(--error);font-weight:500}.reversal-link{border:none;background:none;padding:0;color:var(--accent);cursor:pointer;font:inherit;text-decoration:underline;text-underline-offset:2px}.reversal-link:hover{color:var(--text)}.ledger-row-highlight{background:var(--accent-soft);outline:2px solid var(--accent);outline-offset:-2px}.stack{display:grid;grid-gap:.75rem;gap:.75rem}.row-between{display:flex;justify-content:space-between;align-items:center;gap:1rem}.inline-form{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.link-button{border:none;background:none;padding:0;color:var(--accent);cursor:pointer;font:inherit;text-decoration:underline;text-underline-offset:2px}.field-error{font-size:.875rem;margin:0}.banner.success{background:#edf7ee;border:1px solid #5f8f63;color:#2f5d33}.export-toast{position:fixed;right:1.5rem;bottom:1.5rem;z-index:20;max-width:24rem;margin-bottom:0;box-shadow:0 8px 24px rgba(31,30,28,.12);display:flex;flex-direction:column;gap:.5rem}.export-toast a{font-weight:600}table{width:100%;border-collapse:collapse;font-size:.875rem}table td,table th{border-bottom:1px solid var(--border);padding:.65rem .5rem;text-align:left}table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}button[type=button],button[type=submit],input{border:1px solid var(--border);border-radius:4px;padding:.6rem .75rem;background:var(--surface)}button[type=submit]{background:var(--accent);color:#fff;border-color:var(--accent);cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.allocation-preview{background:var(--info-soft);border:1px solid var(--info-border);border-radius:4px;padding:.75rem 1rem;margin-bottom:1rem}.allocation-preview-over{background:var(--warning-soft);border-color:var(--warning-border)}.headroom-indicator{background:var(--info-soft);border:1px solid var(--info-border);border-radius:4px;padding:.65rem .85rem;margin-bottom:1rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.headroom-indicator.headroom-error{border-color:var(--error);background:#fdf0f0;color:var(--error)}.money-input-row{display:flex;align-items:center;gap:.5rem}.money-input-row input{flex:1 1}.currency-adjacent{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--muted);font-size:.875rem}.tabular-nums{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.diff-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.5rem;gap:1.5rem;margin-bottom:1.5rem}@media (max-width:1279px){.diff-grid{grid-template-columns:1fr}}.financial-impact-preview{background:var(--info-soft);border:1px solid var(--info-border);border-radius:4px;padding:1rem 1.25rem;margin:1rem 0 1.5rem}.financial-impact-preview h2{font-size:.95rem;margin:0 0 .75rem}.financial-impact-preview ul{margin:0;padding-left:1.25rem}input.input-error{border-color:var(--error)}.section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.section-header h2{margin:0}.row-muted{color:var(--muted)}.field-group{border-left:3px solid var(--accent-soft);padding-left:1rem;margin:1rem 0}.helper-text{color:var(--muted);margin:0 0 1rem}.field-error{color:var(--error);margin:0 0 .75rem;font-size:.9rem}.tier-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.75rem;gap:.75rem;margin-bottom:.5rem}.form-actions{display:flex;gap:.75rem;margin-top:1rem}