:root{--ink:#263d58;--blue:#356493;--blue-hover:#2b567f;--blue-soft:#eef4fb;--paper:#f5f8fc;--muted:#68788c;--line:#dce4f0;--white:#fff;--danger:#a63838;--shadow:0 8px 28px #112b5008}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.6}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}button:disabled{cursor:not-allowed;opacity:.45}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.4;letter-spacing:-.025em}img{display:block;max-width:100%}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #5287c9;outline-offset:3px}
.site-header{height:66px;background:var(--blue);color:#fff}.header-inner{max-width:1160px;padding:0 18px;margin:auto;display:flex;height:100%;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:8px;font-weight:650;font-size:19px;white-space:nowrap}.brand img{width:32px;height:32px}.header-inner nav{display:none;align-items:center;gap:28px}.admin-link{font-size:13px;color:#d1dceb;white-space:nowrap}.page-shell{max-width:1160px;padding:0 16px;margin:0 auto}.text-button{border:0;background:transparent;padding:9px 0;color:var(--blue);font-size:14px;min-height:42px}.button{border:1px solid transparent;border-radius:12px;padding:12px 20px;display:inline-flex;align-items:center;justify-content:center;gap:18px;font-weight:600;font-size:15px;min-height:48px;transition:background .18s}.button.primary{color:#fff;background:var(--blue)}.button.primary:hover{background:var(--blue-hover)}.button.quiet{background:#fff;border-color:var(--line)}.button.quiet:hover{background:var(--blue-soft)}.button.light{background:#fff;color:var(--blue)}.button.full{width:100%;justify-content:space-between;margin-top:24px}.button.small{min-height:42px;padding:9px 13px;font-size:14px}
/* A compact first-screen tour leads immediately into the main selection entries. */
.tour-teaser{position:relative;border-radius:20px;overflow:hidden;background:var(--blue);height:194px;margin:20px 0 26px;color:#fff;isolation:isolate}.tour-teaser>img{width:100%;height:100%;object-fit:cover;object-position:center 53%}.tour-teaser:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#294f7ae6 0%,#35649380 62%,#35649320);z-index:0}.tour-teaser-copy{position:absolute;z-index:1;inset:24px auto 22px 22px;display:flex;flex-direction:column;align-items:flex-start}.tour-type{font-size:13px;font-weight:500;color:#d5e2f4;letter-spacing:.04em}.tour-teaser h2{font-size:23px;font-weight:600;margin:8px 0 17px}.tour-teaser-button{background:#fff;color:var(--blue);border:0;border-radius:9px;padding:9px 15px;min-height:42px;display:flex;gap:22px;align-items:center;font-size:14px;font-weight:600}.teaser-badge{position:absolute;z-index:1;right:13px;bottom:13px;font-size:12px;color:#fff;padding:3px 9px;background:#112b5099;border:1px solid #ffffff44;border-radius:20px}.tour-teaser.compact{height:162px;margin:0 0 24px}.compact .tour-teaser-copy{inset:17px auto 17px 20px}.compact h2{font-size:21px;margin:5px 0 11px}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:17px}.section-heading h1{font-size:24px;font-weight:650}.section-heading p{font-size:14px;color:var(--muted);margin-top:5px}.section-heading .back-link{margin:0;white-space:nowrap}.directory-grid{display:grid;gap:12px}.profession-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.directory-card{background:#fff;border:1px solid var(--line);border-radius:16px;display:flex;align-items:center;gap:10px;padding:18px 15px;min-width:0;transition:background .18s,border-color .18s;box-shadow:var(--shadow)}.directory-card:hover{background:#edf3fc;border-color:#9eb8db}.profession-card{min-height:94px}.profession-card:first-child{grid-column:1/-1;min-height:100px;background:#e7eef9;border-color:#d2dff2;padding:20px}.directory-icon{height:38px;width:38px;flex-shrink:0;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);border-radius:11px;font-size:19px;font-weight:600}.profession-card:first-child .directory-icon{background:var(--blue);color:#fff;width:46px;height:46px}.directory-card h2{font-size:19px;font-weight:650;white-space:nowrap}.profession-card:first-child h2{font-size:22px}.card-arrow{font-size:18px;margin-left:auto;color:#456895}.dormitory-grid{grid-template-columns:1fr}.dormitory-entry{padding:22px;min-height:118px;gap:18px}.dormitory-entry .directory-icon{width:50px;height:50px;font-size:28px}.dormitory-entry h2{font-size:23px}.directory-copy p{font-size:14px;color:var(--muted);margin-top:4px}.empty-directory{grid-column:1/-1;padding:28px;border:1px dashed var(--line);border-radius:16px;text-align:center;background:#fff}.empty-directory>span{font-size:30px}.empty-directory h3{font-size:19px;margin-top:8px}.empty-directory p{color:var(--muted);font-size:14px;margin:10px 0}.site-footer{text-align:center;font-size:12px;color:#7b8ca4;padding:25px 0 28px;margin-top:28px}
.back-link{display:inline-flex;align-items:center;margin-top:19px;font-size:14px;color:var(--muted);min-height:32px}.activity-heading{display:flex;justify-content:space-between;align-items:flex-start;margin:12px 0 20px;gap:12px}.activity-heading h1{font-size:24px}.activity-heading p{font-size:14px;color:var(--muted);margin-top:6px}.outline-pill{border:1px solid #cad9ed;background:#eaf0f9;border-radius:20px;padding:5px 10px;font-size:12px;color:#456080;white-space:nowrap;margin-top:4px}.testing-note{padding:12px 14px;background:#e6edf8;border:1px solid #d4e0f1;border-radius:12px;margin-bottom:20px;font-size:13px;color:#536c8f;line-height:1.8}.testing-note strong{display:block;font-weight:600}.testing-note span{display:block}.stepper{display:flex;padding:0;list-style:none;gap:8px;margin:0 0 23px}.stepper li{display:flex;align-items:center;gap:6px;flex:1;font-size:12px;color:#8592a8;white-space:nowrap}.stepper li:not(:last-child):after{content:"";flex:1;border-top:1px solid var(--line);margin-left:2px}.stepper span{display:grid;place-items:center;width:25px;height:25px;flex-shrink:0;border:1px solid var(--line);border-radius:50%;font-size:11px}.stepper li.active{color:var(--blue);font-weight:600}.stepper li.active span{color:#fff;background:var(--blue);border-color:var(--blue)}.stepper li.done span{background:var(--blue-soft);color:var(--blue);border-color:#b9cee9}
.verification-layout,.info-panel{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.form-panel{padding:26px 22px}.form-panel h2{font-size:23px;margin-bottom:8px}.muted{color:var(--muted);font-size:14px;line-height:1.75}.form-panel label{display:block;font-size:14px;font-weight:500;margin:24px 0 9px}.phone-input,.code-input{display:flex;align-items:center;background:#f7f9fd;border:1px solid #cbd7e8;border-radius:11px;overflow:hidden}.phone-input>span{padding:0 14px;border-right:1px solid var(--line);font-size:15px}.phone-input input,.code-input input{width:100%;min-width:0;border:0;background:transparent;padding:14px;font-size:16px;outline:none!important}.phone-input:focus-within,.code-input:focus-within{box-shadow:0 0 0 3px #d2e2f9;border-color:#6994c9}.code-input .text-button{flex-shrink:0;font-size:13px;padding:9px 12px}.change-phone{display:block;margin:13px auto 0;color:var(--muted)}.verification-image{display:none}.info-panel{max-width:620px;margin:0 auto}.dynamic-field{display:block;width:100%;border:1px solid #cbd7e8;background:#f7f9fd;border-radius:11px;padding:13px 14px;margin-top:9px;font-size:16px}.info-panel>.text-button{margin-top:12px;color:var(--muted)}
.map-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.map-header h2{font-size:24px}.map-tabs{display:flex;gap:8px;overflow:auto;margin-bottom:18px;padding-bottom:4px;scrollbar-width:thin}.map-tabs button{flex-shrink:0;border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 16px;font-size:14px;min-height:43px;white-space:nowrap}.map-tabs button.active{background:var(--blue);border-color:var(--blue);color:#fff}.selection-layout{display:grid;grid-template-columns:1fr;gap:18px;align-items:start}.seat-panel{min-width:0}.seat-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:15px}.legend{display:flex;gap:15px;font-size:13px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:11px;height:11px;border-radius:3px;border:1px solid #9cb6d9;background:#eaf1fb}.legend .occupied{background:#dce1e9;border-color:#c6cfdb}.legend .selected{background:var(--blue);border-color:var(--blue)}.available-count{font-size:12px;color:#526c92;white-space:nowrap}.room-filters{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:19px}.search-field{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 11px;width:55%;max-width:280px}.search-field>span{font-size:22px;color:#6683ac;line-height:1}.search-field input{width:100%;min-width:0;padding:0;font-size:16px;border:0;background:transparent;outline:none!important}.checkbox-label{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--muted);white-space:nowrap}.checkbox-label input{accent-color:var(--blue);width:17px;height:17px}.layout-note,.map-empty{font-size:12px;color:var(--muted);line-height:1.8;margin-top:18px}.map-empty{text-align:center;padding:20px}.classroom-row{display:flex;gap:8px;overflow:auto;padding:0 16px 16px}.classroom-seat{flex-shrink:0;width:48px;height:48px;border:1px solid #a9bfdc;background:var(--blue-soft);border-radius:8px;font-size:14px}.classroom-seat.selected{background:var(--blue);color:#fff}.classroom-seat.occupied{background:#e5e8ed;opacity:1;color:#8893a4}.classroom-seat.blank{visibility:hidden}.selection-card{display:none}.has-selection .selection-card{position:fixed;z-index:10;bottom:0;left:0;right:0;padding:13px 17px calc(13px + env(safe-area-inset-bottom));border-top:1px solid #c8d6e9;box-shadow:0 -8px 30px #112b5012;background:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px}.selection-label{display:none}.selection-card h3{grid-column:1;font-size:17px;margin:0 0 3px}.selection-card p{grid-column:1;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selection-card .button{grid-column:2;grid-row:1/3;width:auto;margin:0;padding:11px 18px;gap:10px;min-height:49px;font-size:15px}.has-selection .site-footer{padding-bottom:110px}
.state-card{max-width:620px;margin:35px auto;text-align:center;background:#fff;border:1px solid var(--line);border-radius:20px;padding:34px 23px}.state-symbol{font-size:35px;color:#6e8bb5}.state-card h2{font-size:24px;margin:15px 0 12px}.state-card>p{font-size:14px;color:var(--muted);margin-bottom:25px}.success-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--blue-soft);color:var(--blue);font-size:27px;margin:0 auto}.result-ticket{background:#edf3fc;border:1px dashed #a8c0df;border-radius:13px;padding:22px 15px;margin:24px 0}.result-ticket>span{display:block;font-size:14px;color:var(--muted)}.result-ticket strong{display:block;font-size:22px;margin:9px 0}.result-ticket small{font-size:12px;color:var(--muted)}.success-card .button{width:100%;margin:8px 0 0}.test-reset-note{display:block;font-size:12px;color:var(--muted);margin-top:15px}
/* Dialogs fit phone screens; essential controls remain comfortably tappable. */
dialog{border:1px solid var(--line);padding:0;border-radius:18px;max-height:94dvh;color:var(--ink);box-shadow:0 20px 80px #061a3540}dialog::backdrop{background:#071b39a6;backdrop-filter:blur(4px)}.confirm-dialog{width:min(500px,calc(100% - 28px));padding:24px}.dialog-heading{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:14px;margin-bottom:15px}.icon-button{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:24px;color:#607898;flex-shrink:0}.confirm-dialog h2{font-size:25px;margin-bottom:12px}.confirm-location{background:var(--blue-soft);border-radius:12px;padding:18px;margin:20px 0}.confirm-location>span{display:block;color:var(--muted);font-size:13px}.confirm-location strong{display:block;font-size:21px;margin-top:5px}#confirm-feedback{font-size:14px;color:var(--danger);margin:14px 0}.dialog-actions{display:grid;grid-template-columns:1fr 1.6fr;gap:10px}.dialog-actions .button{padding:12px 10px;gap:10px}.tour-dialog{width:calc(100% - 16px);max-width:1060px;border-radius:16px}.tour-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 15px}.tour-top h2{font-size:18px}.panorama-wrap{height:49dvh;min-height:240px;position:relative;background:#142339}#panorama,#panorama-fallback{position:absolute;inset:0}#panorama-fallback{background-position:center;background-size:cover;display:grid;place-items:center;color:#fff}#panorama-fallback p{background:#112b50cc;border-radius:10px;padding:16px;max-width:90%;font-size:14px}.tour-badge{position:absolute;top:12px;left:50px;border:1px solid #ffffff33;border-radius:16px;padding:4px 9px;font-size:11px;color:#fff;background:#112b5099;pointer-events:none}.tour-orientation{position:absolute;top:47px;left:50px;background:#112b5099;color:#fff;border-radius:6px;padding:4px 8px;font-size:12px;pointer-events:none}.tour-help{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);color:#fff;background:#112b5099;padding:5px 12px;border-radius:20px;font-size:12px;white-space:nowrap;pointer-events:none}.tour-bottom{padding:13px 15px 16px}.scene-tabs{display:flex;gap:9px}.scene-tabs button{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;align-items:center;border:1px solid var(--line);border-radius:10px;background:#fff;padding:6px;font-size:13px}.scene-tabs button.active{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue);background:var(--blue-soft)}.scene-tabs img{height:43px;width:100%;object-fit:cover;border-radius:5px}.tour-bottom>p{font-size:12px;color:var(--muted);margin-top:12px;line-height:1.65}.tour-hotspot{height:35px;width:35px;background:#ffffffef;border:2px solid #fff;border-radius:50%;box-shadow:0 3px 16px #0004;color:var(--blue);cursor:pointer;display:grid!important;place-items:center}.tour-hotspot:before{content:"↗";font-size:20px}.tour-hotspot span{position:absolute;top:38px;left:50%;transform:translateX(-50%);font-size:13px;background:#112b50cc;color:#fff;border-radius:7px;padding:3px 9px;white-space:nowrap;pointer-events:none}.pnlm-load-box{border-radius:10px!important}.photo-dialog{width:min(900px,calc(100% - 24px));background:#111}.photo-dialog .icon-button{position:absolute;top:13px;right:13px;z-index:2}.photo-dialog img{max-height:85dvh;width:100%;object-fit:contain}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:10000;background:var(--blue);color:white;box-shadow:0 6px 30px #0002;border-radius:11px;padding:12px 18px;font-size:14px;max-width:calc(100% - 32px);width:max-content}.has-selection #toast{bottom:110px}
@media(min-width:700px){.header-inner,.page-shell{padding-left:30px;padding-right:30px}.site-header{height:78px}.brand{font-size:22px;gap:10px}.brand img{width:38px;height:38px}.header-inner nav{display:flex;font-size:14px}.header-inner nav .text-button{color:#d1dceb}.header-inner nav a.current{padding:8px 0;border-bottom:2px solid #adc8ec}.tour-teaser{height:230px;margin-top:30px;margin-bottom:34px}.tour-teaser-copy{inset:32px auto 28px 32px}.tour-teaser h2{font-size:31px;margin:10px 0 22px}.tour-type{font-size:14px}.profession-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.profession-card{padding:24px;min-height:125px;gap:15px}.profession-card:first-child{grid-column:span 2;min-height:125px;padding:24px}.profession-card h2{font-size:23px}.directory-icon{width:45px;height:45px;font-size:22px}.section-heading{margin-bottom:23px}.section-heading h1{font-size:29px}.dormitory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.activity-heading h1{font-size:31px}.activity-heading{margin-bottom:25px}.stepper{max-width:640px;gap:16px;margin-bottom:30px}.stepper li{font-size:14px;gap:10px}.stepper span{width:30px;height:30px;font-size:12px}.verification-layout{display:grid;grid-template-columns:1fr 1fr;min-height:430px}.form-panel{padding:38px}.verification-image{display:block;position:relative;overflow:hidden}.verification-image>img{height:100%;width:100%;object-fit:cover}.verification-image:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#112b50c9,transparent 80%)}.verification-image>div{position:absolute;bottom:34px;left:30px;right:25px;color:#fff;z-index:1}.verification-image h3{font-size:23px;margin-bottom:16px}.illustration-badge{position:absolute;top:16px;right:16px;background:#ffffffd9;color:#536987;border-radius:20px;font-size:12px;padding:4px 9px}.seat-panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px}.tour-teaser.compact{height:164px}.compact .tour-teaser-copy{inset:18px auto 18px 26px}.compact h2{font-size:24px;margin:6px 0 13px}.legend{font-size:14px}.available-count{font-size:13px}.tour-dialog{width:calc(100% - 50px)}.tour-top{padding:17px 23px}.tour-top h2{font-size:22px}.panorama-wrap{height:57dvh;min-height:320px}.tour-bottom{padding:18px 23px}.scene-tabs button{flex:0 1 190px;flex-direction:row;padding:7px;gap:10px}.scene-tabs img{width:65px;height:40px}.state-card{padding:45px 35px}.success-card .button{width:auto;margin:8px 5px}.site-footer{padding:30px 0}}
@media(min-width:1050px){.selection-layout{grid-template-columns:minmax(0,1fr) 250px;gap:23px}.selection-aside{position:sticky;top:20px}.selection-card,.has-selection .selection-card{display:block;position:static;padding:23px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow)}.selection-label{display:block;font-size:13px;color:var(--muted);margin-bottom:11px}.selection-card h3{font-size:20px;margin-bottom:10px}.selection-card p{font-size:14px;white-space:normal;min-height:46px}.selection-card .button{width:100%;margin-top:19px}.has-selection .site-footer{padding-bottom:30px}.tour-teaser{height:235px}.profession-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:360px){.page-shell{padding:0 13px}.tour-teaser h2{font-size:21px}.directory-card{padding:16px 12px;gap:8px}.directory-card h2{font-size:18px}.directory-icon{width:32px;height:35px;font-size:17px}.card-arrow{font-size:15px}.stepper li{font-size:11px}.stepper span{width:23px;height:23px}.has-selection .selection-card{column-gap:9px;padding-left:13px;padding-right:13px}.selection-card .button{padding:11px 13px}.selection-card h3{font-size:15px}}
/* Compact, vertical room plans: two rooms across on phones, three on computers. */
.seat-toolbar{flex-wrap:wrap;row-gap:8px}
.legend .occupied{background:#e2e5ea;border-color:#c9cfd8}
.rooms-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start;max-height:74vh;max-height:min(74dvh,820px);overflow-y:auto;overflow-x:hidden;overflow-anchor:none;padding:2px 4px 4px 0;scrollbar-width:thin;scrollbar-color:#a6b9d3 transparent;-webkit-overflow-scrolling:touch}
.rooms-grid:focus-visible{outline:3px solid #5287c9;outline-offset:3px;border-radius:8px}
.room-card{min-width:0;background:#fff;border:1px solid #d5e1ef;border-radius:13px;overflow:hidden;box-shadow:0 4px 16px #112b5006}
.room-card-heading{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:10px 8px 9px}
.room-card h3{min-width:0;font-size:16px;line-height:1.3;overflow-wrap:anywhere}
.room-card h3 small{display:none}
.room-count{flex-shrink:0;font-size:10px;line-height:1.4;font-weight:500;color:#4b668b;background:#edf3fb;padding:3px 5px;border-radius:8px;white-space:nowrap}
.room-count.full{background:#edf3fb;color:#4b668b}
.room-plan{position:relative;display:flex;flex-direction:column;min-height:clamp(262px,73vw,318px);margin:0 3px;border:1px solid #dae3ef;border-radius:8px;background:repeating-linear-gradient(0deg,#f5f7f9,#f5f7f9 25px,#edf1f5 26px);padding:40px 5px 4px}
.window-mark{position:absolute;top:8px;left:50%;transform:translateX(-50%);height:12px;width:48%;border:1.5px solid #9ab3d0;background:linear-gradient(90deg,#dce9f5 48%,#9ab3d0 48%,#9ab3d0 52%,#dce9f5 52%);border-radius:2px;pointer-events:none}
.window-caption{position:absolute;top:22px;left:50%;transform:translateX(-50%);font-size:10px;line-height:1.4;color:#536b8b;background:transparent;padding:0;white-space:nowrap;pointer-events:none}
.bed-grid{display:grid;flex-shrink:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;position:relative;padding:0 0 6px}
.aisle-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);writing-mode:vertical-rl;color:#8c9bb0;font-size:9px;line-height:1;letter-spacing:2px;pointer-events:none}
.bed{--bed-surface:#edf4fd;--bed-line:#b2c7e1;--bed-text:#24446c;--mattress-surface:#dce9fa;--mattress-line:#8aa9cd;--pillow-surface:#fff;--pillow-line:#adc4df;--frame-line:#7f9fc6;--desk-surface:#d2b99b;--desk-line:#b79b7b;--chair-surface:#dbe6f4;--chair-line:#9eb6d2;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:88px;height:auto;padding:2px;gap:2px;border:1px solid var(--bed-line);border-radius:6px;background:var(--bed-surface);color:var(--bed-text);font-size:12px;font-weight:600;line-height:1.25;box-shadow:0 2px 0 #112b5009;isolation:isolate}
.bed:before,.bed:after{content:none}
.bed.available:hover:not(.selected){background:#e4eefb;border-color:#7b9fcf}
.bed.occupied{--bed-surface:#e2e5ea;--bed-line:#c9cfd8;--bed-text:#647080;--mattress-surface:#d1d6dd;--mattress-line:#aeb7c3;--pillow-surface:#f0f2f5;--pillow-line:#bcc4ce;--frame-line:#a6b0bd;--desk-surface:#c8cdd4;--desk-line:#acb5c0;--chair-surface:#d6dbe2;--chair-line:#b0bac6;background:var(--bed-surface);border-color:var(--bed-line);color:var(--bed-text);opacity:1;box-shadow:none}
.bed.selected{--bed-surface:var(--blue);--bed-line:var(--blue);--bed-text:#fff;--mattress-surface:#cbdff6;--mattress-line:#b5d0ed;--pillow-surface:#f7fbff;--pillow-line:#bbd4ef;--frame-line:#c4d9f1;--desk-surface:#dbc3a5;--desk-line:#bba080;--chair-surface:#d4e4f5;--chair-line:#aec9e8;background:var(--bed-surface);border-color:var(--bed-line);color:var(--bed-text);opacity:1}
.bed:disabled{opacity:1;cursor:not-allowed}
.bed.blank{visibility:hidden}
.bed-status{display:none}
.bed-label{max-width:100%;font-size:12px;line-height:1.25;text-align:center;overflow-wrap:anywhere}
.bed-visual{position:relative;display:block;flex-shrink:0;width:clamp(38px,10vw,42px);max-width:100%;height:clamp(65px,20vw,76px);pointer-events:none}
.bed-visual>span{position:absolute;display:block;pointer-events:none}
.bed-mattress{inset:0 7px 0 0;border:1px solid var(--mattress-line);border-radius:4px;background:linear-gradient(180deg,var(--pillow-surface) 0 24%,var(--mattress-surface) 25% 100%);box-shadow:0 2px 0 #112b5012}
.bed-pillow{top:5px;left:4px;right:11px;height:10px;border:1px solid var(--pillow-line);border-radius:3px;background:var(--pillow-surface)}
.bed-frame{inset:-1px 6px -1px -1px;border-left:1.5px solid var(--frame-line);border-right:1.5px solid var(--frame-line);border-radius:3px}
.bed-desk{right:0;bottom:5px;width:6px;height:20px;background:var(--desk-surface);border:1px solid var(--desk-line);border-radius:2px}
.bed-chair{right:-2px;bottom:10px;width:5px;height:10px;background:var(--chair-surface);border:1px solid var(--chair-line);border-radius:3px}
.bunk-stack{position:relative;display:flex;flex-direction:column;gap:4px;padding:2px;border-left:2px solid #a3b9d4;border-right:2px solid #a3b9d4;border-radius:4px;background:#e1eaf5;min-width:0}
.bunk-stack .bed{min-height:80px;padding:2px 1px;gap:2px}
.bunk-stack .bed-visual{width:26px;height:45px}
.bunk-stack .bed-mattress{right:0}
.bunk-stack .bed-frame{right:-1px}
.bunk-stack .bed-pillow{left:4px;right:4px;height:8px;top:4px}
.bunk-stack .bed-label{font-size:12px;line-height:1.25}
.room-bottom-mark{display:grid;flex-shrink:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;align-items:end;min-height:28px;margin-top:auto;padding-top:4px;border-top:1px dashed #d1dbe8}
.bathroom-mark{grid-column:1;grid-row:1;font-size:10px;line-height:1.4;text-align:center;color:#58718f;background:#e6edf6;border:1px solid #c3d2e4;border-radius:4px;padding:4px 1px;white-space:nowrap}
.bathroom-mark.right{grid-column:3}
.door-mark{position:relative;grid-column:2;grid-row:1;text-align:center;font-size:10px;line-height:1.4;color:#58718f;padding-top:11px;white-space:nowrap}
.door-mark:before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:18px;height:10px;border:1.25px solid #91a5be;border-bottom:0;border-radius:18px 0 0 0}
.room-card-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0 7px;padding:2px 8px 3px}
.room-card-footer .text-button{font-size:12px;line-height:1.3;min-height:40px;padding:8px 0;white-space:nowrap}
.room-card-footer>span{font-size:12px;color:var(--muted)}
.classroom-seat.occupied{background:#e2e5ea;border-color:#c9cfd8;color:#647080;opacity:1}
.classroom-seat.selected{background:var(--blue);border-color:var(--blue);color:#fff;opacity:1}
.tour-teaser.compact{height:124px;margin-bottom:17px;border-radius:14px}
.compact .tour-teaser-copy{inset:12px auto 12px 15px}
.compact .tour-type{font-size:11px}
.compact h2{font-size:19px;margin:4px 0 9px}
.compact .tour-teaser-button{min-height:38px;padding:7px 12px;font-size:12px;gap:14px;border-radius:8px}
@media(min-width:700px){.rooms-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.room-card-heading{padding:12px 10px 10px}.room-card h3{font-size:18px}.room-count{font-size:11px;padding:4px 7px}.room-plan{margin:0 6px;padding-left:10px;padding-right:10px;padding-bottom:6px}.window-caption{font-size:11px}.bed-grid{gap:9px 20px;padding-bottom:9px}.bed{min-height:105px;padding:4px 3px;gap:3px}.bed-label{font-size:14px}.bed-visual{width:42px;height:76px}.bunk-stack{padding:4px;gap:6px}.bunk-stack .bed{min-height:97px;padding:4px 2px}.bunk-stack .bed-visual{width:32px;height:55px}.bunk-stack .bed-label{font-size:13px}.room-bottom-mark{min-height:34px;gap:5px;padding-top:5px}.bathroom-mark,.door-mark{font-size:11px}.room-card-footer{padding:3px 10px 5px}.room-card-footer .text-button{min-height:42px}.tour-teaser.compact{height:124px}.compact .tour-teaser-copy{inset:12px auto 12px 18px}.compact h2{font-size:19px}}
@media(max-width:360px){.rooms-grid{gap:10px}.room-plan{padding-left:4px;padding-right:4px}.bed-grid{column-gap:8px}.bunk-stack{padding:1px}.room-card-heading{padding:9px 6px 8px}.room-card h3{font-size:15px}.room-count{font-size:10px;padding:3px 4px}}

/* Full rows give the five longer course names room beside the image icons. */
.profession-grid{grid-template-columns:1fr;gap:10px}
.profession-card,.profession-card:first-child{grid-column:auto;min-height:86px;padding:14px 17px;gap:14px}
.profession-card .directory-copy{min-width:0}
.profession-card h2,.profession-card:first-child h2{font-size:20px;white-space:normal;line-height:1.4;overflow-wrap:anywhere}
.profession-card .directory-icon,.profession-card:first-child .directory-icon{width:52px;height:52px;border-radius:13px}
.profession-card .profession-icon,.profession-card:first-child .profession-icon{background:transparent;padding:0}
.profession-icon img{width:100%;height:100%;object-fit:contain}
.profession-card .card-arrow{font-size:19px;margin-left:auto;flex-shrink:0}
.tour-orientation{top:12px}
@media(min-width:700px){.profession-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.profession-card,.profession-card:first-child{min-height:110px;padding:22px;gap:16px}.profession-card:first-child{grid-column:1/-1}.profession-card h2,.profession-card:first-child h2{font-size:23px}.profession-card .directory-icon,.profession-card:first-child .directory-icon{width:58px;height:58px}}
@media(min-width:1050px){.profession-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.profession-card:first-child{grid-column:span 2}.profession-card h2,.profession-card:first-child h2{font-size:21px}}
@media(max-width:360px){.profession-card,.profession-card:first-child{padding:13px 15px;gap:11px;min-height:83px}.profession-card h2,.profession-card:first-child h2{font-size:18px}.profession-card .directory-icon,.profession-card:first-child .directory-icon{width:48px;height:48px}}
/* Keep the room picker in the first screen; supporting content stays compact. */
.detail-page .site-header{height:auto;min-height:56px;background:#fff;color:var(--ink);border-bottom:1px solid var(--line)}
.detail-page .header-inner{gap:8px;min-height:56px;padding:8px 14px}
.header-back{display:grid;place-items:center;flex-shrink:0;width:32px;height:40px;line-height:1;color:var(--blue);border-radius:8px}
.header-back svg{display:block;width:20px;height:20px}
.header-back:hover{background:var(--blue-soft)}
.header-activity-title{flex:1;min-width:0;font-size:16px;line-height:1.3;font-weight:650;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.header-tour{flex-shrink:0;min-height:40px;padding:8px 10px;border:1px solid #d8e4f0;border-radius:9px;background:#f1f6fc;color:var(--blue);font-size:12px;white-space:nowrap}
.detail-page .page-shell{padding-top:14px}
.detail-page .stepper{margin-bottom:18px}
.detail-page[data-step="3"] .stepper,.detail-page[data-step="3"] .site-footer{display:none}
.detail-page[data-step="3"] .page-shell{padding-bottom:20px}
.detail-page.has-selection[data-step="3"] .page-shell{padding-bottom:100px}
.map-header{margin-bottom:8px}
.map-header h2{font-size:20px}
.refresh-button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:40px;padding:7px 5px;border:0;border-radius:8px;background:transparent;color:var(--blue);font-size:13px}
.refresh-button>span{font-size:21px;line-height:1}
.refresh-button:hover{background:var(--blue-soft)}
.map-tabs{gap:6px;margin-bottom:10px;padding-bottom:0;scrollbar-width:none}
.map-tabs::-webkit-scrollbar{display:none}
.map-tabs button{min-height:40px;padding:8px 12px;border-radius:9px;font-size:13px}
.seat-toolbar{margin-bottom:8px}
.legend{gap:12px;font-size:12px}
.available-count{display:none}
.room-filters{gap:10px;margin-bottom:12px}
.search-field{flex:1;width:auto;max-width:none;min-height:40px;padding:6px 10px}
.checkbox-label{font-size:12px}
.detail-page[data-step="3"] .rooms-grid{max-height:clamp(280px,calc(100dvh - 390px),820px);gap:14px}
.room-toggle{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 6px;width:100%;min-height:110px;padding:15px 12px;border:0;background:linear-gradient(155deg,#f4f8fd,#fff 75%);text-align:left;color:var(--ink)}
.room-toggle:hover{background:linear-gradient(155deg,#eaf2fb,#fff 85%)}
.room-toggle:focus-visible{outline:3px solid #5287c9;outline-offset:-3px}
.room-number{display:flex;align-items:center;gap:7px;min-width:0;font-size:22px;font-weight:650;line-height:1.3;overflow-wrap:anywhere}
.room-toggle .room-count{font-size:11px;line-height:1.4;padding:4px 6px;border:1px solid #dce7f3;background:#edf4fc;border-radius:9px}
.room-toggle .room-count.full{background:#f0f2f5;color:#788391}
.room-toggle-action{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:6px;padding-top:10px;border-top:1px solid #e4ecf5;color:var(--blue);font-size:13px;line-height:1.4;font-weight:500}
.room-toggle-arrow{display:grid;place-items:center;flex-shrink:0;width:27px;height:27px;border:1px solid #dbe6f2;border-radius:50%;background:#fff;font-size:18px;line-height:1}
.room-card.is-expanded{border-color:#aac4df;box-shadow:0 8px 24px #35649312}
.is-expanded>.room-toggle{background:linear-gradient(150deg,#eaf3fd,#f8fbff)}
.room-card-content{padding:2px 0 8px}
.room-card-content .room-card-footer{gap:6px;padding:8px 6px 0}
.rooms-grid.compact-room-grid{grid-auto-rows:8px;grid-auto-flow:row;align-content:start}
.compact-room-grid>.room-card{height:max-content}
@media(max-width:1049px){.detail-page.has-selection[data-step="3"] .rooms-grid{max-height:clamp(280px,calc(100dvh - 460px),820px)}}
@media(min-width:700px){.detail-page .header-inner{padding-left:30px;padding-right:30px}.header-activity-title{font-size:19px}.header-tour{font-size:13px}.detail-page[data-step="3"] .seat-panel{padding:20px}.room-toggle{min-height:120px;padding:18px 16px}.room-number{font-size:25px}.detail-page[data-step="3"] .rooms-grid{gap:16px}}
@media(min-width:1050px){.detail-page.has-selection[data-step="3"] .page-shell{padding-bottom:20px}}
@media(max-width:360px){.header-activity-title{font-size:15px}.header-tour{padding:8px;font-size:11px}.room-toggle{min-height:106px;padding:13px 10px;column-gap:4px}.room-number{font-size:20px;gap:5px}.room-toggle .room-count{font-size:10px;padding:3px 4px}.room-toggle-action{font-size:12px}.legend{gap:11px}.detail-page[data-step="3"] .rooms-grid{gap:12px}}
/* Give the tour a visible preview and rooms a quieter, more generous frame. */
.detail-page[data-step="3"] .header-tour{display:none}
.panorama-feature{position:relative;isolation:isolate;display:flex;align-items:center;width:100%;height:132px;overflow:hidden;margin:0 0 17px;padding:19px 20px;border:1px solid #ffffff90;border-radius:18px;background:#5e7e9b;color:#fff;text-align:left;box-shadow:0 8px 24px #35649316}
.panorama-feature>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 52%;z-index:-2}
.panorama-feature:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#305a80ed 0%,#356493b8 42%,#35649320 100%)}
.panorama-feature-copy{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.panorama-feature-kicker{font-size:12px;line-height:1.4;letter-spacing:.06em;color:#e7f0fb}
.panorama-feature-copy strong{font-size:20px;line-height:1.5;font-weight:600;letter-spacing:.01em}
.panorama-feature-entry{display:inline-flex;align-items:center;gap:17px;font-size:12px;line-height:1.4;margin-top:3px;padding:6px 10px;border:1px solid #ffffff66;border-radius:7px;background:#ffffff14}
.panorama-feature-entry>span{font-size:16px;line-height:1}
.panorama-orbit{position:absolute;right:20px;top:50%;display:grid;place-items:center;width:55px;height:55px;transform:translateY(-50%);border:1px solid #ffffffc9;border-radius:50%;background:#315b7d35;box-shadow:0 4px 20px #173b5b24;font-size:14px;font-weight:600;letter-spacing:-.04em}
.panorama-orbit:after{content:"";position:absolute;inset:11px -7px;border:1px solid #ffffff99;border-radius:50%;transform:rotate(-24deg)}
.panorama-feature:hover .panorama-feature-entry{background:#ffffff30}
.room-card{border-radius:17px;border-color:#d7e3f0;box-shadow:0 5px 20px #35649309}
.room-number:before{content:"";flex-shrink:0;width:25px;height:25px;background:url("icons/room.svg") center/contain no-repeat}
.room-card-content .room-plan{margin:0 6px;border-radius:10px;border-color:#dce5ee;background:repeating-linear-gradient(0deg,#f7f8f9,#f7f8f9 29px,#edf1f4 30px)}
.room-card-content .bed{min-height:94px;padding:4px 2px;gap:4px;border-radius:8px}
.room-card-content .bed-label{font-size:13px}
.room-card-content .bunk-stack{padding:2px;gap:6px;border-radius:6px}
.room-card-content .bunk-stack .bed{min-height:86px;padding:3px 1px;gap:3px}
.room-card-content .bunk-stack .bed-label{font-size:12px}
.room-card-content .room-bottom-mark{min-height:34px;padding-top:6px}
.room-card-content .room-card-footer .text-button{display:flex;align-items:center;justify-content:center;flex:1 1 auto;gap:6px;min-height:42px;padding:9px 7px;border:1px solid #dce7f3;border-radius:9px;background:#f0f5fc;white-space:nowrap}
.room-card-content .room-card-footer .text-button:hover{background:#e5eef9;border-color:#b3cae3}
@media(min-width:700px){.panorama-feature{height:160px;padding:22px 28px;margin-bottom:20px;border-radius:20px}.panorama-feature-copy{gap:7px}.panorama-feature-kicker{font-size:13px}.panorama-feature-copy strong{font-size:25px}.panorama-feature-entry{font-size:13px;padding:7px 13px}.panorama-orbit{right:32px;width:70px;height:70px;font-size:18px}.panorama-orbit:after{inset:14px -9px}.room-number:before{width:29px;height:29px}.room-card-content .room-plan{margin:0 8px}.room-card-content .bed{min-height:109px;gap:5px}.room-card-content .bed-label{font-size:14px}.room-card-content .bunk-stack{padding:4px}.room-card-content .bunk-stack .bed{min-height:99px}.room-card-content .bunk-stack .bed-label{font-size:13px}.room-card-content .room-card-footer{padding:10px 8px 0}}
@media(max-width:360px){.panorama-feature{height:124px;padding:17px 15px}.panorama-feature-copy strong{font-size:18px}.panorama-feature-kicker{font-size:11px}.panorama-orbit{right:15px;width:45px;height:45px;font-size:12px}.panorama-orbit:after{inset:9px -6px}.room-number:before{width:22px;height:22px}.room-card-content .room-plan{margin:0 4px}.room-card-content .bed-label{font-size:12px}.room-card-content .bunk-stack{padding:1px}.room-card-content .room-card-footer .text-button{font-size:11px;padding:8px 4px}}
/* Keep the title and room filters together without shrinking mobile inputs. */
.map-header{gap:12px;margin-bottom:10px}
.map-header>h2{flex:0 0 auto;white-space:nowrap;font-size:18px}
.map-header .room-filters{flex:1;min-width:0;max-width:520px;gap:9px;margin:0 0 0 auto}
.map-header .search-field{flex:1;min-width:0;max-width:none;gap:5px;padding:6px 8px}
.map-header .search-field>span{font-size:20px}
.map-header .checkbox-label{flex-shrink:0;min-height:40px;font-size:12px;gap:4px}
.map-header .checkbox-label input{width:16px;height:16px;margin:0}
.seat-toolbar{margin-bottom:10px}
.seat-toolbar .refresh-button{flex-shrink:0}
@media(min-width:700px){.map-header>h2{font-size:20px}.map-header .room-filters{gap:13px}.map-header .search-field{padding:6px 12px}.map-header .checkbox-label{font-size:13px}}
@media(max-width:360px){.map-header{gap:6px}.map-header>h2{font-size:14px}.map-header .room-filters{gap:6px}.map-header .search-field>span{display:none}.map-header .checkbox-label{font-size:11px}.map-header .search-field{padding-left:7px;padding-right:7px}}
/* A quiet central lane makes the space between beds read as a walkway. */
.room-card-content .bed-grid{--aisle-width:16px;column-gap:var(--aisle-width);isolation:isolate}
.room-card-content .bed-grid:before{content:"";position:absolute;top:1px;bottom:7px;left:50%;width:var(--aisle-width);transform:translateX(-50%);border-left:1px dashed #b9cde1;border-right:1px dashed #b9cde1;border-radius:5px;background:linear-gradient(90deg,#edf3fa,#e3edf8 50%,#edf3fa);z-index:-1;pointer-events:none}
.room-card-content .aisle-label{display:flex;align-items:center;justify-content:center;width:var(--aisle-width);height:42px;padding:0;border:1px solid #c7d8e9;border-radius:7px;background:#eaf2fa;color:#58799b;font-size:9px;line-height:1;font-weight:500;letter-spacing:3px;box-shadow:0 0 0 2px #eaf2fa;pointer-events:none}
@media(min-width:700px){.room-card-content .bed-grid{--aisle-width:24px}.room-card-content .aisle-label{width:18px;height:48px;font-size:10px;border-radius:9px}}
@media(max-width:360px){.room-card-content .bed-grid{--aisle-width:12px}.room-card-content .bunk-stack{padding-left:0;padding-right:0}.room-card-content .aisle-label{font-size:8px;height:38px;letter-spacing:2px;box-shadow:0 0 0 1px #eaf2fa}}
/* Numbers sit inside the mattress, below the pillow, without a separate caption row. */
.room-card-content .room-plan{min-height:250px}
.room-card-content .bed{min-height:80px;padding:3px 2px;gap:0}
.room-card-content .bed-visual{display:flex;height:auto;min-height:clamp(60px,18vw,68px);padding-right:7px}
.room-card-content .bed-visual>.bed-mattress{position:relative;inset:auto;display:flex;align-items:center;justify-content:center;width:100%;min-height:inherit;padding:20px 1px 6px}
.room-card-content .bed-mattress>.bed-label{display:block;max-width:100%;color:#355575;font-size:12px;line-height:1.2;text-align:center;overflow-wrap:anywhere;pointer-events:none}
.room-card-content .occupied .bed-mattress>.bed-label{color:#647080}
.room-card-content .bed-tier{display:block;font-size:10px;line-height:1.1;margin-top:1px;white-space:nowrap}
.room-card-content .bunk-stack .bed{min-height:64px;padding:3px 1px;gap:0}
.room-card-content .bunk-stack .bed-visual{min-height:42px;height:auto;padding-right:0}
.room-card-content .bunk-stack .bed-mattress{padding:14px 1px 2px}
.room-card-content .bunk-stack .bed-mattress>.bed-label{font-size:10px;line-height:1.1}
@media(min-width:700px){.room-card-content .bed{min-height:90px;padding:4px 2px}.room-card-content .bed-visual{min-height:70px}.room-card-content .bed-mattress>.bed-label{font-size:13px}.room-card-content .bunk-stack .bed{min-height:74px}.room-card-content .bunk-stack .bed-visual{min-height:50px}.room-card-content .bunk-stack .bed-mattress>.bed-label,.room-card-content .bed-tier{font-size:11px}}
/* Keep orientation visible while removing repeated room controls and spare rows. */
.room-card.is-expanded>.room-toggle{min-height:92px;padding-top:12px;padding-bottom:10px;row-gap:8px}
.room-card.is-expanded>.room-toggle .room-toggle-action{padding-top:8px}
.room-card-content{padding:0 0 6px}
.room-card-content .room-plan{min-height:220px;padding-top:29px}
.room-card-content .window-mark{top:7px;width:60%;height:16px;display:flex;align-items:center;justify-content:center;border-radius:3px;background:#e5eff8}
.room-card-content .window-mark:before,.room-card-content .window-mark:after{content:"";position:absolute;top:2px;bottom:2px;width:1px;background:#a5bdd6}
.room-card-content .window-mark:before{left:25%}
.room-card-content .window-mark:after{right:25%}
.room-card-content .window-caption{position:static;transform:none;padding:0;background:transparent;font-size:9px;line-height:1;color:#536d88;white-space:nowrap}
.room-card-content .room-bottom-mark{min-height:28px;padding-top:4px}
.room-card-content .bathroom-mark{padding-top:3px;padding-bottom:3px}
@media(min-width:700px){.room-card.is-expanded>.room-toggle{min-height:102px;padding-top:14px;padding-bottom:12px}.room-card-content .window-caption{font-size:10px}.room-card-content .window-mark{height:17px}.room-card-content .room-plan{padding-top:30px}.room-card-content .room-bottom-mark{min-height:30px}}
/* Soft blue surfaces and small furniture shadows add depth without changing the plan geometry. */
body{background:radial-gradient(ellipse at 95% 0,#e4eefb 0,transparent 52%),linear-gradient(180deg,#f8fbff,#f1f5fb 80%)}
.directory-page .site-header{background:linear-gradient(115deg,#315b85,#477eac 70%,#5b91b9)}
.directory-card{background:linear-gradient(140deg,#fff 12%,#f0f6fd);box-shadow:inset 0 1px 0 #fff,0 6px 20px #3564930d}
.profession-card:first-child{background:linear-gradient(125deg,#e0edfc,#edf5ff 58%,#daeaf9)}
.directory-card:hover{background:linear-gradient(140deg,#f7fbff,#e4effb)}
.button.primary,.map-tabs button.active{background:linear-gradient(135deg,#5486b3,#356493 72%,#305b86);box-shadow:inset 0 1px 0 #ffffff35,0 3px 9px #3564931a}
.button.primary:hover{background:linear-gradient(135deg,#477ba9,#2d5c88)}
.search-field{background:linear-gradient(180deg,#fff,#f9fbff);box-shadow:inset 0 1px 2px #35649305}
.room-card{background:linear-gradient(155deg,#fff,#f3f7fd);box-shadow:inset 0 1px 0 #fff,0 5px 18px #3564930e}
.room-toggle{background:linear-gradient(135deg,#e7f1fd 0,#f7fbff 50%,#edf5fc 100%)}
.room-toggle:hover{background:linear-gradient(135deg,#deecfb,#f4f9ff 60%,#e8f2fc)}
.room-card.is-expanded{box-shadow:inset 0 1px 0 #fff,0 7px 22px #35649318}
.room-card.is-expanded>.room-toggle{background:linear-gradient(135deg,#dceafb,#f0f7ff 60%,#e5f1fb)}
.room-toggle-arrow{background:linear-gradient(145deg,#fff,#e9f2fb);box-shadow:inset 0 1px 0 #fff,0 2px 4px #3564930d}
.room-toggle .room-count{background:linear-gradient(145deg,#f9fcff,#e2edfa);box-shadow:inset 0 1px 0 #fff}
.room-toggle .room-count.full{background:linear-gradient(145deg,#f6f7f9,#e7ebf0)}
.room-card-content .room-plan{background:linear-gradient(120deg,#ffffff99,#ffffff00 55%,#c6d7e514),repeating-linear-gradient(0deg,#f3f6f8 0,#f8fafb 28px,#e6edf2 29px,#f3f6f8 30px);box-shadow:inset 2px 2px 5px #263d5810,inset -1px -1px 0 #fff}
.room-card-content .window-mark{background:linear-gradient(165deg,#fbfeff,#dbeaf7 65%,#c9deef);box-shadow:inset 0 1px 0 #fff,0 1px 0 #a7bed4,0 2px 3px #35649314}
.room-card-content .bathroom-mark{background:linear-gradient(140deg,#f4f8fd,#dce7f3);box-shadow:inset 0 1px 0 #fff,0 1px 2px #35649312}
.room-card-content .bed{--bed-light:#f8fcff;--bed-deep:#dfeafa;--object-shade:#294f7426;--frame-shadow:#6c8eb344;background:linear-gradient(140deg,var(--bed-light),var(--bed-surface) 48%,var(--bed-deep));box-shadow:inset 0 1px 0 #ffffffcc,inset -1px -1px 0 #3564930d,0 2px 3px #294f7414}
.room-card-content .bed.available:hover:not(.selected){--bed-light:#f1f8ff;--bed-deep:#cfE2f8;border-color:#7b9fcf;background:linear-gradient(140deg,var(--bed-light),var(--bed-surface) 48%,var(--bed-deep))}
.room-card-content .bed.occupied{--bed-light:#edf0f3;--bed-deep:#d6dce4;--object-shade:#3a465820;--frame-shadow:#8793a144;box-shadow:inset 0 1px 0 #ffffff99,0 1px 2px #3a465812}
.room-card-content .bed.selected{--bed-light:#5789b7;--bed-deep:#305b86;--object-shade:#244b7533;--frame-shadow:#244b7555;box-shadow:inset 0 1px 0 #ffffff66,inset -1px -1px 0 #244b7540,0 2px 5px #35649330}
.room-card-content .bed-mattress{background:linear-gradient(125deg,#ffffff70,#ffffff00 50%,#294f7412),linear-gradient(180deg,var(--pillow-surface) 0 23%,var(--mattress-surface) 24% 100%);box-shadow:inset 1px 1px 0 #ffffffcc,inset -1px -2px 2px #294f7414,1px 3px 0 var(--mattress-line),2px 4px 4px var(--object-shade)}
.room-card-content .bed-pillow{background:linear-gradient(145deg,#ffffffa6,var(--pillow-surface) 70%);box-shadow:inset 0 1px 0 #fff,0 1px 0 var(--pillow-line),0 2px 2px var(--object-shade)}
.room-card-content .bed-frame{box-shadow:-1px 0 0 #ffffffb3,inset 1px 0 0 #ffffff99,1px 1px 0 var(--frame-shadow)}
.room-card-content .bed-frame:before,.room-card-content .bed-frame:after{content:"";position:absolute;left:-1px;right:-1px;height:3px;border:1px solid var(--frame-line);border-radius:2px;background:linear-gradient(180deg,#ffffffcc,var(--frame-line));box-shadow:0 1px 1px var(--object-shade);pointer-events:none}
.room-card-content .bed-frame:before{top:0}
.room-card-content .bed-frame:after{bottom:0}
.room-card-content .bed-desk{background:linear-gradient(90deg,#ffffff80,var(--desk-surface) 65%);box-shadow:inset 0 1px 0 #ffffffb3,1px 2px 0 var(--desk-line),2px 3px 2px var(--object-shade)}
.room-card-content .bed-chair{background:linear-gradient(135deg,#ffffff99,var(--chair-surface));box-shadow:inset 0 1px 0 #ffffffb3,1px 1px 0 var(--chair-line),1px 2px 2px var(--object-shade)}
.room-card-content .bunk-stack{background:linear-gradient(90deg,#d5e1ef,#f0f6fc 45%,#d9e5f2);box-shadow:inset 1px 0 0 #ffffffb3,1px 2px 2px #294f741a}
.room-card-content .bunk-stack .bed-mattress{box-shadow:inset 1px 1px 0 #ffffffcc,inset -1px -1px 1px #294f7414,1px 2px 0 var(--mattress-line),1px 3px 2px var(--object-shade)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
