:root{
  --paper:#eceff4; --surface:#ffffff; --surface-2:#f3f5f9; --surface-3:#e6eaf1;
  --ink:#152033; --ink-2:#465771; --ink-3:#74849b;
  --line:#dbe1ea; --line-2:#c1cad8;
  --accent:#2447c9; --accent-soft:#e2e9fc; --on-accent:#ffffff;
  --ok:#1a7a4a; --ok-soft:#e0f2e8;
  --warn:#94590a; --warn-soft:#fff0d2;
  --err:#b42318; --err-soft:#fde6e3;
  --conf:#6a3fc6; --conf-soft:#eee7fd;
  --stay:#e6efff;
  --tape:#fbfaf4; --tape-line:#cbc6b2; --tape-ink:#262419;
  --shadow:0 1px 2px rgba(21,32,51,.08),0 10px 28px rgba(21,32,51,.12);
  --sans:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  color-scheme:light;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0e1522; --surface:#141d2d; --surface-2:#19243a; --surface-3:#202d46;
    --ink:#e7ecf5; --ink-2:#a5b2c7; --ink-3:#7686a0;
    --line:#26334a; --line-2:#394a68;
    --accent:#86a2ff; --accent-soft:#1d2c55; --on-accent:#0e1522;
    --ok:#5fd394; --ok-soft:#153427;
    --warn:#f0b25a; --warn-soft:#3a2b10;
    --err:#ff8b7f; --err-soft:#43191a;
    --conf:#b79cff; --conf-soft:#2a1f4d;
    --stay:#1a2b52;
    --tape:#1f2230; --tape-line:#454a63; --tape-ink:#e6e8f2;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px rgba(0,0,0,.45);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#0e1522; --surface:#141d2d; --surface-2:#19243a; --surface-3:#202d46;
  --ink:#e7ecf5; --ink-2:#a5b2c7; --ink-3:#7686a0;
  --line:#26334a; --line-2:#394a68;
  --accent:#86a2ff; --accent-soft:#1d2c55; --on-accent:#0e1522;
  --ok:#5fd394; --ok-soft:#153427;
  --warn:#f0b25a; --warn-soft:#3a2b10;
  --err:#ff8b7f; --err-soft:#43191a;
  --conf:#b79cff; --conf-soft:#2a1f4d;
  --stay:#1a2b52;
  --tape:#1f2230; --tape-line:#454a63; --tape-ink:#e6e8f2;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px rgba(0,0,0,.45);
  color-scheme:dark;
}
html{height:100%;scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;height:100%;background:var(--paper);color:var(--ink);font:14px/1.4 var(--sans);-webkit-text-size-adjust:100%}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.app{display:flex;flex-direction:column;height:100%;min-width:0}

/* Encabezado */
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;min-width:0}
.mark{flex:none;height:36px;border-radius:8px;background:var(--ink);color:var(--surface);display:grid;place-items:center;font-weight:700;font-size:15px}
.mark:has(img){width:auto;background:#fff;padding:4px 8px}
.mark img{display:block;height:28px;width:auto}
.brand-name{font-weight:700;letter-spacing:-.01em}
.crumb{font-size:12.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.switch{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);cursor:pointer}
.switch input{width:16px;height:16px;accent-color:var(--accent)}
.resultado{font-size:12.5px;padding:3px 10px;border-radius:999px;font-weight:600}
.resultado.vendido{background:var(--ok-soft);color:var(--ok)}
.resultado.rechazado{background:var(--err-soft);color:var(--err)}
.tc-dia{font-size:12.5px;padding:4px 10px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap;cursor:help}

/* Controles */
.btn{height:30px;padding:0 12px;border:1px solid var(--line-2);background:var(--surface);border-radius:6px;cursor:pointer;white-space:nowrap}
.btn:hover:not(:disabled){background:var(--surface-2)}
.btn:disabled{opacity:.45;cursor:default}
.btn-copy{height:24px;width:24px;padding:0;border:1px solid var(--line-2);background:var(--surface);border-radius:6px;cursor:pointer;line-height:1;vertical-align:middle;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-2)}
.btn-copy:hover{background:var(--surface-2);color:var(--ink)}
.btn-copy svg{width:13px;height:13px;pointer-events:none}
.dato-copiable{display:inline-flex;align-items:center;gap:5px}
.dato-copiable .btn-copy{height:19px;width:19px;flex:none}
.dato-copiable .btn-copy svg{width:11px;height:11px}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}
.btn.ghost{border-color:transparent;background:transparent;color:var(--ink-2)}
.in{height:30px;border:1px solid var(--line-2);border-radius:6px;background:var(--surface);padding:0 8px;min-width:0}
.in.n{width:78px;text-align:right}
select.in{padding-right:4px}

