/* HEAVEN UNIFIED WORLD STUDIO v0.10.8.4 */
#inWorldEditorButton{position:absolute;top:12px;right:15px;z-index:71;min-width:120px;padding:10px 16px;font-size:12px;box-shadow:0 4px 20px #0009}
#planetEditorOverlay{background:transparent;backdrop-filter:none;display:flex;justify-content:flex-end;align-items:stretch;padding:12px;pointer-events:none}
#planetEditorOverlay .planet-editor-panel{pointer-events:auto;width:min(515px,94vw);max-width:100%;max-height:100%;margin:0;overflow:auto;background:rgba(9,19,29,.97);border:1px solid #3b677c;box-shadow:0 8px 45px #000a;padding:16px;scrollbar-color:#425b6a #13212d}
#planetEditorOverlay .planet-editor-panel .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
#planetEditorOverlay .planet-editor-panel .btn{min-width:0;font-size:11px;padding:9px 11px}
.heaven-editor-workspace{display:grid;gap:12px;border:1px solid #28475b;background:#102332b8;padding:12px;margin:12px 0}
.world-studio-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.world-studio-tabs .btn{min-width:0!important;font-size:10px!important;padding:8px 5px!important;letter-spacing:0!important}
.heaven-editor-workspace section{border-top:1px solid #24445b;padding-top:12px;display:grid;gap:9px}
.heaven-editor-workspace section label{font-size:11px;color:#a6c4d3;display:grid;gap:6px}
.heaven-editor-workspace input,.heaven-editor-workspace select{background:#071521;color:#eefaff;border:1px solid #315169;padding:8px;max-width:100%}
.ws-studio-list{display:grid;gap:12px;margin-top:17px}.ws-studio-map{min-height:0}.ws-studio-history{padding-top:12px}
@media(max-width:650px){#planetEditorOverlay{padding:5px}#planetEditorOverlay .planet-editor-panel{width:min(95vw,460px)}#inWorldEditorButton{right:8px;top:8px}}

/* Docked hierarchy and numeric inspector share the same save-authoritative object state. */
.ws-hierarchy,.ws-object-inspector,.ws-editor-launchers{display:grid;gap:9px;padding:12px;background:rgba(12,25,37,.84);border:1px solid #2a4555}
.ws-hierarchy h3,.ws-object-inspector h3,.ws-editor-launchers h3{margin:0;font-size:13px;letter-spacing:.06em}
.ws-object-list{display:grid;gap:4px;max-height:185px;overflow:auto;padding:3px}
.ws-object-entry{display:flex;align-items:center;justify-content:space-between;text-align:left;background:#142536;border:1px solid #254659;color:#d7efff;padding:7px 9px;cursor:pointer}
.ws-object-entry.selected,.ws-object-entry:hover{background:#24516b;border-color:#70b5de}
.ws-object-entry small{color:#8aa7b9}.ws-xyz{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.ws-xyz label{display:grid;gap:6px;min-width:0}.ws-xyz input{width:100%;min-width:0}

/* The original Character, HUD, Level and Game Forge workspaces dock inside the
   running world, without creating a second world session. */
#planetEditorOverlay .planet-editor-panel.studio-module-active{width:min(1120px,96vw);max-width:96vw;}
#planetEditorOverlay .studio-module-active > :not(.studio-module-host){display:none!important;}
#planetEditorOverlay .studio-module-host{display:block;min-width:0;min-height:0;overflow:auto;max-height:calc(100vh - 65px);}
.studio-module-toolbar{position:sticky;top:0;z-index:8;background:#112636;padding:12px;border-bottom:1px solid #44677b;}
.studio-module-content{min-width:0;min-height:0;padding:12px;}
.studio-module-content .heaven-character-workspace{min-height:500px;}
.studio-module-content .game-forge{min-height:480px;}

/* Modular cliff builder embedded in the actual F2 development dock */
.ws-wall-builder{padding:13px;background:rgba(15,34,45,.96);border:1px solid #4c7c91;display:grid!important;gap:10px;margin-top:10px}
.ws-wall-builder h3{margin:3px 0;font-size:17px}
.ws-wall-library,.ws-wall-toolbar{display:flex;flex-wrap:wrap;gap:6px}
.ws-wall-library .btn{flex:1 1 125px;min-width:0}
.ws-wall-builder p{margin:0}
.ws-wall-builder label{display:inline-flex;gap:7px;align-items:center;font-size:11px}
.ws-wall-builder label input[type=number]{max-width:65px}
.ws-wall-builder details{border-top:1px solid #355269;padding:10px 0}
.ws-wall-builder details summary{cursor:pointer;color:#b9eaff;letter-spacing:.04em}
.ws-wall-builder .ws-xyz label{display:grid;gap:4px}

.world-studio-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}

/* Cursor-based asset placement controls; no full-screen overlay intercepting the scene. */
.ws-object-builder{padding:13px;background:rgba(15,34,45,.96);border:1px solid #4c7c91;display:grid!important;gap:10px;margin-top:10px}
.ws-object-builder h3{margin:2px 0;font-size:15px}
.ws-object-builder .row input[type=search]{flex:1 1 150px;min-width:0}
.ws-object-builder .row select{flex:1 1 120px;min-width:0}
.ws-object-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;max-height:260px;overflow:auto;scrollbar-color:#42637b #13212d}
.ws-object-choices button{text-align:left;justify-content:flex-start;min-width:0!important;white-space:normal;overflow-wrap:anywhere;letter-spacing:0!important}
#wsObjectPlacementStatus{min-height:27px;color:#acddeb}


/* Always-visible owner-only access to the solid planet map boundary. */
#inWorldDomeButton{position:absolute;top:61px;right:15px;z-index:71;min-width:157px;max-width:220px;padding:10px 14px;font-size:11px;letter-spacing:.06em;background:#092c37;border:1px solid #09d7f5;color:#c9faff;box-shadow:0 0 18px #00b9ed47}
#inWorldDomeButton:hover,#inWorldDomeButton:focus-visible{background:#11556a;border-color:#87f6ff;box-shadow:0 0 21px #00d7fa88}
#inWorldDomeButton[data-dome-active="true"]{background:#125665;border-color:#60edff}
#wsDomeQuickSpawn{width:100%;min-height:42px;background:#105e72!important;border:1px solid #1edfff!important;color:#ecfeff!important;font-weight:700}
#wsDomeQuickSpawn:hover{background:#16859b!important}
[data-studio-section="boundary"]{padding:13px;background:rgba(4,33,47,.91);border:1px solid #216c81!important;gap:12px!important}
[data-studio-section="boundary"] h3{margin:0;font-size:14px;letter-spacing:.035em}
#wsDomeStatus{padding:9px 11px;background:#09212d;border-left:3px solid #29daef;overflow-wrap:anywhere}
#wsDomeBadge{color:#b7faff;border:1px solid #24bcdb}
@media(max-width:650px){#inWorldDomeButton{right:8px;top:59px;min-width:130px;font-size:10px;padding:8px 9px}}


/* Interactive dome handles are drawn on top of the real 3D world (never a menu mockup).
   All pointer input outside the handles continues to reach the existing level editor. */
.world-dome-transform-gizmo{position:absolute;inset:0;z-index:79;width:100%;height:100%;pointer-events:none;overflow:hidden;user-select:none;-webkit-user-select:none}
.world-dome-transform-gizmo [data-dome-handle]{pointer-events:all;cursor:grab;touch-action:none;filter:drop-shadow(0 2px 4px #000a)}
.world-dome-transform-gizmo [data-dome-handle="rotate"]{pointer-events:stroke;cursor:crosshair}
.world-dome-transform-gizmo [data-dragging] [data-dome-handle]{cursor:grabbing}
.world-dome-transform-gizmo [data-line],.world-dome-transform-gizmo text{pointer-events:none}

/* HEAVEN editor asset catalog: compact, initially collapsed, one active tool. */
.heaven-editor-workspace [data-studio-section][hidden]{display:none!important}
.ws-tools-dropdown{border:1px solid #365d76;background:#0b1b2a;border-radius:8px;min-width:0}
.ws-tools-dropdown>summary{cursor:pointer;padding:12px 14px;font-size:12px;font-weight:700;letter-spacing:.06em;color:#ddf5ff;display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none}
.ws-tools-dropdown>summary::-webkit-details-marker{display:none}
.ws-tools-dropdown>summary::before{content:'▸';color:#7fd8f0;font-size:17px}
.ws-tools-dropdown[open]>summary::before{content:'▾'}
#wsActiveTool{color:#8bbdd3;font-size:10px;font-weight:500;letter-spacing:.02em;text-align:right}
.ws-tools-dropdown .world-studio-tabs{border-top:1px solid #34556b;padding:9px;max-height:230px;overflow:auto;grid-template-columns:repeat(3,minmax(0,1fr))}
.ws-tool-pane{min-width:0}
.ws-tool-pane>.form-grid{min-width:0}
.ws-object-choices,.ws-wall-library{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ws-object-choices .btn,.ws-wall-library .btn{display:flex;flex-direction:column;align-items:stretch;text-align:left;gap:8px;border:1px solid #365b6e;background:#0e2432;min-width:0!important;min-height:0}
.ws-object-choices .btn.primary,.ws-wall-library .btn.primary{border-color:#81def4;box-shadow:inset 0 0 0 1px #40c1de}
.ws-asset-preview{display:flex;align-items:center;justify-content:center;width:100%;height:100px;min-width:0;flex-shrink:0;background:radial-gradient(ellipse,#2b4353 0%,#101e2b 85%);border:1px solid #304c5d;border-radius:5px;color:#87a3b5;font-size:10px;overflow:hidden;text-align:center}
.ws-asset-preview img{width:100%;height:100%;object-fit:contain;display:block}
.ws-asset-info{display:flex;flex-direction:column;gap:4px;min-width:0;overflow-wrap:anywhere}
.ws-asset-info strong{font-size:11px;font-weight:600;line-height:1.3;color:#e4f5fc}
.ws-asset-info small{font-size:10px;color:#90afc1;line-height:1.25}
.foliage-asset-browser{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:360px}
.foliage-asset-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:7px;min-width:0;min-height:130px;padding:8px;background:#0b1e2d;border-color:#34556b}
.foliage-asset-item input{width:17px;height:17px}
.foliage-asset-item .ws-asset-preview{order:-1;width:100%;height:90px}
.foliage-asset-item .ws-asset-info{flex:1}
.foliage-asset-item .ws-asset-info small{margin:0}
@media(max-width:420px){.ws-tools-dropdown .world-studio-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.ws-asset-preview{height:82px}.foliage-asset-item .ws-asset-preview{height:78px}}

/* Fix object library obscuration: the catalog is readable instead of inheriting
   oversized menu-button textures and clipped two-row scrolling. */
#planetEditorOverlay .ws-object-choices{max-height:min(60vh,570px);overflow-y:auto;overflow-x:hidden;align-content:start;min-height:200px;overscroll-behavior:contain;padding:5px}
#planetEditorOverlay .ws-object-choices .btn,
#planetEditorOverlay .ws-wall-library .btn{background:#0c2636!important;background-image:none!important;border:1px solid #3a657a!important;padding:8px!important;filter:none;box-shadow:none!important;isolation:auto}
#planetEditorOverlay .ws-object-choices .btn.primary,
#planetEditorOverlay .ws-wall-library .btn.primary{background:#174156!important;border-color:#8ad9f0!important}
#planetEditorOverlay .ws-object-choices .btn::before,
#planetEditorOverlay .ws-object-choices .btn::after,
#planetEditorOverlay .ws-wall-library .btn::before,
#planetEditorOverlay .ws-wall-library .btn::after{display:none!important}
#planetEditorOverlay .ws-asset-preview{position:relative;z-index:1}
#planetEditorOverlay .ws-asset-preview img{position:relative;z-index:1;opacity:1;visibility:visible}
/* While placing, collapse the sidebar to a small, accessible owner-only handle.
   The active placement tool, preview and WebSocket editor session remain intact. */
#planetEditorOverlay .planet-editor-panel.ws-view-scene{width:min(345px,94vw);max-height:165px;align-self:flex-start;overflow:auto;padding:10px}
#planetEditorOverlay .planet-editor-panel.ws-view-scene > :not(:first-child){display:none!important}
#planetEditorOverlay .planet-editor-panel.ws-view-scene > .row:first-child{gap:6px;align-items:center}
#planetEditorOverlay .planet-editor-panel.ws-view-scene h2{font-size:15px}
#wsPanelVisibility{white-space:nowrap}
@media(max-width:520px){#planetEditorOverlay .ws-object-choices{grid-template-columns:repeat(2,minmax(0,1fr));max-height:52vh}#planetEditorOverlay .ws-asset-preview{height:80px}}

/* Live world studio is a movable editor dock, never a full-screen modal.
   Compact on phones so the 3D camera, touch controls and placement remain usable. */
#planetEditorOverlay{z-index:86;overflow:visible;pointer-events:none}
#planetEditorOverlay .planet-editor-panel{
 position:absolute;top:70px;right:10px;left:auto;bottom:auto;
 width:min(450px,45vw);max-width:calc(100vw - 16px);
 max-height:min(78dvh,780px);overscroll-behavior:contain;pointer-events:auto;
}
#planetEditorOverlay .ws-dock-header{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding-bottom:7px;border-bottom:1px solid #30546b}
#planetEditorOverlay .ws-dock-header>div{flex:1 1 100%;min-width:0}
#planetEditorOverlay .ws-dock-header h2{font-size:16px;line-height:1.18;margin:3px 0}
#planetEditorOverlay .ws-dock-header .btn{min-width:0;min-height:37px;white-space:nowrap;padding:7px 10px}
#wsDockHandle{display:inline-flex;align-items:center;justify-content:center;min-width:59px;min-height:37px;touch-action:none;user-select:none;cursor:grab;
 border:1px dashed #5a8ba4;border-radius:5px;background:#113347;color:#b5eaff;font:600 10px system-ui;letter-spacing:.07em}
#wsDockHandle:active{cursor:grabbing;background:#24627e}
#planetEditorOverlay .planet-editor-panel.ws-view-scene{
 width:min(290px,87vw);max-height:min(202px,42dvh);overflow:auto;align-self:auto;
}
#planetEditorOverlay .planet-editor-panel.ws-view-scene > :not(:first-child){display:none!important}
#planetEditorOverlay .ws-dock-header button,
#planetEditorOverlay .ws-tools-dropdown button{touch-action:manipulation}
@media(max-width:760px){
 #planetEditorOverlay{padding:0}
 #planetEditorOverlay .planet-editor-panel{
  top:max(73px,calc(env(safe-area-inset-top) + 63px));right:6px;
  width:min(360px,92vw);max-height:65dvh;max-width:calc(100vw - 12px);
  padding:10px;box-shadow:0 9px 35px #000b;
 }
 #planetEditorOverlay .planet-editor-panel.ws-view-scene{
  width:min(270px,85vw);max-height:min(190px,40dvh);
 }
 #planetEditorOverlay .ws-dock-header .btn{font-size:10px;padding:7px}
 #wsDockHandle{min-width:50px}
}
@media(max-height:490px){
 #planetEditorOverlay .planet-editor-panel{top:6px;max-height:76dvh}
 #planetEditorOverlay .planet-editor-panel.ws-view-scene{max-height:140px}
}

/* Hover-to-delete guidance stays outside the movable World Studio dock. */
.world-hover-hint{
 position:absolute;left:50%;top:max(58px,env(safe-area-inset-top));
 transform:translateX(-50%);pointer-events:none;z-index:88;
 max-width:min(440px,85vw);padding:9px 16px;border-radius:9px;
 background:rgba(5,37,53,.89);border:1px solid #59f0fa;
 color:#d9ffff;box-shadow:0 0 18px #00d7fc70;
 text-align:center;font:700 11px/1.3 system-ui;letter-spacing:.08em;
}
.world-hover-hint[hidden]{display:none!important}
