/* Shell comun de las pantallas internas de Miniphone.
   Tokens de marca de miniphone01.com. Todo lo del shell vive bajo .mp-raiz
   con un reset propio, para que el CSS de cada pagina (button{}, header{},
   label{}...) no lo deforme. */
:root{
  --bg:#FAFAF8; --surface:#FFFFFF; --ink:#101828; --muted:#5B6472; --line:#E6E4DE;
  --brand:#0E4DA4; --brand-dark:#0A3B80; --brand-soft:#EEF3FB; --deep:#0B1220;
  --deep-2:#1B2536; --error:#B42318; --ok:#12703C;
  --r-card:12px; --r-btn:8px;
  --sh:0 1px 3px rgba(16,24,40,.06); --sh-hi:0 12px 28px rgba(16,24,40,.18);
  --mp-alto-barra:52px;
  --fuente:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --fuente-titulo:'Space Grotesk','Inter',sans-serif;
}
body{background:var(--bg);color:var(--ink);font-family:var(--fuente)}

.mp-raiz,.mp-raiz *{all:revert;box-sizing:border-box}
.mp-raiz{font-family:var(--fuente);font-size:14px;line-height:1.4;color:var(--ink)}

/* --- barra --- */
.mp-raiz.mp-barra{position:sticky;top:0;z-index:50;height:var(--mp-alto-barra);display:flex;align-items:center;gap:18px;
  padding:0 16px;background:var(--brand);color:#fff;box-shadow:var(--sh)}
.mp-raiz .mp-logo{font:700 18px/1 var(--fuente-titulo);letter-spacing:.5px;color:#fff;text-decoration:none}
.mp-raiz .mp-nav{display:flex;gap:4px;height:100%}
.mp-raiz .mp-nav a{display:flex;align-items:center;padding:0 10px;color:#DCE7F7;text-decoration:none;font-weight:500;border-bottom:3px solid transparent}
.mp-raiz .mp-nav a:hover{color:#fff}
.mp-raiz .mp-nav a.mp-activo{color:#fff;border-bottom-color:#fff}
.mp-raiz .mp-derecha{margin-left:auto;display:flex;align-items:center;gap:6px}
.mp-raiz .mp-quien{display:flex;align-items:center;gap:8px;margin-right:6px;font-weight:600}
.mp-raiz .mp-inicial{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:13px;color:#fff;background:var(--deep-2)}
.mp-raiz .mp-icono{min-width:40px;height:40px;border:0;border-radius:var(--r-btn);background:transparent;color:#fff;
  font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.mp-raiz .mp-icono:hover{background:rgba(255,255,255,.14)}
@media (max-width:720px){
  .mp-raiz .mp-nav,.mp-raiz .mp-nombre{display:none}
  .mp-raiz.mp-barra{gap:10px;padding:0 10px}
}

/* --- menu lateral --- */
.mp-raiz.mp-fondo-menu{position:fixed;inset:0;z-index:60;background:rgba(11,18,32,.35);display:none}
.mp-raiz.mp-fondo-menu.mp-abierto{display:block}
.mp-raiz .mp-menu{position:absolute;top:0;right:0;bottom:0;width:min(300px,86vw);background:var(--surface);
  box-shadow:var(--sh-hi);padding:18px 0;display:flex;flex-direction:column;overflow-y:auto}
.mp-raiz .mp-menu-cab{padding:0 20px 14px;border-bottom:1px solid var(--line);margin-bottom:8px}
.mp-raiz .mp-menu-cab b{display:block;font-size:16px}
.mp-raiz .mp-menu-cab span{color:var(--muted);font-size:13px}
.mp-raiz .mp-menu a,.mp-raiz .mp-menu button{display:block;width:100%;text-align:left;padding:12px 20px;border:0;background:none;
  color:var(--ink);text-decoration:none;font:inherit;font-size:15px;cursor:pointer}
.mp-raiz .mp-menu a:hover,.mp-raiz .mp-menu button:hover{background:var(--brand-soft)}
.mp-raiz .mp-menu hr{border:0;border-top:1px solid var(--line);margin:8px 0}
.mp-raiz .mp-menu .mp-salir{color:var(--error)}

/* --- bloqueo --- */
.mp-raiz.mp-bloqueo{position:fixed;inset:0;z-index:100;background:var(--deep);color:#fff;display:none;
  align-items:center;justify-content:center;padding:16px;overflow-y:auto}
.mp-raiz.mp-bloqueo.mp-abierto{display:flex}
.mp-raiz .mp-caja{width:100%;max-width:380px;text-align:center}
.mp-raiz .mp-titulo{font:700 24px/1.2 var(--fuente-titulo);margin:0 0 4px}
.mp-raiz .mp-sub{color:#93A0B4;font-size:13px;margin:0 0 18px}
.mp-raiz .mp-personas{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}
.mp-raiz .mp-persona{background:var(--deep-2);border:2px solid transparent;border-radius:var(--r-card);padding:12px 8px;
  color:#fff;font:inherit;font-size:15px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;min-height:44px}
.mp-raiz .mp-persona .mp-inicial{width:42px;height:42px;font-size:18px}
.mp-raiz .mp-persona.mp-elegida{background:var(--brand);border-color:#7EB0F2}
.mp-raiz .mp-puntos{display:flex;justify-content:center;gap:14px;margin:4px 0 10px}
.mp-raiz .mp-punto{width:14px;height:14px;border-radius:50%;border:2px solid #93A0B4}
.mp-raiz .mp-punto.mp-lleno{background:#fff;border-color:#fff}
.mp-raiz .mp-msj{min-height:20px;color:#FCA5A5;font-size:14px;margin-bottom:8px}
.mp-raiz .mp-teclado{display:grid;grid-template-columns:repeat(3,72px);gap:10px;justify-content:center}
.mp-raiz .mp-tecla{height:56px;border:0;border-radius:var(--r-btn);background:var(--deep-2);color:#fff;
  font:600 22px/1 var(--fuente);cursor:pointer}
.mp-raiz .mp-tecla:active{background:var(--brand)}
.mp-raiz .mp-tecla:disabled{opacity:.35;cursor:default}
.mp-raiz .mp-tecla.mp-chica{font-size:15px}
.mp-raiz .mp-con-clave{display:inline-block;margin-top:18px;color:#93A0B4;font-size:13px}
/* Se resalta cuando el servidor exige entrar con contrasena (demasiados PIN
   fallidos en cualquier aparato): ya no basta con un enlace discreto. */
.mp-raiz .mp-con-clave.mp-destacado{display:inline-block;margin-top:18px;padding:10px 20px;
  background:#fff;color:var(--brand-dark);font-weight:700;border-radius:var(--r-btn);text-decoration:none}

/* --- avisos (403, red) --- */
.mp-raiz.mp-aviso{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:90;background:var(--ink);color:#fff;
  padding:12px 18px;border-radius:var(--r-btn);box-shadow:var(--sh-hi);font-size:14px;display:none;max-width:calc(100vw - 32px)}
.mp-raiz.mp-aviso.mp-abierto{display:block}

/* --- sin permiso para el modulo --- */
.mp-raiz.mp-sin-permiso{max-width:420px;margin:60px auto;padding:24px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-card);text-align:center}

/* --- componentes para las paginas (opcionales) --- */
.mp-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--sh);padding:16px}
.mp-btn{padding:10px 16px;border:0;border-radius:var(--r-btn);background:var(--brand);color:#fff;font:600 15px var(--fuente);cursor:pointer}
.mp-btn:hover{background:var(--brand-dark)}
.mp-btn:disabled{opacity:.55;cursor:not-allowed}
.mp-btn.mp-gris{background:var(--muted)}
.mp-btn.mp-rojo{background:var(--error)}
.mp-in{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-btn);font:15px var(--fuente);background:#fff;color:var(--ink)}
.mp-in:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(14,77,164,.15)}
