/* 도면층 행: 이름은 줄여 담고 아이콘은 줄이지 않는다. 이름이 안 줄면 오른쪽 아이콘이 행 밖으로 밀려 잘린다 (2026-09-01 실측: 내용 237~286px / 보이는 폭 229px). */ .cad-layer-manager .layer > button > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; } .cad-layer-manager .layer > button > div { flex-shrink: 0; } /* 행 안의 아이콘 버튼은 여백을 줄여 이름 몫을 남긴다 — 아이콘 6개가 한 행을 다 먹었다. */ .cad-layer-manager .layer > button [data-size="small"] { padding-left: 2px; padding-right: 2px; min-width: 0; } /* 도면층 버튼 — 목록 줄 부품(`ui-sidebar-row`) 꼴 · 상태는 Button이 붙이는 data-* 속성으로 가른다. */ .cad-layer-manager button[data-type="regular"] { background: transparent; color: var(--color-text-body); } .cad-layer-manager button[data-type="transparent"] { background: transparent; color: var(--color-text-secondary); } .cad-layer-manager button:hover { background: var(--color-hover); color: var(--color-text); } .cad-layer-manager button[data-active="true"] { background: var(--color-accent-soft); color: var(--color-accent); } .cad-view-controls { position: fixed; z-index: 3; right: 14px; bottom: calc(var(--cad-command-height) + var(--cad-status-height) + 14px); display: flex; align-items: center; overflow: hidden; border: 1px solid var(--cad-line); border-radius: var(--radius-buttons); background: var(--cad-chrome-raised); box-shadow: var(--shadow-lg); } /* 오토캐드 파일 끌어다 놓기 안내 — 캔버스 오른쪽 위 흐린 글씨(빠른 특성 창이 뜨면 그 아래로 가려짐) */ .cad-drop-hint { position: fixed; z-index: 2; top: calc(var(--cad-title-height) + var(--cad-ribbon-height) + 8px); right: 14px; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; white-space: nowrap; padding: 2px 4px; border: 0; background: transparent; color: var(--cad-text-muted); font-size: 11px; text-align: right; opacity: 0.55; cursor: pointer; } .cad-drop-hint:hover { opacity: 1; } .cad-drop-hint__steps { display: flex; flex-direction: column; align-items: flex-end; color: var(--cad-text-dim); font-size: 10px; } /* 파일을 끄는 동안 — 화면 가장자리 흐린 테두리(`dxf-clip-paste.ts`) */ body.cad-file-dragging::after { content: ''; position: fixed; z-index: 50; inset: 6px; border: 2px dashed var(--cad-accent); border-radius: 6px; opacity: 0.6; pointer-events: none; } /* 단추 = 아이콘 단추 부품(단 32) · 여기는 배율 글만 */ .cad-view-controls span { min-width: 48px; color: var(--cad-text-dim); font-size: 10px; text-align: center; } /* 하단 명령어 입력창은 숨김 처리 (마우스 커서 단축키 입력으로 대체) */ .cad-command-area { position: fixed; z-index: 3; right: 0; bottom: var(--cad-status-height); left: var(--cad-panel-width); height: var(--cad-command-height); display: flex; flex-direction: column; gap: 4px; padding: 6px 10px; background: var(--cad-chrome); border-top: 1px solid var(--cad-line); } .cad-command-history { display: flex; flex-direction: column; flex: 1; justify-content: flex-end; overflow: hidden; color: var(--cad-text-muted); font: 11px Consolas, monospace; } /* 꼴 = 메뉴 부품(`ui-ctx-menu`) · 여기는 자리와 명령 글꼴만 */ .cad-command-suggestions { position: absolute; z-index: 6; bottom: 100%; left: 10px; min-width: 220px; } .cad-command-suggestions > .ui-ctx-menu__item { font: 12px Consolas, monospace; } .cad-prop--wide select { min-width: 132px; } .cad-command-prompt { max-width: 42%; overflow: hidden; color: var(--cad-text-dim); font-size: 11px; white-space: nowrap; text-overflow: ellipsis; } .cad-command-area form { display: flex; align-items: center; gap: 7px; height: 28px; } .cad-command-area label { color: var(--color-text); font-size: 11px; font-weight: 600; } /* 명령 칸 = CAD 고유 꼴(토큰만) · 높이 = 크기 단 28 */ .cad-command-area input { flex: 1; height: 28px; padding: 0 8px; border: 1px solid var(--cad-line); border-radius: var(--radius-buttons); outline: none; background: var(--cad-chrome-sunken); color: var(--cad-text); font: 11px Consolas, monospace; } .cad-command-area input:focus { border-color: var(--color-focus-ring); box-shadow: 0 0 0 1px var(--color-focus-ring); } .cad-statusbar { position: fixed; z-index: 3; right: 0; bottom: 0; left: 0; height: var(--cad-status-height); display: flex; align-items: center; gap: 2px; padding: 0 8px; background: var(--cad-chrome); border-top: 1px solid var(--cad-line); } /* 켜기 = 켜기 칩 부품(`ui-toggle--chip` · 단 22) */ .cad-statusbar__hint { margin-left: auto; color: var(--cad-text-muted); font-size: 10px; } @media (max-width: 800px) { :root { --cad-panel-width: 200px; } .cad-statusbar__hint { display: none; } } /* 특성 팔레트 — 값을 바로 고치는 입력들 */ .cad-properties-editor { display: flex; flex-direction: column; gap: 7px; } .cad-properties-editor__title { color: var(--color-text); font-size: 13px; font-weight: 600; } .cad-properties-editor label { display: grid; grid-template-columns: 72px 1fr; align-items: center; gap: 8px; font-size: 11px; color: var(--cad-text-dim); } /* 칸 = 크기 단 24(둥글기 6) · 토큰만 */ .cad-properties-editor select, .cad-properties-editor input { height: 24px; min-width: 0; padding: 0 4px; border: 1px solid var(--cad-line); border-radius: 6px; background: var(--cad-chrome-sunken); color: var(--cad-text); font-size: 11px; } .cad-properties-editor__readout { margin: 6px 0 0; border-top: 1px solid var(--cad-line); } .cad-properties-editor__readout div { display: grid; grid-template-columns: 72px 1fr; padding: 5px 0; border-bottom: 1px solid var(--cad-line); font-size: 11px; } .cad-properties-editor__readout dt { color: var(--cad-text-dim); } .cad-properties-editor__readout dd { margin: 0; overflow: hidden; color: var(--cad-text); text-overflow: ellipsis; } /* 빠른 특성 · 블록 라이브러리 — 꼴 = 떠 있는 판 부품(`ui-float-panel`) · 여기는 자리 · 폭만 */ .cad-quick-properties, .cad-block-library { position: fixed; z-index: 5; top: calc(var(--cad-title-height) + var(--cad-ribbon-height) + 12px); right: 14px; width: 240px; } /* 블록 라이브러리 팔레트 (INSERT/BLOCK) */ .cad-block-library__list { max-height: 220px; margin: 0; padding: 0; overflow-y: auto; list-style: none; } .cad-block-library__list li { display: flex; align-items: center; gap: 4px; } /* 블록 줄 = 목록 줄 부품(`ui-sidebar-row`) · 지우기 = 아이콘 단추 부품(단 20) · 여기는 줄 폭만 */ .cad-block-library__name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* 단추 = 단추 부품(보조 · 단 24) · 여기는 폭 나눔만 — 글 12 로 한 줄에 둘이 안 들어가면 줄을 넘김 */ .cad-block-library__actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; } .cad-block-library__actions > .ui-btn { flex: 1 1 auto; white-space: nowrap; } /* 도각 자리표 패널 — 도각 편집으로 도면을 실었을 때만 뜬다 (2026-09-06 사용자 지시로 부모 사이드바에서 캐드 안으로 옮김). 꼴 = 떠 있는 판 부품(`ui-float-panel`) · 여기는 자리 · 폭 · 줄 배치만. */ .cad-frame-tokens { position: fixed; /* 오른쪽 위는 진행단계 패널이 쓴다 — 아래쪽(상태막대·명령행 위)에 붙인다. */ right: 12px; bottom: calc(var(--cad-status-height) + var(--cad-command-height) + 8px); z-index: 3; max-height: 46vh; width: 236px; } .cad-frame-tokens__body { display: flex; flex-direction: column; gap: 6px; } .cad-frame-tokens__group { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; } .cad-frame-tokens__title { width: 100%; } /* 자리표 칸 크기 입력 (2026-09-06) — 칸 = 입력 부품(단 24) */ .cad-frame-tokens__size > .ui-input { width: 64px; }