:root{--font-family-primary:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;--color-page:#fff8f3;--color-panel:#fff;--color-panel-soft:#fef2e3;--color-panel-elevated:#f9ecdd;--color-panel-highlight:#f3e6d8;--color-text-primary:#201b12;--color-text-secondary:#504534;--color-text-tertiary:#837561;--color-text-inverse:#fff;--color-border-subtle:#d5c4ad;--color-border-strong:#837561;--color-brand:#d99a00;--color-brand-strong:#7d5700;--color-brand-soft:#ffdeaa;--color-brand-dark-text:#503700;--color-sidebar:#fff8f3;--color-sidebar-text:#201b12;--color-link:#00639c;--color-secondary:#00639c;--color-secondary-soft:#cee5ff;--color-secondary-container:#7abefd;--color-success:#006d40;--color-success-strong:#00522f;--color-success-soft:#e7f7ee;--color-success-text:#002110;--color-warning:#d99a00;--color-warning-soft:#ffdeaa;--color-danger:#ba1a1a;--color-danger-soft:#ffdad6;--color-danger-text:#93000a;--color-overlay:#201b127a;--color-info:#00639c;--chart-amber:#d99a00;--chart-blue:#00639c;--chart-violet:#8b5cf6;--chart-green:#006d40;--chart-red:#ba1a1a;--shadow-soft:0 1px 3px #201b120d, 0 12px 32px #201b1212;--shadow-subtle:0 1px 2px #201b120f;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:9999px;--space-page:24px}.panel.membership-panel,.panel.reconciliation-panel,.panel.vehicle-panel,.panel.vehicle-editor-panel{margin-top:16px}.membership-heading,.reconciliation-heading,.vehicle-heading{align-items:center;gap:16px}.membership-form,.reconciliation-form,.vehicle-form{border-top:1px solid var(--color-border-subtle);background:var(--color-panel-soft);padding:16px}.membership-form fieldset,.reconciliation-form fieldset,.vehicle-form fieldset{border:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;min-width:0;margin:0;padding:0;display:grid}.membership-form label,.reconciliation-form label,.vehicle-form label{min-width:0;color:var(--color-text-secondary);gap:6px;font-weight:700;display:grid}.membership-form input,.membership-form select,.reconciliation-form input,.reconciliation-form select,.vehicle-form input,.vehicle-form select,.vehicle-form textarea{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-panel);width:100%;min-height:40px;color:var(--color-text-primary);padding:8px 10px}.vehicle-form textarea{resize:vertical;min-height:88px}.vehicle-description{grid-column:1/-1}.membership-mode{flex-wrap:wrap;grid-column:1/-1;gap:8px;display:flex}.membership-mode button.active{border-color:var(--color-brand-strong);background:var(--color-brand-soft);color:var(--color-brand-strong);box-shadow:inset 0 0 0 1px var(--color-brand)}.membership-form-actions,.vehicle-form-actions{grid-column:1/-1;align-items:center;gap:8px;display:flex}.membership-table-wrap strong,.reconciliation-table-wrap strong{color:var(--color-text-primary)}.membership-cell-note{color:var(--color-text-tertiary);margin-top:3px;font-size:12px;font-weight:500;display:block}.relationship-pill{background:var(--color-panel-soft);min-height:26px;color:var(--color-text-secondary);white-space:nowrap;border-radius:999px;align-items:center;padding:4px 9px;font-size:12px;font-weight:800;display:inline-flex}.relationship-owner,.relationship-co_owner{background:var(--color-brand-soft);color:var(--color-brand-strong)}.relationship-tenant,.relationship-authorized{background:color-mix(in srgb, var(--color-info) 12%, var(--color-panel));color:var(--color-info)}.relationship-spouse,.relationship-child,.relationship-parent,.relationship-sibling{background:var(--color-success-soft);color:var(--color-success)}.membership-edit-form{border-top:1px solid var(--color-border-subtle)}.membership-edit-form strong{align-self:center}.reconciliation-heading{flex-wrap:wrap}.reconciliation-tabs{flex-wrap:wrap;gap:6px;display:flex}.reconciliation-tabs a{border:1px solid var(--color-border-subtle);background:var(--color-panel);color:var(--color-text-secondary);border-radius:999px;padding:7px 11px;font-weight:700}.reconciliation-tabs a:hover,.reconciliation-tabs a.active{border-color:var(--color-brand);background:var(--color-brand-soft);color:var(--color-brand-strong)}.reconciliation-form-title{grid-column:1/-1;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.reconciliation-form-title div,.reconciliation-created-resident{gap:4px;display:grid}.reconciliation-form-title span,.reconciliation-created-resident span{color:var(--color-text-secondary);font-size:12px}.reconciliation-created-resident{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-panel);padding:10px}@media (max-width:760px){.membership-heading,.reconciliation-heading,.vehicle-heading,.reconciliation-form-title{flex-direction:column;align-items:stretch}.membership-form fieldset,.reconciliation-form fieldset,.vehicle-form fieldset{grid-template-columns:1fr}.membership-form-actions,.vehicle-form-actions,.membership-mode,.reconciliation-form-title{grid-column:1}.membership-table-wrap,.reconciliation-table-wrap,.vehicle-table-wrap{overflow-x:auto}.membership-table-wrap table,.reconciliation-table-wrap table,.vehicle-table-wrap table{min-width:760px}}*{box-sizing:border-box}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}html{background:var(--color-page)}body{background:linear-gradient(180deg, #ffffffeb, #fef2e380 260px), var(--color-page);color:var(--color-text-primary);font-family:var(--font-family-primary);margin:0;font-size:14px;line-height:1.45}a{color:inherit;text-decoration:none}button,.button,input,select,textarea{font:inherit}button,.button{border:1px solid var(--color-brand);border-radius:var(--radius-sm);background:var(--color-brand);color:#fff;cursor:pointer;justify-content:center;align-items:center;gap:8px;min-height:36px;padding:8px 14px;font-weight:600;transition:background .14s,border-color .14s,color .14s,box-shadow .14s,transform .14s;display:inline-flex}button:hover,.button:hover{border-color:var(--color-brand-strong);background:#efb21d;box-shadow:0 8px 18px #d99a002e}button:active,.button:active{transform:translateY(1px)}button.secondary,.button.secondary{border-color:var(--color-border-strong);color:var(--color-text-primary);background:#fff}button.secondary:hover,.button.secondary:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-subtle);background:#f7fafc}button.danger,.button.danger{border-color:var(--color-danger);background:var(--color-danger);color:var(--color-text-inverse)}button.danger:hover,.button.danger:hover{border-color:var(--color-danger);background:var(--color-danger);box-shadow:0 8px 18px #d943432e}button.link-button{min-height:auto;color:var(--color-link);box-shadow:none;background:0 0;border:0;padding:0}button.link-button:hover{color:#0f4f7c;box-shadow:none;background:0 0}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.58}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #d99a0057}.admin-shell{grid-template-columns:264px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--color-border-subtle);background:var(--color-sidebar);height:100vh;color:var(--color-sidebar-text);padding-bottom:20px;transition:width .16s;position:sticky;top:0;overflow-y:auto}.sidebar.collapsed{width:88px}.brand-row{border-bottom:1px solid var(--color-border-subtle);justify-content:space-between;align-items:center;gap:12px;min-height:68px;padding:14px 16px;display:flex}.brand{min-width:0;color:var(--color-text-primary);align-items:center;gap:12px;display:flex}.brand-copy{min-width:0}.brand-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:16px;line-height:1.2;display:block;overflow:hidden}.brand span{color:var(--color-text-tertiary);letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:11px;font-weight:700;line-height:1.4;display:block;overflow:hidden}.brand-mark,.login-brand-mark{border-radius:var(--radius-md);color:#191200;letter-spacing:.02em;background:linear-gradient(135deg,#e5a500,#f4c94f);flex:none;place-items:center;width:38px;height:38px;font-size:12px;font-weight:900;display:grid;box-shadow:0 8px 18px #d99a0038}.sidebar-toggle{border-color:var(--color-border-subtle);min-width:34px;min-height:34px;color:var(--color-text-secondary);background:#fff;padding:0}.sidebar-toggle:hover{border-color:var(--color-brand);background:var(--color-brand-soft);color:var(--color-brand-strong)}.sidebar.collapsed .brand{justify-content:center}.sidebar.collapsed .brand-copy,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-chevron{display:none}.sidebar.collapsed .brand-row{flex-direction:column;align-items:center;padding-inline:12px}.nav-group{padding:4px 10px}.nav-group:first-of-type{margin-top:8px}.nav-parent,.nav-child{border-radius:var(--radius-md);align-items:center;gap:10px;display:flex}.nav-parent{width:100%;min-height:44px;color:var(--color-sidebar-text);cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;padding:10px 12px;font-size:14px;font-weight:700}.nav-parent-main{align-items:center;gap:10px;min-width:0;display:flex}.nav-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nav-link{justify-content:flex-start}.nav-chevron{color:var(--color-text-tertiary);font-size:17px;line-height:1}.nav-parent.active,.nav-child.active{background:var(--color-brand-soft);color:var(--color-brand-strong)}.nav-parent:hover,.nav-child:hover{background:var(--color-panel-elevated);color:var(--color-text-primary);box-shadow:none}.nav-parent.active:hover,.nav-child.active:hover{background:var(--color-brand-soft);color:var(--color-brand-strong);box-shadow:none}.nav-icon{flex:0 0 24px;place-items:center;width:24px;height:24px;display:grid}.nav-icon-svg{stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:20px;height:20px}.nav-children{gap:2px;padding:2px 0 2px 34px;display:grid}.nav-children[hidden]{display:none}.sidebar.collapsed .nav-parent{justify-content:center;padding-inline:12px}.nav-child{min-height:34px;color:var(--color-text-secondary);padding:7px 10px;font-size:13px;font-weight:600}.main{min-width:0}.topbar{border-bottom:1px solid var(--color-border-subtle);min-height:68px;padding:12px var(--space-page);z-index:10;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffeb;justify-content:space-between;align-items:center;gap:16px;display:flex;position:sticky;top:0}.building-picker,.user-menu{align-items:center;gap:10px;display:flex}.building-picker{min-width:min(340px,100%)}.building-picker label,.toolbar-label{color:var(--color-text-tertiary);letter-spacing:.05em;text-transform:uppercase;font-size:12px;font-weight:800}.building-picker select,.filter-bar input,.filter-bar select,.admin-form input,.admin-form select,.admin-form textarea,.login-form input{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);min-height:40px;color:var(--color-text-primary);background:#fff;padding:10px 14px;transition:border-color .14s,box-shadow .14s,background .14s}.building-picker select{min-width:210px;font-weight:700}.filter-bar input[type=search]{flex:280px;min-width:260px}.building-picker select:focus,.filter-bar input:focus,.filter-bar select:focus,.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus,.login-form input:focus{border-color:var(--color-brand);outline:none;box-shadow:0 0 0 4px #d99a0024}.user-copy{align-items:center;gap:8px;display:flex}.status-dot{background:var(--color-success);border-radius:999px;width:8px;height:8px;display:inline-block;box-shadow:0 0 0 4px #1f9d621f}.user-avatar{background:var(--color-brand);color:#fff;border-radius:999px;place-items:center;width:38px;height:38px;font-size:12px;font-weight:900;display:grid}.user-avatar.small{width:34px;height:34px;font-size:11px}.profile-menu{position:relative}.profile-trigger{cursor:pointer;border-radius:var(--radius-sm);align-items:center;gap:10px;padding:4px 8px;list-style:none;transition:background .14s;display:inline-flex}.profile-trigger:hover{background:var(--color-panel-soft)}.profile-trigger-user{text-align:right;flex-direction:column;align-items:flex-end;line-height:1.25;display:flex}.profile-trigger-user strong{color:var(--color-text-primary);font-size:13px;font-weight:600}.profile-trigger-user span{color:var(--color-text-tertiary);font-size:11px}.profile-trigger::-webkit-details-marker{display:none}.profile-trigger:focus-visible{outline-offset:2px;outline:2px solid #d99a008c}.profile-popover{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);z-index:22;background:#fff;width:min(280px,86vw);padding:12px;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 12px 36px #0f172a24}.profile-head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.profile-popover form{margin:0}.profile-popover .secondary{width:100%}.profile-popover .logout-button{border-color:var(--color-danger-soft);background:var(--color-danger-soft);color:var(--color-danger)}.profile-popover .logout-button:hover{border-color:var(--color-danger);background:var(--color-danger-soft);color:#b42323}.user-copy{flex-direction:column;align-items:flex-start;gap:1px}.user-copy strong{line-height:1.2}.user-copy span{color:var(--color-text-tertiary);font-size:12px}.content-header{padding:20px var(--space-page) 16px;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.content-header-copy{min-width:0}.breadcrumb-back,.breadcrumb-nav{color:var(--color-text-secondary);align-items:center;gap:6px;margin-bottom:6px;font-size:13px;font-weight:600;display:inline-flex}.breadcrumb-separator{color:var(--color-text-tertiary);font-size:12px}.breadcrumb-back:hover{color:var(--color-link)}.content-header p{color:var(--color-text-secondary);margin:0 0 4px;font-size:13px;font-weight:600}.content-header h1{letter-spacing:-.01em;color:var(--color-text-primary);margin:0;font-size:26px;font-weight:700;line-height:1.2}.content-header small{color:var(--color-text-tertiary);margin-top:6px;font-size:13px;font-weight:500;display:inline-flex}.task-description{max-width:680px;color:var(--color-text-secondary);margin-top:8px;font-weight:650;display:block}.dashboard-charts,.metrics-grid,.split-grid,.summary-grid{padding:0 var(--space-page) 16px;gap:14px;display:grid}.dashboard-charts{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.chart-card{border:1px solid var(--color-border-subtle);background:var(--color-panel);min-height:318px;box-shadow:var(--shadow-soft);border-radius:8px;align-content:start;gap:16px;padding:18px 18px 16px;display:grid;position:relative;overflow:hidden}.chart-card.revenue-card{grid-column:1/-1;min-height:420px}.chart-heading{justify-content:space-between;align-items:flex-start;gap:14px;min-width:0;display:flex}.chart-heading h2{color:var(--color-text-primary);margin:0;font-size:22px;font-weight:850;line-height:1.15}.chart-legend{color:var(--color-text-secondary);flex-wrap:wrap;justify-content:flex-end;gap:8px 14px;font-size:12px;font-weight:750;display:flex}.chart-legend.vertical{justify-content:stretch;gap:10px;width:min(230px,100%);min-width:170px;display:grid}.chart-legend span{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.chart-legend.vertical span{white-space:normal;grid-template-columns:10px minmax(0,1fr) auto;gap:3px 8px;display:grid}.chart-legend em{min-width:0;color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;font-style:normal;overflow:hidden}.chart-legend strong{color:var(--color-text-primary);grid-column:2;font-size:13px;line-height:1.2}.chart-legend small{color:var(--color-text-tertiary);background:#f4f7fb;border-radius:999px;grid-area:1/3/span 2;align-self:center;padding:5px 7px;font-size:11px;font-weight:800;line-height:1}.chart-legend i{border-radius:999px;flex:none;width:10px;height:10px;display:inline-block}.chart-summary-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.chart-summary-item{background:#f8fafc;border:1px solid #e7edf5;border-radius:8px;min-width:0;padding:12px}.chart-summary-item span{min-width:0;color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;font-size:12px;font-weight:800;display:flex;overflow:hidden}.chart-summary-item i{border-radius:999px;flex:none;width:9px;height:9px}.chart-summary-item strong{color:var(--color-text-primary);margin-top:8px;font-size:clamp(18px,2vw,26px);font-weight:850;line-height:1.05;display:block}.chart-plot,.donut-plot{min-width:0;position:relative}.chart-svg{width:100%;min-height:240px;display:block}.revenue-svg{min-height:272px}.chart-grid-line{stroke:#e6edf5;stroke-width:1px}.chart-baseline{stroke:#d9e2ee;stroke-width:1.2px}.chart-axis-label{fill:var(--color-text-tertiary);font-size:11px;font-weight:700}.chart-axis-label-strong{fill:var(--color-text-secondary);font-size:12px;font-weight:850}.chart-bar{opacity:.9;transition:opacity .16s,filter .16s,transform .16s}.chart-line{fill:none;stroke:var(--chart-amber);stroke-linecap:round;stroke-linejoin:round;stroke-width:3.5px}.chart-point{fill:var(--chart-amber);stroke:#fff;stroke-width:2.5px;transition:filter .16s,r .16s}.chart-hit-target{cursor:pointer;outline:none}.chart-hit-target:hover,.chart-hit-target:focus-visible{filter:drop-shadow(0 6px 10px #0f172a2e);opacity:1}.chart-hit-target:focus-visible{stroke:var(--color-text-primary);stroke-width:2px}.chart-tooltip{z-index:2;pointer-events:none;min-width:132px;color:var(--color-text-primary);background:#fff;border:1px solid #dbe4ef;border-radius:8px;padding:9px 10px;position:absolute;transform:translate(-50%,calc(-100% - 12px));box-shadow:0 14px 30px #0f172a29}.chart-tooltip:after{content:"";background:#fff;border-bottom:1px solid #dbe4ef;border-right:1px solid #dbe4ef;width:10px;height:10px;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)rotate(45deg)}.chart-tooltip span,.chart-tooltip strong,.chart-tooltip small{display:block}.chart-tooltip span{color:var(--color-text-secondary);font-size:12px;font-weight:800}.chart-tooltip strong{color:var(--color-text-primary);margin-top:4px;font-size:15px;font-weight:850}.chart-tooltip small{color:var(--color-text-tertiary);margin-top:5px;padding-left:12px;font-size:11px;font-weight:750;position:relative}.chart-tooltip small:before{background:var(--tooltip-color);content:"";border-radius:999px;width:7px;height:7px;position:absolute;top:4px;left:0}.donut-layout{justify-content:space-between;align-items:center;gap:22px;min-height:226px;display:flex}.donut-svg{flex:none;width:min(204px,44vw);display:block}.donut-track{fill:none;stroke:#edf1f6;stroke-width:6.8px}.donut-segment{fill:none;pointer-events:stroke;stroke-linecap:butt;stroke-width:6.8px;transition:filter .16s,stroke-width .16s}.donut-segment:hover,.donut-segment:focus-visible{stroke-width:7.8px}.donut-total{fill:var(--color-text-primary);pointer-events:none;font-size:4.8px;font-weight:850}.donut-caption{fill:var(--color-text-tertiary);pointer-events:none;font-size:2.7px;font-weight:800}.metrics-grid{grid-template-columns:repeat(5,minmax(160px,1fr));gap:16px}.metric-card{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-panel);min-height:128px;box-shadow:var(--shadow-subtle);color:var(--color-text-primary);flex-direction:column;justify-content:space-between;padding:16px;display:flex;position:relative}.metric-icon{background:var(--color-panel-soft);width:32px;height:32px;color:var(--color-brand-strong);border-radius:999px;place-items:center;display:grid;position:absolute;top:16px;right:16px}.metric-card span{color:var(--color-text-secondary);padding-right:36px;font-size:13px;font-weight:600;display:block}.metric-card strong{color:var(--color-text-primary);margin-top:12px;font-size:clamp(20px,1.8vw,26px);font-weight:700;line-height:1.15;display:block}.metric-card small{color:var(--color-text-tertiary);margin-top:6px;font-size:12px;font-weight:500;display:block}.split-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split-grid>.panel{min-width:0;margin:0}.panel,.filter-bar,.route-actions,.notice{margin:0 var(--space-page) 16px}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.summary-card{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-panel);box-shadow:var(--shadow-subtle);flex-direction:column;padding:16px;display:flex}.summary-card span{color:var(--color-text-secondary);font-size:13px;font-weight:800}.summary-card strong{margin-top:8px;font-size:24px;line-height:1.1}.summary-card small{color:var(--color-text-tertiary);margin-top:7px;font-size:12px;font-weight:700;display:block}.balance-summary.debt{border-color:color-mix(in srgb, var(--color-danger) 28%, var(--color-border-subtle))}.balance-summary.credit{border-color:color-mix(in srgb, var(--color-success) 30%, var(--color-border-subtle))}.balance-summary.debt strong,.opening-balance.debt{color:var(--color-danger)}.balance-summary.credit strong,.opening-balance.credit{color:var(--color-success)}.debt-summary .summary-card{border-top:3px solid var(--color-border-strong);min-width:0}.debt-summary .payment-summary{border-top-color:var(--color-success)}.debt-summary .closing-summary.debt{border-color:color-mix(in srgb, var(--color-danger) 30%, var(--color-border-subtle));border-top-color:var(--color-danger)}.debt-summary .closing-summary.debt strong{color:var(--color-danger)}.debt-summary .closing-summary.settled{border-top-color:var(--color-success)}.opening-balance,.money-cell{font-variant-numeric:tabular-nums;justify-content:flex-end;width:100%;font-weight:750;display:inline-flex}.opening-balance.settled{color:var(--color-text-tertiary)}.panel{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-panel);box-shadow:var(--shadow-soft);overflow:hidden}.panel-heading{border-bottom:1px solid var(--color-border-subtle);justify-content:space-between;align-items:center;gap:14px;padding:16px;display:flex}.panel-heading h2{margin:0;font-size:17px;font-weight:850;line-height:1.2}.panel-heading p{color:var(--color-text-tertiary);margin:4px 0 0;font-size:12px;font-weight:700}.route-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.content-header>.route-actions{box-shadow:none;background:0 0;border:0;margin:0;padding:0}.receipt-route-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.action-menu{position:relative}.action-menu>summary{list-style:none}.action-menu>summary::-webkit-details-marker{display:none}.action-menu-trigger{justify-content:space-between;min-width:144px}.action-menu-chevron{transition:transform .14s}.action-menu[open] .action-menu-chevron{transform:rotate(180deg)}.action-menu-popover{z-index:30;border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-panel);width:max-content;min-width:220px;box-shadow:var(--shadow-soft);padding:6px;display:grid;position:absolute;top:calc(100% + 8px);left:0;overflow:hidden}.action-menu-popover.align-end{left:auto;right:0}.action-menu-popover a{border-radius:var(--radius-sm);color:var(--color-text-primary);white-space:nowrap;padding:10px 12px;font-weight:700}.action-menu-popover a:hover,.action-menu-popover a:focus-visible{background:var(--color-brand-soft);color:var(--color-text-primary);outline:none}.route-actions .toolbar-label,.filter-bar .toolbar-label{margin-right:2px}.filter-bar{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-panel);box-shadow:var(--shadow-subtle);margin:0 var(--space-page) 16px;grid-template-columns:minmax(260px,1fr) repeat(3,minmax(150px,auto)) auto;align-items:center;gap:12px;padding:16px;display:grid}.ledger-filter-bar{grid-template-columns:minmax(240px,1.4fr) repeat(4,minmax(135px,1fr)) auto}.interaction-filter-bar{grid-template-columns:repeat(4,minmax(150px,1fr)) auto}.debt-filter-bar{grid-template-columns:minmax(220px,1.5fr) repeat(4,minmax(130px,1fr)) auto}.debt-filter-bar .filter-actions{grid-column:-2/-1}.excess-filter-bar{grid-template-columns:minmax(260px,1.5fr) repeat(3,minmax(150px,1fr)) auto}.excess-detail-filter-bar{grid-template-columns:repeat(4,minmax(150px,1fr))}.excess-detail-filter-bar .filter-search-field{grid-column:span 2}.excess-detail-filter-bar .filter-actions{justify-content:flex-end}.filter-heading{grid-column:1/-1;justify-content:space-between;align-items:center;gap:12px;display:flex}.filter-count{color:var(--color-link);font-size:12px;font-weight:750}.filter-search-field{min-width:0;color:var(--color-text-tertiary);align-items:center;display:flex;position:relative}.filter-search-field>svg{pointer-events:none;position:absolute;left:12px}.filter-search-field input[type=search]{width:100%;min-width:0;padding-left:38px}.filter-control,.filter-control input,.filter-control select{width:100%;min-width:0}.filter-actions{white-space:nowrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.table-wrap{scrollbar-gutter:stable;overflow-x:auto}.table-wrap:focus-visible{outline-offset:-3px;outline:3px solid #d99a0047}table{border-collapse:separate;border-spacing:0;white-space:nowrap;width:100%}th,td{border-bottom:1px solid var(--color-border-subtle);text-align:left;vertical-align:middle;padding:12px 16px}th{background:var(--color-panel-soft);color:var(--color-text-secondary);letter-spacing:.02em;text-transform:uppercase;font-size:12px;font-weight:700}td{color:var(--color-text-primary);font-size:13px}tbody tr:hover td{background:var(--color-panel-soft)}tbody tr:last-child td{border-bottom:0}.ledger-summary-card{border-top:3px solid var(--color-border-strong);align-items:flex-start;gap:12px;min-width:0;display:flex}.ledger-summary-card.receipt{border-top-color:var(--color-success)}.ledger-summary-card.payment{border-top-color:var(--color-danger)}.ledger-summary-card.closing{border-top-color:var(--color-brand)}.ledger-summary-card>div:last-child{min-width:0}.ledger-summary-icon{border-radius:var(--radius-md);background:var(--color-panel-soft);width:36px;height:36px;color:var(--color-text-secondary);flex:none;place-items:center;display:grid}.ledger-summary-card.receipt .ledger-summary-icon{background:var(--color-success-soft);color:var(--color-success)}.ledger-summary-card.payment .ledger-summary-icon{background:var(--color-danger-soft);color:var(--color-danger)}.ledger-summary-card.closing .ledger-summary-icon{background:var(--color-brand-soft);color:var(--color-brand-strong)}.ledger-summary-card strong{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;display:block}.ledger-panel-heading{align-items:flex-start}.ledger-table{min-width:1120px}.ledger-table .numeric-column{text-align:right}.ledger-money{font-variant-numeric:tabular-nums;justify-content:flex-end;width:100%;font-weight:780;display:inline-flex}.ledger-money.receipt{color:var(--color-success)}.ledger-money.payment{color:var(--color-danger)}.ledger-money.balance{color:var(--color-text-primary)}.voucher-code{color:var(--color-link);font-weight:800}.ledger-description{white-space:normal;width:min(360px,32vw);min-width:240px;display:inline-block}.ledger-table .reversal-row td{background:var(--color-danger-soft)}.ledger-table .reversal-row:hover td{background:color-mix(in srgb, var(--color-danger-soft) 78%, var(--color-panel))}.interaction-report-dashboard{gap:16px;margin-bottom:16px;display:grid}.interaction-metrics{padding:0 var(--space-page);grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.interaction-metric{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-panel);min-width:0;box-shadow:var(--shadow-soft);color:var(--color-text-secondary);justify-content:space-between;align-items:center;gap:18px;padding:18px;display:flex}.interaction-metric.announcement{border-top:3px solid var(--color-success)}.interaction-metric.event{border-top:3px solid var(--color-brand)}.interaction-metric.comment{border-top:3px solid var(--color-info)}.interaction-metric>div{gap:4px;min-width:0;display:grid}.interaction-metric strong{color:var(--color-text-primary);font-variant-numeric:tabular-nums;font-size:clamp(24px,2.8vw,36px);line-height:1}.interaction-metric span{color:var(--color-text-primary);font-size:14px;font-weight:820}.interaction-metric small{color:var(--color-text-tertiary);font-size:12px;font-weight:700}.interaction-metric>svg{color:var(--color-text-tertiary);flex:none}.interaction-section-heading{margin:0 var(--space-page);justify-content:space-between;align-items:end;gap:16px;padding-top:4px;display:flex}.interaction-section-heading span{color:var(--color-text-tertiary);text-transform:uppercase;font-size:12px;font-weight:800}.interaction-section-heading h2{margin:3px 0 0;font-size:20px}.interaction-context{color:var(--color-text-secondary);align-items:center;gap:7px;font-size:12px;font-weight:750;display:inline-flex}.interaction-report-dashboard .dashboard-charts{grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:0}.interaction-report-dashboard .chart-card{min-height:340px}.link-button{color:var(--color-link);background:0 0;border:0;min-height:auto;padding:0}.table-actions{align-items:center;gap:4px;display:flex}.table-actions-cell,.table-actions-heading{z-index:2;border-left:1px solid var(--color-border-subtle);background:var(--color-panel);position:sticky;right:0;box-shadow:-8px 0 14px #16203308}.table-actions-heading{z-index:3;background:var(--color-panel-soft)}.row-action{border-radius:var(--radius-sm);min-height:32px;color:var(--color-link);white-space:nowrap;background:0 0;border:0;align-items:center;gap:5px;padding:6px 8px;font-weight:800;display:inline-flex}.row-action:hover{background:var(--color-panel-soft);box-shadow:none}.row-action.danger-link{color:var(--color-danger)}.row-action.danger-link:hover{background:var(--color-danger-soft);color:var(--color-danger)}.table-actions form{margin:0}.table-empty-state{text-align:center;height:140px}.table-empty-state strong,.table-empty-state span{display:block}.table-empty-state span{color:var(--color-text-tertiary);margin-top:5px}.debt-panel-heading{min-height:70px}.debt-selection-actions{justify-content:flex-end;align-items:center;gap:12px;display:flex}.debt-selection-actions>span{color:var(--color-text-secondary);font-size:12px;font-weight:750}.debt-reminder-draft{border-bottom:1px solid color-mix(in srgb, var(--color-success) 25%, var(--color-border-subtle));background:var(--color-success-soft);color:var(--color-text-secondary);align-items:flex-start;gap:10px;padding:12px 16px;display:flex}.debt-reminder-draft>svg{color:var(--color-success);flex:none}.debt-reminder-draft strong{color:var(--color-text-primary)}.debt-reminder-draft a{color:var(--color-link);font-weight:800;text-decoration:underline}.debt-reminder-dialog{z-index:1000;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-panel);width:min(620px,100vw - 32px);max-height:min(760px,100vh - 32px);box-shadow:0 24px 80px var(--color-overlay);color:var(--color-text-primary);padding:0;position:fixed;top:50%;overflow:auto;transform:translateY(-50%)}.debt-reminder-dialog-heading,.debt-reminder-dialog-actions{border-bottom:1px solid var(--color-border-subtle);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.debt-reminder-dialog-heading h2{margin:0;font-size:19px}.debt-reminder-dialog-heading .icon-button{border-color:var(--color-border-subtle);background:var(--color-panel);color:var(--color-text-primary)}.debt-reminder-confirmation{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:18px 20px 8px;display:grid}.debt-reminder-confirmation p{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-panel-soft);margin:0;padding:12px}.debt-reminder-recipients{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);gap:0;max-height:260px;margin:12px 20px;padding:0;list-style:none;display:grid;overflow:auto}.debt-reminder-recipients li{border-bottom:1px solid var(--color-border-subtle);justify-content:space-between;gap:16px;padding:10px 12px;display:flex}.debt-reminder-recipients li:last-child{border-bottom:0}.debt-reminder-recipients small,.debt-reminder-dialog details{color:var(--color-text-secondary)}.debt-reminder-dialog details{margin:12px 20px 20px}.debt-reminder-dialog-actions{border-top:1px solid var(--color-border-subtle);border-bottom:0;justify-content:flex-end}.spin{animation:.9s linear infinite debt-reminder-spin}@keyframes debt-reminder-spin{to{transform:rotate(360deg)}}.debt-table-wrap{min-height:180px}.debt-table-scroll-hint{border-bottom:1px solid var(--color-border-subtle);background:var(--color-panel-soft);color:var(--color-text-tertiary);margin:0;padding:9px 16px;font-size:12px;font-weight:700;display:none}.debt-report-table .numeric-column{text-align:right}.debt-report-table tbody tr.selected td{background:var(--color-brand-soft)}.debt-report-table tbody tr.selected:hover td{background:color-mix(in srgb, var(--color-brand-soft) 78%, var(--color-panel))}.debt-report-table input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-brand-strong);margin:0}.debt-select-cell,.debt-index-cell{text-align:center;width:48px}.debt-money,.debt-balance{font-variant-numeric:tabular-nums;white-space:nowrap;justify-content:flex-end;width:100%;display:inline-flex}.debt-money{font-weight:700}.debt-balance{flex-direction:column;align-items:flex-end;gap:2px}.debt-balance strong{font-size:13px}.debt-balance small{color:var(--color-text-tertiary);font-size:11px;font-weight:750}.debt-balance.outstanding strong{color:var(--color-danger)}.debt-balance.credit strong,.debt-balance.credit small,.debt-balance.settled small{color:var(--color-success)}.excess-summary,.excess-ledger-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.excess-summary .summary-card,.excess-ledger-summary .summary-card{border-top:3px solid var(--color-border-strong);min-width:0}.excess-summary .excess-total-card,.excess-ledger-summary .ledger-increase-card{border-top-color:var(--color-success)}.excess-summary .excess-total-card strong,.excess-ledger-summary .ledger-increase-card strong,.excess-ledger-summary .ledger-net-card.increase strong{color:var(--color-success)}.excess-ledger-summary .ledger-decrease-card{border-top-color:var(--color-brand)}.excess-ledger-summary .ledger-decrease-card strong,.excess-ledger-summary .ledger-net-card.decrease strong{color:var(--color-brand-strong)}.excess-panel-heading{min-height:70px}.report-readonly-badge{border:1px solid var(--color-border-subtle);background:var(--color-panel-soft);color:var(--color-text-secondary);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-size:12px;font-weight:800;display:inline-flex}.excess-table-wrap{min-height:190px}.excess-payment-table,.excess-ledger-table{min-width:980px}.excess-ledger-table{min-width:1320px}.excess-payment-table .numeric-column,.excess-ledger-table .numeric-column{text-align:right}.apartment-code,.voucher-code,.date-cell{white-space:nowrap}.apartment-code{color:var(--color-text-primary);font-variant-numeric:tabular-nums}.apartment-reference-link{color:var(--color-link);font-variant-numeric:tabular-nums;text-underline-offset:3px;white-space:nowrap;font-weight:750;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;display:inline-flex}.apartment-reference-link:hover{text-decoration-color:currentColor}.voucher-code{max-width:190px;color:var(--color-link);text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;font-weight:750;display:inline-flex;overflow:hidden}.muted-cell{color:var(--color-text-tertiary)}.service-balance-list{flex-wrap:wrap;gap:6px;min-width:260px;display:flex}.service-balance-list>span{border:1px solid var(--color-border-subtle);background:var(--color-panel-soft);color:var(--color-text-secondary);border-radius:999px;align-items:center;gap:7px;padding:5px 8px;font-size:11px;font-weight:700;display:inline-flex}.service-balance-list>span strong{color:var(--color-success);font-variant-numeric:tabular-nums}.service-balance-list>span.decrease strong{color:var(--color-brand-strong)}.excess-balance{color:var(--color-success);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px}.excess-row-actions{justify-content:flex-end}.primary-row-action{background:var(--color-brand-soft);color:var(--color-text-primary)}.primary-row-action:hover,.primary-row-action:focus-visible{background:var(--color-brand);color:var(--color-ink-on-brand)}.ledger-index strong,.ledger-index small{display:block}.ledger-index small{color:var(--color-text-tertiary);margin-top:2px;font-size:10px}.ledger-description{max-width:240px;color:var(--color-text-secondary);line-height:1.4;display:inline-block}.ledger-movement{font-variant-numeric:tabular-nums;white-space:nowrap;justify-content:flex-end;align-items:center;gap:4px;font-weight:850;display:inline-flex}.ledger-movement.increase{color:var(--color-success)}.ledger-movement.decrease{color:var(--color-brand-strong)}.meter-image-empty{color:var(--color-text-tertiary);font-weight:700}.template-download-link{max-width:240px;color:var(--color-link);align-items:center;gap:9px;text-decoration:none;display:inline-flex}.template-download-link>span{min-width:0;display:grid}.template-download-link strong{font-size:13px}.template-download-link small{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:500;overflow:hidden}.template-download-link:hover strong{text-decoration:underline}.template-download-link:focus-visible{outline:3px solid var(--color-brand-soft);outline-offset:3px;border-radius:6px}.template-file-empty{color:var(--color-text-secondary);font-size:13px}.meter-image-link{max-width:220px;color:var(--color-link);align-items:center;gap:9px;display:inline-flex}.meter-image-link:hover strong,.meter-image-link:focus-visible strong{text-underline-offset:3px;text-decoration:underline}.meter-image-link:focus-visible{border-radius:var(--radius-sm);outline:3px solid var(--color-brand-soft);outline-offset:3px}.meter-image-link>span,.meter-image-link strong,.meter-image-link small{min-width:0;display:block}.meter-image-link small{max-width:150px;color:var(--color-text-tertiary);text-overflow:ellipsis;font-size:11px;font-weight:650;overflow:hidden}.meter-image-thumbnail{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-panel-soft);object-fit:cover;flex:0 0 44px;width:44px;height:44px}.status-pill{border-radius:999px;align-items:center;min-height:24px;padding:3px 9px;font-size:12px;font-weight:850;display:inline-flex}.status-pill.success{background:var(--color-success-soft);color:var(--color-success)}.status-pill.warning{background:var(--color-warning-soft);color:var(--color-warning)}.status-pill.danger{background:var(--color-danger-soft);color:var(--color-danger)}.status-pill.neutral{color:var(--color-text-secondary);background:#eef2f6}.admin-form .json-route-form-fields,.import-box{border:0;gap:14px;min-width:0;margin:0;padding:16px;display:grid}.import-intro{color:var(--color-text-secondary);align-items:flex-start;gap:12px;display:flex}.import-intro>svg{color:var(--color-link);flex:none;margin-top:1px}.import-intro strong,.import-intro span{display:block}.import-intro strong{color:var(--color-text-primary);font-size:14px}.import-intro span{color:var(--color-text-tertiary);margin-top:4px;font-size:12px;font-weight:650}.import-box .file-picker{border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-panel-soft);min-height:84px;color:var(--color-text-secondary);cursor:pointer;text-align:center;justify-content:center;align-items:center;gap:10px;padding:18px;transition:border-color .14s,background-color .14s,color .14s;display:flex;position:relative}.import-box .file-picker:hover{border-color:var(--color-brand);background:var(--color-brand-soft);color:var(--color-text-primary)}.import-box .file-picker:focus-within{border-color:var(--color-brand);box-shadow:0 0 0 3px #d99a0033}.file-picker input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.import-form-actions{flex-wrap:wrap;gap:8px;display:flex}.admin-form .json-route-form-fields{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px;min-width:0;margin:0;padding:22px;display:grid}.admin-form label,.import-box label{color:var(--color-text-secondary);gap:7px;font-weight:800;display:grid}.field-label{align-items:center;gap:4px;display:inline-flex}.required-mark{color:var(--color-danger)}.field-help{color:var(--color-text-tertiary);font-size:12px;font-weight:600}.admin-form input:disabled,.admin-form select:disabled,.admin-form textarea:disabled{border-color:var(--color-border-subtle);background:var(--color-panel-soft);color:var(--color-text-primary);opacity:1}.admin-form textarea{resize:vertical;min-height:112px}.admin-form .route-actions,.form-actions{grid-column:1/-1}.form-actions{border-top:1px solid var(--color-border-subtle);justify-content:flex-end;gap:10px;margin-top:4px;padding-top:18px;display:flex}.record-panel{max-width:1180px}.repair-filter-disclosure{margin:0 var(--space-page) 16px}.repair-filter-disclosure>summary{list-style:none}.repair-filter-disclosure>summary::-webkit-details-marker{display:none}.repair-filter-toggle{justify-content:space-between;min-width:118px}.repair-filter-toggle strong,.selection-count{background:var(--color-brand-soft);min-width:21px;min-height:21px;color:var(--color-text-primary);border-radius:999px;place-items:center;padding:2px 6px;font-size:11px;font-weight:850;display:inline-grid}.repair-filter-disclosure[open] .repair-filter-toggle .action-menu-chevron{transform:rotate(180deg)}.repair-filter-disclosure>.filter-bar{grid-template-columns:minmax(240px,1.5fr) repeat(3,minmax(150px,1fr)) auto;margin:8px 0 0}.repair-data-panel{overflow:visible}.repair-table-toolbar,.repair-table-footer{justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}.repair-table-toolbar{border-bottom:1px solid var(--color-border-subtle)}.repair-table-toolbar h2{margin:0;font-size:17px;font-weight:850}.repair-table-toolbar p{color:var(--color-text-tertiary);margin:4px 0 0;font-size:12px;font-weight:700}.repair-bulk-menu .action-menu-trigger{min-width:132px}.repair-bulk-menu .action-menu-popover button{border-radius:var(--radius-sm);width:100%;min-height:40px;box-shadow:none;color:var(--color-danger);background:0 0;border:0;justify-content:flex-start;padding:10px 12px}.repair-bulk-menu .action-menu-popover button:hover:not(:disabled),.repair-bulk-menu .action-menu-popover button:focus-visible{background:var(--color-danger-soft);color:var(--color-danger);outline:none}.repair-bulk-menu .action-menu-popover button:disabled{cursor:not-allowed;opacity:.48}.repair-data-panel .table-wrap{overflow:auto}.repair-data-panel table{min-width:1320px}.repair-data-panel tbody tr[data-selected=true] td{background:var(--color-brand-soft)}.repair-select-column{text-align:center;width:46px}.repair-select-column input{width:17px;height:17px;accent-color:var(--color-brand);cursor:pointer}.repair-select-column input:focus-visible{outline-offset:2px;outline:3px solid #d99a0047}.repair-id-cell{color:var(--color-text-secondary);font-variant-numeric:tabular-nums;font-weight:750}.repair-title-cell{white-space:normal;gap:4px;width:min(260px,28vw);display:grid}.repair-title-cell strong{color:var(--color-text-primary);line-height:1.35}.repair-title-cell small{color:var(--color-text-tertiary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.4;display:-webkit-box;overflow:hidden}.table-contact-link,.repair-attachment-link{color:var(--color-link);font-weight:750}.table-contact-link:hover,.repair-attachment-link:hover{text-underline-offset:3px;text-decoration:underline}.repair-table-footer{border-top:1px solid var(--color-border-subtle);min-height:50px;color:var(--color-text-secondary);font-size:12px;font-weight:700}.repair-table-footer strong{color:var(--color-link)}.repair-attachment-link{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-panel-soft);align-items:center;gap:8px;min-height:40px;padding:9px 11px;display:inline-flex}.repair-attachment-link.compact{background:0 0;border:0;min-height:auto;padding:0;font-size:12px}.empty-field-value{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-panel-soft);min-height:40px;color:var(--color-text-tertiary);align-items:center;padding:9px 11px;display:flex}@media (max-width:760px){.repair-filter-toggle{width:100%}.repair-filter-disclosure>.filter-bar{grid-template-columns:1fr}.repair-table-toolbar{flex-direction:column;align-items:stretch}.repair-bulk-menu,.repair-bulk-menu .action-menu-trigger{width:100%}.repair-data-panel table{min-width:0}.repair-data-panel thead{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.repair-data-panel tbody{gap:12px;padding:12px;display:grid}.repair-data-panel tbody tr{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-panel);box-shadow:var(--shadow-soft);grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;padding:14px;display:grid}.repair-data-panel tbody td{border:0;gap:4px;padding:0;display:grid}.repair-data-panel tbody td:before{content:attr(data-label);color:var(--color-text-tertiary);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:800}.repair-data-panel tbody td[data-column=select],.repair-data-panel tbody td[data-column=id]{grid-column:span 1}.repair-data-panel tbody td[data-column=title],.repair-data-panel tbody td[data-column=actions]{grid-column:1/-1}.repair-data-panel tbody td[data-column=actions]:before{margin-bottom:2px}.repair-title-cell{width:100%}.repair-title-cell small{-webkit-line-clamp:3}.repair-table-footer{flex-direction:column;align-items:flex-start}.repair-data-panel .table-actions{flex-wrap:wrap}.repair-data-panel .table-actions .row-action,.repair-data-panel .table-actions form{width:calc(50% - 4px)}}.form-pending-message{color:var(--color-text-secondary);text-align:right;grid-column:1/-1;font-size:12px;font-weight:750}.meter-image-field{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-panel-soft);grid-column:1/-1;gap:12px;min-width:0;margin:0;padding:16px;display:grid}.meter-image-field>legend{color:var(--color-text-primary);padding-inline:6px;font-weight:850}.meter-image-dropzone{border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-panel);grid-template-columns:minmax(150px,210px) minmax(0,1fr);align-items:center;gap:16px;min-height:150px;padding:14px;transition:border-color .14s,background .14s,box-shadow .14s;display:grid}.meter-image-dropzone.is-dragging{border-color:var(--color-brand);background:var(--color-brand-soft);box-shadow:0 0 0 4px #d99a0024}.meter-image-dropzone.is-disabled{background:var(--color-panel-soft);opacity:.72}.meter-image-preview,.meter-image-empty-state{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-panel-soft);place-items:center;min-height:120px;display:grid;overflow:hidden}.meter-image-preview:focus-visible{outline:3px solid var(--color-brand);outline-offset:2px}.meter-image-preview img{object-fit:contain;width:100%;height:160px;display:block}.meter-image-empty-state{color:var(--color-text-secondary);text-align:center;align-content:center;gap:4px;padding:16px}.meter-image-empty-state span,.meter-image-copy span{color:var(--color-text-tertiary);font-size:12px;font-weight:650}.meter-image-copy{gap:5px;min-width:0;display:grid}.meter-image-copy strong{overflow-wrap:anywhere}.meter-image-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.meter-image-upload{border:1px solid var(--color-brand);border-radius:var(--radius-sm);background:var(--color-brand);cursor:pointer;justify-content:center;align-items:center;min-height:38px;padding:8px 13px;position:relative;color:#fff!important;font-weight:800!important;display:inline-flex!important}.meter-image-upload:hover{border-color:var(--color-brand-strong);background:#efb21d}.meter-image-upload:focus-within{box-shadow:0 0 0 4px #d99a0024}.meter-image-upload.is-disabled{cursor:not-allowed;opacity:.55}.meter-image-upload input{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.meter-image-remove{color:var(--color-danger)!important}.meter-image-config-note,.meter-image-error{border-radius:var(--radius-sm);gap:3px;padding:10px 12px;font-size:12px;display:grid}.meter-image-config-note{border:1px solid var(--color-border-subtle);background:var(--color-warning-soft);color:var(--color-warning)}.meter-image-error{border:1px solid var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger);font-weight:750}.confirm-dialog{border-radius:var(--radius-md);width:min(460px,100vw - 32px);max-width:none;color:var(--color-text-primary);white-space:normal;background:0 0;border:0;padding:0}.confirm-dialog::backdrop{background:var(--color-overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-dialog-card{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-panel);box-shadow:var(--shadow-soft);grid-template-columns:auto minmax(0,1fr);gap:14px;padding:24px;display:grid;position:relative}.dialog-icon{background:var(--color-warning-soft);width:42px;height:42px;color:var(--color-warning);border-radius:999px;place-items:center;display:grid}.dialog-copy h2{margin:3px 30px 8px 0;font-size:19px}.dialog-copy p{color:var(--color-text-secondary);margin:0}.dialog-close{width:32px;min-height:32px;color:var(--color-text-secondary);background:0 0;border:0;padding:0;position:absolute;top:14px;right:14px}.dialog-close:hover{background:var(--color-panel-soft);box-shadow:none}.dialog-actions{grid-column:1/-1;justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.workflow-panel{border-left:4px solid var(--color-brand)}.meter-support-grid{margin:8px var(--space-page) 24px;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.meter-support-grid>.panel{min-width:0;margin:0}.meter-support-grid>.panel:last-child{grid-column:1/-1}.workflow-form{background:var(--color-panel-soft)}.workflow-span-2{grid-column:1/-1}.bill-line-editor{border-left:4px solid var(--color-brand)}.bill-line-edit-form{background:var(--color-panel-soft)}.bill-line-edit-table{grid-column:1/-1}.bill-line-edit-table table{min-width:980px}.bill-line-edit-table input[type=number],.bill-line-edit-table input[data-money-field]{width:120px;min-height:36px}.bill-line-edit-table input:focus-visible,.bill-line-editor select:focus-visible,.bill-line-editor textarea:focus-visible{outline:3px solid var(--color-info);outline-offset:2px}.bill-line-edit-table input:disabled{cursor:not-allowed;opacity:.55}.bill-line-editor .form-error{color:var(--color-danger);grid-column:1/-1;margin:0;font-weight:700}.receipt-voucher-workspace{max-width:1240px;box-shadow:var(--shadow-subtle)}.receipt-workspace-heading{padding:20px 22px}.receipt-workspace-heading h2{font-size:19px}.receipt-voucher-workspace .voucher-form{background:var(--color-panel);border:0;padding:24px 22px}.receipt-voucher-workspace .voucher-form input,.receipt-voucher-workspace .voucher-form select{min-height:44px}.receipt-voucher-workspace .voucher-form textarea{min-height:96px}.receipt-voucher-workspace .embedded-actions{border:0;border-top:1px solid var(--color-border-subtle);box-shadow:none;background:0 0;border-radius:0;justify-content:flex-end;margin:2px 0 0;padding:20px 0 0}.receipt-voucher-workspace .embedded-actions>*{min-height:44px}.receipt-workspace-empty{text-align:center;align-content:center;place-items:center;gap:8px;min-height:220px;padding:28px;display:grid}.receipt-workspace-empty strong{font-size:17px}.receipt-workspace-empty span{color:var(--color-text-secondary)}.receipt-workspace-empty .button{margin-top:10px}.receipt-voucher-workspace{max-width:none}.voucher-form-receipt{grid-template-columns:repeat(3,minmax(0,1fr))}.voucher-form-payment{grid-template-columns:repeat(4,minmax(0,1fr))}.voucher-span-all{grid-column:1/-1}.voucher-invoice-section{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-panel);min-width:0;overflow:hidden}.voucher-section-heading{border-bottom:1px solid var(--color-border-subtle);background:var(--color-panel-soft);justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:12px 16px;display:flex}.voucher-section-heading h3{margin:0;font-size:16px}.voucher-section-heading span{color:var(--color-text-tertiary);font-size:12px;font-weight:700}.voucher-invoice-table{border-collapse:collapse;width:100%;min-width:960px}.voucher-invoice-table th,.voucher-invoice-table td{border-bottom:1px solid var(--color-border-subtle);text-align:left;white-space:nowrap;padding:10px 12px}.voucher-invoice-table th{background:var(--color-panel-soft);color:var(--color-text-secondary);text-transform:uppercase;font-size:12px;font-weight:850}.voucher-invoice-table tbody tr:hover{background:var(--color-brand-soft)}.voucher-invoice-table input[type=checkbox]{width:18px;min-height:18px;accent-color:var(--color-brand)}.voucher-invoice-table input[type=number],.voucher-invoice-table input[data-money-field]{width:130px;min-height:34px}.voucher-table-empty{height:150px;color:var(--color-text-tertiary);font-weight:700;text-align:center!important}.voucher-balance-row td{background:var(--color-panel-soft);font-style:italic}.voucher-action-bar{border-top:1px solid var(--color-border-subtle);background:var(--color-brand-soft);flex-wrap:wrap;justify-content:center;gap:8px;padding:14px 16px;display:flex}.voucher-action-bar>*{min-height:40px}.voucher-other-form{grid-template-columns:minmax(280px,.95fr) minmax(360px,1.05fr);gap:24px 36px;padding:24px 22px;display:grid}.voucher-metadata-column,.voucher-line-column{align-content:start;gap:16px;min-width:0;display:grid}.voucher-other-form label{color:var(--color-text-secondary);gap:7px;font-weight:800;display:grid}.voucher-other-form input,.voucher-other-form select,.voucher-other-form textarea{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-panel);width:100%;min-height:44px;color:var(--color-text-primary);padding:8px 10px}.voucher-other-form textarea{resize:vertical;min-height:110px}.voucher-other-form input:focus,.voucher-other-form select:focus,.voucher-other-form textarea:focus{border-color:var(--color-brand);outline:none;box-shadow:0 0 0 4px #d99a0024}.voucher-line-list{gap:14px;display:grid}.voucher-line-item{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-panel-soft);grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;min-width:0;margin:0;padding:16px;display:grid;position:relative}.voucher-line-item legend{color:var(--color-text-tertiary);text-transform:uppercase;padding:0 6px;font-size:12px;font-weight:850}.voucher-line-remove{border-color:var(--color-border-subtle);background:var(--color-panel);width:32px;min-height:32px;color:var(--color-danger);padding:0;position:absolute;top:-12px;right:10px}.voucher-add-line{justify-self:start}.voucher-other-actions{grid-column:1/-1;justify-content:flex-end;margin:0 -22px -24px}.voucher-preview-backdrop{z-index:50;background:var(--color-overlay);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.voucher-preview{border-radius:var(--radius-md);background:var(--color-panel);width:min(560px,100%);box-shadow:var(--shadow-soft);padding:28px;position:relative}.voucher-preview h3{margin:6px 0 20px;font-size:22px}.voucher-preview dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 22px;display:grid}.voucher-preview dl>div{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:12px}.voucher-preview dt{color:var(--color-text-tertiary);font-size:12px;font-weight:800}.voucher-preview dd{margin:6px 0 0;font-weight:800}.voucher-preview-close{width:34px;min-height:34px;color:var(--color-text-secondary);background:0 0;border:0;padding:0;font-size:24px;position:absolute;top:12px;right:12px}.receipt-pagination{border:1px solid var(--color-border-subtle);border-radius:0 0 var(--radius-md) var(--radius-md);background:var(--color-panel);margin:-16px var(--space-page) 16px;color:var(--color-text-secondary);border-top:0;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;font-size:13px;font-weight:500;display:flex}.receipt-pagination>div{gap:8px;display:flex}.table-pagination{margin-top:-16px}.table-pagination .pagination-controls{flex-wrap:wrap;align-items:center}.page-link{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-panel);width:32px;min-height:32px;color:var(--color-text-secondary);justify-content:center;align-items:center;font-size:13px;font-weight:600;transition:border-color .14s,background .14s,color .14s;display:inline-flex}.page-link:hover{border-color:var(--color-brand);background:var(--color-panel-soft);color:var(--color-brand-strong)}.page-link.current{border-color:var(--color-brand);background:var(--color-brand);color:#fff}.page-link.disabled{opacity:.4;cursor:not-allowed}.pagination-ellipsis{min-width:20px;min-height:32px;color:var(--color-text-tertiary);justify-content:center;align-items:center;font-weight:700;display:inline-flex}.page-size-form,.page-size-form label{align-items:center;gap:8px;display:flex}.page-size-form{margin-left:8px}.page-size-form label>span{font-size:12px;font-weight:800}.page-size-form select{width:auto;min-width:72px;min-height:34px;padding-block:5px}.compact-button{min-height:34px;padding:6px 10px}.receipt-document{max-width:1160px;margin-inline:auto;padding:24px 28px 44px}.receipt-document-actions{justify-content:flex-end;gap:10px;margin-bottom:20px;display:flex}.receipt-paper{background:var(--color-panel);width:min(900px,100%);color:var(--color-text-primary);margin-inline:auto;padding:4px 0 24px;font-family:Georgia,Times New Roman,serif;font-size:16px;line-height:1.35;position:relative}.receipt-letterhead{grid-template-columns:1fr auto;align-items:start;gap:16px;display:grid}.receipt-letterhead strong{font-size:17px}.receipt-letterhead span{white-space:nowrap;padding-top:30px}.receipt-title{text-align:center;margin:26px 0 20px;font-size:28px;line-height:1.2}.receipt-party-details{width:min(780px,100% - 80px);margin:0 auto 12px}.receipt-party-details>div{grid-template-columns:minmax(330px,1fr) minmax(260px,1.2fr);gap:18px;padding:2px 0;display:grid}.receipt-party-details dt,.receipt-party-details dd{margin:0}.receipt-party-details dd{font-weight:700}.receipt-table-wrap{overflow-x:auto}.receipt-lines-table{border-collapse:collapse;border:1px solid;width:100%;min-width:680px}.receipt-lines-table th,.receipt-lines-table td{text-align:left;vertical-align:middle;border:1px solid;height:48px;padding:9px 11px}.receipt-lines-table th:first-child,.receipt-lines-table td:first-child{width:64px}.receipt-lines-table th:nth-child(3),.receipt-lines-table td:nth-child(3){width:132px}.receipt-lines-table th:nth-child(4),.receipt-lines-table td:nth-child(4){width:112px}.receipt-lines-table th strong,.receipt-lines-table th em{display:block}.receipt-lines-table th em,.receipt-signatures em{font-style:italic;font-weight:400}.receipt-lines-table tfoot th{text-align:center}.receipt-signatures{text-align:center;grid-template-columns:repeat(2,minmax(0,1fr));gap:140px;margin-top:42px;display:grid}.receipt-signatures div{align-content:start;gap:2px;min-height:130px;display:grid}.receipt-signatures span{align-self:end;font-weight:700}.receipt-cancelled-mark{z-index:1;border:4px double var(--color-danger);color:var(--color-danger);font-family:var(--font-sans);opacity:.22;pointer-events:none;white-space:nowrap;padding:8px 18px;font-size:34px;font-weight:900;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)rotate(-16deg)}.empty-state{color:var(--color-text-secondary);padding:20px 16px;font-weight:700}.link-button.danger-link{color:var(--color-danger)}.link-button.danger-link:hover,.link-button.danger-link:focus-visible{background:var(--color-danger-soft)}.embedded-actions{background:0 0}.notice{border:1px solid var(--color-border-subtle);border-left:4px solid var(--color-warning);border-radius:var(--radius-md);color:#694500;background:#fffaf0;padding:12px 14px;font-weight:700}.notice.success{border-left-color:var(--color-success);background:var(--color-success-soft);color:#17613f}.notice.error{border-left-color:var(--color-danger);background:var(--color-danger-soft);color:#922828}.notice.compact{margin:0}.login-page{background:radial-gradient(circle at 0 0,#d99a0029,#0000 30%),linear-gradient(#f8fafc 0%,#eef3f8 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);width:min(940px,100%);color:var(--color-text-primary);background:#fffffff0;grid-template-columns:minmax(0,1.05fr) minmax(320px,420px);gap:20px;padding:28px;display:grid;box-shadow:0 26px 70px #121f3424}.login-copy{border-radius:var(--radius-md);background:linear-gradient(135deg, #d99a001f, #2276d20f), var(--color-panel-soft);flex-direction:column;justify-content:center;min-height:320px;padding:28px;display:flex}.login-brand{align-items:center;gap:12px;margin-bottom:28px;font-size:18px;font-weight:900;display:flex}.login-copy p:first-of-type{color:var(--color-brand-strong);letter-spacing:.08em;text-transform:uppercase;margin-top:0;font-size:12px;font-weight:900}.login-copy h1{letter-spacing:0;margin:0 0 12px;font-size:40px;line-height:1.08}.login-copy p:last-child{max-width:520px;color:var(--color-text-secondary);margin:0;font-weight:700}.login-form,.seed-users{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-subtle);background:#fff;padding:18px}.login-form{align-content:start;gap:14px;display:grid}.login-form label{color:var(--color-text-secondary);gap:7px;font-weight:800;display:grid}.login-form input{min-height:44px}.seed-users{color:var(--color-text-secondary);margin-top:16px}.seed-users strong{color:var(--color-text-primary)}.seed-users p{margin:8px 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}@media (max-width:1180px){.dashboard-charts{grid-template-columns:1fr}.chart-card.revenue-card{grid-column:auto}.metrics-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}.summary-grid{grid-template-columns:1fr}.content-header{grid-template-columns:minmax(0,1fr)}.content-header>.route-actions{justify-content:flex-start}.filter-bar{grid-template-columns:minmax(240px,1fr) repeat(2,minmax(150px,auto))}.ledger-filter-bar,.interaction-filter-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.ledger-filter-bar .filter-search-field,.interaction-filter-bar .filter-search-field{grid-column:span 2}.debt-filter-bar,.excess-filter-bar,.excess-detail-filter-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.debt-filter-bar .filter-search-field{grid-column:span 2}.debt-filter-bar .filter-actions{grid-column:auto}.excess-detail-filter-bar .filter-search-field{grid-column:span 2}}@media (max-width:1024px){:root{--space-page:16px}.admin-shell{grid-template-columns:220px minmax(0,1fr)}.sidebar.collapsed{width:76px}.admin-form .json-route-form-fields{grid-template-columns:1fr}.voucher-form-receipt,.voucher-form-payment{grid-template-columns:repeat(2,minmax(0,1fr))}.voucher-other-form{grid-template-columns:1fr}.filter-bar,.ledger-filter-bar,.interaction-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-search-field{grid-column:1/-1}.debt-filter-bar .filter-search-field,.debt-filter-bar .filter-actions{grid-column:auto}.excess-filter-bar,.excess-detail-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.excess-detail-filter-bar .filter-search-field{grid-column:1/-1}.workflow-span-2{grid-column:auto}.meter-support-grid{grid-template-columns:1fr}.meter-support-grid>.panel:last-child{grid-column:auto}}@media (max-width:760px){.bill-line-editor .panel-heading,.bill-line-edit-form{grid-template-columns:1fr}.bill-line-editor .panel-heading>label{width:100%}.admin-shell{display:block}.sidebar{width:100%;height:auto;max-height:48vh;position:static}.sidebar.collapsed{width:100%;max-height:48vh;overflow-y:auto}.sidebar.collapsed .brand-copy,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-chevron{display:block}.sidebar.collapsed .brand-row{flex-direction:row;align-items:center;padding-inline:16px}.sidebar.collapsed .brand{justify-content:flex-start}.sidebar.collapsed .nav-parent{justify-content:space-between;padding-inline:12px}.topbar{flex-direction:column;align-items:stretch;position:static}.voucher-form-receipt,.voucher-form-payment,.voucher-line-item{grid-template-columns:1fr}.voucher-other-form{gap:20px;padding:18px 16px}.meter-image-dropzone{grid-template-columns:1fr}.meter-image-actions,.meter-image-actions>*{width:100%}.voucher-other-actions{flex-direction:column-reverse;align-items:stretch;margin:0 -16px -18px}.voucher-other-actions>*,.voucher-action-bar>*{width:100%}.voucher-section-heading{flex-direction:column;align-items:flex-start}.voucher-preview dl{grid-template-columns:1fr}.building-picker,.user-menu{align-items:stretch}.building-picker{min-width:0}.building-picker select{flex:180px;min-width:0}.content-header{grid-template-columns:1fr;gap:10px}.content-header h1{font-size:24px}.user-menu{justify-content:flex-end}.metrics-grid,.interaction-metrics,.interaction-report-dashboard .dashboard-charts{grid-template-columns:1fr}.debt-panel-heading,.debt-selection-actions{flex-direction:column;align-items:stretch}.debt-selection-actions,.debt-selection-actions>button{width:100%}.debt-selection-actions{justify-content:flex-start}.debt-table-scroll-hint{display:block}.debt-reminder-confirmation{grid-template-columns:1fr}.debt-reminder-recipients li{flex-direction:column;align-items:flex-start;gap:3px}.split-grid,.summary-grid{grid-template-columns:1fr}.chart-heading,.donut-layout{flex-direction:column;align-items:flex-start}.chart-summary-strip{grid-template-columns:1fr}.chart-legend{justify-content:flex-start}.chart-legend.vertical{width:100%}.chart-svg{min-height:180px}.revenue-svg{min-height:220px}.filter-bar input[type=search]{min-width:100%}.filter-bar,.ledger-filter-bar,.interaction-filter-bar{grid-template-columns:1fr}.filter-heading,.filter-search-field,.ledger-filter-bar .filter-search-field,.interaction-filter-bar .filter-search-field{grid-column:auto}.interaction-section-heading{flex-direction:column;align-items:flex-start}.filter-actions,.filter-actions>*{flex:1 1 0}.route-actions{justify-content:flex-start}.content-header>.route-actions,.content-header>.route-actions>*,.receipt-route-actions,.receipt-route-actions>.action-menu,.receipt-route-actions .action-menu-trigger{width:100%}.receipt-route-actions{flex-direction:column;align-items:stretch}.action-menu-popover,.action-menu-popover.align-end{width:auto;margin-top:6px;position:static}.form-actions{flex-direction:column-reverse;align-items:stretch}.form-actions>*{width:100%}.confirm-dialog-card{padding:20px}.dialog-actions{flex-direction:column-reverse;align-items:stretch}.receipt-pagination{flex-direction:column;align-items:stretch}.table-pagination .pagination-controls,.page-size-form{width:100%}.page-size-form{margin-left:0}.receipt-document{margin-inline:var(--space-page);padding:18px}.receipt-letterhead{text-align:center;grid-template-columns:1fr}.receipt-letterhead span{padding-top:0}.receipt-party-details{width:100%}.receipt-party-details>div{grid-template-columns:1fr;gap:2px;padding:5px 0}.receipt-signatures{gap:24px}.login-card{grid-template-columns:1fr;padding:18px}.login-copy{min-height:auto}.login-copy h1{font-size:32px}}@media print{body{background:#fff}.sidebar,.topbar,.content-header,.notice,.no-print{display:none!important}.admin-shell,.main{min-height:auto;display:block}.receipt-document{max-width:none;box-shadow:none;border:0;margin:0;padding:0}.receipt-paper{width:100%;max-width:none;padding:0}.receipt-table-wrap{overflow:visible}.receipt-party-details,.receipt-lines-table,.receipt-signatures{break-inside:avoid}}.resident-filter-bar{grid-template-columns:auto minmax(220px,1.4fr) repeat(3,minmax(150px,.65fr)) auto}.resident-request-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.resident-request-summary .summary-card{border-top:3px solid var(--color-info)}.resident-request-summary .resident-pending-card{border-top-color:var(--color-warning)}.resident-request-summary .resident-processing-card{border-top-color:var(--color-link)}.resident-request-summary .resident-completed-card{border-top-color:var(--color-success)}.resident-panel-heading{align-items:center}.resident-panel-heading h2,.resident-create-panel .panel-heading h2,.resident-detail-side .panel-heading h2{letter-spacing:0;font-size:16px}.resident-panel-heading p,.resident-create-panel .panel-heading p,.resident-detail-side .panel-heading p{color:var(--color-text-secondary);margin:3px 0 0;font-size:12px}.resident-request-table-wrap{outline:none;max-width:100%}.resident-request-table{min-width:1060px}.resident-request-table th,.resident-request-table td{vertical-align:top}.resident-request-table th:first-child,.resident-request-table td:first-child{width:64px}.resident-request-table th:nth-last-child(2),.resident-request-table td:nth-last-child(2){width:150px}.resident-request-table th:last-child,.resident-request-table td:last-child{width:180px}.resident-request-id{color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.resident-request-title{max-width:270px;color:var(--color-link);overflow-wrap:anywhere;font-weight:750;display:block}.resident-request-title:hover{text-underline-offset:3px;text-decoration:underline}.resident-request-type,.resident-created-at{color:var(--color-text-tertiary);margin-top:5px;font-size:11px;font-weight:500;display:block}.resident-content-preview{max-width:360px;color:var(--color-text-secondary);-webkit-line-clamp:3;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.request-preview-list{gap:4px;max-width:390px;margin:0;display:grid}.request-preview-list>div{grid-template-columns:minmax(90px,.7fr) minmax(100px,1fr);gap:8px;display:grid}.request-preview-list dt{color:var(--color-text-tertiary);font-size:11px}.request-preview-list dd{color:var(--color-text-secondary);overflow-wrap:anywhere;margin:0;font-size:12px}.resident-row-actions{flex-wrap:wrap;align-items:flex-start}.resident-row-actions .row-action{min-height:30px}.resident-create-panel{max-width:1040px;margin:0 auto}.resident-request-form{gap:0;display:grid}.resident-form-section{border-top:1px solid var(--color-border-subtle);padding:22px 24px}.resident-form-section-heading{align-items:center;gap:10px;margin-bottom:18px;display:flex}.resident-form-section-heading>span{background:var(--color-brand-soft);width:28px;height:28px;color:var(--color-brand-strong);border-radius:50%;flex:0 0 28px;place-items:center;font-size:12px;font-weight:800;display:inline-grid}.resident-form-section-heading div{gap:2px;display:grid}.resident-form-section-heading strong{font-size:14px}.resident-form-section-heading small{color:var(--color-text-secondary);font-size:12px}.resident-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.compact-resident-form .resident-form-grid{border-top:1px solid var(--color-border-subtle);padding:22px 24px}.resident-request-field{align-content:start;gap:7px;min-width:0;display:grid}.resident-request-field>span,.goods-fieldset legend,.resident-radio-field legend{color:var(--color-text-secondary);font-size:12px;font-weight:700}.resident-request-field b,.resident-radio-field b{color:var(--color-danger)}.resident-request-field input,.resident-request-field select,.resident-request-field textarea,.resident-status-form select,.resident-reply-form textarea,.goods-row input{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-panel);width:100%;min-width:0;color:var(--color-text-primary);padding:9px 10px}.resident-request-field input,.resident-request-field select,.resident-status-form select,.goods-row input{min-height:40px}.resident-request-field textarea,.resident-reply-form textarea{resize:vertical}.resident-request-field input:hover,.resident-request-field select:hover,.resident-request-field textarea:hover,.resident-status-form select:hover,.resident-reply-form textarea:hover,.goods-row input:hover{border-color:var(--color-link)}.resident-field-span-2{grid-column:1/-1}.file-field small{color:var(--color-text-tertiary);font-size:11px}.file-field input[type=file]{background:var(--color-panel-soft);min-height:46px;padding:7px}.goods-fieldset,.resident-radio-field{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);min-width:0;margin:0;padding:14px}.goods-fieldset legend,.resident-radio-field legend{padding:0 5px}.goods-list{gap:10px;margin-bottom:12px;display:grid}.goods-row{grid-template-columns:28px minmax(140px,1fr) 96px minmax(170px,1.2fr) 36px;align-items:end;gap:10px;display:grid}.goods-row label{gap:5px;min-width:0;display:grid}.goods-row label span{color:var(--color-text-tertiary);font-size:11px}.goods-index{width:26px;height:40px;color:var(--color-text-tertiary);place-items:center;font-size:12px;font-weight:700;display:grid}.icon-button{width:36px;min-height:40px;padding:0}.resident-radio-field{flex-wrap:wrap;gap:18px;display:flex}.resident-radio-field label{color:var(--color-text-primary);align-items:center;gap:7px;display:inline-flex}.resident-form-actions{border-top:1px solid var(--color-border-subtle);background:var(--color-panel-soft);justify-content:flex-end;gap:10px;padding:18px 24px;display:flex}.resident-detail-grid{grid-template-columns:minmax(0,1fr) minmax(300px,360px);align-items:start;gap:18px;display:grid}.resident-detail-main{min-width:0;padding:24px}.resident-detail-toolbar{justify-content:space-between;margin-bottom:20px;display:flex}.resident-detail-header{border-bottom:1px solid var(--color-border-subtle);justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:20px;display:flex}.resident-detail-header h2{letter-spacing:0;overflow-wrap:anywhere;margin:6px 0 0;font-size:27px}.resident-detail-kicker{color:var(--color-text-secondary);text-transform:uppercase;font-size:11px;font-weight:750}.resident-contact-grid,.resident-request-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;display:grid}.resident-contact-grid{border-bottom:1px solid var(--color-border-subtle);padding:8px 0}.resident-contact-grid>div,.resident-request-details>div{min-width:0;padding:12px 8px}.resident-contact-grid dt,.resident-request-details dt{color:var(--color-text-tertiary);align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.resident-contact-grid dd,.resident-request-details dd{color:var(--color-text-primary);overflow-wrap:anywhere;margin:5px 0 0;font-weight:650}.resident-detail-section{padding-top:22px}.resident-detail-section h3{letter-spacing:0;align-items:center;gap:7px;margin:0 0 12px;font-size:14px;display:flex}.resident-request-details{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-panel-soft)}.resident-feedback-content>p,.resident-note p{color:var(--color-text-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.7}.resident-note{border-left:3px solid var(--color-brand);background:var(--color-brand-soft);margin-top:12px;padding:14px}.resident-note strong{margin-bottom:5px;display:block}.resident-attachments{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.resident-attachment{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-panel-soft);align-items:center;gap:10px;min-width:0;padding:9px;display:flex}.resident-attachment:hover{border-color:var(--color-link);background:var(--color-panel)}.resident-attachment img{object-fit:cover;border-radius:4px;flex:0 0 44px;width:44px;height:44px}.resident-attachment>span{gap:3px;min-width:0;display:grid}.resident-attachment strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.resident-attachment small,.resident-empty-copy{color:var(--color-text-tertiary);font-size:11px}.resident-detail-side{gap:14px;display:grid}.resident-detail-side .panel-heading{padding:16px}.resident-status-form,.resident-reply-form,.resident-task-form{border-top:1px solid var(--color-border-subtle);gap:10px;padding:16px;display:grid}.resident-task-form label{gap:6px;display:grid}.resident-task-form label>span{color:var(--color-text-secondary);font-size:11px;font-weight:750}.resident-task-form input,.resident-task-form select,.resident-task-form textarea{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-panel);width:100%;min-width:0;color:var(--color-text-primary);padding:9px 10px}.resident-task-form input,.resident-task-form select{min-height:40px}.resident-task-form textarea{resize:vertical}.resident-task-list{border-top:1px solid var(--color-border-subtle);display:grid}.resident-task{border-bottom:1px solid var(--color-border-subtle);justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 16px;display:flex}.resident-task:last-child{border-bottom:0}.resident-task>div{gap:3px;min-width:0;display:grid}.resident-task>div>span{color:var(--color-text-secondary);overflow-wrap:anywhere;font-size:12px}.resident-task small{color:var(--color-text-tertiary);font-size:10px}.task-complete-label{color:var(--color-success);flex:none;align-items:center;gap:5px;font-size:11px;font-weight:800;display:inline-flex}.resident-task-empty{color:var(--color-text-tertiary);text-align:center;padding:14px 16px;font-size:11px}.resident-reply-form button{justify-self:end}.reply-attachment-field{color:var(--color-link);cursor:pointer;align-items:center;gap:7px;font-size:12px;font-weight:700;display:inline-flex}.reply-attachment-field input{min-width:0;color:var(--color-text-secondary);font-weight:500}.resident-comment-list{border-top:1px solid var(--color-border-subtle);max-height:440px;display:grid;overflow:auto}.resident-comment{border-bottom:1px solid var(--color-border-subtle);grid-template-columns:32px minmax(0,1fr);gap:10px;padding:14px 16px;display:grid}.resident-comment:last-child{border-bottom:0}.resident-comment-avatar{background:var(--color-info);width:32px;height:32px;color:var(--color-text-inverse);border-radius:50%;place-items:center;font-size:12px;font-weight:800;display:grid}.resident-comment header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.resident-comment time{color:var(--color-text-tertiary);white-space:nowrap;font-size:10px}.resident-comment p{color:var(--color-text-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0 0;font-size:12px;line-height:1.55}.resident-comment-empty{min-height:112px;color:var(--color-text-tertiary);align-content:center;place-items:center;gap:7px;font-size:12px;display:grid}@media (max-width:1180px){.resident-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.resident-filter-bar .filter-heading,.resident-filter-bar .filter-actions{grid-column:1/-1}.resident-detail-grid{grid-template-columns:minmax(0,1fr)}.resident-detail-side{grid-template-columns:repeat(2,minmax(0,1fr))}.resident-comments-panel{grid-column:1/-1}}@media (max-width:760px){.resident-request-summary,.resident-form-grid,.resident-contact-grid,.resident-request-details,.resident-attachments,.resident-detail-side{grid-template-columns:minmax(0,1fr)}.resident-field-span-2,.resident-comments-panel{grid-column:auto}.resident-filter-bar{grid-template-columns:minmax(0,1fr)}.resident-filter-bar .filter-heading,.resident-filter-bar .filter-actions{grid-column:auto}.resident-panel-heading,.resident-detail-header,.resident-detail-toolbar,.resident-form-actions{flex-direction:column;align-items:stretch}}.json-route-form-fields{border:0;min-width:0;margin:0;padding:0;display:contents}.form-pending{color:var(--color-text-secondary);margin-top:8px;font-size:13px}.rbac-command-panel{margin:0 var(--space-page) 20px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-panel);box-shadow:var(--shadow-subtle);overflow:hidden}.rbac-command-form{min-width:0}.rbac-command-toolbar{border-bottom:1px solid var(--color-border-subtle);grid-template-columns:minmax(195px,.9fr) minmax(180px,1.15fr) minmax(145px,.65fr) auto auto auto;align-items:end;gap:12px;padding:14px 16px;display:grid}.rbac-toolbar-field,.rbac-group-inspector>label,.rbac-select-field{gap:6px;min-width:0;display:grid}.rbac-toolbar-field>span:first-child,.rbac-toolbar-stat>span,.rbac-group-inspector>label>span,.rbac-select-field>span{color:var(--color-text-secondary);letter-spacing:.02em;font-size:11px;font-weight:800}.rbac-command-toolbar select,.rbac-command-toolbar input,.rbac-group-inspector input,.rbac-group-inspector textarea,.rbac-user-toolbar input,.rbac-user-toolbar select,.rbac-user-editor input,.rbac-user-editor select,.rbac-select-field select{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);width:100%;min-height:38px;color:var(--color-text-primary);background:#fff;padding:8px 10px}.rbac-group-inspector textarea{resize:vertical;min-height:104px}.input-with-icon{min-width:0;display:block;position:relative}.input-with-icon>svg{z-index:1;color:var(--color-text-tertiary);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.input-with-icon input,.rbac-user-toolbar .input-with-icon input{padding-left:36px}.rbac-toolbar-stat{align-content:end;gap:6px;min-height:61px;display:grid}.rbac-toolbar-stat strong{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);white-space:nowrap;align-items:center;gap:7px;min-height:38px;padding:8px 10px;font-size:12px;display:inline-flex}.rbac-toolbar-stat strong:before,.rbac-save-state>span{background:var(--color-text-tertiary);content:"";border-radius:50%;flex:none;width:8px;height:8px}.rbac-toolbar-stat .success-dot:before{background:var(--color-success)}.rbac-save-state{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);min-height:38px;color:var(--color-text-secondary);white-space:nowrap;align-self:end;align-items:center;gap:7px;padding:8px 10px;font-size:12px;font-weight:750;display:inline-flex}.rbac-save-state.is-dirty{background:var(--color-brand-soft);color:var(--color-brand-strong);border-color:#ecd396}.rbac-save-state.is-dirty>span{background:var(--color-brand)}.rbac-top-save,.rbac-new-group{white-space:nowrap;align-self:end;min-height:38px}.rbac-command-body{grid-template-columns:minmax(0,1fr) 292px;min-width:0;display:grid}.rbac-matrix-region{border-right:1px solid var(--color-border-subtle);min-width:0}.rbac-scope-line{border-bottom:1px solid var(--color-border-subtle);color:var(--color-text-secondary);align-items:center;gap:8px;padding:10px 14px;font-size:12px;display:flex}.rbac-scope-line svg{color:var(--color-brand-strong);flex:none}.rbac-matrix-scroll{max-height:630px;overflow:auto}.rbac-matrix-table{table-layout:fixed;white-space:normal;min-width:770px}.rbac-matrix-table th{z-index:2;background:#f7f9fc;height:46px;position:sticky;top:0}.rbac-matrix-table th:first-child{width:170px}.rbac-matrix-table th:nth-child(2){width:250px}.rbac-matrix-table th,.rbac-matrix-table td{border-right:1px solid #edf1f6;padding:9px 11px}.rbac-matrix-table th:last-child,.rbac-matrix-table td:last-child{border-right:0}.rbac-matrix-table tbody tr:hover td{background:#fbfcfe}.rbac-module-cell{vertical-align:top;background:#fcfdff;width:170px}.rbac-module-cell strong{font-size:12px;display:inline}.rbac-module-icon{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);width:26px;height:26px;color:var(--color-text-secondary);vertical-align:middle;justify-content:center;align-items:center;margin-right:7px;display:inline-flex}.rbac-screen-cell strong,.rbac-screen-cell small{display:block}.rbac-screen-cell strong{font-size:12px}.rbac-screen-cell small{color:var(--color-text-tertiary);overflow-wrap:anywhere;margin-top:2px;font-size:10px}.rbac-matrix-table .permission-column{text-align:center;width:64px}.rbac-matrix-table .specialized-column{width:94px}.rbac-matrix-toggle{border-radius:var(--radius-sm);cursor:pointer;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.rbac-matrix-toggle:hover{background:var(--color-brand-soft)}.rbac-matrix-toggle:focus-within{outline:3px solid #d99a003d}.rbac-matrix-toggle input,.rbac-assignment-options input{width:17px;height:17px;accent-color:var(--color-brand);cursor:pointer}.rbac-na{color:#b7c0ce;font-weight:700}.rbac-empty-row{color:var(--color-text-secondary);text-align:center;padding:28px}.rbac-group-inspector{align-content:start;gap:16px;padding:18px;display:grid}.rbac-inspector-title{border-bottom:1px solid var(--color-border-subtle);align-items:center;gap:11px;padding-bottom:15px;display:flex}.rbac-inspector-avatar{width:42px;height:42px;color:var(--color-text-secondary);background:#eef2f7;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.rbac-inspector-title small,.rbac-inspector-title strong{display:block}.rbac-inspector-title small{color:var(--color-text-tertiary);font-size:11px}.rbac-inspector-title strong{margin-top:3px;font-size:15px}.rbac-inspector-metrics{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.rbac-inspector-metrics>div{padding:10px}.rbac-inspector-metrics>div+div{border-left:1px solid var(--color-border-subtle)}.rbac-inspector-metrics span,.rbac-inspector-metrics strong{display:block}.rbac-inspector-metrics span{color:var(--color-text-secondary);font-size:10px}.rbac-inspector-metrics strong{margin-top:3px;font-size:18px}.rbac-inspector-note{border-radius:var(--radius-sm);color:var(--color-text-secondary);background:#fffbef;border:1px solid #e7d5a8;gap:9px;padding:10px;display:flex}.rbac-inspector-note svg{color:var(--color-brand-strong);flex:none}.rbac-inspector-note p{margin:0}.rbac-inspector-note strong,.rbac-inspector-note span{font-size:11px;display:block}.rbac-inspector-note strong{color:var(--color-text-primary);margin-bottom:2px}.rbac-sticky-summary{border-top:1px solid var(--color-border-subtle);background:#fff;justify-content:space-between;align-items:center;gap:14px;padding:12px 16px;display:flex}.rbac-sticky-summary>div:first-child span,.rbac-sticky-summary>div:first-child strong{display:block}.rbac-sticky-summary>div:first-child span{color:var(--color-text-tertiary);text-transform:uppercase;font-size:10px;font-weight:800}.rbac-sticky-summary>div:first-child strong{margin-top:2px;font-size:12px}.rbac-summary-actions,.rbac-row-actions{align-items:center;gap:7px;display:flex}.rbac-user-toolbar{margin:0 var(--space-page) 16px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-panel);box-shadow:var(--shadow-subtle);grid-template-columns:minmax(260px,1fr) minmax(180px,.45fr) minmax(160px,.4fr) auto auto;align-items:center;gap:10px;padding:12px;display:grid}.rbac-user-panel .panel-heading>span{color:var(--color-text-secondary);font-size:12px;font-weight:800}.rbac-user-identity{align-items:center;gap:9px;display:inline-flex}.rbac-user-identity>span{width:30px;height:30px;color:var(--color-text-secondary);background:#eef2f7;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:inline-flex}.rbac-user-identity strong,.rbac-user-identity small,.table-subline{min-width:0;display:block}.rbac-user-identity small,.table-subline,.muted-text{color:var(--color-text-secondary);overflow-wrap:anywhere;font-size:11px;font-weight:500}.rbac-assignment-page{margin:0 var(--space-page) 24px}.rbac-assignment-heading{color:var(--color-text-secondary);align-items:center;gap:8px;margin-bottom:12px;font-size:12px;display:flex}.rbac-assignment-heading a{color:var(--color-link);font-weight:700}.rbac-assignment-grid{grid-template-columns:260px minmax(0,1fr);align-items:start;gap:16px;display:grid}.rbac-user-summary-card{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-panel);box-shadow:var(--shadow-subtle);text-align:center;padding:20px}.rbac-user-large-avatar{width:64px;height:64px;color:var(--color-text-secondary);background:#edf1f7;border-radius:50%;justify-content:center;align-items:center;font-size:20px;font-weight:800;display:inline-flex}.rbac-user-summary-card h2{margin:12px 0 3px;font-size:17px}.rbac-user-summary-card>p{color:var(--color-text-secondary);margin:0 0 12px;font-size:12px}.rbac-user-summary-card dl{text-align:left;gap:0;margin:18px 0 0;display:grid}.rbac-user-summary-card dl>div{border-top:1px solid var(--color-border-subtle);grid-template-columns:90px minmax(0,1fr);gap:8px;padding:10px 0;display:grid}.rbac-user-summary-card dt{color:var(--color-text-tertiary);font-size:11px}.rbac-user-summary-card dd{overflow-wrap:anywhere;margin:0;font-size:11px;font-weight:700}.rbac-assignment-form-panel{margin:0}.rbac-assignment-form .json-route-form-fields>fieldset{border:0;gap:0;min-width:0;margin:0;padding:0;display:grid}.rbac-assignment-section{padding:18px}.rbac-assignment-section+.rbac-assignment-section{border-top:1px solid var(--color-border-subtle)}.rbac-section-heading{align-items:flex-start;gap:9px;margin-bottom:13px;display:flex}.rbac-section-heading svg{color:var(--color-brand-strong);margin-top:2px}.rbac-section-heading h3,.rbac-section-heading p{margin:0}.rbac-section-heading h3{font-size:14px}.rbac-section-heading p{color:var(--color-text-secondary);margin-top:2px;font-size:11px}.rbac-linked-account{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-panel-soft);justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;display:flex}.rbac-linked-account strong,.rbac-linked-account span:not(.status-pill){display:block}.rbac-linked-account span:not(.status-pill){color:var(--color-text-secondary);margin-top:2px;font-size:11px}.rbac-assignment-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.rbac-assignment-options>label{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);cursor:pointer;align-items:flex-start;gap:10px;min-width:0;padding:10px;display:flex}.rbac-assignment-options>label:hover{border-color:var(--color-border-strong);background:var(--color-panel-soft)}.rbac-assignment-options>label:focus-within{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-soft)}.rbac-assignment-options input{flex:none;margin-top:2px}.rbac-assignment-options strong,.rbac-assignment-options small{display:block}.rbac-assignment-options small{color:var(--color-text-secondary);margin-top:2px;font-size:11px}.rbac-assignment-actions{border-top:1px solid var(--color-border-subtle);background:var(--color-panel-soft);justify-content:flex-end;gap:8px;padding:13px 18px;display:flex}.rbac-missing-user{text-align:center;justify-items:center;gap:8px;padding:42px;display:grid}.rbac-missing-user h2,.rbac-missing-user p{margin:0}.rbac-missing-user p{color:var(--color-text-secondary)}.rbac-row-actions{align-items:center;gap:6px;display:flex}.compact-button{white-space:nowrap;min-height:30px;padding:5px 9px}.inline-form{display:inline-flex}.rbac-contact,.rbac-contact>span,.rbac-contact>small{align-items:center;gap:5px;min-width:0;display:flex}.rbac-contact{flex-direction:column;align-items:flex-start;font-size:12px}.rbac-contact small{max-width:220px;color:var(--color-text-secondary);overflow-wrap:anywhere}.rbac-status-switch{border:1px solid var(--color-border-strong);background:var(--color-panel-soft);min-width:88px;min-height:30px;color:var(--color-text-secondary);border-radius:999px;justify-content:flex-start;align-items:center;gap:6px;padding:3px 8px 3px 4px;display:inline-flex}.rbac-status-switch>span{background:var(--color-text-tertiary);border-radius:50%;flex:none;width:20px;height:20px;transition:transform .16s,background .16s}.rbac-status-switch[aria-checked=true]{border-color:var(--color-success);background:var(--color-success-soft);color:var(--color-success)}.rbac-status-switch[aria-checked=true]>span{background:var(--color-success)}.rbac-status-switch:hover:not(:disabled){border-color:var(--color-brand-strong)}.rbac-status-switch:focus-visible{outline:3px solid var(--color-brand-soft);outline-offset:2px}.rbac-status-switch:disabled{cursor:not-allowed;opacity:.5}.rbac-status-switch small{text-transform:uppercase;font-size:10px;font-weight:800}.rbac-user-editor{margin:0 var(--space-page) 24px}.rbac-user-editor-grid{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}.rbac-user-editor-form.panel,.rbac-security-card.panel{margin:0}.rbac-editor-section{padding:18px}.rbac-editor-section+.rbac-editor-section{border-top:1px solid var(--color-border-subtle)}.rbac-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.rbac-form-grid label,.rbac-security-card label{color:var(--color-text-secondary);gap:6px;font-size:11px;font-weight:800;display:grid}.rbac-security-column{gap:12px;display:grid}.rbac-security-card{padding:17px}.rbac-security-card dl{gap:0;margin:0 0 14px;display:grid}.rbac-security-card dl>div{border-top:1px solid var(--color-border-subtle);grid-template-columns:90px minmax(0,1fr);gap:10px;padding:9px 0;display:grid}.rbac-security-card dt{color:var(--color-text-tertiary);font-size:11px}.rbac-security-card dd{overflow-wrap:anywhere;margin:0;font-size:11px;font-weight:700}.rbac-security-card button,.rbac-security-card .button{justify-content:center;width:100%;margin-top:10px}.danger-zone{border-color:var(--color-danger-soft);background:var(--color-danger-soft)}.danger-zone .rbac-section-heading svg,.danger-zone .rbac-section-heading h3{color:var(--color-danger)}.danger-button{border-color:var(--color-danger);background:var(--color-danger);color:var(--color-panel)}.danger-button:hover:not(:disabled){border-color:var(--color-danger);filter:brightness(.94)}.danger-button:focus-visible{outline:3px solid var(--color-danger-soft);outline-offset:2px}.danger-button:disabled{cursor:not-allowed;opacity:.5}@media (max-width:760px){.rbac-command-toolbar,.rbac-command-body,.rbac-user-toolbar,.rbac-assignment-grid,.rbac-assignment-options,.rbac-user-editor-grid,.rbac-form-grid{grid-template-columns:1fr}.rbac-command-panel,.rbac-assignment-page,.rbac-user-editor{margin-left:12px;margin-right:12px}.rbac-matrix-region{border-right:0;border-bottom:1px solid var(--color-border-subtle)}.rbac-matrix-scroll{max-height:520px}.rbac-group-inspector{padding:14px}.rbac-sticky-summary{flex-direction:column;align-items:stretch}.resident-form-section,.compact-resident-form .resident-form-grid,.resident-form-actions,.resident-detail-main{padding:16px}.goods-row{grid-template-columns:28px minmax(0,1fr) 36px;align-items:end}.goods-row label{grid-column:2}.goods-row .goods-index{grid-area:1/1}.goods-row .icon-button{grid-area:1/3}.resident-detail-header .status-pill{align-self:flex-start}.resident-detail-header h2{font-size:22px}}@media print{.resident-detail-grid{display:block}.resident-detail-main{box-shadow:none;border:0;padding:0}.resident-detail-header h2{font-size:22px}.resident-contact-grid,.resident-request-details,.resident-detail-section,.resident-attachments{break-inside:avoid}}@media (max-width:760px){.rbac-summary-actions>*{flex:1}.rbac-row-actions{min-width:180px}.rbac-user-toolbar{margin-left:12px;margin-right:12px}.rbac-user-summary-card{text-align:left}}
