/* Panel del docente y paquete de clase (24-oct-2026). Usa los tokens de /estilo.css (claro y oscuro). Celular primero, objetivos de 44 px. */
.dc-wrap{max-width:1180px;margin:0 auto;padding-bottom:40px}
.dc-salto{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--bg);padding:10px 14px;border-radius:10px;z-index:99}
.dc-salto:focus{left:12px}
.dc-cabecera{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding-block:8px;flex-wrap:wrap}
.dc-cabecera .brand img.marca{display:block}
.dc-cab-der{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dc-cab-der .idioma{min-height:44px}
.dc-cab-der .idioma button{min-height:38px;min-width:44px}
.dc-cab-der .badge{min-height:44px}
.dc-aviso{position:fixed;left:50%;bottom:20px;transform:translate(-50%,24px);opacity:0;pointer-events:none;background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:14px;font-size:.92rem;max-width:min(92vw,520px);z-index:60;transition:opacity .25s,transform .25s;box-shadow:var(--sombra)}
.dc-aviso.visible{opacity:1;transform:translate(-50%,0)}
.dc-aviso.error{background:var(--warn);color:#fff}

/* botones */
.dc-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 20px;border-radius:999px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);font:600 .95rem var(--body);cursor:pointer;text-decoration:none;transition:transform .15s var(--ease),box-shadow .15s}
.dc-btn:hover{transform:translateY(-1px);box-shadow:var(--sombra-acento)}
.dc-btn.suave{background:transparent;color:var(--ink);border-color:var(--line)}
.dc-btn.suave:hover{border-color:var(--accent);box-shadow:none}
.dc-btn.peq{padding:8px 14px;font-size:.86rem}
.dc-btn:disabled{background:transparent;color:var(--muted);border-color:var(--line);cursor:not-allowed;transform:none;box-shadow:none}
.dc-btn:focus-visible,.dc-punto:focus-visible,.dc-x:focus-visible,.dc-op:focus-within{outline:3px solid var(--focus);outline-offset:2px}
.dc-fila-botones{display:flex;flex-wrap:wrap;gap:8px;align-items:center}

