/* E-프리즘 스튜디오 배치. 색 · 글자 · 부품은 디자인 시스템(tokens.css · ui.css · themes.css)을 그대로 쓴다. */
.ep-login .et-side { display: none; }
.ep-login .et-app { grid-template-columns: minmax(0, 1fr); }
.ep-narrow { max-width: 880px; }
.ep-auth { max-width: 560px; }
.ep-auth .et-panel__body { display: grid; gap: var(--et-space-4); }
.ep-auth .et-field__error[hidden] { display: none; }
.ep-login .et-main { display: grid; justify-items: center; align-content: start; padding-top: 10vh; }
.ep-login .ep-narrow { width: min(560px, 100%); }
.ep-who { display: grid; gap: 4px; font-size: 13px; }
.ep-who .ep-row { gap: 4px; }
.ep-muted { color: var(--et-text-3); }
.ep-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--et-space-2); }
.ep-gap { margin-top: var(--et-space-4); }
.ep-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--et-space-4); }
.ep-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--et-space-5); margin-top: var(--et-space-4); }
.ep-scroll { max-height: 560px; overflow: auto; }
.ep-users { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: var(--et-space-3); }
.ep-userbtn { justify-content: flex-start; height: auto; padding: var(--et-space-3) var(--et-space-4); text-align: left; }
.ep-userbtn small { display: block; color: var(--et-text-3); font-weight: 500; }
.ep-checks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--et-space-2) var(--et-space-4); }
.ep-checks label { display: inline-flex; align-items: center; gap: var(--et-space-2); }
.ep-toast[hidden] { display: none; }
.ep-checks input { width: 16px; height: 16px; margin: 0; accent-color: var(--et-brand-fill); }
.ep-toast { position: fixed; right: var(--et-space-6); bottom: var(--et-space-6); z-index: 50; display: inline-flex; align-items: center; gap: var(--et-space-3); min-height: 44px; max-width: 520px; padding: var(--et-space-2) var(--et-space-4); border-radius: var(--et-r-1); background: var(--et-strong); color: var(--et-on-strong); box-shadow: var(--et-shadow-overlay); }

/* 편집기: 장 목록 | 미리보기 | 속성 */
.ep-editor { display: grid; grid-template-columns: 248px minmax(0, 1fr) 320px; gap: var(--et-space-4); align-items: start; }
.ep-pages { max-height: calc(100vh - 170px); overflow: auto; }
.ep-pages ol { margin: 0; padding: 0; list-style: none; }
.ep-page { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: var(--et-space-2); align-items: start; padding: 7px var(--et-space-2); border-radius: var(--et-r-1); cursor: pointer; font-size: 13px; line-height: 1.4; }
.ep-page:hover { background: var(--et-inset); }
.ep-page[aria-current="true"] { background: var(--et-accent-tint); }
.ep-page__no { color: var(--et-text-3); font-variant-numeric: tabular-nums; text-align: right; }
.ep-page__kind { display: block; color: var(--et-text-3); font-size: 12px; }
.ep-page--fixed { cursor: default; }
.ep-page--gen { color: var(--et-text-3); }
.ep-page.is-dragging { opacity: .4; }
.ep-page.is-drop { box-shadow: inset 0 2px 0 var(--et-focus); }
.ep-stagebar { display: flex; align-items: center; justify-content: space-between; gap: var(--et-space-3); margin-bottom: var(--et-space-2); }
.ep-stage { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--et-r-1); background: var(--et-stage); }
.ep-stage iframe { position: absolute; left: 0; top: 0; width: 1600px; height: 900px; border: 0; transform-origin: 0 0; pointer-events: none; background: var(--et-surface); }
.ep-overlay { position: absolute; inset: 0; cursor: default; }
.ep-hover, .ep-selbox { position: absolute; display: none; pointer-events: none; }
.ep-hover { outline: 1px dashed var(--et-text-3); }
.ep-selbox { outline: 2px solid var(--et-focus); }
.ep-selbox.is-box { outline-color: var(--et-b-accent); }
.ep-hdl { position: absolute; width: 10px; height: 10px; margin: -5px 0 0 -5px; border: 1px solid var(--et-focus); background: var(--et-surface); pointer-events: auto; }
.ep-hdl[data-d="nw"], .ep-hdl[data-d="se"] { cursor: nwse-resize; }
.ep-hdl[data-d="ne"], .ep-hdl[data-d="sw"] { cursor: nesw-resize; }
.ep-hdl[data-d="n"], .ep-hdl[data-d="s"] { cursor: ns-resize; }
.ep-hdl[data-d="e"], .ep-hdl[data-d="w"] { cursor: ew-resize; }
.ep-guide { position: absolute; display: none; pointer-events: none; background: var(--et-b-accent); }
.ep-guide--v { top: 0; bottom: 0; width: 1px; }
.ep-guide--h { left: 0; right: 0; height: 1px; }
.ep-loading { position: absolute; inset: 0; display: grid; place-items: center; color: var(--et-text-3); }
.ep-props { max-height: calc(100vh - 170px); overflow: auto; }
.ep-props .et-field { margin-bottom: var(--et-space-3); }
.ep-props textarea.et-input { min-height: 96px; padding-top: var(--et-space-2); line-height: 1.5; resize: vertical; }
.ep-nums { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--et-space-2); margin-bottom: var(--et-space-3); }
.ep-nums label { display: grid; gap: 2px; font-size: 12px; color: var(--et-text-3); }
.ep-nums input { height: 32px; padding: 0 var(--et-space-2); }
.ep-btns { display: flex; flex-wrap: wrap; gap: var(--et-space-2); margin: var(--et-space-2) 0 var(--et-space-4); }
.ep-saved { font-size: 13px; color: var(--et-text-3); }
.ep-kbd { display: inline-block; min-width: 22px; padding: 0 6px; border-radius: var(--et-r-1); background: var(--et-inset); font-family: var(--et-font-mono); font-size: 12px; text-align: center; }

/* 부품 찾기 */
.ep-assets { width: min(1080px, 100%); }
.ep-assetgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--et-space-3); }
.ep-asset .et-card__body { padding: var(--et-space-3); gap: var(--et-space-1); }
.ep-asset .et-card__title { font-size: 14px; font-weight: 700; }
.ep-asset__ph { display: grid; place-items: center; height: 100%; padding: var(--et-space-3); color: var(--et-text-3); font-size: 13px; text-align: center; }

/* 점검 · 내보내기 */
.ep-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--et-space-6); margin-bottom: var(--et-space-6); }
.ep-findings td:first-child { width: 88px; }
.ep-findings td:nth-child(2) { width: 56px; }
.ep-share { display: flex; gap: var(--et-space-2); align-items: center; }
.ep-share input { flex: 1; }
@media (max-width: 1500px) { .ep-editor { grid-template-columns: 220px minmax(0, 1fr) 288px; } }
