/* ═══════════════════════════════════════════════════
   PP Excursiones v4 · Evolución de la Propuesta D
   Ejes aplicados:
   · Eje 1 (funcional): filtros producto, toggle EN, toggle disponible, date picker
   · Eje 2 (visual): urgencia con halo, días pasados atenuados, íconos, Hoy con banda
   · Eje 3 (nuevo): Operación del día modal, heatmap semanal
   ═══════════════════════════════════════════════════ */

/* ═════════ PALETAS PATAGONIA (3 × 2 modos) ═════════
   Tweaks: data-theme = glaciar | lenga | estepa
           data-mode  = dark | light
   Glaciar  → azules/turquesa hielo, blancos rotos, acento turquesa
   Lenga    → ocres, rojos otoñales del bosque, acento ámbar
   Estepa   → grises secos, verdes mate, acento terracota
   ═══════════════════════════════════════════════════ */

:root{
  /* default: GLACIAR · DARK */
  --bg-deep:#0a1017;--bg-raised:#121a24;--bg-elevated:#1b2633;--bg-surface:#253243;--bg-field:#1e2937;
  --border-soft:#2a3648;--border-medium:#3b4a62;--border-strong:#506580;
  --ink-primary:#eef4fb;--ink-secondary:#c3d0e0;--ink-muted:#8595ac;--ink-faint:#556377;
  --accent-warm:#6fb8d1;--accent-bright:#8fd0e6;--glacier-blue:#7bbbd0;
  --status-free:#5fb8a3;--status-filling:#e6c35a;--status-low:#e68850;--status-full:#b34a4a;
  --p-nativo:#2b7aad;--p-safari:#c44638;--p-darwin:#4d8bc7;--p-cabalgata:#b74772;--p-trekking:#5a7285;--p-bike:#7d5ea5;
  --bg-tex-tint:rgba(111,184,209,.04);
  --bg-grad-top:radial-gradient(ellipse 100% 60% at 50% -10%,rgba(111,184,209,.06),transparent 60%),linear-gradient(180deg,var(--bg-deep) 0%,#06090d 100%);

  --radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;
  --shadow-card:0 1px 2px rgba(0,0,0,.3),0 4px 12px rgba(0,0,0,.2);
  --shadow-lift:0 8px 32px rgba(0,0,0,.4);
  --font-numeric:'Sora',sans-serif;--font-body:'Inter',system-ui,sans-serif;
  --ease-out:cubic-bezier(.16,1,.3,1);--ease-spring:cubic-bezier(.34,1.56,.64,1);
}

/* GLACIAR · LIGHT */
:root[data-theme="glaciar"][data-mode="light"]{
  --bg-deep:#eef3f8;--bg-raised:#ffffff;--bg-elevated:#f5f8fc;--bg-surface:#e8eff6;--bg-field:#f0f4f9;
  --border-soft:#dae3ed;--border-medium:#bdcadb;--border-strong:#94a5bc;
  --ink-primary:#0f1a28;--ink-secondary:#2f4057;--ink-muted:#5c6e85;--ink-faint:#8293a7;
  --accent-warm:#2d7a9a;--accent-bright:#4a9abe;--glacier-blue:#3b87a8;
  --status-free:#3a8f7a;--status-filling:#bf9525;--status-low:#c06428;--status-full:#9c3333;
  --bg-tex-tint:rgba(58,143,122,.04);
  --bg-grad-top:radial-gradient(ellipse 100% 60% at 50% -10%,rgba(111,184,209,.18),transparent 60%),linear-gradient(180deg,#eef3f8 0%,#dce6f0 100%);
  --shadow-card:0 1px 2px rgba(30,50,80,.08),0 4px 14px rgba(30,50,80,.08);
  --shadow-lift:0 12px 36px rgba(30,50,80,.16);
}

/* LENGA · DARK */
:root[data-theme="lenga"][data-mode="dark"]{
  --bg-deep:#100a08;--bg-raised:#1a110c;--bg-elevated:#241812;--bg-surface:#30221a;--bg-field:#2a1c15;
  --border-soft:#3a2820;--border-medium:#4e3528;--border-strong:#6a4a38;
  --ink-primary:#f8ede0;--ink-secondary:#d9c7b3;--ink-muted:#9d8a77;--ink-faint:#6a5a4a;
  --accent-warm:#d4884a;--accent-bright:#e8a366;--glacier-blue:#d4884a;
  --status-free:#8ca54a;--status-filling:#d4a24a;--status-low:#d4683a;--status-full:#a03828;
  --p-nativo:#c9802f;--p-safari:#8f3828;--p-darwin:#3d6fa8;--p-cabalgata:#a04060;--p-trekking:#7a6050;--p-bike:#6d5088;
  --bg-tex-tint:rgba(212,136,74,.05);
  --bg-grad-top:radial-gradient(ellipse 100% 60% at 50% -10%,rgba(212,136,74,.06),transparent 60%),linear-gradient(180deg,var(--bg-deep) 0%,#080403 100%);
}

/* LENGA · LIGHT */
:root[data-theme="lenga"][data-mode="light"]{
  --bg-deep:#f8f1e8;--bg-raised:#fffaf3;--bg-elevated:#f2e8db;--bg-surface:#e8dcc9;--bg-field:#f5ecde;
  --border-soft:#e0d3bf;--border-medium:#c2aa8a;--border-strong:#9a7f5e;
  --ink-primary:#2a1810;--ink-secondary:#4d3524;--ink-muted:#7a5f48;--ink-faint:#a08c76;
  --accent-warm:#a65820;--accent-bright:#c26a2a;--glacier-blue:#a65820;
  --status-free:#5a7a28;--status-filling:#a67818;--status-low:#b65220;--status-full:#8a2818;
  --bg-tex-tint:rgba(166,88,32,.05);
  --bg-grad-top:radial-gradient(ellipse 100% 60% at 50% -10%,rgba(212,136,74,.22),transparent 60%),linear-gradient(180deg,#f8f1e8 0%,#ead8c0 100%);
  --shadow-card:0 1px 2px rgba(80,40,10,.1),0 4px 14px rgba(80,40,10,.08);
  --shadow-lift:0 12px 36px rgba(80,40,10,.18);
}

/* ESTEPA · DARK */
:root[data-theme="estepa"][data-mode="dark"]{
  --bg-deep:#0d0f0c;--bg-raised:#151815;--bg-elevated:#1e221e;--bg-surface:#2a2f2a;--bg-field:#222622;
  --border-soft:#2d332d;--border-medium:#404740;--border-strong:#5a6358;
  --ink-primary:#f1efe6;--ink-secondary:#c9c9bc;--ink-muted:#8a8d80;--ink-faint:#5f6258;
  --accent-warm:#b86a45;--accent-bright:#d08658;--glacier-blue:#8aa580;
  --status-free:#7a9a5a;--status-filling:#c9a850;--status-low:#c47845;--status-full:#a04838;
  --p-nativo:#a8672a;--p-safari:#c93824;--p-darwin:#4a7090;--p-cabalgata:#8a4862;--p-trekking:#667466;--p-bike:#6f5a85;
  --bg-tex-tint:rgba(184,106,69,.04);
  --bg-grad-top:radial-gradient(ellipse 100% 60% at 50% -10%,rgba(184,106,69,.05),transparent 60%),linear-gradient(180deg,var(--bg-deep) 0%,#070905 100%);
}

/* ESTEPA · LIGHT */
:root[data-theme="estepa"][data-mode="light"],
body[data-theme="estepa"][data-mode="light"]{
  --bg-deep:#f3f2ea;--bg-raised:#fbfaf4;--bg-elevated:#ebeadd;--bg-surface:#dcdbca;--bg-field:#efeee1;
  --border-soft:#d8d6c3;--border-medium:#b2af94;--border-strong:#868469;
  --ink-primary:#1a1d18;--ink-secondary:#3d4238;--ink-muted:#6a6e5c;--ink-faint:#9a9b85;
  --accent-warm:#8a4522;--accent-bright:#a45a30;--glacier-blue:#5a7a4a;
  --status-free:#4a6a28;--status-filling:#8a6a1a;--status-low:#9a4a20;--status-full:#7a2a18;
  --bg-tex-tint:rgba(138,69,34,.04);
  --bg-grad-top:radial-gradient(ellipse 100% 60% at 50% -10%,rgba(138,69,34,.15),transparent 60%),linear-gradient(180deg,#f3f2ea 0%,#d8d4bc 100%);
  --shadow-card:0 1px 2px rgba(40,40,20,.08),0 4px 14px rgba(40,40,20,.07);
  --shadow-lift:0 12px 36px rgba(40,40,20,.16);
}

/* ═══════════════════════════════════════════════════
   EXTENSIÓN: paletas adicionales para el dashboard
   · RIPIO  — carbón neutro (gris mineral) + acento rojo teja
   · VALDÉS — pizarra azul oscuro + acento ocre
   ═══════════════════════════════════════════════════ */

/* RIPIO · DARK */
:root[data-theme="ripio"][data-mode="dark"],
body[data-theme="ripio"][data-mode="dark"]{
  --bg-deep:#0c0d10;--bg-raised:#15161a;--bg-elevated:#1e2026;--bg-surface:#282a31;--bg-field:#20222a;
  --border-soft:#2c2f38;--border-medium:#40444e;--border-strong:#5c6170;
  --ink-primary:#eef0f2;--ink-secondary:#c4c7cc;--ink-muted:#858992;--ink-faint:#5a5e68;
  --accent-warm:#c05a3e;--accent-bright:#d87452;--glacier-blue:#7090a8;
  --status-free:#6e9a5a;--status-filling:#c9a256;--status-low:#c47040;--status-full:#a03a2e;
  --p-nativo:#a85a2a;--p-safari:#b83828;--p-darwin:#4a7090;--p-cabalgata:#8a4862;--p-trekking:#666c72;--p-bike:#6a5c80;
  --bg-tex-tint:rgba(192,90,62,.04);
  --bg-grad-top:radial-gradient(ellipse 100% 60% at 50% -10%,rgba(192,90,62,.05),transparent 60%),linear-gradient(180deg,var(--bg-deep) 0%,#060708 100%);
}

/* VALDÉS · DARK */
:root[data-theme="valdes"][data-mode="dark"],
body[data-theme="valdes"][data-mode="dark"]{
  --bg-deep:#0a1118;--bg-raised:#111820;--bg-elevated:#182130;--bg-surface:#202c3e;--bg-field:#152030;
  --border-soft:#253040;--border-medium:#384a60;--border-strong:#566578;
  --ink-primary:#eef2f6;--ink-secondary:#c0cad6;--ink-muted:#7a8796;--ink-faint:#4f5a6c;
  --accent-warm:#d4a24a;--accent-bright:#e8b866;--glacier-blue:#6a9ab8;
  --status-free:#5a9a88;--status-filling:#d4a24a;--status-low:#d4783a;--status-full:#a83a40;
  --p-nativo:#c48a30;--p-safari:#b54830;--p-darwin:#4a80b0;--p-cabalgata:#9a4862;--p-trekking:#556878;--p-bike:#6a5898;
  --bg-tex-tint:rgba(212,162,74,.04);
  --bg-grad-top:radial-gradient(ellipse 100% 60% at 50% -10%,rgba(212,162,74,.06),transparent 60%),linear-gradient(180deg,var(--bg-deep) 0%,#05080c 100%);
}

/* alias legacy (para que nada pierda color) */
:root{--gold-warm:var(--accent-warm);--gold-bright:var(--accent-bright);}

*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg-deep);color:var(--ink-primary);font-family:var(--font-body);font-feature-settings:'tnum' 1,'cv05' 1;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh;transition:background-color .4s}
body{background-image:var(--bg-grad-top);background-attachment:fixed}
body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.7 0 0 0 0 0.65 0 0 0 0 0.5 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.45;pointer-events:none;z-index:1;mix-blend-mode:overlay}
:root[data-mode="light"] body::before{opacity:.22;mix-blend-mode:multiply}
.container{max-width:1720px;margin:0 auto;padding:28px 24px 80px;position:relative;z-index:2}
@media(max-width:640px){.container{padding:18px 12px 60px}}

/* ── TOP BAR ── */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--border-soft);flex-wrap:wrap}
.brand{display:flex;align-items:baseline;gap:12px}
.brand-mark{font-family:var(--font-body);font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-warm);padding:5px 10px;border:1px solid var(--gold-warm);border-radius:3px}
.brand-name{font-size:17px;font-weight:700;color:var(--ink-primary);letter-spacing:-.01em}
.brand-sub{font-size:13px;color:var(--ink-muted);font-weight:500}
.topbar-right{display:flex;align-items:center;gap:10px}
.icon-btn{width:36px;height:36px;border-radius:50%;background:var(--bg-raised);border:1px solid var(--border-soft);color:var(--ink-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0}
.icon-btn svg{width:16px;height:16px}
.icon-btn:hover{color:var(--gold-warm);border-color:var(--gold-warm)}
.today-btn{padding:9px 18px;background:transparent;border:1px solid var(--border-medium);border-radius:999px;color:var(--ink-secondary);font-size:12px;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:all .25s var(--ease-out)}
.today-btn:hover{color:var(--gold-warm);border-color:var(--gold-warm)}

/* ── FILTER BAR ── */
.filterbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 14px;background:var(--bg-raised);border:1px solid var(--border-soft);border-radius:var(--radius-md);margin-bottom:14px;flex-wrap:wrap}
.filter-section{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.filter-label{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}

.product-chips{display:flex;gap:6px;flex-wrap:wrap}
.pchip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px 5px 8px;background:var(--bg-elevated);border:1px solid var(--border-soft);border-radius:999px;font-size:12px;font-weight:600;color:var(--ink-muted);cursor:pointer;transition:all .2s;user-select:none}
.pchip:hover{color:var(--ink-secondary);border-color:var(--border-medium)}
.pchip .pchip-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;opacity:.5;transition:opacity .2s}
.pchip.on{color:var(--ink-primary);border-color:var(--border-strong);background:var(--bg-surface)}
.pchip.on .pchip-dot{opacity:1;box-shadow:0 0 0 2px rgba(255,255,255,.08)}
.pchip[data-p="Nativo"] .pchip-dot{background:var(--p-nativo)}
.pchip[data-p="Safari"] .pchip-dot{background:var(--p-safari)}
.pchip[data-p="Darwin"] .pchip-dot{background:var(--p-darwin)}
.pchip[data-p="Cabalgata"] .pchip-dot{background:var(--p-cabalgata)}
.pchip[data-p="Trekking"] .pchip-dot{background:var(--p-trekking)}
.pchip[data-p="Bike"] .pchip-dot{background:var(--p-bike)}

.toggles{gap:10px;flex-wrap:wrap}
.time-range{display:flex;align-items:center;gap:5px;padding:4px 8px;background:var(--bg-elevated);border:1px solid var(--border-soft);border-radius:6px}
.time-input{width:36px;background:transparent;border:none;color:var(--ink-primary);font-family:var(--font-numeric);font-size:12px;font-weight:600;text-align:center;padding:3px 2px;outline:none;-moz-appearance:textfield}
.time-input::-webkit-outer-spin-button,.time-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.time-input:focus{color:var(--gold-bright)}
.time-input::placeholder{color:var(--ink-faint)}
.time-sep{color:var(--ink-faint);font-size:11px}
.time-clear{background:none;border:none;color:var(--ink-faint);cursor:pointer;font-size:10px;padding:0 4px;transition:color .2s}
.time-clear:hover{color:var(--status-full)}
.jump-next{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:transparent;border:1px solid var(--gold-warm);border-radius:999px;color:var(--gold-warm);font-size:11.5px;font-weight:600;cursor:pointer;transition:all .2s}
.jump-next svg{width:13px;height:13px}
.jump-next:hover{background:var(--gold-warm);color:var(--bg-deep)}

/* Badge de conteo en chip */
.pchip-count{font-family:var(--font-numeric);font-size:10px;font-weight:700;padding:1px 5px;background:rgba(255,255,255,.06);border-radius:999px;color:var(--ink-muted);margin-left:3px}
.pchip.on .pchip-count{background:rgba(212,165,87,.18);color:var(--gold-bright)}

/* Tooltip hover sobre turno */
.trow-tip{position:absolute;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:6px;padding:8px 10px;box-shadow:var(--shadow-lift);z-index:10;pointer-events:none;opacity:0;transition:opacity .15s;white-space:nowrap;font-size:11px;color:var(--ink-secondary)}
.trow-tip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--border-strong)}
.trow-wrap:hover .trow-tip:not(.suppressed){opacity:1;transition-delay:.35s}
.trow-wrap.is-open .trow-tip{display:none}
.trow-tip strong{color:var(--ink-primary);font-weight:700}
.trow-tip-line{display:flex;align-items:center;gap:6px;line-height:1.6}
.trow-tip-line + .trow-tip-line{border-top:1px dashed var(--border-medium);padding-top:4px;margin-top:4px}
.toggle{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none}
.toggle input{display:none}
.toggle-track{width:28px;height:16px;background:var(--border-medium);border-radius:999px;position:relative;transition:background .2s;flex-shrink:0}
.toggle-thumb{position:absolute;top:2px;left:2px;width:12px;height:12px;background:var(--ink-primary);border-radius:50%;transition:transform .25s var(--ease-spring),background .2s}
.toggle input:checked + .toggle-track{background:var(--gold-warm)}
.toggle input:checked + .toggle-track .toggle-thumb{transform:translateX(12px);background:var(--bg-deep)}
.toggle-label{font-size:12px;font-weight:600;color:var(--ink-secondary);display:inline-flex;align-items:center;gap:5px}

