:root{color:#1e293b;font-synthesis:none;text-rendering:optimizelegibility;background:#f4f7fb;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{overflow-x:hidden}body{color:#1e293b;background:#f4f7fb;min-width:0;min-height:100vh;margin:0;font-size:16px;line-height:1.45}button,input{font:inherit}button{cursor:pointer}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid #d5e3f0;padding:10px 12px}th{color:#1d4e89;font-weight:700}tr:hover{background:#e8f2fb}#root{min-height:100vh}.app{min-height:100vh;overflow-x:hidden}.header{z-index:60;color:#fff;background:#0c3d7a;border-bottom:3px solid #082a56;justify-content:space-between;align-items:center;gap:16px;height:72px;padding:0 24px;display:flex;position:relative}.header-left{align-items:center;gap:12px;min-width:0;display:flex}.header-brand{align-items:baseline;gap:10px;min-width:0;display:flex}.header h1{min-width:0;margin:0;font-size:22px}.header-version{color:#d6e6f8;white-space:nowrap;flex-shrink:0;font-size:13px;font-weight:600;line-height:1}.header-title{color:#fff;max-width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:1px;margin:0;padding:0;line-height:1.15;display:flex}.header-title-main{letter-spacing:.01em;font-size:20px;font-weight:800}.header-title-sub{color:#d6e6f8;font-size:12px;font-weight:700}.header-title:hover{color:#fff;opacity:.88}.menu-toggle{color:#fff;background:0 0;border:0;border-radius:6px;flex-shrink:0;width:44px;height:44px;padding:0;font-size:22px;line-height:1;display:none}.menu-toggle:hover{background:#ffffff24}.header-user{align-items:center;gap:16px;font-size:14px;display:flex}.nav-drawer-backdrop,.nav-drawer{display:none}.layout{grid-template-columns:268px minmax(0,1fr);min-height:calc(100vh - 72px);display:grid}.sidebar{background:#f8fbfe;border-right:1px solid #b7cfe6;padding:16px 10px}.sidebar-title{color:#0c3d7a;letter-spacing:.04em;padding:0 10px 12px;font-size:12px;font-weight:800}.nav-button{text-align:left;color:#1e3a5f;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;width:100%;min-height:40px;margin-bottom:4px;padding:8px 10px;font-weight:600;display:flex}.nav-button:hover{background:#e8f2fb;border-color:#c5daf0}.nav-button.active{color:#fff;background:#0c4a8a;border-color:#0c4a8a}.nav-mark{color:#0c4a8a;background:#e8f2fb;border-radius:6px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:800;line-height:1;display:inline-flex}.nav-button.active .nav-mark{color:#fff;background:#fff3}.nav-label{min-width:0;line-height:1.3}.main{min-width:0;padding:24px;overflow-x:hidden}.dashboard-grid{grid-template-columns:repeat(5,minmax(130px,1fr));gap:12px;margin-bottom:24px;display:grid}.stat-card{min-width:0;color:inherit;background:#fff;border:1px solid #b7cfe6;border-radius:10px;padding:16px;box-shadow:0 1px 2px #0c3d7a0f}button.stat-card{text-align:left}button.stat-card:hover{background:#f3f8fd;border-color:#0c4a8a}.stat-label{color:#5b6b80;font-size:13px;font-weight:700}.stat-value{color:#0c3d7a;margin-top:6px;font-size:26px;font-weight:800}.quick-menu h2{color:#0c3d7a;margin-bottom:12px;font-size:18px;font-weight:800}.quick-menu-category+.quick-menu-category{margin-top:14px}.quick-menu-category h3{color:#1d4e89;margin:0 0 8px;font-size:13px;font-weight:800}.quick-menu-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.quick-menu-card{color:#1e293b;text-align:left;white-space:normal;cursor:pointer;background:#fff;border:1px solid #b7cfe6;border-radius:10px;align-items:center;gap:8px;min-width:0;min-height:48px;padding:12px 14px;font-size:15px;font-weight:700;line-height:1.35;display:flex;box-shadow:0 1px 2px #0c3d7a0f}.quick-menu-card:hover{background:#f3f8fd;border-color:#0c4a8a}.panel{background:#fff;border:1px solid #b7cfe6;border-radius:10px;min-width:0;padding:20px;box-shadow:0 1px 2px #0c3d7a0f}.panel+.panel{margin-top:16px}.search-form{align-items:center;gap:8px;min-width:0;margin-bottom:16px;display:flex}.login-page{justify-content:center;padding:80px 16px;display:flex}.login-panel{width:min(100%,420px)}.login-panel h1{color:#0c3d7a;margin-top:0;margin-bottom:4px;font-size:22px;font-weight:800}.login-subtitle{color:#1d4e89;margin:0 0 8px;font-weight:700}.login-panel label{margin-top:14px;margin-bottom:6px;display:block}.login-panel .search-input,.login-panel .primary-button{width:100%}.login-panel .primary-button{margin-top:16px}.login-idle-notice{color:#0c3d7a;margin-top:12px;font-weight:700}.search-input{color:#1e293b;box-sizing:border-box;background:#fff;border:1px solid #b7cfe6;border-radius:8px;width:min(480px,100%);min-width:0;min-height:40px;padding:10px 12px}.search-input::placeholder{color:#5b6b80}.search-input:focus{outline-offset:1px;border-color:#0c4a8a;outline:2px solid #0c4a8a38}select.search-input{appearance:auto}.primary-button{color:#fff;white-space:nowrap;background:#0c4a8a;border:0;border-radius:8px;min-height:40px;padding:10px 16px;font-weight:700}.primary-button:hover{background:#0a3d73}.primary-button:disabled{opacity:.55;cursor:default}.secondary-button{color:#0c4a8a;white-space:nowrap;background:#fff;border:1px solid #0c4a8a;border-radius:8px;min-height:40px;padding:8px 14px;font-weight:700}.secondary-button:hover{background:#e8f2fb}.secondary-button:disabled{opacity:.55;cursor:default}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.parking-card{background:#fff;border:1px solid #b7cfe6;border-radius:8px;min-width:0;padding:16px}.parking-card+.parking-card{margin-top:10px}.parking-ended-divider{border-top:1px solid #b7cfe6;margin-top:20px;margin-bottom:12px;padding-top:16px}.parking-ended-heading{color:#5b6b80;margin:0;font-size:13px;font-weight:600}.parking-card-ended{color:#5b6b80;opacity:.82;background:#fff;border-color:#b7cfe6;padding:12px;font-size:13px}.detail-route-link{color:#1d4ed8;font:inherit;font-weight:700;line-height:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;margin:0;padding:0;text-decoration:underline}.detail-route-link:visited{color:#1d4ed8}.detail-route-link:hover{color:#1e3a8a}.detail-route-link:focus-visible{outline-offset:2px;outline:2px solid #1d4ed8}.muted{color:#5b6b80}.resident-name-kana{font-size:.85em;line-height:1.3}.warning{color:#b45309}.parking-scheduled-end{color:#fde68a;background:#422006;border:1px solid #d97706;border-radius:6px;margin-top:8px;padding:8px 10px;font-weight:700}.success{color:#166534}.parking-list-filter{width:100%;min-width:0;max-width:760px}.parking-filter-row{grid-template-columns:76px minmax(0,1fr);align-items:center;gap:12px;min-width:0;margin-bottom:10px;display:grid}.parking-filter-row label{white-space:nowrap;color:#5b6b80;font-size:14px}.parking-filter-row input,.parking-filter-row select{box-sizing:border-box;width:100%;min-width:0}.parking-filter-row .search-input{width:100%;max-width:none}.resident-search-query{min-width:0;position:relative}.resident-search-history{z-index:20;background:#fff;border:1px solid #b7cfe6;border-radius:8px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;box-shadow:0 8px 20px #0f172a1f}.resident-search-history-item,.resident-search-history-clear{color:#1e293b;width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;margin:0;padding:8px 10px;display:block}.resident-search-history-item:hover,.resident-search-history-item:focus-visible,.resident-search-history-clear:hover,.resident-search-history-clear:focus-visible{background:#e8f1fb}.resident-search-history-clear{color:#5b6b80;border-top:1px solid #d5e4f2;border-radius:0 0 6px 6px;margin-top:4px}.parking-filter-actions{flex-wrap:wrap;gap:10px;margin-top:16px;margin-left:88px;display:flex}.parking-end-contract-action{justify-content:flex-start;margin-top:16px;margin-left:0;display:flex}.parking-end-contract-action .danger-button{align-self:flex-start;width:auto}.resident-list-filter .parking-filter-row{grid-template-columns:88px minmax(0,1fr)}.resident-search-table{table-layout:fixed;width:100%;min-width:880px}.resident-search-table th,.resident-search-table td{padding:8px}.resident-col-area,.resident-col-building{width:6%}.resident-col-room{width:7%}.resident-col-name{width:16%}.resident-col-occupancy{width:11%}.resident-col-parking{width:22%}.resident-col-bike{width:18%}.resident-col-actions{width:14%}.resident-name-cell,.resident-bike-cell{overflow:hidden}.resident-name-text,.resident-bike-text{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.resident-bike-line{align-items:center;gap:4px;min-width:0;display:flex}.resident-bike-text{min-width:0}.resident-bike-flag{color:#fde68a;white-space:nowrap;background:#78350f;border-radius:999px;flex:none;padding:1px 6px;font-size:11px;line-height:1.4}.resident-row-inactive td{color:#5b6b80}.resident-history-heading{margin-top:24px}.resident-card-former{color:#5b6b80;background:#fff;border-color:#b7cfe6}.resident-occupancy-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.resident-former-label{font-size:13px}.resident-former-meta{margin-top:6px;font-size:13px}.csv-export-button{min-width:96px}.search-result-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.search-result-actions .muted{margin:0 auto 0 0}.csv-export-intro{margin-bottom:20px}.csv-export-back-row{margin-bottom:12px}.csv-export-section{margin-top:28px}.csv-export-section h3{margin-top:0;margin-bottom:8px}.csv-export-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.csv-export-card{background:#fff;border:1px solid #b7cfe6;border-radius:8px;flex-direction:column;gap:12px;min-width:0;padding:16px;display:flex}.csv-export-card h3,.csv-export-card p{margin:0}.csv-export-card .csv-export-button{align-self:flex-start;margin-top:auto}.parking-table-wrap,.vacant-space-table-wrap,.security-table-wrap,.waiting-search-results,.waiting-candidate-wrap{-webkit-overflow-scrolling:touch;border-radius:6px;width:100%;min-width:0;max-width:100%;overflow-x:auto}.parking-position-cell{white-space:nowrap}.parking-size-detail{font-variant-numeric:tabular-nums;min-width:16rem;max-width:24rem;line-height:1.45}.review-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.review-header h2{margin-bottom:8px}.review-header-actions{flex-wrap:wrap;gap:8px;display:flex}.waiting-search-results{border:1px solid #b7cfe6;border-radius:6px;max-height:320px;margin:12px 0;overflow:auto}.waiting-search-table{min-width:560px}.review-intro{margin:0}.review-section{margin-top:28px}.review-section h3{margin-top:0;margin-bottom:8px}.review-section-count{margin:0 0 12px}.duplicate-space-meta{flex-wrap:wrap;gap:8px 16px;margin-bottom:8px;display:flex}.duplicate-contract-row{border-top:1px solid #b7cfe6;padding:8px 0}.review-compact-table{min-width:360px}.review-action-message{margin:0 0 16px}.review-action-message p{margin:0}.review-action-buttons{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.review-action-buttons button{padding:7px 10px;font-size:13px}.resident-verify-button{margin-top:10px;padding:7px 10px;font-size:13px}.resident-card-actions{flex-wrap:wrap;gap:8px;display:flex}.resident-card-actions .resident-verify-button{margin-top:10px}.resident-edit-label{color:#5b6b80;margin-bottom:6px;font-size:14px;display:block}.resident-edit-input{width:100%;max-width:none;margin-bottom:8px}.resident-edit-textarea{resize:vertical;min-height:72px}.resident-replace-notice{color:#b45309;background:#fff7ed;border:1px solid #92400e;border-radius:6px;margin:0 0 16px;padding:12px}.resident-replace-notice p{margin:0 0 8px}.resident-replace-notice p:last-child{margin:0}.resident-replace-check{color:#1e293b;align-items:flex-start;gap:8px;margin:4px 0 12px;font-size:14px;display:flex}.remote-edit-status-fieldset{border:0;margin:0 0 12px;padding:0}.remote-edit-status-fieldset .resident-replace-check{margin-bottom:6px}.modal-panel h3{margin:0 0 12px}.contract-modal-panel{width:min(960px,100%);max-height:90vh;overflow:auto}.contract-filter-actions{flex-wrap:wrap;gap:10px;margin:12px 0 8px;display:flex}.vacant-space-table-wrap{border:1px solid #b7cfe6;border-radius:6px;max-height:280px;margin:12px 0;overflow:auto}.selected-row,tbody tr.selected-row:hover{background:#cfe3fb}.danger-button{color:#fff;white-space:nowrap;background:#b91c1c;border:1px solid #991b1b;border-radius:8px;min-height:40px;padding:8px 14px;font-weight:700}.danger-button:hover{background:#991b1b}.danger-button:disabled{opacity:.55;cursor:default}.modal-backdrop{z-index:40;background:#0f172ab8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-panel{background:#fff;border:1px solid #b7cfe6;border-radius:8px;width:min(480px,100%);padding:20px}.waiting-application-backdrop{align-items:flex-start;overflow:hidden}.waiting-application-modal{box-sizing:border-box;flex-direction:column;min-height:0;max-height:calc(100vh - 32px);display:flex;overflow:hidden}.waiting-application-header{flex-shrink:0}.waiting-application-body{flex:auto;min-height:0;overflow:hidden auto}.waiting-application-footer{background:#fff;flex-shrink:0;margin-top:0;padding-top:12px;position:sticky;bottom:0}.waiting-application-footer .warning{flex-basis:100%;margin:0 0 8px}.temporary-loan-modal{width:min(640px,100%)}.temporary-loan-page{min-width:0;max-width:100%}.temporary-loan-scroll-region,.temporary-loan-table-wrap{width:100%;min-width:0;max-width:100%}.temporary-loan-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.temporary-loan-x-scroll{height:0;overflow:hidden}.temporary-loan-x-scroll.is-visible{bottom:env(safe-area-inset-bottom,0px);z-index:5;scrollbar-color:#5b7fa6 #e7eef6;scrollbar-width:auto;background:#e7eef6;height:16px;position:fixed;overflow:scroll hidden;box-shadow:0 -1px #b7cfe6}.temporary-loan-x-scroll.is-visible::-webkit-scrollbar{height:14px}.temporary-loan-x-scroll.is-visible::-webkit-scrollbar-track{background:#e7eef6}.temporary-loan-x-scroll.is-visible::-webkit-scrollbar-thumb{background:#5b7fa6;border-radius:8px}.temporary-loan-x-scroll-inner{height:1px}@media (pointer:coarse){.temporary-loan-x-scroll.is-visible{height:24px}.temporary-loan-x-scroll.is-visible::-webkit-scrollbar{height:20px}}.waiting-candidate-table.temporary-loan-table{width:max-content;min-width:100%}.temporary-loan-table th,.temporary-loan-table td{white-space:nowrap}.temporary-loan-table .waiting-action-buttons{flex-flow:row;align-items:center}.temporary-loan-table .waiting-action-button,.temporary-loan-table .secondary-button{width:auto}.temporary-loan-borrower{white-space:nowrap}.remote-temporary-loan-badge{margin-left:8px}.temporary-loan-overdue{color:#fecaca;white-space:nowrap;background:#7f1d1d;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:12px;display:inline-block}.comparison-edit-modal-panel{width:min(640px,100%);max-height:90vh;overflow:auto}.comparison-edit-modal-panel h4{margin:16px 0 8px}.comparison-edit-source-block{margin:0 0 12px}.comparison-edit-contract-card{margin-bottom:10px}.comparison-edit-contract-card p{margin:0 0 4px}.modal-panel p{margin:0 0 12px}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.conflict-list{margin:8px 0 0;padding-left:18px}.history-range{margin:16px 0 12px}.history-pager{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.history-badge{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.history-badge-insert{color:#86efac;background:#14532d}.history-badge-update{color:#93c5fd;background:#1e3a5f}.history-badge-delete{color:#fecaca;background:#7f1d1d}.history-badge-import{color:#e2e8f0;background:#334155}.history-detail-panel{width:min(920px,100%);max-height:90vh;overflow:auto}.history-detail-panel h3{margin:0}.history-detail-meta{gap:8px;margin-bottom:16px;display:grid}.history-diff{margin-bottom:20px}.history-diff h4,.history-json-grid h4{margin:0 0 8px}.history-diff-row{margin-bottom:8px}.history-diff-key{color:#1d4e89}.history-reason-cell{text-overflow:ellipsis;white-space:nowrap;max-width:16rem;overflow:hidden}.history-reason-full{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.history-json-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.history-json{color:#1e293b;white-space:pre-wrap;word-break:break-word;background:#fff;border:1px solid #b7cfe6;border-radius:6px;max-height:320px;margin:0;padding:12px;font-size:12px;line-height:1.5;overflow:auto}.clickable-row{cursor:pointer}.clickable-row:hover{background:#e8f2fb}table{border-collapse:collapse;width:100%;min-width:720px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #b7cfe6;padding:10px 12px}th{color:#5b6b80;white-space:nowrap;font-weight:600}tbody tr:hover{background:#e8f2fb}h2{color:#0c3d7a;margin-top:0;font-weight:800}h3{color:#1d4e89;margin-top:20px;font-weight:700}@media (width<=1100px){.dashboard-grid{grid-template-columns:repeat(3,minmax(130px,1fr))}.quick-menu-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=900px){.dashboard-grid,.quick-menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid,.csv-export-grid,.history-json-grid{grid-template-columns:1fr}.main{padding:20px}}@media (width<=767px){.header{height:60px;padding:0 12px}.layout{min-height:calc(100vh - 60px)}.header h1{font-size:16px;overflow:hidden}.header-title{overflow:hidden}.header-title-main{text-overflow:ellipsis;white-space:nowrap;max-width:46vw;font-size:16px;overflow:hidden}.header-title-sub{font-size:12px}.header-brand{gap:6px}.header-version{font-size:11px}.header-user{gap:0;font-size:13px}.header-user-sep,.header-logout-button{display:none}.search-input,.primary-button,.secondary-button,.danger-button{min-height:44px}.search-form{flex-direction:column;align-items:stretch}.search-form .search-input{width:100%;max-width:none}.search-form .primary-button,.search-form .secondary-button{width:100%}.search-result-actions{flex-direction:column;align-items:stretch}.search-result-actions button{width:100%}.review-header{flex-direction:column}.review-header button{width:100%}.review-header-actions{flex-direction:column;width:100%}.review-header-actions button{width:100%}.history-pager{flex-direction:column}.history-pager button{width:100%}.review-action-buttons{flex-direction:column;align-items:stretch}.review-action-buttons button{width:100%}.modal-actions{flex-direction:column}.modal-actions button{width:100%}.resident-card-actions{flex-direction:column}.resident-card-actions button{width:100%}.waiting-success-row{flex-direction:column;align-items:stretch}.waiting-success-row button{width:100%}.waiting-action-buttons{flex-direction:column;align-items:stretch}.waiting-action-button,.contract-filter-actions button{width:100%}.parking-filter-row{grid-template-columns:1fr;gap:5px}.parking-filter-actions{flex-direction:column;margin-left:0}.parking-filter-actions button{width:100%}.parking-end-contract-action{justify-content:flex-start;margin-left:0}.parking-end-contract-action .danger-button{align-self:flex-start;width:auto}.csv-export-card .csv-export-button{align-self:stretch;width:100%}.parking-table-wrap{overflow-x:auto}.panel{padding:16px}}@media (width>=768px) and (orientation:landscape) and (pointer:coarse),(width>=768px) and (orientation:landscape) and (hover:none){.header{gap:12px;height:64px;padding:0 16px}.layout{min-height:calc(100vh - 64px)}.header-title-main{font-size:17px}.header-title-sub{font-size:12px}.nav-button{min-height:44px;margin-bottom:2px;padding:10px}.main{padding:16px}.dashboard-grid{grid-template-columns:repeat(3,minmax(130px,1fr));gap:8px;margin-bottom:16px}.stat-card{padding:12px}.panel{padding:14px}.panel+.panel{margin-top:12px}.review-section{margin-top:18px}.review-header{margin-bottom:14px}.search-form{margin-bottom:12px}.search-input,.primary-button,.secondary-button,.danger-button,.comparison-tab{min-height:44px}.parking-list-filter{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 12px;max-width:none;display:grid}.parking-filter-row{gap:8px;margin-bottom:0}.parking-filter-actions,.comparison-checkbox-row{grid-column:1/-1}.parking-filter-actions{margin-top:4px;margin-left:0}.parking-filter-actions button{width:auto}.search-result-actions{margin-bottom:12px}.parking-card{padding:12px}.security-toc,.security-card{padding:14px}th,td{padding:8px 10px}.comparison-table,.integrity-table{min-width:960px}.comparison-name-cell{min-width:10.5rem;max-width:13rem}.comparison-name-cell-source{min-width:9rem;max-width:11rem}.comparison-table .comparison-row-actions{flex-flow:wrap}.comparison-table .waiting-action-button{min-height:32px;padding:6px 10px}}@media not all and (width>=1280px){.menu-toggle{justify-content:center;align-items:center;display:inline-flex}.layout{grid-template-columns:1fr}.sidebar{display:none}.nav-drawer-backdrop{z-index:40;background:#0206178c;display:block;position:fixed;inset:0}.nav-drawer{z-index:50;background:#fff;border-right:1px solid #b7cfe6;flex-direction:column;width:min(280px,86vw);padding:20px 12px 16px;transition:transform .2s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.nav-drawer.is-open{transform:translate(0)}.nav-drawer-logout{width:100%;min-height:44px;margin-top:auto;padding-top:12px}.nav-button{min-height:44px}}@media (width<=520px){.dashboard-grid,.quick-menu-grid{grid-template-columns:1fr}.main{padding:12px}.header{gap:8px}.header-user span{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}}.security-page{max-width:880px}.security-intro h2{margin-bottom:8px}.security-intro p{margin:0 0 20px}.security-toc,.security-card{background:#fff;border:1px solid #b7cfe6;border-radius:8px;min-width:0;margin-bottom:16px;padding:20px;scroll-margin-top:16px}.security-toc h3,.security-card h3{margin-top:0;margin-bottom:12px}.security-toc ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;margin:0;padding-left:20px;display:grid}.security-toc-link{color:#1d4e89;text-align:left;text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.security-toc-link:hover{color:#1d4e89}.security-card p,.security-card ul,.security-card ol:not(.security-flow){margin:0 0 12px}.security-card p:last-child,.security-card ul:last-child,.security-card ol:last-child{margin-bottom:0}.security-card ul,.security-card ol:not(.security-flow){padding-left:20px}.security-flow{flex-direction:column;align-items:center;margin:16px 0;padding:0;list-style:none;display:flex}.security-flow-step{flex-direction:column;align-items:center;display:flex}.security-flow-label{color:#1e293b;text-align:center;background:#fff;border:1px solid #b7cfe6;border-radius:6px;min-width:220px;padding:10px 16px}.security-flow-arrow{color:#5b6b80;margin:4px 0;font-size:18px;line-height:1}.security-table-wrap{width:100%;max-width:100%;margin-bottom:16px;overflow-x:auto}.security-role-table{min-width:480px}.security-planned-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.security-planned-list li{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.security-planned-badge{color:#cbd5e1;white-space:nowrap;background:#1e293b;border:1px solid #64748b;border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.security-done-badge{color:#bbf7d0;white-space:nowrap;background:#14532d;border:1px solid #4ade80;border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.security-brief-text{background:#fff;border:1px solid #b7cfe6;border-radius:6px;margin:12px 0 16px;padding:16px}.security-brief-text p{margin:0 0 12px}.security-brief-text p:last-child{margin-bottom:0}.security-copy-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.security-copy-actions p{margin:0}@media (width<=700px){.security-toc,.security-card{padding:16px}.security-toc ol{grid-template-columns:1fr}.security-flow-label{width:100%;min-width:0}.security-copy-actions{flex-direction:column;align-items:stretch}.security-copy-actions .primary-button{width:100%}}.waiting-success-row{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.waiting-success-row p{margin:0}.waiting-total{margin:0 0 16px}.waiting-filter{margin-bottom:16px}.waiting-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.waiting-table th,.waiting-table td{white-space:nowrap;background:#fff}.waiting-table tbody tr:hover td{background:#e8f2fb}.waiting-sticky-action{z-index:1;border-left:1px solid #b7cfe6;position:sticky;right:0;box-shadow:-8px 0 10px #0f172a8c}.waiting-table thead .waiting-sticky-action{z-index:2}.waiting-table .waiting-later-hopes{white-space:normal;max-width:18rem}.waiting-table .waiting-note-cell{white-space:normal}.waiting-later-hopes-summary{white-space:nowrap;display:block}.waiting-later-hopes-detail{white-space:normal;max-width:18rem;margin:6px 0 0;padding-left:1.2em}.waiting-table .waiting-action-buttons{flex-flow:row;align-items:center}.waiting-table .waiting-action-button{width:auto}.waiting-candidate-modal{width:min(1120px,100%);max-height:90vh;overflow:auto}.waiting-candidate-wrap{width:100%;max-width:100%;overflow-x:auto}.waiting-candidate-table{min-width:1680px}.waiting-candidate-table th,.waiting-candidate-table td{white-space:nowrap}.waiting-bulk-modal{width:min(960px,100%);max-height:90vh;overflow:auto}.waiting-bulk-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:12px;display:flex}.waiting-bulk-tabs{gap:8px;display:flex}.waiting-bulk-tabs button{width:auto;min-width:88px}.waiting-bulk-filters{flex-wrap:wrap;gap:8px 16px;display:flex}.waiting-bulk-filters label{align-items:center;gap:4px;min-height:36px;display:inline-flex}.waiting-bulk-table{width:100%;min-width:640px}.waiting-bulk-table th,.waiting-bulk-table td{white-space:nowrap}.waiting-bulk-detail-button{width:auto;min-height:36px;padding:4px 12px}.waiting-bulk-row{cursor:pointer}.waiting-bulk-detail-row td{white-space:normal}.waiting-bulk-detail{max-width:calc(100vw - 96px);position:sticky;left:0}.waiting-bulk-detail p{overflow-wrap:anywhere;margin:0 0 8px}.waiting-bulk-narrow-only{display:none}@media (width<=600px){.waiting-bulk-table{min-width:0}.waiting-bulk-table th,.waiting-bulk-table td{padding-left:6px;padding-right:6px}.waiting-bulk-optional{display:none}.waiting-bulk-detail p.waiting-bulk-narrow-only{display:block}}.waiting-bulk-match-list{margin:0 0 8px;padding-left:20px}.waiting-bulk-match-list li{overflow-wrap:anywhere;margin-bottom:4px}.waiting-bulk-judge-match{color:#15803d}.waiting-bulk-judge-unknown{color:#a16207}.waiting-bulk-judge-unfit{color:#b91c1c}.waiting-position-review{flex-direction:column;margin-top:4px;font-size:12px;line-height:1.4;display:flex}.waiting-position-review-matched{color:#1d4e89}.waiting-position-review-review{color:#9a3412}.waiting-bulk-space{border:1px solid #b7cfe6;border-radius:6px;margin-bottom:8px;padding:8px 12px}.waiting-bulk-space summary{cursor:pointer;overflow-wrap:anywhere;min-height:32px}.waiting-bulk-space ol{margin-top:8px}.waiting-action-cell{white-space:nowrap}.waiting-action-buttons{flex-wrap:wrap;gap:6px;display:flex}.waiting-action-button{padding:6px 10px;font-size:12px}.waiting-note-cell{overflow-wrap:anywhere;white-space:normal;max-width:240px}.waiting-note-full{margin-top:6px}.waiting-note-full summary{cursor:pointer;color:#5b6b80;font-size:12px}.waiting-note-full p{white-space:pre-wrap;margin:6px 0 0}.bike-summary{flex-wrap:wrap;gap:12px 20px;margin:0 0 8px;display:flex}.bike-summary-types{margin-bottom:16px}.vehicle-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:12px;display:grid}.vehicle-list .parking-card{height:100%;margin-top:0}.vehicle-card-button{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.vehicle-card-button:hover .parking-card,.vehicle-card-button:focus-visible .parking-card{background:#e8f2fb}.vehicle-card-title{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.vehicle-card-meta{gap:4px;margin-top:8px;display:grid}.vehicle-contract-section{border-top:1px solid #b7cfe6;margin-top:12px;padding-top:12px}.vehicle-contract-heading{margin-bottom:6px;font-weight:600}.vehicle-facts,.vehicle-fit{gap:4px;display:grid}.vehicle-fit{margin-top:6px}.vehicle-edit-button{margin-top:10px}.vehicle-form-panel{width:min(640px,100%)}.vehicle-form-grid{grid-template-columns:1fr;gap:12px;margin:12px 0;display:grid}.vehicle-form-grid label{gap:6px;display:grid}@media (width>=768px){.vehicle-form-grid{grid-template-columns:1fr 1fr}.vehicle-form-span{grid-column:1/-1}}.bike-spaces-table{min-width:860px}.bike-spaces-table th,.bike-spaces-table td{white-space:nowrap}.bike-space-row{cursor:pointer}.bike-status-occupied{color:#86efac;background:#14532d}.bike-status-vacant{color:#cbd5e1;background:#334155}.bike-status-review{color:#fde68a;background:#78350f}.bike-status-temporary{color:#bfdbfe;background:#1e3a8a}.bike-detail-panel{width:min(560px,100%);max-height:min(80vh,720px);overflow:auto}.bike-detail-list{gap:10px;margin:16px 0;display:grid}.bike-detail-list div{grid-template-columns:7.5rem 1fr;gap:8px;display:grid}.bike-detail-list dt{color:#5b6b80;margin:0}.bike-detail-list dd{margin:0}.parking-map-page{min-width:0}.parking-map-groups{flex-wrap:wrap;gap:12px 20px;margin-bottom:12px;display:flex}.parking-map-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.parking-map-tools{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.parking-map-tools input,.parking-map-tools select{min-width:0}.parking-map-tools input{flex:180px}.parking-map-options,.parking-map-actions{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:12px;display:flex}.parking-map-options label{white-space:nowrap;align-items:center;gap:6px;min-height:40px;display:inline-flex}.parking-map-actions .secondary-button{min-height:40px}.parking-map-page .review-header h2{font-size:30px}.parking-map-page .review-header p,.parking-map-groups,.parking-map-tools label,.parking-map-options label,.parking-map-page>.muted{font-size:16px}.parking-map-fetched{margin:4px 0 0;font-size:16px}.parking-map-print-head{display:none}.parking-map-tooltip{z-index:30;color:#1e293b;pointer-events:none;background:#fff;border:1px solid #b7cfe6;border-radius:6px;max-width:240px;padding:8px 10px;font-size:12px;line-height:1.45;position:fixed}.parking-map-tooltip p{margin:0}.parking-map-space.is-vacant rect{fill:#334155;background:#334155}.parking-map-space.is-occupied rect{fill:#14532d;background:#14532d}.parking-map-space.is-review rect,.parking-map-space.is-conflict rect{fill:#78350f;background:#78350f}.parking-map-space.is-temporary rect{fill:#1e3a5f;background:#1e3a5f}.parking-map-space.is-scheduled rect{fill:#7c2d12;background:#7c2d12}.parking-map-space.is-dim{opacity:.28}.parking-map-space.is-hit rect{stroke:#fbbf24;stroke-width:2px}.parking-map-body{grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:12px;min-width:0;display:grid}.parking-map-detail{max-height:calc(100vh - 240px);overflow:auto}.parking-map-detail h3{font-size:22px}.parking-map-detail .bike-detail-list dt{font-size:16px}@media (width<=1100px){.parking-map-body{grid-template-columns:1fr}}@media screen and (width<=1100px){.parking-map-detail:not(.is-open){display:none}.parking-map-detail.is-open{z-index:40;max-height:48vh;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:2px solid #b7cfe6;border-radius:12px 12px 0 0;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #00000073}.parking-map-detail .parking-map-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.parking-map-page:has(.parking-map-detail.is-open){padding-bottom:48vh}}@media screen and (width<=640px){.parking-map-detail.is-open{max-height:60vh}.parking-map-page:has(.parking-map-detail.is-open){padding-bottom:60vh}.parking-map-detail .parking-map-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.parking-map-detail .parking-map-detail-head h3{font-size:26px}.parking-map-body .parking-map-scroll{max-height:70vh}}.parking-map-scroll{touch-action:pan-x pan-y;overscroll-behavior:contain;background:#0f172a;border:1px solid #b7cfe6;border-radius:10px;width:100%;min-height:320px;max-height:calc(100vh - 240px);overflow:auto}.parking-map-svg,.parking-map-print-svg{display:block}.parking-map-ground{stroke:none;pointer-events:none}.parking-map-ground.is-deck{fill:#1a2332}.parking-map-ground.is-aisle{fill:#314158}.parking-map-ground.is-passage{fill:#28364a}.parking-map-ground.is-slope{fill:#1d455c}.parking-map-ground.is-gate{fill:#4a4030}.parking-map-ground.is-feature{fill:#1f3a36}.parking-map-arrow{fill:none;stroke:#d5e4f5;stroke-width:7.5px;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}.parking-map-arrow-head{fill:#d5e4f5;stroke:#d5e4f5;pointer-events:none}.parking-map-print-svg{display:none}.parking-map-space{cursor:pointer}.parking-map-space rect{fill:#1e293b;stroke:#94a3b8;stroke-width:1.35px}.parking-map-space text{fill:#e5e7eb;pointer-events:none}.parking-map-space.is-number-only text{font-weight:700}.parking-map-space.is-selected rect{stroke:#60a5fa;stroke-width:2px}.parking-map-svg .parking-map-space.is-selected rect{stroke:#fff;stroke-width:3px}.parking-map-selected-ring{fill:none;stroke:#fde047;stroke-width:4px;stroke-dasharray:9 5}.parking-map-selected-inner{fill:none;stroke:#0f172a;stroke-width:1.5px}.parking-map-zoom-button{min-width:44px;font-size:20px;font-weight:700}.parking-map-zoom-value{color:#334155;font-variant-numeric:tabular-nums;text-align:center;min-width:52px}.parking-map-detail-head{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:10px;display:flex}.parking-map-detail .parking-map-detail-head h3{font-variant-numeric:tabular-nums;margin:0;font-size:30px}.parking-map-detail-close{min-height:40px;margin-left:auto}.parking-map-status-badge{color:#f8fafc;border:1px solid #94a3b8;border-radius:999px;padding:4px 12px;font-size:17px;font-weight:700}.parking-map-status-badge.is-vacant{background:#334155}.parking-map-status-badge.is-occupied{background:#14532d}.parking-map-status-badge.is-review,.parking-map-status-badge.is-conflict{background:#78350f}.parking-map-status-badge.is-temporary{background:#1e3a5f}.parking-map-status-badge.is-scheduled{background:#7c2d12}.parking-map-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0 0 12px;display:grid}.parking-map-detail-grid div{background:#fff;border:1px solid #b7cfe6;border-radius:6px;min-width:0;padding:6px 8px}.parking-map-detail-grid dt{color:#5b6b80;font-size:13px}.parking-map-detail-grid dd{color:#1e293b;overflow-wrap:anywhere;margin:2px 0 0;font-size:17px;font-weight:600}.parking-map-detail-grid .is-fee{border-color:#b7cfe6;grid-column:1/-1}.parking-map-detail-grid .is-fee dd{font-variant-numeric:tabular-nums;font-size:22px}.parking-map-accordions{gap:6px;display:grid}.parking-map-accordion{background:#fff;border:1px solid #b7cfe6;border-radius:6px}.parking-map-accordion>summary{color:#1e293b;cursor:pointer;min-height:44px;padding:10px 12px;font-size:16px;font-weight:700;list-style-position:inside}.parking-map-accordion[open]>summary{border-bottom:1px solid #b7cfe6}.parking-map-accordion>:not(summary){margin:8px 12px}.parking-map-accordion.is-past>summary{color:#5b6b80}.parking-map-past-contract{border-bottom:1px dashed #b7cfe6;padding-bottom:6px}.parking-map-past-contract p{margin:2px 0}.parking-map-past-status{color:#334155;border:1px solid #b7cfe6;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:13px}.parking-map-label-frame{stroke:#94a3b8;stroke-width:1.35px}.parking-map-label{fill:#e5e7eb;pointer-events:none;font-weight:600}@page parking-map{size:A3 landscape;margin:6mm}.parking-map-page{page:parking-map}@media print{.app,.layout,.main,.panel{color:#111;background:#fff!important}.panel{border:0;padding:0}.parking-map-screen-only,.parking-map-tooltip{display:none!important}.parking-map-print-head{color:#111;margin:0 0 1.5mm;display:block}.parking-map-print-head h1{color:#111;margin:0;font-size:18pt;line-height:1.2}.parking-map-print-head p{margin:0;font-size:12pt;line-height:1.3}.parking-map-body{display:block}.parking-map-scroll{background:#fff;border:0;min-height:0;max-height:none;overflow:visible}.parking-map-print-svg{width:100%!important;max-width:100%!important;height:auto!important;max-height:248mm!important;display:block!important}.parking-map-print-svg .parking-map-space rect{stroke:#334155;stroke-width:1.6px}.parking-map-space rect,.parking-map-space text,.parking-map-ground,.parking-map-arrow,.parking-map-arrow-head,.parking-map-label{-webkit-print-color-adjust:exact;print-color-adjust:exact}.parking-map-arrow{stroke-width:11px;stroke:#1e3a5f!important}.parking-map-arrow-head{fill:#1e3a5f!important;stroke:#1e3a5f!important}.parking-map-ground.is-deck{fill:#f4f7fb!important}.parking-map-ground.is-aisle{fill:#d5e1ee!important}.parking-map-ground.is-passage{fill:#e6eef6!important}.parking-map-ground.is-slope{fill:#d3e6f2!important}.parking-map-ground.is-gate{fill:#f3ead8!important}.parking-map-ground.is-feature{fill:#dceae4!important}.parking-map-space text{fill:#111827!important}.parking-map-space.is-vacant rect{fill:#e2e8f0!important;background:#e2e8f0!important}.parking-map-space.is-occupied rect{fill:#86efac!important;background:#86efac!important}.parking-map-space.is-review rect,.parking-map-space.is-conflict rect{fill:#fcd34d!important;background:#fcd34d!important}.parking-map-space.is-temporary rect{fill:#93c5fd!important;background:#93c5fd!important}.parking-map-space.is-scheduled rect{fill:#fdba74!important;background:#fdba74!important}.parking-map-label-frame{stroke:#334155;stroke-width:1.35px}.parking-map-label{fill:#334155;font-weight:600}.parking-map-space.is-plain rect{fill:#fff!important;stroke:#64748b!important}.parking-map-space.is-plain text{fill:#111827!important}.parking-map-space.is-dim{opacity:1!important}.parking-map-space.is-dim rect{fill:#0000!important;stroke:#cbd5e1!important;stroke-width:.8px!important}.parking-map-space.is-dim text{fill:#94a3b8!important}.parking-map-space.is-hit rect,.parking-map-space.is-selected rect{stroke:#334155!important;stroke-width:1.4px!important}}.waiting-status-badge{color:#e2e8f0;white-space:nowrap;background:#334155;border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.waiting-vehicle-missing{color:#fde68a;white-space:nowrap;background:#78350f;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.waiting-vehicle-missing-count{color:#b45309;margin-left:12px}.waiting-status-waiting{color:#93c5fd;background:#1e3a5f}.waiting-status-offered{color:#67e8f9;background:#164e63}.waiting-status-accepted{color:#86efac;background:#14532d}.waiting-status-cancelled{color:#94a3b8;background:#1e2937}.waiting-status-completed{color:#cbd5e1;background:#334155}.comparison-readonly-note{margin:-8px 0 20px;font-size:13px}.comparison-summary-grid{margin-bottom:8px}.comparison-tabs{flex-wrap:wrap;gap:8px;margin:8px 0 20px;display:flex}.comparison-tab{color:#334155;cursor:pointer;background:#fff;border:1px solid #b7cfe6;border-radius:6px;padding:10px 16px}.comparison-tab:hover{background:#e8f2fb}.comparison-tab.active{color:#fff;background:#0c4a8a;border-color:#0c4a8a}.comparison-checkbox-row label{color:#1e293b;cursor:pointer;align-items:center;gap:8px;display:inline-flex}.comparison-checkbox-row input[type=checkbox]{width:auto;margin:0}.ledger-row-actions{flex-direction:column;align-items:stretch;gap:8px;min-width:13.5rem;display:flex}.ledger-row-actions .primary-button,.ledger-row-actions .secondary-button{white-space:nowrap;width:100%;min-height:40px}.ledger-apply-changes{white-space:pre-wrap;color:#1e293b;background:#fff;border-radius:8px;margin:0 0 12px;padding:10px 12px;font-family:inherit;font-size:.95rem;line-height:1.5}.comparison-table{min-width:960px}.comparison-table.unit-people-table{min-width:1520px}.comparison-table.comparison-table-ledger-residents{min-width:960px}.table-cell-unit,.table-cell-name,.table-cell-judgment,.table-cell-actions{white-space:nowrap}.table-cell-unit{min-width:5.5rem}.table-cell-name{min-width:8rem}.table-cell-judgment{min-width:8.5rem}.table-cell-actions{vertical-align:top;min-width:13.5rem}.comparison-table th,.comparison-table td{border-right:1px solid #d5e3f0}.comparison-table th:last-child,.comparison-table td:last-child{border-right:0}.comparison-name-cell{min-width:10.5rem;max-width:14rem}.comparison-name-cell-source{min-width:9.5rem;max-width:12rem}.comparison-name-text{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.comparison-badge{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.comparison-badge-resident-match,.comparison-badge-parking-both_occupied_same{color:#86efac;background:#14532d}.comparison-badge-resident-mismatch,.comparison-badge-parking-occupant_mismatch{color:#fde68a;background:#78350f}.comparison-badge-parking-name_notation_only{color:#e2e8f0;background:#475569}.comparison-badge-resident-source_blank{color:#fdba74;background:#7c2d12}.comparison-badge-resident-vacant_confirmed,.comparison-badge-parking-both_vacant{color:#cbd5e1;background:#334155}.comparison-badge-resident-source_only,.comparison-badge-parking-source_only{color:#93c5fd;background:#1e3a5f}.comparison-badge-resident-db_only,.comparison-badge-parking-db_only{color:#c4b5fd;background:#4c1d95}.comparison-badge-multi{color:#e0e7ff;background:#312e81}.comparison-badge-review{color:#fde68a;background:#854d0e}.comparison-badge-building-resolved{color:#a7f3d0;background:#065f46}.comparison-badge-building-review{color:#fed7aa;background:#9a3412}.comparison-badge-applied{color:#bbf7d0;background:#166534}.comparison-badge-db-changed{color:#fed7aa;background:#9a3412}.comparison-badge-db-review{color:#fde68a;background:#854d0e}.comparison-badge-pending{color:#e2e8f0;background:#334155}.comparison-badge-snapshot-ref{color:#94a3b8;background:#1e293b}.comparison-badge-post-source{color:#fde68a;background:#92400e}.comparison-badge-db-first{color:#e0e7ff;background:#3730a3}.comparison-row-actions{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.comparison-badge-stack{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.comparison-table-parking{min-width:1120px}.integrity-table{min-width:1100px}.comparison-raw-details{max-width:260px}.comparison-raw-details summary{cursor:pointer;color:#1d4e89;-webkit-user-select:none;user-select:none}.comparison-raw-body{white-space:pre-wrap;overflow-wrap:anywhere;background:#fff;border:1px solid #b7cfe6;border-radius:6px;margin-top:8px;padding:8px;font-size:12px;line-height:1.5}.comparison-raw-body p{margin:0 0 6px}.comparison-raw-body p:last-child{margin-bottom:0}.comparison-reviewed-label{white-space:nowrap;font-size:13px}.comparison-reviewed-label.is-reviewed{color:#166534}.comparison-reviewed-label.is-unreviewed{color:#b45309}@media print{.header,.sidebar,.menu-toggle,.nav-drawer,.nav-drawer-backdrop,.security-toc,.security-copy-actions{display:none!important}.layout{min-height:auto;display:block}.main{padding:0;overflow:visible}.security-page{max-width:none}.security-card{break-inside:avoid;page-break-inside:avoid;background:0 0;border:0;border-bottom:1px solid #cbd5e1;border-radius:0;margin-bottom:12px;padding:12px 0}.security-brief-text,.security-flow-label{background:0 0;border-color:#94a3b8}}.remote-table{min-width:1080px}.remote-loan-modal{width:min(640px,100%);max-height:calc(100vh - 32px);overflow:auto}.remote-loan-parking-candidates{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 12px;display:flex}.remote-loan-candidate-button{color:#1e293b;cursor:pointer;background:#fff;border:1px solid #b7cfe6;border-radius:999px;padding:4px 10px}.remote-loan-candidate-button:hover{background:#e8f2fb}.remote-loan-candidate-button.is-selected{color:#1d4e89;background:#dbeafe;border-color:#0c4a8a}.remote-loan-clear-parking{color:#5b6b80;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.remote-loan-clear-parking:hover{color:#1e293b}.remote-loan-clear-parking:disabled{opacity:.45;cursor:default;text-decoration:none}.remote-row-selected{background:#dbeafe}.remote-status-stock,.remote-status-available{color:#86efac;background:#14532d}.remote-status-loaned,.remote-status-assigned{color:#93c5fd;background:#1e3a5f}.remote-status-review{color:#fcd34d;background:#78350f}.remote-status-broken,.remote-status-lost{color:#fecaca;background:#7f1d1d}.remote-status-retired{color:#cbd5e1;background:#334155}.comparison-history-details{background:#fff;border:1px solid #b7cfe6;border-radius:8px;margin:28px 0 12px;padding:12px 16px}.comparison-history-details>summary{cursor:pointer;color:#334155;font-weight:600}.comparison-history-details[open]>summary{margin-bottom:16px}.comparison-badge-parking-v2-match,.comparison-badge-resident-v2-match{color:#86efac;background:#14532d}.comparison-badge-parking-v2-notation_only,.comparison-badge-resident-v2-notation_only{color:#e2e8f0;background:#475569}.comparison-badge-parking-v2-both_vacant{color:#cbd5e1;background:#334155}.comparison-badge-parking-v2-ledger_occupied_db_vacant,.comparison-badge-resident-v2-db_none{color:#93c5fd;background:#1e3a5f}.comparison-badge-parking-v2-ledger_vacant_db_occupied,.comparison-badge-resident-v2-mismatch{color:#c4b5fd;background:#4c1d95}.comparison-badge-parking-v2-occupant_mismatch,.comparison-badge-resident-v2-surname_only{color:#fde68a;background:#78350f}.comparison-badge-parking-v2-db_duplicate,.comparison-badge-resident-v2-db_multiple{color:#e0e7ff;background:#312e81}.comparison-badge-parking-v2-building_unresolved,.comparison-badge-resident-v2-building_unresolved{color:#fed7aa;background:#9a3412}.comparison-badge-parking-v2-post_source_change,.comparison-badge-resident-v2-post_source_change{color:#bbf7d0;background:#166534}.comparison-badge-parking-v2-db_confirmed{color:#a7f3d0;background:#065f46}.comparison-badge-unit-people-facility_excluded{color:#cbd5e1;background:#334155}.comparison-badge-unit-people-owner_match,.comparison-badge-unit-people-occupant_match,.comparison-badge-unit-people-pdf_occupant_resident_match{color:#bbf7d0;background:#166534}.comparison-badge-unit-people-owner_mismatch,.comparison-badge-unit-people-pdf_owner_only{color:#93c5fd;background:#1e3a5f}.comparison-badge-unit-people-occupant_mismatch,.comparison-badge-unit-people-pdf_occupant_resident_mismatch{color:#fde68a;background:#78350f}.comparison-badge-unit-people-owner_multiple,.comparison-badge-unit-people-occupant_multiple,.comparison-badge-unit-people-building_unresolved{color:#e0e7ff;background:#312e81}.comparison-badge-unit-people-post_source_change{color:#bbf7d0;background:#166534}.ledger-reconciliation-panel .comparison-badge{margin-left:6px}.ownership-dashboard{margin-bottom:24px}.ownership-dashboard h2{margin:0 0 12px;font-size:18px}.ownership-status-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.rental-check{cursor:pointer;align-items:center;gap:10px;min-height:44px;font-size:16px;display:inline-flex}.rental-check input[type=checkbox]{accent-color:#0c4a8a;flex:0 0 22px;width:22px;height:22px;margin:0}.rental-check:has(input:disabled){cursor:default}.ownership-status-card .rental-check{width:100%;min-height:48px;padding:4px 0;font-size:18px}.ownership-rental-warning{margin:6px 0 0;font-size:13px}.unit-rental-row{flex-wrap:wrap;align-items:center;gap:8px 16px;margin:8px 0;display:flex}.living-form-badge{border:1px solid}.living-form-owner{color:#166534;background:#dcfce7}.living-form-family{color:#075985;background:#e0f2fe}.living-form-tenant{color:#92400e;background:#fef3c7}.living-form-other{color:#5b21b6;background:#ede9fe}.living-form-unknown{color:#374151;background:#f3f4f6;border-style:dashed}.living-form-row{align-items:center;gap:6px;margin:6px 0;display:flex}.living-form-filter,.living-form-edit{flex-wrap:wrap;align-items:center;gap:10px;font-size:16px;display:inline-flex}.living-form-filter select,.living-form-edit select{min-width:180px;min-height:44px;padding:6px 10px;font-size:16px}.living-form-edit{margin:6px 0}button.stat-card{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer}button.stat-card:hover{border-color:#60a5fa}.ownership-filter-row{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.ownership-filter-row .primary-button,.ownership-filter-row .secondary-button{white-space:normal}.ownership-person-list{gap:8px;display:grid}.ownership-status-table{border-collapse:collapse;width:100%}.ownership-status-table th,.ownership-status-table td{vertical-align:top;text-align:left;border-bottom:1px solid #b7cfe6;padding:10px 8px}.ownership-status-table th{color:#5b6b80;font-size:12px;font-weight:600}.ownership-status-review{color:#fde68a;background:#78350f}.ownership-status-cards{display:none}.ownership-status-card{background:#fff;border:1px solid #b7cfe6;border-radius:8px;gap:12px;padding:14px;display:grid}.ownership-status-card+.ownership-status-card{margin-top:10px}.ownership-status-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.ownership-status-card dl{grid-template-columns:1fr 1fr;gap:10px 16px;margin:0;display:grid}.ownership-status-card dt{color:#5b6b80;font-size:12px}.ownership-status-card dd{margin:2px 0 0}.ownership-status-card .waiting-status-badge,.ownership-status-table .waiting-status-badge{white-space:normal}@media (width<=1279px){.ownership-status-table-wrap{display:none}.ownership-status-cards{display:block}.ownership-status-card .secondary-button{width:100%}}@media (width<=700px){.ownership-status-card-head{flex-direction:column;align-items:flex-start}.ownership-status-card dl{grid-template-columns:1fr}}.app-front{background:#fff}.app-front .menu-toggle{display:none}.app-front .layout{grid-template-columns:minmax(0,1fr)}.app-front .main{background:#fff}.app-front .header-logout-button{align-items:center;display:inline-flex}.header-mode-button{flex-shrink:0}.front-home{max-width:1180px;margin:0 auto}.front-home h2{color:#0c3d7a;margin:0 0 8px;font-size:32px;font-weight:800;line-height:1.2}.front-home-lead{color:#3d5670;margin:0 0 24px;font-size:16px}.front-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;display:grid}.front-card{min-height:168px;color:inherit;font:inherit;text-align:left;cursor:pointer;border:2px solid #8eb4d8;border-radius:18px;flex-direction:column;align-items:flex-start;gap:8px;padding:22px 20px;display:flex}.front-card-cyan{background:#e7f6fb}.front-card-lilac{background:#efe8fb}.front-card:hover{border-color:#0c4a8a;box-shadow:0 8px 20px #0c3d7a1f}.front-card-icon{font-size:36px;line-height:1}.front-card-title{color:#0c3d7a;font-size:22px;font-weight:800;line-height:1.3}.front-card-description{color:#3d5670;font-size:15px;line-height:1.45}.front-back{color:#0c4a8a;cursor:pointer;background:0 0;border:0;margin:0 0 16px;padding:0;font-size:15px;font-weight:700}@media (width<=1280px){.front-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.front-home h2{font-size:26px}.front-grid{grid-template-columns:1fr}.front-card{min-height:132px}.header:has(.header-mode-button){height:auto;min-height:60px;padding-top:8px;padding-bottom:8px}}
