#campus-editor{border:1px solid #d9e2d5;border-radius:18px;overflow:hidden;background:#f4f6ef;margin-bottom:24px}.campus-heading{padding:24px;display:flex;align-items:start;justify-content:space-between;gap:18px}.campus-heading h2{margin:4px 0 8px}.campus-heading p{max-width:680px;font-size:13px;color:#5a7062}.campus-badge{color:#735b2d;background:#f7ebce;border-radius:20px;padding:6px 10px;font-size:11px;white-space:nowrap}.campus-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px 20px;border-block:1px solid #d9e2d5;background:#fff}.campus-toolbar label{margin:0;min-width:140px}.campus-toolbar button{font-size:12px;min-height:42px}.campus-toolbar button[aria-pressed=true]{background:#174d3d;color:white}.campus-body{display:grid;grid-template-columns:minmax(0,1fr) 265px}.campus-viewport{height:580px;position:relative;min-width:0;background:#e7ecdf;touch-action:none}.campus-viewport canvas{display:block;width:100%;height:100%;touch-action:none}.campus-inspector{padding:18px;background:#fff;border-left:1px solid #d9e2d5;max-height:660px;overflow:auto}.campus-inspector h3{margin:0 0 12px}.campus-inspector input,.campus-inspector select{min-width:0;width:100%}.campus-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.campus-inspector small{display:block;color:#657666;margin:10px 0;line-height:1.5}.campus-footer{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:12px 20px;font-size:12px;color:#536756;border-top:1px solid #d9e2d5}.campus-danger{color:#a83b35}.campus-help{position:absolute;bottom:12px;left:12px;right:12px;pointer-events:none;font-size:12px;background:#ffffffe8;padding:10px;border-radius:10px;color:#264d3c}.campus-empty{padding:35px;max-width:600px}.campus-status-error{color:#a83b35}#campus-editor button:focus-visible{outline:3px solid #b7cd80;outline-offset:2px}@media(max-width:900px){.campus-body{grid-template-columns:1fr}.campus-inspector{border-left:0;border-top:1px solid #d9e2d5;max-height:none}.campus-viewport{height:430px}.campus-heading{padding:18px;flex-direction:column}.campus-toolbar{padding:10px}.agent-view-toolbar .segmented{flex-wrap:wrap}.campus-inspector form{max-width:600px}}