.en-badge-mini{display:inline-block;min-width:18px;padding:0 3px;background:rgba(123,187,208,.2);color:var(--glacier-blue);font-size:9px;font-weight:800;text-align:center;line-height:14px;border-radius:2px;border:1px solid rgba(123,187,208,.4);letter-spacing:.05em}

/* ── NAV + HEATMAP ── */
.nav-row{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;margin-bottom:14px}
@media(max-width:820px){.nav-row{grid-template-columns:1fr}}
.period-nav{display:flex;align-items:center;gap:8px;padding:4px 6px 4px 14px;background:var(--bg-raised);border:1px solid var(--border-soft);border-radius:999px;justify-self:start}
.period-label{font-size:13.5px;font-weight:600;color:var(--ink-primary);min-width:210px;text-align:center}
.nav-btn{width:30px;height:30px;border-radius:50%;background:var(--bg-surface);border:1px solid var(--border-medium);color:var(--ink-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:500;transition:all .2s}
.nav-btn:hover{background:var(--gold-warm);color:var(--bg-deep);border-color:var(--gold-warm)}

.heatmap-wrap{display:flex;align-items:center;gap:10px;padding:6px 14px;background:var(--bg-raised);border:1px solid var(--border-soft);border-radius:var(--radius-md)}
.heatmap-label{font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);flex-shrink:0}
.heatmap{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;flex:1}
.heatcell{height:22px;border-radius:3px;background:var(--bg-elevated);position:relative;cursor:pointer;transition:transform .15s,outline .2s;border:1px solid transparent;display:flex;flex-direction:column;justify-content:space-between;padding:2px 4px}
.heatcell:hover{transform:scale(1.05);z-index:2}
.heatcell-weekday{font-size:8px;font-weight:700;color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;line-height:1}
.heatcell-day{font-family:var(--font-numeric);font-size:9.5px;font-weight:600;color:var(--ink-secondary);line-height:1;text-align:right}
.heatcell.is-today{outline:1px solid var(--gold-warm);outline-offset:-1px}
.heatcell.is-today .heatcell-day{color:var(--gold-bright)}
.heatcell.is-past{opacity:.45}
.heatcell-fill{position:absolute;inset:0;border-radius:3px;opacity:.22;transition:opacity .2s}
.heatcell:hover .heatcell-fill{opacity:.35}
.heatcell-fill.free{background:var(--status-free)}
.heatcell-fill.filling{background:var(--status-filling)}
.heatcell-fill.low{background:var(--status-low)}
.heatcell-fill.full{background:var(--status-full)}

