/* Horario de clases con Ed. Sobre guia-mkt.css + calculadora-notas.css + ed-app.css. */
.ho-hero { padding:26px 20px 4px; max-width:1120px; margin:0 auto; }
.ho-hero h1 { margin:0; font-size:38px; line-height:44px; letter-spacing:-1px; font-weight:700; }
.ho-hero .lead { margin:10px 0 0; max-width:760px; font-size:16px; line-height:25px; color:var(--text-secondary); }
.ho-compartido { margin:0 0 14px; padding:12px 14px; border-radius:16px; background:var(--calc-brand-tint); border:1px solid var(--calc-brand-line); display:flex; gap:12px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.ho-compartido[hidden] { display:none; }
.ho-compartido p { margin:0; font-size:14.5px; font-weight:600; }

.ho-config { border-radius:18px; border:1px solid var(--border-subtle); background:var(--surface-raised); margin-bottom:14px; }
.ho-config summary { list-style:none; cursor:pointer; padding:14px 16px; font-size:14px; font-weight:700; display:flex; justify-content:space-between; }
.ho-config summary::-webkit-details-marker { display:none; }
.ho-config summary::after { content:"+"; color:var(--text-tertiary); font-size:20px; line-height:14px; }
.ho-config[open] summary::after { content:"–"; }
.ho-config-in { padding:0 16px 16px; display:grid; gap:12px; }
.ho-config .nt-radios { margin:0; }
.ho-num { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.ho-num label { font-size:12px; font-weight:600; color:var(--text-tertiary); }
.ho-num input { width:100%; margin-top:6px; height:42px; font-family:var(--font-roboto); font-size:16px; font-weight:700; text-align:center; color:var(--text-primary); background:var(--card-surface); border:2px solid var(--border-solid); border-radius:12px; }

.ho-barra { display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:space-between; margin:4px 0 10px; }
.ho-titulo { flex:1 1 220px; }
.ho-titulo input { width:100%; height:44px; font-family:var(--font-roboto); font-size:17px; font-weight:700; padding:0 12px; color:var(--text-primary); background:var(--surface-raised); border:1px solid var(--border-solid); border-radius:12px; }
.ho-paleta { display:flex; gap:6px; overflow-x:auto; padding:4px 2px 10px; scrollbar-width:thin; }
.ho-chip { flex:0 0 auto; display:inline-flex; gap:6px; align-items:center; font-family:var(--font-roboto); font-size:13.5px; font-weight:700; color:#14181D; background:var(--mc,#eee); border:2px solid transparent; border-radius:99px; padding:8px 12px; cursor:pointer; }
.ho-chip.on { border-color:#14181D; box-shadow:0 3px 0 #14181D; }
.ho-chip.ho-borrar { background:var(--card-surface); color:var(--text-secondary); border-color:var(--border-solid); }
.ho-chip.ho-borrar.on { border-color:var(--text-primary); color:var(--text-primary); }
.ho-ayuda { margin:0 0 8px; font-size:12.5px; color:var(--text-tertiary); }

/* Grilla */
.ho-lienzo { border-radius:22px; padding:14px 10px 12px; overflow-x:auto; }
.ho-lienzo-t { margin:2px 8px 10px; font-size:22px; font-weight:800; letter-spacing:-.4px; overflow-wrap:anywhere; }
.ho-grid { display:grid; grid-template-columns:54px repeat(var(--dias,5), minmax(58px,1fr)); gap:5px; min-width:360px; touch-action:none; user-select:none; -webkit-user-select:none; }
.ho-cab { text-align:center; font-size:12.5px; font-weight:800; padding:4px 0; }
.ho-esq svg { width:34px; height:34px; display:block; margin:0 auto; }
.ho-hora { font-size:11.5px; font-weight:700; text-align:right; padding:6px 4px 0 0; font-variant-numeric:tabular-nums; }
.ho-hora small { display:block; font-weight:500; opacity:.7; }
.ho-desc { font-size:12px; font-weight:700; text-align:center; padding:6px; border-radius:10px; }
.ho-celda { min-height:52px; border-radius:12px; border:1.5px dashed var(--border-solid); background:transparent; font-family:var(--font-roboto); padding:4px 3px; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; color:#14181D; }
.ho-celda .ho-n { text-align:center; font-size:11.5px; font-weight:700; line-height:14px; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; hyphens:auto; -webkit-hyphens:auto; overflow-wrap:break-word; max-width:100%; }
.ho-celda .ho-emo { font-size:17px; line-height:18px; }
.ho-celda:focus-visible { outline:2px solid var(--green); outline-offset:1px; }
/* Pastel */
.ho-grid[data-estilo="pastel"], .ho-lienzo[data-estilo="pastel"] { --tinta:#8A3D6B; }
.ho-lienzo[data-estilo="pastel"] { background:#FFF6FB; }
.ho-lienzo[data-estilo="pastel"] .ho-lienzo-t { font-family:'Caveat', cursive; font-size:34px; font-weight:700; color:#8A3D6B; }
.ho-grid[data-estilo="pastel"] .ho-cab, .ho-grid[data-estilo="pastel"] .ho-hora { color:#8A3D6B; }
.ho-grid[data-estilo="pastel"] .ho-celda.llena { background:var(--mc); border:0; }
.ho-grid[data-estilo="pastel"] .ho-desc { background:rgba(138,61,107,.08); color:#8A3D6B; }
/* Minimal */
.ho-lienzo[data-estilo="minimal"] { background:#fff; border:1px solid #E6E8EB; }
.ho-lienzo[data-estilo="minimal"] .ho-lienzo-t { color:#14181D; }
.ho-grid[data-estilo="minimal"] .ho-cab, .ho-grid[data-estilo="minimal"] .ho-hora { color:#6B717A; }
.ho-grid[data-estilo="minimal"] .ho-celda { border-radius:6px; border:1px solid #EEF0F2; }
.ho-grid[data-estilo="minimal"] .ho-celda.llena { background:#F4F5F7; border:0; border-left:4px solid var(--mv); align-items:flex-start; }
.ho-grid[data-estilo="minimal"] .ho-celda .ho-n { text-align:left; }
.ho-grid[data-estilo="minimal"] .ho-desc { background:#F7F8F9; color:#8A8F98; }
/* Ed kawaii */
.ho-lienzo[data-estilo="ed"] { background:#FFF9E8; }
.ho-lienzo[data-estilo="ed"] .ho-lienzo-t { color:#3A2213; }
.ho-grid[data-estilo="ed"] .ho-cab, .ho-grid[data-estilo="ed"] .ho-hora { color:#3A2213; }
.ho-grid[data-estilo="ed"] .ho-celda.llena { background:var(--mv); border:0; box-shadow:0 3px 0 rgba(0,0,0,.12); }
.ho-grid[data-estilo="ed"] .ho-desc { background:rgba(58,34,19,.07); color:#3A2213; }

.ho-acciones { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.ho-editor { margin-top:14px; border-radius:16px; border:1px solid var(--border-subtle); }
.ho-editor summary { cursor:pointer; padding:12px 14px; font-size:14px; font-weight:700; }
.ho-editor ul { list-style:none; margin:0; padding:0 12px 12px; }
.ho-editor li { display:grid; grid-template-columns:48px minmax(0,1fr) minmax(0,1.4fr) 32px; gap:6px; margin-bottom:6px; }
.ho-editor input { height:38px; font-family:var(--font-roboto); font-size:14px; padding:0 8px; color:var(--text-primary); background:var(--surface-raised); border:1px solid var(--border-solid); border-radius:10px; min-width:0; }
.ho-editor .ho-e-emo { text-align:center; }
.ho-e-x { border:0; background:none; color:var(--text-tertiary); cursor:pointer; }

/* Que llevo manana */
.ho-manana { margin-top:16px; border-radius:18px; padding:4px 16px 12px; background:var(--calc-brand-tint); border:1px solid var(--calc-brand-line); }
.ho-manana summary { cursor:pointer; list-style:none; padding:12px 0 6px; font-size:16px; font-weight:800; }
.ho-manana summary::-webkit-details-marker { display:none; }
.ho-manana ul { list-style:none; margin:0; padding:0; }
.ho-manana li { padding:7px 0; border-bottom:1px solid var(--soft-line); font-size:14.5px; }
.ho-manana li:last-child { border-bottom:0; }
.ho-manana li.mats { font-weight:700; }
.ho-manana li.vacio { color:var(--text-secondary); }
.ho-manana input { accent-color:var(--green); width:17px; height:17px; vertical-align:-3px; margin-right:6px; }
.ho-ahora { margin:10px 0 0; font-size:13.5px; font-weight:700; color:var(--brand-ink); }
.ho-ahora[hidden] { display:none; }
.ho-aviso { margin-top:14px; padding:14px 16px; border-radius:16px; background:var(--card-surface); border:1px solid var(--border-subtle); }
.ho-aviso[hidden] { display:none; }
.ho-aviso strong { display:block; font-size:14.5px; }
.ho-aviso p { margin:4px 0 10px; font-size:13px; line-height:19px; color:var(--text-secondary); }
.ho-galeria { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:14px 0 0; }
.ho-galeria figure { margin:0; }
.ho-galeria img { width:100%; height:auto; border-radius:12px; border:1px solid var(--border-subtle); display:block; }
.ho-galeria figcaption { margin-top:6px; font-size:13px; font-weight:600; color:var(--text-secondary); text-align:center; }

/* Cuaderno */
.ho-lienzo[data-estilo="cuaderno"] { background-color:#FDFDF8; background-image:linear-gradient(#E3EAF3 1px,transparent 1px),linear-gradient(90deg,#E3EAF3 1px,transparent 1px); background-size:14px 14px; position:relative; }
.ho-lienzo[data-estilo="cuaderno"]::after { content:""; position:absolute; top:10px; right:-6px; width:84px; height:18px; background:rgba(255,183,197,.8); transform:rotate(14deg); }
.ho-lienzo[data-estilo="cuaderno"] .ho-lienzo-t { font-family:'Caveat', cursive; font-size:34px; color:#2B4C7E; }
.ho-grid[data-estilo="cuaderno"] .ho-cab, .ho-grid[data-estilo="cuaderno"] .ho-hora { color:#2B4C7E; }
.ho-grid[data-estilo="cuaderno"] .ho-celda { border-color:#C9D3E0; background:rgba(255,255,255,.6); }
.ho-grid[data-estilo="cuaderno"] .ho-celda.llena { background:#fff; border:2px dashed var(--mv); color:#2B4C7E; }
.ho-grid[data-estilo="cuaderno"] .ho-desc { background:rgba(43,76,126,.07); color:#2B4C7E; }
/* Neon */
.ho-lienzo[data-estilo="neon"] { background:#0E0B1F; }
.ho-lienzo[data-estilo="neon"] .ho-lienzo-t { color:#fff; text-shadow:0 0 10px #B86BFF; }
.ho-grid[data-estilo="neon"] .ho-cab { color:#fff; }
.ho-grid[data-estilo="neon"] .ho-hora { color:#B9B3D6; }
.ho-grid[data-estilo="neon"] .ho-celda { border:1px dashed rgba(255,255,255,.14); }
.ho-grid[data-estilo="neon"] .ho-celda.llena { background:rgba(255,255,255,.04); border:1.5px solid var(--mv); box-shadow:0 0 8px var(--mv); color:var(--mv); }
.ho-grid[data-estilo="neon"] .ho-desc { background:rgba(255,255,255,.07); color:#B9B3D6; }
/* Boho */
.ho-lienzo[data-estilo="boho"] { background:#F6EFE6; }
.ho-lienzo[data-estilo="boho"] .ho-lienzo-t { font-family:'Caveat', cursive; font-size:34px; color:#6B4F3A; }
.ho-grid[data-estilo="boho"] .ho-cab, .ho-grid[data-estilo="boho"] .ho-hora { color:#6B4F3A; }
.ho-grid[data-estilo="boho"] .ho-celda { border-color:#D9C8B4; border-radius:16px; }
.ho-grid[data-estilo="boho"] .ho-celda.llena { background:var(--mb); border:0; color:#3F2E22; }
.ho-grid[data-estilo="boho"] .ho-desc { background:rgba(107,79,58,.08); color:#6B4F3A; }
/* Kawaii */
.ho-lienzo[data-estilo="kawaii"] { background-color:#FFF0F6; background-image:radial-gradient(rgba(176,65,126,.12) 2px, transparent 2px); background-size:18px 18px; }
.ho-lienzo[data-estilo="kawaii"] .ho-lienzo-t { font-family:'Caveat', cursive; font-size:34px; color:#B0417E; }
.ho-grid[data-estilo="kawaii"] .ho-cab, .ho-grid[data-estilo="kawaii"] .ho-hora { color:#B0417E; }
.ho-grid[data-estilo="kawaii"] .ho-celda { border-color:#F3B6D2; border-radius:16px; }
.ho-grid[data-estilo="kawaii"] .ho-celda.llena { background:var(--mc); border:0; border-radius:16px; }
.ho-grid[data-estilo="kawaii"] .ho-desc { background:rgba(176,65,126,.08); color:#B0417E; }
/* Para colorear */
.ho-lienzo[data-estilo="colorear"] { background:#fff; border:3px dashed #111; }
.ho-lienzo[data-estilo="colorear"] .ho-lienzo-t { font-family:'Caveat', cursive; font-size:34px; color:#111; }
.ho-grid[data-estilo="colorear"] .ho-cab, .ho-grid[data-estilo="colorear"] .ho-hora { color:#111; }
.ho-grid[data-estilo="colorear"] .ho-celda { border:2px solid #111; background:#fff; }
.ho-grid[data-estilo="colorear"] .ho-celda.llena { background:#fff; border:2px solid #111; color:#111; }
.ho-grid[data-estilo="colorear"] .ho-desc { background:#fff; border:2px solid #111; color:#111; }

/* Opciones de impresion y descargas */
.ho-descargas { margin-top:12px; padding:12px 14px; border-radius:16px; border:1px solid var(--border-subtle); background:var(--surface-raised); }
.ho-descargas p { margin:0 0 8px; font-size:12.5px; font-weight:700; color:var(--text-tertiary); text-transform:uppercase; letter-spacing:.04em; }
.ho-opciones { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:10px; font-size:13px; color:var(--text-secondary); }
.ho-opciones select { font-family:var(--font-roboto); font-size:13px; font-weight:600; color:var(--text-primary); background:var(--card-surface); border:1px solid var(--border-solid); border-radius:10px; padding:7px 8px; }
.ho-opciones label { display:inline-flex; gap:6px; align-items:center; cursor:pointer; }
.ho-opciones input { accent-color:var(--green); }

/* Galeria de plantillas */
.ho-plantillas { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:16px 0 0; }
.ho-plantillas figure { margin:0; display:flex; flex-direction:column; gap:6px; }
.ho-plantillas img { width:100%; height:auto; border-radius:12px; border:1px solid var(--border-subtle); display:block; }
.ho-plantillas figcaption { font-size:13px; font-weight:700; color:var(--text-primary); }
.ho-plantillas .btn-nt { height:36px; font-size:12.5px; }

/* Stickers (solo impresion) */
.ho-stickers-hoja { display:none; }
@media (max-width:760px) { .ho-plantillas { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media print {
  body.ho-en-blanco .ho-celda .ho-n, body.ho-en-blanco .ho-celda .ho-emo { visibility:hidden !important; }
  body.ho-en-blanco .ho-celda.llena { background:#fff !important; box-shadow:none !important; border:1.5px solid #999 !important; }
  body.ho-imprimiendo-stickers * { visibility:hidden !important; }
  body.ho-imprimiendo-stickers .ho-stickers-hoja, body.ho-imprimiendo-stickers .ho-stickers-hoja * { visibility:visible !important; }
  body.ho-imprimiendo-stickers .ho-stickers-hoja { display:block !important; position:absolute; left:0; top:0; width:100%; font-family:Arial, sans-serif; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .ho-st-t { font-size:20px; font-weight:700; margin:0 0 10px; }
  .ho-st-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
  .ho-st { display:flex; gap:8px; align-items:center; justify-content:center; padding:12px 8px; border-radius:16px; background:var(--mc); border:2px dashed #999; font-size:15px; font-weight:700; color:#14181D; }
  .ho-st span { font-size:20px; }
  .ho-st-pie { margin-top:12px; font-size:10px; color:#666; }
}

@media print {
  @page { size: landscape; margin: 10mm; }
  body.ho-imprimiendo * { visibility:hidden !important; }
  body.ho-imprimiendo #ho-lienzo, body.ho-imprimiendo #ho-lienzo * { visibility:visible !important; }
  body.ho-imprimiendo #ho-lienzo { position:absolute; left:0; top:0; width:100%; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  body.ho-imprimiendo .ho-grid { grid-template-columns:70px repeat(var(--dias,5), 1fr); }
  body.ho-imprimiendo .ho-celda { min-height:64px; }
  body.ho-imprimiendo .ho-celda .ho-n { font-size:13px; }
}
@media (max-width:760px) {
  .ho-hero { padding:18px 16px 0; }
  .ho-hero h1 { font-size:27px; line-height:33px; letter-spacing:-.5px; }
  .ho-num { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ho-lienzo { padding:10px 4px; margin:0 -8px; }
  .ho-lienzo-t { font-size:19px; }
  .ho-grid { min-width:0; grid-template-columns:36px repeat(var(--dias,5), minmax(0,1fr)); gap:3px; }
  .ho-hora { font-size:10px; padding-right:2px; }
  .ho-cab { font-size:11px; }
  .ho-celda { min-height:48px; border-radius:9px; padding:3px 1px; }
  .ho-celda .ho-n { font-size:9.5px; line-height:11.5px; }
  .ho-celda .ho-emo { font-size:14px; }
  .ho-galeria { grid-template-columns:1fr 1fr 1fr; gap:8px; }
}
