/* Focused route budgeting, using the existing teal/gold visual system. */
.v109-start { display:grid; grid-template-columns:minmax(0,1fr) minmax(210px,.36fr); align-items:center; gap:24px; padding:26px; margin:24px 0; background:#edf6f4; border:1px solid #c4dcda; border-radius:14px; }
.v109-start h2 { margin:7px 0 10px; font-size:clamp(1.3rem,2.1vw,1.8rem); line-height:1.2; }
.v109-start p { margin:10px 0 0; }
.v109-start-actions { display:flex; flex-direction:column; gap:13px; font-weight:600; }
.v109-start-actions .btn { white-space:normal; text-align:center; justify-content:center; }
.v109-start-actions>a:not(.btn) { padding:5px 0; color:#0f5257; text-underline-offset:4px; }
.v109-budget,.v109-choices,.v109-related { margin:24px 0; padding:24px; border:1px solid #d5e4e1; border-radius:14px; background:#fff; }
.v109-budget h2,.v109-choices h2,.v109-related h2 { margin:8px 0 12px; line-height:1.25; font-size:clamp(1.3rem,2vw,1.75rem); }
.v109-budget { border-top:4px solid #138a8a; }
.v109-input-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:22px 0; }
.v109-input-grid label { display:flex; flex-direction:column; gap:8px; font-weight:600; color:#1b2b2e; font-size:.92rem; }
.v109-input-grid input { min-width:0; width:100%; min-height:46px; padding:11px 12px; border:1px solid #9bbab6; border-radius:8px; background:white; color:#1b2b2e; font:inherit; box-sizing:border-box; }
.v109-input-grid input::placeholder { font-weight:400; color:#637776; font-size:.85rem; }
.v109-budget-result { background:#f3f8f7; border-radius:10px; padding:18px; min-height:60px; }
.v109-budget-result dl { margin:0; }
.v109-budget-result dl>div { display:flex; justify-content:space-between; align-items:baseline; gap:18px; padding:10px 0; border-bottom:1px solid #d6e4e1; }
.v109-budget-result dt { font-size:.9rem; color:#395653; }
.v109-budget-result dd { margin:0; font-weight:700; color:#0f5257; white-space:nowrap; }
.v109-budget-result .v109-total dd { font-size:1.6rem; }
.v109-budget-result .v109-total dt { font-weight:700; color:#1b2b2e; }
.v109-budget-result p { font-size:.85rem; margin:15px 0 0; color:#395653; }
.v109-table { overflow-x:auto; border:1px solid #d5e4e1; border-radius:10px; }
.v109-table table { border-collapse:collapse; min-width:520px; width:100%; font-size:.9rem; }
.v109-table th,.v109-table td { text-align:left; vertical-align:top; padding:14px; border-bottom:1px solid #d5e4e1; line-height:1.6; }
.v109-table thead { background:#edf6f4; color:#0f5257; }
.v109-table caption { text-align:left; padding:12px 14px; font-weight:600; color:#395653; }
.v109-related ul { display:grid; gap:12px; padding-left:20px; }
.v109-route-links { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:20px 0 28px; padding:18px; background:#edf6f4; border:1px solid #c4dcda; border-radius:12px; }
.v109-route-links strong { color:#0f5257; margin-right:8px; }
.v109-route-links a { font-size:.88rem; padding:9px 12px; border-radius:7px; background:#fff; border:1px solid #c4dcda; color:#0f5257; text-decoration:none; font-weight:600; }
.v109-route-links a:hover { border-color:#138a8a; text-decoration:underline; }
.v109-start a:focus-visible,.v109-budget a:focus-visible,.v109-input-grid input:focus-visible,.v109-table:focus-visible,.v109-route-links a:focus-visible { outline:3px solid #b07619; outline-offset:3px; }
#visit-budget,#route-choices { scroll-margin-top:calc(var(--v8-hh,150px) + 16px); }
#v109-tools-status { padding:16px; margin:0; background:#fff2cf; color:#664507; }
@media(max-width:700px) {
 .v109-start { grid-template-columns:1fr; padding:20px; gap:16px; }
 .v109-start-actions { gap:10px; }
 .v109-budget,.v109-choices,.v109-related { padding:18px; }
 .v109-budget-result { padding:14px; }
 .v109-budget-result dl>div { gap:10px; }
 .v109-budget-result dt { font-size:.82rem; }
 .v109-budget-result .v109-total dd { font-size:1.35rem; }
}
@media(max-width:420px) { .v109-input-grid { grid-template-columns:1fr; gap:14px; } .v109-route-links { align-items:stretch; flex-direction:column; } }