/* ── LEGEND ── */
.legend{display:flex;align-items:center;gap:14px;padding:8px 14px;background:var(--bg-raised);border:1px solid var(--border-soft);border-radius:var(--radius-md);font-size:11.5px;color:var(--ink-secondary);margin-bottom:18px;flex-wrap:wrap}
.legend-group{display:flex;align-items:center;gap:6px}
.legend-hint{margin-left:auto;font-size:11px;color:var(--ink-muted);font-style:italic}
.legend-hint strong{color:var(--ink-secondary);font-style:normal;font-weight:600}

/* ═════════════════════════════════════════════
   CALENDARIO (D evolucionado)
   ═════════════════════════════════════════════ */
.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
@media(max-width:1400px){.week-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:900px){.week-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.week-grid{grid-template-columns:1fr}}

.zd-card{background:var(--bg-raised);border:1px solid var(--border-soft);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-card);animation:fadeUp .5s var(--ease-out) both;transition:border-color .25s,transform .25s;cursor:pointer;position:relative}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.zd-card:hover{border-color:var(--border-medium);transform:translateY(-2px);box-shadow:var(--shadow-lift)}
.zd-card.is-today{border-color:var(--gold-warm);box-shadow:0 0 0 1px var(--gold-warm),var(--shadow-lift)}
.zd-card.is-today::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--gold-bright),var(--gold-warm));z-index:3}
.zd-card.is-past{opacity:.55}
.zd-card.is-past:hover{opacity:.85}
.zd-card.is-weekend .zd-head{background:linear-gradient(180deg,rgba(123,160,194,.06),transparent)}

