.plan-page { position:relative;isolation:isolate;color:#193b38;background:#fbefce; }
.plan-page::before { content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:#fbefce url('../img/cities-paper.png') center/cover no-repeat; }
.plan-page main { background:rgba(255,253,248,.32); }
.plan-page [hidden] { display:none !important; }
.plan-page button,.plan-page select,.plan-page input { font-family:inherit; }
.plan-hero { padding:calc(var(--nav-height,72px) + 36px) 0 24px; }
.plan-hero__inner { display:flex;justify-content:space-between;align-items:center;gap:24px; }
.plan-hero .eyebrow { display:block;font-size:10px;letter-spacing:.23em;color:#9c7c48;margin-bottom:10px; }
.plan-hero h1 { margin:0 0 10px;color:#193b38;font-size:clamp(25px,3vw,36px);line-height:1.4; }
.plan-hero p { color:#738074;font-size:14px;margin:0;line-height:1.8; }
.plan-status { display:inline-flex;align-items:center;gap:7px;flex-shrink:0;font-size:11px;color:#677464;padding:7px 12px;border-radius:30px;border:1px solid #d9dfd1;background:#fffdf8; }
.plan-status i { width:6px;height:6px;background:#4d8268;border-radius:50%; }
.plan-status.is-off i { background:#b6a17c; }
.plan-main { padding:12px 0 64px; }
.plan-layout { max-width:1320px; }
.plan-form { max-width:1060px;margin:0 auto;padding:26px 32px;border:1px solid #e0dfd2;border-radius:16px;background:#fffdf8;box-shadow:0 12px 36px -30px #193b3850;scroll-margin-top:calc(var(--nav-height,72px) + 16px); }
.plan-form__heading { display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:14px; }
.plan-form__heading span { color:#a18350;font-size:10px;letter-spacing:.12em; }
.plan-form__heading h2 { font-size:20px;margin:0; }
.plan-group { border:0;margin:0;padding:0;min-width:0; }
.plan-group + .plan-group { margin-top:20px;padding-top:20px;border-top:1px solid #ece9dd; }
.plan-group legend { font-size:13px;font-weight:600;padding:0;margin-bottom:14px;float:left;width:100%; }
.plan-form__grid { display:grid;grid-template-columns:1fr 1fr;gap:18px 22px;clear:both; }
#planPreferenceGroup .plan-form__grid { grid-template-columns:minmax(0,.8fr) minmax(0,1.8fr); }
.plan-field { min-width:0; }
.plan-field--wide { grid-column:1/-1; }
#planPreferenceGroup .plan-field--wide { grid-column:auto; }
.plan-days { display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px; }
.plan-number-label { display:flex;align-items:center;gap:9px;color:#65745f;font-size:12px; }
.plan-number-label input { width:72px;border:1px solid #dfe3d7;border-radius:8px;padding:8px 6px;background:#fbfaf3;color:#315b4b;font-size:13px;text-align:center; }
.plan-stepper { display:flex;align-items:center;max-width:230px;gap:8px;border:1px solid #dfe3d7;border-radius:8px;background:#fbfaf3;color:#65745f;font-size:12px;overflow:hidden; }
.plan-stepper button { border:0;background:transparent;color:#315b4b;width:39px;height:38px;font-size:19px;cursor:pointer;flex-shrink:0; }
.plan-stepper button:hover { background:#e9eddf; }
.plan-stepper input { width:100%;min-width:40px;flex:1;border:0;border-radius:0;background:transparent;color:#315b4b;font-size:14px;text-align:center;appearance:textfield; }
.plan-stepper input::-webkit-inner-spin-button,.plan-stepper input::-webkit-outer-spin-button { appearance:none;margin:0; }
.plan-field > label,.plan-field > .plan-label { display:block;font-size:12px;color:#7b8070;margin-bottom:9px; }
.plan-label em { font-size:10px;font-weight:400;font-style:normal;color:#9c7c48;margin-left:5px; }
.plan-opts { display:flex;flex-wrap:wrap;gap:6px; }
.plan-opt { border:1px solid #e0e3d7;background:#fbfaf3;color:#53695a;font-size:12px;line-height:1.5;padding:8px 11px;border-radius:8px;cursor:pointer; }
.plan-opt:hover { border-color:#b5a782; }
.plan-opt[aria-pressed="true"] { background:#193b38;color:#fff6dd;border-color:#193b38; }
.plan-field select,.plan-advanced select { max-width:100%;width:100%;padding:9px 11px;border:1px solid #dfe3d7;border-radius:8px;background:#fbfaf3;color:#315b4b;font:inherit;font-size:13px; }
.plan-advanced { margin-top:20px;border-top:1px solid #ece9dd;padding-top:16px; }
.plan-advanced summary { cursor:pointer;font-size:12px;color:#65745f; }
.plan-advanced summary span { font-size:10px;color:#929581;margin-left:8px; }
.plan-advanced label { display:block;font-size:12px;margin:16px 0 8px; }
.plan-advanced select { max-width:230px; }
.plan-advanced p { font-size:11px;color:#8a8774;margin:8px 0 0;line-height:1.8; }
.plan-actions { display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:24px; }
.plan-hint { font-size:11px;color:#8b8d7b; }
.plan-actions .btn { font-size:13px;padding:11px 21px; }
.plan-err { max-width:1288px;margin:12px auto;color:#9c543d;font-size:12px;line-height:1.9; }
.plan-err:empty { display:none; }
.plan-food-preference { max-width:1060px;margin:0 auto 16px;background:#eeefdf;border-left:3px solid #c0a36a;border-radius:0 8px 8px 0;padding:12px 16px;font-size:12px;color:#6b805f;line-height:1.9; }
.plan-form__heading button,.plan-criteria button { border:1px solid #d9decf;color:#315b4b;background:transparent;border-radius:7px;font-size:12px;padding:8px 12px;cursor:pointer; }
.plan-criteria { display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid #dcded1;padding:5px 0 16px; }
.plan-criteria small { font-size:10px;color:#9c8151;letter-spacing:.09em; }
.plan-criteria p { display:flex;gap:8px 14px;flex-wrap:wrap;margin:7px 0 0;font-size:12px;color:#5c7060; }
.plan-criteria button { flex-shrink:0; }
.has-plan .plan-hero { padding-bottom:17px; }
.has-plan .plan-hero h1 { font-size:clamp(23px,2.3vw,30px); }
.is-changing-conditions .plan-criteria { margin-bottom:20px; }
.is-changing-conditions .plan-form { max-width:none; }
.trip-library { max-width:1060px;margin:16px auto 0;color:#5b715f;font-size:12px; }
.has-plan .trip-library { max-width:none; }
.trip-library summary { cursor:pointer; }
.trip-library summary span { color:#929783;font-size:10px;margin-left:10px; }
.trip-library__row { display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:12px; }
.trip-library__row select { flex:1 1 180px;min-width:0;max-width:460px; }
.trip-library select,.trip-library button { font:inherit;font-size:12px;color:#315b4b;background:#fffdf8;border:1px solid #dfe1d4;border-radius:7px;padding:7px 10px; }
.trip-library button { cursor:pointer; }
.trip-library p { margin:8px 0 0;font-size:11px; }
.plan-result { margin-top:25px;scroll-margin-top:calc(var(--nav-height,72px) + 18px); }
.plan-result[aria-busy="true"] { opacity:.55; }
.trip-return-bar { position:sticky;top:calc(var(--site-nav-height,72px) + 12px);z-index:20;margin-bottom:18px;pointer-events:none; }
.trip-return-bar button { pointer-events:auto;display:inline-flex;align-items:center;border:1px solid #193b38;border-radius:24px;background:#193b38;color:#fff6dd;padding:11px 22px;font:inherit;font-size:14px;font-weight:600;line-height:1.5;cursor:pointer;box-shadow:0 4px 16px #193b3824; }
.trip-return-bar button:hover { background:#2c5349; }
.is-changing-conditions .trip-return-bar { display:none; }
.plan-empty { text-align:center;font-size:13px;color:#8b927f;padding:23px 16px;line-height:1.9; }
.plan-empty span { color:#a38b60;font-size:11px;letter-spacing:.04em; }
.plan-empty p { margin:8px 0 0; }
.plan-head { display:flex;justify-content:space-between;align-items:flex-start;gap:20px; }
.trip-eyebrow { display:block;font-size:9px;letter-spacing:.21em;color:#a08758;margin-bottom:8px; }
.plan-head h2 { margin:0;color:#193b38;font-size:clamp(23px,2.5vw,31px);line-height:1.4; }
.plan-head p { max-width:800px;color:#71816f;font-size:13px;line-height:1.8;margin:8px 0 0; }
.plan-badge { font-size:10px;color:#426953;padding:6px 10px;border:1px solid #d6dfce;border-radius:20px;flex-shrink:0;margin-top:8px; }
.plan-badge.is-local { color:#9d7743;border-color:#dfd4bc; }
.trip-overview { display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:18px; }
.trip-summary { display:flex;gap:15px;align-items:center;flex-wrap:wrap;font-size:12px;color:#6b7a66; }
.trip-summary b { font:600 22px Georgia,serif;color:#193b38;margin-right:3px; }
.trip-revision { color:#9c8c69;font-size:10px; }
.trip-overview__actions { display:flex;gap:7px;align-items:center;flex-wrap:wrap; }
.trip-overview__actions > button,.trip-action-menu > summary { font:inherit;font-size:12px;border:1px solid #d9dfd0;color:#315b4b;background:#fffdf8;padding:8px 12px;border-radius:7px;cursor:pointer;list-style:none; }
.trip-action-menu { position:relative; }
.trip-action-menu summary::-webkit-details-marker,.trip-stop__menu summary::-webkit-details-marker { display:none; }
.trip-action-menu[open] > summary { background:#193b38;color:#fff5db; }
.trip-action-menu > div { position:absolute;right:0;top:calc(100% + 5px);z-index:12;min-width:160px;background:#fffdf8;border:1px solid #d9dfd0;border-radius:10px;box-shadow:0 8px 22px #193b3815;padding:5px; }
.trip-action-menu button { display:block;width:100%;border:0;background:transparent;color:#315b4b;padding:10px;font:inherit;font-size:12px;text-align:left;cursor:pointer;border-radius:5px; }
.trip-action-menu button:hover { background:#f1f2e8; }
.trip-save-status { margin:8px 0 15px;font-size:11px;color:#92917a;line-height:1.8; }
.trip-tabs { display:flex;gap:7px;overflow-x:auto;padding:0 0 12px;scrollbar-width:thin; }
.trip-tabs button { flex-shrink:0;border:1px solid #dde1d4;border-radius:8px;background:#fffdf8;color:#5a735d;font-size:12px;padding:10px 14px;cursor:pointer; }
.trip-tabs button small { margin-left:7px;font-size:10px; }
.trip-tabs button.is-active { background:#193b38;color:#fff6dd;border-color:#193b38; }
.trip-workspace { display:grid;grid-template-columns:minmax(0,.43fr) minmax(0,.57fr);gap:18px; }
.trip-list,.trip-map { height:640px;min-width:0;background:#fffdf8;border:1px solid #dce1d3;border-radius:14px;overflow:hidden;display:flex;flex-direction:column; }
.trip-list__head { padding:17px 19px 13px;border-bottom:1px solid #e8eadf;flex-shrink:0; }
.trip-list__head h3 { font-size:18px;margin:0 0 7px; }
.trip-list__head p { margin:0;font-size:11px;line-height:1.8;color:#8e835f;overflow-wrap:anywhere; }
#tripSelectionHint:empty { display:none; }
.trip-stops { position:relative;overflow-y:auto;min-height:0;flex:1;padding:8px 16px;scrollbar-width:thin;overscroll-behavior:contain; }
.trip-stop { display:flex;position:relative;gap:11px;padding:15px 9px;margin:0;border-bottom:1px solid #e8eadf;cursor:pointer;transition:background .15s;border-radius:7px; }
.trip-stop:last-child { border-bottom:0; }
.trip-stop:hover,.trip-stop.is-selected { background:#f4f2e6; }
.trip-stop.is-selected { box-shadow:inset 2px 0 #b29558; }
.trip-stop__number { display:grid;place-items:center;flex:0 0 27px;height:27px;background:#193b38;color:#fff5df;border-radius:50%;font:600 12px system-ui,sans-serif; }
.trip-stop__body { min-width:0;flex:1; }
.trip-stop small { font-size:10px;color:#a58b5b; }
.trip-stop h4 { font-size:18px;margin:4px 0;line-height:1.45; }
.trip-stop__location { display:block;font-size:10px;color:#84917b;overflow-wrap:anywhere; }
.trip-stop p { margin:8px 0;font-size:12px;color:#5c725f;line-height:1.85; }
.trip-stop__meta { color:#969680;font-size:10px;line-height:1.8; }
.trip-stop__links { display:flex;gap:14px;align-items:center;margin-top:6px; }
.trip-stop__links > button,.trip-stop__links > a,.trip-stop__menu summary { font:inherit;font-size:11px;color:#416b51;padding:5px 0;background:transparent;border:0;text-decoration:none;cursor:pointer; }
.trip-stop__menu { position:relative;margin-left:auto; }
.trip-stop__menu summary { list-style:none; }
.trip-stop__menu[open] div { display:flex;gap:5px;flex-wrap:wrap; }
.trip-stop__menu button { cursor:pointer;padding:5px 8px;border:1px solid #e1decc;border-radius:5px;color:#637256;background:#fffdf7;font-size:11px; }
.trip-stop p.trip-stop__next { border-left:2px solid #d5bd83;padding-left:9px;font-size:10px;color:#9c8351;margin:10px 0 0; }
.trip-add { display:flex;gap:8px;padding:12px 17px;border-top:1px solid #e8eadf;flex-shrink:0; }
.trip-add select { min-width:0;flex:1; }
.trip-add select,.trip-add button { border:1px solid #dce1d2;border-radius:6px;padding:7px 9px;background:#fffdf8;color:#476b52;font:inherit;font-size:12px; }
.trip-add button { cursor:pointer; }
.trip-map__head { display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 18px;background:#193b38;color:#fff6df;flex-shrink:0; }
.trip-map__head strong { font-size:14px;letter-spacing:.05em; }
.trip-map__head span { font-size:9px;letter-spacing:.08em;color:#cdbd93; }
.trip-map__tools { display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 13px;border-bottom:1px solid #e6e8dc;flex-shrink:0; }
.trip-map__tools label { display:inline-flex;align-items:center;gap:5px;font-size:11px;color:#63765f; }
.trip-map__tools input { accent-color:#193b38;width:13px;height:13px; }
.trip-map__tools button,.trip-map__tools select { border:1px solid #dce1d1;border-radius:6px;color:#315b4b;background:#fffdf8;font:inherit;font-size:11px;padding:6px 8px;cursor:pointer; }
.trip-map__stage { position:relative;flex:1;min-height:280px;background:#eef0e9; }
.trip-map__canvas { position:absolute;inset:0;width:100%;height:100%; }
.trip-map__notice { display:flex;position:absolute;inset:0;z-index:5;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;background:#f4f4ec;padding:26px;color:#7c8770; }
.trip-map__notice[hidden] { display:none; }
.trip-map__symbol { display:grid;place-items:center;width:50px;height:50px;border-radius:50%;border:1px solid #d0d6c2;font-size:28px;color:#a58854; }
.trip-map__notice h4 { font-size:18px;margin:0;color:#315b4b; }
.trip-map__notice p { margin:0;max-width:390px;font-size:12px;line-height:1.9;overflow-wrap:anywhere; }
.trip-map__notice button { background:#193b38;color:#fff6df;border:0;border-radius:30px;padding:9px 22px;font-size:12px;cursor:pointer; }
.trip-map__notice a { color:#92866a;font-size:10px;text-decoration:underline; }
.trip-map__legend { display:flex;gap:16px;padding:8px 14px 0;color:#93937c;font-size:9px;flex-shrink:0; }
.trip-map__legend span { display:inline-flex;align-items:center;gap:5px; }
.trip-map__legend i { display:inline-block;width:18px;border-top:2px solid #1d6354; }
.trip-map__legend i.trip-legend-stop { width:7px;height:7px;background:#193b38;border:0;border-radius:50%; }
.trip-map__legend i.trip-legend-walk { border-color:#b48a42;border-top-style:dashed; }
.trip-map__message { padding:7px 14px 9px;margin:0;min-height:30px;color:#858e79;font-size:10px;line-height:1.6;flex-shrink:0; }
.trip-marker { display:grid;place-items:center;width:32px;height:32px;border:2px solid #fffdf8;border-radius:50%;background:#193b38;color:white;box-shadow:0 2px 8px #193b3840;font:600 13px system-ui,sans-serif;cursor:pointer; }
.trip-marker.is-selected { outline:3px solid #d7b573;background:#9b6829;transform:scale(1.1); }
.trip-info { color:#193b38;padding:6px 8px;max-width:240px; }
.trip-info strong { font-size:15px; }.trip-info p { font-size:12px;line-height:1.8;margin:8px 0; }.trip-info small { color:#84917b; }
.trip-day-note,.trip-warning { font-size:11px;color:#8b8d76;line-height:1.9;margin:12px 0; }
.trip-warning { color:#9c6c44; }
.plan-tips { color:#7d886f;font-size:11px;line-height:1.9;margin-top:15px; }.plan-tips summary { cursor:pointer; }.plan-tips ul { padding-left:18px; }
.trip-confirm { border:1px solid #dce0d1;border-radius:16px;background:#fffdf8;color:#315b4b;width:min(430px,calc(100vw - 32px));padding:25px; }
.trip-confirm::backdrop { background:#132e2b66; }.trip-confirm h2 { margin:0;font-size:21px; }.trip-confirm p { font-size:13px;color:#81866f;line-height:1.9; }.trip-confirm > div { display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap; }
.trip-confirm button { border:1px solid #dce1d2;border-radius:7px;padding:9px 12px;background:#fffdf8;color:#315b4b;font:inherit;font-size:12px;cursor:pointer; }.trip-confirm button:last-child { background:#193b38;color:#fff6df; }
.plan-page button:disabled,.plan-page select:disabled { opacity:.45;cursor:default; }
.plan-page :is(button,input,select,summary,a):focus-visible { outline:2px solid #b89a5d;outline-offset:3px; }
.trip-print { display:none; }
@media (max-width:1100px) { .plan-form__grid { grid-template-columns:1fr 1fr; }.plan-group:not(#planPreferenceGroup) .plan-form__grid > .plan-field:first-child { grid-column:1/-1; }.plan-hero__inner { flex-wrap:wrap;gap:15px; }.trip-overview__actions { width:100%; } }
@media (min-width:901px) and (max-height:800px) { .trip-list,.trip-map { height:580px; } }
@media (max-width:900px) { .trip-workspace { grid-template-columns:minmax(0,1fr);gap:15px; }.trip-list { height:530px; }.trip-map { height:540px; }.trip-summary { gap:12px; }.trip-revision { flex-basis:100%; }.plan-head { flex-wrap:wrap;gap:8px; }.plan-badge { margin:0; } }
@media (max-width:600px) { .plan-hero { padding-top:calc(var(--nav-height,64px) + 23px); }.plan-hero h1 { font-size:25px; }.plan-hero p { font-size:12px; }.plan-form { padding:22px 18px; }.plan-form__grid,#planPreferenceGroup .plan-form__grid { grid-template-columns:minmax(0,1fr); }.plan-field { grid-column:1; }.plan-opt { padding:9px 12px;min-height:39px; }.plan-actions { gap:10px; }.plan-hint { width:100%;line-height:1.8; }.plan-criteria { align-items:flex-start; }.plan-criteria p { font-size:11px;gap:5px 10px; }.plan-criteria button { padding:8px;font-size:11px; }.trip-stop__links > button,.trip-stop__links > a,.trip-stop__menu summary { min-height:36px;display:inline-flex;align-items:center; }.trip-map__tools button,.trip-map__tools select { min-height:34px; }.trip-overview__actions > button,.trip-action-menu > summary { padding:10px 11px; }.trip-library summary span { display:block;margin:4px 0 0 16px; }.trip-map__tools { gap:8px; }.trip-list { height:550px; }.trip-map { height:550px; }.trip-map__legend { gap:13px; }.trip-stops { padding-left:11px;padding-right:11px; } }
@media print { .plan-page > :not(#tripPrint) { display:none !important; }.plan-page > #tripPrint { display:block !important;color:#193b38;font:13px/1.8 sans-serif;padding:12px; }.trip-print header { border-bottom:1px solid #bfa66e; }.trip-print h1 { font:26px serif; }.trip-print h2 { font:20px serif;margin-top:24px; }.trip-print li { break-inside:avoid;margin:12px 0; }.trip-print small,.trip-print footer { color:#747b67; }.trip-print footer { border-top:1px solid #ddd;padding-top:12px; } }
@media (prefers-reduced-motion:reduce) { .trip-stop { transition:none; } }
