:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f4f6f5;--surface:#fff;--surface-soft:#eef4f2;--surface-strong:#e6eeeb;--border:#d7e0dd;--text:#17211f;--muted:#66736f;--primary:#0f766e;--primary-strong:#115e59;--accent:#b45309;--danger:#b91c1c;--success:#15803d;--shadow:0 14px 32px #17211f14}*{box-sizing:border-box}html{min-width:320px}body{background:var(--background);color:var(--text);margin:0;font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}button,input,select{font:inherit}button{cursor:pointer}.app-shell{grid-template-columns:276px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:24px;min-height:100vh;padding:22px 16px;display:flex}.brand{min-height:48px;color:inherit;align-items:center;gap:12px;text-decoration:none;display:flex}.brand-mark{background:var(--primary);color:#fff;border-radius:8px;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.brand-title,.brand-caption{display:block}.brand-title{font-weight:800;line-height:1.2}.brand-caption{color:var(--muted);margin-top:2px;font-size:.82rem}.nav-list{gap:6px;display:grid}.nav-item{min-height:42px;color:var(--muted);border-radius:8px;align-items:center;gap:10px;padding:0 12px;font-size:.94rem;text-decoration:none;display:flex}.nav-item:hover,.nav-item.is-active{background:var(--surface-soft);color:var(--primary-strong)}.nav-item.is-active{font-weight:800}.sidebar-status{border:1px solid var(--border);color:var(--primary-strong);background:var(--surface-soft);border-radius:8px;grid-template-columns:28px minmax(0,1fr);gap:10px;margin-top:auto;padding:14px;display:grid}.sidebar-status p{color:var(--muted);margin:0 0 3px;font-size:.78rem}.sidebar-status strong{font-size:.88rem}.workspace{width:100%;min-width:0}.app-header{border-bottom:1px solid var(--border);z-index:4;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffeb;justify-content:space-between;align-items:center;gap:16px;height:64px;padding:0 28px;display:flex;position:sticky;top:0}.global-search{flex:360px;width:min(520px,100%);position:relative}.search-box{border:1px solid var(--border);background:var(--surface);width:min(520px,100%);height:40px;color:var(--muted);border-radius:8px;align-items:center;gap:10px;padding:0 12px;display:flex}.search-box input{width:100%;min-width:0;color:var(--text);background:0 0;border:0;outline:0}.search-clear-button{width:24px;height:24px;color:var(--muted);background:0 0;border:0;border-radius:999px;flex:none;justify-content:center;align-items:center;display:inline-flex}.search-clear-button:hover,.search-clear-button:focus-visible{color:var(--text);background:var(--surface-soft);outline:0}.global-search-panel{z-index:20;border:1px solid var(--border);background:var(--surface);border-radius:8px;max-height:min(420px,100vh - 96px);padding:6px;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto;box-shadow:0 18px 48px #0f172a24}.global-search-item{text-align:left;cursor:pointer;width:100%;color:var(--text);background:0 0;border:0;border-radius:7px;grid-template-columns:86px minmax(0,1fr);gap:2px 10px;padding:10px;display:grid}.global-search-item:hover,.global-search-item:focus-visible{background:var(--surface-soft);outline:0}.global-search-label{color:var(--primary-strong);white-space:nowrap;background:#0f766e1a;border-radius:999px;grid-row:span 2;place-self:start;padding:6px 8px;font-size:.72rem;font-weight:700;line-height:1}.global-search-title{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:700;overflow:hidden}.global-search-detail,.global-search-state{color:var(--muted);font-size:.8rem}.global-search-detail{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.global-search-state{padding:12px}.header-profile{min-height:36px;color:var(--muted);white-space:nowrap;align-items:center;gap:8px;min-width:0;font-size:.9rem;display:inline-flex}.header-profile>span:not(.profile-dot){text-overflow:ellipsis;min-width:0;overflow:hidden}.logout-button{border:1px solid var(--border);background:var(--surface);height:32px;color:var(--muted);border-radius:8px;padding:0 10px;font-size:.84rem;font-weight:700}.logout-button:hover{border-color:var(--primary);color:var(--primary-strong)}.profile-dot{background:var(--success);border-radius:999px;width:10px;height:10px}.main{width:100%;min-width:0;padding:28px}.page-header{justify-content:space-between;align-items:flex-start;gap:20px;min-width:0;margin-bottom:24px;display:flex}.page-title{margin:0;font-size:clamp(1.7rem,3vw,2.35rem);line-height:1.08}.page-subtitle{max-width:760px;color:var(--muted);margin:8px 0 0;line-height:1.5}.toolbar{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.select,.icon-button,.primary-button{border:1px solid var(--border);border-radius:8px;height:40px}.select{background:var(--surface);min-width:150px;color:var(--text);padding:0 12px}.icon-button{background:var(--surface);width:40px;color:var(--text);place-items:center;display:inline-grid}.primary-button{background:var(--primary);color:#fff;border-color:var(--primary);white-space:nowrap;justify-content:center;align-items:center;gap:8px;max-width:100%;padding:0 14px;font-weight:800;display:inline-flex}.primary-button:disabled{cursor:not-allowed;opacity:.62}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:24px;display:grid}.stats-grid.two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:640px}.stats-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card,.panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px}.stat-card{align-content:space-between;min-width:0;min-height:132px;padding:18px;display:grid}.stat-heading{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:.88rem;display:flex}.stat-value{overflow-wrap:anywhere;margin:14px 0 4px;font-size:clamp(1.45rem,2vw,2rem);font-weight:800;line-height:1}.stat-note{color:var(--muted);margin:0;font-size:.84rem}.content-grid,.module-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:18px;display:grid}.module-grid{align-items:start}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.span-2{grid-column:span 1}.settings-grid .span-2{grid-column:1/-1}.panel{min-width:0;padding:18px}.panel-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.panel-title{margin:0;font-size:1rem}.panel-meta{color:var(--muted);white-space:nowrap;font-size:.84rem}.chart,.stack,.workflow-list,.action-list,.capacity-list,.form-grid{gap:12px;display:grid}.chart-row{grid-template-columns:74px minmax(0,1fr) 76px;align-items:center;gap:12px;display:grid}.chart-label,.chart-value{color:var(--muted);font-size:.86rem}.bar-track{background:var(--surface-soft);border-radius:999px;height:12px;overflow:hidden}.bar-fill{border-radius:inherit;background:var(--primary);height:100%}.bar-fill.is-warning{background:var(--accent)}.bar-fill.is-danger{background:var(--danger)}.dues-row,.activity-row{border-top:1px solid var(--border);padding:14px 0}.dues-row:first-child,.activity-row:first-child{border-top:0;padding-top:0}.dues-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.row-title{margin:0;font-weight:800}.row-meta{color:var(--muted);margin:5px 0 0;font-size:.86rem}.badge{background:var(--surface-soft);min-height:28px;color:var(--primary-strong);white-space:nowrap;border-radius:999px;align-items:center;padding:0 10px;font-size:.78rem;font-weight:800;display:inline-flex}.badge.is-success{color:var(--success);background:#dcfce7}.badge.is-danger{color:var(--danger);background:#fee2e2}.badge.is-warning{color:#92400e;background:#fef3c7}.activity-row{grid-template-columns:36px minmax(0,1fr);gap:12px;display:grid}.activity-icon,.workflow-icon{background:var(--surface-soft);color:var(--primary-strong);border-radius:8px;place-items:center;display:grid}.activity-icon{width:36px;height:36px}.workflow-icon{width:32px;height:32px}.table-wrap{-webkit-overflow-scrolling:touch;border-radius:8px;width:100%;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:720px;font-size:.9rem}.data-table th,.data-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:13px 12px}.data-table th{color:var(--muted);text-transform:uppercase;letter-spacing:0;background:var(--surface-soft);font-size:.78rem}.data-table .table-number{text-align:center;white-space:nowrap;width:56px}.data-table tr:last-child td{border-bottom:0}.workflow-item{border-top:1px solid var(--border);grid-template-columns:32px minmax(0,1fr);align-items:start;gap:10px;padding:10px 0;display:grid}.workflow-item:first-child{border-top:0;padding-top:0}.workflow-item p{margin:0 0 4px;font-weight:800}.workflow-item span{color:var(--muted);font-size:.84rem}.action-row{border:1px solid var(--border);background:var(--surface);width:100%;min-height:58px;color:var(--text);text-align:left;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:12px;display:flex}.action-row:hover{border-color:var(--primary)}.action-row strong,.action-row small{display:block}.action-row small{color:var(--muted);margin-top:4px}.capacity-item{gap:8px;display:grid}.capacity-item>div:first-child{color:var(--muted);justify-content:space-between;gap:12px;font-size:.88rem;display:flex}.capacity-item strong{color:var(--text)}.house-workspace{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:18px;display:grid}.house-main-panel{gap:16px;display:grid}.house-controls{gap:12px;display:grid}.house-controls-head{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.house-controls-head h2{margin:0;font-size:1.05rem}.house-controls-head p{color:var(--muted);margin:5px 0 0;font-size:.88rem;line-height:1.45}.house-search{border:1px solid var(--border);background:var(--surface);min-height:42px;color:var(--muted);border-radius:8px;align-items:center;gap:10px;padding:0 12px;display:flex}.house-search input{width:100%;min-width:0;color:var(--text);background:0 0;border:0;outline:0}.house-filter-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.house-filter-row label{border:1px solid var(--border);background:var(--surface);min-height:40px;color:var(--muted);border-radius:8px;align-items:center;gap:8px;padding:0 10px;display:inline-flex}.house-filter-row select{min-width:150px;color:var(--text);background:0 0;border:0;outline:0}.segmented-control{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;gap:3px;min-height:40px;padding:3px;display:inline-flex}.segmented-control button{min-height:32px;color:var(--muted);background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:0 10px;font-weight:800;display:inline-flex}.segmented-control button.is-active{background:var(--surface);color:var(--primary-strong);box-shadow:0 1px 4px #17211f1a}.house-card-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.house-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:14px;min-width:0;padding:16px;display:grid}.house-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.house-code{color:var(--primary-strong);margin:0 0 5px;font-size:.82rem;font-weight:800}.house-card h2{margin:0;font-size:1.08rem;line-height:1.2}.house-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.house-facts div{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;min-width:0;padding:10px}.house-facts dt{color:var(--muted);font-size:.76rem;font-weight:800}.house-facts dd{color:var(--text);overflow-wrap:anywhere;margin:4px 0 0;font-size:.9rem;font-weight:800}.occupant-chips{flex-wrap:wrap;gap:6px;display:flex}.occupant-chips span{background:var(--surface-soft);min-height:28px;color:var(--muted);border-radius:999px;align-items:center;padding:0 10px;font-size:.8rem;font-weight:800;display:inline-flex}.house-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.house-actions .primary-link,.house-actions .secondary-link,.house-actions .secondary-button{width:100%;min-height:36px;padding:0 10px}.house-side{gap:18px;display:grid}.table-action-link{background:var(--surface-soft);min-height:30px;color:var(--primary-strong);border:0;border-radius:8px;align-items:center;padding:0 10px;font-weight:800;text-decoration:none;display:inline-flex}.table-action-link.is-danger{color:var(--danger)}.table-actions{flex-wrap:wrap;gap:6px;display:flex}.resident-table th:nth-child(3),.resident-table td:nth-child(3),.resident-table th:nth-child(5),.resident-table td:nth-child(5){white-space:nowrap}.resident-table th:nth-child(6),.resident-table td:nth-child(6),.resident-table th:nth-child(7),.resident-table td:nth-child(7){width:120px}.resident-table th:nth-child(9),.resident-table td:nth-child(9){width:140px}.empty-state{border:1px dashed var(--border);background:var(--surface-soft);color:var(--muted);text-align:center;border-radius:8px;padding:18px;font-weight:800}.danger-button{color:var(--danger)}.modal-backdrop{z-index:20;background:#17211f6b;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.house-modal{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:16px;width:min(720px,100%);max-height:calc(100vh - 36px);padding:18px;display:grid;overflow-y:auto;box-shadow:0 22px 70px #17211f3d}.modal-header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.modal-header h2{margin:0;font-size:1.2rem}.modal-header p{color:var(--muted);margin:5px 0 0;line-height:1.45}.house-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.modal-actions .primary-button,.modal-actions .secondary-button{min-width:120px}.form-alert{color:var(--danger);background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:11px 12px;font-size:.9rem;font-weight:800}.detail-grid .span-2{grid-column:1/-1}.detail-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.detail-summary-grid div{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;min-width:0;padding:12px}.detail-summary-grid span,.detail-summary-grid strong{display:block}.detail-summary-grid span{color:var(--muted);font-size:.78rem;font-weight:800}.detail-summary-grid strong{overflow-wrap:anywhere;margin-top:5px}.dues-highlight{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;align-content:center;gap:7px;min-height:132px;padding:14px;display:grid}.dues-highlight strong{color:var(--primary-strong);overflow-wrap:anywhere;font-size:1.55rem;line-height:1.1}.dues-highlight span{color:var(--muted)}.occupant-card-list{display:none}.resident-workspace{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;display:grid}.resident-main-panel,.resident-controls{gap:16px;display:grid}.resident-controls{gap:12px;padding-bottom:16px}.resident-main-panel .table-wrap{border-top:1px solid var(--border)}.resident-controls-head{justify-content:space-between;align-items:center;gap:14px;display:flex}.resident-controls-head .resident-search{flex:1;min-width:0}.resident-search{border:1px solid var(--border);background:var(--surface);min-height:42px;color:var(--muted);border-radius:8px;align-items:center;gap:10px;padding:0 12px;display:flex}.resident-search input{width:100%;min-width:0;color:var(--text);background:0 0;border:0;outline:0}.resident-filter-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.resident-filter-row label{border:1px solid var(--border);background:var(--surface);min-height:40px;color:var(--muted);border-radius:8px;align-items:center;gap:8px;padding:0 10px;display:inline-flex}.resident-filter-row select{min-width:150px;color:var(--text);background:0 0;border:0;outline:0}.resident-card-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.resident-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:14px;min-width:0;padding:16px;display:grid}.resident-card-header{grid-template-columns:42px minmax(0,1fr) auto;align-items:start;gap:10px;display:grid}.resident-avatar{background:var(--primary);color:#fff;border-radius:8px;place-items:center;width:42px;height:42px;font-size:.82rem;font-weight:900;display:grid}.resident-card-header p{color:var(--primary-strong);margin:0 0 4px;font-size:.82rem;font-weight:800}.resident-card h2{overflow-wrap:anywhere;margin:0;font-size:1.08rem;line-height:1.2}.resident-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.resident-facts div{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;min-width:0;padding:10px}.resident-facts dt{color:var(--muted);font-size:.76rem;font-weight:800}.resident-facts dd{color:var(--text);overflow-wrap:anywhere;margin:4px 0 0;font-size:.9rem;font-weight:800}.resident-contact{background:var(--surface-soft);min-height:34px;color:var(--muted);overflow-wrap:anywhere;border-radius:8px;align-items:center;gap:8px;padding:0 10px;font-weight:800;display:flex}.resident-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.resident-actions .secondary-button{width:100%;min-height:36px}.resident-modal{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:16px;width:min(760px,100%);max-height:calc(100vh - 36px);padding:18px;display:grid;overflow-y:auto;box-shadow:0 22px 70px #17211f3d}.resident-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.resident-form-grid .span-all{grid-column:1/-1}.service-workspace{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:18px;display:grid}.service-main-panel,.service-controls{gap:16px;display:grid}.service-controls{gap:12px}.service-controls-head{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.service-controls-head h2{margin:0;font-size:1.05rem}.service-controls-head p{color:var(--muted);margin:5px 0 0;font-size:.88rem;line-height:1.45}.service-search{border:1px solid var(--border);background:var(--surface);min-height:42px;color:var(--muted);border-radius:8px;align-items:center;gap:10px;padding:0 12px;display:flex}.service-search input{width:100%;min-width:0;color:var(--text);background:0 0;border:0;outline:0}.service-filter-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.service-filter-row label{border:1px solid var(--border);background:var(--surface);border-radius:8px;align-items:center;min-height:40px;padding:0 10px;display:inline-flex}.service-filter-row select{min-width:170px;color:var(--text);background:0 0;border:0;outline:0}.service-card-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.service-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:14px;min-width:0;padding:16px;display:grid}.service-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.service-card-header p{color:var(--primary-strong);margin:0 0 5px;font-size:.82rem;font-weight:800}.service-card h2{overflow-wrap:anywhere;margin:0;font-size:1.08rem;line-height:1.2}.service-card-details{flex-wrap:wrap;gap:6px;display:flex}.service-card-details span{background:var(--surface-soft);min-height:28px;color:var(--muted);border-radius:999px;align-items:center;padding:0 10px;font-size:.8rem;font-weight:800;display:inline-flex}.service-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.service-actions .secondary-button{width:100%;min-height:36px}.service-side{gap:18px;display:grid}.service-side-list{gap:8px;display:grid}.service-side-row{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:4px;min-height:54px;padding:10px;display:grid}.service-side-row strong,.service-side-row small{display:block}.service-side-row small{color:var(--muted)}.service-modal{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:16px;width:min(760px,100%);max-height:calc(100vh - 36px);padding:18px;display:grid;overflow-y:auto;box-shadow:0 22px 70px #17211f3d}.service-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.service-form-grid .span-all{grid-column:1/-1}.letter-workspace{grid-template-columns:minmax(0,1fr) minmax(340px,420px);align-items:start;gap:18px;display:grid}.letter-master-panel{gap:14px;margin-bottom:18px;display:grid}.letter-template-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.letter-template-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;min-width:0;padding:14px;display:grid}.letter-template-card p,.letter-template-card h3,.letter-template-card span,.letter-template-card small{overflow-wrap:anywhere;margin:0;display:block}.letter-template-card p{color:var(--primary-strong);font-size:.78rem;font-weight:900}.letter-template-card h3{margin-top:5px;font-size:1rem;line-height:1.22}.letter-template-card div>span{color:var(--muted);margin-top:6px;font-size:.84rem;font-weight:700;line-height:1.4}.letter-template-card div>small{color:var(--muted);margin-top:8px;font-size:.76rem;font-weight:800}.letter-template-actions{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.letter-template-actions .secondary-button{width:100%;min-height:36px}.template-token-bar{flex-wrap:wrap;gap:8px;display:flex}.rich-editor-shell{border:1px solid var(--border);background:var(--surface);border-radius:8px;min-width:0;overflow:hidden}.rich-editor-shell .tox-tinymce{border:0}.rich-editor-shell .tox .tox-toolbar,.rich-editor-shell .tox .tox-toolbar__overflow,.rich-editor-shell .tox .tox-toolbar__primary{background:var(--surface-soft)}.rich-editor-shell .tox .tox-statusbar{border-top-color:var(--border)}.letter-style-editor{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px;display:grid}.style-editor-head{grid-column:1/-1}.style-editor-head strong,.style-editor-head span{display:block}.style-editor-head span{color:var(--muted);margin-top:4px;font-size:.84rem;font-weight:700}.template-token-hint{border:1px dashed var(--border);background:var(--surface-soft);color:var(--muted);border-radius:8px;padding:10px 12px;font-size:.84rem;font-weight:800;line-height:1.45}.letter-card-grid{grid-template-columns:repeat(auto-fit,minmax(286px,1fr));gap:14px;display:grid}.letter-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:14px;min-width:0;padding:16px;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid}.letter-card.is-selected{box-shadow:0 0 0 3px #0f766e1a, var(--shadow);border-color:#0f766e94}.letter-card:hover{transform:translateY(-1px)}.letter-card h2{overflow-wrap:anywhere;margin:0;font-size:1.08rem;line-height:1.2}.letter-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.letter-actions .secondary-button{width:100%;min-height:36px;padding-inline:10px}.letter-actions .danger-button{grid-column:1/-1}.letter-draft-panel{gap:12px;display:grid;position:sticky;top:82px}.letter-print-sheet{border:1px solid var(--border);min-width:0;box-shadow:var(--shadow);padding:var(--letter-page-padding,22px);color:var(--text);font-family:var(--letter-font-family,inherit);background:#fff;border-radius:8px;gap:18px;display:grid}.letter-print-header{border-bottom:2px solid var(--text);grid-template-columns:46px minmax(0,1fr);align-items:center;gap:12px;padding-bottom:14px;display:grid}.letter-print-mark{background:var(--surface-soft);width:46px;height:46px;color:var(--primary-strong);border-radius:8px;place-items:center;display:grid}.letter-print-header strong,.letter-print-header span,.letter-print-header small{overflow-wrap:anywhere;display:block}.letter-print-header strong{letter-spacing:0;font-size:.96rem}.letter-print-header span{color:var(--muted);margin-top:3px;font-size:.84rem}.letter-print-header small{color:var(--muted);margin-top:3px}.letter-print-title{text-align:center;gap:4px;display:grid}.letter-print-title h2{font-size:var(--letter-title-size,1.12rem);font-weight:var(--letter-title-weight,700);text-underline-offset:4px;overflow-wrap:anywhere;margin:0;text-decoration:underline}.letter-print-title p{color:var(--muted);margin:0;font-size:.88rem;font-weight:700}.letter-data-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.letter-data-grid div{border:1px solid var(--border);background:var(--surface-soft);padding:var(--letter-data-padding,10px);border-radius:8px}.letter-data-grid dt{color:var(--muted);text-transform:uppercase;margin:0 0 4px;font-size:.76rem;font-weight:800}.letter-data-grid dd{overflow-wrap:anywhere;margin:0;font-weight:800}.letter-body{line-height:var(--letter-line-height,1.72);font-size:var(--letter-font-size,.94rem);font-weight:var(--letter-body-weight,400);text-align:var(--letter-text-align,left);margin:0}.letter-body p{margin:0 0 var(--letter-paragraph-spacing,10px)}.letter-body p:last-child{margin-bottom:0}.letter-html-content p{margin:0 0 var(--letter-paragraph-spacing,10px)}.letter-html-content table{border-collapse:collapse;width:100%}.letter-html-content td,.letter-html-content th{border:1px solid var(--border);padding:6px}.letter-print-footer{grid-template-columns:minmax(0,1fr) minmax(180px,220px);align-items:end;gap:18px;display:grid}.letter-print-footer span,.signature-block small{color:var(--muted);font-size:.82rem;font-weight:700}.letter-print-footer strong{display:block}.signature-block{text-align:center;margin-top:var(--letter-signature-margin,0);gap:8px;display:grid}.signature-stamp{border:1px dashed var(--border);min-height:54px;color:var(--muted);border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:8px;display:inline-flex}.signature-stamp.is-signed{color:var(--primary-strong);background:#0f766e14;border-color:#0f766e85}.letter-snapshot{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;padding:12px;display:grid}.letter-snapshot strong{grid-column:1/-1}.letter-snapshot span{color:var(--muted);overflow-wrap:anywhere;font-size:.84rem;font-weight:800}.settings-workspace{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:18px;margin-bottom:18px;display:grid}.settings-profile-panel{gap:16px;display:grid}.settings-section-head{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.settings-section-head h2{margin:0;font-size:1.05rem}.settings-section-head p{color:var(--muted);margin:5px 0 0;font-size:.88rem;line-height:1.45}.settings-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.settings-form-grid .span-all{grid-column:1/-1}.settings-side{gap:18px;display:grid}.toggle-list{gap:8px;display:grid}.toggle-row{border:1px solid var(--border);background:var(--surface);border-radius:8px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:60px;padding:10px;display:grid}.toggle-icon{background:var(--surface-soft);width:34px;height:34px;color:var(--primary-strong);border-radius:8px;place-items:center;display:grid}.toggle-row strong,.toggle-row small{display:block}.toggle-row small{color:var(--muted);margin-top:3px}.toggle-row input{width:20px;height:20px;accent-color:var(--primary)}.officer-panel{gap:0;display:grid}.officer-card-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;display:grid}.officer-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:12px;min-width:0;padding:14px;display:grid}.officer-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.officer-card-header p{color:var(--primary-strong);margin:0 0 5px;font-size:.82rem;font-weight:800}.officer-card h3{overflow-wrap:anywhere;margin:0;font-size:1.02rem;line-height:1.22}.officer-access{background:var(--surface-soft);min-height:34px;color:var(--muted);border-radius:8px;align-items:center;padding:8px 10px;font-weight:800;display:flex}.officer-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.officer-actions .secondary-button{width:100%;min-height:36px}.settings-modal{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:16px;width:min(680px,100%);max-height:calc(100vh - 36px);padding:18px;display:grid;overflow-y:auto;box-shadow:0 22px 70px #17211f3d}.field{gap:7px;display:grid}.field span{color:var(--muted);font-size:.84rem;font-weight:700}.field input{border:1px solid var(--border);height:42px;color:var(--text);background:var(--surface);border-radius:8px;padding:0 12px}.field textarea{border:1px solid var(--border);min-height:148px;color:var(--text);background:var(--surface);resize:vertical;line-height:1.55;font:inherit;border-radius:8px;padding:11px 12px}.field input[type=range]{height:32px;accent-color:var(--primary);background:0 0;padding:0}.lookup-field{position:relative}.lookup-input-wrap{align-items:center;display:flex;position:relative}.lookup-input-wrap input{border:1px solid var(--border);width:100%;height:42px;color:var(--text);background:var(--surface);border-radius:8px;padding:0 32px 0 34px}.lookup-input-wrap input:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 14%, transparent);outline:none}.lookup-search-icon{color:var(--muted);pointer-events:none;position:absolute;left:11px}.lookup-chevron{color:var(--muted);pointer-events:none;position:absolute;right:11px}.lookup-dropdown{z-index:30;border:1px solid var(--border);background:var(--surface);border-radius:8px;max-height:240px;margin-top:4px;padding:4px;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #17211f1f}.lookup-option{cursor:pointer;border-radius:6px;padding:8px 10px;transition:background .1s}.lookup-option.is-highlighted{background:var(--surface-soft)}.lookup-option-main{align-items:baseline;gap:6px;display:flex}.lookup-option-main strong{font-size:.92rem;font-weight:700}.lookup-nickname{color:var(--muted);font-size:.82rem}.lookup-option-meta{color:var(--muted);gap:12px;margin-top:2px;font-size:.78rem;display:flex}.lookup-empty{text-align:center;color:var(--muted);padding:14px 10px;font-size:.88rem}.lookup-selected{border:1px solid var(--primary);background:color-mix(in srgb, var(--primary) 6%, var(--surface));border-radius:8px;align-items:center;gap:8px;height:42px;padding:0 8px 0 12px;display:flex}.lookup-selected-name{color:var(--text);flex:1;font-size:.92rem;font-weight:700}.lookup-clear{width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;transition:background .15s,color .15s;display:grid}.lookup-clear:hover{background:var(--surface-soft);color:var(--danger)}.input-readonly{cursor:not-allowed;background:var(--surface-soft)!important;color:var(--muted)!important}.public-page{background:var(--background);flex-direction:column;min-height:100vh;display:flex}.public-header{z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);background:#ffffffeb;position:sticky;top:0}.public-header-inner{justify-content:space-between;align-items:center;gap:16px;max-width:860px;height:64px;margin:0 auto;padding:0 28px;display:flex}.public-brand{align-items:center;gap:12px;display:flex}.public-brand-title{color:var(--text);font-size:1.08rem;font-weight:800;line-height:1.2;display:block}.public-brand-location{color:var(--muted);margin-top:2px;font-size:.82rem;display:block}.public-login-link{border:1px solid var(--border);background:var(--surface);height:38px;color:var(--primary-strong);white-space:nowrap;border-radius:8px;align-items:center;gap:7px;padding:0 14px;font-size:.88rem;font-weight:800;text-decoration:none;transition:border-color .14s,background .14s;display:inline-flex}.public-login-link:hover{border-color:var(--primary);background:var(--surface-soft)}.public-main{flex:1}.public-hero{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#0f766e0f 0%,#0f766e05 100%)}.public-hero-inner{max-width:860px;margin:0 auto;padding:48px 28px 42px}.public-hero-title{color:var(--text);letter-spacing:-.02em;margin:0;font-size:clamp(2rem,4vw,2.8rem);line-height:1.08}.public-hero-desc{max-width:560px;color:var(--muted);margin:14px 0 0;font-size:1.05rem;line-height:1.55}.public-hero-location{color:var(--primary-strong);background:#0f766e14;border-radius:999px;align-items:center;gap:7px;margin-top:18px;padding:7px 14px;font-size:.88rem;font-weight:700;display:inline-flex}.public-content{max-width:860px;margin:0 auto;padding:32px 28px 48px}.public-empty{border:1px dashed var(--border);background:var(--surface);color:var(--muted);text-align:center;border-radius:12px;justify-items:center;gap:12px;padding:48px 28px;display:grid}.public-empty p{margin:0;font-size:1rem;font-weight:700}.public-announcement-list{gap:16px;display:grid}.public-announcement-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;gap:14px;padding:22px 24px;transition:box-shadow .18s,transform .18s;display:grid;box-shadow:0 2px 12px #17211f0a}.public-announcement-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.public-announcement-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.public-announcement-badge{color:var(--primary-strong);background:#0f766e14;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:.78rem;font-weight:800;display:inline-flex}.public-announcement-date{color:var(--muted);align-items:center;gap:6px;font-size:.82rem;font-weight:700;display:inline-flex}.public-announcement-title{color:var(--text);overflow-wrap:anywhere;margin:0;font-size:1.22rem;line-height:1.3}.public-announcement-body{color:var(--text);overflow-wrap:anywhere;margin:0;font-size:.94rem;line-height:1.7}.public-announcement-body p{margin:0 0 10px}.public-announcement-body p:last-child{margin-bottom:0}.public-announcement-body h2,.public-announcement-body h3{margin:14px 0 6px;line-height:1.3}.public-announcement-body h2{font-size:1.15em}.public-announcement-body h3{font-size:1.05em}.public-announcement-body ul,.public-announcement-body ol{margin:0 0 10px;padding-left:22px}.public-announcement-body blockquote{border-left:3px solid var(--primary);color:var(--muted);margin:10px 0;padding:6px 14px}.public-announcement-body table{border-collapse:collapse;width:100%;margin:10px 0}.public-announcement-body td,.public-announcement-body th{border:1px solid var(--border);text-align:left;padding:6px 10px}.public-announcement-body img{border-radius:6px;max-width:100%;height:auto}.public-announcement-body a{color:var(--primary);text-decoration:underline}.public-announcement-footer{align-items:center;gap:10px;display:flex}.public-announcement-status{height:26px;color:var(--success);background:#dcfce7;border-radius:999px;align-items:center;padding:0 10px;font-size:.74rem;font-weight:800;display:inline-flex}.public-footer{border-top:1px solid var(--border);background:var(--surface)}.public-footer p{max-width:860px;color:var(--muted);text-align:center;margin:0 auto;padding:22px 28px;font-size:.84rem}.login-page{background-color:#0000;background-image:linear-gradient(90deg,#f4f6f5fa 0%,#f4f6f5e0 54%,#f4f6f5a3 100%),url(https://images.unsplash.com/photo-1518005020951-eccb494ad742?auto=format&fit=crop&w=1600&q=80);background-position:50%;background-repeat:repeat,repeat;background-size:cover;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;grid-template-columns:minmax(360px,520px) minmax(0,1fr);min-height:100vh;display:grid}.login-panel{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;justify-content:center;gap:22px;min-height:100vh;padding:42px;display:flex}.login-brand{align-items:center;gap:14px;display:flex}.login-brand h1{overflow-wrap:anywhere;margin:0;font-size:clamp(1.8rem,3vw,2.45rem);line-height:1.05}.login-brand p{color:var(--muted);margin:8px 0 0;line-height:1.5}.login-form{gap:14px;display:grid}.login-submit{width:100%;margin-top:4px}.alert{border-radius:8px;padding:12px 14px;font-size:.9rem;font-weight:700}.alert.is-error{color:var(--danger);background:#fee2e2}.alert.is-success{color:var(--success);background:#dcfce7}.login-aside{flex-direction:column;justify-content:flex-end;gap:14px;padding:42px;display:flex}.login-aside h2{margin:0;font-size:1.35rem}.login-aside p{color:var(--muted);margin:0}.demo-list{gap:10px;width:min(520px,100%);display:grid}.demo-user{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffe0;border:1px solid #d7e0ddd1;border-radius:8px;gap:3px;min-height:60px;padding:12px 14px;display:grid}.demo-user span{color:var(--muted);font-size:.9rem}.unauthorized-actions{flex-wrap:wrap;gap:10px;display:flex}.primary-link,.secondary-button{border-radius:8px;justify-content:center;align-items:center;min-height:40px;padding:0 14px;font-weight:800;text-decoration:none;display:inline-flex}.primary-link{background:var(--primary);color:#fff;gap:8px}.secondary-button{border:1px solid var(--border);background:var(--surface);color:var(--text);gap:8px;max-width:100%}.secondary-button:disabled{cursor:not-allowed;opacity:.52}.secondary-button.is-active{border-color:var(--primary);color:var(--primary-strong);background:var(--surface-soft)}.secondary-link{border:1px solid var(--border);background:var(--surface);min-height:40px;color:var(--text);border-radius:8px;align-items:center;gap:8px;padding:0 14px;font-weight:800;text-decoration:none;display:inline-flex}.field select{border:1px solid var(--border);height:42px;color:var(--text);background:var(--surface);border-radius:8px;padding:0 12px}.map-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:18px;display:grid}.map-single-layout{gap:18px;display:grid}.map-panel,.map-editor{min-width:0}.map-toolbar,.map-toolbar-actions{flex-wrap:wrap;justify-content:flex-end}.inline-upload-form{display:inline-flex}.file-button{position:relative;overflow:hidden}.file-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.icon-button.small{width:30px;height:30px}.area-link-popover{z-index:5;border:1px solid var(--border);width:min(390px,100% - 24px);box-shadow:var(--shadow);background:#fffffffa;border-radius:8px;gap:10px;padding:12px;display:grid;position:absolute}.area-action-menu{z-index:6;border:1px solid var(--border);width:190px;box-shadow:var(--shadow);background:#fffffffa;border-radius:8px;gap:4px;padding:8px;display:grid;position:absolute}.area-action-title{border-bottom:1px solid var(--border);gap:2px;margin-bottom:4px;padding:6px 8px 8px;display:grid}.area-action-title span{color:var(--muted);font-size:.82rem}.area-action-menu button{min-height:36px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:9px;padding:0 8px;display:flex}.area-action-menu button:hover{background:var(--surface-soft)}.area-action-menu button.is-danger{color:var(--danger)}.popover-header,.popover-actions,.map-help-row{align-items:center;gap:14px;display:flex}.popover-header,.map-help-row{justify-content:space-between}.popover-actions{justify-content:flex-end}.field.compact{gap:5px}.field.compact select{width:100%;min-width:0;height:38px}.map-toolbar{margin-bottom:14px}.map-toolbar .panel-meta{white-space:normal;margin-top:5px;display:block}.map-canvas{border:1px solid var(--border);background:var(--surface-soft);touch-action:pan-y;border-radius:8px;width:100%;position:relative;overflow:visible}.map-canvas.is-focus-mode{scroll-behavior:smooth;overflow:auto}.map-canvas.is-editing{cursor:crosshair;touch-action:none}.map-stage{width:100%;position:relative}.map-stage.is-focused{width:200%;height:200%}.map-plane{aspect-ratio:1322/1282;width:100%;position:relative}.map-stage.is-focused .map-plane{width:50%;height:50%;inset:25% auto auto 25%}.map-image,.map-overlay{width:100%;height:100%;display:block;position:absolute;inset:0}.map-image{object-fit:fill;z-index:1}.map-image.is-missing{visibility:hidden;position:absolute}.map-image.is-missing+.map-fallback{min-height:320px;position:relative}.map-fallback{z-index:0;text-align:center;color:var(--muted);place-content:center;gap:8px;padding:24px;display:grid;position:absolute;inset:0}.map-fallback strong{color:var(--text)}.map-overlay{z-index:2}.house-polygon{opacity:.42;stroke:#fff;stroke-width:.45px;vector-effect:non-scaling-stroke;cursor:pointer;transition:opacity .16s,filter .16s}.house-polygon:hover,.house-polygon.is-hovered{opacity:.78;filter:drop-shadow(0 0 5px #0f766e7a)}.house-polygon.is-selected{opacity:.82;stroke:#111827;stroke-width:.72px;filter:drop-shadow(0 0 6px #11182757)}.house-polygon.is-highlighted{opacity:.92;stroke:#f59e0b;stroke-width:1.25px;filter:drop-shadow(0 0 9px #f59e0bc2);animation:.62s ease-in-out 10 map-area-pulse}@keyframes map-area-pulse{0%,to{opacity:.42;filter:drop-shadow(0 0 2px #f59e0b3d)}50%{opacity:.96;filter:drop-shadow(0 0 12px #f59e0bdb)}}.draft-line{fill:none;stroke:var(--primary);stroke-width:.45px;vector-effect:non-scaling-stroke}.draft-fill{opacity:.34;stroke:none;cursor:move}.draft-fill.is-dragging{opacity:.48;cursor:grabbing}.draft-point{fill:#fff;stroke:var(--primary);stroke-width:.35px;vector-effect:non-scaling-stroke;cursor:grab}.draft-point.is-dragging{cursor:grabbing;fill:var(--surface-soft);stroke-width:.55px}.map-popup{z-index:4;border:1px solid var(--border);width:min(280px,100% - 28px);box-shadow:var(--shadow);pointer-events:none;background:#fffffff5;border-radius:8px;gap:4px;padding:12px;display:grid;position:absolute}.map-popup strong,.map-popup span,.map-popup small{overflow-wrap:anywhere}.map-popup span,.map-popup small{color:var(--muted)}.map-editor{gap:14px;display:grid}.map-upload-form,.map-editor-actions{gap:10px;display:grid}.map-upload-form .secondary-button,.map-editor-actions .primary-button,.map-editor-actions .secondary-button{width:100%}.file-field{border:1px dashed var(--border);background:var(--surface-soft);border-radius:8px;gap:8px;padding:12px;display:grid}.file-field span{color:var(--muted);font-size:.84rem;font-weight:800}.file-field input{width:100%}.color-field{color:var(--muted);justify-content:flex-start;align-items:center;gap:10px;font-size:.84rem;font-weight:800;display:flex}.color-field input{border:1px solid var(--border);background:var(--surface);border-radius:8px;width:42px;height:32px;padding:2px}.editor-instructions{border:1px solid var(--border);background:var(--surface-soft);color:var(--muted);border-radius:8px;grid-template-columns:22px minmax(0,1fr);gap:8px;padding:12px;font-size:.88rem;line-height:1.45;display:grid}.selected-house-card{border:1px solid var(--primary);color:var(--primary-strong);background:#ecfdf5;border-radius:8px;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:8px;padding:12px;display:grid}.selected-house-card.is-empty{border-color:var(--border);background:var(--surface-soft);color:var(--muted)}.selected-house-card strong,.selected-house-card span{display:block}.selected-house-card strong{color:var(--text)}.selected-house-card span{margin-top:4px;font-size:.86rem}.map-message{color:var(--success);background:#dcfce7;border-radius:8px;padding:10px 12px;font-size:.88rem;font-weight:800}.mapped-list{gap:8px;display:grid}.mapped-list.horizontal{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:14px}.mapped-list.horizontal h3{grid-column:1/-1}.mapped-list h3{margin:8px 0 0;font-size:.92rem}.mapped-row{border:1px solid var(--border);background:var(--surface);min-height:42px;color:var(--text);text-align:left;border-radius:8px;grid-template-columns:12px minmax(0,1fr);align-items:center;gap:10px;padding:0 10px;display:grid}.mapped-row:hover{border-color:var(--primary)}.mapped-row.is-highlighted{background:#f59e0b1f;border-color:#f59e0b8c;box-shadow:0 0 0 3px #f59e0b24}.mapped-dot{border-radius:999px;width:10px;height:10px}@media print{body{background:#fff}body *{visibility:hidden}.letter-print-sheet,.letter-print-sheet *{visibility:visible}.letter-print-sheet{width:100%;box-shadow:none;border:0;border-radius:0;padding:28px 34px;position:absolute;inset:0 auto auto 0}.letter-print-mark{border:1px solid #d7e0dd}.signature-stamp{break-inside:avoid}}@media (max-width:1120px){.app-shell{grid-template-columns:1fr}.sidebar{z-index:6;border-right:0;border-bottom:1px solid var(--border);gap:12px;min-height:auto;padding:12px 18px;position:sticky;top:0;overflow:hidden}.brand{min-height:42px}.nav-list{-webkit-overflow-scrolling:touch;scrollbar-width:thin;grid-auto-columns:max-content;grid-auto-flow:column;padding-bottom:2px;overflow-x:auto}.sidebar-status{display:none}.app-header{position:static}.stats-grid,.stats-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid,.module-grid,.settings-grid,.map-layout,.house-workspace,.service-workspace,.letter-workspace,.settings-workspace{grid-template-columns:1fr}.letter-draft-panel{position:static}.settings-grid .span-2{grid-column:auto}}@media (max-width:700px){.brand-mark{width:36px;height:36px}.brand-title{font-size:.96rem}.brand-caption{font-size:.76rem}.nav-item{gap:7px;min-height:38px;padding:0 10px;font-size:.86rem}.app-header{flex-direction:column;align-items:stretch;gap:10px;height:auto;padding:14px 18px}.global-search,.search-box{flex:none;width:100%}.search-box{height:38px}.header-profile{white-space:normal;justify-content:space-between;gap:10px}.header-profile form{flex:none}.main{padding:18px}.page-header{flex-direction:column;align-items:stretch;gap:14px;margin-bottom:18px}.page-title{font-size:1.55rem}.page-subtitle{font-size:.92rem}.toolbar{justify-content:stretch;width:100%}.select,.primary-button{flex:1;min-width:0}.icon-button{flex:0 0 40px}.stats-grid,.stats-grid.two,.stats-grid.three{grid-template-columns:1fr;gap:10px}.panel{padding:14px}.panel-header{flex-direction:column;align-items:flex-start}.panel-meta{white-space:normal}.stat-card{min-height:108px;padding:14px}.stat-value{font-size:1.38rem}.chart-row{grid-template-columns:58px minmax(0,1fr) 58px}.dues-row{grid-template-columns:1fr;align-items:start}.badge{width:max-content;max-width:100%}.data-table{min-width:640px;font-size:.86rem}.data-table th,.data-table td{padding:11px 10px}.table-wrap{border:1px solid var(--border)}.map-toolbar,.map-toolbar-actions,.map-help-row,.house-filter-row,.resident-filter-row,.service-filter-row{flex-direction:column;align-items:stretch}.house-search,.house-filter-row label,.house-filter-row select,.resident-search,.resident-filter-row label,.resident-filter-row select,.service-search,.service-filter-row label,.service-filter-row select,.segmented-control{width:100%}.house-controls-head,.resident-controls-head,.service-controls-head,.settings-section-head{flex-direction:column;align-items:stretch}.house-controls-head .primary-button,.resident-controls-head .primary-button,.service-controls-head .primary-button,.settings-section-head .primary-button{width:100%}.segmented-control button{flex:1;justify-content:center}.house-card-grid,.resident-card-grid,.service-card-grid,.letter-card-grid,.letter-template-grid,.officer-card-grid{grid-template-columns:1fr}.house-card,.resident-card,.service-card,.letter-card,.letter-print-sheet{padding:14px}.house-card-header{flex-direction:column;align-items:stretch}.resident-card-header{grid-template-columns:42px minmax(0,1fr)}.service-card-header{flex-direction:column;align-items:stretch}.service-card-header .badge{width:max-content}.resident-card-header .badge{grid-column:1/-1;width:max-content}.house-card-header .badge{width:max-content}.house-facts,.resident-facts{grid-template-columns:1fr}.house-actions{grid-template-columns:1fr 1fr;display:grid}.resident-actions,.service-actions,.letter-actions,.letter-template-actions,.officer-actions{grid-template-columns:1fr 1fr}.house-form-grid,.resident-form-grid,.service-form-grid,.settings-form-grid,.detail-summary-grid{grid-template-columns:1fr}.resident-form-grid .span-all,.service-form-grid .span-all,.settings-form-grid .span-all{grid-column:auto}.letter-snapshot{grid-template-columns:1fr}.letter-snapshot strong{grid-column:auto}.letter-style-editor{grid-template-columns:1fr}.style-editor-head{grid-column:auto}.letter-print-header{grid-template-columns:40px minmax(0,1fr)}.letter-print-mark{width:40px;height:40px}.letter-data-grid,.letter-print-footer{grid-template-columns:1fr}.modal-backdrop{align-items:end;padding:10px}.house-modal,.resident-modal,.service-modal,.settings-modal{width:100%;max-height:min(86vh,720px);padding:14px}.modal-header{gap:10px}.modal-actions{grid-template-columns:1fr 1fr;display:grid}.modal-actions .primary-button,.modal-actions .secondary-button{width:100%;min-width:0}.occupant-card-list{gap:10px;display:grid}.occupant-card{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;padding:12px;display:grid}.occupant-card strong,.occupant-card span,.occupant-card small{overflow-wrap:anywhere;display:block}.occupant-card div span,.occupant-card small{color:var(--muted);font-size:.84rem}.occupant-card small{grid-column:1/-1}.detail-grid .table-wrap{display:none}.house-side,.service-side,.settings-side{gap:12px}.map-toolbar-actions .secondary-button,.map-help-row .secondary-button{width:100%}.map-popup{display:none}.area-link-popover{width:auto;max-height:min(52vh,360px);position:fixed;inset:auto 12px 12px;overflow-y:auto}.popover-header,.popover-actions{gap:8px}.popover-actions .primary-button,.popover-actions .secondary-button{flex:1}.area-action-menu{width:auto;position:fixed;bottom:12px;right:12px;top:auto!important;left:12px!important}.login-page{background:var(--background);grid-template-columns:1fr}.login-panel{border-right:0;min-height:auto;padding:28px 18px}.login-brand{align-items:flex-start}.login-aside{justify-content:flex-start;padding:18px}.public-header-inner{padding:0 18px}.public-hero-inner{padding:32px 18px 28px}.public-hero-title{font-size:1.65rem}.public-content{padding:22px 18px 36px}.public-announcement-card{border-radius:10px;padding:18px}.public-announcement-title{font-size:1.08rem}.public-footer p{padding:18px}}@media (max-width:420px){.sidebar{padding:10px 12px}.brand-caption{display:none}.main,.app-header{padding-left:12px;padding-right:12px}.page-title{font-size:1.38rem}.toolbar{grid-template-columns:1fr auto auto;display:grid}.toolbar .primary-button,.toolbar .select{grid-column:1/-1}.toolbar .icon-button{width:100%}.panel{padding:12px}.mapped-list.horizontal,.house-actions,.resident-actions,.service-actions,.letter-actions,.letter-template-actions,.officer-actions{grid-template-columns:1fr}.toggle-row{grid-template-columns:34px minmax(0,1fr)}.toggle-row input{grid-column:1/-1;width:100%}.linked-house-row{grid-template-columns:1fr;align-items:start}.modal-actions{grid-template-columns:1fr}.modal-header{flex-direction:column;align-items:stretch}.modal-header .icon-button{width:100%}.area-link-popover,.area-action-menu{bottom:8px;left:8px;right:8px}.login-panel,.login-aside{padding:22px 12px}}