.zd-head{padding:11px 13px 9px;display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border-soft);background:linear-gradient(180deg,rgba(212,165,87,.035),transparent)}
.zd-head-left{display:flex;align-items:baseline;gap:7px}
.zd-weekday{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}
.zd-daynum{font-family:var(--font-numeric);font-size:22px;font-weight:600;line-height:1;color:var(--ink-primary);letter-spacing:-.02em}
.zd-card.is-today .zd-daynum{color:var(--gold-bright)}
.zd-head-right{display:flex;align-items:center;gap:6px}
.zd-today-tag{font-size:9px;font-weight:800;letter-spacing:.14em;padding:2px 6px;border-radius:3px;background:linear-gradient(135deg,var(--gold-bright),var(--gold-warm));color:var(--bg-deep)}
.zd-count{font-family:var(--font-numeric);font-size:10.5px;color:var(--ink-muted);font-weight:500}
.zd-count strong{color:var(--ink-secondary);font-weight:700}
.zd-expand-hint{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);opacity:0;transition:opacity .2s;margin-left:4px;display:inline-flex;align-items:center;gap:3px}
.zd-card:hover .zd-expand-hint{opacity:1}
.zd-expand-hint svg{width:9px;height:9px}

.zd-body{padding:8px 8px 10px;display:flex;flex-direction:column;gap:6px;flex:1}

/* Producto block */
.pblock{border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-elevated);border:1px solid var(--border-soft);transition:border-color .2s}
.pblock:hover{border-color:var(--border-medium)}
.pblock.hidden{display:none}

.pblock-head{display:flex;align-items:center;justify-content:space-between;padding:5px 9px;font-size:12px;font-weight:700;color:#fff;letter-spacing:-.005em;gap:6px}
.pblock-head[data-p="Nativo"]{background:var(--p-nativo)}
.pblock-head[data-p="Safari"]{background:var(--p-safari)}
.pblock-head[data-p="Darwin"]{background:var(--p-darwin)}
.pblock-head[data-p="Cabalgata"]{background:var(--p-cabalgata)}
.pblock-head[data-p="Trekking"]{background:var(--p-trekking)}
.pblock-head[data-p="Bike"]{background:var(--p-bike)}
.pblock-head-left{display:flex;align-items:center;gap:6px;min-width:0}
.pblock-icon{width:14px;height:14px;flex-shrink:0;opacity:.92}
.pblock-icon svg{width:100%;height:100%;display:block}
.pblock-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pblock-headR{font-family:var(--font-numeric);font-size:10.5px;font-weight:600;opacity:.9;letter-spacing:.02em;flex-shrink:0}
.pblock-headR strong{font-weight:700}

.pblock-body{padding:2px 0}

/* Turno row */
.trow-wrap{position:relative}
.trow{display:grid;grid-template-columns:auto auto 1fr auto auto;gap:8px;align-items:center;padding:7px 10px;cursor:pointer;transition:background .15s;border-radius:4px;margin:2px 4px;position:relative}
.trow:hover{background:rgba(255,255,255,.035)}
.trow.is-expanded{background:rgba(212,165,87,.08)}

.trow-hora{font-family:var(--font-numeric);font-size:12.5px;font-weight:600;color:var(--ink-primary);letter-spacing:-.01em;min-width:40px}

/* Semáforo con halo */
.sem{width:10px;height:10px;border-radius:50%;flex-shrink:0;position:relative;box-shadow:0 0 0 1px rgba(0,0,0,.35)}
.sem.free{background:var(--status-free);box-shadow:0 0 0 1px rgba(0,0,0,.35),0 0 6px rgba(111,178,135,.5)}
.sem.filling{background:var(--status-filling);box-shadow:0 0 0 1px rgba(0,0,0,.35),0 0 7px rgba(224,180,77,.55)}
.sem.low{background:var(--status-low);box-shadow:0 0 0 1px rgba(0,0,0,.35),0 0 9px rgba(213,138,80,.7);animation:pulseUrgent 2.2s ease-in-out infinite}
.sem.full{background:var(--status-full);box-shadow:0 0 0 1px rgba(0,0,0,.35),0 0 5px rgba(168,69,69,.4)}
@keyframes pulseUrgent{0%,100%{box-shadow:0 0 0 1px rgba(0,0,0,.35),0 0 8px rgba(213,138,80,.55)}50%{box-shadow:0 0 0 1px rgba(0,0,0,.35),0 0 14px rgba(213,138,80,.9)}}

.trow-mid{min-width:0;display:flex;align-items:center;gap:6px}
.trow-urgent-tag{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:2px 6px;border-radius:3px;background:rgba(213,138,80,.15);color:var(--status-low);border:1px solid rgba(213,138,80,.4);animation:fadeIn .3s}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

.trow-seats{display:flex;align-items:baseline;gap:2px;font-family:var(--font-numeric);letter-spacing:-.01em}
.trow-seats .n{font-size:13px;font-weight:600;color:var(--ink-primary)}
.trow-seats .of{font-size:10px;color:var(--ink-muted);font-weight:500}
.trow-seats .n.full{color:#d67575}
.trow-seats .n.low{color:var(--status-low)}
.trow-seats .n.filling{color:var(--status-filling)}

.trow-en{display:inline-flex;align-items:center;justify-content:center;width:20px;height:14px;background:rgba(123,187,208,.18);color:var(--glacier-blue);border:1px solid rgba(123,187,208,.4);border-radius:2px;font-size:8.5px;font-weight:800;letter-spacing:.05em;flex-shrink:0}
.trow-en.placeholder{opacity:0}

.trow.is-reserved{opacity:.7}
.trow.is-reserved .trow-seats .n{color:#8892a3}
.trow.is-urgent{background:rgba(213,138,80,.04)}
.trow.is-urgent::before{content:'';position:absolute;left:0;top:6px;bottom:6px;width:2px;background:var(--status-low);border-radius:2px}

/* Expand inline */
.trow-expand{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s var(--ease-out);margin:0 4px}
.trow-wrap.is-open .trow-expand{grid-template-rows:1fr}
.trow-expand-inner{overflow:hidden}
.trow-expand-content{padding:10px 12px;background:rgba(0,0,0,.25);border-radius:4px;margin:2px 0 4px;display:flex;flex-direction:column;gap:9px;border:1px dashed var(--border-soft)}
.tx-row{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink-secondary);flex-wrap:wrap}
.tx-key{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);min-width:64px}
.tx-bar{flex:1;height:4px;background:var(--border-soft);border-radius:999px;overflow:hidden;min-width:80px;max-width:160px}
.tx-bar .capfill{height:100%;transition:width .8s var(--ease-out);border-radius:999px}
.capfill.free{background:var(--status-free)}
.capfill.filling{background:var(--status-filling)}
.capfill.low{background:var(--status-low)}
.capfill.full{background:var(--status-full)}
.tx-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:999px;font-size:10.5px;color:var(--ink-secondary);font-weight:500}
.tx-pill .n{font-family:var(--font-numeric);font-weight:700;color:var(--ink-primary)}
.tx-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:5px;padding:7px 13px;background:linear-gradient(135deg,var(--gold-bright),var(--gold-warm));color:var(--bg-deep);border:none;border-radius:4px;font-size:11px;font-weight:700;cursor:pointer;transition:filter .2s,transform .2s}
.tx-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}

/* Empty state por día (después de filtros) */
.empty-day{padding:18px 10px;text-align:center;font-size:11px;color:var(--ink-faint);font-style:italic}
.empty-day.filtered{color:var(--ink-muted)}

/* ═════════════════════════════════════════════
   DATE PICKER OVERLAY
   ═════════════════════════════════════════════ */