/* Datos del viaje */
.trip{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-end;padding:10px 16px;background:var(--surface)}
.f{display:flex;flex-direction:column;gap:3px}
.f>label,.f>.lab{font-size:12px;color:var(--ink-2)}
.dur{height:30px;display:flex;align-items:center;font-weight:600;font-variant-numeric:tabular-nums}
.tcrow{display:flex;gap:6px}
.tc{display:flex;align-items:center;gap:3px;font-size:12px;color:var(--ink-2)}
.tc .in{width:62px}
.tc-quitar{border:none;background:none;color:var(--ink-2);cursor:pointer;font-size:14px;line-height:1;padding:0}
.tc-quitar:hover{color:var(--danger,#c0392b)}

/* Cifras */
.kpis{display:flex;flex-wrap:wrap;background:var(--surface)}
.kpi{padding:8px 18px 9px;border-right:1px solid var(--line);min-width:150px;display:flex;flex-direction:column;gap:1px}
.kpi b{order:1;font-size:19px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.kpi span{order:2;font-size:12.5px;color:var(--ink-2)}
.kpi em{order:3;font-style:normal;font-size:12px;color:var(--ink-3)}
.kpi-aux{font-size:12px;font-weight:400;color:var(--ink-3)}
.kpi.wide{border-right:0}
.kpi-mal b,.kpi-mal em{color:var(--danger,#c0392b)}
.st-line{display:flex;align-items:center;gap:8px;font-size:15px!important}

/* Barra de herramientas */
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 16px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid var(--line-2);background:var(--surface);border-radius:999px;padding:3px 11px;font-size:12.5px;cursor:pointer;color:var(--ink-2)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.search{width:250px}
.sp{flex:1}
.ro{padding:8px 16px;background:var(--warn-soft);color:var(--warn);font-size:13px;border-top:1px solid var(--line)}

/* Espacio de trabajo */
.workspace{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 352px;border-top:1px solid var(--line)}
.gridwrap{position:relative;overflow:auto;background:var(--surface);outline:none}
.gridwrap:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
table.grid{border-collapse:separate;border-spacing:0;table-layout:fixed}
.grid th,.grid td{height:32px;padding:0 8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--surface);font-size:13px;position:relative}
.grid thead th{position:sticky;top:0;z-index:5;height:34px;background:var(--surface-3);text-align:left;font-weight:600}
.grid thead th.d{background:var(--surface-2);font-weight:500;font-style:italic;color:var(--ink-2)}
.grid td.d{background:var(--surface-2)}
.grid td.num{text-align:right;font-variant-numeric:tabular-nums}
.grid thead th.s,.grid td.s{position:sticky;z-index:4}
.grid thead th.s{z-index:7}
.grid td.s2,.grid th.s2,.grid tfoot td.s2{border-right:1px solid var(--line-2);box-shadow:6px 0 6px -6px rgba(21,32,51,.28)}
.grid td.stay{background:var(--stay)}
.grid td.na{background:repeating-linear-gradient(135deg,transparent 0 5px,var(--line) 5px 6px)}
.grid td.rng{background:var(--accent-soft)}
.grid td.act{box-shadow:inset 0 0 0 2px var(--accent);background:var(--surface)}
.grid td.act.d{background:var(--surface-2)}
.grid td.i-pend{background:var(--warn-soft)}
.grid td.i-warn::after,.grid td.i-err::after{content:"";position:absolute;top:0;right:0;border-style:solid;border-width:0 9px 9px 0;border-color:transparent var(--warn) transparent transparent}
.grid td.i-err{background:var(--err-soft)}
.grid td.i-err::after{border-right-color:var(--err)}
.grid tfoot td{position:sticky;bottom:0;z-index:5;background:var(--surface-3);font-weight:600;border-top:2px solid var(--line-2);height:34px}
.grid tfoot td.s{z-index:8}
.mut{color:var(--ink-3)}
.ph{color:var(--ink-3);font-style:italic}
.falta{color:var(--warn);font-style:italic;font-size:12px}
.neg{color:var(--err);font-weight:600}
.pos{color:var(--ok);font-weight:600}
small{font-size:11.5px;color:var(--ink-3)}
.pill{display:inline-block;min-width:26px;text-align:center;padding:1px 9px;border-radius:999px;background:var(--ink);color:var(--surface);font-weight:600;font-variant-numeric:tabular-nums}
.pill.bad{background:var(--err);color:#fff}
.tag{font-style:normal;font-size:11px;padding:0 6px;border-radius:4px;margin-right:6px;border:1px solid var(--line-2);color:var(--ink-2);vertical-align:1px}
.tag.real{background:var(--ok-soft);color:var(--ok);border-color:transparent}
.tag.reservado{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.st{font-size:12px;padding:1px 8px;border-radius:999px;background:var(--surface-3);color:var(--ink-2)}
.st-Pagado{background:var(--ok-soft);color:var(--ok)}
.st-Porpagar{background:var(--warn-soft);color:var(--warn)}
.st-Incompleto{background:var(--conf-soft);color:var(--conf)}
.st-Viajando{background:var(--accent-soft);color:var(--accent);font-weight:600}
.st-Vencido{background:var(--err-soft);color:var(--err);font-weight:600}

.cal-meses{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:12px}
.cal-mes-btn{padding:4px 10px;border-radius:6px;font-size:13px;color:var(--ink-2);border:1px solid transparent}
.cal-mes-btn:hover{background:var(--surface-3)}
.cal-mes-btn.actual{background:var(--accent-soft);color:var(--accent);font-weight:600;border-color:transparent}
.cal-nav{display:flex;align-items:center;gap:14px;margin:4px 0 12px}
.cal-nav h2{margin:0;font-size:20px;min-width:220px;text-align:center}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.cal-cabecera{background:var(--surface-2);padding:6px 8px;font-size:12px;font-weight:600;color:var(--ink-2);text-align:center}
.cal-celda{background:var(--surface);min-height:104px;padding:5px 6px;display:flex;flex-direction:column;gap:3px;text-decoration:none;color:inherit}
.cal-celda:hover{background:var(--surface-2)}
.cal-celda.fuera-mes{background:var(--surface-2);opacity:.5}
.cal-celda.es-hoy{box-shadow:inset 0 0 0 2px var(--accent)}
.cal-celda.seleccionado{box-shadow:inset 0 0 0 2px var(--ink)}
.cal-num{font-size:12.5px;font-weight:600;display:flex;align-items:center;gap:5px}
.cal-num .dot{width:7px;height:7px}
.cal-franja{font-size:10.5px;padding:1px 5px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.cal-franja-alerta{box-shadow:inset 0 0 0 1px var(--err)}
.cal-mas{font-size:10.5px;color:var(--ink-3)}
.cal-detalle{margin-top:16px}
.cal-detalle .cal-ev{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--line)}
.cal-detalle .cal-ev:last-child{border-bottom:0}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle;flex:none}
.dot.ok{background:var(--ok)}
.dot.warn{background:var(--warn)}
.dot.pend{border:2px solid var(--warn);background:transparent}
.dot.err{background:var(--err)}
.dot.conf{background:var(--conf)}
.dot.sav{background:var(--ink-3);animation:pulso .7s ease-in-out infinite alternate}
@keyframes pulso{from{opacity:.25}to{opacity:1}}
.empty{color:var(--ink-2);padding:16px}
.empty.big{padding:32px 16px}

/* Editor de celda */
.editor{position:absolute;z-index:20}
.editor[hidden]{display:none}
.editor input{width:100%;height:100%;border:2px solid var(--accent);border-radius:0;padding:0 8px;background:var(--surface);color:var(--ink);outline:none;font-size:13px}
.edlist{position:absolute;left:0;top:100%;min-width:100%;max-height:230px;overflow:auto;margin:2px 0 0;padding:4px;list-style:none;background:var(--surface);border:1px solid var(--line-2);border-radius:8px;box-shadow:var(--shadow)}
.edlist[hidden]{display:none}
.edlist li{padding:6px 8px;border-radius:6px;cursor:pointer;white-space:nowrap;font-size:13px}
.edlist li[aria-selected="true"]{background:var(--accent-soft)}
.edlist li small{margin-left:10px}

/* Formularios plegables del panel (agregar reserva / registrar pago) */
.addform{margin-top:10px;border:1px solid var(--line);border-radius:8px;padding:2px 10px}
.addform summary{cursor:pointer;padding:8px 0;font-size:12.5px;font-weight:600;color:var(--accent);list-style:none}
.addform summary::-webkit-details-marker{display:none}
.addform[open] summary{color:var(--ink)}
.addform .f-grid{display:grid;gap:8px;padding:2px 0 12px}
.addform .f-grid .f{gap:3px}
.addform .f-grid button{margin-top:4px}

/* Menú de columnas mostrar/ocultar */
.colsmenu{position:relative}
.colsmenu>summary{list-style:none}
.colsmenu>summary::-webkit-details-marker,.colsmenu>summary::marker{display:none;content:""}
.colsmenu-panel{position:absolute;right:0;top:calc(100% + 4px);z-index:20;min-width:230px;max-height:320px;overflow:auto;background:var(--surface);border:1px solid var(--line-2);border-radius:8px;box-shadow:var(--shadow);padding:6px}
.colsmenu-panel label{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:6px;font-size:13px;cursor:pointer}
.colsmenu-panel label:hover{background:var(--surface-2)}
.colsmenu-panel input{accent-color:var(--accent)}

/* Panel lateral y cinta de cálculo */
.panel{border-left:1px solid var(--line);background:var(--paper);overflow:auto;padding:14px}
.ph-head{margin-bottom:10px}
.ph-t{font-weight:700;font-size:15px;line-height:1.25}
.ph-s{color:var(--ink-2);font-size:13px}
.panel h3{margin:16px 0 8px;font-size:13px;font-weight:600;color:var(--ink-2)}
.tape{background:var(--tape);color:var(--tape-ink);font-family:var(--mono);font-size:12.5px;padding:10px 14px 12px;border-top:2px dashed var(--tape-line);border-bottom:2px dashed var(--tape-line);box-shadow:var(--shadow)}
.tl{display:flex;justify-content:space-between;gap:14px;padding:3px 0;border-bottom:1px dotted var(--tape-line);line-height:1.35}
.tl span:last-child{white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
.tl.sum{border-bottom:1px solid var(--tape-line)}
.tl.total{font-weight:600;font-size:14px;border-bottom:2px solid var(--tape-ink);padding-top:6px}
.tl.note{border:0;font-family:var(--sans);white-space:normal;margin:0}
.inc{display:flex;gap:8px;width:100%;text-align:left;border:0;border-radius:8px;padding:8px 10px;margin-top:6px;font-size:13px;line-height:1.35;cursor:pointer}
.inc b{flex:none;min-width:48px}
.inc.err{background:var(--err-soft);color:var(--err)}
.inc.pend,.inc.warn{background:var(--warn-soft);color:var(--warn)}
.conflict{background:var(--conf-soft);color:var(--ink);border:1px solid var(--conf);border-radius:10px;padding:10px 12px;margin-bottom:8px}
.conflict b{color:var(--conf)}
.conflict p{margin:4px 0 8px;font-size:13px}
.row-btns{display:flex;gap:6px;flex-wrap:wrap}
.kv{display:grid;gap:4px}
.kv div{display:flex;justify-content:space-between;gap:10px;font-size:13px}
.kv b{font-variant-numeric:tabular-nums}
table.mini{width:100%;margin-top:10px;border-collapse:collapse;font-size:12px}
table.mini th{text-align:left;font-weight:600;color:var(--ink-2);padding:4px 4px;border-bottom:1px solid var(--line-2)}
table.mini td{padding:5px 4px;border-bottom:1px solid var(--line);vertical-align:top}
table.mini .num{text-align:right;font-variant-numeric:tabular-nums}
details.json{margin-top:16px;font-size:12.5px}
details.json summary{cursor:pointer;color:var(--ink-2)}
details.json pre{margin:8px 0 0;padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:auto;font:11.5px/1.45 var(--mono);max-height:260px}

/* Pie, bitácora y avisos */
.statusbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:6px 16px;background:var(--surface);border-top:1px solid var(--line);font-size:12px;color:var(--ink-2)}
.statusbar .keys{color:var(--ink-3)}
.statusbar .sb-suma{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.grid thead th[data-c]{cursor:s-resize}
.linkbtn{border:0;background:none;color:var(--accent);cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}
.apilog{height:190px;overflow:auto;background:var(--surface);border-top:1px solid var(--line);padding:8px 16px;font:12px/1.5 var(--mono)}
.apilog[hidden]{display:none}
.apilog .head{display:flex;gap:8px;align-items:center;font-family:var(--sans);font-size:12.5px;margin-bottom:6px;color:var(--ink-2)}
.ll{display:grid;grid-template-columns:52px minmax(120px,1fr) minmax(0,1.2fr) 150px 60px;gap:10px;padding:1px 0;border-bottom:1px solid var(--line)}
.ll .m{font-weight:600}
.ll .h{color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ll .t{text-align:right;color:var(--ink-3)}
.ll.bad .s{color:var(--err);font-weight:600}
.toasts{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(52px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:8px;z-index:60;width:min(580px,92vw);pointer-events:none}
.toast{pointer-events:auto;background:var(--ink);color:var(--surface);padding:10px 14px;border-radius:10px;box-shadow:var(--shadow);font-size:13px;cursor:pointer}
.toast.err{background:var(--err);color:#fff}
.toast.ok{background:var(--ok);color:#fff}
.toast ul{margin:6px 0 0;padding-left:18px}

@media (max-width:980px){
  .workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(280px,1fr) auto}
  .panel{border-left:0;border-top:1px solid var(--line);max-height:44vh}
  .search{width:100%}
}
@media (max-width:720px){
  .grid td.s1,.grid th.s1,.grid td.s2,.grid th.s2,.grid tfoot td.s1,.grid tfoot td.s2{position:static;box-shadow:none}
  .kpi{min-width:46%}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.btn-copy.copiado{color:var(--ok);border-color:var(--ok)}
.badge-avisos{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:var(--err);color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}

/* ---- Inicio: portada, resumen y secciones plegables ---- */
.home-hero{position:relative;border-radius:16px;overflow:hidden;min-height:250px;background-size:cover;background-position:center;color:#fff;margin:4px 0 16px;box-shadow:var(--shadow)}
.home-hero-in{padding:30px 34px;max-width:720px}
.home-fecha{font-size:13px;letter-spacing:.06em;text-transform:uppercase;opacity:.85}
.home-hero h1{margin:6px 0 14px;font-size:32px;line-height:1.15;font-weight:700;color:#fff}
.home-verso{margin:0 0 18px;font-size:16.5px;line-height:1.5;font-style:italic;border-left:3px solid rgba(255,255,255,.7);padding:2px 0 2px 14px;max-width:620px}
.home-verso cite{display:block;margin-top:6px;font-style:normal;font-size:13px;opacity:.85}
.home-lugar{position:absolute;right:14px;bottom:12px;font-size:12px;background:rgba(0,0,0,.35);padding:4px 10px;border-radius:999px}
.home-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.home-tile{display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;padding:12px 14px;color:var(--ink);text-decoration:none;box-shadow:0 1px 2px rgba(21,32,51,.06)}
.home-tile:hover{border-color:var(--line-2)}
.home-tile .k{font-size:12px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}
.home-tile b{font-size:26px;line-height:1.2}
.home-tile .m{font-size:12.5px;color:var(--ink-2)}
.home-tile.aviso{border-left-color:var(--warn)}
.home-tile.alerta{border-left-color:var(--err)}
details.home-sec{padding:0;margin-bottom:12px}
details.home-sec>summary{cursor:pointer;list-style:none;padding:14px 18px;font-size:15px;display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}
details.home-sec>summary::-webkit-details-marker{display:none}
details.home-sec>summary::before{content:"▸";color:var(--ink-3);margin-right:4px;transition:transform .15s}
details.home-sec[open]>summary::before{transform:rotate(90deg)}
details.home-sec[open]>summary{border-bottom:1px solid var(--line)}
.home-sec-t{font-weight:700}
.home-chips{padding:10px 16px 0}
@media (max-width:900px){.home-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.home-hero h1{font-size:26px}.home-hero-in{padding:22px}}

/* Vista previa "Ver como..." (core/perfiles.py) */
.vista-previa-form select { max-width: 170px; }
.vista-previa-banner { background: #fff4d6; color: #6b4a00; border-bottom: 1px solid #f0d58a; padding: 8px 16px; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .vista-previa-banner { background: #3a2f12; color: #f5dd9c; border-color: #5c4a1c; } }
:root[data-theme="dark"] .vista-previa-banner { background: #3a2f12; color: #f5dd9c; border-color: #5c4a1c; }

/* Chat de ayuda (core/ayuda.py) */
.ayuda-btn{position:fixed;right:16px;bottom:16px;z-index:60;width:52px;height:52px;border-radius:50%;border:0;background:var(--accent);color:var(--on-accent);font-size:24px;font-weight:700;box-shadow:0 4px 14px rgba(0,0,0,.25);cursor:pointer}
.ayuda-panel{position:fixed;right:16px;bottom:80px;z-index:61;width:min(380px,calc(100vw - 32px));height:min(520px,calc(100vh - 110px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.25);overflow:hidden}
.ayuda-panel[hidden]{display:none}
.ayuda-panel header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
.ayuda-x{border:0;background:transparent;font-size:18px;cursor:pointer;color:var(--ink-2);min-width:44px;min-height:44px}
.ayuda-msgs{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px}
.ayuda-m{max-width:88%;padding:9px 12px;border-radius:12px;line-height:1.45;font-size:14px;overflow-wrap:anywhere}
.ayuda-m.bot{background:var(--surface-2);align-self:flex-start}
.ayuda-m.yo{background:var(--accent);color:var(--on-accent);align-self:flex-end}
.ayuda-form{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line)}
.ayuda-form .in{flex:1;height:44px;font-size:16px}
.ayuda-form .btn{height:44px}
@media (max-width:600px){.ayuda-panel{right:0;bottom:0;width:100vw;height:100dvh;border-radius:0}}
@media print{.ayuda-btn,.ayuda-panel{display:none!important}}
