- 표 값(요구 678-1): 「표」 꼬리표가 글뿐이라 눌러도 안 열림 → [표 · 고른 줄 · 칸 ▾] 단추 = 품셈 표 창(값 칸 누름 = 그 줄 · 칸) 옵션에 매인 조건(폼타이규격 등) = 그 줄만 고름 · 다른 줄 막힘 + 「위 옵션에서 고름」 안내 · M02 길 표 값 글 수도 고름 - 산출근거 들여쓰기(678-2): 머리 0 · 항목 1 · 가나다 2 · 줄 = 항목 + 1 · 펼친 블록 = 그 줄 + 1(수준 = stackLevels) - 찾아 넣기(678-3): [+ 줄] 인력 · 재료 · 기계 · 다른 단가산출 = M02 [항목 추가] 창 그대로(그 종류만) · 고르면 줄 생김(닫으면 없음) 있는 줄 = [찾아 바꾸기](같은 로직 기계 = 지역 · 보정작업 넘김 그대로) · 옛 찾기 칸 + 고름 목록 · 기종 코드 고르개 걷음 빈 틀 = [찾아 넣기](돈 아닌 단가산출 결과만 — Find_Pick results) - 짝 강조(679-1): 오른쪽 줄 누름 = 왼쪽 카드 강조 + 보이는 자리로 · 왼쪽 누름 = 오른쪽 같은 줄 강조 - 기계 이름(679-2): 기계 줄 = 기종 이름 · 규격 · machine-hourly 답에 로직 키 · 원문번호 더함(기존 칸 그대로) - 모델 common_util_line_stack_pick.ts(boundConds · currentRow · pickCell · addPicked · repick · stackLevels) - 시험 test_804_2 넓힘 3(표 고름 = 값 + 출처 · 서버 셈 같음 · 찾아 넣기 넷 = 요소 키 · 서버 금액 · 다시 고름 · 수준) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
219 lines
3.8 KiB
CSS
219 lines
3.8 KiB
CSS
/* 줄 쌓기 탭(804-2) — 위 옵션 · 가운데 왼쪽 편집 | 오른쪽 산출근거 · 맨 아래 합계 상자 · 색은 공통 값만 */
|
|
.lstk {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-12);
|
|
min-width: 0;
|
|
container-type: inline-size;
|
|
}
|
|
|
|
.lstk__head {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-8);
|
|
}
|
|
|
|
.lstk__bar,
|
|
.lstk__badges,
|
|
.lstk__tools {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: var(--spacing-8);
|
|
}
|
|
|
|
.lstk__areas {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
|
|
gap: var(--spacing-12);
|
|
align-items: start;
|
|
}
|
|
|
|
.lstk:not([data-edit="1"]) .lstk__areas {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.lstk:not([data-edit="1"]) .lstk__left {
|
|
display: none;
|
|
}
|
|
|
|
/* 탭 폭이 좁으면(1366 화면 등) 편집 위 · 산출근거 아래 */
|
|
@container (max-width: 1240px) {
|
|
.lstk__areas {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
}
|
|
|
|
/* ── 왼쪽 편집 ── */
|
|
.lstk-edit {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-8);
|
|
}
|
|
|
|
.lstk-item {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-4);
|
|
padding: var(--spacing-8);
|
|
border: 1px solid var(--color-border);
|
|
border-radius: var(--radius-sm);
|
|
}
|
|
|
|
.lstk-ihead,
|
|
.lstk-row,
|
|
.lstk-fhead,
|
|
.lstk-frow,
|
|
.lstk-find,
|
|
.lstk-ltools {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: flex-end;
|
|
gap: var(--spacing-4) var(--spacing-8);
|
|
min-width: 0;
|
|
}
|
|
|
|
.lstk-frow {
|
|
align-items: center;
|
|
}
|
|
|
|
.lstk-line {
|
|
position: relative;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-4);
|
|
padding: var(--spacing-8);
|
|
padding-inline-end: 120px;
|
|
border-radius: var(--radius-sm);
|
|
background: var(--color-surface-sunken);
|
|
}
|
|
|
|
.lstk-ltools {
|
|
position: absolute;
|
|
inset-block-start: var(--spacing-4);
|
|
inset-inline-end: var(--spacing-4);
|
|
gap: 0;
|
|
}
|
|
|
|
.lstk-kind {
|
|
font-size: var(--text-caption);
|
|
font-weight: var(--font-weight-medium);
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
.lstk-fhead[data-tpl="changed"] .lstk-kind {
|
|
color: var(--color-accent);
|
|
}
|
|
|
|
.lstk-f-s {
|
|
width: 6em;
|
|
}
|
|
|
|
.lstk-f-m {
|
|
width: 9em;
|
|
}
|
|
|
|
.lstk-f-l {
|
|
flex: 1 1 12em;
|
|
min-width: 10em;
|
|
}
|
|
|
|
.lstk-sym {
|
|
font-weight: var(--font-weight-medium);
|
|
}
|
|
|
|
.lstk-val,
|
|
.lstk-unit,
|
|
.lstk-tag,
|
|
.lstk-hint,
|
|
.lstk-link {
|
|
font-size: var(--text-body-sm);
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
.lstk-link {
|
|
color: var(--color-text-body);
|
|
}
|
|
|
|
.lstk-tag {
|
|
padding: 0 var(--spacing-4);
|
|
border: 1px solid var(--color-border);
|
|
border-radius: var(--radius-sm);
|
|
}
|
|
|
|
.lstk-empty {
|
|
font-size: var(--text-body-sm);
|
|
color: var(--color-text-muted);
|
|
}
|
|
|
|
.lstk-miss,
|
|
.lstk-tex .lstk-miss {
|
|
color: var(--color-danger);
|
|
}
|
|
|
|
/* ── 오른쪽 산출근거 ── */
|
|
.lstk-out .lstk-h {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 0 var(--spacing-4);
|
|
padding-inline-start: calc(var(--lstk-depth, 0) * var(--spacing-16));
|
|
white-space: normal;
|
|
}
|
|
|
|
.lstk-out tr.head,
|
|
.lstk-out tr.item,
|
|
.lstk-out tr.total {
|
|
font-weight: var(--font-weight-medium);
|
|
}
|
|
|
|
.lstk-out tr.subsum,
|
|
.lstk-out tr.total {
|
|
background: var(--color-surface-sunken);
|
|
}
|
|
|
|
.lstk-out tr.is-sub .lstk-h {
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
.lstk-out tr.subhead .lstk-h {
|
|
color: var(--color-accent);
|
|
}
|
|
|
|
.lstk-gap {
|
|
display: inline-block;
|
|
width: var(--spacing-24);
|
|
}
|
|
|
|
.lstk-pack {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: var(--spacing-4);
|
|
}
|
|
|
|
.lstk-tex .katex {
|
|
font-size: 1.05em;
|
|
}
|
|
|
|
/* 짝 강조(679) — 왼쪽 카드 · 오른쪽 줄 같은 자리 */
|
|
.lstk-line.is-pair,
|
|
.lstk-item.is-pair {
|
|
outline: 2px solid var(--color-accent);
|
|
outline-offset: -2px;
|
|
}
|
|
|
|
.lstk-out tr.is-pair > td {
|
|
background: var(--color-accent-soft);
|
|
}
|
|
|
|
.lstk-out tr[data-loc] {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.lstk-tpick {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-8);
|
|
}
|