.dp-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);backdrop-filter:blur(6px);z-index:100;display:none;align-items:flex-start;justify-content:center;padding:80px 20px;animation:overlayIn .2s}
.dp-overlay.is-open{display:flex}
@keyframes overlayIn{from{opacity:0}to{opacity:1}}
.dp-panel{width:340px;background:var(--bg-raised);border:1px solid var(--border-medium);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-lift);animation:dpIn .25s var(--ease-out)}
@keyframes dpIn{from{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:none}}
.dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.dp-nav{width:28px;height:28px;border-radius:50%;background:var(--bg-surface);border:1px solid var(--border-medium);color:var(--ink-secondary);cursor:pointer;font-size:14px;transition:all .2s}
.dp-nav:hover{background:var(--gold-warm);color:var(--bg-deep);border-color:var(--gold-warm)}
.dp-title{font-family:var(--font-body);font-size:14px;font-weight:700;color:var(--ink-primary);letter-spacing:-.01em}
.dp-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:6px}
.dp-weekdays span{text-align:center;font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--ink-faint);padding:4px 0}
.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.dp-day{aspect-ratio:1;border:none;background:transparent;color:var(--ink-secondary);font-family:var(--font-numeric);font-size:13px;font-weight:500;border-radius:6px;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}
.dp-day.other-month{color:var(--ink-faint);opacity:.5}
.dp-day.is-past{opacity:.25;cursor:not-allowed;text-decoration:line-through}
.dp-day.is-past:hover{background:transparent;color:var(--ink-faint)}
.dp-day:hover{background:var(--bg-surface);color:var(--ink-primary)}
.dp-day.is-today{color:var(--gold-bright);font-weight:700}
.dp-day.is-selected{background:var(--gold-warm);color:var(--bg-deep);font-weight:700}

/* ═════════════════════════════════════════════
   OPERATION OF THE DAY MODAL
   Timeline horizontal (inspirado en Propuesta B)
   ═════════════════════════════════════════════ */
.op-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(8px);z-index:101;display:none;align-items:center;justify-content:center;padding:24px;animation:overlayIn .2s}
.op-overlay.is-open{display:flex}
.op-panel{width:100%;max-width:1280px;max-height:90vh;background:var(--bg-raised);border:1px solid var(--border-medium);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);display:flex;flex-direction:column;overflow:hidden;animation:opIn .3s var(--ease-out)}
@keyframes opIn{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}

.op-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 24px 18px;border-bottom:1px solid var(--border-soft);background:linear-gradient(180deg,rgba(212,165,87,.05),transparent)}
.op-head-left{display:flex;flex-direction:column;gap:4px}
.op-eyebrow{font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-warm)}
.op-title-row{display:flex;align-items:baseline;gap:12px}
.op-weekday{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.op-daynum{font-family:var(--font-numeric);font-size:36px;font-weight:600;color:var(--ink-primary);letter-spacing:-.03em;line-height:1}
.op-month{font-size:15px;color:var(--ink-secondary);font-weight:500}
.op-summary{font-family:var(--font-numeric);font-size:12px;color:var(--ink-muted);font-weight:500;margin-top:2px}
.op-summary strong{color:var(--ink-secondary);font-weight:700}
.op-close{width:36px;height:36px;border-radius:50%;background:var(--bg-surface);border:1px solid var(--border-medium);color:var(--ink-secondary);cursor:pointer;font-size:14px;transition:all .2s;flex-shrink:0}
.op-close:hover{background:var(--status-full);color:var(--ink-primary);border-color:var(--status-full)}

.op-body{flex:1;overflow-y:auto;padding:20px 24px 24px}

/* Timeline axis */
.op-axis{display:grid;grid-template-columns:180px 1fr;align-items:center;margin-bottom:8px;padding-right:8px}
.op-axis-track{position:relative;height:24px}
.op-axis-tick{position:absolute;bottom:0;width:1px;height:5px;background:var(--border-medium);transform:translateX(-50%)}
.op-axis-tick.major{height:8px;background:var(--border-strong)}
.op-axis-hour{position:absolute;top:0;transform:translateX(-50%);font-family:var(--font-numeric);font-size:10.5px;color:var(--ink-muted);font-weight:600;letter-spacing:.03em}

.op-group-label{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);padding:12px 0 6px 6px;display:flex;align-items:center;gap:8px;margin-top:8px}
.op-group-label::after{content:'';flex:1;height:1px;background:var(--border-soft)}

.op-row{display:grid;grid-template-columns:180px 1fr;gap:0;padding:8px 0;border-radius:6px}
.op-label{display:flex;align-items:center;gap:10px;padding:0 8px}
.op-label-icon{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}
.op-label-icon svg{width:16px;height:16px}
.op-label-icon[data-p="Nativo"]{background:var(--p-nativo)}
.op-label-icon[data-p="Safari"]{background:var(--p-safari)}
.op-label-icon[data-p="Darwin"]{background:var(--p-darwin)}
.op-label-icon[data-p="Cabalgata"]{background:var(--p-cabalgata)}
.op-label-icon[data-p="Trekking"]{background:var(--p-trekking)}
.op-label-icon[data-p="Bike"]{background:var(--p-bike)}
.op-label-text{display:flex;flex-direction:column;gap:1px;min-width:0}
.op-label-name{font-size:13.5px;font-weight:700;color:var(--ink-primary)}
.op-label-sub{font-family:var(--font-numeric);font-size:10.5px;color:var(--ink-muted);font-weight:500}
.op-label-sub strong{color:var(--ink-secondary);font-weight:700}

.op-track{position:relative;height:54px;background:linear-gradient(180deg,rgba(255,255,255,.015),transparent);border-top:1px dashed var(--border-soft);border-bottom:1px dashed var(--border-soft)}
.op-track-bg-hour{position:absolute;top:0;bottom:0;width:1px;background:rgba(255,255,255,.03);transform:translateX(-50%)}

