/* MAIA Documentos — tema oscuro (manual §4); móvil primero, en pantalla
   grande se abre a dos columnas. */
:root {
  color-scheme: dark;                 /* menús, teclado y barras del sistema en oscuro */

  /* Violeta papel. El color NO decora: identifica (manual §4). Va en el botón
     principal, el estado activo, los enlaces y el tercer nodo del isotipo.
     Todo lo demás va en tinta neutra. */
  --violeta: #9A66BE;                 /* acento de la app sobre fondo oscuro */
  --violeta-claro: #B98FD6;           /* el mismo matiz, más claro: texto y enlaces */
  --violeta-papel: #7A4B9A;           /* el de tema claro: relleno con letra blanca
                                         y TODO lo que se dibuja sobre la hoja */
  --violeta-tinte: rgba(154, 102, 190, .16);

  /* Neutros derivados de la tinta del manual (#17181A / #FFFEFB) */
  --fondo: #17181A;
  --tarjeta: #22252B;
  --relieve: #2A2E35;                 /* botón secundario, chip apagado */
  --hundido: #1A1C20;                 /* campos de captura */
  --borde: #33373E;
  --texto: #FFFEFB;
  --texto-suave: #9AA0A9;
  --ok: #5ED08C;
  --error: #FF8A80;
  --error-fondo: #C0392B;             /* relleno rojo con letra blanca */
  --ambar: #E8B44C;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--fondo); color: var(--texto);
  font: 16px/1.45 -apple-system, "Segoe UI", Roboto, sans-serif;
}
a { color: var(--violeta-claro); text-decoration: none; }

