/* Sandbox de Musho — el portal. Mismos tokens que el CRM
   (software/crm/app/public/estilo.css) para que las herramientas
   internas se sientan de la misma familia. Claro y oscuro por sistema. */
:root {
  color-scheme: light dark;
  --fondo: #f7f7f7;
  --tarjeta: #ffffff;
  --borde: #e2e2e2;
  --tinta: #1e1e1e;
  --suave: #666666;
  --acento: #e65742;
  --acento-texto: #b8443a;
  --acento-suave: #fcedeb;
  --halo: rgba(230, 87, 66, .18);
  --rojo: #b13324; --mal-fondo: #f7dcd8;
}
@media (prefers-color-scheme: dark) {
  :root {
    --fondo: #161616;
    --tarjeta: #222222;
    --borde: #333333;
    --tinta: #f2f2f2;
    --suave: #a3a3a3;
    --acento-texto: #f28b7a;
    --acento-suave: #3a2521;
    --rojo: #f28b7a; --mal-fondo: #3a2521;
  }
}

* { box-sizing: border-box; }
html { background: var(--fondo); }
body {
  margin: 0; min-height: 100dvh;
  font: 16px/1.5 'Geist', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color: var(--tinta); background: var(--fondo);
  -webkit-font-smoothing: antialiased;
}
a { color: var(--acento-texto); }
h1 { font-size: 1.6rem; line-height: 1.2; margin: 0 0 .5rem; letter-spacing: -.01em; }
.suave { color: var(--suave); }

.cabecera {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: max(env(safe-area-inset-top), .9rem) 1.25rem .9rem;
  border-bottom: 1px solid var(--borde);
}
.marca { color: var(--tinta); text-decoration: none; font-weight: 600; }
.quien { display: flex; align-items: center; gap: .6rem; margin: 0; }
.avatar { width: 28px; height: 28px; border-radius: 50%; }
.enlace {
  background: none; border: 0; padding: .3rem .2rem; font: inherit;
  color: var(--acento-texto); cursor: pointer; text-decoration: underline;
}

.pagina { max-width: 720px; margin: 0 auto; padding: 1.75rem 1.25rem 3rem; }

.login { text-align: center; padding-top: 12vh; }
.login p { margin: 0 0 1.25rem; }
.aviso-error {
  color: var(--rojo); background: var(--mal-fondo);
  border-radius: 10px; padding: .6rem .9rem; display: inline-block;
}
.boton-google {
  display: inline-flex; align-items: center; gap: .6rem;
  padding: .8rem 1.25rem; border-radius: 12px;
  border: 1px solid var(--borde); background: var(--tarjeta);
  color: var(--tinta); text-decoration: none; font-weight: 600;
  min-height: 48px;
}
.boton-google:hover { border-color: var(--acento); }
.boton-google:focus-visible { outline: 3px solid var(--halo); outline-offset: 2px; }

.portal h1 { margin-bottom: 1.25rem; }
.apps { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.app {
  display: flex; align-items: center; gap: 1rem; min-height: 88px;
  padding: 1rem 1.1rem; border-radius: 14px;
  border: 1px solid var(--borde); background: var(--tarjeta);
  color: var(--tinta); text-decoration: none;
  transition: border-color .15s, transform .15s;
}
a.app:hover { border-color: var(--acento); transform: translateY(-1px); }
a.app:focus-visible { outline: 3px solid var(--halo); outline-offset: 2px; }
.app.pronto { opacity: .55; }
.app-icono { font-size: 1.9rem; line-height: 1; flex: 0 0 auto; }
.app-icono.grande { font-size: 3rem; margin: 0 0 .5rem; }
.app-texto { display: flex; flex-direction: column; gap: .1rem; }
.app-texto strong { font-weight: 600; }
.etiqueta {
  font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em;
  background: var(--acento-suave); color: var(--acento-texto);
  border-radius: 999px; padding: .1rem .5rem; vertical-align: middle;
}
.pista { margin-top: 1.5rem; font-size: .92rem; }