.op-pill{position:absolute;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;padding:6px 10px;background:var(--bg-elevated);border:1.5px solid var(--border-medium);border-radius:8px;cursor:pointer;transition:all .2s var(--ease-out);z-index:2;min-width:62px}
.op-pill:hover{transform:translate(-50%,-50%) scale(1.08);border-color:var(--ink-primary);z-index:3}
.op-pill.is-expanded{border-color:var(--gold-warm);background:var(--bg-surface);box-shadow:0 4px 14px rgba(212,165,87,.25)}
.op-pill .hora{font-family:var(--font-numeric);font-size:13px;font-weight:600;color:var(--ink-primary);line-height:1}
.op-pill .seats-row{display:flex;align-items:baseline;gap:2px;margin-top:3px}
.op-pill .seats-n{font-family:var(--font-numeric);font-size:12px;font-weight:600;color:var(--ink-primary)}
.op-pill .seats-n.full{color:#d67575}
.op-pill .seats-n.low{color:var(--status-low)}
.op-pill .seats-n.filling{color:var(--status-filling)}
.op-pill .seats-of{font-family:var(--font-numeric);font-size:9.5px;color:var(--ink-muted);font-weight:500}
.op-pill-bar{position:absolute;bottom:-3px;left:5px;right:5px;height:2px;border-radius:999px;background:var(--border-soft);overflow:hidden}
.op-pill-bar .capfill{height:100%}
.op-pill .en-badge-mini{position:absolute;top:-6px;right:-6px;font-size:8px;line-height:12px;padding:0 3px}
.op-pill.full{opacity:.6}
.op-pill.full::after{content:'';position:absolute;inset:4px;background:linear-gradient(-45deg,transparent 46%,rgba(168,69,69,.55) 46%,rgba(168,69,69,.55) 54%,transparent 54%);pointer-events:none}
.op-pill.is-urgent{border-color:rgba(213,138,80,.55);box-shadow:0 0 12px rgba(213,138,80,.3)}

.op-expand{margin-top:14px;padding:14px 18px;background:rgba(0,0,0,.25);border:1px dashed var(--border-medium);border-radius:8px;display:none;flex-direction:column;gap:10px;animation:fadeUp .3s var(--ease-out)}
.op-expand.is-open{display:flex}
.op-expand-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.op-expand-head .hora{font-family:var(--font-numeric);font-size:22px;font-weight:600;color:var(--ink-primary);letter-spacing:-.02em}
.op-expand-prod{font-size:14px;font-weight:700;color:var(--ink-primary)}
.op-expand-info{display:flex;gap:8px;flex-wrap:wrap}

@media(max-width:820px){
  .op-axis,.op-row{grid-template-columns:130px 1fr}
  .op-label-name{font-size:12px}
  .op-label-icon{width:24px;height:24px}
}

/* ── NOTE + FOOTER ── */
.note{margin-top:36px;padding:14px 18px;background:var(--bg-raised);border:1px dashed var(--border-soft);border-radius:var(--radius-md);font-size:12.5px;color:var(--ink-muted);line-height:1.6}
.note strong{color:var(--ink-secondary);font-weight:700}
.mockup-footer{margin-top:32px;padding-top:20px;border-top:1px solid var(--border-soft);text-align:center;font-size:11px;color:var(--ink-muted);letter-spacing:.08em;text-transform:uppercase;font-weight:500}
.mockup-footer strong{color:var(--gold-warm)}

/* responsive reajustes */
@media(max-width:640px){
  .filterbar{padding:10px}
  .filter-section{gap:6px}
  .pchip{padding:4px 9px 4px 7px;font-size:11px}
  .toggles{width:100%;justify-content:space-between}
  .legend{gap:10px}
  .legend-hint{display:none}
}

/* ═════════════════════════════════════════════════════
   TWEAKS PANEL (selector de paleta + modo)
   ═════════════════════════════════════════════════════ */
.tweaks-panel{position:fixed;bottom:20px;right:20px;width:280px;background:var(--bg-raised);border:1px solid var(--border-medium);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);padding:16px;z-index:90;display:none;font-family:var(--font-body)}
.tweaks-panel.is-open{display:block;animation:fadeUp .3s var(--ease-out)}
.tweaks-title{font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-warm);margin-bottom:4px}
.tweaks-sub{font-size:11.5px;color:var(--ink-muted);margin-bottom:12px}
.tweaks-section{margin-top:12px;padding-top:12px;border-top:1px dashed var(--border-soft)}
.tweaks-section:first-of-type{border-top:none;padding-top:0;margin-top:0}
.tweaks-label{font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:8px}

.theme-swatches{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}
.theme-sw{border:1.5px solid var(--border-soft);background:var(--bg-elevated);border-radius:8px;padding:7px 6px;cursor:pointer;display:flex;flex-direction:column;align-items:stretch;gap:6px;transition:all .2s}
.theme-sw:hover{border-color:var(--border-medium)}
.theme-sw.on{border-color:var(--accent-warm);background:var(--bg-surface);box-shadow:0 0 0 1px var(--accent-warm)}
.theme-sw-preview{height:32px;border-radius:4px;position:relative;overflow:hidden;display:flex}
.theme-sw-preview span{flex:1;height:100%}
.theme-sw-name{font-size:10px;font-weight:700;color:var(--ink-secondary);text-align:center;letter-spacing:.02em}
.theme-sw.on .theme-sw-name{color:var(--ink-primary)}

/* swatches concretos */
.sw-glaciar .s1{background:#0a1017}.sw-glaciar .s2{background:#253243}.sw-glaciar .s3{background:#6fb8d1}.sw-glaciar .s4{background:#eef4fb}
.sw-lenga .s1{background:#100a08}.sw-lenga .s2{background:#30221a}.sw-lenga .s3{background:#d4884a}.sw-lenga .s4{background:#f8ede0}
.sw-estepa .s1{background:#0d0f0c}.sw-estepa .s2{background:#2a2f2a}.sw-estepa .s3{background:#b86a45}.sw-estepa .s4{background:#f1efe6}

.mode-toggle-group{display:flex;background:var(--bg-elevated);border:1px solid var(--border-soft);border-radius:999px;padding:2px}
.mode-opt{flex:1;padding:6px 10px;font-size:11px;font-weight:600;color:var(--ink-muted);background:transparent;border:none;border-radius:999px;cursor:pointer;transition:all .2s}
.mode-opt.on{background:var(--accent-warm);color:var(--bg-deep)}

.tweaks-fab{position:fixed;bottom:20px;right:20px;width:44px;height:44px;border-radius:50%;background:var(--bg-raised);border:1px solid var(--border-medium);color:var(--accent-warm);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:89;box-shadow:var(--shadow-card);transition:all .2s}
.tweaks-fab:hover{transform:scale(1.08);color:var(--accent-bright)}
.tweaks-fab svg{width:18px;height:18px}
.tweaks-panel.is-open ~ .tweaks-fab{display:none}
.tweaks-close{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;background:transparent;border:none;color:var(--ink-faint);cursor:pointer;font-size:13px;transition:color .2s}
.tweaks-close:hover{color:var(--ink-primary)}

/* ═════════════════════════════════════════════════════
   MODAL DE RESERVA (wizard + resumen lateral)
   ═════════════════════════════════════════════════════ */
.rv-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(8px);z-index:110;display:none;align-items:center;justify-content:center;padding:20px;animation:overlayIn .25s}
.rv-overlay.is-open{display:flex}
.rv-panel{width:100%;max-width:1080px;max-height:92vh;background:var(--bg-raised);border:1px solid var(--border-medium);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);display:grid;grid-template-columns:1fr 320px;overflow:hidden;animation:opIn .3s var(--ease-out)}
@media(max-width:900px){.rv-panel{grid-template-columns:1fr;max-height:95vh}}

/* ── left: contenido ── */
.rv-main{display:flex;flex-direction:column;min-width:0;max-height:92vh}
.rv-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 22px 14px;border-bottom:1px solid var(--border-soft);background:linear-gradient(180deg,var(--bg-tex-tint),transparent)}
.rv-head-l{display:flex;flex-direction:column;gap:4px}
.rv-eyebrow{font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-warm)}
.rv-title{font-size:19px;font-weight:700;color:var(--ink-primary);letter-spacing:-.01em;line-height:1.2}
.rv-close{width:32px;height:32px;border-radius:50%;background:var(--bg-surface);border:1px solid var(--border-medium);color:var(--ink-secondary);cursor:pointer;font-size:13px;transition:all .2s;flex-shrink:0}
.rv-close:hover{background:var(--status-full);color:#fff;border-color:var(--status-full)}

/* ── stepper ── */
.rv-stepper{display:flex;align-items:center;gap:0;padding:12px 22px;border-bottom:1px solid var(--border-soft);background:var(--bg-elevated)}
.rv-step{display:flex;align-items:center;gap:8px;flex:1;cursor:default;opacity:.55;transition:opacity .25s}
.rv-step.is-active,.rv-step.is-done{opacity:1}
.rv-step.is-clickable{cursor:pointer}
.rv-step.is-clickable:hover{opacity:.9}
.rv-step-num{width:22px;height:22px;border-radius:50%;background:var(--bg-surface);color:var(--ink-muted);font-family:var(--font-numeric);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--border-medium);transition:all .25s}
.rv-step.is-active .rv-step-num{background:var(--accent-warm);color:var(--bg-deep);border-color:var(--accent-warm)}
.rv-step.is-done .rv-step-num{background:var(--status-free);color:#fff;border-color:var(--status-free)}
.rv-step-name{font-size:11.5px;font-weight:600;color:var(--ink-secondary);white-space:nowrap}
.rv-step.is-active .rv-step-name{color:var(--ink-primary)}
.rv-step-sep{flex:0 0 auto;width:16px;height:1px;background:var(--border-medium);margin:0 6px}
@media(max-width:700px){.rv-step-name{display:none}.rv-step-sep{width:20px}}

/* ── body ── */
.rv-body{flex:1;overflow-y:auto;padding:20px 22px 24px}
.rv-body-intro{font-size:12px;color:var(--ink-muted);margin-bottom:14px}
.rv-section{margin-bottom:18px}
.rv-section-title{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:10px;padding-bottom:6px;border-bottom:1px dashed var(--border-soft)}

.rv-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.rv-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.rv-grid.cols-4{grid-template-columns:repeat(4,1fr)}
.rv-grid.cols-1{grid-template-columns:1fr}
@media(max-width:640px){.rv-grid,.rv-grid.cols-3,.rv-grid.cols-4{grid-template-columns:1fr}}

.rv-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.rv-field.span-2{grid-column:span 2}
.rv-field.span-full{grid-column:1/-1}
.rv-label{font-size:10.5px;font-weight:700;letter-spacing:.04em;color:var(--ink-secondary);display:flex;align-items:center;gap:5px}
.rv-label .req{color:var(--status-low);font-weight:800}
.rv-label .hint{font-size:10px;font-weight:500;color:var(--ink-faint);letter-spacing:0}
.rv-input,.rv-select,.rv-textarea{background:var(--bg-field);border:1px solid var(--border-soft);border-radius:var(--radius-sm);color:var(--ink-primary);font-size:13px;padding:9px 11px;font-family:var(--font-body);transition:border-color .2s,box-shadow .2s;width:100%;outline:none}
.rv-input:focus,.rv-select:focus,.rv-textarea:focus{border-color:var(--accent-warm);box-shadow:0 0 0 3px rgba(111,184,209,.12)}
.rv-input::placeholder,.rv-textarea::placeholder{color:var(--ink-faint)}
.rv-textarea{min-height:68px;resize:vertical;font-family:var(--font-body)}
.rv-select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238a92a3' stroke-width='1.2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;padding-right:28px}

