/* v0.7.5.6.5 — 화면폭 안전 통합 레이아웃 */
:root{
  --gc-side-width:clamp(410px,28vw,520px);
  --gc-side-discovery:clamp(640px,38vw,920px);
  --gc-side-life:clamp(560px,34vw,760px);
  --gc-command-bg:rgba(8,11,21,.96);
  --gc-layout-gap:16px;
}
*{box-sizing:border-box;min-width:0}
html,body{width:100%;max-width:100%;overflow-x:hidden!important}
body{overscroll-behavior-x:none}
img,svg,canvas,video{max-width:100%}
.app-shell{width:100%;max-width:2560px;min-width:0;margin:0 auto;padding:clamp(10px,1.25vw,24px) clamp(10px,1.5vw,28px) 14px;overflow:clip}
.topbar{align-items:flex-start;flex-wrap:wrap;min-width:0}.topbar>div:first-child{flex:0 0 auto}.top-actions{flex:1 1 760px;min-width:0;flex-wrap:wrap;justify-content:flex-end}.top-actions>*{min-width:0;max-width:100%}
.workspace{display:grid;width:100%;max-width:100%;min-width:0;grid-template-columns:minmax(0,1fr) minmax(360px,var(--gc-side-width))!important;gap:var(--gc-layout-gap);align-items:start}
body.panel-mode-discovery{--gc-side-width:var(--gc-side-discovery)}body.panel-mode-lifeobserver{--gc-side-width:var(--gc-side-life)}
body.panel-force-wide.panel-mode-discovery{--gc-side-width:min(44vw,920px)}body.panel-force-wide.panel-mode-lifeobserver{--gc-side-width:min(40vw,800px)}body.panel-force-wide:not(.panel-mode-discovery):not(.panel-mode-lifeobserver){--gc-side-width:min(36vw,680px)}body.panel-user-width{--gc-side-width:var(--gc-user-side-width)}
body.panel-hidden .workspace{grid-template-columns:minmax(0,1fr)!important}body.panel-hidden .control-panel{display:none}
.stage-panel{position:sticky;top:10px;align-self:start;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;width:100%;max-width:100%;min-width:0;height:calc(100vh - 88px);min-height:620px;overflow:hidden}
.stage-panel::after{display:none!important}
.stage-command-bar{grid-row:1;position:relative;z-index:12;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:62px;padding:8px 10px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(17,21,37,.98),var(--gc-command-bg))}
.stage-command-left,.stage-command-right{display:flex;align-items:center;gap:8px;min-width:0}.stage-command-left{flex-wrap:wrap}.stage-command-right{justify-content:flex-end;flex-wrap:wrap}
.stage-command-bar :is(.stage-overlay,.compact-help,.stage-view-actions,.zoom-controls,.global-time-control){position:static!important;inset:auto!important;margin:0!important;transform:none!important}
.stage-command-bar .stage-overlay{font-size:11px;white-space:normal}.stage-command-bar .compact-help{flex:1 1 260px;max-width:430px;white-space:normal;font-size:9px;line-height:1.35;padding:6px 8px}
.stage-command-bar .stage-view-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:0;background:transparent;border:0;backdrop-filter:none}.stage-command-bar .stage-view-actions[hidden]{display:none!important}.stage-command-bar .stage-view-actions span{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stage-command-bar .global-time-control{display:grid;grid-template-columns:auto minmax(100px,1fr) auto;align-items:center;gap:6px;width:auto;min-width:0;max-width:100%;padding:6px 7px;box-shadow:none}.stage-command-bar .global-time-head{margin:0;display:grid;gap:1px}.stage-command-bar .global-time-head small{display:block}.stage-command-bar .global-time-row{min-width:0}.stage-command-bar .stage-speed-presets{display:flex;flex-wrap:wrap;margin:0;gap:3px}.stage-command-bar .stage-speed-presets button{min-width:27px;padding:5px 4px}.stage-command-bar .zoom-controls{padding:5px;background:rgba(255,255,255,.035);flex:0 0 auto}
.formation-status-bar{grid-row:2;position:relative;z-index:10;display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.25fr) auto;align-items:center;gap:10px;padding:7px 12px;border-bottom:1px solid rgba(110,231,255,.12);background:linear-gradient(90deg,rgba(42,51,99,.32),rgba(14,23,45,.82),rgba(8,10,19,.96))}.formation-status-bar[hidden]{display:none!important}
.formation-copy{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;align-items:center;min-width:0}.formation-copy span{grid-row:1/3;color:#75e8ff;font-size:8px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.formation-copy strong{font-size:11px}.formation-copy small{color:var(--muted);font-size:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.formation-step-line{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;min-width:0}.formation-step-line i{font-style:normal;text-align:center;padding:5px 4px;border-radius:8px;background:rgba(255,255,255,.035);color:#737789;font-size:8px;border:1px solid transparent;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.formation-step-line i.reached{color:#dff9ff;border-color:rgba(110,231,255,.18);background:rgba(110,231,255,.07)}.formation-step-line i.current{color:#fff;border-color:rgba(255,210,141,.45);background:rgba(255,210,141,.10);box-shadow:0 0 14px rgba(255,210,141,.08)}
#formationZoomBtn{border:1px solid rgba(110,231,255,.23);border-radius:9px;background:rgba(110,231,255,.06);color:#dffaff;padding:7px 10px;font-size:9px;cursor:pointer;white-space:normal}
.stage-canvas-wrap{grid-row:3;position:relative;min-height:0;overflow:hidden;background:#03040a}.stage-canvas-wrap::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 100px rgba(0,0,0,.56),inset 0 0 20px rgba(120,100,255,.05)}#universeCanvas{position:absolute;inset:0;width:100%;height:100%}.stage-canvas-wrap .impact-card{left:16px;bottom:14px}
.stage-panel>.timeline{grid-row:4;position:relative!important;inset:auto!important;margin:0;border-width:1px 0 0;border-radius:0;background:rgba(6,8,16,.98);backdrop-filter:none;padding:9px 12px 8px;z-index:12}.stage-panel>.timeline .timeline-help{display:none}.stage-panel>.timeline .timeline-position{right:64px;top:8px}
body[data-view-mode="biosphere"] .formation-status-bar,body[data-view-mode="planet"] .formation-status-bar,body[data-view-mode="blackhole"] .formation-status-bar{display:none!important}
.control-panel{position:relative;isolation:isolate;container-type:inline-size;container-name:sidepanel;width:100%;max-width:100%;min-width:0;overflow:hidden}.control-panel,.control-panel *{min-width:0}.control-panel :is(section,div,nav,header,footer,article,form,fieldset,label,button,input,select,output,p,h1,h2,h3,h4,small,span,dl,dt,dd,table,tbody,thead,tr,td,th,canvas){max-width:100%}.control-panel :is(p,small,span,b,strong,h2,h3,h4,dt,dd,button,label,td,th){overflow-wrap:anywhere;word-break:break-word}.control-panel canvas{display:block}
.panel-resize-handle{position:absolute;z-index:30;left:-8px;top:54px;bottom:12px;width:16px;cursor:ew-resize;touch-action:none}.panel-resize-handle::before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:3px;border-radius:99px;background:rgba(120,233,255,.15);transition:.18s ease}.panel-resize-handle:hover::before,.panel-resize-handle.dragging::before{background:rgba(120,233,255,.72);box-shadow:0 0 14px rgba(120,233,255,.42)}
.dashboard-mode-bar{flex-wrap:wrap;min-width:0}.panel-width-actions{display:flex;flex-wrap:wrap;gap:5px;margin-left:auto}.panel-width-actions button{border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.03);color:var(--text);padding:6px 8px;font-size:8px;cursor:pointer}.compact-dashboard-tabs{grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.dashboard-tabs{grid-template-columns:repeat(5,minmax(0,1fr));overflow:hidden}.dashboard-tabs button,.compact-dashboard-tabs button{min-width:0;max-width:100%;overflow:hidden}.dashboard-tabs :is(span,small),.compact-dashboard-tabs :is(span,small){max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.control-panel>#discoveryOverlay,.control-panel>#lifeObserverWindow{position:static!important;inset:auto!important;z-index:auto!important;width:100%!important;height:auto!important;min-width:0!important;min-height:0!important;max-width:100%!important;resize:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;overflow:hidden!important;padding:0!important;flex:1 1 auto}.control-panel>#discoveryOverlay.active-tab-panel,.control-panel>#lifeObserverWindow.active-tab-panel{display:flex!important;flex-direction:column}
.integrated-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(17,22,39,.98),rgba(7,9,18,.98));flex:0 0 auto;min-width:0}.integrated-panel-header .window-titlecopy{min-width:0;flex:1}.integrated-panel-header .eyebrow{margin:0 0 3px;color:#78e9ff;font-size:.68em;letter-spacing:.13em}.integrated-panel-header h2{margin:0;font-size:1.15em}.integrated-panel-header p{margin:4px 0 0;color:rgba(216,222,241,.72);font-size:.77em;line-height:1.35}.integrated-panel-header .window-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;flex:0 1 auto}.integrated-panel-header button{border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.04);color:var(--text);border-radius:9px;padding:7px 9px;cursor:pointer;font:inherit;white-space:normal}
.control-panel>#discoveryOverlay .observatory-content{width:100%;height:auto!important;min-height:0;flex:1;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}.control-panel>#discoveryOverlay :is(.observatory-tabs,.discovery-tabs,.compare-shelf,.observatory-workspace,.observatory-browser,.discovery-panel,.object-list-v56,.object-viewer-v56,.viewer-header-v56,.viewer-canvas-v56,.viewer-detail-tabs,.viewer-detail-panel,.viewer-actions-v56,.compact-counter-line,.filter-grid-v56,.result-line,.catalog-guide-v56,.catalog-class-summary,.comparison-current-actions,.comparison-slots-v56,.compare-card-v56,.comparison-matrix){min-width:0;max-width:100%}
.control-panel>#discoveryOverlay .observatory-tabs,.control-panel>#discoveryOverlay .discovery-tabs{grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.control-panel>#discoveryOverlay .observatory-tabs button,.control-panel>#discoveryOverlay .discovery-tabs button{min-width:0;white-space:normal;overflow-wrap:anywhere}.control-panel>#discoveryOverlay .compare-shelf{grid-template-columns:auto minmax(0,1fr) minmax(0,1fr) auto;overflow:hidden}.control-panel>#discoveryOverlay .compare-shelf button{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.control-panel>#discoveryOverlay .observatory-workspace{display:grid;grid-template-columns:minmax(280px,42%) minmax(0,58%);min-height:0;height:100%;width:100%;overflow:hidden}.control-panel>#discoveryOverlay .observatory-browser{min-height:0;overflow:hidden}.control-panel>#discoveryOverlay .discovery-panel{min-width:0;overflow:hidden}.control-panel>#discoveryOverlay .compact-counter-line{grid-template-columns:repeat(4,minmax(0,1fr))}.control-panel>#discoveryOverlay .filter-grid-v56{grid-template-columns:repeat(2,minmax(0,1fr))}.control-panel>#discoveryOverlay .filter-grid-v56 :is(input,select){width:100%;min-width:0;max-width:100%}.control-panel>#discoveryOverlay .result-line{flex-wrap:wrap}.control-panel>#discoveryOverlay .result-line small{text-align:left}.control-panel>#discoveryOverlay .object-list-v56{min-height:0;overflow-y:auto;overflow-x:hidden;padding-bottom:8px}.control-panel>#discoveryOverlay .object-list-v56 .discovery-object-card{grid-template-columns:minmax(0,1fr) auto;min-height:72px;max-width:100%}.control-panel>#discoveryOverlay .object-list-v56 .discovery-card-actions{max-width:110px}
.control-panel>#discoveryOverlay .object-viewer-v56{grid-template-rows:auto minmax(220px,1fr) auto minmax(72px,auto) auto;min-height:0;overflow:hidden;padding:12px}.control-panel>#discoveryOverlay .viewer-header-v56{flex-wrap:wrap}.control-panel>#discoveryOverlay .viewer-header-v56>div{min-width:0}.control-panel>#discoveryOverlay .viewer-header-v56 small{white-space:normal}.control-panel>#discoveryOverlay .viewer-canvas-v56{min-height:220px;width:100%}.control-panel>#discoveryOverlay .viewer-canvas-v56 canvas{width:100%!important;height:100%!important}.control-panel>#discoveryOverlay .viewer-detail-panel{max-height:180px;overflow-y:auto;overflow-x:hidden}.control-panel>#discoveryOverlay .viewer-actions-v56{grid-template-columns:repeat(3,minmax(0,1fr))}.control-panel>#discoveryOverlay .viewer-actions-v56 button{min-width:0;white-space:normal}.control-panel>#discoveryOverlay .discovery-viewer-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.control-panel>#discoveryOverlay .catalog-class-summary{display:flex;flex-wrap:wrap;overflow-x:hidden!important;max-height:none}.control-panel>#discoveryOverlay .catalog-class-summary button{flex:1 1 130px;min-width:0}.control-panel>#discoveryOverlay .integrated-comparison{position:absolute;inset:0;max-width:100%;overflow:hidden}.control-panel>#discoveryOverlay .comparison-current-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.control-panel>#discoveryOverlay .comparison-current-actions button:last-child{grid-column:1/-1}.control-panel>#discoveryOverlay .comparison-slots-v56{grid-template-columns:repeat(2,minmax(0,1fr))}
.control-panel>#lifeObserverWindow .life-window-content{width:100%;height:auto!important;min-height:0;flex:1;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.control-panel>#lifeObserverWindow :is(.life-tabs-v56,.life-panel-v56,.life-stage-v56,.life-overview-grid,.species-gallery-v56,.species-card-v56,.habitat-grid-v56,.lineage-v56,.lineage-row-v56,.life-actions-v56){min-width:0;max-width:100%}.control-panel>#lifeObserverWindow .life-tabs-v56{grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden}.control-panel>#lifeObserverWindow .life-tabs-v56 button{min-width:0;white-space:normal}.control-panel>#lifeObserverWindow .life-panel-v56{min-height:0;overflow-y:auto;overflow-x:hidden}.control-panel>#lifeObserverWindow .life-panel-v56[data-life-panel="overview"].active{grid-template-rows:minmax(240px,1fr) auto auto}.control-panel>#lifeObserverWindow .life-stage-v56{min-height:280px;width:100%}.control-panel>#lifeObserverWindow .life-stage-v56 canvas{width:100%!important;height:100%!important}.control-panel>#lifeObserverWindow .life-stage-label{max-width:min(72%,520px)}.control-panel>#lifeObserverWindow .life-overview-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.control-panel>#lifeObserverWindow .species-gallery-v56{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.control-panel>#lifeObserverWindow .species-card-v56{grid-template-columns:140px minmax(0,1fr);min-height:162px;max-width:100%;overflow:hidden}.control-panel>#lifeObserverWindow .species-card-v56 canvas{width:140px;height:140px;border-radius:14px}.control-panel>#lifeObserverWindow .species-card-v56>div{min-width:0}.control-panel>#lifeObserverWindow .species-card-v56 dl{grid-template-columns:repeat(2,minmax(0,1fr))}.control-panel>#lifeObserverWindow .habitat-grid-v56{grid-template-columns:repeat(2,minmax(0,1fr))}.control-panel>#lifeObserverWindow .lineage-row-v56{grid-template-columns:minmax(86px,110px) minmax(0,1fr)}.control-panel>#lifeObserverWindow .life-actions-v56{grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden}.control-panel>#lifeObserverWindow .life-actions-v56 button{min-width:0;white-space:normal}
body.window-focus-mode .workspace,body.discovery-open .workspace{grid-template-columns:minmax(0,1fr) minmax(360px,var(--gc-side-width))!important}body.window-focus-mode .control-panel,body.discovery-open .control-panel{display:flex!important;filter:none!important}.control-panel .compact-window-handle{display:none!important}.panel-restore-button{position:fixed;z-index:80;right:10px;top:50%;transform:translateY(-50%);display:none;border:1px solid rgba(110,231,255,.3);border-radius:12px 0 0 12px;background:rgba(8,12,23,.96);color:var(--text);padding:12px 9px;writing-mode:vertical-rl;cursor:pointer;box-shadow:0 12px 35px rgba(0,0,0,.4)}body.panel-hidden .panel-restore-button{display:block}
@container sidepanel (max-width:840px){.compact-dashboard-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}#discoveryOverlay .observatory-workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(300px,46%) minmax(330px,54%)}#discoveryOverlay .observatory-browser{border-right:0;border-bottom:1px solid var(--v56-line)}#discoveryOverlay .viewer-actions-v56{grid-template-columns:repeat(3,minmax(0,1fr))}#discoveryOverlay .comparison-slots-v56{grid-template-columns:1fr}#lifeObserverWindow .species-gallery-v56{grid-template-columns:1fr}#lifeObserverWindow .life-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#lifeObserverWindow .habitat-grid-v56{grid-template-columns:1fr}}
@container sidepanel (max-width:620px){.integrated-panel-header{flex-direction:column}.integrated-panel-header .window-actions{width:100%;justify-content:flex-start}.compact-dashboard-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}#discoveryOverlay .observatory-tabs,#discoveryOverlay .discovery-tabs{grid-template-columns:1fr}#discoveryOverlay .compare-shelf{grid-template-columns:repeat(2,minmax(0,1fr))}#discoveryOverlay .compare-shelf>span{grid-column:1/-1}#discoveryOverlay .compact-counter-line{grid-template-columns:repeat(2,minmax(0,1fr))}#discoveryOverlay .filter-grid-v56{grid-template-columns:1fr}#discoveryOverlay .filter-grid-v56 label.wide{grid-column:auto}#discoveryOverlay .viewer-actions-v56{grid-template-columns:repeat(2,minmax(0,1fr))}#discoveryOverlay .object-list-v56 .discovery-object-card{grid-template-columns:minmax(0,1fr)}#discoveryOverlay .object-list-v56 .discovery-card-actions{grid-column:1;grid-row:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}#lifeObserverWindow .life-tabs-v56{grid-template-columns:repeat(2,minmax(0,1fr))}#lifeObserverWindow .life-actions-v56{grid-template-columns:repeat(2,minmax(0,1fr))}#lifeObserverWindow .species-card-v56{grid-template-columns:112px minmax(0,1fr)}#lifeObserverWindow .species-card-v56 canvas{width:112px;height:112px}}
@container sidepanel (max-width:430px){.dashboard-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}#lifeObserverWindow .life-overview-grid{grid-template-columns:1fr}#lifeObserverWindow .species-card-v56{grid-template-columns:1fr}#lifeObserverWindow .species-card-v56 canvas{width:100%;height:auto;aspect-ratio:1/1;max-height:280px}#lifeObserverWindow .lineage-row-v56{grid-template-columns:1fr}}
@media(max-width:1519px), (max-aspect-ratio:3/2){.app-shell{overflow:visible}.workspace,body.window-focus-mode .workspace,body.discovery-open .workspace{grid-template-columns:minmax(0,1fr)!important;width:100%;max-width:100%;min-width:0}.stage-panel{position:relative;top:auto;width:100%;min-width:0;max-width:100%;height:min(72vh,780px);min-height:540px}.control-panel{width:100%;min-width:0;max-width:100%;height:min(92vh,980px)}.panel-resize-handle,.panel-width-actions{display:none!important}.stage-command-bar{grid-template-columns:minmax(0,1fr)}.stage-command-left,.stage-command-right{width:100%;justify-content:space-between}.stage-command-bar .compact-help{max-width:none}.stage-command-bar .global-time-control{min-width:0;flex:1}.formation-status-bar{grid-template-columns:1fr auto}.formation-step-line{grid-column:1/-1;grid-row:2}}
@media(max-width:900px){.topbar{display:grid;grid-template-columns:1fr}.top-actions{justify-content:flex-start;flex-basis:auto}.quality-control,.performance-status,.icon-button{flex:1 1 150px}.control-panel{height:auto;min-height:720px;max-height:none}.stage-command-left,.stage-command-right{justify-content:flex-start}.stage-command-bar .global-time-control{grid-template-columns:auto minmax(0,1fr)}.stage-command-bar .stage-speed-presets{grid-column:1/-1}.formation-status-bar{grid-template-columns:1fr}.formation-step-line{grid-column:auto;grid-row:auto}.formation-copy small{white-space:normal}}
@media(max-width:620px){.app-shell{padding-inline:max(8px,env(safe-area-inset-left)) max(8px,env(safe-area-inset-right))}.stage-panel{height:70vh;min-height:500px}.stage-command-bar .compact-help{display:none}.stage-command-right{flex-wrap:wrap}.compact-dashboard-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}}