/* Barra superior */
.barra {
  background: var(--tarjeta); color: var(--texto); border-bottom: 1px solid var(--borde);
  display: flex; align-items: center;
  justify-content: space-between; padding: 10px 14px; flex-wrap: wrap; gap: 8px;
  position: sticky; top: 0; z-index: 10;
  padding-top: max(10px, env(safe-area-inset-top));
}
.barra nav { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.barra nav a { color: var(--texto-suave); font-weight: 600; }
.barra nav a:hover { color: var(--texto); }

.contenido { max-width: 1100px; margin: 0 auto; padding: 16px 14px 40px; }
.pie { text-align: center; color: var(--texto-suave); font-size: 12.5px; padding: 18px 10px 26px; }

/* Avisos */
.aviso { border-radius: 10px; padding: 10px 14px; margin: 0 0 12px; border: 1px solid; font-size: 15px; }
.aviso.ok { background: rgba(94, 208, 140, .12); border-color: rgba(94, 208, 140, .34); color: var(--ok); }
.aviso.error { background: rgba(255, 138, 128, .12); border-color: rgba(255, 138, 128, .34); color: var(--error); }
.aviso.aviso { background: rgba(232, 180, 76, .12); border-color: rgba(232, 180, 76, .34); color: var(--ambar); }

/* Tarjetas y secciones */
.tarjeta { background: var(--tarjeta); border: 1px solid var(--borde); border-radius: 12px; padding: 16px; margin-bottom: 14px; }
.tarjeta h2 { margin: 0 0 10px; font-size: 17px; color: var(--texto); }
.tarjeta h3 { margin: 14px 0 6px; font-size: 15px; }
.suave { color: var(--texto-suave); font-size: 14px; }
.chico-txt { font-size: 13.5px; }

/* Botones */
.btn {
  display: inline-block; border: 1px solid var(--borde); border-radius: 10px;
  background: var(--relieve); color: var(--texto); padding: 10px 16px; font-size: 15px;
  font-weight: 600; cursor: pointer; text-align: center;
}
.btn:hover { border-color: var(--violeta); }
/* Violeta papel de tema claro + letra blanca: 6.4:1, se lee de sobra. */
.btn.primario { background: var(--violeta-papel); border-color: var(--violeta-papel); color: #FFFEFB; }
.btn.primario:hover { background: var(--violeta); border-color: var(--violeta); }
.btn.peligro { color: var(--error); border-color: rgba(255, 138, 128, .45); }
.btn.chico { padding: 6px 12px; font-size: 14px; border-radius: 8px; }
.btn[disabled] { opacity: .55; cursor: wait; }
.acciones-linea { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

/* Formularios */
label { display: block; font-weight: 600; font-size: 14px; margin: 12px 0 4px; }
input, select, textarea {
  width: 100%; padding: 10px 12px; font-size: 16px; color: var(--texto);
  border: 1px solid var(--borde); border-radius: 10px; background: var(--hundido);
  font-family: inherit;
}
textarea { min-height: 110px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--violeta); border-color: var(--violeta); }
::placeholder { color: #6E757E; }
input[type=checkbox], input[type=radio] { accent-color: var(--violeta); }
/* El botón de «elegir archivo» lo pinta el sistema en gris claro: se viste. */
input[type=file]::file-selector-button {
  font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; margin-right: 10px;
  background: var(--relieve); color: var(--texto); border: 1px solid var(--borde);
  border-radius: 8px; padding: 5px 12px;
}
input[type=file]::file-selector-button:hover { border-color: var(--violeta); }
.fila-form { display: grid; gap: 0 14px; }
@media (min-width: 700px) { .fila-form.dos { grid-template-columns: 1fr 1fr; } }

/* Dictado */
.campo-dictado { position: relative; }
.campo-dictado textarea { padding-right: 52px; }
.mic {
  position: absolute; right: 8px; top: 8px; width: 38px; height: 38px;
  border-radius: 50%; border: 1px solid var(--borde); background: var(--relieve);
  font-size: 18px; cursor: pointer; line-height: 1;
}
.mic.activo { background: var(--error-fondo); color: #fff; border-color: var(--error-fondo); animation: late 1.2s infinite; }
@keyframes late { 50% { opacity: .55; } }

/* Chips de estado */
.chip { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 700; white-space: nowrap; }
.chip.BORRADOR { background: var(--relieve); color: var(--texto-suave); }
.chip.PENDIENTE { background: rgba(232, 180, 76, .16); color: var(--ambar); }
.chip.DEVUELTO { background: rgba(255, 138, 128, .16); color: var(--error); }
.chip.AUTORIZADO { background: rgba(94, 208, 140, .16); color: var(--ok); }
.chip.ENVIADO { background: var(--violeta-tinte); color: var(--violeta-claro); }
.chip.CANCELADO { background: var(--relieve); color: var(--texto-suave); text-decoration: line-through; }

/* Listas de documentos */
.lista-docs { display: flex; flex-direction: column; gap: 8px; }
.doc-item {
  display: flex; gap: 10px; align-items: center; justify-content: space-between;
  border: 1px solid var(--borde); border-radius: 10px; padding: 10px 12px; background: var(--tarjeta);
}
.doc-item .principal { min-width: 0; }
.doc-item .principal a { font-weight: 700; color: var(--texto); display: block; }
.doc-item .principal a:hover { color: var(--violeta-claro); }

/* Tablas */
.tabla-envoltura { overflow-x: auto; }
table.tabla { border-collapse: collapse; width: 100%; font-size: 14.5px; }
.tabla th, .tabla td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--borde); }
.tabla th { color: var(--texto-suave); font-size: 13px; }

/* Documento: dos columnas en pantalla grande */
.doc-panel { display: grid; gap: 14px; }
@media (min-width: 950px) { .doc-panel { grid-template-columns: minmax(0, 1.4fr) minmax(320px, 1fr); align-items: start; } }
.visor-pdf { width: 100%; height: 62vh; border: 1px solid var(--borde); border-radius: 12px; background: #fff; }
@media (min-width: 950px) { .visor-pdf { height: 78vh; } }

/* ===== Logotipo MAIA (manual §3) =====
   Regla dura de tamaño: ≥56 px el isotipo CON su símbolo · 24–48 px el archivo
   «-small-» (nodo de color, sin símbolo) · ≤20 px el favicon (tres puntos).
   Nunca el símbolo por debajo de 56 px: se hace mancha y ensucia la marca.
   Zona de respeto: el radio de un nodo (11.5 % del ancho) libre alrededor. */

/* Horizontal — barra superior. Alto mínimo 28 px; por debajo, solo isotipo. */
.maia-logo { display: inline-flex; align-items: center; padding: 3px; text-decoration: none; }
.maia-logo img { width: 28px; height: 28px; flex-shrink: 0; }
.maia-logo .nombre {
  margin-left: 12.6px;                     /* 0.45 × el alto del isotipo */
  font-family: 'Public Sans', sans-serif;  /* la tipografía sigue pendiente (manual §5) */
  font-size: 13px;                         /* 0.46 × el alto del isotipo */
  font-weight: 400; letter-spacing: .16em; color: var(--texto); white-space: nowrap;
}
.maia-logo .nombre b { font-weight: 500; } /* «Documentos» en medium */

/* Apilado — pantalla de entrada (manual §6.3) */
.centrado-solo { max-width: 420px; margin: 8vh auto 0; }
.maia-entrada { text-align: center; margin-bottom: 22px; }
.maia-entrada img { width: 96px; height: 96px; display: block; margin: 0 auto 16px; }
.maia-entrada .nombre {
  font-family: 'Public Sans', sans-serif; font-size: 40px; font-weight: 400;
  letter-spacing: .22em; text-indent: .22em;  /* el sangrado recentra: la última letra
                                                 arrastra su espacio */
  line-height: 1.05; color: var(--texto);
}
.maia-entrada .apellido {
  font-family: 'Public Sans', sans-serif; font-size: 18px; font-weight: 500;
  letter-spacing: .16em; text-indent: .16em; color: var(--texto-suave); margin-top: 3px;
}
.maia-entrada .descriptor {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10.5px;
  letter-spacing: .14em; text-transform: uppercase; color: var(--texto-suave);
  line-height: 1.8; margin: 14px 0 0;
}

/* Bitácora */
.evento { display: flex; gap: 10px; padding: 7px 0; border-bottom: 1px dashed var(--borde); font-size: 13.5px; }
.evento .cuando { color: var(--texto-suave); white-space: nowrap; }

/* Utilidades */
.espacio { height: 10px; }
.derecha { text-align: right; }
.faltante { background: rgba(255, 138, 128, .16); color: var(--error); border-radius: 6px; padding: 1px 6px; font-weight: 700; }
details.plegable summary { cursor: pointer; font-weight: 700; color: var(--violeta-claro); padding: 4px 0; }
.enlace-copiar { word-break: break-all; background: var(--hundido); border: 1px dashed var(--borde); border-radius: 8px; padding: 8px 10px; font-size: 13px; }
/* Paquete de diseño del Dr. (barra lateral, tabbar, hoja) — tema oscuro */
:root{ --barra-lateral:#101114; --sombra-tarjeta:0 2px 10px rgba(0,0,0,.40); }
body{ font-family:'Public Sans',sans-serif; background:var(--fondo); color:var(--texto); }
h1,h2,h3,.titulo,.btn{ font-family:'Sora',sans-serif; }

/* ===== Barra inferior móvil ===== */
.dm-tabbar{ position:fixed; left:0; right:0; bottom:0; height:76px; background:var(--tarjeta);
  border-top:1px solid var(--borde); display:grid; grid-template-columns:1fr 1fr 84px 1fr 1fr;
  align-items:center; z-index:50; }
.dm-tab{ display:flex; flex-direction:column; align-items:center; gap:3px; color:var(--texto-suave);
  font-size:11px; font-weight:600; text-decoration:none; }
.dm-tab.activo{ color:var(--violeta-claro); font-weight:700; }
.dm-tab svg{ width:24px; height:24px; }
.dm-mic-central{ justify-self:center; margin-top:-30px; width:64px; height:64px; border-radius:50%;
  background:linear-gradient(160deg,var(--violeta),var(--violeta-papel)); border:none; cursor:pointer;
  box-shadow:0 6px 16px rgba(122,75,154,.50); display:flex; align-items:center; justify-content:center; }
.dm-mic-central svg{ width:28px; height:28px; stroke:#fff; }
.dm-con-tabbar{ padding-bottom:92px; }

/* ===== Encabezado móvil ===== */
.dm-header{ background:var(--tarjeta); border-bottom:1px solid var(--borde);
  padding:16px 20px; display:flex; align-items:center; gap:12px; }
.dm-header .titulo{ font-size:19px; font-weight:700; color:var(--texto); margin:0; }
.dm-header .sub{ font-size:13px; color:var(--texto-suave); }
.dm-avatar{ width:44px; height:44px; border-radius:50%; background:var(--violeta-tinte); color:var(--violeta-claro);
  font-family:'Sora',sans-serif; font-weight:700; font-size:15px; display:flex; align-items:center;
  justify-content:center; flex-shrink:0; }

/* ===== Tarjetas de pendientes ===== */
.dm-seccion{ font-family:'Sora',sans-serif; font-weight:600; font-size:16px; margin:18px 0 10px;
  display:flex; align-items:baseline; gap:8px; }
.dm-badge{ background:var(--violeta-tinte); color:var(--violeta-claro); font-size:12px; font-weight:700;
  border-radius:99px; padding:1px 8px; }
.tarjeta.dm-destacada{ border:1.5px solid var(--violeta); box-shadow:0 2px 8px rgba(154,102,190,.16); }
.dm-fila{ display:flex; align-items:center; gap:10px; }
.dm-fila .crece{ flex:1; min-width:0; }
.dm-fila .nombre{ font-weight:600; font-size:15px; }
.dm-fila .detalle{ font-size:13px; color:var(--texto-suave); }

/* Botón grande de autorizar (móvil, ≥56px) */
.btn.dm-grande{ width:100%; min-height:56px; font-size:17px; font-weight:700; border-radius:14px;
  display:flex; align-items:center; justify-content:center; gap:10px; }
.btn.dm-grande svg{ width:20px; height:20px; }

/* ===== Dictado ===== */
.dm-escuchando{ font-size:13px; font-weight:700; color:var(--violeta-claro); letter-spacing:.08em;
  text-transform:uppercase; display:flex; align-items:center; gap:8px; }
.dm-escuchando::before{ content:''; width:9px; height:9px; border-radius:50%; background:var(--error); }
.dm-transcripcion{ font-size:17px; line-height:1.65; min-height:120px; }
.dm-paciente-detectado{ background:var(--violeta-tinte); border-radius:12px; padding:10px 14px;
  display:flex; align-items:center; gap:8px; font-size:14px; color:var(--texto); }
.dm-paciente-detectado a{ margin-left:auto; font-weight:700; color:var(--violeta-claro); text-decoration:none; }
.dm-chips-detectados{ display:flex; gap:8px; flex-wrap:wrap; }
.dm-adjuntos{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.dm-chip-adjunto{ display:inline-flex; align-items:center; gap:6px; background:var(--violeta-tinte);
  color:var(--violeta-claro); font-size:13px; font-weight:600; border-radius:99px; padding:6px 12px;
  max-width:100%; overflow-wrap:anywhere; }
.dm-chip-adjunto button{ border:none; background:none; color:var(--violeta-claro); cursor:pointer;
  font-size:14px; padding:0 2px; line-height:1; }
.dm-girando{ width:52px; height:52px; margin:0 auto; border-radius:50%;
  border:5px solid var(--borde); border-top-color:var(--violeta); animation:dm-giro 1s linear infinite; }
@keyframes dm-giro{ to{ transform:rotate(360deg) } }
.dm-chip-doc{ border:1.5px solid var(--violeta); color:var(--violeta-claro); font-size:13px; font-weight:600;
  border-radius:99px; padding:6px 14px; display:flex; align-items:center; gap:6px; }
.mic.dm-protagonista{ width:96px; height:96px; border-radius:50%; border:none; cursor:pointer;
  background:linear-gradient(160deg,var(--violeta),var(--violeta-papel));
  box-shadow:0 8px 24px rgba(122,75,154,.45), 0 0 0 14px rgba(154,102,190,.12);
  display:flex; align-items:center; justify-content:center; margin:16px auto 6px; }
.mic.dm-protagonista svg{ width:42px; height:42px; stroke:#fff; }
.dm-mic-caption{ text-align:center; font-size:14px; color:var(--texto-suave); }

/* ===== Nuevo documento: teléfono = columna con micrófono protagonista;
   laptop = formulario ancho con fila de acciones (dos diseños funcionales) ===== */
.dm-main-generar{ padding:20px; display:flex; flex-direction:column; gap:16px; max-width:640px; }
.dm-main-generar .dm-transcripcion{ min-height:140px; }
.dm-zona-generar{ display:flex; flex-direction:column; gap:16px; }
.dm-zona-dictado{ display:flex; flex-direction:column; }
.dm-nota-generar{ text-align:center; }
@media (min-width: 761px){
  .dm-main-generar{ max-width:860px; padding:28px 32px; }
  .dm-main-generar .dm-transcripcion{ min-height:230px; }
  .dm-zona-generar{ flex-direction:row; align-items:center; gap:16px; }
  .dm-zona-dictado{ flex-direction:row; align-items:center; gap:12px; }
  .dm-zona-generar .mic.dm-protagonista{ width:58px; height:58px; margin:0;
    box-shadow:0 4px 12px rgba(31,78,121,.35); }
  .dm-zona-generar .mic.dm-protagonista svg{ width:26px; height:26px; }
  .dm-zona-generar .dm-mic-caption{ text-align:left; max-width:210px; line-height:1.35; }
  .dm-zona-generar .btn.dm-grande{ width:auto; margin-left:auto; padding:0 36px; }
  .dm-nota-generar{ text-align:left; }
}

/* ===== Vista previa de documento / borrador ===== */
/* La hoja imita el papel: SIEMPRE blanca con tinta negra, aunque la app esté
   en oscuro. Lo que se dibuje encima usa el violeta de tema claro. */
.dm-hoja{ background:#fff; color:#17181A; border:1px solid var(--borde); border-radius:8px;
  box-shadow:var(--sombra-tarjeta); position:relative; overflow:hidden; padding:24px; }
.dm-hoja .suave, .dm-hoja .chico-txt{ color:#5b6b7c; }
.dm-hoja.escritorio{ max-width:640px; margin:0 auto; padding:44px 52px; }
.dm-marca-agua{ position:absolute; top:44%; left:50%; transform:translate(-50%,-50%) rotate(-23deg);
  font-family:'Sora',sans-serif; font-weight:700; font-size:clamp(22px,4vw,44px); letter-spacing:.14em;
  color:rgba(122,75,154,.14); white-space:nowrap; pointer-events:none; }
.dm-membrete{ display:flex; align-items:center; gap:14px; border-bottom:3px solid var(--violeta-papel);
  padding-bottom:12px; margin-bottom:16px; }
.dm-membrete .medico{ font-family:'Sora',sans-serif; font-weight:700; font-size:17px; color:#17181A; }
.dm-membrete .cedula{ font-size:12px; color:var(--texto-suave); }
.dm-firma-placeholder{ margin-top:28px; text-align:center; }
.dm-firma-placeholder .linea{ border-top:1px dashed #b8c5d2; max-width:280px; margin:0 auto;
  padding-top:8px; font-size:12px; color:#8fa1b3; }

/* Sugerencia IA — discreta, nunca alarma */
.aviso.dm-ia{ background:var(--violeta-tinte); color:var(--texto); border:none; border-radius:12px;
  display:flex; gap:10px; align-items:flex-start; font-size:13px; }
.aviso.dm-ia svg{ width:17px; height:17px; flex-shrink:0; margin-top:2px; stroke:var(--violeta-claro); }

/* Pedir cambios a la IA */
.dm-pedir-cambios{ display:flex; flex-direction:column; gap:10px; }
.dm-pedir-cambios textarea{ border:1px solid var(--borde); border-radius:12px; padding:12px 14px;
  font:inherit; font-size:14px; resize:vertical; min-height:64px; }
.btn.dm-suave{ background:var(--violeta-tinte); color:var(--violeta-claro); border:none; font-weight:700; }

/* ===== Escritorio: barra lateral (OBLIGATORIA) ===== */
.dm-layout{ display:flex; min-height:100vh; }
.dm-sidebar{ width:76px; background:var(--barra-lateral); display:flex; flex-direction:column;
  align-items:center; padding:20px 0; gap:26px; flex-shrink:0;
  position:sticky; top:0; height:100vh; overflow-y:auto; }
.dm-sidebar .logo{ width:36px; height:36px; }
.dm-nuevo-lateral{ width:48px; height:48px; border-radius:50%; background:var(--violeta); margin:16px 0 4px;
  display:flex; align-items:center; justify-content:center; box-shadow:0 4px 12px rgba(0,0,0,.45); }
.dm-nuevo-lateral svg{ width:22px; height:22px; stroke:#17181A; }
.dm-nuevo-lateral:hover{ transform:scale(1.06); }
.dm-sidebar nav{ display:flex; flex-direction:column; gap:8px; flex:1; }
.dm-sidebar nav a{ width:44px; height:44px; border-radius:12px; display:flex; align-items:center;
  justify-content:center; color:#8A9099; }
.dm-sidebar nav a.activo{ background:var(--violeta-tinte); color:var(--violeta-claro); }
.dm-sidebar nav a svg{ width:22px; height:22px; }
.dm-sidebar .dm-avatar{ background:var(--violeta-papel); color:#FFFEFB; width:40px; height:40px; font-size:14px; }
.dm-main{ flex:1; min-width:0; display:flex; flex-direction:column; }
.dm-topbar{ background:var(--tarjeta); border-bottom:1px solid var(--borde);
  padding:16px 28px; display:flex; align-items:center; gap:16px; }
.dm-topbar .titulo{ font-size:19px; font-weight:700; color:var(--texto); margin:0; }
.dm-cuerpo-2col{ flex:1; display:flex; gap:28px; padding:28px; min-height:0; align-items:flex-start; }
.dm-col-doc{ flex:1; min-width:0; }
.dm-col-acciones{ width:380px; flex-shrink:0; display:flex; flex-direction:column; gap:14px; }
.dm-botones-descarga{ display:flex; gap:10px; }
.dm-botones-descarga .btn{ flex:1; }
/* Visor móvil: el PDF real dibujado página por página (iOS recorta los iframe con PDF) */
.visor-pdf-paginas{ display:flex; flex-direction:column; gap:10px; }
.visor-pdf-paginas canvas{ display:block; width:100%; border:1px solid var(--borde);
  border-radius:8px; background:#fff; }

/* Historial */
.dm-historial{ display:flex; flex-direction:column; gap:10px; font-size:13px; color:var(--texto-suave); }
.dm-historial .punto{ width:8px; height:8px; border-radius:50%; margin-top:5px; flex-shrink:0; display:inline-block; }
.punto.amarillo{ background:var(--ambar); } .punto.azul{ background:var(--violeta); } .punto.gris{ background:#6E757E; }

/* Ficha del paciente */
.dm-ficha-cols{ display:flex; gap:24px; padding:24px 32px; align-items:flex-start; }
.dm-ficha-izq{ width:360px; flex-shrink:0; display:flex; flex-direction:column; gap:16px; }
.dm-ficha-der{ flex:1; min-width:0; }
.dm-datos-grid{ display:grid; grid-template-columns:auto 1fr; gap:8px 16px; font-size:13.5px; }
.dm-datos-grid dt{ color:var(--texto-suave); margin:0; } .dm-datos-grid dd{ font-weight:600; margin:0; }
.dm-cie{ color:var(--violeta-claro); font-weight:700; }
.dm-filtros{ display:flex; gap:6px; font-size:13px; font-weight:600; }
.dm-filtros a{ border:1px solid var(--borde); color:var(--texto); border-radius:99px;
  padding:6px 14px; text-decoration:none; }
.dm-filtros a.activo{ background:var(--violeta-papel); border-color:var(--violeta-papel); color:#FFFEFB; }
.tabla .dm-cancelado{ color:var(--texto-suave); } .tabla .dm-cancelado .tachado{ text-decoration:line-through; }

@media (max-width: 760px){
  .dm-cuerpo-2col{ flex-direction:column; } .dm-col-acciones{ width:100%; }
  .dm-ficha-cols{ flex-direction:column; } .dm-ficha-izq{ width:100%; }
}

/* ===== Integración (Code): reparto móvil/escritorio y contenedores ===== */
@media (max-width: 760px){
  .dm-sidebar{ display:none }
  .dm-solo-escritorio{ display:none !important }
  .dm-topbar{ padding:14px 16px }
  .dm-cuerpo-2col{ padding:14px 16px calc(30px + env(safe-area-inset-bottom)) }
  .dm-ficha-cols{ padding:14px 16px }
  .dm-botones-descarga{ flex-direction:column }
  .dm-botones-descarga .btn{ min-height:46px }
}
@media (min-width: 761px){
  .dm-tabbar{ display:none }
  .dm-con-tabbar{ padding-bottom:0 }
  .dm-solo-movil{ display:none !important }
}
.contenido-plena{ max-width:none; margin:0; padding:0 }
.contenido-plena .aviso{ margin:12px 16px }
.dm-pie{ text-align:center; color:var(--texto-suave); font-size:12px; padding:16px 10px 110px }
@media (min-width: 761px){ .dm-pie{ padding-bottom:20px } }
.dm-contenido-lista{ padding:18px 24px; display:flex; flex-direction:column; gap:14px; max-width:1100px }
.mic.dm-protagonista.activo{ background:var(--error-fondo); box-shadow:0 8px 24px rgba(192,57,43,.45), 0 0 0 14px rgba(192,57,43,.14) }
[hidden]{ display:none !important }
.dm-sidebar .dm-avatar.activo{ box-shadow:0 0 0 2.5px var(--violeta) }
.dm-tab .dm-avatar{ background:var(--violeta-tinte); color:var(--violeta-claro) }
.dm-tab.activo .dm-avatar{ background:var(--violeta-papel); color:#FFFEFB }
