/* «Mi plan» por días (pages-plan.mjs + plan.js). Móvil primero; tokens de site.css; hoja de impresión limpia al final. */
.pl{padding-block:1rem 3.5rem}
.pl [hidden]{display:none!important}
.pl-loading{padding:2rem 0}
.pl-note{padding:1rem 1.2rem;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}

/* cabecera compacta cuando ya hay plan: el rótulo y el título, sin la entradilla (sigue en la descripción de la página) */
.pl-on .page-head{padding-block:clamp(1.2rem,3vw,2rem) .9rem}
.pl-on .page-head .eyebrow{margin-block-end:.5rem}
.pl-on .page-head h1{font-size:clamp(1.7rem,1.2rem + 2vw,2.5rem);margin:0;max-inline-size:none}
.pl-on .page-head .lead{display:none}
.pl-on .pl{padding-block:.4rem 3rem}

/* resumen: una línea (cuántas, días, fechas, coste) + avisos + ajustes + acciones */
.pl-sum{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem .6rem;padding-block:.2rem .6rem}
.pl-sum-t{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.1rem .45rem;font:600 .95rem/1.4 var(--ff);flex:1 1 100%}
.pl-sp{white-space:nowrap}.pl-dot{color:var(--muted)}
.pl-cost{cursor:help;text-decoration:underline dotted color-mix(in oklch,var(--muted) 60%,transparent);text-underline-offset:.25em}
.pl-chip{display:inline-flex;align-items:center;gap:.4rem;min-block-size:44px;padding:.3rem .85rem;border-radius:99px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:600 .85rem/1 var(--ff);cursor:pointer}
.pl-chip:hover{border-color:var(--ink)}.pl-chip svg{flex:none}
.pl-wbtn{border-color:color-mix(in oklch,var(--taronja) 55%,var(--line));background:color-mix(in oklch,var(--taronja) 14%,var(--surface))}
.pl-wbtn::after,.pl-setbtn::after{content:"";inline-size:.45rem;block-size:.45rem;border-inline-end:2px solid currentColor;border-block-end:2px solid currentColor;transform:translateY(-.1rem) rotate(45deg);transition:transform .2s var(--ease)}
.pl-wbtn[aria-expanded=true]::after,.pl-setbtn[aria-expanded=true]::after{transform:translateY(.1rem) rotate(-135deg)}
.pl-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:.4rem;margin-inline-start:auto}
.pl-ab{min-block-size:44px;padding:.5rem .8rem;font-size:.88rem;flex:none;white-space:nowrap}
.pl-ib2{inline-size:44px;padding:0}
.pl-ib2 .pl-bl{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pl-clear{inline-size:44px;transition:inline-size .2s var(--ease)}
.pl-clear:hover,.pl-clear:focus-visible{color:var(--vermell);border-color:var(--vermell)}
.pl-clear.armed{inline-size:auto;padding-inline:.8rem;color:#fff;background:var(--bad);border-color:var(--bad);gap:.4rem}
.pl-clear.armed:hover{color:#fff}
.pl-clear-t{font-size:.82rem}
.pl-warn{margin:.3rem 0 .6rem;padding:.8rem 1rem;border-radius:var(--r);background:color-mix(in oklch,var(--taronja) 14%,var(--surface));border-inline-start:4px solid var(--taronja);font-size:.92rem}
.pl-warn ul{margin:0;padding-inline-start:1.1em}.pl-warn li+li{margin-block-start:.3rem}
.pl-warn .pl-wl{margin-block-start:.5rem;padding-block-start:.5rem;border-block-start:1px dashed color-mix(in oklch,var(--taronja) 50%,var(--line));list-style:none;padding-inline-start:0}
.pl-link{font:inherit;font-weight:600;color:var(--accent-ink);background:none;border:0;padding:.2rem 0;cursor:pointer;text-decoration:underline;text-underline-offset:.2em}
.pl-sharebox{display:grid;gap:.3rem;margin:.1rem 0 .6rem}
.pl-share-url{font:500 .8rem var(--ff-mono);padding:.6rem .7rem;border:1px dashed var(--line);border-radius:var(--r);background:var(--surface);color:var(--muted);inline-size:100%;min-block-size:44px}
.pl-share-note{margin:0}

/* ajustes del viaje: una fila en escritorio; plegado detrás de «Ajustes del viaje» en móvil */
.pl-setup{display:grid;gap:.5rem;padding:.8rem clamp(.8rem,2vw,1.1rem);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.pl-fields{display:grid;gap:.7rem;grid-template-columns:minmax(0,1fr)}
.pl-field{display:grid;gap:.25rem;align-content:end;min-inline-size:0}
.pl-field label{font:600 .8rem/1.3 var(--ff)}.pl-field label small{font-weight:400;color:var(--muted)}
.pl-field input,.pl-field select{font:inherit;color:inherit;min-block-size:44px;padding:.45rem .7rem;border:1.5px solid var(--line);border-radius:var(--r);background:var(--bg);inline-size:100%;min-inline-size:0}
.pl-field input:focus-visible,.pl-field select:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.pl-stepper{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;border:1.5px solid var(--line);border-radius:var(--r);background:var(--bg);overflow:hidden}
.pl-stepper input{border:0;border-radius:0;text-align:center;font:600 1.05rem var(--ff-mono);background:transparent;-moz-appearance:textfield;appearance:textfield}
.pl-stepper input::-webkit-inner-spin-button,.pl-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.pl-step{font:600 1.3rem/1 var(--ff);border:0;background:transparent;color:var(--accent-ink);cursor:pointer}.pl-step:hover{background:var(--accent-soft)}.pl-step:disabled{opacity:.35;cursor:default}
.pl-redo-f .btn{inline-size:100%;min-block-size:44px}
.pl-how{margin:0}
.pl-set:not(.open) .pl-setup{display:none}
.pl-set{margin-block-end:.7rem}
@media (min-width:900px){
  .pl-setbtn{display:none}
  .pl-set:not(.open) .pl-setup{display:grid}
  .pl-setup{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.4rem 1.2rem;padding-block:.6rem}
  .pl-fields{grid-template-columns:150px 190px minmax(0,1fr) auto;gap:.8rem}
  .pl-redo-f .btn{inline-size:auto}
  .pl-how{max-inline-size:34ch;font-size:.78rem;line-height:1.35}
}
@media (min-width:900px) and (max-width:1099px){.pl-how{display:none}}

/* pestañas de los días: fijas bajo la cabecera; en móvil, deslizables */
.pl-tabsw{position:sticky;inset-block-start:72px;z-index:20;background:var(--bg);box-shadow:0 0 0 100vmax var(--bg);clip-path:inset(0 -100vmax);padding-block:.45rem}
.pl-tabs{display:flex;gap:.5rem;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;overscroll-behavior-x:contain;padding-block:.15rem}
.pl-tabs::-webkit-scrollbar{display:none}
.pl-tab{position:relative;flex:none;scroll-snap-align:center;display:inline-flex;align-items:center;gap:.5rem;min-block-size:44px;padding:.35rem .95rem;border-radius:99px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:600 .9rem/1 var(--ff);cursor:pointer;white-space:nowrap;transition:background .18s,color .18s,border-color .18s}
.pl-tab:hover{border-color:var(--ink)}
.pl-tab-d{font:500 .78rem/1 var(--ff-mono);letter-spacing:.01em;color:var(--muted);text-transform:capitalize}
.pl-tab-d::before{content:"· ";}
.pl-tab-c{font:600 .72rem/1 var(--ff-mono);min-inline-size:1.5rem;padding:.3rem .4rem;border-radius:99px;background:var(--surface-2);text-align:center;color:var(--ink)}
.pl-tab.free{border-style:dashed;color:var(--muted)}
.pl-tab[aria-selected=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.pl-tab[aria-selected=true] .pl-tab-d{color:color-mix(in oklch,var(--bg) 75%,transparent)}
.pl-tab[aria-selected=true] .pl-tab-c{background:color-mix(in oklch,var(--bg) 22%,transparent);color:var(--bg)}
.pl-tab-w{position:absolute;inset-block-start:-3px;inset-inline-end:-2px;inline-size:.8rem;block-size:.8rem;border-radius:50%;background:var(--taronja);border:2px solid var(--bg)}

/* día */
.pl-days{margin-block-start:.5rem}
.pl-day{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.pl-day-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem 1rem;padding:.7rem clamp(.8rem,2vw,1.1rem);border-block-end:1px solid var(--line);background:linear-gradient(90deg,var(--tint),transparent);border-start-start-radius:var(--r-lg);border-start-end-radius:var(--r-lg)}
.pl-day-h h2{font-size:clamp(1.25rem,1.1rem + .6vw,1.6rem);margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .7rem}
.pl-day-h h2 small{font:500 .78rem/1.4 var(--ff-mono);letter-spacing:.02em;color:var(--muted)}
.pl-load{order:3;flex:1 1 auto;margin:0;font:500 .78rem/1.5 var(--ff-mono);color:var(--muted)}
.pl-kind{order:2;margin-inline-start:auto;align-self:center;font:600 .68rem/1 var(--ff-mono);text-transform:uppercase;letter-spacing:.08em;padding:.4rem .55rem;border-radius:99px;background:var(--accent-soft);color:var(--accent-ink);white-space:nowrap}
.pl-kind.half{background:color-mix(in oklch,var(--sand) 45%,var(--surface));color:var(--ink)}
.pl-kind.over{background:color-mix(in oklch,var(--vermell) 16%,var(--surface));color:var(--vermell)}
.pl-kind.empty{background:var(--surface-2);color:var(--muted)}
.pl-day-b{display:grid;gap:0}
.pl-free{margin:0;padding:1rem clamp(.8rem,2vw,1.1rem);color:var(--muted)}
.pl-over{margin:0;padding:.55rem clamp(.8rem,2vw,1.1rem);font-size:.85rem;color:var(--vermell);border-block-end:1px solid var(--line)}

/* mapa del día: columna fija (sticky) en escritorio; plegado detrás de un botón en móvil */
.pl-mapw{padding:.6rem clamp(.8rem,2vw,1.1rem);border-block-start:1px solid var(--line);background:var(--surface-2);border-end-start-radius:var(--r-lg);border-end-end-radius:var(--r-lg)}
.pl-mapbtn{display:inline-flex;align-items:center;gap:.5rem;min-block-size:44px;padding:.3rem .9rem;border-radius:99px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:600 .88rem/1 var(--ff);cursor:pointer;inline-size:100%;justify-content:center}
.pl-mapbtn:hover{border-color:var(--ink)}
.pl-map{margin-block-start:.6rem}
.pl-mapw:not(.open) .pl-map{display:none}
.pl-map .isle-map{border-radius:var(--r);max-block-size:300px;inline-size:100%;block-size:auto}
@media (min-width:900px){
  .pl-day-b.has-map{grid-template-columns:minmax(0,1fr) minmax(280px,340px)}
  .pl-mapw{border-block-start:0;border-inline-start:1px solid var(--line);border-end-start-radius:0;padding:.6rem}
  .pl-mapbtn{display:none}
  .pl-mapw .pl-map,.pl-mapw:not(.open) .pl-map{display:block;margin:0;position:sticky;inset-block-start:150px}
  .pl-map .isle-map{max-block-size:none}
}

/* paradas: una fila compacta (foto pequeña, nombre, zona · duración · precio, avisos en chips) y un menú «⋯» */
.pl-stops{list-style:none;margin:0;padding:.2rem 0}
.pl-stop{position:relative;display:grid;grid-template-columns:60px minmax(0,1fr) auto 44px;grid-template-areas:"ph txt book menu";align-items:center;gap:.15rem .8rem;padding:.55rem clamp(.8rem,2vw,1.1rem)}
.pl-stop+.pl-stop,.pl-leg+.pl-stop{border-block-start:0}
.pl-ph{grid-area:ph;position:relative;align-self:start}
.pl-thumb{inline-size:60px;block-size:48px;border-radius:var(--r);object-fit:cover;background:var(--surface-2);display:block}
.pl-num{position:absolute;inset-block-start:-5px;inset-inline-start:-5px;inline-size:22px;block-size:22px;border-radius:50%;display:grid;place-items:center;font:700 .72rem var(--ff-mono);color:#fff;background:var(--pc,var(--accent));box-shadow:0 0 0 2px var(--surface)}
.pl-txt{grid-area:txt;min-inline-size:0}
.pl-txt h3{font-size:1rem;margin:0;line-height:1.25}.pl-txt h3 a{text-decoration:none}.pl-txt h3 a:hover{text-decoration:underline}
.pl-meta{margin:.1rem 0 0;font-size:.8rem;line-height:1.4;color:var(--muted)}
.pl-flags{margin:.2rem 0 0;display:flex;flex-wrap:wrap;gap:.25rem .4rem}
.pl-flag{position:relative;display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;border-radius:99px;font:600 .72rem/1.3 var(--ff);background:color-mix(in oklch,var(--taronja) 16%,var(--surface));color:var(--ink)}
.pl-flag::before{content:"";flex:none;inline-size:.45rem;block-size:.45rem;border-radius:50%;background:var(--taronja)}
.pl-soft{margin:.15rem 0 0;font-size:.75rem;line-height:1.35;color:var(--muted)}
.pl-book{grid-area:book;white-space:nowrap}
.pl-ficha{grid-area:menu;inline-size:auto}
.pl-leg{margin:0;padding:0 clamp(.8rem,2vw,1.1rem) 0 calc(clamp(.8rem,2vw,1.1rem) + 29px);font:500 .7rem/1.6 var(--ff-mono);color:var(--muted);border-inline-start:2px dotted var(--line);margin-inline-start:clamp(.8rem,2vw,1.1rem)}
.pl-stop.flash{animation:pl-flash 1.2s var(--ease)}
@keyframes pl-flash{0%{background:var(--accent-soft)}100%{background:transparent}}
@media (prefers-reduced-motion:reduce){.pl-stop.flash{animation:none}.pl-clear,.pl-wbtn::after,.pl-setbtn::after{transition:none}}

/* menú de la parada */
.pl-menu{grid-area:menu;position:relative}
.pl-mb{inline-size:44px;block-size:44px;display:grid;place-items:center;border:1.5px solid transparent;border-radius:var(--r);background:transparent;color:var(--ink);cursor:pointer;padding:0}
.pl-mb:hover,.pl-mb[aria-expanded=true]{border-color:var(--line);background:var(--surface-2)}
.pl-pop{position:absolute;z-index:40;inset-block-start:calc(100% + 4px);inset-inline-end:0;inline-size:min(272px,calc(100vw - 32px));display:grid;padding:.35rem;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-lg)}
.pl-pop.up{inset-block-start:auto;inset-block-end:calc(100% + 4px)}
.pl-mi{display:flex;align-items:center;gap:.65rem;min-block-size:44px;padding:.4rem .7rem;border:0;border-radius:var(--r);background:transparent;color:var(--ink);font:500 .92rem/1.2 var(--ff);text-decoration:none;text-align:start;cursor:pointer}
.pl-mi:hover,.pl-mi:focus-visible{background:var(--accent-soft)}
.pl-mi:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.pl-mi:disabled{opacity:.35;cursor:default;background:transparent}
.pl-mi.x{color:var(--vermell)}.pl-mi.x:hover,.pl-mi.x:focus-visible{background:color-mix(in oklch,var(--vermell) 12%,var(--surface))}
.pl-mi svg{flex:none}
.pl-mg{display:grid;gap:.3rem;padding:.4rem .7rem .5rem;margin-block:.2rem;border-block:1px dashed var(--line)}
.pl-mgl{font:600 .7rem/1.3 var(--ff-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.pl-mgc{display:flex;flex-wrap:wrap;gap:.35rem}
.pl-dn{justify-content:center;inline-size:44px;padding:0;border:1.5px solid var(--line);font:600 .95rem var(--ff-mono)}
.pl-dn:disabled{background:var(--ink);color:var(--bg);border-color:var(--ink);opacity:1}

@media (max-width:899px){
  .pl-stop{grid-template-columns:52px minmax(0,1fr) 44px;grid-template-areas:"ph txt menu" "ph book book";gap:.2rem .7rem}
  .pl-thumb{inline-size:52px;block-size:52px}
  .pl-book{justify-self:start;min-block-size:44px}
  .pl-ficha{grid-area:book;justify-self:end}
  .pl-leg{padding-inline-start:calc(clamp(.8rem,2vw,1.1rem) + 25px)}
  .pl-actions{flex:1 1 auto;justify-content:space-between;margin-inline-start:0}
  .pl-actions [data-share]{flex:1 1 auto}
  .pl-sum-t{font-size:.9rem}
}
@media (min-width:1000px){
  .pl-ib2:not(.pl-clear){inline-size:auto;padding-inline:.8rem}
  .pl-ib2:not(.pl-clear) .pl-bl{position:static;inline-size:auto;block-size:auto;overflow:visible;clip:auto}
  .pl-sum-t{flex:0 1 auto}
}
@media (max-width:379px){.pl-chip{padding-inline:.7rem}.pl-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(44px,1fr));gap:.4rem}.pl-actions [data-share]{grid-column:1/-1}.pl-ib2{inline-size:auto}}

/* pines del mapa del día */
.isle-map .plp circle{fill:var(--pc,var(--accent));stroke:#fff;stroke-width:2.5}
.isle-map .plp text{font:700 15px var(--ff-mono);fill:#fff;text-anchor:middle;dominant-baseline:central}
.isle-map .plb rect{fill:var(--ink);stroke:#fff;stroke-width:2.5}.isle-map .plb path{fill:none;stroke:var(--bg);stroke-width:2.2;stroke-linejoin:round}
.isle-map .plr{fill:none;stroke:var(--ink);stroke-width:2.5;stroke-dasharray:6 7;opacity:.55;vector-effect:non-scaling-stroke}
.isle-map.pl-zoom .compass,.isle-map.pl-zoom .isle-name{display:none}

/* compartido */
.pl-shared{display:grid;gap:.6rem 1.5rem;align-items:center;padding:clamp(1rem,2.5vw,1.5rem);margin-block-end:1.4rem;border-radius:var(--r-lg);background:var(--accent-soft);border:1px solid color-mix(in oklch,var(--accent) 30%,transparent)}
.pl-shared h2{font-size:1.4rem;margin:0 0 .3rem}.pl-shared p{margin:0}
.pl-shared-b{display:flex;flex-wrap:wrap;gap:.6rem}
@media (min-width:860px){.pl-shared{grid-template-columns:minmax(0,1fr) auto}}

/* plan vacío: invitación, alineada a la rejilla */
.pl-empty-in{display:grid;gap:.4rem;justify-items:start;padding:clamp(1.5rem,4vw,2.8rem);border:1px dashed color-mix(in oklch,var(--bougain) 45%,var(--line));border-radius:var(--r-lg);background:radial-gradient(120% 140% at 100% 0%,color-mix(in oklch,var(--ametller) 45%,transparent),transparent 60%),var(--surface)}
.pl-empty-ic{inline-size:56px;block-size:56px;border-radius:50%;display:grid;place-items:center;color:var(--bougain);background:color-mix(in oklch,var(--bougain) 12%,var(--surface));margin-block-end:.4rem}
.pl-empty h2{margin:0}.pl-empty-in>p{max-inline-size:62ch;margin:0}
.pl-steps{list-style:none;padding:0;margin:.9rem 0 .6rem;display:grid;gap:.5rem;grid-template-columns:minmax(0,1fr);inline-size:100%}
.pl-steps li{display:flex;gap:.6rem;align-items:baseline;padding:.6rem .8rem;border-radius:var(--r);background:var(--bg)}
.pl-steps span{font:600 .75rem var(--ff-mono);color:var(--bougain)}
@media (min-width:760px){.pl-steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pl-empty-b{display:flex;flex-wrap:wrap;gap:.6rem;margin:.4rem 0 0}
.pl-sugg-h{font-size:1.4rem;margin:3rem 0 0}
.pl-sugg{margin-block-start:1rem}

.pl-acct{margin:1.4rem 0 0;padding:.8rem 1rem;border-radius:var(--r);background:var(--surface-2)}
.pl-print-note{margin:1.4rem 0 0}

/* ---------- impresión: hoja limpia (todos los días desplegados, con su mapa) ---------- */
@media print{
  @page{margin:14mm 12mm}
  html,body{background:#fff!important;color:#000!important}
  .nav,.drawer,.footer,.tray,#buy-bar,.consent,.skip,.page-head .eyebrow,.page-head .lead,.crumbs,.pl-sum,.pl-sharebox,.pl-set,.pl-tabsw,.pl-book,.pl-menu,.pl-ficha,.pl-mapbtn,.pl-acct,.pl-shared,.pl-loading,.pl-empty,.pl-warn:empty,.pl .sus,.pl .tq,[data-live]{display:none!important}
  .pl-on .page-head{padding:0 0 4mm;background:none}.pl-on .page-head h1{font-size:22pt;max-width:none}
  .page-head{padding:0 0 4mm;background:none}.page-head h1{font-size:22pt;max-width:none}
  .wrap{inline-size:100%}
  .pl{padding:0}
  .pl-warn{display:none!important}
  .pl-days{display:grid;gap:6mm;margin-block-start:5mm}
  .pl .pl-day[hidden]{display:block!important}
  .pl-day{break-inside:avoid;border:1px solid #999;border-radius:3mm;background:#fff}
  .pl-day-h{background:none}
  .pl-day-b.has-map{grid-template-columns:minmax(0,1fr) 62mm}
  .pl-mapw{border:0;border-inline-start:1px solid #ccc;background:#fff;padding:2mm;border-radius:0}
  .pl .pl-mapw .pl-map{display:block!important;position:static;margin:0}
  .pl-stop{break-inside:avoid;grid-template-columns:18mm minmax(0,1fr);grid-template-areas:"ph txt";padding:2.5mm 4mm}
  .pl-thumb{inline-size:18mm;block-size:13mm}
  .pl-num{print-color-adjust:exact;-webkit-print-color-adjust:exact;box-shadow:none}
  .pl-kind,.isle-map,.pl-flag{print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .pl-flag{background:none;border:1px solid #c80;border-radius:2mm;padding:.5mm 1.5mm;display:block;font-weight:400}
  .pl-flag::before{display:none}
  .pl-flag-s{display:none}
  .pl-flag .sr{position:static;inline-size:auto;block-size:auto;overflow:visible;clip:auto;white-space:normal}
  .pl-txt h3 a::after{content:" · " attr(data-url);font:400 8pt var(--ff-mono);color:#555}
  .pl-print-note{display:block;color:#444}
}
