.pl-wrap{padding:2.5rem 0 4rem}
.pl-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;align-items:start}
@media (min-width:64rem){.pl-grid{grid-template-columns:24rem minmax(0,1fr)}.pl-form{position:sticky;top:110px}}
.pl-grid>*{min-width:0}
.pl-form{background:var(--sheet);border:1px solid var(--rule);border-radius:12px;padding:1.25rem}
.pl-row{border:0;margin:0 0 1.25rem;padding:0;min-width:0}
.pl-row:last-child{margin-bottom:0}
.pl-l{display:block;font-weight:650;margin:0 0 .5rem;padding:0;font-size:1rem}
.pl-hint{font-size:.85rem;color:var(--muted);margin:.4rem 0}
#pl-home{width:100%;font:inherit;color:var(--ink);background:var(--sheet);border:1px solid var(--rule);border-radius:6px;padding:.55rem .7rem;min-height:44px}
.chips{display:flex;flex-wrap:wrap;gap:.4rem}
.chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.88rem;padding:.35rem .65rem;border:1px solid var(--rule);border-radius:99px;cursor:pointer;min-height:36px;background:var(--sheet)}
.chip.on{border-color:var(--navy);background:color-mix(in srgb,var(--navy) 8%,var(--sheet))}
.chip.dis{opacity:.45;cursor:not-allowed}
.chip input{accent-color:var(--navy);margin:0}
.pl-more{margin-top:.6rem}
.pl-more summary{cursor:pointer;font-size:.88rem;color:var(--navy);margin-bottom:.5rem}
.routes{display:grid;gap:.5rem}
.route{display:grid;grid-template-columns:auto 1fr;column-gap:.6rem;align-items:start;border:1.5px solid var(--rule);border-radius:10px;padding:.7rem .8rem;cursor:pointer}
.route input{grid-row:span 2;margin-top:.25rem;accent-color:var(--navy)}
.route span{font-size:.85rem;color:var(--muted)}
.route.on{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
.pl-empty{background:var(--sheet);border:1px dashed var(--rule);border-radius:12px;padding:2rem 1.25rem;text-align:center;color:var(--muted)}
.pl-sum{background:var(--sheet);border:1px solid var(--rule);border-radius:12px;padding:1.25rem;margin-bottom:1.25rem}
.pl-sumhead{font-weight:650;margin:0 0 .8rem}
.pl-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.8rem}
.pl-tiles div{border-top:2px solid var(--gold);padding-top:.5rem}
.pl-tiles b{display:block;font-family:"Spectral",Georgia,serif;font-weight:500;font-size:2rem;color:var(--navy);line-height:1.1}
.pl-tiles span{font-size:.88rem;color:var(--muted)}
.pl-cta{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid var(--rule)}
.pl-cta div{flex:1 1 18rem}
.pl-cta b{display:block}
.pl-cta span{font-size:.92rem;color:var(--muted)}
.pl-tools{margin:.9rem 0 0;font-size:.88rem}
.pl-tools button{font:inherit;background:none;border:0;color:var(--navy);text-decoration:underline;cursor:pointer;padding:0;margin-right:.8rem;min-height:32px}
#pl-msg{color:var(--muted);overflow-wrap:anywhere}
.pl-cards{display:grid;grid-template-columns:1fr;gap:1rem}
.pl-card{background:var(--sheet);border:1px solid var(--rule);border-radius:12px;padding:1.1rem 1.2rem;overflow-wrap:anywhere}
.pl-card header{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.7rem}
.pl-card h3{font-size:1.35rem;margin:0 .4rem 0 0}
.badge{font-size:.75rem;font-weight:650;border-radius:99px;padding:.15rem .6rem;border:1px solid transparent}
.badge.req{background:color-mix(in srgb,var(--navy) 12%,var(--sheet));color:var(--navy);border-color:color-mix(in srgb,var(--navy) 35%,transparent)}
.badge.opt{background:var(--gold-soft);color:var(--ink)}
.badge.none{background:color-mix(in srgb,var(--ok) 14%,var(--sheet));color:var(--ink);border-color:color-mix(in srgb,var(--ok) 40%,transparent)}
.pl-dl{display:grid;grid-template-columns:1fr;gap:.2rem;margin:0;font-size:.95rem}
@media (min-width:44rem){.pl-dl{grid-template-columns:12rem 1fr;gap:.5rem 1rem}}
.pl-dl dt{color:var(--muted);font-weight:600;font-size:.86rem}
.pl-dl dd{margin:0 0 .5rem}
@media (min-width:44rem){.pl-dl dd{margin:0}}
.pl-flags{margin-top:.8rem;border-left:4px solid var(--gold);padding:.3rem 0 .3rem .8rem}
.pl-flags p{margin:.2rem 0;font-size:.93rem}
.pl-detail{margin-top:.8rem}
.pl-detail summary{cursor:pointer;color:var(--navy);font-size:.9rem;font-weight:600}
.pl-detail h4{font-size:1rem;margin:.9rem 0 .3rem}
.pl-detail p{font-size:.93rem;margin:0}
.pl-cite{font-size:.82rem!important;color:var(--muted);margin-top:.8rem!important}
.pl-cite a{color:var(--muted)}
.pl-go{margin:.9rem 0 0;font-size:.92rem}
.pl-go a{font-weight:600;color:var(--navy)}
.pl-go span{color:var(--muted);margin-left:.5rem;font-size:.85rem}
.pl-note{font-size:.85rem;color:var(--muted);max-width:48rem;margin:2rem 0 0}
@media print{header.top,footer,.pl-form,.pl-cta .btn,.pl-tools,.skip{display:none!important}.pl-grid{grid-template-columns:1fr}.pl-card{break-inside:avoid}}
