.m02-dfpanel { display: flex; flex-direction: column; gap: var(--spacing-8); font-size: var(--text-body); color: var(--color-text-body); } .m02-dfpanel-head, .m02-dfpanel-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--spacing-8); } .m02-dfpanel-head { justify-content: space-between; } .m02-dfpanel-title { font-size: var(--text-subheading); } .m02-dfpanel-unitbox { display: inline-flex; align-items: center; gap: var(--spacing-8); margin-left: auto; } .m02-dfpanel-unit { width: 6em; text-align: center; } .m02-dfpanel-cell { padding: 2px var(--spacing-12); border: 1px solid var(--color-border); border-radius: var(--radius-pills); background: var(--color-surface-raised); } .m02-dfpanel-label { font-weight: var(--font-weight-bold); } .m02-dfpanel-note { color: var(--color-text-muted); font-size: var(--text-body-sm); } .m02-dfpanel-form { align-items: flex-end; padding: var(--spacing-8) var(--spacing-12); border: 1px solid var(--color-border); border-radius: var(--radius-cards); background: var(--color-surface-raised); } .m02-dfpanel-fieldbox { display: inline-flex; flex-direction: column; gap: 2px; } .m02-dfpanel-field { width: 9em; } .m02-dfpanel-field.is-num { width: 6em; } .m02-dfpanel-why, .m02-dfpanel-msg { margin: 0; padding: var(--spacing-8) var(--spacing-12); border-left: 4px solid var(--color-warning); background: var(--color-surface-raised); font-weight: var(--font-weight-medium); } .m02-dfpanel-chip { display: inline-flex; align-items: center; gap: var(--spacing-4); padding: var(--spacing-4) var(--spacing-12); border: 2px solid; border-radius: var(--radius-pills); background: var(--color-surface); color: inherit; font: inherit; font-weight: var(--font-weight-medium); } button.m02-dfpanel-chip { cursor: pointer; } button.m02-dfpanel-chip:focus-visible { outline: 2px solid var(--color-focus-ring); } .m02-dfpanel-chip.is-in { border-color: #3b82f6; } .m02-dfpanel-chip.is-in:not(.is-placed) { border-style: dashed; } .m02-dfpanel-chip.is-out { border-color: #27ae60; } .m02-dfpanel-chip.is-var { border-color: #d99a00; } /* 판 높이 크게 — 안쪽 세로 스크롤 없이 보이게 */ .m02-dfpanel-sheet { position: relative; height: max(640px, calc(100vh - 260px)); border: 1px solid var(--color-border); border-radius: var(--radius-cards); overflow: hidden; } /* 칸 위 표시 — 색 + 글자(받음 · 변수 · 출력) 둘 다 */ .m02-dfpanel .aislo-cell[data-cf-kind="in"] { box-shadow: inset 0 0 0 2px #3b82f6; } .m02-dfpanel .aislo-cell[data-cf-kind="var"] { box-shadow: inset 0 0 0 2px #d99a00; } .m02-dfpanel .aislo-cell[data-cf-kind="out"] { box-shadow: inset 0 0 0 2px #27ae60; } .m02-dfpanel .aislo-cell[data-cf-kind]::after { content: attr(data-cf-name); position: absolute; top: 0; right: 0; padding: 0 4px; border-radius: 0 0 0 6px; background: var(--color-surface); color: var(--color-text); font-size: 10px; line-height: 14px; pointer-events: none; } .m02-dfpanel .aislo-cell[data-cf-lock]::before { content: attr(data-cf-lock); position: absolute; bottom: 0; left: 0; padding: 0 4px; background: var(--color-surface); font-size: 10px; line-height: 14px; pointer-events: none; } .m02-dfpanel .aislo-cell[data-cf-err] { outline: 2px dashed var(--color-danger); outline-offset: -2px; } /* 시트 + 칸 연결 표 — 좁으면 표가 아래로 */ .m02-dfpanel-body { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--spacing-12); } .m02-dfpanel-body > .m02-dfpanel-sheet { flex: 1 1 28em; min-width: 0; } .m02-dfcells { flex: 0 1 24em; display: flex; flex-direction: column; gap: var(--spacing-4); min-width: 0; } .m02-dfcells__title { font-weight: var(--font-weight-bold); } .m02-dfcells__table { width: 100%; border-collapse: collapse; font-size: var(--text-body-sm); } .m02-dfcells__table th, .m02-dfcells__table td { padding: var(--spacing-4); border-bottom: 1px solid var(--color-border); text-align: left; vertical-align: middle; } .m02-dfcells__cell { width: 5em; } .m02-dfcells .ui-input.is-bad { border-color: var(--color-danger); border-style: dashed; } .m02-dfcells__kind { padding: 0 var(--spacing-8); border: 2px solid; border-radius: var(--radius-pills); white-space: nowrap; } .m02-dfcells__row.is-in .m02-dfcells__kind { border-color: #3b82f6; } .m02-dfcells__row.is-var .m02-dfcells__kind { border-color: #d99a00; } .m02-dfcells__row.is-out .m02-dfcells__kind { border-color: #27ae60; } /* 식 보기 */ .m02-df-formula { display: flex; flex-direction: column; gap: var(--spacing-4); padding: var(--spacing-8) var(--spacing-12); border: 1px solid var(--color-border); border-radius: var(--radius-cards); background: var(--color-surface-raised); } .m02-df-formula__title { font-weight: var(--font-weight-bold); } .m02-df-formula__line { display: flex; flex-direction: column; gap: 2px; padding-top: var(--spacing-4); border-top: 1px dashed var(--color-border); } .m02-df-formula__valued { color: var(--color-text-secondary); } .m02-df-formula__branches { margin: 0; padding-left: var(--spacing-16); list-style: none; } .m02-df-formula__branches .is-now { font-weight: var(--font-weight-bold); } .m02-df-formula__empty { margin: 0; color: var(--color-text-muted); }