/* Isometric floor plan: geometry represents room footprint and capacity. */
.game-sprite{display:block;width:80px;height:80px;background-repeat:no-repeat;background-size:400% 300%;background-position:var(--sx) var(--sy);flex-shrink:0}.game-sprite.old-sprite{background-image:url('hospital-atlas.png');background-size:400% 200%;height:106.667px}.game-sprite.character-sprite{background-image:url('campaign-characters.png')}.game-sprite.equipment-sprite{background-image:url('campaign-equipment.png')}.item-art .game-sprite{width:112px;height:112px}.item-art .old-sprite{height:149px;width:112px}.item-art{height:145px}.item-art>span:last-child:not(.game-sprite){max-width:105px;text-align:right;line-height:1.5}.campus-item .item-zone{font-size:12px;color:#83a7b9}.campus-item p{min-height:42px}.shop-tabs select{max-width:250px;font-size:14px}.campus-shop{grid-template-columns:repeat(4,minmax(0,1fr))}.campus-layout{grid-template-columns:minmax(0,1fr) 300px}.campus-world.iso-campus{width:2200px;height:1300px;background:radial-gradient(ellipse at 52% 40%,#192e40,#0e1c2d 75%);overflow:hidden}.isometric-area{position:absolute;width:0;height:0;pointer-events:none}.area-geometry{position:absolute;left:-230px;top:-95px;width:540px;height:390px;overflow:visible}.map-room-name{position:absolute;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;z-index:2100;background:#102135dd;border:1px solid #49667a;border-radius:5px;padding:8px 11px;box-shadow:0 4px 12px #06111a33;white-space:nowrap;font-size:14px;cursor:pointer;max-width:250px}.map-room-name small{font-size:12px;font-weight:400;color:#9fb8c5}.map-room-name.terrain-label{background:#17382cdb;border-color:#496852;color:#bad1bd;box-shadow:none}.map-room-name.terrain-label small{color:#8faf94}.map-object{position:absolute;transform:translate(-50%,-90%);pointer-events:none}.map-object .game-sprite{width:68px;height:68px;mix-blend-mode:lighten}.map-object .old-sprite{height:90.66px}.map-object.basic-equipment .game-sprite{width:85px;height:85px}.map-object.basic-equipment .old-sprite{height:113.3px}.map-object.map-decor .game-sprite{width:50px;height:50px}.campus-person{width:46px;height:46px;margin-top:-43px;margin-left:-23px}.campus-person .game-sprite{width:46px;height:46px;mix-blend-mode:lighten}.campus-person .old-sprite{height:61.33px;margin-top:-15px}.campus-person.ambulance-actor{width:110px;height:110px;margin-left:-55px;margin-top:-78px}.campus-person.ambulance-actor .game-sprite{width:110px;height:110px}.campus-viewport{height:665px}.campaign-targets .today-title button{font-size:13px}.campaign-goal{margin:17px 0}.campaign-goal>div:first-child{display:flex;flex-direction:column;gap:5px}.campaign-goal span{font-size:13px;color:#a9becf}.campaign-goal strong{font-size:23px;color:#e2edf5}.campaign-goal strong small{font-size:14px;color:#90aabe;font-weight:400}.campaign-goal .goal-track{margin-top:8px;height:10px}.campus-progress .pace-warning{color:#e8c47b}.campus-progress .panel p{font-size:13px}.campus-progress .panel strong{line-height:1.5}.staff-reward .game-sprite{width:96px;height:96px;margin:auto}.staff-reward .old-sprite{height:128px}.staff-reward{padding-top:2px}.map-room-name:hover{border-color:#a3c4c5;background:#234055}.map-room-name.terrain-label:hover{background:#28533b}.campus-item .item-art .character-sprite{border-radius:6px}.shop-tabs button.selected{border-color:#6dcdb4;background:#21463e;color:#b7e9d8}
@media(max-width:1100px){.campus-layout{grid-template-columns:minmax(0,1fr)}.campus-progress{display:grid;grid-template-columns:1.3fr 1fr;gap:16px}.campaign-targets{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.campaign-targets>.today-title,.campaign-targets>p{grid-column:1/-1}.campus-shop{grid-template-columns:repeat(3,minmax(0,1fr))}.campus-viewport{height:600px}}
@media(max-width:700px){.campus-progress{grid-template-columns:1fr}.campus-shop{grid-template-columns:repeat(2,minmax(0,1fr))}.campus-viewport{height:510px}.item-art .game-sprite{width:95px;height:95px}.item-art .old-sprite{height:126.66px}.item-art{height:126px;position:relative}.item-art>span:last-child:not(.game-sprite){font-size:11px;position:absolute;top:-4px;right:0;background:#112236d9;border-radius:4px;padding:2px 4px;max-width:90px}.campus-item h2{font-size:15px}.campus-item li{font-size:12px}.campus-item button{min-height:40px}.shop-tabs select{width:100%;max-width:100%}.campaign-goal strong{font-size:22px}.campus-progress .panel{margin:0}.game-heading h1{font-size:25px}.campus-toolbar button{min-width:32px;min-height:32px}}

.isometric-area{padding:0;border:0;background:none;pointer-events:auto;cursor:pointer;box-shadow:none}.area-geometry{pointer-events:visiblePainted}.isometric-area:hover{background:none;border:0}.isometric-area:focus-visible .area-geometry{filter:drop-shadow(0 0 5px #96dbc4)}

.campus-viewport.real-3d{overflow:hidden;position:relative;background:#769a61;height:640px;cursor:grab;touch-action:none}.voxel-canvas{display:block;touch-action:none;outline:none}.voxel-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.voxel-room-label{position:absolute;left:0;top:0;pointer-events:auto;display:flex;flex-direction:column;gap:2px;padding:7px 10px;background:#eff3e6ee;color:#355548;border:1px solid #748d70;border-radius:6px;box-shadow:0 2px 6px #2b473433;max-width:190px;font-size:13px;white-space:nowrap}.voxel-room-label small{font-size:11px;color:#70816a}.voxel-room-label.grass{background:#e0edd4d9;border-color:#91aa7c}.voxel-room-label:hover{background:#ffffff}.voxel-room-label[hidden]{display:none}.real-3d:focus-visible{outline:2px solid #8bc7a1;outline-offset:2px}@media(max-width:700px){.campus-viewport.real-3d{height:500px}.voxel-room-label{font-size:12px;padding:5px 7px;max-width:150px;white-space:normal}.voxel-room-label small{font-size:11px}.campus-toolbar{gap:5px}.campus-toolbar>div:last-child{display:flex;gap:3px}.campus-toolbar button{padding:4px 7px;min-width:28px}.campus-toolbar b{font-size:13px}}
