/* A room is the canvas; the collection and tools stay outside its artwork. */
.campus-editor{min-width:0}
.campus-editor-top{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:10px 0 20px}
.campus-editor-top h2{font-size:clamp(24px,2.2vw,32px);line-height:1.16;margin:7px 0}
.campus-editor-save{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;max-width:440px}
.campus-editor-save>span{flex-basis:100%;font-size:12px;color:var(--campus-muted);text-align:right}
.campus-editor-save button{font-size:13px;min-height:36px;padding:7px 14px}
.campus-editor-save button:disabled{opacity:.48;cursor:default}
.campus-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 306px;gap:20px;align-items:start}
.campus-editor-stage{min-width:0}
.campus-editor-scene{width:100%;user-select:none;-webkit-user-select:none}
.campus-scene-items{position:absolute;inset:0;z-index:3;pointer-events:none}
.campus-room-art .campus-placed-item{left:var(--item-x);top:var(--item-y);width:var(--item-width);height:auto;min-height:0;bottom:auto;right:auto;transform:translate(-50%,-100%)!important;transform-origin:50% 100%;pointer-events:auto;line-height:0;transition:filter .2s ease;touch-action:none}
.campus-room-art .campus-placed-item>.campus-object-art{position:relative;display:block;width:100%;transform:rotate(var(--item-rotation,0deg)) scaleX(var(--item-flip,1));transform-origin:50% 100%;pointer-events:auto}
.campus-object-art::after{content:'';position:absolute;left:50%;top:50%;width:max(100%,28px);height:max(100%,28px);transform:translate(-50%,-50%);pointer-events:auto}
.campus-object-art>.campus-item-art,.campus-object-art>svg{height:auto;width:100%;display:block;object-fit:contain}
.campus-room-art .campus-placed-item.is-interactive{cursor:pointer}
.campus-editor-scene .campus-placed-item.is-interactive{cursor:grab}
.campus-editor-scene .campus-placed-item{cursor:grab}
.campus-editor-scene .campus-placed-item.is-dragging{cursor:grabbing}
.campus-room-art .campus-placed-item:is(:hover,:focus-visible,.is-selected){filter:drop-shadow(0 0 2px #fff6c7) drop-shadow(0 0 8px #3da9aa) drop-shadow(2px 5px 3px #321b2033)}
.campus-room-art .campus-placed-item.is-selected::after{content:'';position:absolute;inset:auto 15% -2px;height:5px;border-radius:50%;box-shadow:0 0 10px #4dc6cb;background:#72d9d84d;pointer-events:none}
.campus-room-art .campus-placed-item:focus-visible{outline:1px dashed #239d9e!important;outline-offset:2px;border-radius:9px!important}
.campus-room-art .campus-placed-item .campus-furnishing-label{line-height:1.25;bottom:auto;top:0;transform:translate(-50%,-110%);max-width:170px;z-index:100}
.campus-is-dragging .campus-furnishing-label{opacity:0!important}
.campus-curtains{position:absolute;left:30%;top:0;width:40%;height:59%;z-index:2;pointer-events:none;filter:drop-shadow(2px 4px 3px #4f342633)}
.campus-curtains>.campus-item-art{width:100%;height:100%;object-fit:fill}
.campus-room-art .campus-scene-caption{z-index:180;font-size:clamp(9px,.9vw,12px);left:10%;right:10%;bottom:1.4%;padding:6px 10px;backdrop-filter:blur(4px);background:#fff7dfbf}
.campus-floor-tint{pointer-events:none}
.campus-open-editor{position:absolute!important;right:15px;top:14px;z-index:200;font-size:13px!important;min-height:35px;padding:7px 14px!important}
.campus-selection-panel{padding:16px 18px;margin-top:14px;min-height:128px;border:1px solid var(--campus-line);border-radius:17px;background:var(--campus-panel);box-shadow:inset 0 1px #fff6}
.campus-selection-empty{display:flex;align-items:center;gap:16px;min-height:95px}
.campus-selection-empty>span{display:grid;place-items:center;flex:none;width:47px;height:47px;border:1px solid #b59a665c;border-radius:50%;font-size:25px;color:#449b99;background:#e9f2dc4a}
.campus-selection-empty strong{font-size:21px}
.campus-selection-empty p,.campus-selection-heading p{font-size:13px;line-height:1.5;color:var(--campus-muted);margin:6px 0 0;max-width:550px}
.campus-selection-heading{display:flex;gap:13px;align-items:center}
.campus-selection-thumb{width:64px;height:62px;flex:none}
.campus-selection-thumb .campus-item-art{object-fit:contain}
.campus-selection-heading small{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--campus-muted)}
.campus-selection-heading h3{font-size:22px;line-height:1.15;margin:3px 0}
.campus-item-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:13px}
.campus-item-tools button{font-size:12px;padding:7px 12px;min-height:34px}
.campus-shell .campus-scale-label{display:flex;align-items:center;gap:9px;font-size:12px;min-width:210px;flex:1;max-width:280px;margin-right:auto}
.campus-shell .campus-scale-label input{padding:0;min-height:22px;min-width:60px;width:100%;accent-color:#218f91;border:0;border-radius:0;box-shadow:none;background:transparent;cursor:ew-resize}
.campus-scale-label output{min-width:36px;font-size:11px}
.campus-editor-help{display:flex;gap:9px;font-size:12px;line-height:1.6;color:var(--campus-muted);margin:13px 5px}
.campus-editor-help>span{font-size:19px;color:#488f89}
.campus-collection-dock{background:var(--campus-panel);border:1px solid var(--campus-line);border-radius:20px;min-width:0;padding:20px 14px 14px;box-shadow:inset 0 1px #fff8,0 7px 23px #493b2810}
.campus-collection-dock>header{padding:0 5px}
.campus-collection-dock h2{font-size:23px;line-height:1.15;margin:7px 0}
.campus-owned-count{font-size:11px;color:var(--campus-muted)}
.campus-dock-hint{font-size:12px;line-height:1.55;color:var(--campus-muted);margin:12px 5px 14px}
.campus-collection-tabs{display:flex;gap:5px;flex-wrap:wrap;border-bottom:1px solid var(--campus-line);padding-bottom:13px;margin:0 0 12px}
.campus-collection-tabs button{font-size:11px;min-height:31px;padding:6px 9px;flex:1;white-space:nowrap}
.campus-collection-tabs button[aria-pressed=true]{outline:1px solid #318f92;outline-offset:2px}
.campus-collection-scroll{max-height:510px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#a1b4a570 transparent;padding:2px}
.campus-collection-dock .campus-item-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.campus-collection-dock .campus-collection-item{display:flex;flex-direction:column;gap:3px;padding:9px 7px 10px;text-align:center;min-width:0;border-radius:13px;background:#fff6df3d;border-color:#af986338}
.campus-collection-dock .campus-collection-item.is-equipped{background:#aadcd623;border-color:#6daaaa69}
.campus-collection-dock .campus-collection-item.is-selected{border-color:#389ca4;box-shadow:0 0 0 1px #389ca443}
.campus-collection-dock .campus-collection-item>div{width:100%;min-width:0;display:flex;flex-direction:column;align-items:center;flex:1}
.campus-collection-dock .campus-collection-item small{font-size:10px}
.campus-collection-dock .campus-collection-item h3{font-size:14px;line-height:1.2;margin:4px 0 9px;flex:1;min-height:34px}
html body:is(.watercolor-home,.watercolor-cabinet) #app .campus-collection-dock .campus-collection-item h3{font-size:15px!important;line-height:1.25!important;min-width:0;max-width:100%;overflow-wrap:anywhere;margin:4px 0 9px!important}
.campus-collection-dock .campus-collection-item .soft-btn,.campus-collection-dock .campus-collection-item .primary{font-size:10px;min-height:29px;padding:5px 10px;white-space:normal}
html body .campus-collection-art{position:relative;display:block;width:100%;height:89px;min-height:0;padding:0!important;border:0!important;box-shadow:none!important;background:radial-gradient(ellipse,#f4db9e47,transparent 72%)!important;border-radius:8px!important;appearance:none;cursor:pointer;touch-action:none}
.campus-collection-art[data-campus-drag-source]{cursor:grab}
.campus-collection-art:hover .campus-item-art{filter:drop-shadow(0 0 4px #68babc);transform:translateY(-2px)}
.campus-collection-art>.campus-item-art{width:100%;height:100%;object-fit:contain;transition:transform .18s ease,filter .18s ease}
.campus-equipped-mark{position:absolute;right:1px;top:0;width:19px;height:19px;background:#268c88;border-radius:50%;color:#fff8de;display:grid;place-items:center;font-size:11px;box-shadow:0 1px 3px #24565633}
.campus-collection-market{display:flex!important;width:100%;margin-top:14px;justify-content:center;font-size:13px!important;min-height:39px;padding:8px 12px!important}
.campus-floor-swatch{display:block;width:78%;height:76%;max-width:100px;margin:auto;transform:perspective(150px) rotateX(18deg) rotate(-8deg);border:2px solid #b99b67;border-radius:6px;background:repeating-linear-gradient(0deg,transparent 0 21%,#63482c66 21% 22%),repeating-linear-gradient(90deg,#c28e57 0 23%,#deaf73 23% 49%,#bd8b57 49% 50%);box-shadow:3px 5px 6px #402b252b,inset 0 1px #fff8}
.campus-floor-swatch.is-walnut{background:repeating-linear-gradient(0deg,transparent 0 21%,#2f1e1666 21% 22%),repeating-linear-gradient(90deg,#634533 0 23%,#8c6240 23% 49%,#61432e 49% 50%);border-color:#785b3b}
.campus-editor-announcer{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.campus-drag-ghost{position:fixed;width:94px;height:94px;transform:translate(-50%,-65%);z-index:9999;pointer-events:none;filter:drop-shadow(0 0 7px #5db6b6) drop-shadow(0 5px 8px #13393b33)}
.campus-is-dragging,.campus-is-dragging *{cursor:grabbing!important;user-select:none!important}
html[data-theme=dark] .campus-room-art .campus-placed-item:is(:hover,:focus-visible,.is-selected){filter:brightness(1.13) drop-shadow(0 0 2px #f8f5c5) drop-shadow(0 0 8px #58bac6)}
html[data-theme=dark] .campus-curtains{filter:brightness(.87) saturate(.92) drop-shadow(2px 4px 3px #07182155)}
html[data-theme=dark] .campus-collection-dock .campus-collection-item{background:#102f3c26;border-color:#cdb27833}
html[data-theme=dark] .campus-collection-dock .campus-collection-item.is-equipped{background:#54a6a51a;border-color:#62c5c04c}
html[data-theme=dark] .campus-room-art .campus-scene-caption{background:#163946c9;color:#f4e4bd}
html[data-theme=dark] .campus-selection-panel,html[data-theme=dark] .campus-collection-dock{box-shadow:inset 0 1px #c5ffff13,0 7px 20px #001c2629}
@media(min-width:1600px){.campus-editor-grid{grid-template-columns:minmax(0,1fr) 350px}.campus-collection-scroll{max-height:570px}.campus-collection-art{height:103px!important}}
@media(max-width:1080px){.campus-editor-grid{grid-template-columns:minmax(0,1fr) 270px;gap:14px}.campus-editor-top{align-items:flex-start}.campus-editor-top h2{font-size:26px}.campus-editor-save{max-width:330px}.campus-collection-dock{padding:17px 10px 12px}.campus-collection-dock h2{font-size:21px}.campus-collection-tabs{gap:4px}.campus-collection-tabs button{font-size:10px;padding-inline:7px}.campus-selection-panel{padding:13px}.campus-selection-heading h3{font-size:20px}.campus-selection-heading p{font-size:12px}.campus-item-tools{gap:6px}.campus-shell .campus-scale-label{max-width:none;flex-basis:100%;margin:0 0 5px}}
@media(max-width:800px){.campus-editor-top{display:block}.campus-editor-save{max-width:none;justify-content:flex-start;margin-top:14px}.campus-editor-save>span{text-align:left}.campus-editor-grid{grid-template-columns:minmax(0,1fr)}.campus-collection-dock{padding:18px}.campus-collection-dock>header{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 16px}.campus-collection-dock>header>div{flex:1;min-width:200px}.campus-collection-dock h2{font-size:25px}.campus-collection-tabs{justify-content:flex-start}.campus-collection-tabs button{flex:none;font-size:12px;padding-inline:15px}.campus-collection-scroll{max-height:460px}.campus-collection-dock .campus-item-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.campus-collection-dock .campus-collection-item h3{font-size:14px}.campus-collection-market{max-width:270px;margin:15px auto 0}.campus-selection-panel{min-height:110px}.campus-shell .campus-scale-label{flex-basis:auto;max-width:280px}.campus-collection-dock .campus-collection-item .soft-btn,.campus-collection-dock .campus-collection-item .primary{font-size:11px}}
@media(max-width:520px){.campus-editor-top h2{font-size:26px}.campus-editor-save{gap:7px}.campus-editor-save button{font-size:12px;padding-inline:11px}.campus-editor-save [data-campus-act=save-layout]{flex:1}.campus-selection-panel{padding:13px 12px}.campus-selection-empty{gap:11px;min-height:83px}.campus-selection-empty>span{width:35px;height:35px;font-size:20px}.campus-selection-empty strong{font-size:19px}.campus-selection-empty p{font-size:12px}.campus-selection-thumb{width:47px;height:49px}.campus-selection-heading h3{font-size:19px}.campus-selection-heading p{font-size:11px}.campus-shell .campus-scale-label{max-width:none;flex-basis:100%;margin-bottom:3px}.campus-item-tools button{font-size:11px;min-height:32px;padding-inline:10px}.campus-editor-help{font-size:11px}.campus-collection-dock{padding:16px 12px}.campus-collection-dock .campus-item-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.campus-collection-art{height:103px!important}.campus-collection-dock .campus-collection-item h3{font-size:15px;min-height:35px}.campus-collection-scroll{max-height:485px}.campus-collection-tabs button{font-size:11px;padding-inline:10px;flex:1}.campus-room-art .campus-scene-caption{font-size:8px;left:6%;right:6%;padding:4px 6px}.campus-room-art .campus-placed-item .campus-furnishing-label{max-width:115px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.campus-room-art .campus-placed-item,.campus-collection-art>.campus-item-art{transition:none}}

/* Placement is free; tools change the object without masking the room. */
.campus-transform-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 17px;flex-basis:100%;width:100%;padding-bottom:4px}
.campus-shell .campus-transform-tools .campus-scale-label{min-width:0;max-width:none;width:100%;margin:0;gap:7px}
.campus-transform-tools .campus-scale-label input{min-width:35px}
.campus-room-number>[data-campus-number]{font-size:25px!important;letter-spacing:.025em;min-height:42px;padding:8px 16px!important;margin-top:3px}
.campus-room-number>small{font-size:10px;letter-spacing:.12em}
.campus-room-number>b{letter-spacing:0;font-size:24px}
.campus-object-art>*{pointer-events:inherit}
@media(max-width:1080px){.campus-transform-tools{grid-template-columns:minmax(0,1fr)}.campus-shell .campus-transform-tools .campus-scale-label{flex-basis:auto;max-width:none}.campus-transform-tools .campus-scale-label input{max-width:none}}
@media(max-width:480px){.campus-room-number>[data-campus-number]{font-size:17px!important;white-space:normal;padding:7px 10px!important}.campus-room-number>b{font-size:19px}}