/* radio / check grupos */
.rv-radios{display:flex;gap:6px;flex-wrap:wrap}
.rv-radio{position:relative;cursor:pointer}
.rv-radio input{position:absolute;opacity:0;pointer-events:none}
.rv-radio-box{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg-field);border:1px solid var(--border-soft);border-radius:var(--radius-sm);font-size:12.5px;font-weight:600;color:var(--ink-secondary);transition:all .2s;user-select:none}
.rv-radio input:checked + .rv-radio-box{background:var(--accent-warm);color:var(--bg-deep);border-color:var(--accent-warm)}
.rv-radio:hover .rv-radio-box{border-color:var(--border-medium);color:var(--ink-primary)}

.rv-check-line{display:flex;align-items:center;gap:8px;padding:8px 0;cursor:pointer;user-select:none}
.rv-check-line input{accent-color:var(--accent-warm);width:16px;height:16px;cursor:pointer;flex-shrink:0}
.rv-check-line-text{font-size:12.5px;color:var(--ink-secondary);font-weight:500}
.rv-check-line-hint{font-size:11px;color:var(--ink-faint);font-weight:400}

/* number stepper */
.rv-numstep{display:flex;align-items:center;background:var(--bg-field);border:1px solid var(--border-soft);border-radius:var(--radius-sm);overflow:hidden;height:36px}
.rv-numstep:focus-within{border-color:var(--accent-warm);box-shadow:0 0 0 3px rgba(111,184,209,.12)}
.rv-numstep-btn{width:32px;height:100%;background:transparent;border:none;color:var(--ink-secondary);font-size:15px;font-weight:600;cursor:pointer;transition:background .15s}
.rv-numstep-btn:hover{background:var(--bg-surface);color:var(--accent-warm)}
.rv-numstep-btn:disabled{color:var(--ink-faint);cursor:not-allowed;opacity:.5}
.rv-numstep input{flex:1;background:transparent;border:none;color:var(--ink-primary);font-family:var(--font-numeric);font-size:14px;font-weight:600;text-align:center;outline:none;min-width:0;-moz-appearance:textfield}
.rv-numstep input::-webkit-inner-spin-button,.rv-numstep input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

