.structure-ui > .modal { background:#0009 !important; }
.structure-ui .modal-inner.ui-modal { position:relative;width:min(1100px,92vw,calc(80dvh * var(--structure-ratio,1.5))) !important;max-width:92vw !important;height:auto !important;max-height:80dvh !important;aspect-ratio:var(--structure-ratio,1.5);padding:0 !important;border:0;border-radius:14px;background:#0b1415;box-shadow:0 0 0 1px #b9ab7840,0 12px 36px #0007;overflow:hidden;display:flex;flex-direction:column; }
.structure-ui .ui-modal__content { flex:1;min-height:0;margin:0 !important;padding:0;overflow:auto; }
.structure-ui__controls { position:absolute;inset:0 0 auto;z-index:20;display:grid;grid-template-columns:1fr minmax(0,2fr) 1fr;align-items:start;gap:16px;padding:max(16px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) 36px max(20px,env(safe-area-inset-left));background:linear-gradient(#071112d9,#07111270,transparent);pointer-events:none; }
.structure-ui__controls button { pointer-events:auto;display:grid;place-items:center;width:48px;height:48px;min-height:44px;flex:none;border:1px solid #e7cd7b;border-radius:4px;background:linear-gradient(145deg,#18362e,#081914);color:#f4df9b;padding:9px;box-shadow:inset 0 0 0 2px #081713,inset 0 0 0 3px #b9a45d99,0 2px 5px #0008;cursor:pointer; }
.structure-ui__controls button[hidden] { display:none; }
.structure-ui__controls svg { display:block;width:28px;height:28px;filter:drop-shadow(0 1px 1px #000);pointer-events:none; }
.structure-ui__actions { display:flex;gap:10px;justify-self:end; }
.structure-ui__back { justify-self:start; }
.structure-ui__close { justify-self:end;font-size:24px;line-height:24px; }
.structure-ui__title { margin:6px 0 0;text-align:center;font:clamp(18px,2vw,28px) Georgia,serif;color:#f1e1b4;text-shadow:0 2px 5px #000; }
.structure-ui__controls button:hover { background:#233b37; }
.structure-ui__controls button:focus-visible { outline:2px solid #e5c982;outline-offset:3px; }
.structure-scene-viewport { display:flex;width:100%;height:100%;overflow:auto;align-items:safe center;justify-content:safe center; }
.structure-ui .structure-scene { flex:none;position:relative;width:100% !important;min-width:min(var(--structure-min-width),100%) !important;aspect-ratio:var(--structure-ratio);max-height:none;margin:auto;isolation:isolate; }
.structure-ui--panel .ui-modal__content { padding:84px 24px 24px; }
.structure-ui--panel > .modal { background:#0009 !important; }
.structure-ui--panel .modal-inner.ui-modal { background:#101c20;height:80dvh !important;aspect-ratio:auto; }
.structure-ui .city-hub-toolbar { position:absolute;bottom:16px;left:20px;z-index:21;padding:0; }
.structure-ui .city-hub-toolbar:empty { display:none; }
.structure-ui--child-open .structure-ui__controls { visibility:hidden; }
.structure-ui .city-hub-viewport { max-height:none; }
@media (max-width:600px) {
    .structure-ui__controls { gap:6px;padding-left:8px;padding-right:8px;grid-template-columns:auto minmax(0,1fr) auto; }
    .structure-ui__controls button { width:44px;height:44px;padding:7px; }
    .structure-ui__actions { gap:6px; }
    .structure-ui__title { font-size:18px; }
    .structure-ui:not(.structure-ui--panel) .modal-inner.ui-modal { height:min(80dvh,calc(var(--structure-min-width) / var(--structure-ratio))) !important;aspect-ratio:auto; }
    .structure-ui .structure-scene { min-width:var(--structure-min-width) !important; }
    .structure-ui--panel .ui-modal__content { padding:82px 12px 20px; }
}
