- 위 탭 총괄설계내역서 · 설계내역서 = 「설계내역」 한 묶음(총괄 · 설계내역서) - 단가연결 칸 = 램프(초록 연결 · 노랑 없음) · 풍선 = 글 · 머리 「단가↵연결」 · 폭 44 - 시험 test_257_1 · test_181_1 · test_229_1 기대값 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SE9MxeXTu2uaDZ55BJowAY
250 lines
7.4 KiB
CSS
250 lines
7.4 KiB
CSS
/* B09 원가계산 — 탭 줄 · 안내 글. 색은 테마 변수만(밝음 · 어두움 같이). */
|
|
|
|
.b09-estimation {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-8);
|
|
padding: var(--spacing-16) var(--spacing-24); /* B08 본문과 같은 값 */
|
|
}
|
|
|
|
.b09-estimation .ui-general-block__empty,
|
|
.b09-estimation__hint {
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
.b09-estimation__hint {
|
|
margin: 0 0 var(--spacing-8);
|
|
font-size: var(--text-caption);
|
|
}
|
|
|
|
.b09-estimation__tabs {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: var(--spacing-8); /* B08 위 · 보조 탭 줄과 같은 값(181-1) */
|
|
padding-bottom: var(--spacing-8);
|
|
border-bottom: 1px solid var(--color-border);
|
|
}
|
|
|
|
/* 아래 탭 없는 위 탭 — 보이지 않는 단추 한 줄로 높이만 채움(탭 바꿀 때 몸통이 안 튐) */
|
|
.b09-estimation__tabs--blank > .ui-btn {
|
|
visibility: hidden;
|
|
}
|
|
|
|
/* 표 머리 — 좁은 열에서 말줄임 대신 줄바꿈(257-1 머리 글 안 줄바꿈 글자도 살림) */
|
|
[data-b09-table] thead th {
|
|
white-space: pre-line;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
/* 202-1 보조 탭 줄 오른쪽 도구(박스보기 · 가로 열 수) — 빈 보조 줄에서도 보임 · 단추 · 글 한 줄 */
|
|
.b09-estimation__tools {
|
|
display: flex;
|
|
flex: none;
|
|
flex-wrap: nowrap;
|
|
align-items: center;
|
|
gap: var(--spacing-8);
|
|
margin-left: auto;
|
|
}
|
|
|
|
.b09-estimation__tools .ui-btn,
|
|
.b09-estimation__tools .ui-group-cards__label {
|
|
flex: none;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/* 202-1 안내 줄 = 표 · 카드 판 아래(묶음 탭은 한 줄 줄임표 · 전문 = 공용 호버) */
|
|
.b09-estimation .ui-data-table + .ui-general-block__empty,
|
|
.b09-estimation .ui-group-cards + .ui-general-block__empty {
|
|
margin: var(--spacing-8) 0 0;
|
|
}
|
|
|
|
.b09-estimation__line-hint {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
font-size: var(--text-caption);
|
|
}
|
|
|
|
/* 166-2 설계내역서 손 줄 — 사용자가 더한 줄 표시(왼쪽 띠) */
|
|
.b09-estimation .ui-data-table__table tbody tr.is-hand td:first-child {
|
|
background-image: linear-gradient(to right, var(--color-primary) 3px, transparent 3px);
|
|
}
|
|
|
|
/* 200-2 설계내역서 글 칸 왼쪽 맞춤(수량만 오른쪽) */
|
|
.b09-estimation [data-b09-table="bill"] .ui-data-table__input:not([data-k="qty"]) {
|
|
text-align: left;
|
|
}
|
|
|
|
/* 235-1 설계내역서 고른 줄 — 줄 전체 상자 테두리(공용 is-focus 밑줄 · 배경 대신) */
|
|
.b09-estimation [data-b09-table="bill"] tbody tr.is-focus td {
|
|
box-shadow:
|
|
inset 0 2px 0 var(--color-accent),
|
|
inset 0 -2px 0 var(--color-accent);
|
|
}
|
|
|
|
.b09-estimation [data-b09-table="bill"] tbody tr.is-focus td:first-child {
|
|
box-shadow:
|
|
inset 0 2px 0 var(--color-accent),
|
|
inset 0 -2px 0 var(--color-accent),
|
|
inset 2px 0 0 var(--color-accent);
|
|
}
|
|
|
|
.b09-estimation [data-b09-table="bill"] tbody tr.is-focus td:last-child {
|
|
box-shadow:
|
|
inset 0 2px 0 var(--color-accent),
|
|
inset 0 -2px 0 var(--color-accent),
|
|
inset -2px 0 0 var(--color-accent);
|
|
}
|
|
|
|
.b09-estimation [data-b09-table="bill"] tbody tr.is-focus:not(:hover) td:not(.is-edited) {
|
|
background-color: var(--color-canvas);
|
|
}
|
|
|
|
.b09-estimation [data-b09-table="bill"] tbody tr.is-focus.is-alt:not(:hover) td:not(.is-edited) {
|
|
background-color: var(--dt-zebra);
|
|
}
|
|
|
|
/* 181-2 표 보기 — 목록표에서 고른 호표 줄 구간 전체 붉은 외곽선(머리 accent 밑줄은 덮음) */
|
|
.b09-estimation .ui-data-table__table tbody tr.is-pick td {
|
|
--pick-t: inset 0 0 0 0 transparent;
|
|
--pick-b: inset 0 0 0 0 transparent;
|
|
--pick-l: inset 0 0 0 0 transparent;
|
|
--pick-r: inset 0 0 0 0 transparent;
|
|
box-shadow: var(--pick-t), var(--pick-b), var(--pick-l), var(--pick-r);
|
|
}
|
|
|
|
.b09-estimation .ui-data-table__table tbody tr.is-pick.is-pick-top td {
|
|
--pick-t: inset 0 2px 0 var(--color-danger);
|
|
}
|
|
|
|
.b09-estimation .ui-data-table__table tbody tr.is-pick.is-pick-end td {
|
|
--pick-b: inset 0 -2px 0 var(--color-danger);
|
|
}
|
|
|
|
.b09-estimation .ui-data-table__table tbody tr.is-pick td:first-child {
|
|
--pick-l: inset 2px 0 0 var(--color-danger);
|
|
}
|
|
|
|
.b09-estimation .ui-data-table__table tbody tr.is-pick td:last-child {
|
|
--pick-r: inset -2px 0 0 var(--color-danger);
|
|
}
|
|
|
|
/* 183-3 자재단가대비표 — 적용 단가를 낸 출처 단가 칸(고른 출처 · 기본 최저) */
|
|
.b09-estimation .ui-data-table__table tbody td.is-picked {
|
|
background: color-mix(in srgb, var(--color-accent) 22%, var(--color-canvas));
|
|
font-weight: var(--font-weight-bold);
|
|
}
|
|
|
|
/* 257-1 설계내역서 단가연결 칸 = 램프(B08 구조물집계표 램프 꼴 · 글 숨김 · 풍선 = 글) — 노랑 = 없음 · 초록 = 연결 */
|
|
.b09-estimation .ui-data-table__table tbody td.b09-bill__lamp {
|
|
font-size: 0;
|
|
text-align: center;
|
|
}
|
|
|
|
.b09-estimation .ui-data-table__table tbody td.b09-bill__lamp::before {
|
|
content: "";
|
|
display: inline-block;
|
|
width: 8px;
|
|
height: 8px;
|
|
border-radius: 50%;
|
|
background: var(--color-warning);
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.b09-estimation .ui-data-table__table tbody td.b09-bill__lamp.is-linked::before {
|
|
background: var(--color-success);
|
|
}
|
|
|
|
/* 184-3 설계내역서 고친 칸 — 자동 값과 다른 칸(풍선 = 자동 값) */
|
|
.b09-estimation .ui-data-table__table tbody td.is-edited {
|
|
background: color-mix(in srgb, var(--color-warning) 22%, var(--color-canvas));
|
|
}
|
|
|
|
/* 203-1 좌측 「데이터 점검」 — [업데이트] 필요 = 단추 위 점 배지(B05 [3D 업데이트] 꼴) */
|
|
.b09-options .ui-btn.is-pending {
|
|
position: relative;
|
|
border-color: var(--color-warning);
|
|
}
|
|
|
|
.b09-options .ui-btn.is-pending::after {
|
|
content: "";
|
|
position: absolute;
|
|
top: 4px;
|
|
right: 4px;
|
|
width: 6px;
|
|
height: 6px;
|
|
border-radius: 50%;
|
|
background: var(--color-warning);
|
|
}
|
|
|
|
/* 122 데이터 점검 [업데이트] — 제목 아래 틈 = 카드 왼쪽 여유와 같게 */
|
|
.b09-options [data-b09-refresh] {
|
|
margin-top: calc(var(--spacing-8) + var(--spacing-4));
|
|
}
|
|
|
|
/* 연결 점검 목록 — 이름 · 탭(작게) · 알림 글 */
|
|
.b09-check__head,
|
|
.b09-check__note {
|
|
margin: var(--spacing-8) 0 0;
|
|
color: var(--color-text-secondary);
|
|
font-size: var(--text-caption);
|
|
}
|
|
|
|
.b09-check__tab {
|
|
flex: none;
|
|
color: var(--color-text-secondary);
|
|
font-size: var(--text-caption);
|
|
}
|
|
|
|
/* 줄 끌기(204-1) — 놓을 자리 · 레벨 미리 보기 선 · 못 놓는 자리 = 빨간 점선 */
|
|
.b09-estimation__drop {
|
|
--drop-c: var(--color-primary);
|
|
position: fixed;
|
|
z-index: 1000;
|
|
height: 0;
|
|
border-top: 2px solid var(--drop-c);
|
|
color: var(--drop-c);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.b09-estimation__drop.is-bad {
|
|
--drop-c: var(--color-danger);
|
|
border-top-style: dashed;
|
|
}
|
|
|
|
/* 121 선 머리 = 레벨 시작 점 + 「어디 안 · 몇 레벨」 · 들어갈 폴더 줄 = 테두리 · 끄는 줄 = 흐리게 */
|
|
.b09-estimation__drop::before {
|
|
content: "";
|
|
position: absolute;
|
|
top: -6px;
|
|
left: -5px;
|
|
width: 8px;
|
|
height: 8px;
|
|
border: 2px solid;
|
|
border-radius: 50%;
|
|
background: var(--color-canvas);
|
|
}
|
|
|
|
.b09-estimation__drop-tag {
|
|
position: absolute;
|
|
top: -11px;
|
|
padding: 1px var(--spacing-8);
|
|
border: 1px solid;
|
|
border-radius: var(--radius-pills);
|
|
background: var(--color-surface-raised);
|
|
font-size: var(--text-caption);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.b09-estimation [data-b09-table="bill"] tbody tr.is-drop-into td {
|
|
box-shadow:
|
|
inset 0 2px 0 var(--color-primary),
|
|
inset 0 -2px 0 var(--color-primary);
|
|
background-color: color-mix(in srgb, var(--color-primary) 14%, transparent);
|
|
}
|
|
|
|
.b09-estimation [data-b09-table="bill"] tbody tr.is-drag-src td {
|
|
opacity: 0.45;
|
|
}
|