/* 노선 추천 모달(계획서 23-2) — 알약 넷 · 미리 보기 지도 · 비중 · 제약 칸 · 비교값. 색은 전부 테마 토큰을 쓴다(밝음 · 어두움). 계획노선 편집 창(`.b05-routeedit`) 위에 뜬다. */ /* 편집 창 제목 옆 「현재 추천: ○○」. */ .b05-routeedit__rec-now { flex: none; color: var(--color-text-secondary); font-size: var(--text-caption); white-space: nowrap; } .ui-modal.b05-routerec { width: min(900px, 94vw); max-height: 92vh; } .b05-routerec__body { gap: var(--spacing-12); } /* 알약 — 하나만 고른 상태(라디오 묶음). */ .b05-routerec__pills { display: flex; flex-wrap: wrap; gap: var(--spacing-8); } .b05-routerec__pill { padding: 6px 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-sm); 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.5fr) minmax(0, 1fr); gap: var(--spacing-12); align-items: start; } .b05-routerec__mapbox { display: flex; flex-direction: column; gap: var(--spacing-4, 4px); } .b05-routerec__map { display: block; width: 100%; height: auto; border: 1px solid var(--color-border); border-radius: var(--radius-8, 6px); background: var(--color-surface); } .b05-routerec__map path { fill: none; stroke-linecap: round; stroke-linejoin: round; } .b05-routerec__map path.is-expected { stroke: var(--color-text-secondary, #9ca3af); stroke-dasharray: 5 4; stroke-width: 1.5; } .b05-routerec__map path.is-current { stroke: var(--map-route, #f97316); stroke-width: 2; opacity: 0.55; } .b05-routerec__map path.is-preview { stroke: var(--color-primary); stroke-width: 2.5; } .b05-routerec__legend { display: flex; flex-wrap: wrap; gap: var(--spacing-12); color: var(--color-text-secondary); font-size: var(--text-caption); } .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-secondary); font-size: var(--text-caption); } .b05-routerec__weights { display: grid; gap: 4px; } .b05-routerec__weights label { display: grid; grid-template-columns: 3.5em 1fr 2.5em; align-items: center; gap: var(--spacing-8); } .b05-routerec__weights output { color: var(--color-text-body); text-align: right; } .b05-routerec__sum { text-align: right; } /* 공통 제약 네 칸 — 비우면 placeholder 가 기본값. */ .b05-routerec__criteria { display: flex; flex-wrap: wrap; gap: var(--spacing-8) var(--spacing-12); } .b05-routerec__criteria label { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; } .b05-routerec__criteria input { width: 4em; padding: 2px 4px; 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-caption); 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-caption); line-height: 1.45; } /* 상한을 풀었다는 안내 — 눈에 띄게(계획서 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-caption); } /* 좁은 폭 — 지도 아래로 조작 칸. */ @media (max-width: 720px) { .b05-routerec__main { grid-template-columns: minmax(0, 1fr); } }