.campus-expand{position:absolute;right:12px;bottom:76px;z-index:21;background:#fffffff0;font-size:12px;min-height:44px}.campus-viewport:fullscreen{width:100vw;height:100vh;height:100dvh}.campus-viewport canvas[data-editing=true]{cursor:move}.campus-viewport .floor-navigation{z-index:21}

.campus-floor-buttons{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.campus-floor-buttons [aria-pressed=true]{background:#e4edda;border-color:#729463;color:#214d37}.campus-floor-buttons:before{content:'Pavimentos lado a lado';display:block;width:100%;font-size:11px;color:#62745e}

.campus-geometry{margin:14px 0}.campus-geometry summary{cursor:pointer;color:#526b58;font-size:12px;padding:10px 0}.campus-geometry[open] summary{margin-bottom:8px}

#campus-tools{gap:8px}#campus-tools .campus-icon-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 56px;width:56px;height:56px;padding:7px}#campus-tools .campus-icon-button svg{width:40px;height:42px;pointer-events:none}#campus-tools .campus-icon-button:hover:not(:disabled){border-color:#729463;box-shadow:0 2px 6px #204c3a14}
.campus-wall-help{font-size:12px;line-height:1.5;padding:10px;background:#fff4da;border-radius:8px}.campus-gesture-hint,.floor-nav-gesture-hint{font-size:12px;color:#526b58;align-self:center;padding:6px;white-space:normal}
#campus-editor [data-add]{touch-action:none;cursor:grab}#campus-editor [data-add]:active{cursor:grabbing}.campus-placement-hint{position:absolute;z-index:25;pointer-events:none;max-width:220px;font-size:12px;padding:8px 10px;border-radius:8px;background:#e8f5e9;color:#205238;border:1px solid #77aa81;box-shadow:0 2px 8px #20372826}.campus-placement-hint.invalid{background:#fff0ea;border-color:#bd6d59;color:#7e3023}.campus-placement-hint[hidden]{display:none}
#campus-editor [data-tool=wall]{touch-action:none;cursor:grab}
.campus-alignment-status{position:absolute;top:82px;left:12px;z-index:24;pointer-events:none;max-width:calc(100% - 24px);box-sizing:border-box;padding:8px 12px;border-radius:8px;background:#fff0fb;color:#81215f;border:1px solid #bb4c99;font-size:12px;box-shadow:0 2px 6px #58213b1a}.campus-alignment-status[hidden]{display:none}

.campus-floor-buttons[data-stacked=true]:before{content:"Pavimentos · selecione para editar"}

.campus-room-measures{margin:16px 0}.campus-room-measures h4{margin:0 0 12px}.campus-room-measures output{display:block;margin-top:10px;padding:8px;border-radius:8px;background:#edf3e6;color:#214d37;font-size:13px}

/* Tool rail is local to the canvas; it never covers the drawing or inspector. */
#campus-editor .campus-body{grid-template-columns:76px minmax(0,1fr) 265px}
#campus-tools{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:center;gap:7px;padding:10px 6px;max-height:580px;overflow-y:auto;overflow-x:hidden;border:0;border-right:1px solid #d9e2d5;scrollbar-width:thin}
#campus-tools[hidden]{display:none}
#campus-tools .campus-tool-section{font-size:9px;color:#657666;text-align:center;max-width:64px;border-top:1px solid #d9e2d5;padding-top:8px;margin-top:4px}
#campus-tools output{font-size:10px;max-width:62px;overflow-wrap:anywhere}
#campus-tools #campus-measure-clear{width:60px;font-size:10px;padding:4px}
#campus-editor .campus-body:has(#campus-tools[hidden]){grid-template-columns:minmax(0,1fr) 265px}
@media(max-width:900px){#campus-editor .campus-body{grid-template-columns:66px minmax(0,1fr)}#campus-editor .campus-body:has(#campus-tools[hidden]){grid-template-columns:minmax(0,1fr)}#campus-tools{max-height:430px;padding:8px 3px}#campus-tools .campus-icon-button{width:50px;flex-basis:50px;height:50px}#campus-editor .campus-inspector{grid-column:1/-1}}

.campus-alignment-status.campus-seat-aligned{color:#216847;background:#edf8ee;border-color:#65a47d}
.campus-npc-popup{position:absolute;z-index:35;width:280px;max-width:calc(100% - 16px);box-sizing:border-box;padding:18px 20px;background:#fffef6;border:1px solid #aec3ad;border-radius:14px;box-shadow:0 8px 28px #233c4033;color:#214938;touch-action:auto}.campus-npc-popup[hidden]{display:none}.campus-npc-popup h3{margin:5px 28px 10px 0;font-size:17px}.campus-npc-popup p{margin:8px 0 12px;line-height:1.5}.campus-npc-popup small{display:block;font-size:12px;line-height:1.5;color:#617465}.campus-npc-popup button{position:absolute;right:8px;top:8px;width:32px;height:32px;padding:0;font-size:24px;border:0;background:transparent;color:#214938;cursor:pointer}

.campus-floor-area{display:flex;flex-wrap:wrap;align-items:end;gap:10px;padding:12px;background:#fff;border:1px solid #d9e2d5;border-radius:12px;flex-basis:100%}.campus-floor-area label{flex:1 1 140px;max-width:220px}.campus-floor-area small{flex-basis:100%}.campus-floor-area output{font-size:12px;color:#486657;padding:10px 0}

.campus-explore{position:absolute;inset:0;z-index:80;background:#e7ecdf;display:flex;flex-direction:column;min-width:0}.campus-explore-bar{display:flex;align-items:center;gap:8px;padding:8px;background:#ffffffed;flex-wrap:wrap}.campus-explore-bar label{display:flex;align-items:center;gap:8px;flex:1;min-width:140px}.campus-explore-bar select{min-width:0;max-width:100%}.campus-explore [data-stage]{flex:1;min-height:120px;position:relative}.campus-explore [data-stage] canvas{display:block;touch-action:none;outline:none}.campus-explore-cross{position:absolute;left:50%;top:50%;pointer-events:none;color:white;text-shadow:0 1px 3px #000;font-size:23px}.campus-explore-hud{padding:8px 12px;background:#ffffffed;font-size:13px}.campus-explore-hud p{margin:0 0 4px}.campus-explore-touch{display:flex;gap:6px;margin-top:6px}.campus-explore-touch button{touch-action:none}.campus-explore-touch button:last-child{margin-left:auto}

.campus-explore-cross{z-index:2}

.campus-explore:fullscreen{width:100vw;height:100vh}

.campus-explore-stick,.campus-explore-look{display:none}.campus-explore-action{position:absolute;right:14px;bottom:14px;z-index:4;min-height:46px;min-width:130px;background:#235743;color:#fff;border-radius:14px;touch-action:manipulation}.campus-explore-action:disabled{background:#e5ece8;color:#647b71}
@media (pointer:coarse),(max-width:700px){
 .campus-explore{position:fixed;inset:0;width:100vw;height:100dvh;z-index:10000;overscroll-behavior:none;padding-top:env(safe-area-inset-top);box-sizing:border-box;touch-action:none}
 .campus-explore-bar{gap:6px;padding:6px 10px;flex-shrink:0}.campus-explore-bar strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.campus-explore-bar button{min-height:44px;padding:8px 10px;white-space:nowrap}.campus-explore-bar label{flex:1 1 100%;min-width:0}.campus-explore-bar select{flex:1;width:100%;min-height:44px}.campus-explore-bar [data-fullscreen]{display:none}
 .campus-explore[data-started=true]:not([data-choosing=true]) .campus-explore-bar label,.campus-explore[data-started=true]:not([data-choosing=true]) [data-enter]{display:none}
 .campus-explore [data-stage]{min-height:0}.campus-explore-hud{position:absolute;z-index:3;top:calc(env(safe-area-inset-top) + 64px);left:10px;right:10px;padding:7px 10px;border-radius:10px;pointer-events:none;font-size:12px;max-height:74px;overflow:auto;background:#ffffffe0}.campus-explore-hud p{margin:0}.campus-explore-hud small,.campus-explore-touch{display:none}
 .campus-explore:not([data-started=true]) .campus-explore-hud,.campus-explore[data-choosing=true] .campus-explore-hud{top:auto;bottom:calc(env(safe-area-inset-bottom) + 16px)}
 .campus-explore-stick{display:block;position:absolute;z-index:5;left:max(18px,env(safe-area-inset-left));bottom:calc(env(safe-area-inset-bottom) + 22px);width:116px;height:116px;border-radius:50%;background:#ffffff70;border:2px solid #ffffffc0;box-shadow:0 2px 14px #16362d33;touch-action:none;user-select:none;-webkit-user-select:none}
 .campus-explore-stick span{position:absolute;left:50%;top:50%;width:46px;height:46px;border-radius:50%;background:#285d4cdd;border:2px solid #e9f3ed;transform:translate(calc(-50% + var(--stick-x,0px)),calc(-50% + var(--stick-y,0px)));pointer-events:none}.campus-explore-stick[data-active=true]{background:#ffffffa0}
 .campus-explore-action{right:max(18px,env(safe-area-inset-right));bottom:calc(env(safe-area-inset-bottom) + 42px);min-height:56px;min-width:112px;max-width:45%;padding:12px 16px;font-weight:600;font-size:14px;box-shadow:0 2px 12px #16362d33}
 .campus-explore-look{display:block;position:absolute;right:14px;top:100px;z-index:3;pointer-events:none;color:#315a4a;background:#ffffffb0;border-radius:8px;padding:5px 8px;font-size:11px}
 .campus-explore:not([data-started=true]) .campus-explore-stick,.campus-explore:not([data-started=true]) .campus-explore-action,.campus-explore:not([data-started=true]) .campus-explore-look,.campus-explore[data-choosing=true] .campus-explore-stick,.campus-explore[data-choosing=true] .campus-explore-action,.campus-explore[data-choosing=true] .campus-explore-look{display:none}
}
@media (pointer:coarse) and (orientation:landscape),(max-width:700px) and (orientation:landscape){.campus-explore-stick{width:96px;height:96px;bottom:14px}.campus-explore-action{bottom:26px}.campus-explore-hud{right:36%;max-height:48px}.campus-explore-look{top:16px}}

.campus-explore-menu{position:absolute;z-index:8;left:50%;top:50%;transform:translate(-50%,-50%);width:min(320px,calc(100% - 24px));max-height:calc(100% - 20px);overflow:auto;box-sizing:border-box;background:#fffffff5;box-shadow:0 8px 36px #16362d44;border:1px solid #b9cfc2;border-radius:16px;padding:16px;touch-action:pan-y}.campus-explore-menu h3{margin:0 0 12px;font-size:16px}.campus-explore-menu [data-options]{display:grid;gap:8px}.campus-explore-menu button{min-height:44px;width:100%;text-align:left}.campus-explore-menu [data-dismiss]{margin-top:12px;text-align:center}.campus-explore-menu[hidden],.campus-explore-effect[hidden]{display:none}.campus-explore-effect{position:absolute;inset:0;z-index:3;display:grid;place-items:center;background:#e7ecdfef;color:#315a4a;font-size:17px;text-align:center;padding:20px;pointer-events:none}
.campus-explore:has([data-menu]:not([hidden])){touch-action:pan-y}.campus-explore:has([data-menu]:not([hidden])) .campus-explore-stick{pointer-events:none;opacity:.4}