/* héroe */
.dc-hero{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;padding:22px 0 12px}
.dc-hero>div,.dc-hero>*{min-width:0}
.dc-kicker{font:600 .78rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.dc-hero h1{font:700 clamp(1.9rem,5.4vw,3rem)/1.05 var(--display);letter-spacing:-.035em;margin:6px 0 10px;overflow-wrap:anywhere}
.dc-lead{color:var(--muted);font-size:1.05rem;margin:0;max-width:62ch}
.dc-estado{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;font:600 .88rem var(--body);border:1px solid var(--line)}
.dc-estado.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}
.dc-estado.pend{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.dc-sk{height:120px;border-radius:18px;margin:12px 0;background:linear-gradient(90deg,var(--bg-2),var(--surface),var(--bg-2));background-size:200% 100%;animation:dc-sk 1.2s linear infinite}
@keyframes dc-sk{to{background-position:-200% 0}}
.dc-vacio{border:1px dashed var(--line);border-radius:18px;padding:28px 18px;text-align:center;color:var(--muted);margin:12px 0}

/* tarjetas y formularios */
.dc-grid2{display:grid;gap:16px;margin:8px 0 16px}
.dc-card{border:1px solid var(--line);background:var(--surface);border-radius:20px;padding:18px 18px 16px;min-width:0}
.dc-card h2{font:700 1.25rem var(--display);letter-spacing:-.02em;margin:0 0 10px}
.dc-card h3{font:700 1.02rem var(--display);margin:0 0 8px}
.dc-form{display:grid;gap:14px}
.dc-campo{display:grid;gap:6px;min-width:0}
.dc-campo>span{font:600 .84rem var(--body);color:var(--ink)}
.dc-campo input,.dc-campo textarea,.dc-fila-entrar input{width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--ink);font:500 1rem var(--body)}
.dc-campo textarea{resize:vertical;min-height:88px}
.dc-campo input:focus,.dc-campo textarea:focus,.dc-fila-entrar input:focus{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--accent)}
.dc-fila2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dc-paso{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:14px;background:var(--bg);min-height:44px;padding:0 4px}
.dc-paso button{width:44px;height:44px;border:0;background:transparent;color:var(--ink);font:600 1.3rem var(--body);cursor:pointer;border-radius:12px}
.dc-paso button:hover{background:var(--accent-soft)}
.dc-paso output{flex:1;text-align:center;font:700 1.15rem var(--display)}
.dc-opc{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.dc-op{display:grid;gap:2px;border:1px solid var(--line);border-radius:16px;padding:12px 14px;cursor:pointer;background:var(--bg);min-height:44px;position:relative}
.dc-op input{position:absolute;opacity:0;pointer-events:none}
.dc-op.on{border-color:var(--accent);background:var(--accent-soft)}
.dc-op-t{font:700 .98rem var(--display)}
.dc-op-d{color:var(--muted);font-size:.8rem;line-height:1.35}
.dc-chk{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;min-height:44px;cursor:pointer}
.dc-chk input{width:22px;height:22px;margin-top:2px;accent-color:var(--accent);flex:none}
.dc-chk a{color:var(--accent);text-decoration:underline}
.dc-ayuda,.dc-nota{color:var(--muted);font-size:.84rem;line-height:1.5;margin:0}
.dc-sub{color:var(--muted);font-size:.84rem}
.dc-ok{color:var(--ok);font-weight:600;font-size:.88rem;margin:6px 0 0}
.dc-lado{display:grid;gap:16px;align-content:start}
.dc-cot{background:linear-gradient(160deg,var(--accent-soft),var(--surface) 70%);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.dc-cot-cab{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.dc-cot-total{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.dc-cot-total b{font:700 2.4rem/1 var(--display);letter-spacing:-.03em}
.dc-cot-total span{color:var(--muted)}
.dc-cot-lista{margin:0 0 10px;display:grid;gap:8px}
.dc-cot-lista>div{display:flex;justify-content:space-between;gap:12px;font-size:.9rem;border-top:1px solid var(--line);padding-top:8px}
.dc-cot-lista dt{color:var(--ink)}.dc-cot-lista dd{margin:0;font-weight:600;white-space:nowrap}
.dc-incluye ul{margin:0;padding-left:20px;display:grid;gap:6px;font-size:.9rem}
.dc-incluye li::marker{color:var(--accent)}
.dc-fila-entrar{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:8px}
.dc-clave{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}
.dc-clave code,.dc-kit-c code,.dc-kit-t code{font:600 1.35rem var(--mono);letter-spacing:.06em;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:8px 14px}
.dc-pill{display:inline-flex;align-items:center;font:600 .74rem var(--body);border-radius:999px;padding:3px 10px;border:1px solid var(--line);background:var(--bg-2);color:var(--muted);white-space:nowrap}
.dc-pill.est-publicada,.dc-pill.app-publicada{background:var(--ok-soft);color:var(--ok);border-color:transparent}
.dc-pill.est-maqueta,.dc-pill.app-maqueta{background:var(--sky-soft);border-color:transparent;color:var(--ink)}
.dc-pill.est-sinApps{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.dc-pill.app-vencida,.dc-pill.app-retirada{background:var(--coral-soft);color:var(--ink);border-color:transparent}

/* banners */
.dc-banner{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;border-radius:18px;padding:14px 16px;margin:12px 0}
.dc-banner>div:first-child{display:grid;gap:3px;flex:1 1 320px;font-size:.92rem}
.dc-banner span{color:var(--muted);font-size:.86rem}
.dc-banner.pago{background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 35%,var(--line))}
.dc-banner.aviso{background:var(--bg-2);border:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:4px}
.dc-form-factura{margin:0 0 12px;display:grid;gap:12px}

/* KPIs y vistas */
.dc-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.dc-kpi{border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:14px;display:grid;gap:4px;min-width:0}
.dc-kpi b{font:700 1.5rem/1.1 var(--display);letter-spacing:-.02em;overflow-wrap:anywhere}
.dc-kpi span{color:var(--muted);font-size:.82rem}
.dc-kpi.alerta{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 40%,var(--line))}
.dc-seg{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:999px;margin:16px 0 14px;background:var(--surface);position:sticky;top:8px;z-index:5;overflow-x:auto;scrollbar-width:none}
.dc-seg::-webkit-scrollbar{display:none}
.dc-seg button{flex:1 0 auto;min-height:44px;padding:0 16px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:600 .9rem var(--body);cursor:pointer;white-space:nowrap}
.dc-seg button[aria-selected="true"]{background:var(--ink);color:var(--bg)}
.dc-seg button:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}

/* equipos */
.dc-equipos{display:grid;gap:14px}
.dc-eq{border:1px solid var(--line);background:var(--surface);border-radius:20px;padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0}
.dc-eq header{display:flex;justify-content:space-between;align-items:center;gap:8px;position:static;min-height:0;padding:0;margin:0;background:none;border:0;backdrop-filter:none}
.dc-eq h3{font:700 1.15rem var(--display);margin:0;overflow-wrap:anywhere}
.dc-integrantes{display:flex;flex-wrap:wrap;gap:6px}
.dc-chip{border:1px solid var(--line);background:var(--bg-2);border-radius:999px;padding:3px 10px;font-size:.82rem;max-width:100%;overflow-wrap:anywhere}
.dc-chip.lider{border-color:var(--accent);background:var(--accent-soft)}
.dc-apps{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.dc-app{border:1px solid var(--line);border-radius:14px;padding:10px 12px;display:grid;gap:4px;background:var(--bg)}
.dc-app-n{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}
.dc-app-n b{overflow-wrap:anywhere}
.dc-app-m{display:flex;flex-wrap:wrap;gap:4px 12px;color:var(--muted);font-size:.8rem}
.dc-metricas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0}
.dc-metricas>div{border:1px solid var(--line);border-radius:12px;padding:8px 6px;text-align:center}
.dc-metricas dt{color:var(--muted);font-size:.72rem}
.dc-metricas dd{margin:2px 0 0;font:700 1.05rem var(--display)}
.dc-barra-t{display:flex;justify-content:space-between;font-size:.82rem;color:var(--muted);margin-bottom:4px}
.dc-barra-t b{color:var(--ink);font-family:var(--mono)}
.dc-barra-r{height:8px;border-radius:99px;background:var(--bg-2);overflow:hidden;border:1px solid var(--line)}
.dc-barra-r i{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .6s var(--ease)}
.dc-barra-r i.alta{background:var(--warn)}
.dc-eq footer{margin-top:auto;padding-top:4px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.dc-nota-badge{border-radius:999px;background:var(--lime-soft);color:var(--lime-texto);padding:4px 12px;font-size:.88rem}
.dc-nota-badge b{font:700 1rem var(--display)}
.dc-calif{border-top:1px dashed var(--line);padding-top:12px;display:grid;gap:12px}
.dc-calif h4{margin:0;font:700 1rem var(--display)}
.dc-crit{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.dc-crit label{font-size:.9rem}.dc-crit small{color:var(--muted)}
.dc-puntos{display:flex;gap:6px}
.dc-punto{width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:700 1rem var(--display);cursor:pointer}
.dc-punto.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}

/* línea de tiempo */
.dc-linea{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--line);display:grid;gap:14px}
.dc-linea li{position:relative;padding-left:14px;font-size:.92rem}
.dc-linea li i{position:absolute;left:-22px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid var(--bg)}
.dc-linea li.av-publico i{background:var(--ok)}.dc-linea li.av-cambio i{background:var(--sky)}.dc-linea li.av-entro i{background:var(--muted)}.dc-linea li.av-maqueta i{background:var(--lime)}
.dc-linea small{display:block;color:var(--muted);font-size:.78rem}

/* rúbrica */
.dc-ru{display:grid;gap:8px;margin:10px 0}
.dc-ru-f{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;gap:8px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:6px 6px 6px 14px;background:var(--bg)}
.dc-ru-n input{width:100%;min-height:44px;border:0;background:transparent;color:var(--ink);font:500 1rem var(--body)}
.dc-ru-p{display:flex;align-items:center;gap:4px}
.dc-ru-p input{width:76px;min-height:44px;border:1px solid var(--line);border-radius:12px;padding:0 10px;background:var(--surface);color:var(--ink);font:600 1rem var(--mono);text-align:right}
.dc-x{width:44px;height:44px;border:0;border-radius:12px;background:transparent;color:var(--muted);font-size:1.4rem;cursor:pointer}
.dc-x:hover{background:var(--coral-soft);color:var(--ink)}
.dc-ru-suma{font:600 .9rem var(--mono);margin:6px 0 12px}
.dc-ru-suma.ok{color:var(--ok)}.dc-ru-suma.mal{color:var(--warn)}

/* evidencias */
.dc-previa{margin-top:14px;overflow:hidden}
.dc-tabla-w{overflow-x:auto}
.dc-tabla{border-collapse:collapse;width:100%;min-width:640px;font-size:.86rem}
.dc-tabla th,.dc-tabla td{border-bottom:1px solid var(--line);padding:8px 8px;text-align:left;vertical-align:top}
.dc-tabla thead th{color:var(--muted);font-weight:600;font-size:.76rem}
.dc-tabla tbody th{font-weight:700}
.dc-tabla .dc-com td{color:var(--muted);font-size:.8rem;border-bottom:1px solid var(--line)}

/* feria y códigos */
.dc-feria{display:grid;gap:12px;margin-top:12px}
.dc-fe-card{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:14px;display:grid;gap:8px;justify-items:start}
.dc-fe-card h3{margin:0;font:700 1.1rem var(--display);overflow-wrap:anywhere}
.dc-feria-pantalla{position:fixed;inset:0;z-index:80;background:var(--bg);display:grid;grid-template-rows:auto 1fr;padding:10px}
.dc-feria-pantalla[hidden]{display:none}
.dc-feria-pantalla iframe{width:100%;height:100%;border:1px solid var(--line);border-radius:16px;background:#fff}
.dc-fe-barra{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;padding:4px 4px 10px}
.dc-fe-barra small{display:block;color:var(--muted)}
.dc-kit{display:grid;gap:12px;margin-top:14px}
.dc-kit-c{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:14px;display:grid;gap:8px;justify-items:start}
.dc-kit-c b{font:700 1.1rem var(--display)}
body.dc-feria-on{overflow:hidden}

/* impresión: informe de evidencias y tarjetas del kit; el resto de la página se oculta */
.dc-impresion{display:none}
@media print{
  body{background:#fff!important;color:#000!important;padding:0!important;font-size:11pt}
  body::before,body::after{display:none!important}
  .dc-wrap,.dc-aviso,.dc-feria-pantalla,.dc-salto{display:none!important}
  .dc-impresion{display:block!important;color:#000}
  .dc-impresion h1{font:700 20pt var(--display);margin:12pt 0 6pt}
  .dc-impresion h2{font:700 14pt var(--display);margin:14pt 0 4pt}
  .dc-imp-cab{display:flex;gap:10pt;align-items:center;border-bottom:2px solid #6D28D9;padding-bottom:8pt}
  .dc-imp-cab div{display:grid}.dc-imp-cab span{font-size:10pt;color:#444}
  .dc-imp-p{color:#333;margin:4pt 0}.dc-imp-nota{font-size:9pt;color:#555;margin-top:12pt}
  .dc-impresion .dc-tabla{min-width:0;font-size:9pt;width:100%}
  .dc-impresion .dc-tabla th,.dc-impresion .dc-tabla td{border:1px solid #bbb;padding:4pt 5pt;color:#000}
  .dc-impresion .dc-tabla-w{overflow:visible}
  .dc-kit-g{display:grid;grid-template-columns:1fr 1fr;gap:10pt;margin-top:10pt}
  .dc-kit-t{border:1.5px dashed #666;border-radius:8pt;padding:10pt;break-inside:avoid;display:grid;gap:6pt}
  .dc-kit-t b{font:700 13pt var(--display)}.dc-kit-t code{font:700 18pt var(--mono);background:none;border:1px solid #999;justify-self:start}
  .dc-kit-t ol{margin:0;padding-left:16pt;font-size:9.5pt}
  body[data-imprimir="kit"] .dc-impresion .dc-tabla-w{display:none}
}
@media (prefers-reduced-motion:reduce){.dc-sk,.dc-barra-r i,.dc-aviso{animation:none;transition:none}}

/* pantallas grandes */
@media (min-width:700px){
  .dc-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dc-equipos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dc-feria,.dc-kit{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:980px){
  .dc-grid2{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start}
  .dc-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
  .dc-feria,.dc-kit{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dc-lado{position:sticky;top:16px}
}
@media (max-width:420px){.dc-opc{grid-template-columns:1fr}.dc-metricas{grid-template-columns:repeat(2,minmax(0,1fr))}.dc-fila-entrar{grid-template-columns:1fr}}

/* Portada sin sesión (R15, 24-oct-2026) */
.dc-portada{margin:6px 0 22px}
.dc-port-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:14px}
.dc-port-c h3{font:700 1.02rem var(--display);margin:0 0 6px}
.dc-port-c p{margin:0;color:var(--muted);line-height:1.5;font-size:.94rem}
.dc-portada .dc-fila-botones{display:flex;flex-wrap:wrap;gap:10px}
