133 lines
2.9 KiB
CSS
133 lines
2.9 KiB
CSS
/* =============================================================================
|
|
* B05_wf2_Route_UI_Style.css
|
|
* 2차 워크플로우(경로 설계) 페이지 전용 스타일.
|
|
*
|
|
* 원칙(frontend.md §1): 하드코딩 색상 금지. theme.css 변수(var(--...))만 참조.
|
|
* 공통 컴포넌트 스타일은 ui_template_elements.ts가 주입하므로 여기서는
|
|
* B05 고유 레이아웃(제어점 행/제약 그룹/결과 메트릭)만 정의한다.
|
|
* ========================================================================== */
|
|
|
|
/* --- 좌측 입력 폼 --- */
|
|
.b05-route__form {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-16);
|
|
}
|
|
|
|
.b05-route__group {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-16);
|
|
margin: 0;
|
|
padding: var(--spacing-16);
|
|
border: 1px solid var(--color-border);
|
|
border-radius: var(--radius-cards);
|
|
background-color: var(--color-surface-raised);
|
|
}
|
|
|
|
.b05-route__group-legend {
|
|
padding: 0 var(--spacing-8);
|
|
font-size: var(--text-caption);
|
|
font-weight: var(--font-weight-medium);
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
/* --- 제어점 (X/Y 쌍) --- */
|
|
.b05-route__point {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-8);
|
|
}
|
|
|
|
.b05-route__point-label {
|
|
font-size: var(--text-body-sm);
|
|
font-weight: var(--font-weight-medium);
|
|
color: var(--color-text-body);
|
|
}
|
|
|
|
.b05-route__point-row {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: var(--spacing-8);
|
|
}
|
|
|
|
.b05-route__cp-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-16);
|
|
}
|
|
|
|
/* --- select (지표면/제약) --- */
|
|
.b05-route__select {
|
|
appearance: auto;
|
|
cursor: pointer;
|
|
}
|
|
|
|
/* --- 체크박스 --- */
|
|
.b05-route__check {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--spacing-8);
|
|
font-size: var(--text-body-sm);
|
|
color: var(--color-text-body);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.b05-route__check input {
|
|
accent-color: var(--color-primary);
|
|
}
|
|
|
|
/* --- 액션 버튼 행 --- */
|
|
.b05-route__actions {
|
|
display: flex;
|
|
gap: var(--spacing-8);
|
|
}
|
|
|
|
/* --- 우측 결과 --- */
|
|
.b05-route__result {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-16);
|
|
padding: var(--spacing-24);
|
|
}
|
|
|
|
.b05-route__result-title {
|
|
font-size: var(--text-subheading);
|
|
color: var(--color-text);
|
|
}
|
|
|
|
.b05-route__empty {
|
|
color: var(--color-text-muted);
|
|
font-size: var(--text-body-sm);
|
|
}
|
|
|
|
.b05-route__result-body {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-8);
|
|
max-width: 480px;
|
|
}
|
|
|
|
.b05-route__metric {
|
|
display: flex;
|
|
align-items: baseline;
|
|
justify-content: space-between;
|
|
gap: var(--spacing-16);
|
|
padding: var(--spacing-8) var(--spacing-16);
|
|
border-radius: var(--radius-inputs);
|
|
background-color: var(--color-surface);
|
|
}
|
|
|
|
.b05-route__metric-key {
|
|
font-size: var(--text-caption);
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
.b05-route__metric-val {
|
|
font-family: var(--font-mono);
|
|
font-size: var(--text-body-sm);
|
|
color: var(--color-text-body);
|
|
word-break: break-all;
|
|
text-align: right;
|
|
}
|