/* «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)}

/* ajustes del viaje */
.pl-setup{display:grid;gap:.9rem;padding:clamp(1rem,2.5vw,1.5rem);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow)}
.pl-setup-h{font-size:1.35rem;margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .8rem}
.pl-setup-h small{font:500 .78rem/1.3 var(--ff-mono);letter-spacing:.02em;color:var(--muted)}
.pl-fields{display:grid;gap:.9rem;grid-template-columns:minmax(0,1fr)}
.pl-field{display:grid;gap:.35rem;align-content:end;min-inline-size:0}
.pl-field label{font-weight:600;font-size:.9rem}.pl-field label small{font-weight:400;color:var(--muted)}
.pl-field input,.pl-field select{font:inherit;color:inherit;min-block-size:48px;padding:.6rem .8rem;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:48px minmax(0,1fr) 48px;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.15rem 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.35rem/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%}
.pl-how{margin:0}
@media (min-width:720px){.pl-fields{grid-template-columns:160px minmax(0,1fr) minmax(0,1.3fr) auto}.pl-redo-f .btn{inline-size:auto}}

/* herramientas */
.pl-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-block:1.2rem .4rem}
.pl-tools .btn{flex:1 1 auto}
.pl-share-note{flex-basis:100%;margin:0}
.pl-share-url{flex-basis:100%;font:500 .8rem var(--ff-mono);padding:.55rem .7rem;border:1px dashed var(--line);border-radius:var(--r);background:var(--surface);color:var(--muted);inline-size:100%}
@media (min-width:720px){.pl-tools .btn{flex:0 0 auto}}
.pl-warn{margin:1rem 0 0;padding:.85rem 1rem;border-radius:var(--r);background:color-mix(in oklch,var(--taronja) 14%,var(--surface));border-inline-start:4px solid var(--taronja)}
.pl-warn ul{margin:0;padding-inline-start:1.1em}.pl-warn li+li{margin-block-start:.25rem}

