:root{--purple:#2875ce;--purple-dark:#155cae;--bg:#f5f7fb;--ink:#24354b;--muted:#76859a;--line:#eaf0f6}.bowen-brand{gap:9px;padding:0 2px}.bowen-brand>img{width:49px;height:49px;object-fit:contain;flex-shrink:0}.bowen-brand strong{font-size:21px;letter-spacing:1px;white-space:nowrap;color:#253e5c}.bowen-brand small{font-size:8px;letter-spacing:1.8px;color:#91a0b5}.nav-item.active{background:#eaf2fc;color:#2875ce}.nav-item:hover{background:#f0f5fb}.nav-item{color:#708198}.campus{background:#f8fafd;border-color:#e9eff7}.campus-icon{color:#6c95c7}.campus small{color:#8a9bb2;font-size:9px}.sidebar-note{background:linear-gradient(135deg,#f1f6fd,white);border-color:#e5edf9}.sidebar-note:after{border-color:#e9f2fc}.sidebar-note b{color:#5d7b9d}.sidebar-note p{color:#8496ad}.note-orbit{color:#6b98d0}.sidebar-foot{font-size:9px}.header-date{font-size:11px;color:#8592a6;font-variant-numeric:tabular-nums}.avatar.admin{background:#eaf2fb;color:#618bc1}.demo-label{font-size:10px}.topbar{height:76px}.page-heading h1{font-size:26px;font-weight:650;color:#26384f;letter-spacing:.1px}.page-heading p{font-size:12px;color:#8290a3;line-height:1.8;max-width:800px}.eyebrow{display:block;color:#9faec1;letter-spacing:2px;font-size:9px;margin-bottom:7px}.button{font-size:12px;min-height:39px}.button.primary{box-shadow:0 4px 9px #2875ce12}.button:hover{background:#f7faff;border-color:#b5cde9}.text-button{font-size:11px;color:#4c86c8}.text-button:hover{color:#165aa9}.stat-card{padding:18px 20px 0}.stat-card:hover{transform:none;box-shadow:var(--shadow)}.stat-top{font-size:12px;color:#7c8ba0}.stat-value{font-size:32px;color:#2a3d55;margin-top:9px}.stat-foot{font-size:10px;color:#9ba7b8;margin-top:14px}.green-text{color:#4b9f87!important}.blue{background:#edf4fd;color:#5a90cc}.green{background:#eaf6f0;color:#4d9f84}.purple{background:#f0effb;color:#8a7eb9}.orange{background:#fff4e6;color:#c69753}.neutral{background:#f1f4f8;color:#8d9aae}.badge{font-size:10px;padding:4px 8px;line-height:15px;border-radius:5px}.floor-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-bottom:27px}.floor-card{padding:20px 23px;background:white;border:1px solid #e5ecf6;border-radius:11px;text-align:left;position:relative;overflow:hidden}.floor-card.selected{border-color:#9ebee7;background:linear-gradient(110deg,#eef5fd,#fbfdff);box-shadow:0 3px 12px #397bd808}.floor-card.selected:before{content:'';width:4px;position:absolute;left:0;top:22px;bottom:22px;border-radius:5px;background:#4989d3}.floor-level{display:flex;align-items:center;justify-content:space-between;gap:8px}.floor-level strong{font-size:29px;font-weight:600;letter-spacing:-1px;color:#526780}.floor-level strong small{font-size:12px;letter-spacing:0;margin-left:6px;font-weight:500;color:#a1afc1}.floor-card.selected .floor-level strong{color:#3475c0}.floor-summary{display:flex;align-items:center;gap:17px;margin-top:14px;font-size:11px;color:#94a1b4}.floor-summary b{font-weight:500;color:#6e8199}.floor-section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:15px}.floor-section-heading>div{display:flex;align-items:center;gap:17px}.floor-section-heading h2{font-size:17px}.floor-section-heading span{font-size:10px;color:#95a1b3}.room-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:21px;align-items:start}.room-list-panel .toolbar{padding:17px 18px;gap:12px;flex-wrap:wrap}.room-list-panel .search-box{flex:1;min-width:150px;max-width:none}.room-list-panel select{font-size:11px;width:128px;padding-right:18px}.room-list-panel .room-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:18px;gap:16px}.room-list-panel>.empty{min-height:360px;padding:55px 30px}.empty b{font-size:15px;color:#8391a6}.empty>span{font-size:11px;max-width:330px;line-height:1.9;color:#a1adbd}.empty>.icon{width:37px;height:37px;color:#b1c6df}.empty>.button{margin-top:7px}.room-card.bowen-room{padding:19px 17px;background:#fff;min-width:0}.room-card.bowen-room:hover{border-color:#96b9e6;box-shadow:0 4px 14px #377ac40a}.room-card.bowen-room.locked{border-color:#ecd9bb;background:#fffdfa}.room-card.bowen-room.empty{display:block;text-align:left;color:inherit;min-height:0;gap:0}.room-card.bowen-room .room-number{font-size:24px;letter-spacing:.5px;overflow-wrap:anywhere;max-width:70%;color:#50627a}.room-card.bowen-room .room-number small{font-size:10px;color:#98a6b9;font-weight:400;letter-spacing:0}.room-card .badge{font-size:9px;padding:3px 6px}.room-people{margin:20px 0 17px;display:flex;flex-direction:column;gap:9px;min-height:44px}.room-person{display:flex;align-items:center;gap:10px;padding:10px 11px;background:#f9fbfe;border:1px dashed #e4ebf5;border-radius:7px;text-align:left}.room-person>span{width:26px;height:26px;color:#c1ccda;display:grid;place-items:center}.room-person .icon{width:19px;height:19px}.room-person>div{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:7px}.room-person b{font-size:11px;color:#a1afc1;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-person small{font-size:9px;color:#bbc4d1;white-space:nowrap}.room-person.occupied{background:#f1f6fd;border:1px solid #e8eff9}.room-person.occupied>span{color:#83a7d3}.room-person.occupied b{color:#6985a5}.room-person.occupied small{color:#91a8c3}.room-card-bottom{font-size:9px;color:#95a6ba;align-items:center;flex-wrap:wrap;gap:7px}.room-card-bottom>span{display:flex;align-items:center;gap:5px}.room-card-bottom .icon{width:12px;height:12px}.room-card-bottom b{color:#7a96b9;font-size:13px}.room-card-bottom small{font-size:9px;color:#9caec3}.map-side{display:flex;flex-direction:column;gap:18px}.map-panel .panel-heading{padding:20px 20px 16px;align-items:flex-start;flex-wrap:wrap;gap:12px}.map-panel h2{font-size:14px}.map-panel .panel-heading p{font-size:10px;line-height:1.7;color:#9aa9bb}.map-panel .button{font-size:10px;padding:7px 10px;min-height:31px}.plan-placeholder{background:linear-gradient(#e6edf633 1px,transparent 1px),linear-gradient(90deg,#e6edf633 1px,transparent 1px),#fafcff;background-size:22px 22px;min-height:265px;margin:0 18px 19px;border:1px dashed #cfdeef;border-radius:9px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:28px 12px;color:#9aacc2}.blueprint-symbol{width:61px;height:61px;background:#eff5fd;display:grid;place-items:center;border-radius:16px;border:1px solid #e0eaf8;box-shadow:0 5px 15px #4276ae05;transform:rotate(-6deg);margin-bottom:23px}.blueprint-symbol .icon{width:30px;height:30px;color:#aac1de;stroke-width:1.2}.plan-placeholder h3{font-size:14px;font-weight:500;color:#8ba0ba}.plan-placeholder p{font-size:10px;line-height:1.9;margin-top:10px;color:#a1b0c3}.plan-placeholder>span{font-size:9px;color:#b0bfd0;border:1px solid #e7edf6;border-radius:20px;padding:5px 10px;margin-top:19px;background:white}.map-legend{padding:13px 18px;border-top:1px solid #eef2f8;display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap;font-size:9px;color:#9cabbf}.map-legend>span{display:flex;align-items:center;gap:5px}.map-legend i{width:6px;height:6px;border-radius:50%}.dot-empty{background:#6bb59d}.dot-partial{background:#82abe0}.dot-locked{background:#dbb775}.dot-reserved{background:#b3a1d3}.room-guide{padding:18px 19px;border:1px solid #e9eef6;border-radius:9px;background:#f9fbfe}.room-guide b{display:flex;gap:7px;align-items:center;font-size:11px;color:#8da0b9;font-weight:500}.room-guide .icon{width:15px;height:15px}.room-guide p{font-size:10px;color:#a2afc1;line-height:1.9;margin-top:9px}.map-full .panel-heading{padding:24px 28px}.map-full .panel-heading h2{font-size:17px}.map-full .button{font-size:12px;padding:10px 14px}.map-full .plan-placeholder{min-height:400px;margin:0 26px 25px}.map-full .plan-placeholder h3{font-size:20px}.map-full .plan-placeholder p{font-size:12px}.map-full .map-legend{justify-content:flex-start;gap:24px;padding:19px 28px;font-size:11px}.map-full .map-legend i{width:8px;height:8px}.map-controls{display:flex;gap:13px;align-items:center;flex-wrap:wrap;padding:0 20px 18px;color:#8a9bb1;font-size:11px}.map-controls select{max-width:100%;min-width:250px;font-size:11px}.plan-canvas{position:relative;margin:0 18px 18px;line-height:0;user-select:none;background:#f4f7fb;border:1px solid #e9eff6;border-radius:8px;overflow:hidden}.plan-canvas>img{display:block;width:100%;height:auto;pointer-events:none}.plan-canvas.placing{cursor:crosshair;outline:2px dashed #6196d5;outline-offset:3px}.map-full .plan-canvas{margin:0 26px 26px}.map-pin{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;line-height:1.3;border:2px solid white;border-radius:7px;background:#6fa0db;color:white;padding:5px 8px;box-shadow:0 3px 10px #24395e35;font-size:11px;font-weight:600;min-width:38px;max-width:100px;overflow-wrap:anywhere}.map-pin.empty{display:flex;min-height:0;color:white;background:#4eaa8d;gap:3px;padding:5px 8px}.map-pin.locked{background:#d7a34f}.map-pin.reserved{background:#9f83c5}.map-pin.full{background:#6b819d}.map-pin.maintenance{background:#a1acba}.map-pin small{font-size:9px;color:#fff;font-weight:400}.map-pin:hover{box-shadow:0 3px 12px #24395e55;z-index:2}.report-type-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:22px}.report-type-list>div{padding:20px 16px;border-radius:9px;background:#f8fafd;border:1px solid #edf2f8;display:flex;justify-content:space-between;align-items:center;gap:12px}.report-type-list span{font-size:11px;color:#8a9cb4}.report-type-list strong{font-size:23px;font-weight:550;color:#6889b2}.report-type-list small{font-size:10px;color:#98abc4;font-weight:400}.report-explain{font-size:10px;color:#a3afc1;padding:0 20px 23px;line-height:1.9;text-align:center}.room-stats-table{margin-top:23px}table{font-size:12px;line-height:1.7}th{font-size:11px;color:#8698b1;background:#f9fbfe}td{padding:15px 20px;color:#7489a4}.person b{font-size:12px;color:#607998}.person small,.cell-sub{font-size:10px;color:#94a7c0}.tabular{color:#7a91af}.table-scroll th{padding:12px 20px}.tabs{gap:26px}.tab{font-size:12px}.tab.selected span{background:#edf4fc;color:#6e9cd1}.tab.selected{border-color:#2875ce}.search-box input{font-size:12px}.setting-row b{font-size:12px;color:#637b99}.setting-row p{color:#94a4b9;font-size:11px}.settings-panel>p{color:#8799b2}.wide-dialog{width:850px}.modal-header h2{color:#3b5778}.modal-header p{font-size:12px;color:#8da1bb}.modal-body{padding:25px 28px}.modal-body .table-scroll{margin-left:-8px;margin-right:-8px}.modal-body .table-scroll td{padding:15px 13px}.modal-body .table-scroll th{padding:11px 13px}.modal-body .row-actions{gap:13px}.modal-body .person .avatar{width:29px;height:29px}.modal-body .person small{font-size:11px}.modal-body .empty{padding:30px 15px}.modal-body .empty b{font-size:13px}.detail-action-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.detail-action-row .button{font-size:11px}.section-subtitle{font-size:13px;color:#6986a8;margin:26px 0 15px;padding-top:21px;border-top:1px solid var(--line)}.section-subtitle small{font-size:10px;font-weight:400;color:#a1b1c5;margin-left:6px}.small-copy{font-size:11px}.room-note{font-size:12px;line-height:1.8;color:#92a2b8;margin-top:16px}.field>span{font-size:12px;color:#7691b1}.field input,.field select,.field textarea{border-color:#dde7f2;font-size:13px;color:#52749b}.field input:focus,.field select:focus,.field textarea:focus{border-color:#90b3e0}.field input[readonly]{background:#f7f9fc;color:#a1adc1}.form-hint{color:#96a8bf!important;font-size:11px!important}.check-field{display:flex;align-items:center;gap:8px;font-size:12px;color:#7892b1;line-height:1.8}.check-field input{accent-color:#2875ce;width:16px;height:16px;flex-shrink:0}.lock-check{margin-top:23px;padding:15px 16px;background:#f6f9fd;border:1px solid #e5edf7;border-radius:9px;color:#7190b5;flex-wrap:wrap}.lock-check .icon{width:17px;height:17px}.resident-form{border:1px solid #e8eef7;border-radius:10px;margin-top:19px;padding:20px}.resident-form h3{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:550;color:#6b8bb1;margin-bottom:18px}.resident-form h3 span{width:23px;height:23px;display:grid;place-items:center;background:#edf4fd;border-radius:7px;font-size:11px;color:#81a3cb}.archive-row{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:20px;margin-top:25px;align-items:center;font-size:10px;color:#9dabbf}.danger-text{color:#c5868e}.inline-note{background:#f5f8fd;color:#85a0c3;font-size:11px}.restore-summary{display:flex;flex-wrap:wrap;gap:20px;padding:25px;background:#f7faff;color:#7394bd}.restore-summary b{font-size:15px;font-weight:500}.donut{background:conic-gradient(#79a5dd var(--rate),#eaf1fa 0)}.donut-legend i{background:#79a5dd}.donut strong{color:#5376a3}.donut span{color:#94a9c4}.report-bottom{grid-template-columns:minmax(0,1.5fr) minmax(240px,1fr)}.app-footer{color:#a3b1c4}.activity-type{color:#779aca}.activity p{color:#889cb7}.activity small{color:#afbdcf}.activity-dot{background:#a7bfdf}.sidebar .icon-button:hover{background:#f2f7fc}
@media(min-width:1650px){.room-layout{grid-template-columns:minmax(0,1fr) 340px}.room-list-panel .room-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.floor-card{padding:23px 25px}.floor-summary{font-size:12px}.plan-placeholder{min-height:300px}}
@media(max-width:1250px){.bowen-brand>img{width:41px;height:41px}.bowen-brand strong{font-size:19px}.bowen-brand small{font-size:7px;letter-spacing:1.1px}.room-layout{grid-template-columns:minmax(0,1fr) 265px;gap:17px}.room-list-panel .room-grid{grid-template-columns:1fr}.floor-card{padding:18px}.floor-summary{gap:11px;font-size:10px}.floor-level strong{font-size:27px}.stat-foot{font-size:9px}.room-section-heading>div{gap:10px}.map-panel .panel-heading{padding:18px 17px 15px}.map-panel .panel-heading p{font-size:9px}.map-panel .button{font-size:9px;padding:7px 9px}.room-guide p{font-size:10px}.map-legend{font-size:8px;gap:6px;padding:12px 15px}.plan-placeholder{margin:0 15px 16px;min-height:260px}.map-controls{padding:0 15px 14px}.map-controls select{min-width:0}.plan-canvas{margin:0 15px 15px}.report-bottom{grid-template-columns:minmax(0,1fr)}.report-type-list{gap:12px}.report-explain{font-size:11px}.wide-dialog{width:820px}}
@media(max-width:1000px){.bowen-brand strong{font-size:17px}.bowen-brand small{font-size:6px}.bowen-brand>img{width:34px;height:37px}.bowen-brand{gap:6px}.room-layout{grid-template-columns:1fr}.room-list-panel .room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-side{display:grid;grid-template-columns:1fr 1fr;align-items:start}.map-side .room-guide{min-height:170px;padding:22px}.floor-section-heading>div{flex-direction:column;align-items:flex-start;gap:7px}.floor-cards{gap:12px}.floor-card{padding:17px 14px}.floor-level{flex-wrap:wrap}.floor-summary{gap:9px;flex-wrap:wrap;font-size:10px}.floor-summary b{width:100%}.floor-level .badge{font-size:8px;padding:3px 6px}.room-list-panel>.empty{min-height:285px}.room-person>div{flex-direction:column;align-items:flex-start;gap:5px}.room-card.bowen-room .room-number{font-size:22px}.room-layout{gap:18px}.page-heading h1{font-size:24px}.page-heading p{font-size:11px}.stat-foot{font-size:10px}.map-side .plan-placeholder{min-height:220px}}
@media(max-width:760px){.bowen-brand strong{font-size:22px}.bowen-brand small{font-size:8px}.bowen-brand>img{width:45px;height:45px}.bowen-brand{gap:9px}.header-date{display:none}.topbar{height:65px}.page-heading h1{font-size:22px;line-height:1.5}.page-heading p{font-size:11px;line-height:1.9}.eyebrow{font-size:8px;margin-bottom:7px}.heading-actions{flex-wrap:wrap}.stats-grid{gap:12px}.stat-card{padding:17px 15px 0}.stat-value{font-size:30px}.stat-top{font-size:11px}.stat-foot{font-size:9px;min-height:43px;line-height:1.8}.floor-cards{gap:9px;margin-bottom:22px}.floor-card{padding:15px 10px}.floor-level{gap:8px;flex-direction:column;align-items:flex-start}.floor-level strong{font-size:25px}.floor-level strong small{font-size:10px}.floor-level .badge{font-size:8px;padding:3px 4px}.floor-summary{gap:7px;flex-direction:column;align-items:flex-start;font-size:9px;margin-top:12px}.floor-card.selected:before{width:3px;top:15px;bottom:15px}.floor-section-heading h2{font-size:16px}.floor-section-heading span{font-size:9px}.room-list-panel .toolbar{padding:16px}.room-list-panel .search-box{flex-basis:100%;font-size:12px}.room-list-panel select{font-size:11px;width:136px}.room-list-panel .room-grid{grid-template-columns:1fr;padding:16px;gap:14px}.room-card.bowen-room{padding:20px}.room-person>div{flex-direction:row;align-items:center}.room-person b{font-size:12px}.room-person small{font-size:10px}.room-card.bowen-room .room-number{font-size:26px}.room-card .badge{font-size:10px;padding:4px 8px}.room-card-bottom{font-size:10px}.room-card-bottom small{font-size:10px}.room-people{margin:20px 0 18px;gap:9px}.map-side{grid-template-columns:1fr;gap:15px}.map-side .room-guide{min-height:0;padding:18px}.map-panel .panel-heading{padding:20px;align-items:center;flex-wrap:nowrap}.map-panel .panel-heading p{font-size:10px}.map-panel .button{font-size:10px;padding:8px}.plan-placeholder{margin:0 19px 20px;min-height:250px}.map-side .plan-placeholder{min-height:255px}.map-legend{font-size:10px;padding:15px 20px;gap:10px}.room-guide p{font-size:11px}.map-full .panel-heading{padding:20px;align-items:flex-start;flex-wrap:wrap}.map-full .button{font-size:11px;padding:9px 11px}.map-full .plan-placeholder{min-height:340px;margin:0 18px 20px}.map-full .plan-placeholder h3{font-size:17px}.map-full .map-legend{padding:17px 18px;gap:18px;font-size:10px}.map-full .plan-canvas{margin:0 14px 20px}.map-controls{padding:0 18px 17px;gap:12px;font-size:10px}.map-controls select{min-width:0;width:100%;font-size:10px}.map-pin{font-size:9px;padding:4px 6px;min-width:30px}.map-pin small{font-size:8px}.tabs{gap:19px}.tab{font-size:11px}.toolbar .filter-group{width:100%;flex-wrap:wrap}.search-box input{font-size:12px}.report-type-list{gap:9px;padding:17px}.report-type-list>div{padding:15px 10px;flex-direction:column;gap:10px;align-items:flex-start}.report-type-list span{font-size:10px}.report-type-list strong{font-size:24px}.room-stats-table{margin-top:18px}.modal-header h2{font-size:18px}.modal-header p{font-size:11px}.modal-body{padding:22px 19px}.modal-body .table-scroll{margin:0 -7px}.modal-body .table-scroll td{padding:14px 13px}.form-grid{grid-template-columns:1fr}.field>span{font-size:11px}.field input,.field select,.field textarea{font-size:13px;min-height:43px}.resident-form{padding:18px 16px}.resident-form h3{font-size:12px}.lock-check{font-size:11px;gap:7px;padding:14px;flex-wrap:nowrap;align-items:flex-start}.lock-check .icon{margin-top:2px}.lock-check input{margin-top:3px}.check-field{font-size:11px}.modal-footer{flex-wrap:wrap;gap:8px}.modal-footer .button{font-size:11px}.detail-action-row{gap:8px}.detail-action-row .button{font-size:10px;padding:9px 10px}.section-subtitle{font-size:13px;margin-top:22px}.inline-note{font-size:11px;line-height:1.9;align-items:flex-start}.archive-row{flex-wrap:wrap;gap:10px;font-size:10px}.settings-panel h2{font-size:15px}.setting-row p{font-size:11px}.activity p{font-size:11px}.app-footer{font-size:9px;line-height:1.9}.sidebar .campus small{font-size:9px}}
/* The markers share the photograph's coordinate system at every zoom level. */
.plan-viewport{overflow:auto;overscroll-behavior:contain;margin:0 18px 18px;border:1px solid #dfe7ed;border-radius:10px;background:#f4f6f8}
.plan-viewport .plan-canvas{margin:0;border:0;border-radius:0;container-type:inline-size}
.map-full .plan-viewport{margin:0 26px 20px;max-height:80vh}
.map-full .plan-viewport .plan-canvas{margin:0;width:100%}
.map-full .zoom-detail .plan-canvas{width:1280px;max-width:none}
.provided-plan>img{opacity:.65}
.plan-caption{position:absolute;left:45%;top:15%;width:42%;line-height:1.7;color:#304c67;background:#f5f7f9ed;padding:3%;border-radius:12px;pointer-events:none}
.plan-caption>span{font-size:clamp(7px,1.15cqw,15px);letter-spacing:.15em;color:#69829b}
.plan-caption>strong{display:block;font-size:clamp(28px,9cqw,115px);font-weight:550;line-height:1.3;letter-spacing:-.04em}
.plan-caption>strong>small{font-size:.28em;margin-left:7px;letter-spacing:0}
.plan-caption>b{font-size:clamp(10px,2.2cqw,28px);font-weight:500}
.plan-caption>p{font-size:clamp(7px,1.4cqw,18px);margin-top:1.2em;color:#637c94}
.map-full .map-pin,.map-full .map-pin.empty{width:6.1%;height:2.9%;min-width:0;min-height:0;padding:0;gap:0;border:1px solid #fff;border-radius:5px;font-size:clamp(7px,1.25cqw,16px);box-shadow:0 2px 5px #20395035;line-height:1.15;overflow:visible}
.map-pin>b,.map-pin.empty>b{font-weight:650;white-space:nowrap;color:#fff;font-size:inherit}
.map-full .map-pin>small{font-size:clamp(5px,.8cqw,10px);line-height:1.1;margin-top:2px;white-space:nowrap}
.map-full .map-pin:focus-visible{z-index:5;outline:3px solid #1c4b7a;outline-offset:2px}
.map-thumbnail .map-pin,.map-thumbnail .map-pin.empty{width:7px;height:7px;min-width:0;min-height:0;padding:0;border:1px solid white;border-radius:50%;gap:0}
.map-thumbnail .map-pin>b,.map-thumbnail .map-pin>small{display:none}
.map-thumbnail .map-pin:focus-visible{outline:3px solid #2875ce;outline-offset:2px}
.map-zoom{display:flex;gap:6px}.map-zoom .button{padding:7px 11px}
.map-full .map-controls>span{width:100%}.map-controls select{color:#526e8c}
.plan-footnote{padding:0 26px 18px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#7389a0;font-size:12px;line-height:1.8}
.map-legend{flex-wrap:wrap}.map-legend .dot-full{background:#6b819d}.map-legend .dot-maintenance{background:#a1acba}
@media(max-width:760px){.map-full .plan-viewport{margin:0 14px 16px;max-height:70vh}.plan-footnote{padding:0 18px 16px;font-size:11px}.plan-caption{border-radius:5px}.map-full .map-pin,.map-full .map-pin.empty{border-radius:3px}.map-full .map-controls select{font-size:12px}.map-thumbnail .map-pin,.map-thumbnail .map-pin.empty{width:8px;height:8px}.map-full .map-legend{gap:12px}}
.provided-plan>img{opacity:1}.map-full .plan-viewport:not(.zoom-detail) .provided-plan{width:min(100%,calc(72vh * 1280 / 1387));margin:0 auto}.provided-plan .plan-caption{background:#fff;box-shadow:0 5px 30px #a3b9ca22;border:1px solid #e0ebf4}.plan-footnote a{white-space:nowrap}
/* Vector floor plan: labels and room boundaries share one SVG coordinate system. */
.schematic-panel{overflow:hidden}.schematic-panel .panel-heading{padding:23px 25px}.schematic-panel .panel-heading p{font-size:12px;line-height:1.7;color:#6c8096}.schematic-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:0 25px 18px}.schematic-toolbar select{font-size:12px;min-height:38px;max-width:100%}.schematic-toolbar>span{width:100%;color:#6d8297;font-size:12px}.schematic-viewport{overflow:auto;overscroll-behavior:contain;max-height:76vh;margin:0 24px;background:#f7fafc;border:1px solid #d8e2ec;border-radius:12px;scrollbar-gutter:stable;outline-offset:2px}.schematic-canvas{width:100%;line-height:0}.schematic-canvas.zoom-readable{min-width:1000px}.schematic-canvas.zoom-detail{width:max(100%,1600px)}.floor-vector{display:block;width:100%;height:auto;font-family:'Microsoft YaHei','PingFang SC',sans-serif;user-select:none}.floor-vector text{text-anchor:middle;dominant-baseline:central;pointer-events:none}.floor-room{cursor:pointer;outline:none}.floor-room-box{fill:#edf8f1;stroke:#9bc7af;stroke-width:2}.floor-number{font-size:18px;font-weight:700;fill:#20583f}.wide-room .floor-number{font-size:26px}.floor-occupancy{font-size:12px;fill:#44705b}.wide-room .floor-occupancy{font-size:16px}.floor-room:hover .floor-room-box,.floor-room:focus .floor-room-box{stroke:#236bc1;stroke-width:4;filter:drop-shadow(0 2px 3px #30567b33)}.floor-room:focus .floor-number{fill:#175eaf}.state-partial .floor-room-box{fill:#eaf3ff;stroke:#8cb8e3}.state-partial text{fill:#255e96}.state-full .floor-room-box{fill:#e9eff6;stroke:#9eb2c9}.state-full text{fill:#46617d}.state-locked .floor-room-box{fill:#fff3df;stroke:#d9b06a}.state-locked text{fill:#805b1e}.state-reserved .floor-room-box{fill:#f2edfc;stroke:#b7a4d6}.state-reserved text{fill:#69508c}.state-maintenance .floor-room-box{fill:#f0f1f3;stroke:#bac2ca;stroke-dasharray:5 4}.state-maintenance text{fill:#656f7c}.floor-room.absent{cursor:default}.floor-room.absent rect{fill:#f1f4f7;stroke:#c9d3df;stroke-dasharray:5 4}.floor-room.absent text{fill:#8395a5;font-size:15px}.floor-common rect{fill:#dfe8f1;stroke:#bccddc;stroke-width:2}.floor-common text{fill:#5c768d;font-size:20px}.floor-common .floor-common-sub{font-size:17px}.floor-corridor text{fill:#879db1;font-size:17px;letter-spacing:6px}.floor-title text{text-anchor:start;fill:#60788e;font-size:23px}.floor-title .floor-eyebrow{font-size:17px;letter-spacing:4px;fill:#879cad}.floor-title .floor-level-title{font-size:104px;fill:#294760;font-weight:650}.floor-title .floor-level-unit{font-size:30px;font-weight:500}.floor-title .floor-heading{font-size:29px;fill:#3a576f;font-weight:550}.schematic-panel .map-legend{justify-content:flex-start;padding:18px 25px;gap:20px;font-size:12px}.schematic-custom{margin:0 25px 22px;color:#71869a;font-size:12px}.schematic-custom summary{cursor:pointer;padding:10px 0}.schematic-custom p{margin:8px 0 12px}.schematic-unplaced{margin:0 25px 20px;padding:15px;border:1px solid #dfe7f0;border-radius:9px;color:#6a8097;font-size:12px}.schematic-unplaced p{margin:8px 0 12px}.schematic-unplaced .button{margin:4px}.schematic-open{margin:0 20px 14px}.schematic-thumbnail .panel-heading{padding:18px}.schematic-thumbnail .schematic-viewport{margin:0 14px;max-height:none;scrollbar-gutter:auto}.schematic-thumbnail .map-legend{font-size:10px;gap:9px;padding:15px}.compact-vector .floor-occupancy{display:none}.compact-vector .floor-number{font-size:23px}.compact-vector .wide-room .floor-number{font-size:32px}.schematic-expanded{position:fixed;inset:16px;z-index:100;overflow:auto;box-shadow:0 0 0 30px #1d355a66,0 12px 40px #21385333}.schematic-expanded .schematic-viewport{max-height:calc(100vh - 230px)}
@media(max-width:760px){.schematic-panel .panel-heading{padding:18px;flex-wrap:wrap}.schematic-panel .panel-heading h2{font-size:16px}.schematic-panel .panel-heading p{font-size:11px}.schematic-toolbar{padding:0 18px 15px;gap:10px}.schematic-toolbar .button{font-size:11px;padding:8px 10px}.schematic-toolbar select{width:100%}.schematic-toolbar>span{font-size:11px}.schematic-viewport{margin:0 14px;max-height:65vh}.schematic-panel .map-legend{padding:15px 18px;gap:13px;font-size:11px}.schematic-custom{margin:0 18px 18px}.schematic-expanded{inset:6px}.schematic-expanded .schematic-viewport{max-height:calc(100vh - 300px)}}
.schematic-full .schematic-canvas.zoom-fit{width:min(100%,calc((76vh - 20px) * 1280 / 1120));margin:auto}.schematic-expanded .schematic-canvas.zoom-fit{width:min(100%,calc((100vh - 250px) * 1280 / 1120))}
@media(max-width:760px){.schematic-full .schematic-canvas.zoom-fit{width:100%}.schematic-expanded .schematic-canvas.zoom-fit{width:100%}}
.sidebar-note::after{content:none;display:none}.sidebar-note .note-orbit{position:static;display:flex;align-items:center;justify-content:flex-start;margin:0 0 12px;line-height:1}.sidebar-note .note-orbit .icon{width:20px;height:20px}.sidebar-note b{display:block;line-height:1.6}.sidebar-note p{position:relative;line-height:1.9}
.checkin-steps{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:20px;color:#456f9e;font-size:12px}.checkin-steps span{padding:8px 12px;border-radius:6px;background:#edf4fc}.checkin-location{padding:20px;background:#f8fafd;border:1px solid #e0e9f3;border-radius:10px}.checkin-location-hint{margin-top:14px;font-size:12px;line-height:1.8;color:#7289a1}.checkin-location select:disabled{background:#f0f3f7;color:#96a6b8}.registration-details{border:0;min-width:0;padding:0;margin:24px 0 0}.registration-details[hidden]{display:none}.registration-details legend{font-size:14px;font-weight:600;color:#426487;margin:0 0 18px;padding:0}.registration-details .form-hint{margin-top:15px!important}.registration-details .resident-form{margin-top:18px}
@media(max-width:760px){.checkin-steps{gap:7px;font-size:10px}.checkin-steps span{padding:7px 8px}.checkin-location{padding:16px}.checkin-location-hint{font-size:11px}.registration-details legend{font-size:13px}}
