.pl-plan[hidden], .pl-plan [hidden], .cs-shortcuts #pl-jump[hidden], .pl-preset[hidden] { display:none !important; }
.pl-plan { box-sizing:border-box; margin:clamp(1.4rem,4.5vw,3.8rem) auto; padding:0 clamp(.5rem,2vw,1.4rem); max-width:72rem; color:#152943; scroll-margin-block-start:1rem; }
.pl-plan * { box-sizing:border-box; }
.pl-shell { display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:clamp(1.2rem,4vw,3.5rem); padding:clamp(1.2rem,4vw,3rem); border:1px solid #c4d1e0; border-radius:1.25rem; background:#f1f5fa; }
.pl-build h2 { margin:0; color:#142f4e; font-size:clamp(1.65rem,3.25vw,2.65rem); letter-spacing:-.045em; line-height:1.05; }
.pl-build p { margin:.75rem 0 1.35rem; max-width:37ch; color:#3d536c; line-height:1.5; }
.pl-plan label { display:block; margin-bottom:.4rem; font-weight:650; }
.pl-select-line { display:flex; align-items:stretch; gap:.45rem; }
.pl-plan select, .pl-plan input { min-width:0; min-height:44px; padding:.65rem; border:1px solid #9daec2; border-radius:.5rem; background:#fff; color:#142943; font:inherit; }
.pl-plan select { flex:1; width:100%; }
.pl-plan button, .pl-start, .pl-preset { border:1px solid #859ab0; border-radius:.5rem; min-height:44px; padding:.5rem .7rem; font:650 .89rem/1.2 system-ui,sans-serif; color:#173751; background:#fff; cursor:pointer; }
.pl-plan button:hover:enabled, .pl-preset:hover { background:#e7f0fa; }
.pl-plan :is(a, button, select, input):focus-visible, .pl-preset:focus-visible, #pl-jump:focus-visible { outline:3px solid #146ab5; outline-offset:2px; }
.pl-plan button:disabled { opacity:.4; cursor:default; }
.pl-plan .pl-add, .pl-start { display:inline-flex; align-items:center; gap:.55rem; border-color:#1c466b; background:#1c466b; color:white; text-decoration:none; }
.pl-plan .pl-add:hover:enabled, .pl-start:hover { background:#123759; color:#fff; }
.pl-itinerary { min-width:0; padding:clamp(.9rem,2.3vw,1.55rem); background:white; border-radius:.8rem; border:1px solid #d2dce5; }
.pl-itinerary h3 { display:flex; align-items:center; gap:.55rem; font-size:1.15rem; margin:0 0 .55rem; }
#pl-total { font-size:.8rem; background:#e5edf7; color:#254c70; min-width:1.55rem; padding:.1rem .35rem; text-align:center; border-radius:1rem; }
#pl-empty, .pl-status { color:#43596d; line-height:1.4; margin:.55rem 0 0; }
.pl-status { font-size:.86rem; }
.pl-status:empty { margin:0; }
#pl-steps { margin:.75rem 0; padding:0; list-style:none; }
.pl-step { display:grid; grid-template-columns:1.55rem minmax(0,1fr) 2.6rem 2.6rem; align-items:center; gap:.25rem; padding:.2rem 0; border-top:1px solid #dce4eb; }
.pl-num { font-variant-numeric:tabular-nums; font-weight:700; color:#4c6278; }
.pl-step a { display:flex; min-height:44px; flex-direction:column; justify-content:center; align-items:flex-start; overflow-wrap:anywhere; text-decoration:none; color:#173751; line-height:1.25; }
.pl-step a:hover strong { text-decoration:underline; }
.pl-step small { margin-top:.18rem; color:#536779; font-size:.78rem; }
.pl-step button { border:0; padding:0; font-size:1.2rem; }
.pl-actions { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.8rem; align-items:center; }
.pl-plan .pl-clear { border-color:transparent; text-decoration:underline; text-underline-offset:.16em; font-weight:500; }
#pl-fallback { margin-top:.7rem; }
#pl-fallback input { width:100%; }
#pl-undo { margin-top:.7rem; }
.pl-preset { margin:.4rem .65rem .2rem 0; }
.cs-shortcuts #pl-jump { background:#1c466b; color:white; border-color:#1c466b; }
@media (max-width:680px) {
  .pl-shell { grid-template-columns:1fr; }
  .pl-plan { padding:0; }
  .pl-step { grid-template-columns:1.3rem minmax(0,1fr) 2.6rem 2.6rem; }
}
@media (max-width:380px) {
  .pl-actions > .pl-start { width:100%; justify-content:center; }
}
