Files
Aislo/M02_MasterTemplete/CostFlow/M02_CF_FuncPanel.css
T

181 lines
3.5 KiB
CSS

.m01-cfpanel {
display: flex;
flex-direction: column;
gap: var(--spacing-8);
font-size: var(--text-body);
color: var(--color-text-body);
}
.m01-cfpanel-head,
.m01-cfpanel-row {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: var(--spacing-8);
}
.m01-cfpanel-head {
justify-content: space-between;
}
.m01-cfpanel-title {
font-size: var(--text-subheading);
}
.m01-cfpanel-unitbox {
display: inline-flex;
align-items: center;
gap: var(--spacing-8);
margin-left: auto;
}
.m01-cfpanel-unit {
width: 6em;
text-align: center;
}
.m01-cfpanel-cell {
padding: 2px var(--spacing-12);
border: 1px solid var(--color-border);
border-radius: var(--radius-pills);
background: var(--color-surface-raised);
}
.m01-cfpanel-label {
font-weight: var(--font-weight-bold);
}
.m01-cfpanel-note {
color: var(--color-text-muted);
font-size: var(--text-body-sm);
}
.m01-cfpanel .ui-btn,
.m01-cfpanel .ui-input,
.m01-cfpanel .ui-select {
min-height: 44px;
font-size: var(--text-body);
}
.m01-cfpanel-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);
}
.m01-cfpanel-fieldbox {
display: inline-flex;
flex-direction: column;
gap: 2px;
}
.m01-cfpanel-field {
width: 9em;
}
.m01-cfpanel-field.is-num {
width: 6em;
}
.m01-cfpanel-why,
.m01-cfpanel-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);
}
.m01-cfpanel-chip {
display: inline-flex;
align-items: center;
gap: var(--spacing-4);
min-height: 44px;
padding: 0 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.m01-cfpanel-chip {
cursor: pointer;
}
button.m01-cfpanel-chip:focus-visible {
outline: 2px solid var(--color-focus-ring);
}
.m01-cfpanel-chip.is-in {
border-color: #3b82f6;
}
.m01-cfpanel-chip.is-in:not(.is-placed) {
border-style: dashed;
}
.m01-cfpanel-chip.is-out {
border-color: #f59e0b;
}
.m01-cfpanel-chip.is-var {
border-color: #22a06b;
}
/* 판 높이 크게 — 안쪽 세로 스크롤 없이 보이게 */
.m01-cfpanel-sheet {
position: relative;
height: max(640px, calc(100vh - 260px));
border: 1px solid var(--color-border);
border-radius: var(--radius-cards);
overflow: hidden;
}
/* 칸 위 표시 — 색 + 글자(받음 · 변수 · 출력) 둘 다 */
.m01-cfpanel .aislo-cell[data-cf-kind="in"] {
box-shadow: inset 0 0 0 2px #3b82f6;
}
.m01-cfpanel .aislo-cell[data-cf-kind="var"] {
box-shadow: inset 0 0 0 2px #22a06b;
}
.m01-cfpanel .aislo-cell[data-cf-kind="out"] {
box-shadow: inset 0 0 0 2px #f59e0b;
}
.m01-cfpanel .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;
}
.m01-cfpanel .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;
}
.m01-cfpanel .aislo-cell[data-cf-err] {
outline: 2px dashed var(--color-danger);
outline-offset: -2px;
}