/* The object is the control: drag its body, inspect it with the lens, edit above it. */
.campus-scene-world{position:absolute;inset:0;transform-origin:0 0;isolation:isolate}
.campus-room-art .campus-placed-item{overflow:visible}
.campus-room-art .campus-placed-item:hover:not(.is-pointer-target):not(:focus-within):not(.is-selected){filter:drop-shadow(2px 5px 3px #321b2033)}
.campus-room-art .campus-placed-item.is-pointer-target{filter:drop-shadow(0 0 2px #fff6c7) drop-shadow(0 0 8px #3da9aa) drop-shadow(2px 5px 3px #321b2033)}
html body .campus-object-handle{position:relative;display:block;width:100%;height:auto;min-width:0;min-height:0;padding:0!important;margin:0;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;line-height:0;appearance:none;touch-action:none;cursor:grab;transform:none!important;color:inherit}
.campus-room-art:not(.campus-editor-scene) .campus-object-handle{cursor:default}
.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-room-art .campus-object-handle:focus-visible{outline:1px dashed #7ddbd3!important;outline-offset:4px;border-radius:6px!important}
.campus-object-hover{position:absolute;left:50%;bottom:calc(100% + 5px);display:flex;align-items:center;gap:4px;width:max-content;max-width:220px;transform:translateX(-50%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s ease;z-index:100;line-height:1.2;filter:none}
.campus-placed-item:is(.is-pointer-target,:focus-within,.is-selected) .campus-object-hover{opacity:1;visibility:visible;pointer-events:auto}
.campus-object-title{display:block;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:11px/1.2 Georgia,serif;color:#fff4d8;background:#123b47ee;border:1px solid #c4ad7299;border-radius:8px;padding:7px 9px;box-shadow:0 3px 8px #082c3640}
html body .campus-object-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 32px;width:32px;height:32px;min-height:32px;padding:6px!important;border:1px solid #b99e64!important;border-radius:9px!important;background:linear-gradient(155deg,#fafffff0,#f6e8c9e8 48%,#bbd8d9db)!important;color:#195560!important;box-shadow:inset 0 1px #fff,0 2px 4px #17363c30!important;appearance:none;cursor:pointer;line-height:1;transform:none!important;touch-action:manipulation}
.campus-object-icon svg{display:block;width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
html body .campus-object-icon:is(:hover,:focus-visible){background:linear-gradient(155deg,#fff,#c4efdf)!important;outline:2px solid #4baeb0;outline-offset:2px;color:#10565a!important}
html body .campus-object-icon[aria-expanded=true],html body .campus-object-icon[aria-pressed=true]{background:linear-gradient(145deg,#b6eee4,#61adb4)!important;color:#0a404d!important}
html body .campus-object-icon[data-campus-done]{background:linear-gradient(155deg,#d7f8dd,#5aa99b)!important;color:#124b40!important}
.campus-object-toolbar{position:absolute;z-index:500;left:8px;top:8px;width:max-content;max-width:calc(100% - 16px);max-height:calc(100% - 16px);overflow:auto;box-sizing:border-box;padding:9px;border:1px solid #b29761;border-radius:13px;background:linear-gradient(145deg,#fffaf1f5,#e9eadcf5);box-shadow:inset 0 1px #fff,0 6px 21px #173a494d;backdrop-filter:blur(14px);color:#174851;touch-action:manipulation}
.campus-object-toolbar-title{max-width:270px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:12px/1.3 Georgia,serif;text-align:center;margin:0 0 7px;color:inherit}
.campus-object-toolbar-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:5px;max-width:328px}
.campus-object-slider{display:flex;align-items:center;gap:7px;min-width:0;width:100%;max-width:328px;font:12px/1.4 Georgia,serif;margin-top:11px;padding-top:9px;border-top:1px solid #b39d6959}
.campus-object-slider input{flex:1;min-width:35px;width:100%;min-height:23px;padding:0;background:transparent;border:0;box-shadow:none;accent-color:#278c8f;cursor:ew-resize}
.campus-object-slider output{flex:none;min-width:36px;text-align:right;font:11px/1.3 system-ui}
.campus-object-swatches{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:328px;border-top:1px solid #b39d6959;margin-top:10px;padding-top:10px}
.campus-object-views{display:flex;gap:6px;justify-content:center;margin-top:10px;padding-top:10px;border-top:1px solid #b39d6959}
html body .campus-object-views button{min-height:32px;padding:6px 9px!important;border:1px solid #af955d!important;border-radius:8px!important;background:linear-gradient(150deg,#fffdf2,#d1e3dd)!important;color:#174b56!important;font:12px/1.2 Georgia,serif;box-shadow:inset 0 1px #fff!important;transform:none!important}
html body .campus-object-views button[aria-pressed=true]{background:linear-gradient(150deg,#9ed5ca,#3e8c91)!important;color:#073f4b!important;outline:2px solid #379da0;outline-offset:1px}
html[data-theme=dark] body .campus-object-views button{background:linear-gradient(150deg,#426f7a,#183f50)!important;color:#f7e7c1!important}
html[data-theme=dark] body .campus-object-views button[aria-pressed=true]{background:#367d84!important;color:#fff2cb!important}
html body .campus-object-swatch{width:30px;height:30px;min-height:30px;flex:0 0 30px;padding:0!important;border:2px solid #f7eac8!important;border-radius:50%!important;background:var(--swatch)!important;box-shadow:inset 1px 2px 4px #fff7,0 0 0 1px #947b52!important;cursor:pointer;color:#fff;text-shadow:0 1px 3px #000;line-height:1;transform:none!important}
html body .campus-object-swatch[aria-pressed=true]{outline:2px solid #288e96;outline-offset:2px}
.campus-main-save{display:flex;justify-content:flex-end;margin:0 0 14px;min-width:0}
.campus-main-save .campus-editor-save{max-width:none}
.campus-main-save .campus-editor-save>span{flex-basis:auto;margin-right:8px}
.campus-is-dragging .campus-object-hover{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
html[data-theme=dark] .campus-object-toolbar{background:linear-gradient(145deg,#173e4bf5,#102b38f7);color:#f1e4c0;border-color:#baa16d;box-shadow:inset 0 1px #ddfffa2e,0 6px 24px #00172180}
html[data-theme=dark] body .campus-object-icon{background:linear-gradient(155deg,#568d94,#234d5b 55%,#143644)!important;color:#f8e9ba!important;border-color:#c1a56d!important;box-shadow:inset 0 1px #ddfffa8a,0 2px 4px #00172160!important}
html[data-theme=dark] body .campus-object-icon:is(:hover,:focus-visible),html[data-theme=dark] body .campus-object-icon[aria-expanded=true]{background:linear-gradient(155deg,#6caeb1,#236773)!important;color:#fff5d8!important}
html[data-theme=dark] body .campus-object-icon[data-campus-done]{background:linear-gradient(155deg,#6caa8e,#285e59)!important}
@media(hover:none),(pointer:coarse){.campus-object-hover{opacity:1;visibility:visible;pointer-events:auto;gap:3px}.campus-object-hover .campus-object-title{display:none}.campus-object-hover .campus-object-icon{flex-basis:29px;width:29px;height:29px;min-height:29px;padding:5px!important}.campus-object-hover{bottom:calc(100% + 2px)}}
@media(max-width:520px){.campus-object-toolbar{padding:7px;border-radius:10px}.campus-object-toolbar-row{gap:4px}.campus-object-toolbar-title{font-size:11px;margin-bottom:5px}.campus-object-toolbar .campus-object-icon{flex-basis:29px;width:29px;height:29px;min-height:29px;padding:5px!important}.campus-object-title{max-width:95px;font-size:9px;padding:6px}.campus-main-save{justify-content:stretch}.campus-main-save .campus-editor-save{width:100%;margin:0}.campus-main-save .campus-editor-save>span{flex-basis:100%;font-size:11px}.campus-object-slider{font-size:11px;margin-top:8px;padding-top:7px}.campus-object-swatches{gap:7px;margin-top:8px;padding-top:8px}}
@media(prefers-reduced-motion:reduce){.campus-object-hover{transition:none}}
