:root{--bg:#eef2f5;--panel:#ffffff;--panel-soft:#f7f9fb;--ink:#17202a;--muted:#667385;--line:#d9e1e8;--brand:#0f766e;--brand-strong:#0b5f59;--blue:#2563eb;--red:#b42318;--shadow:0 16px 40px rgba(15,23,42,0.08)}*{box-sizing:border-box}body,html{background:var(--bg)}body{margin:0;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}button{font:inherit}.public-entry{display:grid;place-items:center;min-height:100vh;padding:24px;background:linear-gradient(180deg,rgba(15,118,110,.08),rgba(15,118,110,0)),var(--bg)}.contract-month-preview-page{gap:14px}.contract-month-notice{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;padding:10px 14px;color:#1e3a8a;font-size:13px}.contract-month-notice strong{color:#1d4ed8}.contract-month-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--line)}.contract-month-summary-grid>div{display:grid;gap:5px;background:#fff;padding:12px 14px}.contract-month-compare-grid span,.contract-month-summary-grid span{color:var(--muted);font-size:12px;font-weight:700}.contract-month-summary-grid strong{font-size:16px}.contract-month-compare-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--line)}.contract-month-compare-grid>div{display:grid;gap:5px;min-width:0;background:#fff;padding:14px}.contract-month-compare-grid strong{font-size:20px}.contract-month-compare-grid small{color:var(--muted);font-size:11px}.contract-month-compare-grid b{font-size:12px;font-weight:700}.contract-month-boundary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--line)}.contract-month-boundary-grid>div{display:grid;gap:5px;min-width:0;background:#fff;padding:12px 14px}.contract-month-boundary-grid span{color:var(--muted);font-size:12px;font-weight:700}.contract-month-boundary-grid strong{font-size:14px}.contract-month-boundary-grid small{color:var(--muted);font-size:11px;line-height:1.45}.contract-month-explain{margin:12px 0 0;color:var(--muted);font-size:13px;line-height:1.7}.delta-warn{color:#b45309}.delta-neutral{color:#047857}.status-pill{display:inline-flex;align-items:center;border:1px solid #99f6e4;background:#f0fdfa;padding:4px 10px;color:#0f766e}.contract-month-table td,.contract-month-table th{white-space:nowrap}.contract-month-table .num{text-align:right}.contract-month-findings{display:grid;gap:8px}.contract-month-findings>div{border-left:3px solid var(--line);padding:9px 12px;background:#fafafa}.contract-month-findings .finding-info{border-left-color:#2563eb;background:#eff6ff}.contract-month-findings .finding-warning{border-left-color:#d97706;background:#fffbeb}.contract-month-findings .finding-error{border-left-color:#dc2626;background:#fef2f2}.finding-heading{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px}.finding-heading strong{color:var(--muted);font-size:11px}.contract-month-findings p{margin:5px 0 3px;font-size:13px;line-height:1.55}.contract-month-findings small{color:var(--muted);font-size:11px;line-height:1.45}.status-pill-warn{border-color:#f59e0b;color:#92400e;background:#fffbeb}.contract-month-first-payment-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--line)}.contract-month-first-payment-grid>div{display:grid;gap:5px;min-width:0;background:#fff;padding:12px 14px}.contract-month-first-payment-grid span{color:var(--muted);font-size:12px;font-weight:700}.contract-month-first-payment-grid strong{font-size:15px}.contract-month-first-payment-grid small{color:var(--muted);font-size:11px;line-height:1.45}.contract-month-first-payment-primary{box-shadow:inset 3px 0 0 var(--brand)}.contract-month-first-payment-note{grid-column:1/-1}.contract-month-first-payment-note p{margin:0;color:var(--text);font-size:13px;line-height:1.6}@media (max-width:900px){.contract-month-compare-grid,.contract-month-first-payment-grid,.contract-month-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-month-first-payment-note{grid-column:1/-1}}@media (max-width:600px){.contract-month-compare-grid,.contract-month-first-payment-grid,.contract-month-summary-grid{grid-template-columns:1fr}.contract-month-first-payment-note{grid-column:auto}.contract-month-table{min-width:680px}}.public-login-card{display:grid;gap:22px;width:min(520px,100%);border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);padding:28px}.public-brand{display:flex;align-items:center;gap:12px;padding-bottom:18px;border-bottom:1px solid var(--line)}.public-brand strong{display:block;font-size:18px}.public-brand p{margin:3px 0 0;color:var(--muted);font-size:13px}.public-login-button{min-height:44px;font-weight:700}.app-shell{display:grid;grid-template-columns:272px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;overflow:auto;background:#172026;color:#f8fafc;padding:22px 18px}.brand{display:flex;align-items:center;gap:12px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.12)}.brand-link{color:inherit;text-decoration:none}.brand-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:8px;background:#16a394;color:#ffffff;font-weight:700;letter-spacing:0}.brand span,.brand strong{display:block}.brand strong{font-size:18px;line-height:1.25}.brand div span{margin-top:2px;color:#a9b7c6;font-size:13px}.nav-list{padding:16px 0 10px;flex:1}.nav-list section{margin-bottom:16px}.nav-list h2{margin:0 0 7px;padding:0 10px;color:#7dd3c7;font-size:12px;font-weight:700}.nav-list a,.nav-list button{display:block;width:100%;border:0;border-radius:6px;margin:0 0 4px;padding:10px 11px;background:transparent;color:#cbd5e1;text-align:left;cursor:default;text-decoration:none;font-size:14px}.nav-list a.active,.nav-list a:hover,.nav-list button.active,.nav-list button:hover{background:rgba(255,255,255,.12);color:#ffffff}.workspace{min-width:0;padding:24px}.topbar{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:stretch;margin-bottom:18px}.eyebrow{margin:0 0 8px;color:var(--brand);font-size:12px;font-weight:700}h1,h2,h3,p{letter-spacing:0}h1{max-width:980px;margin:0;font-size:30px;line-height:1.25}.lead{max-width:920px;margin:12px 0 0;color:var(--muted);font-size:15px;line-height:1.65}.content-band,.login-panel,.metric-card,.roadmap-panel,.role-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.login-panel{display:grid;gap:8px;align-content:center;padding:18px}.login-panel span{color:var(--muted);font-size:13px}.login-panel strong{font-size:18px}.login-panel button,.primary-button{min-height:38px;border:0;border-radius:6px;background:var(--brand);color:#ffffff;display:inline-grid;place-items:center;text-decoration:none}.kpi-row{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px;margin-bottom:18px}.metric-card{padding:16px}.metric-card span{color:var(--muted);font-size:12px}.metric-card strong{display:block;margin-top:8px;font-size:24px}.metric-card p{margin:6px 0 0;color:var(--muted);font-size:12px}.content-band,.roadmap-panel,.role-panel{padding:18px}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.section-head.compact{margin-bottom:14px}.section-head h2{margin:0;font-size:19px}.status-pill{flex:0 0 auto;border:1px solid #a7d9d1;border-radius:999px;padding:6px 10px;background:#edf8f6;color:var(--brand-strong);font-size:12px;font-weight:700}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.module-card{min-width:0;border:1px solid var(--line);border-radius:8px;padding:14px;background:var(--panel-soft)}.module-link-card{display:block;color:inherit;text-decoration:none}.module-link-card:hover{border-color:#a7d9d1;box-shadow:0 0 0 2px rgba(15,118,110,.08)}.module-title{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.module-title h3{margin:0;font-size:16px}.module-title span{flex:0 0 auto;border-radius:999px;padding:3px 8px;background:#eaf2ff;color:var(--blue);font-size:12px;font-weight:700}.module-card p{min-height:58px;margin:10px 0 12px;color:var(--muted);font-size:13px;line-height:1.55}.module-owner{color:var(--brand-strong);font-size:12px;font-weight:700}.split-band{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:18px;margin-top:18px}.role-table{overflow:auto;border:1px solid var(--line);border-radius:8px}.role-row{display:grid;grid-template-columns:130px minmax(120px,.8fr) minmax(220px,1.2fr);gap:12px;align-items:center;min-width:620px;padding:11px 12px;border-bottom:1px solid var(--line);color:var(--muted);font-size:13px}.role-row:last-child{border-bottom:0}.role-row strong{color:var(--ink)}.role-row.table-head{background:#f8fafc;color:#506074;font-weight:700}.timeline{display:grid;gap:10px;margin:0;padding:0;list-style:none}.timeline li{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;min-height:42px}.timeline span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#edf8f6;color:var(--brand-strong);font-weight:700}.timeline p{margin:0;color:#3d4a5c;font-size:14px}.login-screen{display:grid;place-items:center;min-height:100vh;padding:24px;background:linear-gradient(180deg,rgba(15,118,110,.08),rgba(15,118,110,0)),var(--bg)}.login-card{grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:center;width:min(920px,100%);background:var(--panel);box-shadow:var(--shadow);padding:28px}.login-card,.login-form{display:grid;border:1px solid var(--line);border-radius:8px}.login-form{gap:14px;background:var(--panel-soft);padding:18px}.login-form label{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:700}.login-form input{min-height:42px;border:1px solid var(--line);border-radius:6px;padding:0 12px;color:var(--ink);background:#ffffff;font:inherit}.login-form button,.logout-panel button,.management-form button{min-height:40px;border:0;border-radius:6px;background:var(--brand);color:#ffffff;font-weight:700}.login-form button:disabled{opacity:.62}.form-error{border:1px solid rgba(180,35,24,.24);border-radius:6px;background:rgba(180,35,24,.08);color:var(--red)}.form-error,.form-success{margin:0;padding:10px;font-size:13px}.form-success{border:1px solid rgba(15,118,110,.24);border-radius:6px;background:rgba(15,118,110,.08);color:var(--brand-strong)}.dashboard-head{grid-template-columns:minmax(0,1fr) 250px}.logout-panel{display:grid;gap:7px;align-content:center;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);padding:18px}.logout-panel p,.logout-panel span{color:var(--muted);font-size:13px}.logout-panel strong{font-size:18px}.logout-panel p{margin:0 0 4px}.sidebar-logout{border-top:1px solid rgba(255,255,255,.12);padding-top:14px}.sidebar-logout button{width:100%;min-height:38px;border:1px solid rgba(255,255,255,.14);border-radius:6px;background:rgba(255,255,255,.08);color:#e2e8f0;cursor:pointer}.role-row.user-row{grid-template-columns:110px minmax(150px,1fr) minmax(170px,1fr) 80px}.role-row.unit-row{grid-template-columns:58px 58px minmax(95px,.8fr) 92px 90px 86px minmax(130px,1fr) 92px 90px minmax(170px,1.2fr)}.role-row.tenant-row{grid-template-columns:minmax(180px,1.2fr) 110px 120px 100px 130px 80px}.role-row.contract-row{grid-template-columns:130px minmax(150px,1fr) 190px 110px 110px minmax(150px,1fr) 80px}.role-row.receipt-row{grid-template-columns:100px 90px 130px minmax(140px,1fr) minmax(130px,1fr) 86px}.role-row.showing-row{grid-template-columns:minmax(130px,1fr) 120px 110px 90px 70px minmax(140px,1fr) 86px}.form-screen{min-height:100vh;padding:24px;display:grid;place-items:center;background:var(--bg)}.wide-form-screen{align-items:start}.form-card{display:grid;gap:18px;width:min(760px,100%);border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);padding:24px}.wide-form-card{width:min(1120px,100%)}.page-card{width:100%}.compact-page-card{max-width:760px}.form-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.form-actions-inline{flex:0 0 auto}.form-actions,.form-actions-inline{display:flex;gap:8px;align-items:center}.form-actions{justify-content:flex-end}.checkbox-line{display:flex;min-height:38px;flex-direction:row;gap:8px;align-items:center}.checkbox-line input{width:auto;margin:0}.secondary-button{display:inline-grid;place-items:center;min-height:38px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--ink);padding:0 12px;text-decoration:none}.management-grid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px;align-items:start}.management-form{display:grid;gap:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);padding:16px}.management-form h2{margin:0 0 4px;font-size:17px}.management-form label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:700}.management-form input,.management-form select{min-height:40px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--ink);padding:0 11px;font:inherit}.management-table{background:#ffffff}.user-admin-page{display:grid;gap:16px}.user-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.user-admin-actions{display:flex;flex:0 0 auto;gap:8px;align-items:center}.drawer-head button,.one-time-password button,.user-admin-create{padding:0 12px;font-weight:700;cursor:pointer}.user-account-table-wrap{display:grid;min-width:0;gap:10px}.user-account-table-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.user-account-table-head h2,.user-account-table-head span{margin:0}.user-account-table-head h2{font-size:17px}.user-account-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,.34fr) minmax(140px,.28fr);gap:10px;align-items:end;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);padding:10px}.user-account-toolbar label{display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:700}.user-account-toolbar input,.user-account-toolbar select{min-height:36px;min-width:0;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--ink);padding:0 10px;font:inherit}.current-account-mark,.user-account-table-head span{color:var(--muted);font-size:11px;font-weight:600}.current-account-mark{display:inline-grid;min-height:18px;margin:3px 0 0;place-items:center;border:1px solid #d7e5ef;border-radius:999px;background:#f3f8fb;padding:0 7px;font-size:11px;line-height:1}.account-name{display:block;color:var(--ink)}.user-account-table{width:100%;table-layout:fixed}.user-account-table td,.user-account-table th{padding:8px 10px;vertical-align:top;word-break:break-word}.user-account-col-name{width:22%}.user-account-col-account{width:25%}.user-account-col-role{width:16%}.user-account-col-status{width:12%}.user-account-col-actions{width:250px}.user-account-table td:last-child,.user-account-table th:last-child{text-align:right}.user-account-empty{height:96px;color:var(--muted);text-align:center!important;vertical-align:middle!important}.user-account-actions{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:4px 10px;align-items:center}.user-account-actions details[open]{flex-basis:100%}.user-account-actions summary{color:var(--brand-strong);cursor:pointer;font-weight:700;list-style:none}.user-account-actions summary::-webkit-details-marker{display:none}.user-account-actions .danger-summary{color:var(--red)}.user-account-action-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;width:min(440px,72vw);margin-top:8px;border:1px solid var(--line);border-radius:6px;background:var(--panel-soft);padding:10px;white-space:normal;text-align:left}.user-account-action-form label{display:grid;gap:4px;color:var(--muted);font-size:11px;font-weight:700}.user-account-action-form input,.user-account-action-form select{min-width:0;min-height:34px;border:1px solid var(--line);border-radius:5px;background:#ffffff;padding:0 8px;font:inherit}.user-account-action-form .confirmation-check,.user-account-action-form p{grid-column:1/-1;margin:0;font-size:11px;line-height:1.5}.user-account-action-form .confirmation-check{display:flex;grid-template-columns:none;align-items:center}.user-account-action-form .confirmation-check input{min-height:auto}.inline-table-action,.user-account-action-form button{min-height:28px;border:0;border-radius:5px;background:transparent;color:var(--brand-strong);padding:0;font-weight:700;cursor:pointer}.user-account-action-form button{min-height:34px;background:var(--brand);color:#ffffff;padding:0 10px}.danger-inline-action,.user-account-action-form .danger-action{color:var(--red)}.user-account-action-form button:disabled{cursor:not-allowed;opacity:.5}.account-status{display:inline-flex;align-items:center;gap:6px;color:var(--ink);font-size:13px;font-weight:700}.account-status-dot{width:8px;height:8px;border-radius:999px;background:#94a3b8}.account-status-active .account-status-dot{background:#14b981}.account-status-disabled .account-status-dot{background:#ef4444}.one-time-password{display:flex;align-items:center;gap:10px;border:1px solid #b8e5d9;border-radius:8px;background:#effaf6;padding:10px 12px;color:#075e54}.one-time-password span{color:#28635c;font-size:12px}.drawer-head button,.one-time-password button{min-height:32px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--ink)}.user-account-drawer-backdrop{position:fixed;inset:0;z-index:50;display:flex;justify-content:flex-end;background:rgba(15,23,42,.28)}.user-account-drawer{width:min(430px,100vw);height:100%;overflow-y:auto;border-left:1px solid var(--line);background:#ffffff;box-shadow:-16px 0 32px rgba(15,23,42,.12);padding:18px}.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.drawer-head h2{margin:0;font-size:20px}.drawer-form{border:0;padding:0;background:transparent}.field-hint{margin-top:-4px;color:var(--muted);font-size:12px}.password-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px}.password-row button{min-height:40px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--ink);padding:0 10px;font-weight:700;cursor:pointer}.password-row button:disabled{cursor:not-allowed;opacity:.5}.table-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;min-width:620px;padding:12px;border-bottom:1px solid var(--line);background:#ffffff}.table-toolbar div:first-child{display:grid;gap:3px}.table-toolbar strong{color:var(--ink);font-size:14px}.table-toolbar span{color:var(--muted);font-size:12px}.segmented-control{display:inline-flex;flex:0 0 auto;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:#f8fafc}.segmented-control a{display:inline-grid;place-items:center;min-height:34px;padding:0 12px;border-right:1px solid var(--line);color:var(--muted);font-size:13px;font-weight:700;text-decoration:none}.segmented-control a:last-child{border-right:0}.segmented-control a.active{background:var(--brand);color:#ffffff}.prototype-page{display:grid;gap:16px}.prototype-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.prototype-kpis.five{grid-template-columns:repeat(5,minmax(130px,1fr))}.prototype-kpis.market-kpis{grid-template-columns:repeat(6,minmax(130px,1fr))}.prototype-card{display:grid;gap:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);padding:18px}.prototype-card h2{margin:0;font-size:19px}.prototype-grid{display:grid;gap:16px}.prototype-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.table-detail-link{color:var(--brand);font-weight:700;text-decoration:none}.table-detail-link:hover{text-decoration:underline}.business-map-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.business-map-node{display:flex;flex-direction:column;gap:6px;min-height:96px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);color:inherit;text-decoration:none}.business-map-node small,.business-map-node span{color:var(--muted);font-size:12px}.business-map-node strong{font-size:16px}.business-map-node.active{border-color:var(--brand);background:#edf7ff;box-shadow:inset 0 0 0 1px var(--brand)}.business-map-node.related{border-color:#8ab8d7}.business-object-flow{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.business-object-flow span{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);font-size:13px;font-weight:700}.business-object-flow b{color:var(--muted)}.business-trace-form{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;margin:12px 0}.business-trace-form .action{height:38px}.stack-unit-detail-link{width:fit-content;margin-top:12px;padding:0 13px}.unit-detail-page{display:grid;gap:10px}.unit-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.unit-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.unit-detail-summary>div{min-width:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 11px}.unit-detail-summary>div:nth-child(4n){border-right:0}.unit-detail-summary>div:nth-last-child(-n+4){border-bottom:0}.unit-detail-summary span{display:block;color:var(--muted);font-size:11px}.unit-detail-summary strong{display:block;margin-top:3px;overflow-wrap:anywhere;font-size:14px;line-height:1.35}.unit-detail-tabs-card{gap:8px;padding:12px}.unit-detail-tablist{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line)}.unit-detail-tablist button{min-width:max-content;min-height:34px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:0 10px;font:inherit;font-weight:700;cursor:pointer}.unit-detail-tablist button.active{border-bottom-color:var(--brand);color:var(--brand)}.unit-detail-tabpanel{min-height:130px}.unit-detail-base-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:12px;align-items:start}.unit-detail-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.unit-detail-fields>div{display:grid;gap:3px;min-width:0;border:1px solid var(--line);border-radius:6px;background:var(--panel-soft);padding:9px 10px}.unit-detail-fields>div.wide{grid-column:span 2}.unit-detail-fields span{color:var(--muted);font-size:12px}.unit-detail-fields strong{overflow-wrap:anywhere;font-size:14px}.unit-detail-edit-form{position:sticky;top:18px;gap:8px;padding:12px}.unit-detail-form-note{margin:0;color:var(--muted);font-size:12px;line-height:1.6}.unit-detail-empty{display:grid;min-height:90px;place-items:center;border:1px dashed var(--line);border-radius:6px;color:var(--muted)}.unit-detail-section-stack{display:grid;gap:12px}.unit-detail-section-stack>section{display:grid;gap:10px}.unit-detail-section-stack h2{margin:0;font-size:16px}.unit-detail-data-note{margin:0;color:var(--muted);font-size:12px}.unit-income-strip{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));border:1px solid var(--line);border-radius:6px;background:var(--panel-soft)}.unit-income-strip>div{min-width:0;border-right:1px solid var(--line);padding:9px 10px}.unit-income-strip>div:last-child{border-right:0}.unit-income-strip span{display:block;color:var(--muted);font-size:11px}.unit-income-strip strong{display:block;margin-top:3px;font-size:15px}.unit-showing-analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.unit-showing-analytics-grid>section{display:grid;gap:8px}.unit-showing-analytics-grid h3{margin:0;font-size:13px}.unit-feedback-distribution{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.unit-feedback-distribution span{display:grid;gap:2px;border:1px solid var(--line);border-radius:5px;background:var(--panel-soft);padding:6px 7px}.unit-feedback-distribution b{color:var(--muted);font-size:10px}.unit-feedback-distribution strong{font-size:16px}.unit-feedback-tag-list{display:flex;flex-wrap:wrap;gap:6px}.unit-feedback-tag-list span{border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);padding:4px 8px;color:var(--ink);font-size:11px}.unit-feedback-tag-list b{margin-left:4px}.unit-feedback-tag-list small{margin-left:3px;color:var(--muted)}.unit-feedback-history-table{font-size:12px}@media (max-width:767px){.unit-income-strip.unit-showing-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.unit-income-strip.unit-showing-summary>div:nth-child(2n){border-right:0}.unit-showing-analytics-grid{grid-template-columns:1fr}.unit-feedback-distribution{grid-template-columns:repeat(3,minmax(0,1fr))}}.unit-status-tag{display:inline-flex;align-items:center;min-height:22px;border:1px solid var(--line);border-radius:4px;background:var(--panel-soft);padding:1px 6px;color:var(--ink);font-size:12px;font-weight:700}.unit-status-tag.status-active{border-color:#8dd9ca;background:#e8f8f4;color:#17685c}.unit-status-tag.status-signed_not_started{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}.unit-status-tag.status-cancelled,.unit-status-tag.status-expired,.unit-status-tag.status-terminated,.unit-status-tag.status-void{color:var(--muted)}.unit-wrap-cell{min-width:220px;white-space:normal!important}.unit-detail-page .prototype-table td,.unit-detail-page .prototype-table th{padding:7px 8px}.unit-income-kpis{grid-template-columns:repeat(3,minmax(180px,1fr));margin-bottom:0}.unit-status-timeline{display:grid;gap:0;margin:0;padding:0;list-style:none}.unit-status-timeline li{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;border-bottom:1px solid var(--line);padding:13px 0}.unit-status-timeline time{color:var(--muted);font-size:12px}.unit-status-timeline p{margin:4px 0 0;color:var(--muted);font-size:13px}.unit-audit-table pre{max-width:300px;margin:0;overflow-wrap:anywhere;white-space:pre-wrap;font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace}.unit-contract-table{min-width:940px}.contract-detail-actions{display:flex;align-items:center;gap:8px}.contract-detail-summary{grid-template-columns:repeat(3,minmax(170px,1fr))}.contract-detail-summary>div:nth-child(3n){border-right:0}.contract-detail-summary>div:nth-last-child(-n+3){border-bottom:0}.contract-detail-fields{grid-template-columns:repeat(4,minmax(0,1fr))}.contract-income-strip{grid-template-columns:repeat(4,minmax(150px,1fr))}.contract-schedule-table{min-width:980px}.special-rent-panel{display:grid;gap:10px;border-top:2px solid var(--brand);padding-top:12px}.special-rent-form-actions,.special-rent-form-head,.special-rent-heading,.special-rent-row-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.special-rent-heading h2,.special-rent-heading p{margin:0}.special-rent-heading p{margin-top:3px;color:var(--muted);font-size:12px}.special-rent-summary strong{font-size:14px}.special-rent-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;border:1px solid var(--line);border-radius:6px;background:var(--panel-soft);padding:12px}.special-rent-form .wide,.special-rent-form-head{grid-column:1/-1}.special-rent-form label{display:grid;align-content:start;gap:5px;color:var(--muted);font-size:12px;font-weight:700}.special-rent-form input,.special-rent-form select,.special-rent-form textarea{width:100%;min-height:36px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:7px 9px;color:var(--ink);font:inherit}.special-rent-form textarea{min-height:64px;resize:vertical}.special-rent-form small{color:var(--muted);font-size:11px;font-weight:500;line-height:1.4}.special-rent-form .form-error{padding:6px 8px;font-size:11px}.special-rent-form-actions{justify-content:flex-end}.special-rent-form-actions button:not(.secondary-button){min-height:38px;border:0;border-radius:6px;background:var(--brand);padding:0 13px;color:#fff;font-weight:700}.special-rent-form-actions button:disabled{cursor:not-allowed;opacity:.55}.special-rent-table{min-width:820px}.special-rent-row-actions{justify-content:flex-start}.special-rent-form-head .table-detail-link,.special-rent-row-actions .table-detail-link{border:0;background:transparent;padding:0;font:inherit;cursor:pointer}.special-rent-row-actions .danger{color:var(--red)}.contract-lifecycle-timeline{border-top:1px solid var(--line)}.contract-lifecycle-timeline li:last-child{border-bottom:0}.unit-status-tag.receivable-overdue,.unit-status-tag.status-unknown{border-color:#e9b8b3;background:#fff3f1;color:#9f382f}.unit-status-tag.receivable-paid{border-color:#8dd9ca;background:#e8f8f4;color:#17685c}.unit-status-tag.receivable-partial,.unit-status-tag.receivable-pending{color:var(--muted)}@media (max-width:980px){.unit-detail-summary{grid-template-columns:repeat(2,minmax(150px,1fr))}.unit-detail-summary>div:nth-child(odd){border-right:1px solid var(--line)}.unit-detail-summary>div:nth-child(2n){border-right:0}.unit-detail-summary>div:nth-last-child(-n+4){border-bottom:1px solid var(--line)}.unit-detail-summary>div:nth-last-child(-n+2){border-bottom:0}.unit-detail-base-layout{grid-template-columns:1fr}.unit-detail-edit-form{position:static}.unit-detail-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.unit-income-kpis{grid-template-columns:1fr}.unit-income-strip{grid-template-columns:repeat(2,minmax(130px,1fr))}.contract-detail-summary{grid-template-columns:repeat(2,minmax(150px,1fr))}.contract-detail-summary>div:nth-child(3n){border-right:1px solid var(--line)}.contract-detail-summary>div:nth-child(2n){border-right:0}.contract-detail-summary>div:nth-last-child(-n+3){border-bottom:1px solid var(--line)}.contract-detail-summary>div:last-child{border-bottom:0}.contract-detail-fields,.special-rent-form{grid-template-columns:repeat(2,minmax(0,1fr))}.unit-income-strip>div{border-bottom:1px solid var(--line)}}@media (max-width:640px){.unit-detail-head{display:grid}.unit-detail-fields{grid-template-columns:1fr}.unit-detail-fields>div.wide{grid-column:auto}.unit-status-timeline li{grid-template-columns:1fr;gap:5px}.contract-detail-actions{align-items:stretch}.contract-detail-fields{grid-template-columns:1fr}.special-rent-heading{align-items:stretch;flex-direction:column}.special-rent-form{grid-template-columns:1fr}}.market-entry summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;list-style:none}.market-entry summary::-webkit-details-marker{display:none}.market-entry summary>span:first-child{display:grid;gap:5px}.market-entry summary strong{font-size:19px}.market-entry summary small{color:var(--muted);font-size:13px;font-weight:400}.summary-action{flex:0 0 auto;min-height:36px;display:inline-flex;align-items:center;border-radius:6px;background:var(--brand);color:#ffffff;padding:0 13px;font-size:13px;font-weight:700}.market-entry[open] .summary-action{background:#334155}.market-entry[open] .summary-action .when-closed,.summary-action .when-open{display:none}.market-entry[open] .summary-action .when-open{display:inline}.market-project-table{min-width:1180px}.market-project-alias-add button,.market-project-alias-list button,.market-project-edit-button,.market-project-primary-button,.market-project-secondary-button{min-height:34px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--ink);padding:0 12px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}.market-project-edit-button:focus-visible,.market-project-edit-button:hover{border-color:var(--brand);color:var(--brand)}.market-project-drawer-layer{position:fixed;inset:0;z-index:1000}.market-project-drawer-backdrop{position:absolute;inset:0;width:100%;border:0;background:rgba(15,23,42,.42);cursor:default}.market-project-drawer{position:absolute;top:0;right:0;display:flex;width:min(720px,94vw);height:100%;flex-direction:column;overflow:hidden;background:#f8fafc;box-shadow:-20px 0 50px rgba(15,23,42,.2)}.market-project-drawer>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);background:#ffffff;padding:18px 22px}.market-project-drawer>header h2{margin:2px 0 4px;font-size:22px}.market-project-alias-section>div:first-child p,.market-project-drawer>header p:last-child{margin:0;color:var(--muted);font-size:12px}.market-project-drawer-close{display:grid;width:34px;height:34px;flex:0 0 auto;place-items:center;border:1px solid var(--line);border-radius:999px;background:#ffffff;color:var(--muted);font-size:22px;cursor:pointer}.market-project-drawer-body{display:grid;gap:14px;overflow-y:auto;padding:14px 22px 24px}.market-project-alias-section,.market-project-editor-form{display:grid;gap:12px}.market-project-alias-section,.market-project-editor-form fieldset{min-width:0;margin:0;border:1px solid var(--line);border-radius:9px;background:#ffffff;padding:14px}.market-project-editor-form legend{padding:0 5px;color:var(--ink);font-size:14px;font-weight:800}.market-project-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.market-project-alias-add label,.market-project-form-grid label{display:grid;min-width:0;gap:5px;color:var(--muted);font-size:12px;font-weight:700}.market-project-form-grid label.wide{grid-column:1/-1}.market-project-alias-add input,.market-project-alias-list select,.market-project-form-grid input,.market-project-form-grid select{width:100%;min-width:0;min-height:38px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--ink);padding:0 10px;font:inherit}.market-project-form-grid input:disabled{background:#f1f5f9;color:#64748b}.market-project-alias-add small,.market-project-alias-list small,.market-project-form-grid small{color:var(--muted);font-size:11px;font-weight:500}.market-project-editor-form footer{display:flex;justify-content:flex-end;gap:8px}.market-project-alias-add button,.market-project-primary-button{border-color:var(--brand);background:var(--brand);color:#ffffff}.market-project-primary-button:disabled{cursor:not-allowed;opacity:.5}.market-project-alias-section h3{margin:0 0 4px;font-size:15px}.market-project-alias-list{display:grid;gap:8px}.market-project-alias-list form{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(180px,1fr) auto;gap:8px;align-items:center;border-radius:7px;background:#f8fafc;padding:8px}.market-project-alias-list span{display:grid;gap:2px}.market-project-alias-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;border-top:1px solid var(--line);padding-top:12px}.market-project-empty-alias{margin:0;color:var(--muted);font-size:12px}@media (max-width:767px){.market-project-drawer{width:100vw}.market-project-drawer-body,.market-project-drawer>header{padding-left:16px;padding-right:16px}.market-project-alias-add,.market-project-alias-list form,.market-project-form-grid{grid-template-columns:1fr}}.market-pending-table{min-width:1050px}.market-confirmed-table{min-width:1500px}.pricing-reference-table{min-width:800px}.market-review-actions{min-width:104px}.market-review-actions form:nth-child(2) button{color:#b42318;border-color:rgba(180,35,24,.25);background:rgba(180,35,24,.06)}.monthly-occupancy-table{min-width:1180px}.monthly-occupancy-table td,.monthly-occupancy-table th{min-width:82px;text-align:right;white-space:nowrap}.monthly-occupancy-table td:first-child,.monthly-occupancy-table th:first-child{min-width:96px;text-align:left}.monthly-occupancy-table .current-month{background:#eaf7f5}.occupancy-rate-row td{color:var(--brand-strong)}.occupancy-meter{display:block;width:100%;height:4px;margin-top:7px;overflow:hidden;background:#dbe3e8;border-radius:2px}.occupancy-meter>span{display:block;height:100%;background:var(--brand)}.sub{color:var(--muted);font-size:13px;line-height:1.65}.compact-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.form-grid label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:700}.form-grid input,.form-grid select,.form-grid textarea{width:100%;min-height:40px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--ink);padding:0 11px;font:inherit}.form-grid textarea{min-height:84px;padding-top:10px;resize:vertical}.form-grid .wide{grid-column:1/-1}.form-grid .checkbox-label{display:flex;min-height:40px;align-items:center;gap:8px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--ink);padding:0 11px}.form-grid .checkbox-label input{width:auto;min-height:auto}.prototype-form{margin-top:2px}.change-actions{display:flex;justify-content:flex-end;gap:10px}.change-entry-layout{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(520px,1.1fr);gap:16px;align-items:start}.change-entry-layout.new-lease-entry-layout{grid-template-columns:minmax(0,1fr)}.new-lease-entry-layout .contract-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.change-entry-panel{display:grid;gap:14px;min-width:0;border:1px solid var(--line);border-radius:8px;padding:14px}.change-entry-panel h3{margin:0;font-size:15px}.change-fields-grid label,.field-stack{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:700}.change-fields-grid input,.change-fields-grid select,.field-stack input,.field-stack select,.field-stack textarea{width:100%;min-height:40px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--ink);padding:0 11px;font:inherit}.field-stack textarea{min-height:76px;padding-top:10px;resize:vertical}.field-label{margin-bottom:-7px;color:var(--muted);font-size:13px;font-weight:700}.linked-contract-list{display:grid;gap:7px;max-height:210px;overflow:auto;border:1px solid var(--line);border-radius:7px;background:#f8fafb;padding:8px}.linked-contract-row{display:flex;align-items:flex-start;gap:9px;border:1px solid var(--line);border-radius:6px;background:#ffffff;padding:9px;cursor:pointer}.linked-contract-row input{flex:0 0 auto;margin-top:3px}.linked-contract-row span{display:grid;gap:3px;min-width:0}.linked-contract-row small,.linked-contract-row strong{overflow-wrap:anywhere}.linked-contract-row small{color:var(--muted)}.change-batch-note,.change-readonly-note{margin:0;color:var(--muted);font-size:12px;line-height:1.6}.change-batch-note{border-left:3px solid var(--brand);background:#eef8f6;padding:8px 10px}.contract-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.contract-summary-grid>div{display:grid;gap:4px;min-width:0;border:1px solid var(--line);border-radius:6px;background:#f8fafb;padding:9px}.contract-summary-grid span{color:var(--muted);font-size:12px}.contract-summary-grid strong{overflow-wrap:anywhere;font-size:13px}.change-fields-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.selected-unit-pricing{display:grid;gap:12px;min-width:0}.unit-picker-footer,.unit-picker-tools,.unit-pricing-toolbar,.unit-selection-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.unit-picker-footer>div:first-child,.unit-selection-head>div{display:grid;gap:4px}.unit-selection-head .field-label{margin:0}.unit-pricing-toolbar{justify-content:flex-start;border:1px solid #b8ded7;border-radius:8px;background:#eef8f6;padding:10px 12px}.unit-pricing-toolbar label{display:grid;grid-template-columns:auto minmax(180px,260px);align-items:center;gap:10px;color:var(--muted);font-size:12px;font-weight:700}.unit-picker-filters input,.unit-picker-filters select,.unit-pricing-input,.unit-pricing-toolbar input{min-height:38px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--ink);padding:0 10px;font:inherit}.unit-pricing-toolbar small{color:var(--muted)}.unit-pricing-table-wrap{border:1px solid var(--line);border-radius:8px}.unit-pricing-table{min-width:900px}.unit-pricing-table td:first-child{min-width:180px}.unit-pricing-table td:first-child small,.unit-pricing-table td:first-child strong{display:block}.unit-pricing-table td:first-child small{margin-top:4px;color:var(--muted)}.unit-pricing-table td:nth-child(3),.unit-pricing-table td:nth-child(4){min-width:140px}.unit-pricing-input{width:122px}.unit-pricing-input[readonly]{background:#f3f6f8;color:var(--muted)}.table-link-button{border:0;background:transparent;color:var(--brand);padding:4px 0;font:inherit;font-size:12px;font-weight:700;cursor:pointer}.unit-pricing-error,.unit-pricing-exception,.unit-pricing-table td .table-link-button{display:block;margin-top:4px}.unit-pricing-row-error{background:#fff6f5}.unit-pricing-row-exception{background:#fffaf0}.unit-pricing-error{color:#b42318}.unit-pricing-exception{color:#a15c00}.unit-pricing-empty{display:grid;gap:5px;border:1px dashed var(--line);border-radius:8px;background:#f8fafb;padding:22px;text-align:center}.unit-pricing-empty span{color:var(--muted);font-size:12px}.unit-picker-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:rgba(15,23,42,.48);padding:24px}.unit-picker-dialog{display:grid;grid-template-rows:auto auto auto minmax(220px,1fr) auto;gap:14px;width:min(980px,100%);max-height:min(820px,calc(100vh - 48px));border-radius:12px;background:#ffffff;box-shadow:0 24px 80px rgba(15,23,42,.28);padding:18px}.unit-picker-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.unit-picker-head h3,.unit-picker-head p{margin:0}.unit-picker-head p{margin-top:5px;color:var(--muted);font-size:12px}.unit-picker-close{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:#ffffff;color:var(--muted);font-size:24px;line-height:1;cursor:pointer}.unit-picker-filters{display:grid;grid-template-columns:minmax(240px,1fr) 180px 180px;gap:10px}.unit-picker-filters label{display:grid;gap:5px;font-weight:700}.unit-picker-filters label,.unit-picker-tools{color:var(--muted);font-size:12px}.unit-picker-footer>div:last-child,.unit-picker-tools>div{display:flex;gap:12px}.unit-picker-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px;min-height:0;overflow-y:auto;border:1px solid var(--line);border-radius:8px;background:#f8fafb;padding:8px}.unit-picker-item{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:9px;border:1px solid var(--line);border-radius:7px;background:#ffffff;padding:11px;cursor:pointer}.unit-picker-item.selected{border-color:var(--brand);background:#eef8f6;box-shadow:inset 0 0 0 1px var(--brand)}.unit-picker-item input{margin-top:3px}.unit-picker-item span{display:grid;gap:4px;min-width:0}.unit-picker-footer span,.unit-picker-item small{color:var(--muted)}.change-impact-preview,.unit-picker-footer{border-top:1px solid var(--line);padding-top:14px}.change-impact-preview{display:grid;gap:9px}.change-impact-preview p{margin:0;color:var(--muted);font-size:12px}.change-impact-preview table{min-width:620px}.free-period-editor{display:grid;gap:10px}.free-period-table{min-width:600px}.free-period-table input{width:100%;min-width:120px;min-height:38px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--ink);padding:0 9px;font:inherit}.free-period-table td:nth-child(3) input{min-width:90px}.free-period-add,.table-danger-button{min-height:36px;border:0;border-radius:6px;padding:0 12px;font-weight:700}.table-danger-button{background:#b42318;color:#ffffff}.free-period-add{background:#334155;color:#ffffff}.free-period-error,.free-period-success{margin:0;font-size:12px}.free-period-success{color:var(--brand-strong)}.free-period-error{color:#b42318}.change-actions .action:disabled{cursor:not-allowed;opacity:.5}.action{min-height:38px;border:0;border-radius:6px;background:var(--brand);color:#ffffff;padding:0 14px;font-weight:700}.secondary-action{border:1px solid #8fbdb5;background:#f2faf8;color:#0f766e;box-shadow:none}.secondary-action:hover:not(:disabled){border-color:#4f9f92;background:#e2f3ef}.secondary-action:disabled{border-color:#d7e0e4;background:#f3f5f6;color:#98a2ad;opacity:1}a.action{display:inline-grid;place-items:center;text-decoration:none}.cashflow-toolbar{align-items:center}.cashflow-year-form{display:flex;align-items:end;gap:10px;margin-top:14px}.cashflow-year-form label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:700}.cashflow-year-form select{min-width:170px;min-height:38px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--ink);padding:0 10px}.cashflow-matrix-table td:not(:nth-child(-n+3)),.cashflow-matrix-table th:not(:nth-child(-n+3)){text-align:right;white-space:nowrap}.table-link{color:var(--brand-dark);font-weight:700;text-decoration:none}.inline-actions{display:flex;flex-wrap:wrap;gap:6px;min-width:120px}.inline-actions button{min-height:28px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--ink);padding:0 9px;font-size:12px;font-weight:700}.inline-actions form:nth-child(2) button{border-color:rgba(15,118,110,.3);background:rgba(15,118,110,.08);color:var(--brand-dark)}.inline-actions form:nth-child(3) button{color:#b42318}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px}.prototype-table{width:100%;border-collapse:collapse;min-width:1180px;background:#ffffff;font-size:13px}.contract-ledger-table{min-width:1760px}.renewal-action-table{min-width:1540px}.renewal-action-table td,.renewal-action-table th{vertical-align:top}.renewal-action-form{display:grid;gap:5px;min-width:150px}.renewal-action-form input,.renewal-action-form select,.renewal-action-form textarea,.renewal-filter-form input,.renewal-filter-form select{min-height:30px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);padding:4px 7px;font:inherit;font-size:12px}.renewal-action-form textarea{min-height:44px;resize:vertical}.renewal-action-form button{min-height:30px;padding:4px 9px;font-size:12px}.renewal-filter-form{display:flex;flex-wrap:wrap;gap:8px;align-items:end}.renewal-filter-form label{display:grid;gap:4px;color:var(--muted);font-size:12px;font-weight:700}.renewal-filter-form .secondary-button{min-height:30px;padding:4px 10px}.renewal-action-status,.renewal-expiry-badge,.renewal-fact-badge{display:inline-flex;align-items:center;border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc;padding:3px 7px;color:#475569;font-size:11px;font-weight:700;white-space:nowrap}.renewal-action-status--info{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.renewal-action-status--warning,.renewal-expiry-badge{border-color:#fbbf24;background:#fffbeb;color:#92400e}.renewal-action-status--complete{border-color:#a7f3d0;background:#ecfdf5;color:#047857}.renewal-fact-badge{border-color:#99f6e4;background:#f0fdfa;color:#0f766e}.renewal-not-set,.renewal-unassigned{color:#b45309;font-weight:700}.renewal-history,.renewal-scope-note,.table-muted{color:var(--muted);font-size:11px}.renewal-history{margin-top:5px}.renewal-history summary{cursor:pointer;color:var(--brand);font-weight:700}.renewal-history ol{margin:5px 0 0;padding-left:18px}.contract-renewal-action-summary{gap:10px}.contract-renewal-action-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--line)}.contract-renewal-action-grid>div{display:grid;gap:4px;min-width:0;background:#fff;padding:10px 12px}.contract-renewal-action-grid span{color:var(--muted);font-size:11px;font-weight:700}.contract-renewal-action-grid strong{overflow-wrap:anywhere;font-size:13px}@media (max-width:900px){.contract-renewal-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:600px){.contract-renewal-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.showing-summary-table{min-width:1500px}.showing-event-table{min-width:2100px}.ui-data-table-region{min-width:0}.ui-data-table-mobile-hint{margin:0 0 6px;color:var(--muted);font-size:11px}.ui-data-table-controls{display:grid;gap:8px;margin-bottom:8px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;padding:8px 10px}.ui-data-table-controls__form,.ui-data-table-controls__pagination,.ui-data-table-controls__summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ui-data-table-controls__form label{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:12px;font-weight:700}.ui-data-table-controls__form input:not([type=checkbox]),.ui-data-table-controls__form select{min-height:30px;min-width:82px;border:1px solid var(--line);border-radius:5px;background:#fff;padding:0 7px;color:var(--ink);font:inherit}.ui-data-table-controls__search input{width:190px}.ui-data-table-controls__columns{position:relative}.ui-data-table-controls__columns summary{cursor:pointer;color:var(--brand-dark);font-size:12px;font-weight:700}.ui-data-table-controls__column-list{position:absolute;z-index:4;top:26px;left:0;display:grid;min-width:190px;gap:6px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:8px;box-shadow:0 10px 20px rgba(15,23,42,.12)}.ui-data-table-controls__column-list label{justify-content:flex-start;font-weight:500}.ui-data-table-controls__summary{justify-content:space-between;color:var(--muted);font-size:12px}.table-control-reset,.ui-data-table-controls__pagination a{color:var(--brand-dark);font-weight:700;text-decoration:none}.ui-data-table-controls__pagination span[aria-disabled=true]{color:#94a3b8}.ui-data-table[data-density=compact] td,.ui-data-table[data-density=compact] th{padding:6px 8px}.ui-data-table__cell--width-short{width:100px;min-width:80px}.ui-data-table__cell--width-name{width:180px;min-width:150px}.ui-data-table__cell--width-long{width:260px;min-width:220px;max-width:300px;white-space:normal!important;overflow-wrap:anywhere}.ui-data-table__cell--width-area{width:80px;min-width:80px}.ui-data-table__cell--width-money{width:120px;min-width:110px}.ui-data-table__cell--width-date{width:110px;min-width:105px}.ui-data-table__cell--width-period{width:190px;min-width:170px}.ui-data-table__cell--width-status{width:100px;min-width:90px;text-align:center}.ui-data-table__cell--width-percent{width:90px;min-width:80px}.ui-data-table__cell--width-actions{width:100px;min-width:88px}.ui-data-table__cell--sticky-end,.ui-data-table__cell--sticky-start{position:sticky;z-index:2;background:#ffffff}.ui-data-table__cell--sticky-start{left:0;box-shadow:8px 0 12px rgba(15,23,42,.04)}.ui-data-table__cell--sticky-end{right:0;box-shadow:-8px 0 12px rgba(15,23,42,.04)}.ui-data-table thead .ui-data-table__cell--sticky-end,.ui-data-table thead .ui-data-table__cell--sticky-start{z-index:3;background:#f8fafc}.prototype-table.ui-table--dense{min-width:0;font-size:12.5px}.prototype-table.ui-table--dense td,.prototype-table.ui-table--dense th{padding:6px 8px}.prototype-table.ui-table--contract-detail{min-width:720px}.prototype-table.ui-table--payments{min-width:980px}.prototype-table.ui-table--matrix{min-width:1180px;table-layout:fixed}.prototype-table.ui-table--matrix td:first-child,.prototype-table.ui-table--matrix th:first-child{position:sticky;left:0;z-index:2;width:110px;min-width:110px;background:#ffffff}.prototype-table.ui-table--matrix td:nth-child(2),.prototype-table.ui-table--matrix th:nth-child(2){position:sticky;left:110px;z-index:2;width:160px;min-width:160px;background:#ffffff}.prototype-table.ui-table--matrix td:nth-child(3),.prototype-table.ui-table--matrix th:nth-child(3){position:sticky;left:270px;z-index:2;width:90px;min-width:90px;background:#ffffff}.prototype-table.ui-table--matrix thead th:nth-child(-n+3){z-index:3;background:#f8fafc}.prototype-table.ui-table--matrix td:nth-child(n+4),.prototype-table.ui-table--matrix th:nth-child(n+4){width:92px;min-width:92px;text-align:right}.prototype-table.ui-table--showings{min-width:1450px;table-layout:fixed}.prototype-table.ui-table--showings td,.prototype-table.ui-table--showings th{overflow:hidden;text-overflow:ellipsis}.prototype-table.ui-table--showings td:first-child,.prototype-table.ui-table--showings th:first-child{width:52px}.prototype-table.ui-table--showings td:nth-child(2),.prototype-table.ui-table--showings td:nth-child(3),.prototype-table.ui-table--showings th:nth-child(2),.prototype-table.ui-table--showings th:nth-child(3){width:110px}.prototype-table.ui-table--showings td:nth-child(4),.prototype-table.ui-table--showings th:nth-child(4){width:100px}.prototype-table.ui-table--showings td:nth-child(5),.prototype-table.ui-table--showings th:nth-child(5){width:90px}.prototype-table.ui-table--showings td:nth-child(6),.prototype-table.ui-table--showings td:nth-child(7),.prototype-table.ui-table--showings th:nth-child(6),.prototype-table.ui-table--showings th:nth-child(7){width:120px}.prototype-table.ui-table--showings td:nth-child(8),.prototype-table.ui-table--showings th:nth-child(8){width:100px}.prototype-table.ui-table--budget{min-width:760px}.prototype-table.ui-table--market,.prototype-table.ui-table--tenant-contribution,.prototype-table.ui-table--vacancy{min-width:0}.actual-cashflow-page .prototype-table,.budget-detail-page .prototype-table,.market-page .prototype-table,.payments-page .prototype-table,.tenant-contribution-page .prototype-table,.unit-detail-tabs-card .prototype-table,.vacancies-page .prototype-table{font-size:12.5px}.actual-cashflow-page .prototype-table td,.actual-cashflow-page .prototype-table th,.budget-detail-page .prototype-table td,.budget-detail-page .prototype-table th,.market-page .prototype-table td,.market-page .prototype-table th,.payments-page .prototype-table td,.payments-page .prototype-table th,.tenant-contribution-page .prototype-table td,.tenant-contribution-page .prototype-table th,.unit-detail-tabs-card .prototype-table td,.unit-detail-tabs-card .prototype-table th,.vacancies-page .prototype-table td,.vacancies-page .prototype-table th{padding:6px 8px}.unit-detail-tabs-card .prototype-table{min-width:720px}.unit-detail-tabs-card .contract-schedule-table{min-width:900px}.unit-detail-tabs-card .prototype-table td pre,.unit-detail-tabs-card .unit-audit-table td:nth-last-child(-n+2){max-width:260px;white-space:normal;overflow-wrap:anywhere}.payments-page .prototype-table{min-width:980px}.actual-cashflow-page .prototype-table td:nth-child(n+4),.actual-cashflow-page .prototype-table th:nth-child(n+4),.budget-detail-page .prototype-table td:nth-child(n+2),.budget-detail-page .prototype-table th:nth-child(n+2),.payments-page .prototype-table td:nth-child(n+7),.payments-page .prototype-table th:nth-child(n+7){white-space:nowrap}.actual-cashflow-page .cashflow-matrix-table,.cashflow-page .ui-table--matrix{min-width:1180px}.actual-cashflow-page .contract-ledger-table:not(.cashflow-matrix-table){min-width:920px}.budget-detail-page .prototype-table{min-width:760px}.budget-vacancy-workbench{display:grid;gap:16px;margin-top:16px}.budget-vacancy-batch-panel__title,.budget-vacancy-preview-head,.budget-vacancy-workbench__header{display:flex;align-items:center;justify-content:space-between;gap:16px}.budget-vacancy-preview-head h3,.budget-vacancy-workbench__header h2{margin:0}.budget-vacancy-preview-head .sub,.budget-vacancy-workbench__header .sub{margin:6px 0 0}.budget-vacancy-filter-stat,.budget-vacancy-selection-summary{display:grid;gap:2px;min-width:150px;padding:9px 12px;border:1px solid #b8dcd7;border-radius:6px;background:#effaf8;color:var(--brand-strong);text-align:right}.budget-vacancy-filter-stat span,.budget-vacancy-selection-summary span{font-size:12px}.budget-vacancy-batch-grid,.budget-vacancy-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:end}.budget-vacancy-batch-grid label,.budget-vacancy-filter-grid label{display:grid;gap:5px;color:var(--muted);font-size:12px}.budget-vacancy-batch-grid input,.budget-vacancy-filter-grid input,.budget-vacancy-preview-table input{width:100%;min-height:36px;border:1px solid var(--line);border-radius:5px;padding:7px 8px;background:#fff;color:var(--ink)}.budget-vacancy-filter-stat{text-align:left}.budget-vacancy-preview-table,.budget-vacancy-unit-list{max-height:430px;overflow:auto;border:1px solid var(--line);border-radius:6px;background:#fff}.budget-vacancy-preview-table .data-table,.budget-vacancy-unit-list .data-table{min-width:980px}.budget-vacancy-preview-table thead,.budget-vacancy-unit-list thead{position:sticky;top:0;z-index:1;background:#f7f9fb}.budget-vacancy-status{display:inline-flex;border-radius:999px;padding:3px 8px;background:#e8f5ef;color:#157347;font-size:12px}.budget-vacancy-batch-panel{position:sticky;bottom:12px;z-index:3;display:grid;gap:12px;padding:14px;border:1px solid #b8dcd7;border-radius:8px;background:rgba(255,255,255,.97);box-shadow:0 10px 28px rgba(15,23,42,.14)}.budget-vacancy-batch-panel__title span{color:var(--muted);font-size:12px}.budget-vacancy-batch-grid .wide{grid-column:span 2}.budget-vacancy-batch-grid>.action{min-height:36px}.budget-vacancy-preview-form{display:grid;gap:12px}.budget-vacancy-preview-table td,.budget-vacancy-preview-table th{vertical-align:middle;white-space:nowrap}.budget-vacancy-preview-table tr.is-conflict{background:#fff1f0;color:#9d2118}.budget-vacancy-preview-table .budget-vacancy-conflict{max-width:260px;white-space:normal;color:#b42318;font-weight:700}.budget-vacancy-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.budget-vacancy-summary-grid>div{display:grid;gap:3px;padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--panel-soft)}.budget-vacancy-summary-grid span{color:var(--muted);font-size:12px}.budget-vacancy-summary-grid .is-danger{border-color:#f0a39c;background:#fff1f0;color:#b42318}.budget-vacancy-empty,.budget-vacancy-readonly-note{padding:14px;border:1px dashed var(--line);border-radius:6px;background:var(--panel-soft);color:var(--muted)}.budget-vacancy-readonly-note h2{margin:0 0 6px;color:var(--ink);font-size:16px}.budget-detail-page .prototype-table:nth-of-type(2){min-width:980px}.vacancies-page .monthly-occupancy-table{min-width:980px;table-layout:fixed}.vacancies-page .monthly-occupancy-table td,.vacancies-page .monthly-occupancy-table th{min-width:86px;text-align:right}.vacancies-page .monthly-occupancy-table td:first-child,.vacancies-page .monthly-occupancy-table th:first-child{width:150px;text-align:left}.market-page .prototype-table,.tenant-contribution-page .prototype-table{min-width:0}.market-page .prototype-table td:last-child,.tenant-contribution-page .prototype-table td:last-child{max-width:260px;white-space:normal;overflow-wrap:anywhere}.market-import-files,.market-import-page{display:grid;gap:14px}.market-import-file-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.market-import-file-grid input[type=file]{min-height:38px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:7px 9px;color:var(--ink);font:inherit}.market-import-readonly{display:flex;align-items:center;gap:10px;margin-bottom:10px;border-left:3px solid #0f766e;background:#f0fdfa;padding:8px 10px;color:#115e59;font-size:12px}.market-import-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.market-import-hashes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.market-import-hashes>div{display:grid;gap:3px;min-width:0;border:1px solid var(--line);border-radius:6px;background:#f8fafc;padding:8px 10px;font-size:11px}.market-import-hashes span{color:var(--muted);font-weight:700}.market-import-hashes code{overflow-wrap:anywhere;color:#475569}.market-import-status{display:inline-flex;border-radius:999px;background:#f1f5f9;padding:2px 7px;color:#475569;font-size:11px;font-weight:800;white-space:nowrap}.market-import-status.create{background:#ecfdf5;color:#047857}.market-import-status.existing{background:#eff6ff;color:#1d4ed8}.market-import-status.manual_confirmation{background:#fff7ed;color:#9a3412}.market-import-status.excluded{background:#f8fafc;color:#64748b}.market-import-next-gate{border-left:3px solid #d97706}@media (max-width:980px){.market-import-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.market-import-file-grid,.market-import-hashes{grid-template-columns:1fr}}.tenants-page .role-table{overflow-x:auto}.tenants-page .tenant-ledger-table{min-width:640px}.tenants-page .role-row.tenant-row{min-width:640px;gap:8px;padding:7px 8px;font-size:12.5px}.prototype-table.ui-table--long-text td:last-child,.prototype-table.ui-table--long-text td:nth-last-child(2){max-width:280px;white-space:normal;overflow-wrap:anywhere}.ui-table__area,.ui-table__money,.ui-table__number,.ui-table__percent{text-align:right!important;white-space:nowrap!important}.ui-table__status{width:100px;min-width:90px;text-align:center!important}@media (max-width:1023px){.prototype-table.ui-table--showings{min-width:1180px}.prototype-table.ui-table--showings td:nth-child(n+9),.prototype-table.ui-table--showings th:nth-child(n+9){display:none}}@media (max-width:767px){.budget-vacancy-batch-panel__title,.budget-vacancy-preview-head,.budget-vacancy-workbench__header{align-items:flex-start;flex-direction:column}.budget-vacancy-filter-stat,.budget-vacancy-selection-summary{width:100%;text-align:left}.budget-vacancy-batch-grid,.budget-vacancy-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.budget-vacancy-batch-grid .wide{grid-column:span 2}.budget-vacancy-batch-panel{bottom:8px;padding:12px}.budget-vacancy-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1023px){.ui-data-table__cell--hide-below-1024{display:none}}@media (max-width:767px){.ui-data-table__cell--hide-below-768{display:none}}.showings-page{gap:16px}.showing-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.showing-kpi-card{position:relative;display:grid;min-height:110px;border:1px solid var(--line);border-radius:8px;background:#ffffff;padding:16px}.showing-kpi-card span{display:block;margin-bottom:10px;color:#64748b;font-size:13px;font-weight:500}.showing-kpi-card strong{display:block;color:var(--ink);font-size:24px;font-weight:500;line-height:1.1}.showing-kpi-card p{margin:8px 0 0;color:var(--muted);font-size:12px}.showing-kpi-card>svg{position:absolute;top:14px;right:14px;width:14px;height:14px;fill:currentColor;opacity:.9}.showing-kpi-card.neutral{color:#64748b}.showing-kpi-card.info,.showing-stage-tag.info{color:#185fa5}.showing-kpi-card.purple,.showing-stage-tag.purple{color:#534ab7}.showing-kpi-card.orange,.showing-stage-tag.orange{color:#ba7517}.showing-kpi-card.green-red{color:#3b6d11}.showing-kpi-plus{position:absolute;right:12px;bottom:12px;display:grid;width:26px;height:26px;place-items:center;border:1px solid;border-radius:999px;background:rgba(255,255,255,.8);color:inherit}.showing-kpi-plus svg{width:13px;height:13px;fill:currentColor}.showing-form-card{display:grid;gap:14px}.showing-form-title{display:flex;gap:10px;align-items:flex-start}.showing-form-title>svg{width:22px;height:22px;margin-top:3px;fill:var(--brand)}.showing-form-title h2{margin:0;font-size:22px;font-weight:600}.showing-progress{position:relative;overflow:hidden;height:30px;border:1px solid #dbeafe;border-radius:8px;background:#eff6ff}.showing-progress span{position:relative;z-index:1;display:grid;height:100%;place-items:center start;padding:0 12px;color:#1d4ed8;font-size:12px;font-weight:700}.showing-progress i{position:absolute;inset:0 auto 0 0;background:rgba(37,99,235,.18)}.showing-form{display:grid;gap:12px}.showing-fieldset{border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);padding:0}.showing-fieldset summary{cursor:pointer;padding:12px 14px;color:var(--ink);font-size:15px;font-weight:700}.showing-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border-top:1px solid var(--line);padding:14px}.showing-form-grid label{display:grid;min-width:0;gap:6px;color:var(--muted);font-size:13px;font-weight:500}.showing-form-grid label.wide{grid-column:span 3}.showing-field-label{color:var(--ink);font-size:13px;font-weight:500}.showing-field-label em{margin-left:3px;color:#dc2626;font-style:normal}.showing-form-grid input,.showing-form-grid select,.showing-form-grid textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--ink);font:inherit;font-size:14px}.showing-form-grid input,.showing-form-grid select{min-height:40px;padding:0 10px}.showing-form-grid textarea{min-height:80px;max-height:240px;resize:vertical;padding:10px}.showing-form-grid input:disabled{background:#f1f5f9;color:#64748b}.char-counter{justify-self:end;color:var(--muted);font-size:12px;font-weight:500}.showing-slider-field span{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:10px;align-items:center}.showing-slider-field input{padding:0}.showing-slider-field b{color:var(--brand);font-size:14px;text-align:right}.showing-switch-line button{width:max-content;min-height:40px;border:1px solid var(--line);border-radius:999px;background:#ffffff;color:var(--muted);padding:0 14px;font-weight:700;cursor:pointer}.showing-switch-line button.active{border-color:#2563eb;background:#eff6ff;color:#2563eb}.showing-submit-row{display:flex;justify-content:center;gap:10px;padding-top:4px}.showing-primary-button,.showing-secondary-button{height:40px;border-radius:6px;padding:0 32px;font-size:14px;font-weight:700;cursor:pointer}.showing-primary-button{border:1px solid #2563eb;background:#2563eb;color:#ffffff}.showing-primary-button:hover{background:#1d4ed8}.showing-secondary-button{border:1px solid #2563eb;background:#ffffff;color:#2563eb}.showing-draft-tip{border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;padding:10px 12px;color:#1d4ed8;font-size:13px;font-weight:700}.showing-filter-bar{display:grid;grid-template-columns:minmax(0,1fr) 160px 160px;gap:10px;align-items:end;border:1px solid var(--line);border-radius:8px;background:#ffffff;padding:10px}.showing-tabs{display:flex;flex-wrap:wrap;gap:6px}.showing-filter-bar select,.showing-tabs button{min-height:34px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--ink);padding:0 10px;font:inherit;font-size:13px;font-weight:700}.showing-tabs button{cursor:pointer}.showing-tabs button.active{border-color:#2563eb;background:#eff6ff;color:#2563eb}.showing-filter-bar label{display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:700}.showing-card-list{display:grid;gap:8px;margin-top:12px}.showing-follow-card{border:1px solid var(--line);border-radius:8px;background:#ffffff}.showing-follow-card>button{display:grid;width:100%;grid-template-columns:minmax(170px,1.5fr) 92px minmax(90px,.8fr) 150px 52px;gap:10px;align-items:center;border:0;background:transparent;padding:12px 14px;color:var(--muted);font:inherit;text-align:left;cursor:pointer}.showing-follow-card strong{color:var(--ink);font-size:16px}.showing-follow-card i{color:var(--brand);font-style:normal;font-weight:700;text-align:right}.showing-stage-tag{display:inline-grid;width:max-content;min-height:24px;place-items:center;border:1px solid;border-radius:999px;background:#ffffff;padding:0 9px;font-size:12px;font-weight:700}.showing-stage-tag.neutral{color:#64748b}.showing-stage-tag.green{color:#3b6d11}.showing-stage-tag.red{color:#a32d2d}.showing-inline-detail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;border-top:1px solid var(--line);background:var(--panel-soft);padding:12px 14px;color:var(--muted);font-size:13px}.showing-inline-detail .wide{grid-column:span 3}.showing-empty{display:grid;min-height:180px;place-items:center;gap:8px;border:1px dashed var(--line);border-radius:8px;background:var(--panel-soft);padding:18px;text-align:center}.showing-empty svg{width:82px;height:62px;fill:#dbeafe;stroke:#2563eb;stroke-width:2}.showing-empty strong{color:var(--ink)}.showing-empty a{color:var(--brand);font-weight:700}.showing-table-wrap{overflow-x:auto}.showing-event-table{min-width:1760px;table-layout:fixed}.showing-event-table td,.showing-event-table th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.showing-event-table th{white-space:normal}.showing-event-table td:first-child,.showing-event-table th:first-child{width:60px}.showing-event-table td:nth-child(2),.showing-event-table th:nth-child(2){width:120px}.showing-event-table td:nth-child(3),.showing-event-table th:nth-child(3){width:140px}.showing-event-table td:nth-child(n+4),.showing-event-table th:nth-child(n+4){min-width:100px}.showing-ellipsis{overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.showing-empty-table{height:92px;color:var(--muted);text-align:center!important;vertical-align:middle!important}.meeting-room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.meeting-room-card,.meeting-room-grid{display:grid;gap:14px}.meeting-room-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0}.meeting-room-stats div{border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);padding:10px}.meeting-room-stats dt{color:var(--muted);font-size:12px;font-weight:700}.meeting-room-stats dd{margin:6px 0 0;color:var(--ink);font-size:18px;font-weight:800}.meeting-record-table,.meeting-reservation-table{min-width:1360px}.meeting-dashboard-table{min-width:520px}.inline-edit-panel{min-width:min(760px,calc(100vw - 80px));margin-top:8px;border:1px solid var(--line);border-radius:8px;background:#ffffff;padding:12px;box-shadow:0 14px 32px rgba(15,23,42,.12)}.pagination-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;color:var(--muted);font-size:13px}.pagination-row div{display:flex;gap:8px}.impact-table{min-width:1100px}.change-ledger-table{min-width:2200px}.legend{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:12px}.legend span{display:inline-flex;align-items:center;gap:5px}.stack-legend{display:inline-block;width:10px;height:10px;border-radius:2px}.stack-legend.leased{background:#0f766e}.stack-legend.vacant{background:#94a3b8}.stack-legend.in-use{background:#b45309}.stack-axis,.stack-list{display:grid;grid-template-columns:52px repeat(7,minmax(92px,1fr));gap:4px;min-width:900px}.stack-axis{margin:12px 0 4px;color:var(--muted);font-size:11px;text-align:center}.stack-axis span:first-child{text-align:left}.stack-list{grid-auto-rows:minmax(26px,auto);align-items:stretch;overflow:auto}.stack-floor-label{display:grid;gap:1px;align-content:center;min-width:0;border:1px solid var(--line);border-radius:5px;background:#ffffff;color:var(--muted);padding:3px 5px}.stack-floor-label strong{color:var(--ink);font-size:12px}.stack-floor-label span{font-size:10px}.stack-cell,.stack-cluster{display:grid;gap:2px;min-width:0}.stack-cluster{grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}.stack-cell.duplex-anchor{align-self:stretch}.stack-unit{min-width:0;min-height:24px;border:1px solid var(--line);border-left-width:4px;border-radius:5px;background:#f8fafc;color:var(--ink);padding:4px}.stack-unit.duplex-span{display:flex;flex-direction:column;justify-content:center;height:100%}.stack-unit.leased{background:#d9f3ee;border-color:#8bd7c9;color:#0b4f49}.stack-unit.vacant{background:#eef2f6;border-color:#cbd5e1;color:#475569}.stack-unit.signed{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.stack-unit.in-use{background:#fff7ed;border-color:#fed7aa;color:#7c2d12}.stack-unit .unit-no{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700;line-height:1.1}.stack-unit .tenant-name{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;margin-top:2px;font-size:10px;line-height:1.2}.stack-unit .unit-meta{display:flex;justify-content:space-between;gap:4px;margin-top:2px;color:var(--muted);font-size:9px;line-height:1.15}.prototype-table td,.prototype-table th{border-bottom:1px solid var(--line);padding:10px 11px;text-align:left;vertical-align:top;white-space:nowrap}.prototype-table th{background:#f8fafc;color:#506074;font-weight:700}.prototype-table td{color:var(--muted)}.prototype-table tr:last-child td{border-bottom:0}.text-strong{color:var(--ink)!important;font-weight:700}.placeholder-panel{display:grid;gap:12px;margin-top:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);padding:18px}.placeholder-panel h2{margin:0;font-size:18px}.placeholder-panel ul{display:grid;gap:10px;margin:0;padding-left:18px;color:var(--muted)}.alert-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}.alert-card{display:grid;gap:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);padding:16px}.alert-card div{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px;font-weight:700}.alert-card strong{color:var(--red)}.alert-card h2{margin:0;font-size:17px}.alert-card p{margin:0;color:var(--muted);line-height:1.7}.alert-card small{color:var(--brand);font-weight:700}@media (max-width:1080px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.nav-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.alert-grid,.change-entry-layout,.form-grid,.form-head,.login-card,.management-grid,.split-band,.topbar{grid-template-columns:1fr}.new-lease-entry-layout .contract-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-head{display:grid}.prototype-kpis.market-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.user-admin-head{display:grid}.user-account-table-shell{overflow-x:auto}.user-account-table{min-width:780px}.user-account-table td:last-child,.user-account-table th:last-child{position:sticky;right:0;z-index:1;background:#ffffff;box-shadow:-8px 0 12px rgba(15,23,42,.04)}.showing-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.showing-filter-bar,.showing-form-grid,.showing-inline-detail{grid-template-columns:1fr}.showing-form-grid label.wide,.showing-inline-detail .wide{grid-column:auto}.showing-follow-card>button{grid-template-columns:minmax(0,1fr) auto}.showing-follow-card>button span:nth-of-type(2),.showing-follow-card>button span:nth-of-type(3){grid-column:1/-1}.meeting-room-grid,.meeting-room-stats{grid-template-columns:1fr}.pagination-row{align-items:stretch;flex-direction:column}}@media (max-width:760px){.ui-data-table-controls__form{align-items:stretch;flex-direction:column}.ui-data-table-controls__form label,.ui-data-table-controls__form select,.ui-data-table-controls__search input{width:100%}.ui-data-table-controls__column-list{position:static;margin-top:6px;box-shadow:none}.workspace{padding:16px}h1{font-size:24px}.kpi-row,.module-grid,.nav-list{grid-template-columns:1fr}.section-head{display:block}.status-pill{display:inline-flex;margin-top:10px}.one-time-password,.user-admin-actions{align-items:stretch;flex-direction:column}.user-account-toolbar{grid-template-columns:1fr}.user-account-drawer{width:100vw}.password-row,.showing-kpi-grid{grid-template-columns:1fr}.showing-submit-row{align-items:stretch;flex-direction:column}.showing-primary-button,.showing-secondary-button{width:100%}.change-entry-panel{padding:12px;gap:12px}.change-entry-panel h3{font-size:16px}.change-fields-grid,.contract-summary-grid{grid-template-columns:1fr;gap:10px}.linked-contract-list{max-height:360px;padding:6px}.linked-contract-row{display:grid;grid-template-columns:1fr;gap:9px;padding:10px}.linked-contract-row>label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;width:100%}.linked-contract-row>label>input[type=number]{grid-column:1/-1;width:100%;min-height:42px;border:1px solid var(--line);border-radius:6px;padding:0 10px;background:#ffffff;color:var(--ink);font:inherit}.linked-contract-row>label:has(input[type=number]){grid-template-columns:1fr;gap:5px;color:var(--muted);font-size:12px;font-weight:700}.contract-summary-grid>div{padding:10px}.change-batch-note{font-size:13px}.change-actions{position:sticky;bottom:0;z-index:5;align-items:stretch;flex-direction:column;margin:0 -12px -12px;padding:12px;background:rgba(255,255,255,.96);border-top:1px solid var(--line)}.change-actions .action,.change-actions .secondary-action,.free-period-add{width:100%;min-height:46px}.change-impact-preview{overflow:hidden}.change-impact-preview .table-wrap,.free-period-editor .table-wrap{margin-right:-6px;padding-bottom:4px;overflow-x:auto;-webkit-overflow-scrolling:touch}.new-lease-entry-layout .contract-summary-grid,.unit-picker-filters,.unit-picker-list{grid-template-columns:1fr}.unit-picker-footer,.unit-picker-tools,.unit-pricing-toolbar,.unit-selection-head{align-items:stretch;flex-direction:column}.unit-picker-footer .action,.unit-picker-footer .secondary-action,.unit-pricing-toolbar .secondary-action,.unit-selection-head .secondary-action{width:100%;min-height:44px}.unit-pricing-toolbar label{grid-template-columns:1fr}.unit-pricing-toolbar input{width:100%}.unit-pricing-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.unit-picker-backdrop{align-items:end;padding:0}.unit-picker-dialog{width:100%;max-height:92vh;border-radius:14px 14px 0 0;padding:14px}.unit-picker-list{min-height:240px}.unit-picker-footer>div:last-child,.unit-picker-tools>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}.nav-list{display:flex;flex-direction:column;min-height:0;gap:4px;padding:10px 0;overflow-y:auto}.nav-group{margin:0;border-bottom:1px solid rgba(255,255,255,.08);padding:0 0 4px}.nav-group-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:34px;border:0;border-radius:6px;background:transparent;color:#8dd9ca;padding:5px 8px;cursor:pointer;font:inherit;font-size:11px;font-weight:700;text-align:left}.nav-group-toggle:hover,.nav-group.is-expanded .nav-group-toggle{background:rgba(255,255,255,.06);color:#b8f0e7}.nav-group-title,.nav-item-icon{display:inline-flex;align-items:center}.nav-group-title{gap:7px}.nav-group-icon,.nav-item-icon{width:16px;justify-content:center;color:currentColor;font-size:13px}.nav-group-chevron{color:#94a3b8;font-size:14px;line-height:1}.nav-group-items{display:none;gap:2px;padding:1px 0 3px}.nav-group.is-expanded .nav-group-items{display:grid}.nav-list .nav-group-items a{display:flex;align-items:center;gap:7px;min-height:32px;margin:0;border-radius:6px;padding:5px 8px 5px 12px;color:#cbd5e1;font-size:12px;line-height:1.25}.nav-list .nav-group-items a.active,.nav-list .nav-group-items a:hover{background:rgba(125,211,199,.16);color:#ffffff}.nav-list .nav-group-items a.active{box-shadow:inset 3px 0 0 #7dd3c7;font-weight:700}.nav-empty{margin:12px 8px;color:#94a3b8;font-size:12px;text-align:center}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media (max-width:760px){.nav-list{padding-top:8px}.nav-list .nav-group-items a{min-height:38px;padding-block:8px}}.app-shell{display:block;min-height:100dvh;width:100%;max-width:100%}.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;width:272px;height:100dvh;display:flex;flex-direction:column;overflow:hidden;overflow-x:hidden}.sidebar>.brand{flex:0 0 auto}.sidebar>.nav-list{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}.sidebar>.sidebar-logout{flex:0 0 auto}.main-content{width:calc(100% - 272px);min-width:0;min-height:100dvh;margin-left:272px;padding:24px 24px calc(24px + env(safe-area-inset-bottom))}.page-container{width:100%;max-width:1600px;min-width:0;margin:0 auto}.mobile-header,.mobile-overlay{display:none}body,html{width:100%;max-width:100%;overflow-x:hidden}.form-card,.main-content,.page-container,.prototype-card,.prototype-page{max-width:100%;min-width:0}.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:1080px){.app-shell{display:block}.sidebar{position:fixed;inset:0 auto 0 0;height:100dvh;transform:translateX(-100%);transition:transform .18s ease}.sidebar.is-open{transform:translateX(0)}.main-content{width:100%;margin-left:0}.mobile-header{display:none}.mobile-overlay{position:fixed;inset:0;z-index:30;display:block;width:100%;height:100%;border:0;padding:0;background:rgba(15,23,42,.48)}}@media (max-width:760px){.mobile-header{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:56px;padding:env(safe-area-inset-top) 12px 8px;background:#ffffff;border-bottom:1px solid var(--line)}.mobile-menu-button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:8px;background:#ffffff;color:var(--ink);font-size:22px;line-height:1}.mobile-header-brand{display:flex;align-items:center;min-width:0;gap:8px;color:var(--ink);font-size:14px;font-weight:700;text-decoration:none}.mobile-header-brand .brand-mark{flex:0 0 auto;width:32px;height:32px;font-size:11px}.mobile-header-user{max-width:96px;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.main-content{width:100%;min-height:calc(100dvh - 56px);padding:12px 16px calc(24px + env(safe-area-inset-bottom))}.page-container{width:100%}.sidebar{width:min(86vw,320px);padding-top:calc(16px + env(safe-area-inset-top));padding-bottom:calc(16px + env(safe-area-inset-bottom))}}.new-record-highlight{animation:contract-change-highlight 3s ease-out;background:#fff7cc}@keyframes contract-change-highlight{0%{background:#ffe58f}to{background:transparent}}.showing-workbench-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.showing-head-actions{display:flex;flex:0 0 auto;gap:8px}.showing-view-switch{min-height:40px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);padding:0 16px;font-weight:700;cursor:pointer}.showing-workbench-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.showing-workbench-metrics article{display:grid;min-height:104px;gap:6px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:16px}.showing-workbench-metrics article small,.showing-workbench-metrics article span{color:var(--muted)}.showing-workbench-metrics article strong{color:var(--ink);font-size:28px;line-height:1}.showing-workbench-metrics article.urgent{border-color:#f6c453;background:#fffaf0}.showing-workbench-metrics article.danger{border-color:#fecaca;background:#fff7f7}.showing-workbench-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px}.showing-workbench-filters{display:flex;gap:8px}.showing-workbench-filters input,.showing-workbench-filters select{min-height:36px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:0 10px;color:var(--ink);font:inherit}.showing-workbench-filters input{width:260px}.showing-section-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.showing-section-heading h2{margin:0 0 4px}.showing-record-link{display:grid;gap:3px;color:var(--ink);text-decoration:none}.showing-record-link:hover strong{color:var(--brand)}.showing-cell-sub,.showing-record-link small{display:block;margin-top:3px;color:var(--muted);font-size:11px;font-weight:500}.showing-due{display:inline-flex;margin-right:6px;border-radius:999px;background:#eef2ff;color:#4338ca;padding:2px 7px;font-size:11px}.showing-due.已逾期{background:#fee2e2;color:#b91c1c}.showing-due.今天{background:#fef3c7;color:#92400e}.showing-detail-grid,.showing-manager-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.showing-bar-list{display:grid;gap:12px;margin-top:14px}.showing-bar-list div{display:grid;grid-template-columns:90px minmax(0,1fr) 30px;gap:10px;align-items:center}.showing-bar-list i{display:block;height:8px;border-radius:999px;background:var(--brand)}.showing-bar-list b{text-align:right}.showing-ranking{display:grid;gap:8px;margin-top:14px}.showing-ranking div{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;border-bottom:1px solid var(--line);padding:8px 0}.showing-ranking div>b{display:grid;width:24px;height:24px;place-items:center;border-radius:999px;background:#ecfdf5;color:#047857}.showing-drawer-layer{position:fixed;inset:0;z-index:1000}.showing-drawer-backdrop{position:absolute;inset:0;width:100%;border:0;background:rgba(15,23,42,.42);cursor:default}.showing-drawer{position:absolute;top:0;right:0;display:flex;width:min(740px,94vw);height:100%;flex-direction:column;overflow:hidden;background:#f8fafc;box-shadow:-20px 0 50px rgba(15,23,42,.2)}.showing-drawer>header{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);background:#fff;padding:20px 24px}.showing-drawer>header h2{margin:2px 0 4px;font-size:24px}.showing-drawer>header p:last-child{margin:0;color:var(--muted)}.showing-drawer-close{display:grid;width:36px;height:36px;place-items:center;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:24px;cursor:pointer}.showing-drawer-form{display:grid;gap:12px;overflow-y:auto;padding:16px 24px 24px}.showing-drawer-form section{display:grid;gap:12px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:16px}.showing-drawer-form h3{margin:0;font-size:16px}.showing-drawer-form footer{position:sticky;bottom:-24px;display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--line);background:#fff;margin:0 -24px -24px;padding:14px 24px}.showing-compact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.showing-compact-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.showing-block-label,.showing-compact-grid label,.showing-form>label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:600}.showing-block-label input,.showing-block-label select,.showing-block-label textarea,.showing-compact-grid input,.showing-compact-grid select,.showing-form>label input,.showing-form>label select{width:100%;min-width:0;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);padding:9px 10px;font:inherit}.showing-block-label textarea{min-height:96px;resize:vertical}.showing-block-label select[multiple],.showing-form-grid select[multiple]{min-height:96px;padding:6px}.showing-block-label small,.showing-form-grid small{color:var(--muted);font-weight:500}.showing-recognize-button{justify-self:start;min-height:36px;border:1px solid #99f6e4;border-radius:6px;background:#f0fdfa;color:#0f766e;padding:0 12px;font-weight:700;cursor:pointer}.showing-ai-result{display:grid;gap:12px;border:1px solid #99f6e4;border-radius:8px;background:#f0fdfa;padding:12px}.showing-ai-result-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.showing-confidence{border-radius:999px;background:#fff;padding:3px 8px;color:#0f766e;font-size:11px;font-weight:700}.showing-confidence.needs_review{color:#b45309}.showing-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;color:var(--muted)}.showing-task-list{display:grid;gap:8px;margin-top:12px}.showing-task-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:12px}.showing-task-list article>div{display:grid;gap:4px}.showing-task-list article span{color:var(--muted);font-size:12px}.showing-task-list article.completed{opacity:.65}@media (max-width:1023px){.showing-workbench-head{flex-direction:column}.showing-workbench-toolbar{grid-template-columns:1fr}.showing-workbench-filters{display:grid;grid-template-columns:1fr 1fr}.showing-workbench-filters input{width:auto;grid-column:1/-1}}@media (max-width:767px){.showing-compact-grid,.showing-compact-grid.two,.showing-detail-grid,.showing-manager-grid,.showing-summary-grid,.showing-workbench-metrics{grid-template-columns:1fr}.showing-head-actions,.showing-section-heading,.showing-workbench-filters{width:100%;flex-direction:column;grid-template-columns:1fr}.showing-head-actions button,.showing-workbench-filters input,.showing-workbench-filters select{width:100%}.showing-workbench-filters input{grid-column:auto}.showing-task-list article{grid-template-columns:1fr}.showing-drawer{width:100vw}.showing-drawer-form,.showing-drawer>header{padding-left:16px;padding-right:16px}}