/* mail list (multi-select con pills y autocompletar) */
.rv-maillist{display:flex;flex-direction:column;gap:6px}
.rv-mailinput-wrap{position:relative}
.rv-mailinput-chips{display:flex;flex-wrap:wrap;gap:4px;padding:6px 8px;background:var(--bg-field);border:1px solid var(--border-soft);border-radius:var(--radius-sm);min-height:36px;align-items:center;cursor:text}
.rv-mailinput-chips:focus-within{border-color:var(--accent-warm);box-shadow:0 0 0 3px rgba(111,184,209,.12)}
.rv-mailchip{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 8px;background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:999px;font-size:11px;color:var(--ink-primary);font-weight:500;max-width:100%}
.rv-mailchip-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
.rv-mailchip-x{background:transparent;border:none;color:var(--ink-muted);cursor:pointer;width:16px;height:16px;border-radius:50%;font-size:11px;padding:0;display:flex;align-items:center;justify-content:center}
.rv-mailchip-x:hover{background:var(--status-full);color:#fff}
.rv-mailinput-chips input{flex:1;min-width:140px;background:transparent;border:none;color:var(--ink-primary);font-size:12px;outline:none;padding:4px 2px}
.rv-mailinput-chips input::placeholder{color:var(--ink-faint)}
.rv-mailsuggest{position:absolute;top:100%;left:0;right:0;background:var(--bg-raised);border:1px solid var(--border-medium);border-radius:var(--radius-sm);margin-top:3px;max-height:180px;overflow-y:auto;z-index:5;box-shadow:var(--shadow-lift);display:none}
.rv-mailsuggest.is-open{display:block}
.rv-mailsuggest-item{padding:7px 10px;font-size:12px;color:var(--ink-secondary);cursor:pointer;transition:background .1s}
.rv-mailsuggest-item:hover,.rv-mailsuggest-item.active{background:var(--bg-surface);color:var(--ink-primary)}
.rv-mailsuggest-item mark{background:rgba(111,184,209,.25);color:var(--accent-bright);font-weight:600;padding:0 1px;border-radius:2px}
.rv-mailsuggest-empty{padding:10px 12px;font-size:11.5px;color:var(--ink-faint);font-style:italic}

/* pasajeros grid */
.rv-pax-grid{display:flex;flex-direction:column;gap:8px}
.rv-pax-row{display:grid;grid-template-columns:28px 1.4fr .9fr 1.2fr .6fr .5fr .5fr 28px;gap:6px;align-items:center;padding:6px;background:var(--bg-elevated);border:1px solid var(--border-soft);border-radius:var(--radius-sm)}
.rv-pax-num{font-family:var(--font-numeric);font-size:11px;font-weight:700;color:var(--ink-faint);text-align:center}
.rv-pax-row .rv-input{padding:7px 9px;font-size:11.5px;height:32px}
.rv-pax-row .rv-select{padding:7px 22px 7px 9px;font-size:11.5px;height:32px;background-position:right 8px center}
.rv-pax-x{width:24px;height:24px;border-radius:50%;background:transparent;border:1px solid var(--border-soft);color:var(--ink-faint);cursor:pointer;font-size:12px;padding:0;transition:all .15s;justify-self:center}
.rv-pax-x:hover{color:var(--status-full);border-color:var(--status-full)}
.rv-pax-header{display:grid;grid-template-columns:28px 1.4fr .9fr 1.2fr .6fr .5fr .5fr 28px;gap:6px;padding:0 6px;font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}
.rv-pax-add{margin-top:6px;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;background:transparent;border:1px dashed var(--border-medium);border-radius:var(--radius-sm);color:var(--ink-secondary);font-size:11.5px;font-weight:600;cursor:pointer;transition:all .2s;align-self:flex-start}
.rv-pax-add:hover{border-color:var(--accent-warm);color:var(--accent-warm);border-style:solid}
@media(max-width:820px){.rv-pax-row,.rv-pax-header{grid-template-columns:28px 1fr 28px;gap:4px}.rv-pax-row .rv-select,.rv-pax-row>.rv-input:not(:nth-child(2)){display:none}}

/* ── footer con acciones ── */
.rv-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 22px;border-top:1px solid var(--border-soft);background:var(--bg-elevated)}
.rv-foot-l{display:flex;align-items:center;gap:10px;font-size:11.5px;color:var(--ink-muted)}
.rv-foot-r{display:flex;gap:8px}
.rv-btn{padding:10px 18px;border-radius:var(--radius-sm);font-size:12.5px;font-weight:700;cursor:pointer;border:1px solid transparent;transition:all .2s;letter-spacing:.01em;display:inline-flex;align-items:center;gap:6px}
.rv-btn.secondary{background:transparent;border-color:var(--border-medium);color:var(--ink-secondary)}
.rv-btn.secondary:hover{border-color:var(--accent-warm);color:var(--accent-warm)}
.rv-btn.primary{background:linear-gradient(135deg,var(--accent-bright),var(--accent-warm));color:var(--bg-deep);border:none;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.rv-btn.primary:hover{filter:brightness(1.08);transform:translateY(-1px)}
.rv-btn.primary:disabled{opacity:.5;cursor:not-allowed;transform:none;filter:none}
.rv-btn.ghost{background:transparent;border:none;color:var(--ink-muted);padding:10px 12px}
.rv-btn.ghost:hover{color:var(--ink-primary)}

/* ── right: resumen ── */
.rv-aside{background:var(--bg-deep);border-left:1px solid var(--border-soft);padding:22px 20px;overflow-y:auto;max-height:92vh;display:flex;flex-direction:column;gap:16px;position:relative}
.rv-aside::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--p-nativo),var(--p-safari),var(--p-darwin),var(--p-cabalgata))}
.rv-aside-title{font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-warm)}
.rv-aside-card{background:var(--bg-raised);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.rv-aside-day{display:flex;align-items:baseline;gap:8px}
.rv-aside-day .weekday{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.rv-aside-day .daynum{font-family:var(--font-numeric);font-size:28px;font-weight:600;color:var(--ink-primary);letter-spacing:-.02em;line-height:1}
.rv-aside-day .month{font-size:12px;color:var(--ink-secondary);font-weight:500}
.rv-aside-hora{font-family:var(--font-numeric);font-size:15px;font-weight:600;color:var(--ink-primary)}
.rv-aside-prod{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 6px;border-radius:999px;color:#fff;font-size:11.5px;font-weight:700;align-self:flex-start}
.rv-aside-prod[data-p="Nativo"]{background:var(--p-nativo)}.rv-aside-prod[data-p="Safari"]{background:var(--p-safari)}.rv-aside-prod[data-p="Darwin"]{background:var(--p-darwin)}.rv-aside-prod[data-p="Cabalgata"]{background:var(--p-cabalgata)}
.rv-aside-prod svg{width:14px;height:14px}

.rv-aside-line{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px dashed var(--border-soft);font-size:12px}
.rv-aside-line:first-of-type{border-top:none}
.rv-aside-line .k{color:var(--ink-muted);font-weight:500}
.rv-aside-line .v{color:var(--ink-primary);font-weight:600;text-align:right}
.rv-aside-line .v.empty{color:var(--ink-faint);font-style:italic;font-weight:400}

.rv-aside-avail{padding:10px 12px;background:var(--bg-field);border-radius:var(--radius-sm);font-size:11px;color:var(--ink-secondary);display:flex;align-items:center;gap:8px}
.rv-aside-avail .sem{width:8px;height:8px}
.rv-aside-avail strong{color:var(--ink-primary);font-family:var(--font-numeric);font-weight:700}

.rv-aside-warn{padding:9px 11px;background:rgba(230,136,80,.1);border:1px solid rgba(230,136,80,.3);border-radius:var(--radius-sm);font-size:11px;color:var(--status-low);display:flex;gap:6px;align-items:flex-start;line-height:1.45}

@media(max-width:900px){.rv-aside{border-left:none;border-top:1px solid var(--border-soft);max-height:none;padding:18px}}

/* ══════ éxito ══════ */
.rv-success{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 32px;text-align:center;gap:14px;animation:fadeUp .5s var(--ease-out)}
.rv-success-icon{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--status-free),rgba(95,184,163,.7));display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 6px rgba(95,184,163,.12),0 0 32px rgba(95,184,163,.3);animation:successIn .6s var(--ease-spring) .1s both}
@keyframes successIn{from{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}
.rv-success-icon svg{width:36px;height:36px;color:#fff}
.rv-success h2{font-size:22px;font-weight:700;color:var(--ink-primary);letter-spacing:-.01em}
.rv-success-sub{font-size:13px;color:var(--ink-muted);max-width:380px;line-height:1.5}
.rv-success-code{font-family:var(--font-numeric);font-size:13px;font-weight:600;letter-spacing:.12em;padding:10px 18px;background:var(--bg-field);border:1px dashed var(--border-medium);border-radius:var(--radius-sm);color:var(--accent-bright);margin-top:8px}
.rv-success-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;justify-content:center}

/* ═════ Asientos por vehículo (op-expand + tooltip) ═════ */
.op-expand-veh-row{display:flex;flex-wrap:wrap;gap:4px;padding:0 16px 12px;margin-top:-4px}
.tx-pill.seat-veh{font-family:var(--font-numeric);font-size:11px;font-weight:600;padding:3px 8px;background:color-mix(in srgb,var(--status-free) 10%,transparent);color:var(--ink-primary);border:1px solid color-mix(in srgb,var(--status-free) 30%,transparent);border-radius:4px;display:inline-flex;align-items:center;gap:4px;letter-spacing:.02em}
.tx-pill.seat-veh .n{color:var(--status-free);font-weight:700}
.tx-pill.seat-veh.low{background:color-mix(in srgb,var(--status-low) 10%,transparent);border-color:color-mix(in srgb,var(--status-low) 35%,transparent)}
.tx-pill.seat-veh.low .n{color:var(--status-low)}
.tx-pill.seat-veh.zero{background:color-mix(in srgb,var(--status-full) 10%,transparent);border-color:color-mix(in srgb,var(--status-full) 35%,transparent);opacity:.7}
.tx-pill.seat-veh.zero .n{color:var(--status-full)}

/* Campos bloqueados (vienen del contexto: portal / calendario) */
.rv-input.is-locked{background:var(--bg-surface)!important;color:var(--ink-secondary)!important;cursor:not-allowed;border-style:dashed!important;border-color:var(--border-soft)!important;opacity:.85}
.rv-input.is-locked:focus{outline:none;box-shadow:none}
.rv-input.is-locked:hover{border-color:var(--border-soft)!important}
.rv-label .hint{color:var(--ink-faint);font-weight:500;font-size:10px;font-style:italic;margin-left:4px}
