/* 도면층 행: 이름은 줄여 담고 아이콘은 줄이지 않는다. 이름이 안 줄면 오른쪽 아이콘이 행 밖으로 밀려 잘린다 (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; } /* 도면층 버튼 — 색은 토큰으로만, 상태는 Button이 붙이는 data-* 속성으로 가른다. */ .cad-layer-manager button[data-type="regular"] { background: var(--cad-chrome-sunken); color: var(--cad-accent); } .cad-layer-manager button[data-type="transparent"] { background: transparent; color: var(--cad-accent); } .cad-layer-manager button:hover { background: var(--cad-hover); color: var(--color-text); } .cad-layer-manager button[data-active="true"] { background: var(--color-primary); color: var(--color-primary-text); } .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: 4px; 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; } .cad-view-controls button { width: 34px; height: 32px; border: 0; border-right: 1px solid var(--cad-line); background: transparent; font-size: 17px; } .cad-view-controls button:hover { background: var(--cad-hover); } .cad-view-controls__fit { color: var(--cad-accent); font-size: 15px; } .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; } .cad-command-suggestions { position: absolute; z-index: 6; bottom: 100%; left: 10px; display: flex; flex-direction: column; min-width: 220px; padding: 4px; background: var(--cad-chrome-raised); border: 1px solid var(--cad-line); border-radius: 4px; box-shadow: var(--shadow-lg); } .cad-command-suggestions button { padding: 4px 8px; border: 0; border-radius: 3px; background: transparent; font: 11px Consolas, monospace; text-align: left; } .cad-command-suggestions button:hover { background: var(--cad-hover); } .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-command-area input { flex: 1; height: 26px; padding: 0 8px; border: 1px solid var(--cad-line); border-radius: 2px; 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); } .cad-statusbar button { height: 21px; padding: 0 8px; border: 1px solid transparent; border-radius: 2px; background: transparent; color: var(--cad-text-dim); font-size: 10px; } .cad-statusbar button:hover { background: var(--cad-hover); } .cad-statusbar button[data-active="true"] { border-color: var(--cad-accent); background: var(--color-primary); color: var(--color-primary-text); } .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); } .cad-properties-editor select, .cad-properties-editor input { height: 24px; min-width: 0; padding: 0 4px; border: 1px solid var(--cad-line); border-radius: 3px; 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; } .cad-properties__empty { margin: 0; color: var(--cad-text-muted); font-size: 11px; } /* 빠른 특성 — 화면 위에 뜨는 작은 상자 */ .cad-quick-properties { position: fixed; z-index: 5; top: calc(var(--cad-title-height) + var(--cad-ribbon-height) + 12px); right: 14px; width: 240px; padding: 8px 10px 10px; background: var(--cad-chrome-raised); border: 1px solid var(--cad-line); border-radius: 5px; box-shadow: var(--shadow-lg); } .cad-quick-properties__header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; color: var(--cad-text-dim); font-size: 11px; } .cad-quick-properties__header button { border: 0; background: transparent; color: var(--cad-text-muted); font-size: 12px; } /* 블록 라이브러리 팔레트 (INSERT/BLOCK) */ .cad-block-library { position: fixed; z-index: 5; top: calc(var(--cad-title-height) + var(--cad-ribbon-height) + 12px); right: 14px; width: 240px; padding: 8px 10px 10px; background: var(--cad-chrome-raised); border: 1px solid var(--cad-line); border-radius: 5px; box-shadow: var(--shadow-lg); } .cad-block-library__empty { margin: 0; color: var(--cad-text-muted); font-size: 11px; line-height: 1.5; } .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; } .cad-block-library__list li button { border: 0; background: transparent; color: var(--cad-text); font-size: 12px; } .cad-block-library__name { flex: 1; overflow: hidden; padding: 3px 4px; text-align: left; text-overflow: ellipsis; white-space: nowrap; } .cad-block-library__name:hover { background: var(--cad-chrome-sunken); } .cad-block-library__actions { display: flex; gap: 6px; margin-top: 8px; } .cad-block-library__actions button { flex: 1; padding: 4px 0; border: 1px solid var(--cad-line); border-radius: 3px; background: transparent; color: var(--cad-text-dim); font-size: 11px; } /* 도각 자리표 패널 — 도각 편집으로 도면을 실었을 때만 뜬다 (2026-09-06 사용자 지시로 부모 사이드바에서 캐드 안으로 옮김). 도면 오른쪽 위, 리본 아래에 붙는다. */ .cad-frame-tokens { position: fixed; /* 오른쪽 위는 진행단계 패널이 쓴다 — 아래쪽(상태막대·명령행 위)에 붙인다. */ right: 12px; bottom: calc(var(--cad-status-height) + var(--cad-command-height) + 8px); z-index: 3; max-height: 46vh; overflow-y: auto; display: flex; flex-direction: column; gap: 6px; width: 236px; padding: 8px; border: 1px solid var(--cad-line); border-radius: 6px; background: var(--cad-chrome-raised); box-shadow: var(--shadow-lg); color: var(--cad-text); } .cad-frame-tokens__header { display: flex; justify-content: space-between; align-items: flex-start; gap: 6px; color: var(--cad-text-dim); font-size: 11px; line-height: 1.4; } .cad-frame-tokens__fold { flex: none; border: 1px solid var(--cad-line); border-radius: 4px; background: transparent; color: var(--cad-text); cursor: pointer; } .cad-frame-tokens__group { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; } .cad-frame-tokens__title { width: 100%; color: var(--cad-text-dim); font-size: 11px; } .cad-frame-tokens__button { padding: 3px 7px; border: 1px solid var(--cad-line); border-radius: 4px; background: var(--cad-chrome); color: var(--cad-text); font-size: 11px; cursor: pointer; } .cad-frame-tokens__button:hover { background: var(--cad-accent-soft, var(--cad-chrome-raised)); } /* 자리표 칸 크기 입력 (2026-09-06) */ .cad-frame-tokens__size { display: flex; align-items: center; gap: 4px; color: var(--cad-text-dim); font-size: 11px; } .cad-frame-tokens__size input { width: 64px; padding: 2px 4px; border: 1px solid var(--cad-line); border-radius: 4px; background: var(--cad-chrome); color: var(--cad-text); font-size: 11px; }