/* 노선 추천 모달(계획서 23-2) — 알약 넷 · 미리 보기 지도 · 비중 · 제약 칸 · 비교값. 색은 전부 테마 토큰을 쓴다(밝음 · 어두움). 계획노선 편집 창(`.b05-routeedit`) 위에 뜬다. */ /* 편집 창 제목 옆 「현재 추천: ○○」. */ .b05-routeedit__rec-now { flex: none; color: var(--color-text-secondary); font-size: var(--text-caption); white-space: nowrap; } /* 곡선 라벨 패널(`.b05-routeedit__label` = 모달 + 1) 위로 — 모달과 뒤 막이 함께 올라간다. */ .ui-modal__backdrop.b05-routerec-backdrop { z-index: calc(var(--z-modal, 1000) + 2); } .ui-modal.b05-routerec { width: min(960px, 94vw); max-height: 92vh; font-size: var(--text-body-sm); } .b05-routerec__body { gap: var(--spacing-12); font-size: var(--text-body-sm); } /* 알약 — 하나만 고른 상태(라디오 묶음). */ .b05-routerec__pills { display: flex; flex-wrap: wrap; gap: var(--spacing-8); } .b05-routerec__pill { padding: 8px var(--spacing-16); border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); color: var(--color-text-body); font-size: var(--text-body); cursor: pointer; } .b05-routerec__pill:hover:not(:disabled) { border-color: var(--color-primary); } .b05-routerec__pill.is-on { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-on-primary, #fff); font-weight: 600; } .b05-routerec__pill:disabled { cursor: progress; opacity: 0.7; } .b05-routerec__main { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: var(--spacing-12); align-items: start; } .b05-routerec__mapbox { display: flex; flex-direction: column; gap: var(--spacing-4, 4px); } /* 미리 보기 지도 — 캔버스 칸(높이 고정). 회전 단추는 편집 창 것(`.b05-routeedit__spin`)과 같은 모양. */ .b05-routerec__mapwrap { position: relative; height: 380px; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-8, 6px); background: var(--color-surface); } .b05-routerec__map { display: block; width: 100%; height: 100%; touch-action: none; cursor: grab; } .b05-routerec__maphint { color: var(--color-text-secondary); font-size: var(--text-body-sm); } .b05-routerec__legend { display: flex; flex-wrap: wrap; gap: var(--spacing-12); color: var(--color-text-secondary); font-size: var(--text-body-sm); } .b05-routerec__legend i { display: inline-block; width: 22px; margin-right: 6px; vertical-align: middle; } .b05-routerec__legend i.is-expected { border-top: 2px dashed var(--color-text-secondary, #9ca3af); } .b05-routerec__legend i.is-current { border-top: 2px solid var(--map-route, #f97316); opacity: 0.55; } .b05-routerec__legend i.is-preview { border-top: 3px solid var(--color-primary); } .b05-routerec__side { display: flex; flex-direction: column; gap: var(--spacing-12); color: var(--color-text-body); font-size: var(--text-body-sm); } /* 비중 — 세로 막대 셋이 나란히(값 위 · 이름 아래). 슬라이더가 세로로 선다. */ .b05-routerec__weights { display: flex; flex-direction: column; gap: var(--spacing-4, 4px); } .b05-routerec__weights[hidden] { display: none; } .b05-routerec__bars { display: flex; gap: var(--spacing-8); } .b05-routerec__bar { display: flex; flex: 1 1 0; flex-direction: column; align-items: center; gap: var(--spacing-4, 4px); } .b05-routerec__bar input[type="range"] { width: 28px; height: 130px; margin: 0; writing-mode: vertical-lr; direction: rtl; /* 위로 올릴수록 큰 값 */ accent-color: var(--color-primary); } .b05-routerec__bar output { color: var(--color-text-body); font-size: var(--text-body); font-weight: 600; } .b05-routerec__bar span { color: var(--color-text-secondary); } .b05-routerec__sum { text-align: center; font-weight: 600; } /* 공통 제약 네 칸 — 한 줄에 하나(이름 · 입력 · 단위). 비우면 placeholder 가 기본값. */ .b05-routerec__criteria { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--spacing-8); } .b05-routerec__criteria label { display: grid; grid-template-columns: minmax(0, 1fr) 5.5em 1.5em; align-items: center; gap: var(--spacing-8); color: var(--color-text-body); } .b05-routerec__criteria input { width: 100%; padding: 4px 8px; border: 1px solid var(--color-border); border-radius: var(--radius-4, 4px); background: var(--color-surface); color: var(--color-text-body); font-size: var(--text-body); text-align: right; } .b05-routerec__criteria input::placeholder { color: var(--color-text-secondary); } .b05-routerec__side .ui-btn { align-self: flex-start; } .b05-routerec__lines { display: flex; flex-direction: column; gap: 2px; color: var(--color-text-secondary); font-size: var(--text-body-sm); line-height: 1.5; } /* 상한을 풀었다는 안내 — 눈에 띄게(계획서 20). */ .b05-routerec__lines .is-warn { color: var(--color-warning); font-weight: 600; } .b05-routerec__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--spacing-8); } .b05-routerec__state { flex: 1 1 12em; color: var(--color-text-body); font-size: var(--text-body-sm); } /* 좁은 폭 — 지도 아래로 조작 칸. */ @media (max-width: 720px) { .b05-routerec__main { grid-template-columns: minmax(0, 1fr); } .b05-routerec__mapwrap { height: 300px; } }