/* 수식(796-2) — 분수 · 첨자 · 괄호 · 줄 · 변수 풀이 · 블록 · 색은 공통 값만 */ .ui-eq { display: flex; flex-direction: column; gap: var(--spacing-8); min-width: 0; container-type: inline-size; font-size: var(--text-body); color: var(--color-text-body); } /* ── 식 그림 ── */ .ui-eq__expr, .ui-eq__body { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0 var(--spacing-4); min-width: 0; } .ui-eq__num, .ui-eq__str { font-variant-numeric: tabular-nums; } .ui-eq__str { color: var(--color-text-secondary); } .ui-eq__op { color: var(--color-text-secondary); padding: 0 1px; } .ui-eq__sym.is-latin { font-style: italic; font-family: "Cambria Math", "STIX Two Math", "Times New Roman", serif; } .ui-eq__script { font-size: 0.7em; line-height: 0; font-style: normal; } .ui-eq__var { border-radius: var(--radius-sm); } .ui-eq__var.is-pick, .ui-eq__block.is-pick { cursor: pointer; } .ui-eq__var.is-pick:hover, .ui-eq__var.is-pick:focus-visible { outline: 1px solid var(--color-accent); background: var(--color-accent-soft); } /* 분수 — 가로 줄 안에 위 · 아래를 세로로 쌓고 사이에 선 */ .ui-eq__frac { display: inline-flex; flex-direction: column; align-items: center; vertical-align: middle; min-width: 0; max-width: 100%; } .ui-eq__top { padding: 0 var(--spacing-4) 2px; border-bottom: 1px solid currentcolor; text-align: center; } .ui-eq__bottom { padding: 2px var(--spacing-4) 0; text-align: center; } /* 괄호 — 안 키에 맞춰 늘어나는 곡선 */ .ui-eq__paren { display: inline-flex; align-items: stretch; gap: 2px; } .ui-eq__paren::before, .ui-eq__paren::after { content: ""; flex: none; width: 5px; border: 1.5px solid currentcolor; } .ui-eq__paren::before { border-right: 0; border-radius: 8px 0 0 8px; } .ui-eq__paren::after { border-left: 0; border-radius: 0 8px 8px 0; } .ui-eq__inner { display: inline-flex; align-items: center; min-width: 0; } .ui-eq__fn { color: var(--color-text-secondary); } /* 조건 칩 · 하위 로직 칩 */ .ui-eq__cond, .ui-eq__block { display: inline-flex; align-items: center; gap: var(--spacing-4); padding: 0 var(--spacing-8); border: 1px solid var(--color-border-strong); border-radius: var(--radius-pills); background: var(--color-surface); font-size: var(--text-body-sm); max-width: 100%; } .ui-eq__cond-key { color: var(--color-warning); font-weight: var(--font-weight-medium); } .ui-eq__block { border-color: var(--color-info); } .ui-eq__block.is-pick:hover { background: var(--color-accent-soft); } .ui-eq__badge { color: var(--color-info); } .ui-eq__block-name { max-width: 14em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ui-eq__block-val { font-variant-numeric: tabular-nums; font-weight: var(--font-weight-medium); } /* ── 줄 ── */ .ui-eq__line { display: flex; flex-direction: column; gap: var(--spacing-4); padding: var(--spacing-8); border-bottom: 1px solid var(--color-border); min-width: 0; } .ui-eq__line[data-selected] { box-shadow: inset 3px 0 0 var(--color-accent); background: var(--color-accent-soft); } .ui-eq__line.is-pick > .ui-eq__main { cursor: pointer; } .ui-eq__main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(12rem, 22rem); gap: var(--spacing-12); align-items: start; } .ui-eq__step { align-self: flex-start; min-width: 1.4em; color: var(--color-text-muted); font-size: var(--text-caption); } /* 네 칸 상자 — 결과명 = 이름 식 = 값 식 = 결과 값 */ .ui-eq__box { display: inline-flex; align-items: center; gap: var(--spacing-4); padding: var(--spacing-4) var(--spacing-8); border: 1px solid var(--color-border-strong); border-radius: var(--radius-sm); background: var(--color-surface-raised); max-width: 100%; min-width: 0; } .ui-eq__res { font-weight: var(--font-weight-bold); font-variant-numeric: tabular-nums; } .ui-eq__unit { color: var(--color-text-secondary); font-size: var(--text-body-sm); font-weight: var(--font-weight-regular); } .ui-eq__raw { font-family: var(--font-mono, monospace); font-size: var(--text-body-sm); overflow-wrap: anywhere; } .ui-eq__bad { color: var(--color-danger); font-size: var(--text-caption); } /* 변수 풀이 */ .ui-eq__solve { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: var(--text-caption); color: var(--color-text-secondary); } .ui-eq__solve-row { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 var(--spacing-4); min-width: 0; } .ui-eq__solve-row.is-pick { cursor: pointer; } .ui-eq__solve-row.is-pick:hover { background: var(--color-accent-soft); } .ui-eq__solve-name, .ui-eq__solve-val { max-width: 12em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ui-eq__solve-val { color: var(--color-text-body); font-variant-numeric: tabular-nums; } .ui-eq__solve-src { color: var(--color-text-muted); max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* 하위 로직 블록 — 접힘 */ .ui-eq__blockpanel { margin-left: var(--spacing-16); padding-left: var(--spacing-8); border-left: 2px solid var(--color-info); } .ui-eq__block-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--spacing-8); } .ui-eq__blockpanel[data-open] .ui-eq__block-head .ui-btn__icon { transform: rotate(90deg); } .ui-eq__bundle { display: inline-flex; flex-wrap: wrap; gap: var(--spacing-8); font-size: var(--text-caption); font-variant-numeric: tabular-nums; color: var(--color-text-secondary); } .ui-eq__block-key { color: var(--color-text-muted); font-size: var(--text-caption); } .ui-eq__block-body { margin-top: var(--spacing-4); } .ui-eq__block-body .ui-eq__line { padding: var(--spacing-4); } @container (max-width: 640px) { .ui-eq__main { grid-template-columns: minmax(0, 1fr); } } :is(.ui-eq__block-body, .ui-eq__bad)[hidden] { display: none !important; } /* ── 단가산출 소계 · 합계(799-1) ── */ .ui-eq__sum { display: flex; flex-direction: column; border-top: 1px solid var(--color-border); font-variant-numeric: tabular-nums; } .ui-eq__sum-row { display: grid; grid-template-columns: minmax(var(--spacing-96), 2fr) repeat(4, minmax(0, 1fr)); gap: var(--spacing-8); padding: var(--spacing-4) var(--spacing-8); border-bottom: 1px solid var(--color-border); } .ui-eq__sum-head { font-size: var(--text-caption); color: var(--color-text-secondary); } .ui-eq__sum-cell { text-align: right; } .ui-eq__sum-row[data-eq-sum-kind="끝수"] { color: var(--color-text-secondary); } .ui-eq__sum-row[data-eq-sum-kind="합계"] { font-weight: var(--font-weight-semibold); }