/* días */
.pl-days{list-style:none;padding:0;margin:1.6rem 0 0;display:grid;gap:1.4rem;counter-reset:none}
.pl-day{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:clip}
.pl-day-h{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem 1rem;align-items:center;padding:1rem clamp(1rem,2.5vw,1.4rem);border-block-end:1px solid var(--line);background:linear-gradient(90deg,var(--tint),transparent)}
.pl-day-h h2{font-size:clamp(1.45rem,1.2rem + 1vw,1.9rem);margin:0}
.pl-day-h h2 small{display:block;font:500 .8rem/1.4 var(--ff-mono);letter-spacing:.02em;color:var(--muted);margin-block-start:.2rem}
.pl-kind{font:600 .72rem/1 var(--ff-mono);text-transform:uppercase;letter-spacing:.08em;padding:.45rem .6rem;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-load{grid-column:1/-1;margin:0;font:500 .82rem/1.5 var(--ff-mono);color:var(--muted)}
.pl-day-b{display:grid;gap:0}
.pl-map{padding:.8rem;border-block-end:1px solid var(--line);background:var(--surface-2)}
.pl-map .isle-map{border-radius:var(--r);max-block-size:320px;inline-size:100%;block-size:auto}
.pl-free{margin:0;padding:1.2rem clamp(1rem,2.5vw,1.4rem);color:var(--muted)}
.pl-over{margin:0;padding:.7rem clamp(1rem,2.5vw,1.4rem);font-size:.9rem;color:var(--vermell);border-block-end:1px solid var(--line)}
@media (min-width:980px){
  .pl-day-b{grid-template-columns:minmax(0,1fr) minmax(300px,38%)}
  .pl-map{order:2;border-block-end:0;border-inline-start:1px solid var(--line)}
  .pl-map .isle-map{position:sticky;inset-block-start:96px;max-block-size:none}
  .pl-day-b:not(:has(.pl-map)){grid-template-columns:minmax(0,1fr)}
}

/* paradas */
.pl-stops{list-style:none;margin:0;padding:.4rem 0}
.pl-stop{position:relative;display:grid;grid-template-columns:34px 76px minmax(0,1fr);gap:.2rem .85rem;padding:.9rem clamp(1rem,2.5vw,1.4rem)}
.pl-stop+.pl-stop{border-block-start:1px dashed var(--line)}
.pl-num{grid-row:1/span 2;inline-size:30px;block-size:30px;border-radius:50%;display:grid;place-items:center;font:700 .85rem var(--ff-mono);color:#fff;background:var(--pc,var(--accent));box-shadow:0 0 0 3px var(--surface),0 0 0 4px var(--pc,var(--accent))}
.pl-thumb{grid-row:1/span 2;inline-size:76px;block-size:58px;border-radius:var(--r);object-fit:cover;background:var(--surface-2)}
.pl-thumb.none{display:block}
.pl-txt{min-inline-size:0}
.pl-txt h3{font-size:1.08rem;margin:0 0 .15rem;line-height:1.2}.pl-txt h3 a{text-decoration:none}.pl-txt h3 a:hover{text-decoration:underline}
.pl-meta{margin:0;font-size:.85rem;color:var(--muted)}.pl-meta i{font-style:normal}
.pl-flag{margin:.35rem 0 0;font-size:.85rem;padding:.35rem .6rem;border-radius:var(--r-sm);background:color-mix(in oklch,var(--taronja) 14%,var(--surface));display:inline-block}
.pl-soft{margin:.3rem 0 0;font-size:.8rem;color:var(--muted)}
.pl-acts{grid-column:3;display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-block-start:.55rem}
.pl-acts .btn{min-block-size:40px}
.pl-move{display:inline-flex;gap:.25rem;margin-inline-start:auto}
.pl-ib{inline-size:44px;block-size:44px;display:inline-grid;place-items:center;border:1.5px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--ink);cursor:pointer;padding:0}
.pl-ib:hover{border-color:var(--ink)}.pl-ib:disabled{opacity:.3;cursor:default;border-color:var(--line)}
.pl-ib.x:hover{color:var(--vermell);border-color:var(--vermell)}
.pl-leg{margin:0;padding:.1rem clamp(1rem,2.5vw,1.4rem) .1rem calc(clamp(1rem,2.5vw,1.4rem) + 15px);font:500 .76rem/1.6 var(--ff-mono);color:var(--muted);border-inline-start:2px dotted var(--line);margin-inline-start:calc(clamp(1rem,2.5vw,1.4rem) + 14px)}
@media (max-width:519px){
  .pl-stop{grid-template-columns:30px minmax(0,1fr)}
  .pl-thumb{display:none}
  .pl-num{grid-row:1}
  .pl-acts{grid-column:1/-1}
  .pl-move{margin-inline-start:0;inline-size:100%;justify-content:space-between}
  .pl-acts .btn-book{flex:1 1 100%}
}
.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}}

/* 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 ---------- */
@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-tools,.pl-acts,.pl-how,.pl-redo-f,.pl-acct,.pl-shared,.pl-loading,.pl-step,.pl-empty,.pl-warn:empty,[data-live]{display:none!important}
  .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-setup{box-shadow:none;border:0;padding:0 0 3mm;border-block-end:1px solid #999;border-radius:0}
  .pl-fields{grid-template-columns:repeat(3,auto);justify-content:start;gap:1rem 2rem}
  .pl-field input,.pl-field select,.pl-stepper{border:0;padding:0;min-block-size:0;background:none;appearance:none;-webkit-appearance:none;font-weight:600}
  .pl-stepper{display:block}.pl-stepper input{text-align:start;font:600 11pt var(--ff)}
  .pl-field input[type=date]:invalid,.pl-field select:has(option[value=""]:checked){color:#777}
  .pl-days{gap:6mm;margin-block-start:5mm}
  .pl-day{break-inside:avoid;border:1px solid #999;border-radius:3mm;background:#fff}
  .pl-day-h{background:none}
  .pl-day-b{grid-template-columns:minmax(0,1fr) 62mm}
  .pl-map{order:2;border:0;border-inline-start:1px solid #ccc;background:#fff;padding:2mm}.pl-map .isle-map{position:static}
  .pl-stop{break-inside:avoid;grid-template-columns:8mm 18mm minmax(0,1fr);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-txt h3 a::after{content:" · " attr(data-url);font:400 8pt var(--ff-mono);color:#555}
  .pl-print-note{display:block;color:#444}
  .pl-warn{background:none;border:1px solid #c80;print-color-adjust:exact}
}
