:root{color:#132033;background:#eef3f8;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans CJK SC,Source Han Sans SC,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{background:linear-gradient(90deg,rgba(19,32,51,.035) 1px,transparent 1px),linear-gradient(rgba(19,32,51,.026) 1px,transparent 1px),#eef3f8;background-size:28px 28px;font-variant-numeric:tabular-nums}button,input,textarea,select{font:inherit}.app-shell{min-height:100dvh}.app-sider{background:#0b1f33!important;border-right:1px solid rgba(255,255,255,.08)}.app-sider .ant-layout-sider-children{display:flex;flex-direction:column}.brand-block{min-height:76px;padding:18px 18px 14px;border-bottom:1px solid rgba(255,255,255,.08)}.brand-mark{display:inline-grid;width:34px;height:34px;margin-right:10px;place-items:center;border:1px solid rgba(125,221,232,.42);border-radius:7px;background:#123657;color:#7ddde8;font-weight:700}.brand-row{display:flex;align-items:center;color:#f8fbff}.brand-title{display:block;font-size:15px;font-weight:700;line-height:1.25}.brand-subtitle{display:block;margin-top:3px;color:#ffffff85;font-size:11px;line-height:1.2}.app-menu{flex:1;overflow:auto;padding:10px 0 16px}.app-menu .ant-menu-item-group-title{padding:18px 20px 8px!important;color:#ffffff70!important;font-size:11px!important;font-weight:600!important;line-height:1!important}.app-header{height:52px;padding:0 18px;border-bottom:1px solid #d9e2ec;background:#ffffffe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-inner{display:flex;height:100%;align-items:center;justify-content:space-between;gap:18px}.header-left,.header-right{display:flex;align-items:center;gap:10px;min-width:0}.user-menu-button{display:inline-flex;height:34px;align-items:center;gap:9px;padding:0 4px 0 8px;border:0;border-radius:6px;background:transparent;color:#132033;cursor:pointer;font-size:13px;font-weight:600;white-space:nowrap;transition:color .18s ease,background .18s ease}.user-menu-button:hover{background:#f1f6fa;color:#0f8fa3}.header-divider{width:1px;height:20px;background:#e6e8eb;margin:0 2px}.manual-entry-button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:0;border-radius:8px;background:transparent;color:#5a6472;cursor:pointer;font-size:18px;transition:background .15s ease,color .15s ease}.manual-entry-button:hover{background:#f1f3f5;color:#222}.manual-entry-button .anticon{font-size:18px}.app-content{min-height:calc(100dvh - 52px);padding:18px 22px 22px;overflow:auto}.content-frame{width:min(100%,1480px);margin:0 auto}.page-heading{display:flex;min-height:38px;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.page-heading h1,.page-heading h2,.page-heading h3{margin:0!important;color:#132033!important;font-size:24px!important;font-weight:700!important;line-height:1.25!important}.page-description{max-width:760px;margin:6px 0 0;color:#65758a;font-size:13px;line-height:1.7}.recommended-rooms-page{padding:4px 2px 32px}.recommended-tip{margin:4px 0 14px;color:#65758a;font-size:13px}.recommended-tip strong{color:#132033;margin:0 2px}.recommended-list{display:flex;flex-direction:column;gap:12px;max-width:880px}.recommended-card{display:flex;align-items:center;gap:14px;padding:12px 16px;border:1px solid #d9e2ec;border-radius:12px;background:#fff;box-shadow:0 1px 2px #0f23370f;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.recommended-card:hover{border-color:#4b7bf8;box-shadow:0 6px 18px #4b7bf829}.recommended-card.dragging{opacity:.6}.recommended-order{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:76px}.recommended-page-no{font-size:11px;color:#9aa7b8;background:#f1f5f9;border-radius:6px;padding:0 6px;line-height:16px}.recommended-handle{color:#9aa7b8;font-size:18px;cursor:grab;padding:4px 6px;border-radius:6px;transition:color .15s ease,background .15s ease}.recommended-handle:hover{color:#4b7bf8;background:#eef3ff}.recommended-handle:active{cursor:grabbing}.recommended-info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}.recommended-room-no{font-weight:700;font-size:16px;color:#132033}.recommended-meta{color:#65758a;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recommended-code{font-family:SF Mono,Menlo,Consolas,monospace;color:#4b7bf8}.recommended-loading{display:flex;justify-content:center;padding:80px 0}.recommended-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;margin-bottom:14px;flex-wrap:wrap}.recommend-quota{font-size:14px;color:#65758a}.recommend-quota strong{font-size:16px;color:#132033}.recommended-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.recommended-cancel{flex:0 0 auto;margin-left:auto}.recommended-pagination{display:flex;justify-content:center;margin-top:18px}.surface{border:1px solid #d9e2ec;border-radius:8px;background:#fff;box-shadow:0 1px 2px #0f23370f}.surface-muted{border:1px solid #e7edf4;border-radius:8px;background:#f7f9fc}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-card{min-height:112px;padding:16px;position:relative;overflow:hidden;will-change:transform,opacity}.metric-card:after{position:absolute;right:14px;bottom:12px;width:72px;height:4px;background:var(--metric-color, #0f8fa3);content:"";opacity:.82}.metric-label{color:#66788f;font-size:12px;font-weight:600}.metric-value{margin-top:10px;color:#132033;font-size:30px;font-weight:700;line-height:1}.metric-note{margin-top:10px;color:#7c8aa0;font-size:12px}.dashboard-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;margin-top:14px}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px 0}.panel-title{margin:0;color:#132033;font-size:15px;font-weight:700}.panel-subtitle{margin:4px 0 0;color:#7c8aa0;font-size:12px}.panel-body{padding:16px 18px 18px}.status-list{display:grid;gap:12px}.status-item{display:grid;grid-template-columns:92px 1fr 52px;align-items:center;gap:12px}.status-name{color:#526176;font-size:13px;font-weight:600}.status-bar{height:9px;overflow:hidden;border-radius:999px;background:#e3edf5}.status-bar span{display:block;height:100%;border-radius:inherit;background:var(--bar-color, #0f8fa3)}.status-count{color:#132033;font-size:13px;font-weight:700;text-align:right}.action-rail{display:grid;gap:10px}.action-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #e1e8f0;border-radius:7px;background:#fff;will-change:transform}.action-row strong{display:block;color:#25344a;font-size:13px}.action-row span{color:#7c8aa0;font-size:12px}.crud-shell{display:grid;gap:12px}.crud-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px}.crud-tools-left,.crud-tools-right{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.crud-table{overflow:hidden;will-change:transform,opacity}.crud-table .ant-table-wrapper{border-radius:8px}.contract-form-page,.contract-editor{display:grid;gap:14px}.contract-section{padding:18px 18px 4px}.contract-party-stack{display:grid;gap:12px;padding-bottom:14px}.contract-party-card{padding:14px 14px 0;border:1px solid #eeeeee;border-radius:8px;background:#fbfbfb}.party-picker-field{margin-bottom:16px}.party-remove-btn{margin-top:30px}.room-picker-field{margin-bottom:24px}.room-picker-field>label{display:block;height:22px;margin-bottom:8px;color:#222;font-size:14px}.selected-room-card{display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #dddddd;border-radius:8px;background:#fff}.selected-room-card.is-empty{border-style:dashed;background:#f7f7f7}.selected-room-card strong,.selected-room-card span{display:block}.selected-room-card strong{color:#222;font-size:14px;line-height:1.45}.selected-room-card span{margin-top:3px;color:#6a6a6a;font-size:12px;line-height:1.45}.room-picker-modal{display:grid;gap:12px}.room-picker-filters{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.tenant-picker-filters{display:grid;grid-template-columns:220px minmax(260px,1fr);gap:10px}.tenant-row-blocked>td{background:#fff1f0!important;color:#cf1322}.tenant-row-blocked:hover>td{background:#ffe7e3!important}.room-picker-current{min-height:40px;padding:9px 12px;border:1px solid #ffd1dc;border-radius:8px;background:#fff6f8;color:#b42345;font-size:13px;font-weight:650}.room-picker-current.is-empty{border-color:#ddd;background:#f7f7f7;color:#6a6a6a;font-weight:500}.section-title{margin-bottom:14px;color:#222;font-size:15px;font-weight:700;line-height:1.4}.contract-rent-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:18px;padding:18px}.rent-meta{display:flex;flex-wrap:wrap;gap:8px;color:#6a6a6a;font-size:13px}.rent-meta span{min-height:28px;padding:4px 10px;border:1px solid #ebebeb;border-radius:999px;background:#f7f7f7}.rent-warning{margin-top:12px}.rent-result{display:inline-block;min-width:160px;padding:10px 18px;border:1px solid #ffd1dc;border-radius:8px;background:#fff6f8}.rent-result span{display:block;color:#999;font-size:12px;margin-bottom:2px}.rent-result strong{display:block;color:#333;font-size:20px;font-weight:500;line-height:1.3}.snapshot-toggle{align-self:center}.amount-card{padding:12px 16px;border:1px solid #e8e8e8;border-radius:10px;background:#fafafa}.amount-card-label{display:block;color:#8c8c8c;font-size:12px;margin-bottom:6px}.amount-card-input.ant-input-number{width:100%;font-size:18px;font-weight:700}.amount-card-input .ant-input-number-input{font-weight:700}.snapshot-section{padding-bottom:18px}.formula-box{min-height:42px;padding:12px 14px;border:1px solid #ebebeb;border-radius:10px;background:#f7f7f7;color:#3f3f3f;font-size:13px;line-height:1.7}.ant-card{box-shadow:none}.ant-table{font-size:13px}.ant-table-thead>tr>th{font-size:12px;font-weight:700!important}.ant-table-tbody>tr>td{color:#25344a}.ant-tag{margin-inline-end:0;font-weight:600}.discount-policy-pill{display:inline-flex;align-items:center;gap:7px;max-width:176px;min-height:30px;padding:5px 11px;border:1px solid #ffd1dc;border-radius:999px;color:#b42345;background:linear-gradient(180deg,#ffffffe0,#ffeff3f2),#fff1f4;box-shadow:inset 0 1px #ffffffe6,0 1px 2px #b423450f;font-size:12px;font-weight:760;letter-spacing:.01em;white-space:nowrap}.discount-policy-dot{width:7px;height:7px;flex:0 0 auto;border-radius:999px;background:#ff385c;box-shadow:0 0 0 3px #ff385c1f}.discount-policy-text{overflow:hidden;text-overflow:ellipsis}.discount-policy-pill.is-empty{gap:0;border-color:#e5e7eb;color:#667085;background:#f8fafc;box-shadow:none;font-weight:700}.upload-current{margin-top:10px}.id-card-preview{position:relative;display:flex;align-items:center;justify-content:center;width:180px;height:108px;overflow:hidden;border:1px solid #e5e7eb;border-radius:12px;background:linear-gradient(135deg,#ff385c0f,#ffffffeb),#f8fafc;color:#667085;font-size:12px;font-weight:700;text-decoration:none;box-shadow:inset 0 1px #ffffffe6}.id-card-preview img{width:100%;height:100%;object-fit:cover;display:block}.id-card-preview:not(.is-empty):after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 48%,rgba(0,0,0,.48));opacity:0;transition:opacity .18s ease}.id-card-preview:not(.is-empty) span{position:absolute;left:10px;right:10px;bottom:8px;z-index:1;color:#fff;opacity:0;text-align:center;transition:opacity .18s ease}.id-card-preview:not(.is-empty):hover:after,.id-card-preview:not(.is-empty):hover span{opacity:1}.policy-org-list{display:flex;flex-wrap:wrap;gap:6px}.policy-org-list .ant-tag{padding:3px 8px;border-color:#e4e7ec;border-radius:999px;color:#344054;background:#f8fafc}.market-page{min-height:100dvh;padding:0 32px 56px;background:radial-gradient(circle at 14% 16%,rgba(15,143,163,.08),transparent 28%),linear-gradient(180deg,#f8fbfb,#fff 42%,#f5f8f8);color:#18252f}.market-header{position:sticky;top:0;z-index:20;display:flex;width:min(1180px,100%);height:76px;align-items:center;justify-content:space-between;gap:20px;margin:0 auto;background:#f8fbfbdb;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.market-brand{display:inline-flex;align-items:center;gap:12px;color:inherit;text-decoration:none}.market-brand:hover{color:#18252f}.market-brand-mark{display:grid;width:40px;height:40px;place-items:center;border-radius:10px;background:#102a36;color:#fff;font-size:16px;font-weight:800;letter-spacing:0;box-shadow:0 12px 26px #102a362e}.market-brand strong,.market-brand em{display:block;font-style:normal;line-height:1.25}.market-brand strong{font-size:17px;font-weight:800}.market-brand em{margin-top:2px;color:#6b7b86;font-size:12px;font-weight:600}.market-nav{display:flex;align-items:center;gap:24px}.market-nav a{color:#51616b;font-size:14px;font-weight:700;text-decoration:none;transition:color .18s ease}.market-nav a:hover{color:#0f8fa3}.market-tenant-login-link{padding:6px 14px;border:1px solid #cdd8dd;border-radius:999px;color:#2b3a44;font-size:14px;font-weight:700;text-decoration:none;cursor:pointer;transition:border-color .18s ease,color .18s ease}.market-tenant-login-link:hover{border-color:#0f8fa3;color:#0f8fa3}.market-tenant-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:#eaf6f8;color:#0f8fa3;font-size:14px;font-weight:700;cursor:pointer;transition:background .18s ease}.market-tenant-chip:hover{background:#dceef1}.market-tenant-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.market-tenant-logout{margin-left:2px;color:#6b7b86;transition:color .16s ease}.market-tenant-logout:hover{color:#e05656}.tenant-code-row{display:flex;gap:8px;align-items:center}.tenant-code-row .ant-input{flex:1}.tenant-dev-code{margin-bottom:14px;padding:8px 12px;border-radius:8px;background:#fff7e6;color:#ad6800;font-size:13px}.tenant-dev-code b{font-size:15px;letter-spacing:2px}.tenant-tip{margin:14px 0 0;color:#6b7b86;font-size:12px;line-height:1.6}.tenant-profile{padding:4px 0}.tenant-profile-head{display:flex;align-items:center;gap:12px}.tenant-avatar{display:grid;width:44px;height:44px;place-items:center;border-radius:50%;background:#102a36;color:#fff;font-size:18px;font-weight:800}.tenant-profile-meta{flex:1;min-width:0}.tenant-profile-meta strong{display:block;font-size:16px;color:#18252f}.tenant-sub{margin-top:2px;color:#6b7b86;font-size:13px}.market-hero{display:grid;width:min(1180px,100%);grid-template-columns:minmax(0,.96fr) minmax(420px,.8fr);align-items:center;gap:46px;margin:34px auto 28px;padding:38px 0 16px}.market-hero-copy{position:relative}.market-kicker{display:inline-flex;align-items:center;gap:8px;color:#0f8fa3;font-size:12px;font-weight:800;letter-spacing:0}.market-kicker:before{width:28px;height:2px;border-radius:999px;background:#ff6b4a;content:""}.market-hero h1{max-width:700px;margin:18px 0;color:#14232c;font-size:52px;font-weight:900;line-height:1.08}.market-hero p{max-width:580px;margin:0;color:#5c6c76;font-size:17px;line-height:1.8}.market-search-panel{padding:22px;border:1px solid rgba(16,42,54,.08);border-radius:16px;background:#ffffffeb;box-shadow:0 24px 60px #102a361f}.market-search-panel .ant-form-item{margin-bottom:14px}.market-search-panel .ant-form-item-label>label,.market-apply-card .ant-form-item-label>label{color:#33444e;font-size:13px;font-weight:800}.market-search-panel .ant-input,.market-search-panel .ant-select-selector,.market-apply-card .ant-input,.market-apply-card .ant-select-selector{border-radius:8px!important}.market-search-panel .ant-btn-primary,.market-apply-card .ant-btn-primary{background:#ff5a5f;box-shadow:none}.market-search-panel .ant-btn-primary:hover,.market-apply-card .ant-btn-primary:hover{background:#e84f54!important}.market-search-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.market-search-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.market-channel-strip{display:grid;width:min(1180px,100%);grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0 auto 18px}.market-channel-card{display:grid;min-height:112px;grid-template-columns:auto minmax(0,1fr);align-content:center;gap:6px 12px;padding:18px;border:1px solid #e4eaed;border-radius:14px;background:#fff;color:#18252f;cursor:pointer;text-align:left;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;will-change:transform,opacity}.market-channel-card:hover,.market-channel-card.is-active{border-color:#ff5a5f7a;box-shadow:0 14px 34px #102a3614;transform:translateY(-2px)}.market-channel-card.is-disabled{color:#9aa6ad;background:#f7f9f9}.market-channel-icon{display:grid;width:36px;height:36px;grid-row:span 2;place-items:center;border-radius:10px;background:#eff8f9;color:#0f8fa3;font-size:18px}.market-channel-card strong,.market-channel-card em{display:block;min-width:0;font-style:normal}.market-channel-card strong{font-size:15px;font-weight:850}.market-channel-card em{color:#6b7b86;font-size:12px;line-height:1.4}.market-filter-bar{display:flex;width:min(1180px,100%);align-items:center;justify-content:space-between;gap:14px;margin:0 auto 16px;padding:14px 0 6px;border-top:1px solid #e5ecef}.market-filter-bar>div{display:flex;align-items:baseline;gap:8px}.market-filter-bar span{color:#6b7b86;font-size:13px;font-weight:700}.market-filter-bar strong{color:#14232c;font-size:22px;font-weight:900}.market-filter-actions{display:flex;gap:10px}.market-compact-select{width:148px}.market-room-section{width:min(1180px,100%);margin:0 auto}.market-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.market-room-card{overflow:hidden;border:1px solid #e4eaed;border-radius:16px;background:#fff;cursor:pointer;box-shadow:0 8px 26px #102a360f;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;will-change:transform,opacity}.market-room-card:hover{border-color:#0f8fa359;box-shadow:0 20px 46px #102a361f;transform:translateY(-3px)}.market-room-cover{position:relative;height:218px;overflow:hidden;background:#e8eff1}.market-room-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .42s ease}.market-room-card:hover .market-room-cover img{transform:scale(1.045)}.market-cover-fallback{display:grid;width:100%;height:100%;place-items:center;background:linear-gradient(135deg,#0f8fa329,#ff5a5f1a),#eef4f5;color:#102a36;font-size:34px;font-weight:900}.market-status-tag{border-radius:999px;padding:4px 10px;border:1px solid rgba(255,255,255,.86);background:#ffffffe6;color:#33444e;font-size:12px;font-weight:800;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.market-room-cover .market-status-tag{position:absolute;top:12px;left:12px}.market-status-tag.status-VACANT{color:#087f5b;background:#ebfbf3f0}.market-status-tag.status-RENTED{color:#7a3f00;background:#fff6e0f0}.market-status-tag.status-RESERVED{color:#0b5cad;background:#e7f3fff0}.market-room-body{padding:16px 16px 14px}.market-room-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.market-room-title-row h3{min-width:0;margin:0;color:#14232c;font-size:18px;font-weight:850;line-height:1.35}.market-room-title-row strong{flex:0 0 auto;color:#ff5a5f;font-size:18px;font-weight:900;line-height:1.35}.market-room-address{display:flex;min-height:38px;align-items:flex-start;gap:6px;margin:10px 0 12px;color:#60717b;font-size:13px;line-height:1.5}.market-room-meta{display:flex;flex-wrap:wrap;gap:8px}.market-room-meta span{min-height:28px;padding:5px 9px;border-radius:999px;background:#f2f6f7;color:#40515b;font-size:12px;font-weight:700}.market-room-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:15px;padding-top:12px;border-top:1px solid #edf2f4}.market-room-footer span{color:#7b8990;font-size:12px;font-weight:700}.market-empty{display:grid;min-height:320px;place-items:center;gap:12px;border:1px dashed #d6e0e4;border-radius:16px;background:#ffffffb3}.market-room-skeleton{width:100%!important;height:360px!important;border-radius:16px!important}.market-detail-page{background:linear-gradient(180deg,#f8fbfb,#fff 36%,#f6f9f9)}.market-detail-top,.market-detail-layout,.market-detail-info-grid,.market-detail-loading{width:min(1180px,100%);margin-inline:auto}.market-detail-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 0 16px}.market-detail-layout{display:grid;grid-template-columns:minmax(0,1.18fr) 410px;gap:26px;align-items:start}.market-detail-media{display:grid;gap:12px;will-change:transform,opacity}.market-media-switch{display:inline-flex;width:fit-content;gap:6px;padding:5px;border:1px solid #e3eaed;border-radius:10px;background:#fff}.market-media-switch button{height:34px;padding:0 14px;border:0;border-radius:7px;background:transparent;color:#5d6e78;cursor:pointer;font-size:13px;font-weight:800}.market-media-switch button.is-active{background:#102a36;color:#fff}.market-detail-media-stage{display:grid;aspect-ratio:16 / 10;overflow:hidden;place-items:center;border-radius:18px;background:#e9f0f2;box-shadow:0 18px 44px #102a361f;will-change:transform,opacity}.market-detail-media-stage img,.market-detail-media-stage video{display:block;width:100%;height:100%;object-fit:cover}.market-detail-media-empty{display:grid;place-items:center;gap:10px;color:#6b7b86;font-size:14px;font-weight:800}.market-detail-media-empty .anticon{color:#0f8fa3;font-size:42px}.market-detail-thumbs{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}.market-detail-thumbs button{width:96px;height:66px;flex:0 0 auto;overflow:hidden;padding:0;border:2px solid transparent;border-radius:10px;background:#edf3f5;cursor:pointer}.market-detail-thumbs button.is-active{border-color:#ff5a5f}.market-detail-thumbs img{display:block;width:100%;height:100%;object-fit:cover}.market-detail-side{position:sticky;top:96px;padding:24px;border:1px solid #e4eaed;border-radius:18px;background:#fff;box-shadow:0 14px 42px #102a3614;will-change:transform,opacity}.market-detail-side h1{margin:14px 0 10px;color:#14232c;font-size:34px;font-weight:900;line-height:1.18}.market-detail-address{display:flex;gap:7px;margin:0 0 16px;color:#5f6f78;font-size:14px;line-height:1.7}.market-detail-price{margin-bottom:14px;color:#ff5a5f;font-size:32px;font-weight:950;line-height:1.2}.market-detail-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.market-detail-tags .ant-tag{padding:5px 9px;border:0;border-radius:999px;background:#f1f6f7;color:#40515b}.market-apply-card{padding-top:18px;border-top:1px solid #edf2f4}.market-apply-card h2,.market-detail-info-card h2{margin:0 0 14px;color:#14232c;font-size:18px;font-weight:900}.market-apply-tip{margin:10px 0 0;color:#9a6a16;font-size:13px;line-height:1.6}.market-detail-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:22px}.market-detail-info-card{min-height:210px;padding:22px;border:1px solid #e4eaed;border-radius:16px;background:#fff;will-change:transform,opacity}.market-detail-info-card dl{display:grid;gap:12px;margin:0}.market-detail-info-card dl div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #f0f4f5;padding-bottom:9px}.market-detail-info-card dt{color:#70808a;font-size:13px;font-weight:700}.market-detail-info-card dd{margin:0;color:#24343e;font-size:13px;font-weight:800;text-align:right}.market-facility-list{display:flex;flex-wrap:wrap;gap:10px}.market-facility-list span{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:7px 11px;border-radius:999px;background:#eff8f9;color:#225963;font-size:13px;font-weight:800}@media (max-width: 1040px){.market-page{padding-inline:20px}.market-hero,.market-detail-layout{grid-template-columns:1fr}.market-detail-side{position:static}.market-channel-strip,.market-grid,.market-detail-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 680px){.market-page{padding-inline:14px;padding-bottom:34px}.market-header{height:auto;min-height:68px;align-items:flex-start;padding:12px 0}.market-nav{gap:12px;padding-top:8px}.market-nav a{font-size:12px}.market-hero{gap:24px;margin-top:12px;padding-top:22px}.market-hero h1{font-size:34px}.market-hero p{font-size:15px}.market-search-panel{padding:16px;border-radius:12px}.market-search-grid,.market-channel-strip,.market-grid,.market-detail-info-grid{grid-template-columns:1fr}.market-filter-bar,.market-room-footer,.market-room-title-row{align-items:flex-start;flex-direction:column}.market-filter-actions,.market-compact-select{width:100%}.market-detail-side{padding:18px}.market-detail-side h1,.market-detail-price{font-size:28px}.market-detail-media-stage{border-radius:12px}}.policy-calc-summary{display:inline-block;max-width:300px;color:#475467;font-size:12px;line-height:1.5}.policy-form-tip{margin:0 0 14px;padding:12px 14px;border:1px solid #ffd1dc;border-radius:12px;color:#b42345;background:#fff5f7;font-size:13px;line-height:1.65}.muted-cell{color:#98a2b3;font-size:12px}.link-button{padding-inline:4px!important}.housing-workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:12px;align-items:start}.housing-workspace-full{grid-template-columns:1fr}.housing-main{min-width:0;padding:0;overflow:hidden}.housing-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;margin-bottom:12px}.housing-filter-row{display:flex;flex-wrap:wrap;gap:10px}.housing-filter-summary{display:inline-grid;grid-template-columns:auto auto auto;align-items:baseline;gap:5px;min-width:132px;min-height:40px;justify-content:center;padding:8px 12px;border:1px solid #e6f4ea;border-radius:12px;background:#f6fbf7;color:#31764b;white-space:nowrap}.housing-filter-summary span{font-size:12px;font-weight:700}.housing-filter-summary strong{color:#168a5b;font-size:16px;font-weight:850;line-height:1}.housing-filter-summary em{font-size:12px;font-style:normal;font-weight:700}.housing-status-tabs{margin-bottom:0;padding:0 14px;border-bottom:1px solid #eeeeee}.housing-status-tabs .ant-tabs-nav{margin:0}.housing-status-tabs .ant-tabs-tab{padding:14px 0 12px}.housing-status-tabs .status-tab-label{display:inline-flex;align-items:center;gap:5px}.housing-status-tabs .tab-count{display:inline-block;min-width:18px;padding:0 5px;font-size:12px;line-height:18px;text-align:center;color:#8c8c8c;background:#f0f0f0;border-radius:9px}.housing-status-tabs .ant-tabs-tab-active .tab-count{color:#1677ff;background:#e6f0ff}.housing-table-card{border:0;border-radius:0;box-shadow:none}.housing-table-card .ant-table{border-radius:0}.batch-action-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-bottom:12px;background:#f0f6ff;border:1px solid #bae0ff;border-radius:8px}.batch-action-bar strong{color:#1677ff}.insight-panel{position:sticky;top:14px;align-self:start;overflow:hidden}.insight-section{padding:16px;border-bottom:1px solid #eeeeee}.insight-section:last-child{border-bottom:0}.insight-title{margin:0 0 10px;color:#222;font-size:14px;font-weight:850}.mini-stat{display:grid;grid-template-columns:1fr auto;gap:8px;padding:9px 0;color:#526176;font-size:13px}.mini-stat strong{color:#222}.login-page{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) 430px;background:linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),#0b1f33;background-size:34px 34px}.login-stage{display:flex;flex-direction:column;justify-content:space-between;padding:48px;color:#f8fbff}.login-copy{max-width:680px;margin-top:14vh}.login-copy h1{margin:0;font-size:42px;font-weight:700;line-height:1.22}.login-copy p{max-width:560px;margin:18px 0 0;color:#ffffffad;font-size:15px;line-height:1.8}.login-form-panel{display:grid;align-content:center;padding:38px;background:#f7f9fc}.login-form-card{padding:28px;will-change:transform,opacity}.login-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.login-meta span{display:inline-flex;min-height:28px;align-items:center;padding:0 9px;border:1px solid rgba(125,221,232,.38);border-radius:4px;color:#ffffffb8;font-size:12px}.login-stage-footer{display:flex;align-items:center;gap:16px;flex-wrap:wrap;color:#22222275;font-size:12px}.login-icp-link{color:#2222228f;font-size:12px;line-height:1.5;text-decoration:none;transition:color .16s ease}.login-icp-link:hover{color:#222;text-decoration:underline;text-underline-offset:3px}.workbench-page{display:grid;gap:14px}.workbench-hero{display:flex;min-height:72px;align-items:center;justify-content:space-between;gap:18px;overflow:hidden;padding:14px 22px;border:1px solid #cfe0ec;border-radius:8px;background:linear-gradient(90deg,rgba(15,143,163,.12) 1px,transparent 1px),linear-gradient(rgba(15,143,163,.08) 1px,transparent 1px),linear-gradient(135deg,#fff,#f2f8fb 52%,#e9f3f7);background-size:30px 30px,30px 30px,auto;box-shadow:0 12px 28px #0a2c4612}.workbench-hero h2.ant-typography{margin:0!important;color:#10243b!important;font-size:clamp(18px,2vw,22px)!important;font-weight:700!important;letter-spacing:0;line-height:1.25!important;text-wrap:balance}.workbench-hero p{margin:4px 0 0;color:#526176;font-size:12.5px;line-height:1.6}.workbench-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:12px;margin-bottom:16px}.workbench-metric-card{position:relative;display:grid;min-height:118px;gap:8px;padding:14px;overflow:hidden;border-color:#d8e5ee;color:#132033;text-align:left;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;will-change:transform,opacity}.workbench-metric-card:before{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,var(--tone-soft, rgba(15, 143, 163, .08)),transparent 58%);content:"";pointer-events:none}.workbench-metric-card:after{position:absolute;right:12px;bottom:12px;width:34px;height:3px;border-radius:999px;background:var(--tone, #0f8fa3);content:"";opacity:.9}.workbench-metric-card:hover{border-color:color-mix(in srgb,var(--tone, #0f8fa3) 42%,#d8e5ee);box-shadow:0 12px 24px #0f233717;transform:translateY(-2px)}.metric-filter-card{cursor:default;align-content:start;row-gap:6px}.metric-filter-card:hover{transform:none;box-shadow:none;border-color:#d8e5ee}.metric-filter-card:after{display:none}.metric-filter-card .ant-select{position:relative;z-index:1;width:100%}.metric-filter-card .metric-name{font-size:13px;color:#66738a}.workbench-metric-card:active,.quick-entry:active,.finance-grid button:active,.status-legend button:active,.donut-chart:active{transform:translateY(0) scale(.99)}.workbench-metric-card:focus-visible,.quick-entry:focus-visible,.finance-grid button:focus-visible,.status-legend button:focus-visible,.donut-chart:focus-visible{outline:3px solid rgba(15,143,163,.24);outline-offset:2px}.metric-icon,.metric-name,.workbench-metric-card strong,.workbench-metric-card small{position:relative;z-index:1}.metric-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:7px;background:var(--tone-soft, #e8f6f8);color:var(--tone, #0f8fa3);font-size:18px}.metric-name{color:#5f7085;font-size:12px;font-weight:700}.workbench-metric-card strong{color:var(--tone-strong, #132033);font-size:28px;font-weight:700;line-height:1}.workbench-metric-card small{color:#8794a5;font-size:12px}.tone-blue{--tone: #2563eb;--tone-strong: #1d4ed8;--tone-soft: rgba(37, 99, 235, .1)}.tone-cyan{--tone: #0f8fa3;--tone-strong: #087587;--tone-soft: rgba(15, 143, 163, .12)}.tone-navy{--tone: #123657;--tone-strong: #0b1f33;--tone-soft: rgba(18, 54, 87, .1)}.tone-orange{--tone: #d9851f;--tone-strong: #b36512;--tone-soft: rgba(217, 133, 31, .12)}.tone-green{--tone: #168a5b;--tone-strong: #0f6f49;--tone-soft: rgba(22, 138, 91, .12)}.tone-red{--tone: #d14b4b;--tone-strong: #b33636;--tone-soft: rgba(209, 75, 75, .1)}.tone-purple{--tone: #7c4dff;--tone-strong: #5e35d6;--tone-soft: rgba(124, 77, 255, .12)}.workbench-grid{display:grid;grid-template-columns:minmax(360px,1fr) minmax(340px,.95fr);gap:14px;margin-top:0}.workbench-panel{min-width:0;overflow:hidden;position:relative;z-index:0;will-change:transform,opacity}.panel-header.compact{padding:16px 16px 0}.quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:16px}.quick-entry{display:grid;min-height:82px;place-items:center;gap:8px;padding:12px 8px;border:1px solid #e1e8f0;border-radius:7px;background:#f9fbfd;color:#24364d;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}.quick-entry span{display:grid;width:32px;height:32px;place-items:center;border-radius:7px;background:#e8f6f8;color:#0f8fa3;font-size:17px;transition:transform .18s ease}.quick-entry strong{max-width:100%;color:inherit;font-size:13px;font-weight:700;line-height:1.25;text-align:center;overflow-wrap:anywhere}.quick-entry:hover{border-color:#b9dbe4;background:#fff;box-shadow:0 10px 20px #0f233712;color:#0f7284;transform:translateY(-2px)}.quick-entry:hover span{transform:scale(1.06)}.quick-entry.is-disabled{background:#f3f6f9;color:#8c98a8}.quick-entry.is-disabled span{background:#e8edf2;color:#95a2b2}.todo-list,.activity-list{display:grid;gap:10px;padding:10px 16px 16px}.todo-row{display:grid;grid-template-columns:54px minmax(0,1fr) auto auto;align-items:center;gap:12px;min-height:76px;width:100%;padding:12px;border:1px solid #ebebeb;border-radius:16px;background:#fff;color:inherit;cursor:pointer;text-align:left;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease}.activity-row:last-child{border-bottom:0}.todo-row>div{min-width:0}.todo-row strong{display:block;color:#222;font-size:14px;font-weight:700}.todo-row span{display:block;margin-top:3px;color:#6a6a6a;font-size:12px}.todo-row:hover{border-color:#ddd;background:#fffefe;box-shadow:#00000005 0 0 0 1px,#0000000f 0 10px 24px;transform:translateY(-1px)}.todo-tag{display:inline-grid!important;width:42px;height:42px;place-items:center;margin:0!important;border-radius:14px;background:var(--todo-soft, #fff1f3);color:var(--todo-color, #ff385c)!important;font-size:13px!important;font-weight:800}.todo-count{display:grid!important;min-width:62px;margin:0!important;padding:7px 10px;border-radius:14px;background:#f7f7f7;text-align:center}.todo-count strong{color:var(--todo-color, #ff385c);font-size:20px;line-height:1}.todo-count small{margin-top:3px;color:#6a6a6a;font-size:11px;white-space:nowrap}.todo-action{display:inline-flex!important;align-items:center;gap:4px;margin:0!important;color:#222!important;font-size:12px!important;font-weight:700;white-space:nowrap}.todo-row.tone-danger{--todo-color: #ff385c;--todo-soft: #fff1f3}.todo-row.tone-warning{--todo-color: #b26a00;--todo-soft: #fff7e8}.todo-row.tone-info{--todo-color: #2f65b7;--todo-soft: #eef5ff}.room-status-panel{display:grid;grid-template-columns:170px minmax(0,1fr);align-items:center;gap:18px;padding:18px 16px 20px}.donut-chart{position:relative;display:grid;width:156px;aspect-ratio:1;place-items:center;justify-self:center;border:0;border-radius:50%;color:#132033;cursor:pointer;transition:transform .18s ease,filter .18s ease}.donut-chart:before{position:absolute;top:20px;right:20px;bottom:20px;left:20px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px #edf2f6;content:""}.donut-chart:hover{filter:saturate(1.08);transform:translateY(-2px)}.donut-chart span,.donut-chart small{position:relative;z-index:1;display:block}.donut-chart span{align-self:end;font-size:30px;font-weight:700;line-height:1}.donut-chart small{align-self:start;margin-top:6px;color:#7a8798;font-size:12px;font-weight:600}.status-legend{display:grid;gap:8px}.status-legend button{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:36px;padding:0 10px;border:1px solid #e5ecf2;border-radius:7px;background:#f9fbfd;color:#526176;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}.status-legend button:hover{border-color:#cbdbe7;background:#fff;transform:translate(2px)}.status-legend i{display:block;width:8px;height:8px;border-radius:50%}.status-legend span{min-width:0;font-size:13px;font-weight:600;text-align:left}.status-legend strong{color:#132033;font-size:13px}.trend-placeholder{position:relative;display:grid;min-height:230px;align-items:center;padding:18px 16px 20px}.trend-placeholder:before{position:absolute;top:18px;right:16px;bottom:46px;left:16px;background:linear-gradient(#edf2f6 1px,transparent 1px),linear-gradient(90deg,#edf2f6 1px,transparent 1px);background-size:100% 25%,20% 100%;content:""}.trend-placeholder svg{position:relative;z-index:1;width:100%;height:150px}.trend-placeholder polyline{fill:none;stroke:#0f8fa3;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.4;vector-effect:non-scaling-stroke}.empty-hint{position:relative;z-index:1;justify-self:center;width:fit-content;margin-top:8px;padding:5px 9px;border:1px solid #e1e8f0;border-radius:6px;background:#fff;color:#718095;font-size:12px;font-weight:600}.finance-panel{align-self:start}.finance-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:16px}.finance-grid button{display:grid;min-height:78px;gap:8px;align-content:center;padding:14px;border:1px solid #e2e9f0;border-radius:7px;background:#f9fbfd;color:#526176;text-align:left;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}.finance-grid button:hover{border-color:#c7d9e6;background:#fff;transform:translateY(-2px)}.finance-grid span{font-size:13px;font-weight:700}.finance-grid strong{color:#132033;font-size:24px;line-height:1}.overview-item{display:grid;gap:8px;align-content:center;min-height:78px;padding:14px;border:1px solid #e2e9f0;border-radius:7px;background:#f9fbfd;text-align:left}.overview-item span{color:#526176;font-size:13px;font-weight:700}.overview-item strong{color:#132033;font-size:24px;line-height:1}.activity-row{display:grid;grid-template-columns:minmax(100px,1fr) 48px minmax(100px,1fr) 54px auto;align-items:center;gap:10px;min-height:52px;border-bottom:1px solid #edf2f6}.activity-row span,.activity-row strong{min-width:0;overflow:hidden;color:#24364d;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.activity-row strong{font-weight:700}.activity-row small{color:#7a8798;font-size:12px}@media (max-width: 1180px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-layout,.housing-workspace,.workbench-grid{grid-template-columns:1fr}.insight-panel{position:static}}@media (max-width: 760px){.app-header{padding:0 14px}.app-content{padding:14px}.page-heading,.crud-toolbar,.housing-toolbar{display:grid;grid-template-columns:1fr}.housing-filter-summary{justify-content:start}.metric-grid{grid-template-columns:1fr}.workbench-hero{min-height:auto;padding:20px}.workbench-metrics,.finance-grid,.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.room-status-panel,.login-page{grid-template-columns:1fr}.login-stage{min-height:320px;padding:28px}.login-copy{margin-top:44px}.login-copy h1{font-size:30px}}@media (max-width: 520px){.workbench-metrics,.quick-grid,.finance-grid{grid-template-columns:1fr}.todo-row{grid-template-columns:52px minmax(0,1fr);padding:10px 0}.todo-count,.todo-action{grid-column:2;justify-self:start}.workbench-metric-card{min-height:118px}}:root{color:#222;background:#fff;font-family:Noto Sans SC,PingFang SC,Circular,-apple-system,system-ui,Roboto,Helvetica Neue,sans-serif}body{background:#f7f7f7}.app-sider{background:#fff!important;border-right:1px solid #dddddd!important}.brand-block{border-bottom:1px solid #ebebeb}.brand-mark{border-color:#ff385c;border-radius:14px;background:#ff385c;color:#fff}.app-menu.ant-menu-light{background:#fff!important}.app-menu.ant-menu-light .ant-menu-item{color:#6a6a6a;border-radius:999px}.app-menu.ant-menu-light .ant-menu-item:hover{background:#f7f7f7!important;color:#222!important}.app-menu.ant-menu-light .ant-menu-item-selected{background:#fff1f3!important;color:#222!important}.app-menu.ant-menu-light .ant-menu-item-selected .anticon{color:#ff385c}.app-menu.ant-menu-light .ant-menu-item-group-title{color:#929292!important}.app-sider{background:#fff!important;border-right:1px solid #dddddd}.brand-block{min-height:64px;padding:14px 18px;border-bottom:1px solid #ebebeb}.brand-row{color:#222}.brand-mark{border:0;border-radius:14px;background:#ff385c;color:#fff}.brand-subtitle{color:#6a6a6a}.app-menu{padding:8px 8px 16px}.app-menu.ant-menu-dark,.app-menu.ant-menu-dark .ant-menu-sub,.app-menu.ant-menu-dark .ant-menu-item,.app-menu.ant-menu-dark .ant-menu-item-group-title{background:transparent!important}.app-menu .ant-menu-item-group-title{color:#929292!important;font-size:12px!important;font-weight:700!important}.app-menu.ant-menu-dark .ant-menu-item{color:#6a6a6a;border-radius:999px}.app-menu.ant-menu-dark .ant-menu-item:hover{background:#f7f7f7!important;color:#222!important}.app-menu.ant-menu-dark .ant-menu-item-selected{background:#fff1f3!important;color:#222!important}.app-menu.ant-menu-dark .ant-menu-item-selected .anticon{color:#ff385c}.app-header{height:64px;border-bottom:1px solid #dddddd;background:#fffffff5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.app-content{min-height:calc(100dvh - 64px);padding:24px;background:#f7f7f7}.content-frame{width:min(100%,1440px)}.surface,.surface-muted,.workbench-hero,.workbench-metric-card,.quick-entry,.finance-grid button,.action-row{border-color:#ddd;border-radius:14px;background:#fff;box-shadow:none}.workbench-hero-copy{display:grid;gap:8px;align-content:start}.workbench-hero-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.workbench-hero-highlight{display:grid;gap:5px;min-height:84px;padding:12px 14px;border:1px solid #e8edf3;border-radius:8px;background:#f9fbfe}.workbench-hero-highlight span{color:#65758a;font-size:12px;font-weight:600}.workbench-hero-highlight strong{color:#132033;font-size:24px;font-weight:700;line-height:1}.workbench-hero-highlight small{color:#7c8aa0;font-size:12px;line-height:1.35}.surface:hover,.workbench-metric-card:hover,.quick-entry:hover,.finance-grid button:hover,.action-row:hover{box-shadow:#00000005 0 0 0 1px,#0000000a 0 2px 6px,#0000001a 0 4px 8px}.page-heading h1,.page-heading h2,.page-heading h3,.structure-heading h2.ant-typography{color:#222!important;font-size:28px!important;line-height:1.43!important}.page-description,.structure-heading p,.panel-subtitle{color:#6a6a6a}.ant-btn-primary{border-color:#ff385c;background:#ff385c}.ant-btn-primary:not(:disabled):hover{border-color:#e00b41;background:#e00b41}.ant-input-search .ant-input-search-button,.ant-input-search .ant-input-search-button.ant-btn-primary{border-color:#d9d9d9!important;background:#fff!important;box-shadow:none!important;color:#000000a6!important}.ant-input-search .ant-input-search-button:not(:disabled):hover,.ant-input-search .ant-input-search-button.ant-btn-primary:not(:disabled):hover{border-color:#4096ff!important;background:#fff!important;color:#4096ff!important}.ant-input-affix-wrapper:focus,.ant-input-affix-wrapper-focused,.ant-select-focused .ant-select-selector{border-color:#222!important;box-shadow:none!important}.login-page{background:#fff}.login-stage{color:#222;background:linear-gradient(#ffffffb8,#ffffffb8),url(https://images.unsplash.com/photo-1560518883-ce09059eeffa?auto=format&fit=crop&w=1800&q=80) center / cover}.login-copy h1{color:#222}.login-copy p,.login-meta span{color:#3f3f3f}.login-meta span{border-color:#ddd;background:#fffc;border-radius:999px}.login-form-panel{background:#fff}.login-form-card{border-radius:20px}.room-structure-page{display:grid;gap:16px}.structure-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.structure-heading p{margin:6px 0 0;font-size:14px;line-height:1.43}.structure-filter{display:grid;grid-template-columns:minmax(160px,1fr) minmax(140px,.8fr) auto minmax(240px,1.3fr);align-items:center;gap:12px;padding:12px;border-radius:999px}.structure-filter .ant-input-affix-wrapper,.structure-filter .ant-select-selector{border-radius:999px!important}.structure-filter .ant-input-search .ant-input-affix-wrapper{border-start-end-radius:0!important;border-end-end-radius:0!important}.structure-filter .ant-input-search .ant-input-search-button{border-start-end-radius:999px!important;border-end-end-radius:999px!important}.structure-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}.structure-kpi-card{min-height:96px;padding:18px;border-radius:14px}.structure-kpi-card span{display:block;color:#6a6a6a;font-size:13px;line-height:1.23}.structure-kpi-card strong{display:block;margin-top:10px;color:#222;font-size:28px;font-weight:700;line-height:1.1}.structure-kpi-card:after{display:block;width:34px;height:4px;margin-top:12px;border-radius:999px;background:var(--kpi-color, #ff385c);content:""}.structure-kpi-card.tone-total{--kpi-color: #222222}.structure-kpi-card.tone-rented{--kpi-color: #008a05}.structure-kpi-card.tone-vacant{--kpi-color: #b46a00}.structure-kpi-card.tone-maintenance{--kpi-color: #c13515}.structure-kpi-card.tone-reserved{--kpi-color: #428bff}.structure-kpi-card.tone-control{--kpi-color: #ff385c}.structure-workspace{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px}.building-nav-panel,.floor-distribution-panel{min-width:0;border-radius:20px}.building-nav-panel{align-self:start;padding:16px}.structure-panel-title{margin-bottom:16px}.structure-panel-title h2{margin:0;color:#222;font-size:20px;font-weight:600;line-height:1.2}.structure-panel-title p{margin:6px 0 0;color:#6a6a6a;font-size:14px;line-height:1.43}.structure-panel-title.with-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 20px 0}.building-nav-list{display:grid;gap:12px}.building-nav-row{display:grid;gap:10px;width:100%;padding:14px;border:1px solid #dddddd;border-radius:14px;background:#fff;color:#222;cursor:pointer;text-align:left;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.building-nav-row:hover,.building-nav-row.is-active{border-color:#ff385c;box-shadow:#00000005 0 0 0 1px,#0000000a 0 2px 6px,#0000001a 0 4px 8px;transform:translateY(-1px)}.building-nav-title{display:flex;align-items:center;gap:8px}.building-nav-title svg{color:#ff385c}.building-nav-title strong{font-size:16px;font-weight:600}.building-nav-counts{color:#6a6a6a;font-size:13px;line-height:1.23}.building-stack{display:flex;height:6px;overflow:hidden;border-radius:999px;background:#f2f2f2}.building-stack i{display:block;height:100%}.stack-rented{background:#008a05}.stack-vacant{background:#b46a00}.stack-maintenance{background:#c13515}.status-legend-inline{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.status-legend-inline span{display:inline-flex;align-items:center;gap:6px;color:#6a6a6a;font-size:13px}.status-legend-inline span:before{width:8px;height:8px;border-radius:50%;background:var(--status-color, #929292);content:""}.is-rented{--status-color: #008a05;--room-color: #008a05}.is-vacant{--status-color: #b46a00;--room-color: #b46a00}.is-maintenance{--status-color: #c13515;--room-color: #c13515}.is-reserved{--status-color: #428bff;--room-color: #428bff}.is-locked{--status-color: #929292;--room-color: #929292}.floor-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:20px}.floor-two-column>section{min-width:0}.floor-two-column h3{margin:0 0 12px;padding:12px 14px;border:1px solid #dddddd;border-radius:14px;background:#f7f7f7;color:#222;font-size:16px;font-weight:600}.floor-block{position:relative;display:grid;gap:12px;margin-bottom:12px;padding:14px;border:1px solid #dddddd;border-radius:14px;background:#fff}.floor-block.is-selected{border-color:#ff385c;box-shadow:#00000005 0 0 0 1px,#0000000a 0 2px 6px,#0000001a 0 4px 8px}.floor-block.is-selected:after{position:absolute;top:12px;right:12px;padding:3px 9px;border-radius:999px;background:#fff1f3;color:#e00b41;content:"当前查看";font-size:11px;font-weight:600}.floor-block-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding-right:76px}.floor-block-header strong{min-width:42px;color:#222;font-size:16px;font-weight:700}.floor-block-header span{display:inline-flex;min-height:24px;align-items:center;padding:0 8px;border-radius:999px;background:#f7f7f7;color:#6a6a6a;font-size:12px;font-weight:600}.room-chip-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.room-chip{position:relative;display:grid;min-height:94px;align-content:start;gap:4px;overflow:hidden;padding:10px 8px;border:1px solid #ebebeb;border-top:4px solid var(--room-color, #929292);border-radius:12px;background:#fff;color:#222;cursor:pointer;text-align:left;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.room-chip:hover{border-color:#ddd;box-shadow:#00000005 0 0 0 1px,#0000000a 0 2px 6px,#0000001a 0 4px 8px;transform:translateY(-1px)}.room-chip-title{overflow:hidden;color:#222;font-size:13px;font-weight:700;line-height:1.18;text-overflow:ellipsis;white-space:nowrap}.room-chip-line{min-width:0;overflow:hidden;color:#6a6a6a;font-size:11px;line-height:1.23;text-overflow:ellipsis;white-space:nowrap}.room-chip .ant-tag{width:fit-content;margin-top:2px;border-radius:999px;font-size:11px;line-height:18px}.floor-empty{grid-column:1 / -1;display:grid;min-height:70px;place-items:center;border:1px dashed #dddddd;border-radius:14px;color:#929292;font-size:13px}@media (max-width: 1280px){.structure-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.structure-workspace{grid-template-columns:1fr}.building-nav-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 900px){.structure-filter,.floor-two-column,.structure-heading,.structure-panel-title.with-meta{grid-template-columns:1fr;display:grid}.building-nav-list,.structure-kpi-grid{grid-template-columns:1fr}.room-chip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.workbench-page{gap:22px}.workbench-hero{margin:0}.workbench-metrics{gap:16px;margin:0}.workbench-grid{gap:22px}.workbench-panel{margin:0}.workbench-panel .panel-header.compact{padding:22px 22px 0}.quick-grid,.todo-list,.finance-grid{padding:16px 22px 22px}.quick-grid,.todo-panel .todo-list,.finance-grid,.status-legend{gap:12px}.room-status-panel{padding:18px 22px 22px}@media (max-width: 1280px){.workbench-page,.workbench-grid{gap:18px}}.floor-board-layout{grid-template-columns:188px minmax(0,1fr);gap:16px;padding:18px}.floor-selector-card{position:sticky;top:18px;max-height:none;gap:12px;overflow:visible;padding:14px;border-radius:18px}.floor-selector-header{padding-bottom:10px;border-bottom:1px solid #f2f2f2}.floor-selector-header span{font-size:12px;font-weight:700}.floor-selector-header strong{min-width:auto;padding:5px 9px;font-size:12px}.floor-nav-list{gap:8px;max-height:none;overflow:visible;padding-right:0}.floor-nav-button{grid-template-columns:42px minmax(0,1fr);align-items:center;gap:8px;min-height:54px;padding:9px 10px;border-radius:14px}.floor-nav-button strong{display:grid;width:38px;height:38px;place-items:center;border-radius:12px;background:#f7f7f7;color:#222;font-size:14px;font-weight:800}.floor-nav-button span{display:grid;gap:4px;min-width:0}.floor-nav-button em{min-height:auto;padding:0;border-radius:0;background:transparent;color:#6a6a6a;font-size:11px;line-height:1.2}.floor-nav-button.is-active strong{background:#ff385c;color:#fff}.floor-scroll-area{gap:14px}.floor-section-card{gap:14px;padding:16px;border-radius:20px}.floor-section-header{padding-bottom:12px}.floor-section-header h3{font-size:22px}.floor-section-stats span{min-height:28px;padding:5px 9px;font-size:12px}.room-card-grid{grid-template-columns:repeat(4,minmax(158px,1fr));gap:10px}.room-card{min-height:132px;gap:10px;padding:13px;border-radius:16px;background:linear-gradient(180deg,#ffffffeb,#fff),radial-gradient(circle at right top,var(--room-soft-bg, #fff7f8),transparent 62%)}.room-card:before{top:13px;right:13px;width:7px;height:7px}.room-card-top strong{font-size:17px}.room-card-top span{padding:3px 7px;border-radius:999px;background:#f7f7f7;font-size:12px;font-weight:700}.room-card-type{min-height:20px;color:#6a6a6a;font-size:13px}.room-card-status{min-height:26px;padding:4px 8px;font-size:11px}.room-action-button.ant-btn{height:28px;padding:0 10px;border-color:#ddd;background:#fff;font-size:11px}.room-detail-button.ant-btn{height:22px;font-size:11px}@media (max-width: 1180px){.floor-board-layout{grid-template-columns:1fr}.floor-selector-card{position:static}.floor-nav-list{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width: 760px){.floor-nav-list,.room-card-grid{grid-template-columns:1fr}}.roomtype-image-cell{display:inline-flex;align-items:center;gap:8px}.roomtype-image-cell .ant-image-img{border-radius:10px;object-fit:cover}.roomtype-image-cell span{color:#6a6a6a;font-size:12px;font-weight:700}.roomtype-upload-trigger{display:grid;gap:6px;place-items:center;width:100%;height:100%;border:0;background:transparent;color:#6a6a6a;cursor:pointer;font-size:12px}.room-media-upload-trigger{display:grid;gap:6px;place-items:center;width:100%;height:100%;box-sizing:border-box;border:1px dashed #d9d9d9;background:#fafafa;color:#8c8c8c;cursor:pointer;font-size:12px;border-radius:8px;transition:border-color .25s ease,background-color .25s ease,color .25s ease,transform .25s ease,box-shadow .25s ease;animation:room-media-trigger-in .4s ease both}.room-media-upload-trigger:hover{border-color:#1677ff;background:#e6f4ff;color:#1677ff;transform:translateY(-2px) scale(1.03);box-shadow:0 6px 16px #1677ff2e}.room-media-upload-trigger:focus-visible{outline:none;border-color:#1677ff;background:#e6f4ff;color:#1677ff;box-shadow:0 0 0 3px #1677ff26}.room-media-upload-trigger:active{transform:translateY(0) scale(.97)}.room-media-upload-trigger svg{transition:transform .25s ease}.room-media-upload-trigger:hover svg{transform:rotate(90deg) scale(1.15)}@keyframes room-media-trigger-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.floor-board-layout{grid-template-columns:260px minmax(0,1fr);align-items:start;gap:18px}.floor-selector-card{position:sticky;top:18px;max-height:calc(100dvh - 150px);overflow:hidden}.floor-nav-list{display:grid;gap:10px;max-height:calc(100dvh - 242px);overflow:auto;padding-right:4px}.floor-nav-button{display:grid;gap:8px;min-height:76px;padding:12px;border:1px solid #ebebeb;border-radius:16px;background:#fff;color:#222;cursor:pointer;text-align:left;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease}.floor-nav-button strong{font-size:18px;font-weight:800;line-height:1.1}.floor-nav-button span{display:flex;gap:8px;flex-wrap:wrap}.floor-nav-button em{min-height:24px;padding:4px 8px;border-radius:999px;background:#f7f7f7;color:#6a6a6a;font-size:12px;font-style:normal;font-weight:700}.floor-nav-button:hover{border-color:#ddd;box-shadow:#00000005 0 0 0 1px,#0000000f 0 8px 18px;transform:translateY(-1px)}.floor-nav-button.is-active{border-color:#ff385c;background:#fff7f8;box-shadow:#ff385c1f 0 10px 24px}.floor-nav-button.is-active strong{color:#e00b41}.floor-scroll-area{display:grid;gap:16px;min-width:0}.floor-section-card{display:grid;gap:16px;scroll-margin-top:18px;padding:18px;border:1px solid #dddddd;border-radius:22px;background:#fff;transition:border-color .18s ease,box-shadow .18s ease}.floor-section-card.is-selected{border-color:#ff385c;box-shadow:#ff385c1a 0 12px 28px}.floor-section-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:14px;border-bottom:1px solid #f2f2f2}.floor-section-header span:first-child{color:#6a6a6a;font-size:13px}.floor-section-header h3{margin:3px 0 0;color:#222;font-size:24px;font-weight:800;line-height:1.15}.floor-section-stats{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.floor-section-stats span{min-height:30px;padding:6px 10px;border-radius:999px;background:#f7f7f7;color:#484848;font-size:13px;font-weight:700}@media (max-width: 1180px){.floor-board-layout{grid-template-columns:1fr}.floor-selector-card{position:static;max-height:none}.floor-nav-list{grid-template-columns:repeat(4,minmax(0,1fr));max-height:none;overflow:visible;padding-right:0}}@media (max-width: 760px){.floor-nav-list,.room-card-grid{grid-template-columns:1fr}.floor-section-header{align-items:flex-start;flex-direction:column}.floor-section-stats{justify-content:flex-start}}.workbench-page{gap:14px}.workbench-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,400px);align-items:center;gap:16px;min-height:134px;padding:18px 20px;border-color:#ddd;border-radius:24px;background:radial-gradient(circle at 8% 0%,rgba(255,56,92,.1),transparent 32%),linear-gradient(135deg,#fff,snow 54%,#f7f7f7);box-shadow:none}.workbench-hero-copy{display:grid;align-content:start;gap:8px}.eyebrow{width:fit-content;padding:6px 10px;border-radius:999px;background:#fff1f3;color:#e00b41;font-size:12px;font-weight:800}.workbench-hero h2.ant-typography{max-width:780px;color:#222!important;font-size:clamp(26px,2.6vw,38px)!important;font-weight:800!important;letter-spacing:-.04em}.workbench-hero p{max-width:620px;margin-top:0;color:#6a6a6a;font-size:14px}.workbench-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}.workbench-hero-actions .ant-btn{height:40px;border-radius:999px;font-weight:700}.workbench-focus-card{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-self:center;padding:10px;border:1px solid #ebebeb;border-radius:20px;background:#ffffffb8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.workbench-focus-card div{display:grid;align-content:center;gap:7px;min-height:96px;padding:10px 12px;border-radius:16px;background:#fff}.workbench-focus-card span{color:#6a6a6a;font-size:13px;font-weight:700}.workbench-focus-card strong{color:#222;font-size:28px;font-weight:800;line-height:1}.workbench-focus-card small{color:#929292;font-size:11px;line-height:1.35}.workbench-focus-card div:first-child strong{color:#ff385c}.workbench-metrics{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:6px}.workbench-metric-card{min-height:124px;padding:16px;border-color:#ebebeb;border-radius:20px;background:#fff}.workbench-metric-card:before{background:radial-gradient(circle at right top,#fff1f3,transparent 58%)}.workbench-metric-card:after{display:none}.metric-icon{width:38px;height:38px;border-radius:14px;background:#fff1f3;color:#ff385c}.metric-name{color:#6a6a6a;font-size:13px}.workbench-metric-card strong{color:#222;font-size:30px;font-weight:800}.workbench-metric-card small{color:#929292}.workbench-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);grid-template-areas:"quick todo" "room finance";align-items:start;gap:14px}.quick-panel{grid-area:quick;align-self:start}.todo-panel{grid-area:todo;align-self:start}.room-panel{grid-area:room;align-self:start}.finance-panel{grid-area:finance;align-self:start}.workbench-panel{border-radius:22px}.panel-header.compact{padding:18px 18px 0}.panel-title{color:#222;font-size:18px;font-weight:800}.panel-subtitle{margin-top:4px;color:#6a6a6a}.quick-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px 20px 20px}.quick-entry{align-content:center;min-height:96px;border-color:#ebebeb;border-radius:18px;background:#fff}.quick-entry.is-disabled{min-height:88px;background:#f4f6f8}.quick-entry span{width:38px;height:38px;border-radius:14px;background:#fff1f3;color:#ff385c}.quick-entry:hover{border-color:#ddd;color:#222;box-shadow:#00000005 0 0 0 1px,#0000000f 0 10px 24px}.todo-list{padding:12px 18px 18px}.todo-panel .todo-list{gap:9px}.todo-panel .todo-row{min-height:80px;padding:12px 14px}.todo-panel .todo-count{min-width:64px;padding:8px 10px}.room-status-panel{grid-template-columns:188px minmax(0,1fr);padding:18px 20px 20px}.donut-chart{width:172px}.status-legend{gap:10px}.status-legend button,.finance-grid button{border-color:#ebebeb;border-radius:16px;background:#fff}.status-legend button{min-height:42px}.finance-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:18px 20px 20px}.finance-grid button{min-height:96px}.finance-grid strong{color:#222;font-size:28px}@media (max-width: 1280px){.workbench-hero,.workbench-grid{grid-template-columns:1fr}.workbench-grid{grid-template-areas:"todo" "quick" "room" "finance"}.workbench-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 760px){.workbench-hero{padding:18px}.workbench-focus-card,.workbench-metrics,.quick-grid,.finance-grid{grid-template-columns:1fr}.room-status-panel{grid-template-columns:1fr;justify-items:start}}body{background:#f7f7f7;background-image:none}.workbench-hero{border-color:#ddd;background:#fff;box-shadow:none}.workbench-hero h2.ant-typography{color:#222!important}.workbench-hero p{color:#6a6a6a}.metric-icon,.quick-entry span{background:#fff1f3;color:#ff385c}.workbench-metric-card:before{background:linear-gradient(180deg,#fff1f3,transparent 64%)}.workbench-metric-card:after,.metric-card:after{background:#ff385c}.tone-blue,.tone-cyan,.tone-navy,.tone-orange,.tone-green,.tone-red{--tone: #ff385c;--tone-strong: #222222;--tone-soft: #fff1f3}.panel-title,.metric-value,.metric-card strong,.todo-row strong,.quick-entry strong{color:#222}.metric-label,.metric-note,.todo-row span,.quick-entry.is-disabled{color:#6a6a6a}.status-bar,.building-stack{background:#f2f2f2}.status-bar span{background:#ff385c}.login-page{background:#fff;background-image:none}.login-stage{background:linear-gradient(135deg,#fff,#fff7f8 54%,#f7f7f7);color:#222}.login-copy p,.login-meta span{color:#6a6a6a}.login-meta span{border-color:#ddd;background:#fff}.login-stage-footer{color:#22222275}.login-icp-link{color:#2222228f}.structure-workspace{grid-template-columns:1fr}.floor-distribution-panel{width:100%}.room-chip{min-height:92px;border:1px solid #ebebeb;border-top:1px solid #ebebeb;border-radius:14px;background:#fff;box-shadow:none}.room-chip:before{position:absolute;top:12px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--room-color, #929292);content:""}.room-chip:hover{border-color:#ddd;box-shadow:#00000005 0 0 0 1px,#0000000a 0 2px 6px,#00000014 0 4px 8px}.room-chip-status{width:fit-content;margin-top:4px;padding:3px 8px;border-radius:999px;background:var(--room-status-bg, #f7f7f7);color:var(--room-status-text, #6a6a6a);font-size:11px;font-weight:600;line-height:1.2}.room-chip.is-rented{--room-color: #2f7d52;--room-status-bg: #eef8f1;--room-status-text: #236743}.room-chip.is-vacant{--room-color: #b26a00;--room-status-bg: #fff7e8;--room-status-text: #8a5200}.room-chip.is-maintenance{--room-color: #c13515;--room-status-bg: #fff1ee;--room-status-text: #9f2f14}.room-chip.is-reserved{--room-color: #428bff;--room-status-bg: #eef5ff;--room-status-text: #2f65b7}.room-chip.is-locked{--room-color: #929292;--room-status-bg: #f2f2f2;--room-status-text: #6a6a6a}.status-legend-inline .is-rented{--status-color: #2f7d52}.status-legend-inline .is-vacant{--status-color: #b26a00}.status-legend-inline .is-maintenance{--status-color: #c13515}.status-legend-inline .is-reserved{--status-color: #428bff}.status-legend-inline .is-locked{--status-color: #929292}.floor-board-layout{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:18px;padding:20px}.floor-selector-card,.selected-floor-card{border:1px solid #dddddd;border-radius:22px;background:#fff}.floor-selector-card{display:grid;align-content:start;gap:18px;padding:18px}.floor-selector-header,.selected-floor-header{display:flex;align-items:center;justify-content:space-between;gap:14px}.floor-selector-header span,.selected-floor-header span:first-child{color:#6a6a6a;font-size:13px}.floor-selector-header strong{min-width:54px;padding:8px 12px;border-radius:999px;background:#fff1f3;color:#e00b41;font-size:14px;text-align:center}.floor-button-section{display:grid;gap:10px}.floor-button-section h3{margin:0;color:#222;font-size:15px;font-weight:700}.floor-button-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.floor-button,.floor-more-button{min-height:64px;padding:10px 12px;border:1px solid #ebebeb;border-radius:16px;background:#fff;color:#222;cursor:pointer;text-align:left;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease}.floor-button{display:grid;align-content:center;gap:4px}.floor-button strong{font-size:15px;line-height:1.15}.floor-button span{overflow:hidden;color:#6a6a6a;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.floor-button:hover,.floor-more-button:hover{border-color:#ff385c;box-shadow:#ff385c1f 0 8px 20px;transform:translateY(-1px)}.floor-button.is-active{border-color:#ff385c;background:#fff7f8;box-shadow:#ff385c24 0 10px 24px}.floor-button.is-active strong{color:#e00b41}.floor-more-button{display:grid;place-items:center;border-style:dashed;color:#e00b41;font-weight:700;text-align:center}.selected-floor-card{display:grid;gap:18px;padding:20px}.selected-floor-header{padding-bottom:16px;border-bottom:1px solid #f2f2f2}.selected-floor-header h3{margin:4px 0 0;color:#222;font-size:24px;line-height:1.15}.selected-floor-stats{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.selected-floor-stats span{min-height:30px;padding:6px 10px;border-radius:999px;background:#f7f7f7;color:#484848;font-size:13px;font-weight:600}.room-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.room-card{position:relative;display:grid;min-height:154px;gap:12px;padding:14px;border:1px solid #ebebeb;border-radius:18px;background:radial-gradient(circle at right top,var(--room-soft-bg, #fff7f8),transparent 58%),#fff;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.room-card:before{position:absolute;top:14px;right:14px;width:8px;height:8px;border-radius:50%;background:var(--room-color, #929292);content:""}.room-card:hover{border-color:#ddd;box-shadow:#00000005 0 0 0 1px,#0000000f 0 10px 24px;transform:translateY(-1px)}.room-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-right:18px}.room-card-top strong{overflow:hidden;color:#222;font-size:18px;font-weight:750;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.room-card-top span{color:#6a6a6a;font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.room-card-type{margin:0;color:#484848;font-size:14px;font-weight:600}.room-card-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.room-card-status{display:inline-flex;min-height:28px;align-items:center;padding:5px 9px;border-radius:999px;background:var(--room-status-bg, #f7f7f7);color:var(--room-status-text, #6a6a6a);font-size:12px;font-weight:700}.room-action-button.ant-btn{height:30px;border-color:#222;border-radius:999px;color:#222;font-size:12px;font-weight:700}.room-action-button.ant-btn:hover{border-color:#ff385c!important;color:#e00b41!important}.room-detail-button.ant-btn{justify-self:start;height:26px;padding:0;color:#6a6a6a;font-size:12px;font-weight:700}.room-detail-button.ant-btn:hover{color:#e00b41!important;background:transparent!important}.room-card.is-rented{--room-color: #2f7d52;--room-soft-bg: #f3fbf5;--room-status-bg: #eef8f1;--room-status-text: #236743}.room-card.is-vacant{--room-color: #ff385c;--room-soft-bg: #fff7f8;--room-status-bg: #fff1f3;--room-status-text: #e00b41}.room-card.is-maintenance{--room-color: #c13515;--room-soft-bg: #fff5f2;--room-status-bg: #fff1ee;--room-status-text: #9f2f14}.room-card.is-reserved{--room-color: #9a6a00;--room-soft-bg: #fff9eb;--room-status-bg: #fff4d8;--room-status-text: #7a5300}.room-card.is-locked{--room-color: #929292;--room-soft-bg: #f7f7f7;--room-status-bg: #f2f2f2;--room-status-text: #6a6a6a}.pending-page{display:grid;gap:16px}.pending-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:20px}.pending-hero h2.ant-typography{margin:8px 0 4px!important;color:#222!important;font-size:28px!important}.pending-hero p{margin:0;color:#6a6a6a}.pending-hero>strong{padding:12px 16px;border-radius:18px;background:#fff1f3;color:#e00b41;font-size:18px;white-space:nowrap}.pending-list{display:grid;gap:10px;padding:16px}.pending-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto auto;align-items:center;gap:12px;min-height:72px;padding:12px;border:1px solid #ebebeb;border-radius:16px;background:#fff;cursor:pointer;text-align:left;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.pending-row:hover{border-color:#ddd;box-shadow:#00000005 0 0 0 1px,#0000000f 0 10px 24px;transform:translateY(-1px)}.pending-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:14px;background:#fff1f3;color:#ff385c;font-size:18px}.pending-row strong{display:block;color:#222;font-size:15px}.pending-row span{color:#6a6a6a;font-size:13px}.pending-row em{color:#222;font-size:13px;font-style:normal;font-weight:700;white-space:nowrap}@media (max-width: 1180px){.floor-board-layout{grid-template-columns:1fr}.floor-button-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.room-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 900px){.floor-board-layout{padding:14px}.floor-button-grid,.room-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.selected-floor-header{align-items:flex-start;flex-direction:column}.selected-floor-stats{justify-content:flex-start}.pending-hero,.pending-row{grid-template-columns:1fr;justify-items:start}}.room-structure-page .structure-filter{grid-template-columns:minmax(220px,1.05fr) minmax(180px,.85fr) 118px minmax(360px,1.2fr) minmax(280px,1.1fr);gap:10px;padding:14px 16px;border-radius:28px;background:#fff}.room-structure-page .structure-filter .ant-select,.room-structure-page .structure-filter .ant-segmented,.room-structure-page .structure-filter .ant-input-affix-wrapper{min-height:44px}.room-structure-page .structure-filter .ant-select-selector,.room-structure-page .structure-filter .ant-input-affix-wrapper{border-radius:16px!important;box-shadow:none!important}.room-structure-page .structure-filter .ant-segmented{display:flex;align-items:center;padding:3px;border-radius:14px;background:#f7f7f7}.room-structure-page .structure-filter .ant-segmented-item{min-width:72px;border-radius:11px}.room-structure-page .floor-selector-card{padding:14px;border-color:#e8e8e8;border-radius:18px}.room-structure-page .floor-selector-header{padding:0 2px 12px;border-bottom:1px solid #f0f0f0}.room-structure-page .floor-selector-header strong{min-width:46px;padding:5px 10px;border-radius:999px;background:#fff1f3;color:#e00b41;font-size:12px}.room-structure-page .floor-nav-list{gap:8px;padding-right:2px}.room-structure-page .floor-nav-button{position:relative;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px;min-height:62px;overflow:hidden;padding:10px 12px 10px 10px;border-color:#eee;border-radius:14px;background:#fff;box-shadow:none}.room-structure-page .floor-nav-button:before{position:absolute;top:12px;bottom:12px;left:0;width:3px;border-radius:0 999px 999px 0;background:transparent;content:""}.room-structure-page .floor-nav-button strong{display:grid;width:42px;height:42px;place-items:center;border-radius:12px;background:#f7f7f7;color:#222;font-size:16px;font-weight:800;line-height:1}.room-structure-page .floor-nav-button span{display:flex;min-width:0;align-items:center;gap:6px;flex-wrap:nowrap}.room-structure-page .floor-nav-button em{min-height:24px;padding:4px 8px;border-radius:999px;background:#f7f7f7;color:#6a6a6a;font-size:12px;line-height:1;white-space:nowrap}.room-structure-page .floor-nav-button:hover{border-color:#ddd;background:#fcfcfc;box-shadow:#0000000a 0 8px 20px}.room-structure-page .floor-nav-button.is-active{border-color:#ff8aa0;background:#fff;box-shadow:#ff385c14 0 0 0 1px,#ff385c14 0 10px 22px}.room-structure-page .floor-nav-button.is-active:before{background:#ff385c}@media (max-width: 1440px){.room-structure-page .structure-filter{grid-template-columns:minmax(220px,1fr) minmax(180px,.9fr) 118px minmax(360px,1.4fr)}.room-structure-page .structure-filter .ant-input-affix-wrapper{grid-column:1 / -1;max-width:520px}}.room-structure-page .floor-board-layout{grid-template-columns:minmax(360px,390px) minmax(0,1fr)}.room-structure-page .floor-selector-card{max-height:none;overflow:visible}.room-structure-page .floor-nav-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:none;overflow:visible;padding-right:0}.room-structure-page .floor-nav-button{grid-template-columns:40px minmax(0,1fr);gap:8px;min-height:54px;padding:8px 10px 8px 9px}.room-structure-page .floor-nav-button strong{width:36px;height:36px;border-radius:10px;font-size:14px}.room-structure-page .floor-nav-button span{display:grid;gap:3px}.room-structure-page .floor-nav-button em{min-height:auto;padding:0;background:transparent;font-size:11px;line-height:1.2}@media (max-width: 1180px){.room-structure-page .floor-board-layout{grid-template-columns:1fr}.room-structure-page .floor-nav-list{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width: 760px){.room-structure-page .floor-nav-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.room-structure-page .room-card-title{display:flex;min-width:0;align-items:center;gap:7px}.room-structure-page .room-card-title strong{overflow:hidden;color:#222;font-size:17px;font-weight:750;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.room-structure-page .room-card-title em{flex:0 0 auto;padding:3px 7px;border-radius:999px;background:#f7f7f7;color:#6a6a6a;font-size:11px;font-style:normal;font-weight:700;line-height:1.2}.room-structure-page .room-card-top{align-items:center}.room-structure-page .room-card-unit{display:inline-flex;min-height:24px;align-items:center;padding:4px 8px;border-radius:999px;background:#fff1f3;color:#e00b41;font-size:12px;font-weight:800;line-height:1;white-space:nowrap}.room-structure-page .room-card-info-row{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);align-items:center;gap:10px}.room-structure-page .room-card-info-row strong{overflow:hidden;color:#222;font-size:20px;font-weight:800;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.room-structure-page .room-card-info-row .room-card-type{margin:0;overflow:hidden;color:#484848;font-size:13px;font-weight:700;text-align:right;text-overflow:ellipsis;white-space:nowrap}.room-structure-page .structure-heading{align-items:flex-start}.room-structure-page .structure-filter{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,.9fr) minmax(140px,.7fr) minmax(440px,1.4fr) minmax(240px,1fr);gap:12px;align-items:center;margin-bottom:16px;padding:14px;border:1px solid #eeeeee;border-radius:18px;background:#fff;box-shadow:#0f172a0a 0 10px 28px}.room-structure-page .structure-filter .ant-select,.room-structure-page .structure-filter .ant-input-affix-wrapper,.room-structure-page .structure-filter .ant-segmented{width:100%;min-height:42px}.room-structure-page .structure-filter .ant-select-selector,.room-structure-page .structure-filter .ant-input-affix-wrapper{border-radius:12px!important;background:#fbfbfb!important}.room-structure-page .structure-filter .ant-segmented{display:flex;align-items:center;padding:3px;border-radius:12px;background:#f6f6f6}.room-structure-page .structure-filter .ant-segmented-group{width:100%}.room-structure-page .structure-filter .ant-segmented-item{flex:1;min-width:0;border-radius:9px}.room-structure-page .structure-workspace{display:block}.room-structure-page .floor-distribution-panel{padding:18px;border:1px solid #eeeeee;border-radius:20px;background:#fff}.room-structure-page .floor-board-layout{display:block;padding:0}.room-structure-page .floor-nav-row-card{margin-bottom:16px;padding:14px;border:1px solid #eeeeee;border-radius:18px;background:linear-gradient(180deg,#fff,#fbfbfb)}.room-structure-page .floor-selector-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 12px;border-bottom:1px solid #eeeeee}.room-structure-page .floor-selector-header span{color:#222;font-size:15px;font-weight:800}.room-structure-page .floor-selector-header strong{display:inline-flex;min-width:auto;height:28px;align-items:center;padding:0 12px;border-radius:999px;background:#fff1f3;color:#e00b41;font-size:13px}.room-structure-page .floor-nav-list{display:flex;flex-wrap:wrap;gap:8px;max-height:none;overflow:visible;padding:12px 0 0}.room-structure-page .floor-nav-button{display:grid;grid-template-columns:42px minmax(0,1fr);width:156px;min-height:58px;align-items:center;gap:8px;padding:8px 10px;border:1px solid #eeeeee;border-radius:14px;background:#fff;box-shadow:none}.room-structure-page .floor-nav-button strong{display:grid;width:38px;height:38px;place-items:center;border-radius:11px;background:#f6f6f6;color:#222;font-size:14px;font-weight:800}.room-structure-page .floor-nav-button span{display:grid;min-width:0;gap:3px}.room-structure-page .floor-nav-button em{padding:0;background:transparent;color:#777;font-size:11px;font-style:normal;line-height:1.2;white-space:nowrap}.room-structure-page .floor-nav-button.is-active{border-color:#ff8aa0;background:#fff8f9;box-shadow:#ff385c1a 0 8px 18px}.room-structure-page .floor-nav-button.is-active strong{background:#ff385c;color:#fff}.room-structure-page .floor-scroll-area{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-height:none;overflow:visible;padding:0}.room-structure-page .floor-section-card{min-width:0;border-radius:18px}.room-structure-page .room-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width: 1440px){.room-structure-page .structure-filter{grid-template-columns:repeat(3,minmax(0,1fr))}.room-structure-page .structure-filter .ant-segmented,.room-structure-page .structure-filter .ant-input-affix-wrapper{grid-column:span 3}}@media (max-width: 1180px){.room-structure-page .floor-scroll-area{grid-template-columns:1fr}.room-structure-page .room-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 760px){.room-structure-page .structure-filter{grid-template-columns:1fr}.room-structure-page .structure-filter .ant-segmented,.room-structure-page .structure-filter .ant-input-affix-wrapper{grid-column:auto}.room-structure-page .floor-nav-button{width:calc(50% - 4px)}.room-structure-page .room-card-grid{grid-template-columns:1fr}.entity-form-page{display:grid;gap:16px}.entity-form-heading{position:sticky;top:0;z-index:5;margin:-4px -4px 0;padding:16px 18px;border:1px solid #eeeeee;border-radius:20px;background:#fffffff0;box-shadow:#0f172a0d 0 12px 28px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.entity-form{display:grid;gap:16px}.entity-form-section{padding:18px;border:1px solid #eeeeee;border-radius:20px;background:#fff;box-shadow:#0f172a0a 0 10px 28px}.entity-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f0f0f0}.entity-section-title strong{color:#222;font-size:16px;font-weight:850}.entity-section-title span{max-width:520px;color:#9aa0a6;font-size:12px;font-style:italic;line-height:1.5;text-align:right}.room-status-readonly{display:inline-flex;align-items:center;gap:10px;margin-bottom:14px;padding:8px 12px;border:1px solid #eeeeee;border-radius:12px;background:#fafafa}.room-video-upload{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.room-video-preview{display:inline-flex;align-items:center;gap:10px;padding:6px 10px;border:1px solid #ffccc7;border-radius:8px;background:#fff2f0}.room-video-name{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#595959;font-size:13px}.room-status-readonly span{color:#777;font-size:13px;font-weight:700}.entity-form-section .ant-form-item{margin-bottom:14px}.entity-form-section .ant-input,.entity-form-section .ant-input-number,.entity-form-section .ant-select-selector,.entity-form-section .ant-input-affix-wrapper,.entity-form-section textarea.ant-input{border-radius:12px!important}.entity-form-heading{position:static;display:grid;gap:12px}.entity-section-title{display:grid}.entity-section-title span{max-width:none;text-align:left}}.room-structure-page .floor-distribution-panel{padding:16px}.room-structure-page .floor-nav-row-card{margin-bottom:14px;padding:16px}.room-structure-page .floor-selector-header{align-items:flex-start;padding-bottom:14px}.room-structure-page .floor-selector-header>div:first-child{display:grid;gap:4px}.room-structure-page .floor-selector-header>div:first-child>span{color:#777;font-size:12px;font-weight:800;letter-spacing:.08em}.room-structure-page .floor-selector-header h2{margin:0;color:#222;font-size:20px;font-weight:850;line-height:1.2}.room-structure-page .floor-selector-header .status-legend-inline{display:inline-flex;flex:0 0 auto;align-items:center;gap:10px;margin-top:2px;padding:8px 10px;border:1px solid #eeeeee;border-radius:999px;background:#fff}.room-structure-page .floor-selector-header .status-legend-inline span{display:inline-flex;align-items:center;gap:5px;color:#666;font-size:12px;line-height:1;white-space:nowrap}.room-structure-page .floor-nav-strip{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;padding-top:12px}.room-structure-page .floor-nav-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:10px;max-height:48px;overflow:hidden}.room-structure-page .floor-nav-button{display:flex;width:auto;min-height:46px;justify-content:center;padding:6px;border:1px solid #e9e9e9;border-radius:16px;background:linear-gradient(180deg,#fff,#f8f8f8);box-shadow:inset 0 0 0 1px #fffc,#0f172a0a 0 6px 14px}.room-structure-page .floor-nav-button:before{content:none}.room-structure-page .floor-nav-button strong{width:100%;height:32px;border-radius:12px;background:#ffffffb8;color:#252525;font-size:14px;font-weight:850}.room-structure-page .floor-nav-button:hover{border-color:#ddd;background:#fff;box-shadow:#0f172a14 0 8px 18px;transform:translateY(-1px)}.room-structure-page .floor-nav-button.is-active{border-color:#ff6f8b;background:#fff6f8;box-shadow:#ff385c2e 0 10px 22px,#ff385c1f 0 0 0 1px}.room-structure-page .floor-nav-button.is-active strong{background:linear-gradient(180deg,#ff4f72,#ff3158);color:#fff;box-shadow:inset #ffffff3d 0 1px}.room-structure-page .floor-nav-strip.is-expanded .floor-nav-list{max-height:none;overflow:visible}.room-structure-page .floor-nav-more{height:46px;padding:0 14px;border:1px solid #ffd3dc;border-radius:16px;background:#fff6f8;color:#e00b41;cursor:pointer;font-size:13px;font-weight:850;white-space:nowrap;box-shadow:#ff385c14 0 8px 18px}.room-structure-page .floor-nav-more:hover{border-color:#ff9aad;background:#fff0f4}.room-structure-page .floor-scroll-area{gap:16px}@media (max-width: 900px){.room-structure-page .floor-selector-header{display:grid}.room-structure-page .floor-selector-header .status-legend-inline{width:100%;flex-wrap:wrap;justify-content:flex-start;border-radius:14px}.room-structure-page .floor-nav-strip{grid-template-columns:1fr}.room-structure-page .floor-nav-more{width:100%}}.room-structure-page .floor-section-card{padding:18px;border:1px solid #e8e8e8;border-radius:20px;background:#fff}.room-structure-page .floor-section-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid #f0f0f0}.room-structure-page .floor-section-header h3{margin:0;color:#222;font-size:24px;font-weight:850;line-height:1}.room-structure-page .floor-section-stats{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.room-structure-page .floor-section-stats span{min-height:30px;padding:7px 11px;border-radius:999px;background:#f7f7f7;color:#555;font-size:12px;font-weight:750;line-height:1}.room-structure-page .room-card-grid{gap:12px}.room-structure-page .room-card{min-height:150px;gap:10px;padding:14px;border-color:#ececec;border-radius:18px}.room-structure-page .room-card-top{gap:10px}.room-structure-page .room-card-info-row strong{font-size:20px}.room-structure-page .room-card-info-row .room-card-type{font-size:13px}.room-structure-page .room-card-status{min-height:26px;padding:5px 9px}.room-structure-page .room-action-button.ant-btn{height:30px;padding-inline:12px}@media (max-width: 760px){.room-structure-page .floor-section-header{display:grid}.room-structure-page .floor-section-stats{justify-content:flex-start}}.room-structure-page .structure-filter{margin-bottom:10px}.room-structure-page .floor-nav-row-card{margin-bottom:12px}.room-structure-page .floor-selector-header{align-items:center}.room-structure-page .floor-selector-header>div:first-child{min-width:0}.room-structure-page .floor-selector-header h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-structure-page .floor-nav-strip{display:flex;gap:10px;align-items:flex-start}.room-structure-page .floor-nav-list{display:flex;flex:1 1 auto;flex-wrap:nowrap;gap:10px;min-width:0;overflow:visible}.room-structure-page .floor-nav-strip.is-expanded .floor-nav-list{flex-wrap:wrap;max-height:none;overflow:visible}.room-structure-page .floor-nav-button{flex:0 0 72px;width:72px}.room-structure-page .floor-nav-more{flex:0 0 auto}@media (max-width: 900px){.room-structure-page .floor-selector-header{align-items:flex-start}.room-structure-page .floor-selector-header h2{white-space:normal}.room-structure-page .floor-nav-strip{display:grid;grid-template-columns:minmax(0,1fr) auto}.room-structure-page .floor-nav-more{width:auto}}.room-structure-page .structure-filter{margin-bottom:8px}.room-structure-page .structure-workspace{margin-top:0}.room-structure-page .floor-distribution-panel{padding:10px 16px 16px}.room-structure-page .floor-nav-row-card{margin-bottom:14px;padding:14px 18px 12px}.room-structure-page .floor-selector-header{padding-bottom:12px}.room-structure-page .floor-nav-strip{padding-top:10px}.room-structure-page .floor-nav-list{padding-bottom:0}.room-structure-page .floor-nav-button{min-height:50px;padding:5px}.room-structure-page .floor-nav-button strong{height:38px;line-height:38px}.room-structure-page .floor-distribution-panel,.room-structure-page .floor-nav-row-card,.room-structure-page .floor-board-layout{overflow:visible}.room-structure-page .floor-nav-row-card{padding-bottom:16px}.room-structure-page .floor-nav-strip{min-height:58px;align-items:center;padding-top:8px}.room-structure-page .floor-nav-list{align-items:center;padding:2px 0}.room-structure-page .floor-nav-strip.is-expanded .floor-nav-list{flex-wrap:wrap}.room-structure-page .floor-nav-button{height:48px;min-height:48px;padding:5px}.room-structure-page .floor-nav-button strong{height:36px;line-height:36px}.room-structure-page .floor-nav-more{height:48px}.room-structure-page .floor-nav-row-card{margin-bottom:12px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.room-structure-page .floor-selector-header{padding:0 0 12px}.room-structure-page .floor-nav-strip{padding-top:8px}.room-structure-page .floor-scroll-area{padding-top:0}.room-structure-page .floor-nav-strip{min-height:56px;overflow:visible}.room-structure-page .floor-nav-list{height:auto;min-height:50px;max-height:none;overflow:visible}.room-structure-page .floor-nav-button{overflow:visible}.room-structure-page .floor-scroll-area{margin-top:0}.room-structure-page .floor-scroll-area{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.room-structure-page .floor-section-card{gap:12px;padding:14px;border-radius:18px}.room-structure-page .floor-section-header{gap:10px;margin-bottom:10px;padding-bottom:10px}.room-structure-page .floor-section-header h3{font-size:22px}.room-structure-page .floor-section-stats{gap:6px}.room-structure-page .floor-section-stats span{min-height:26px;padding:6px 9px;font-size:11px}.room-structure-page .room-card-grid{grid-template-columns:1fr;gap:10px}.room-structure-page .room-card{min-height:118px;gap:8px;padding:12px;border-radius:16px}.room-structure-page .room-card:before{top:12px;right:12px;width:7px;height:7px}.room-structure-page .room-card-unit{min-height:22px;padding:4px 8px;font-size:11px}.room-structure-page .room-card-top span{font-size:12px}.room-structure-page .room-card-info-row strong{font-size:18px}.room-structure-page .room-card-info-row .room-card-type{font-size:12px}.room-structure-page .room-card-status{min-height:24px;padding:4px 8px;font-size:11px}.room-structure-page .room-action-button.ant-btn{height:28px;padding-inline:10px;font-size:12px}.room-structure-page .room-detail-button.ant-btn{height:22px;font-size:11px}@media (max-width: 1500px){.room-structure-page .floor-scroll-area{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 980px){.room-structure-page .floor-scroll-area{grid-template-columns:1fr}}.room-structure-page .floor-scroll-area{grid-template-columns:1fr}.room-structure-page .room-card-grid{grid-template-columns:repeat(6,minmax(0,1fr))}@media (max-width: 1680px){.room-structure-page .room-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width: 1180px){.room-structure-page .room-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 760px){.room-structure-page .room-card-grid{grid-template-columns:1fr}}.drawer-form .ant-row{row-gap:2px}.drawer-form .ant-form-item{margin-bottom:16px}.drawer-form .ant-input,.drawer-form .ant-input-number,.drawer-form .ant-select-selector,.drawer-form .ant-input-affix-wrapper,.drawer-form textarea.ant-input{border-radius:12px!important}.drawer-form .ant-input-number{width:100%}.room-structure-pro-page{display:grid;gap:12px}.room-structure-pro-page .structure-filter{display:grid;grid-template-columns:minmax(240px,1.1fr) minmax(200px,.95fr) 126px minmax(510px,1.55fr);gap:10px;align-items:center;margin-bottom:0;padding:12px 14px;border:1px solid #e7e7e7;border-radius:14px;background:#fff;box-shadow:none}.room-structure-pro-page .structure-filter .ant-input-affix-wrapper{grid-column:1 / 3}.room-structure-pro-page .structure-filter .ant-select,.room-structure-pro-page .structure-filter .ant-input-affix-wrapper,.room-structure-pro-page .structure-filter .ant-segmented{min-height:40px}.room-structure-pro-page .structure-filter .ant-select-selector,.room-structure-pro-page .structure-filter .ant-input-affix-wrapper{border-radius:10px!important;background:#fbfbfb!important}.room-structure-pro-page .structure-filter .ant-segmented{display:flex;align-items:center;padding:2px;border-radius:10px;background:#f5f5f5}.room-structure-pro-page .structure-filter .ant-segmented-group{width:100%}.room-structure-pro-page .structure-filter .ant-segmented-item{flex:1;min-width:0;border-radius:8px}.structure-pro-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:34px}.structure-pro-heading .ant-typography{margin:0;color:#172033;font-size:22px;font-weight:850}.structure-pro-legend{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.structure-pro-legend span,.room-pro-detail-hero .ant-tag{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:7px;border:1px solid #e8e8e8;background:#fff;color:#6b7280;font-size:12px;font-weight:700}.structure-pro-board{display:grid;grid-template-columns:1fr;gap:12px}.unit-board-card{min-width:0;padding:14px 16px 16px;border:1px solid #e9e9e9;border-radius:18px;background:#fff;box-shadow:0 12px 30px #0f172a09}.unit-board-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.unit-board-header span{display:block;margin-bottom:4px;color:#8a8f98;font-size:13px;font-weight:800}.unit-board-header h3{margin:0;color:#111827;font-size:22px;font-weight:850;line-height:1.08}.unit-board-meta .ant-tag{margin:0;padding:3px 9px;border-radius:999px;border-color:#e5e7eb;color:#6b7280;font-weight:700}.unit-board-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.unit-floor-column{display:grid;gap:6px;min-width:0;padding:0}.unit-floor-row{display:grid;grid-template-columns:48px minmax(0,1fr);gap:6px;align-items:start}.unit-floor-label{display:inline-flex;height:66px;align-items:center;justify-content:center;border-radius:12px;background:#f4f6f9;color:#374151;font-size:13px;font-weight:850}.unit-floor-rooms{display:grid;grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:6px;min-height:66px;align-items:stretch;justify-content:stretch}.unit-floor-empty{display:inline-flex;min-height:66px;align-items:center;color:#c0c4cc;font-size:12px}.room-pro-tile{position:relative;display:grid;min-height:66px;width:100%;align-content:center;gap:4px;padding:8px 7px 7px;border:1px solid #dbe8df;border-radius:12px;background:#fbfffc;cursor:pointer;box-shadow:0 3px 8px #10b9810d;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.room-pro-tile:hover{transform:translateY(-1px);box-shadow:0 10px 18px #0f172a0f}.room-pro-tile strong{color:#172033;font-size:15px;font-weight:850;line-height:1}.room-pro-tile small{color:#78828f;font-size:11px;line-height:1}.room-pro-tile-area{color:#768190;font-size:11px;line-height:1}.room-pro-tile-extra{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:4px}.room-pro-tile-extra em,.room-pro-tile-extra i{overflow:hidden;font-size:10px;font-style:normal;line-height:1;text-overflow:ellipsis;white-space:nowrap}.room-pro-tile-extra em{color:#8a94a3}.room-pro-tile-extra i{flex:0 0 auto;max-width:42px;color:#9ca3af}.room-pro-tile-status{position:absolute;top:5px;right:6px;display:inline-flex;align-items:center;justify-content:center;color:#aab3bf;font-size:11px}.room-pro-tile.is-active{border-color:#ff385c;box-shadow:0 0 0 1px #ff385c2e,0 12px 22px #ff385c1a}.room-pro-tile.is-vacant,.structure-pro-legend .is-vacant,.room-pro-detail-hero.is-vacant .ant-tag{border-color:#9adfb0;background:#fbfffc;color:#177245}.room-pro-tile.is-rented,.structure-pro-legend .is-rented,.room-pro-detail-hero.is-rented .ant-tag{border-color:#b7c9ea;background:#f8fbff;color:#315f9f}.room-pro-tile.is-reserved,.structure-pro-legend .is-reserved,.room-pro-detail-hero.is-reserved .ant-tag{border-color:#f3cf9b;background:#fffaf2;color:#a86416}.room-pro-tile.is-maintenance,.structure-pro-legend .is-maintenance,.room-pro-detail-hero.is-maintenance .ant-tag{border-style:dashed;border-color:#cfd6df;background:#f9fafb;color:#64748b}.room-pro-tile.is-expired,.structure-pro-legend .is-expired,.room-pro-detail-hero.is-expired .ant-tag{border-color:#f0a8b1;background:linear-gradient(180deg,#ff5a75 0 4px,transparent 4px 100%),repeating-linear-gradient(135deg,#ff637a1f 0,#ff637a1f 7px,#ffffffeb 7px,#ffffffeb 16px);color:#b4233c;box-shadow:0 8px 16px #ff385c14}.room-pro-tile.is-locked,.structure-pro-legend .is-locked,.room-pro-detail-hero.is-locked .ant-tag{border-color:#cfd6df;background:repeating-linear-gradient(135deg,#cdd5e057 0,#cdd5e057 7px,#ffffffe6 7px,#ffffffe6 16px);color:#536273}.structure-pro-empty{padding:36px 16px}.room-pro-detail{display:grid;gap:16px}.room-pro-detail-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px;border:1px solid #ececec;border-radius:18px;background:linear-gradient(180deg,#fff,#fafafa)}.room-pro-detail-hero span{color:#777;font-size:12px;font-weight:700}.room-pro-detail-hero h2{margin:6px 0 0;color:#111827;font-size:22px;line-height:1.2}.room-pro-detail-section{display:grid;gap:10px;padding:16px;border:1px solid #efefef;border-radius:18px;background:#fff}.room-pro-detail-section h3{margin:0;color:#111827;font-size:15px}.room-pro-meter-grid,.room-pro-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.room-pro-meter-grid span{min-height:42px;padding:11px 12px;border-radius:14px;background:#f8fafc;color:#475569;font-size:13px}.room-detail-drawer .ant-drawer-body{padding:0;background:#f7f7f7}.room-detail-content{display:grid;gap:12px;padding:16px}.room-detail-hero,.room-detail-section{border:1px solid #ebebeb;border-radius:12px;background:#fff;box-shadow:0 6px 16px #0f172a0a}.room-detail-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start;padding:16px}.room-detail-location{margin-bottom:6px;color:#6a6a6a;font-size:12px;font-weight:700}.room-detail-hero h3.ant-typography{margin:0 0 10px;color:#222;font-size:24px;line-height:1.2}.room-status-badge.ant-tag{display:inline-flex;align-items:center;gap:5px;border-radius:999px;font-weight:800;cursor:pointer}.room-status-badge.is-vacant{border-color:#9adfb0;background:#f2fff6;color:#177245}.room-status-badge.is-rented{border-color:#b7c9ea;background:#f4f8ff;color:#315f9f}.room-status-badge.is-reserved{border-color:#f3cf9b;background:#fff8ec;color:#9b5c11}.room-status-badge.is-maintenance,.room-status-badge.is-locked{border-color:#cfd6df;background:#f8fafc;color:#536273}.room-status-badge.is-expired{border-color:#f0a8b1;background:#fff3f5;color:#b4233c}.room-detail-actions{display:flex;max-width:180px;flex-wrap:wrap;justify-content:flex-end;gap:8px}.room-detail-section{padding:14px}.room-detail-section h3{margin:0 0 12px;color:#222;font-size:15px;font-weight:850}.room-detail-images{min-height:128px}.room-detail-main-image-wrap{position:relative;overflow:hidden;border-radius:12px;background:#f3f4f6;box-shadow:inset 0 0 0 1px #0f172a0a;will-change:transform,opacity}.room-detail-main-image-wrap .ant-image{display:block;width:100%}.room-detail-main-image.ant-image-img{width:100%;aspect-ratio:16 / 9;object-fit:cover;vertical-align:middle}.room-image-nav{position:absolute;top:50%;z-index:2;display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.72);border-radius:999px;background:#2222227a;color:#fff;cursor:pointer;transform:translateY(-50%);transition:background .18s ease,transform .18s ease}.room-image-nav:hover{background:#222222ad;transform:translateY(-50%) scale(1.04)}.room-image-nav.is-prev{left:10px}.room-image-nav.is-next{right:10px}.room-image-counter{position:absolute;right:10px;bottom:58px;z-index:2;padding:3px 8px;border-radius:999px;background:#2222228f;color:#fff;font-size:12px;font-weight:800;will-change:transform,opacity}.room-image-type-switch{position:absolute;right:12px;bottom:12px;left:12px;z-index:3;display:flex;width:fit-content;max-width:calc(100% - 24px);overflow:hidden;border:1px solid rgba(255,255,255,.56);border-radius:999px;background:#2222228f;box-shadow:0 10px 24px #0f172a29;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.room-image-type-switch button{display:inline-flex;min-width:92px;height:34px;align-items:center;justify-content:center;gap:6px;padding:0 13px;border:0;border-radius:999px;background:transparent;color:#ffffffd6;font-size:13px;font-weight:800;letter-spacing:0;cursor:pointer;transition:background .18s ease,color .18s ease,transform .18s ease}.room-image-type-switch button:hover:not(:disabled){color:#fff;transform:translateY(-1px)}.room-image-type-switch button.is-active{background:#fff;color:#222}.room-image-type-switch button:disabled{color:#ffffff61;cursor:not-allowed}.room-image-type-switch span{display:inline-flex;min-width:18px;height:18px;align-items:center;justify-content:center;border-radius:999px;background:#ff385c1f;color:inherit;font-size:11px;line-height:1}.room-detail-video{display:block;width:100%;aspect-ratio:16 / 9;background:#111827;object-fit:contain}.room-detail-video-wrap{background:#111827}.room-detail-thumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto}.room-thumb-button{position:relative;flex:0 0 auto;width:78px;height:56px;overflow:hidden;padding:0;border:2px solid transparent;border-radius:9px;background:#f3f4f6;cursor:pointer;will-change:transform,opacity;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.room-thumb-button:hover{transform:translateY(-1px);box-shadow:0 6px 14px #0f172a1a}.room-thumb-button.is-active{border-color:#ff385c;box-shadow:0 0 0 2px #ff385c1f}.room-thumb-button img{width:100%;height:100%;border-radius:8px;object-fit:cover}.room-thumb-button span{position:absolute;right:5px;bottom:4px;min-width:28px;padding:2px 5px;border-radius:999px;background:#2222228c;color:#fff;font-size:10px;line-height:1.3}.room-disclaimer{margin-top:8px;color:#999;font-size:12px;text-align:center}.room-image-empty-tip{display:grid;min-height:54px;place-items:center;margin-top:10px;border:1px dashed #e5e7eb;border-radius:10px;background:#fafafa;color:#7a7a7a;font-size:13px;font-weight:700}.room-detail-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.room-detail-metric-grid div{min-height:66px;padding:10px 12px;border:1px solid #f0f0f0;border-radius:10px;background:#fbfbfb}.room-detail-metric-grid span{display:block;color:#6a6a6a;font-size:12px}.room-detail-metric-grid strong{display:block;margin-top:7px;color:#222;font-size:16px}.room-facility-list{display:flex;flex-wrap:wrap;gap:8px}.room-facility-list span{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:7px 10px;border:1px solid #ececec;border-radius:10px;background:#fff;color:#3f3f3f;font-size:13px;font-weight:700}.room-facility-list .anticon{color:#ff385c}.room-meter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.room-meter-grid div{display:grid;grid-template-columns:auto 1fr;gap:3px 8px;min-height:58px;padding:10px 12px;border:1px solid #ededed;border-radius:10px;background:#fbfbfb}.room-meter-grid .anticon{grid-row:span 2;margin-top:2px;color:#6a6a6a}.room-meter-grid span{color:#6a6a6a;font-size:12px}.room-meter-grid strong{color:#222;font-size:14px}.room-meter-grid .is-empty{border-style:dashed;background:#fafafa}.room-meter-grid .is-empty strong{color:#9ca3af;font-weight:600}.room-detail-list{display:grid;gap:8px}.room-detail-list>div{display:grid;gap:4px;padding:10px 0;border-bottom:1px solid #f0f0f0}.room-detail-list>div:last-child{border-bottom:0}.room-detail-list strong{color:#222;font-size:13px}.room-detail-list span{color:#6a6a6a;font-size:12px;line-height:1.5}@media (max-width: 720px){.room-detail-hero{grid-template-columns:1fr}.room-detail-actions{max-width:none;justify-content:flex-start}.room-detail-metric-grid,.room-meter-grid{grid-template-columns:1fr}}@media (max-width: 980px){.unit-board-grid{grid-template-columns:1fr}}@media (max-width: 860px){.structure-pro-heading{display:grid}.unit-floor-row{grid-template-columns:44px minmax(0,1fr)}.unit-floor-rooms{grid-template-columns:repeat(auto-fit,minmax(56px,1fr))}}.room-structure-page .structure-filter{grid-template-columns:minmax(200px,1fr) minmax(160px,.9fr) minmax(120px,.62fr) minmax(240px,1fr);align-items:center;row-gap:10px}.room-structure-page .structure-filter .status-filter{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:10px;border-top:1px dashed #f0f0f0}.room-structure-page .status-filter-chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid #ebebeb;border-radius:999px;background:#fff;color:#475569;font-size:13px;line-height:1;white-space:nowrap;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.room-structure-page .status-filter-chip:hover{border-color:#cfcfcf;background:#fafafa}.room-structure-page .status-filter-chip .status-filter-dot{width:8px;height:8px;border-radius:50%;background:var(--status-color, #cbd5e1);flex:0 0 auto}.room-structure-page .status-filter-chip .status-filter-count{font-size:12px;color:#94a3b8;font-variant-numeric:tabular-nums}.room-structure-page .status-filter-chip.is-active{border-color:#ff385c;background:#fff1f3;color:#d81b45;font-weight:500;box-shadow:0 0 0 3px #ff385c14}.room-structure-page .status-filter-chip.is-active .status-filter-count{color:#d81b45;font-weight:500}@media (max-width: 1440px){.room-structure-page .structure-filter{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(120px,.7fr)}.room-structure-page .structure-filter .ant-input-affix-wrapper{grid-column:1 / -1;max-width:none}}@media (max-width: 760px){.room-structure-page .structure-filter{grid-template-columns:1fr}.room-structure-page .structure-filter .ant-input-affix-wrapper,.room-structure-page .structure-filter .status-filter{grid-column:auto}}
