/* ============================================================================= * E04_Stab3D_UI_Style.css * E04 3D 해석 — 좌측 구간 · 설정 · 진행 / 가운데 지도 · 3D · 범례 / 우측 결과 * 색은 테마 토큰만(밝음 · 어두움 같이) · 안전율 · 체적 색 단계만 logic 고정색 * ========================================================================== */ .e04-page { height: 100dvh; box-sizing: border-box; } .e04-row { height: 100%; } .e04-center { display: flex; flex-direction: column; gap: var(--spacing-8); height: 100%; min-height: 0; padding: var(--spacing-12) 0 var(--spacing-12) var(--spacing-12); box-sizing: border-box; } .e04-toolbar { display: flex; gap: var(--spacing-12); flex-wrap: wrap; } .e04-stage { position: relative; flex: 1 1 auto; min-height: 320px; border-radius: var(--radius-sm); background: var(--color-surface-raised); overflow: hidden; } .e04-map, .e04-view3d { position: absolute; inset: 0; } .e04-map[hidden], .e04-view3d[hidden] { display: none; } .e04-map__canvas, .e04-view3d__canvas { display: block; width: 100%; height: 100%; touch-action: none; } .e04-map__canvas { cursor: grab; } /* 값 풍선 모양은 툴팁 부품 — 자리만 */ .e04-map .e04-map__tip { position: absolute; } .e04-map__empty { position: absolute; inset: var(--spacing-16) 0 auto 0; margin: 0; text-align: center; color: var(--color-text-muted); pointer-events: none; } .e04-view3d__compass { position: absolute; top: var(--spacing-8); right: var(--spacing-8); } /* 판 · 범례 · 목록 줄 · 값 목록 · 띠 알림은 부품 — 여기는 자리만 */ .e04-view3d__tools { top: var(--spacing-8); left: var(--spacing-8); } .e04-legend-slot { position: absolute; left: var(--spacing-8); bottom: var(--spacing-8); pointer-events: none; } .e04-legend-slot .e04-legend { position: static; } .e04-section__chip { display: inline-block; width: 14px; height: 10px; flex: none; margin-right: var(--spacing-4); border-radius: 2px; border: 1px solid var(--color-border); } /* 좌측 */ .e04-hint, .e04-note { margin-bottom: var(--spacing-8); } .e04-sections { display: flex; flex-direction: column; gap: 2px; max-height: 240px; overflow: auto; } .e04-range .ui-field, .e04-advanced .ui-field { min-width: 0; } .e04-range .ui-input, .e04-advanced .ui-input { width: 100%; box-sizing: border-box; } .e04-range, .e04-advanced { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-8); margin-top: var(--spacing-8); } .e04-progress-box { display: flex; flex-direction: column; gap: var(--spacing-4); margin: var(--spacing-8) 0; } .e04-progress-box[hidden] { display: none; } /* 우측 */ .e04-result { padding: var(--spacing-12); } .e04-warn { margin-top: var(--spacing-12); } .e04-empty { margin: var(--spacing-16); }