/* ebitda.crusardi.net - base visual minimalista */

:root {
    --fondo: #f6f6f4;
    --tarjeta: #ffffff;
    --borde: #e3e2de;
    --texto: #1b1b19;
    --texto-suave: #6b6a65;
    --acento: #1f6f4a;
    --acento-suave: #eaf3ee;
    --sombra: 0 1px 2px rgba(0, 0, 0, .04), 0 8px 24px rgba(0, 0, 0, .06);
    --sombra-sutil: 0 1px 2px rgba(0, 0, 0, .04);
    --espera: #a9741a;
    --espera-suave: #fdf3e2;
    --espera-borde: #f0d9ac;
    --alerta: #8c1d18;
    --alerta-suave: #fdeceb;
    --alerta-borde: #f5c2c0;
}

@media (prefers-color-scheme: dark) {
    :root {
        --fondo: #17171a;
        --tarjeta: #1f1f23;
        --borde: #32323a;
        --texto: #f0efec;
        --texto-suave: #a3a29c;
        --acento: #5cc48d;
        --acento-suave: #1c2f26;
        --sombra: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .35);
        --sombra-sutil: 0 1px 2px rgba(0, 0, 0, .3);
        --espera: #f0cf8f;
        --espera-suave: #2e2716;
        --espera-borde: #55471f;
        --alerta: #f2b8b5;
        --alerta-suave: #33201f;
        --alerta-borde: #5c2b28;
    }
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    min-height: 100vh;
    background: var(--fondo);
    color: var(--texto);
    font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto,
                 "Helvetica Neue", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

h1 {
    margin: 0 0 10px;
    font-size: 26px;
    font-weight: 600;
    letter-spacing: -.02em;
}

code {
    padding: 1px 5px;
    background: var(--fondo);
    border: 1px solid var(--borde);
    border-radius: 4px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .85em;
}

/* =================================================================
   Pantallas sueltas (ingreso, espera, salud)
   ================================================================= */

.marco {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 24px;
}

.tarjeta {
    width: 100%;
    max-width: 520px;
    padding: 40px;
    background: var(--tarjeta);
    border: 1px solid var(--borde);
    border-radius: 14px;
    box-shadow: var(--sombra);
}

.tarjeta--angosta {
    max-width: 420px;
}

.tarjeta--centrada {
    text-align: center;
}

.etiqueta {
    margin: 0 0 6px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--texto-suave);
}

.lema {
    margin: 0 0 30px;
    color: var(--texto-suave);
    font-size: 15px;
    line-height: 1.5;
}

.lema__corazon {
    font-size: .95em;
    line-height: 1;
}

.estado {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 16px;
    padding: 6px 12px;
    background: var(--acento-suave);
    border-radius: 999px;
    font-size: 14px;
    font-weight: 500;
    color: var(--acento);
}

.punto {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--acento);
}

.nota {
    margin: 0 0 10px;
    color: var(--texto-suave);
    font-size: 14px;
}

.nota-mini {
    color: var(--texto-suave);
    font-size: 12.5px;
    line-height: 1.5;
}

.enlace {
    color: var(--acento);
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
}

.enlace:hover {
    text-decoration: underline;
}

.boton-google {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 12px 16px;
    background: var(--tarjeta);
    border: 1px solid var(--borde);
    border-radius: 8px;
    color: var(--texto);
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.boton-google:hover {
    border-color: var(--texto-suave);
    box-shadow: var(--sombra-sutil);
}

.boton-google__icono {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
}

/* =================================================================
   Shell de la aplicacion
   ================================================================= */

body.app {
    display: flex;
    flex-direction: column;
}

.barra {
    background: var(--tarjeta);
    border-bottom: 1px solid var(--borde);
}

.barra__interior {
    display: flex;
    align-items: center;
    gap: 24px;
    max-width: 1100px;
    margin: 0 auto;
    padding: 14px 24px;
    flex-wrap: wrap;
}

.barra__marca {
    display: flex;
    align-items: baseline;
    gap: 7px;
}

.barra__logo {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--texto);
}

.barra__app {
    font-size: 12px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--texto-suave);
}

.barra__nav {
    display: flex;
    gap: 4px;
    flex: 1;
}

.barra__enlace {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 12px;
    border-radius: 7px;
    color: var(--texto-suave);
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
}

.barra__enlace:hover {
    background: var(--fondo);
    color: var(--texto);
}

.barra__enlace--activo {
    background: var(--acento-suave);
    color: var(--acento);
}

.insignia {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 19px;
    height: 19px;
    padding: 0 6px;
    background: var(--espera-suave);
    border: 1px solid var(--espera-borde);
    border-radius: 999px;
    color: var(--espera);
    font-size: 11.5px;
    font-weight: 600;
}

.barra__usuario {
    display: flex;
    align-items: center;
    gap: 14px;
}

.barra__correo {
    color: var(--texto-suave);
    font-size: 13px;
}

.barra__salir {
    margin: 0;
}

.contenido {
    flex: 1;
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: 32px 24px 48px;
}

.pie-pagina {
    padding: 0 24px 32px;
    text-align: center;
}

.lema--pie {
    margin: 0;
    font-size: 13px;
    opacity: .75;
}

/* =================================================================
   Paneles
   ================================================================= */

.panel__encabezado {
    margin-bottom: 24px;
}

.tarjeta-aviso {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 26px;
    padding: 16px 20px;
    background: var(--espera-suave);
    border: 1px solid var(--espera-borde);
    border-radius: 10px;
    flex-wrap: wrap;
}

.tarjeta-aviso__texto {
    margin: 0;
    color: var(--espera);
    font-size: 14.5px;
}

/* --- Fases --- */

.fases {
    display: grid;
    gap: 8px;
    max-width: 560px;
}

.fase {
    display: flex;
    align-items: baseline;
    gap: 14px;
    padding: 12px 16px;
    background: var(--tarjeta);
    border: 1px solid var(--borde);
    border-radius: 9px;
}

.fase__estado {
    flex: 0 0 72px;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--texto-suave);
}

.fase--lista .fase__estado {
    color: var(--acento);
}

.fase__nombre {
    font-size: 14.5px;
}

/* =================================================================
   Lista de usuarios
   ================================================================= */

.lista-usuarios {
    display: grid;
    gap: 10px;
    margin-bottom: 20px;
}

.usuario {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 16px 20px;
    background: var(--tarjeta);
    border: 1px solid var(--borde);
    border-left: 3px solid var(--borde);
    border-radius: 10px;
    box-shadow: var(--sombra-sutil);
    flex-wrap: wrap;
}

.usuario--pendiente {
    border-left-color: var(--espera);
}

.usuario--bloqueado {
    border-left-color: var(--alerta);
    opacity: .72;
}

.usuario__identidad {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 220px;
    flex: 1;
}

.usuario__nombre {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 15px;
    font-weight: 600;
}

.usuario__correo {
    color: var(--texto-suave);
    font-size: 13.5px;
    word-break: break-all;
}

.usuario__meta {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 5px;
    color: var(--texto-suave);
    font-size: 12.5px;
    flex-wrap: wrap;
}

.marca-yo {
    padding: 2px 8px;
    background: var(--acento-suave);
    border-radius: 999px;
    color: var(--acento);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .03em;
}

.usuario__controles {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.usuario__controles--fijos {
    align-items: center;
}

.campo-grupo {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.campo-etiqueta {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--texto-suave);
}

.campo {
    padding: 7px 10px;
    min-width: 118px;
    background: var(--fondo);
    border: 1px solid var(--borde);
    border-radius: 7px;
    color: var(--texto);
    font-family: inherit;
    font-size: 13.5px;
}

.campo-grupo--ancho .campo {
    min-width: 168px;
}

.campo:focus {
    outline: 2px solid var(--acento);
    outline-offset: 1px;
}

.valor-fijo {
    padding: 7px 10px;
    background: var(--fondo);
    border: 1px dashed var(--borde);
    border-radius: 7px;
    color: var(--texto-suave);
    font-size: 13px;
}

/* =================================================================
   Botones
   ================================================================= */

.boton {
    padding: 8px 16px;
    background: var(--acento);
    border: 1px solid var(--acento);
    border-radius: 7px;
    color: #ffffff;
    font-family: inherit;
    font-size: 13.5px;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition: opacity .15s ease;
}

.boton:hover {
    opacity: .88;
}

@media (prefers-color-scheme: dark) {
    .boton {
        color: #10231a;
    }
}

.boton-texto {
    padding: 0;
    background: none;
    border: none;
    color: var(--texto-suave);
    font-family: inherit;
    font-size: 13px;
    cursor: pointer;
}

.boton-texto:hover {
    color: var(--texto);
    text-decoration: underline;
}

/* =================================================================
   Pastillas y avisos
   ================================================================= */

.pastilla {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 500;
    white-space: nowrap;
}

.pastilla--ok {
    background: var(--acento-suave);
    color: var(--acento);
}

.pastilla--espera {
    background: var(--espera-suave);
    border: 1px solid var(--espera-borde);
    color: var(--espera);
}

.pastilla--bloqueo {
    background: var(--alerta-suave);
    border: 1px solid var(--alerta-borde);
    color: var(--alerta);
}

.pastilla--info {
    background: var(--fondo);
    border: 1px solid var(--borde);
    color: var(--texto-suave);
}

.aviso {
    margin: 0 0 18px;
    padding: 11px 15px;
    border-radius: 8px;
    font-size: 14px;
    line-height: 1.45;
}

.aviso--ok {
    background: var(--acento-suave);
    border: 1px solid var(--acento);
    color: var(--acento);
}

.aviso--error {
    background: var(--alerta-suave);
    border: 1px solid var(--alerta-borde);
    color: var(--alerta);
    text-align: left;
}

.aviso--espera {
    display: inline-block;
    background: var(--espera-suave);
    border: 1px solid var(--espera-borde);
    color: var(--espera);
    font-weight: 500;
}

/* =================================================================
   Tablas
   ================================================================= */

.tabla-envoltura {
    overflow-x: auto;
    background: var(--tarjeta);
    border: 1px solid var(--borde);
    border-radius: 10px;
}

.tabla {
    width: 100%;
    border-collapse: collapse;
    font-size: 13.5px;
}

.tabla th,
.tabla td {
    padding: 10px 16px;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid var(--borde);
    white-space: nowrap;
}

.tabla th {
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--texto-suave);
}

.tabla tbody tr:last-child th,
.tabla tbody tr:last-child td {
    border-bottom: none;
}

.celda-fecha {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 12.5px;
    color: var(--texto-suave);
}

.celda-detalle {
    white-space: normal;
    min-width: 240px;
    color: var(--texto-suave);
}

/* --- Filtros y paginacion --- */

.filtros {
    display: flex;
    gap: 6px;
    margin-bottom: 18px;
    flex-wrap: wrap;
}

.filtro {
    padding: 6px 13px;
    background: var(--tarjeta);
    border: 1px solid var(--borde);
    border-radius: 999px;
    color: var(--texto-suave);
    font-size: 13px;
    text-decoration: none;
}

.filtro:hover {
    color: var(--texto);
}

.filtro--activo {
    background: var(--acento-suave);
    border-color: var(--acento);
    color: var(--acento);
    font-weight: 500;
}

.paginacion {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-top: 16px;
}

/* =================================================================
   Diagnostico
   ================================================================= */

.diag {
    width: 100%;
    margin-top: 28px;
    border-top: 1px solid var(--borde);
    border-collapse: collapse;
    font-size: 13px;
    text-align: left;
}

.diag th,
.diag td {
    padding: 9px 0;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid var(--borde);
}

.diag th {
    width: 55%;
    font-weight: 500;
    color: var(--texto-suave);
}

.diag td {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    word-break: break-all;
}

/* =================================================================
   Movil
   ================================================================= */

@media (max-width: 720px) {
    .barra__interior {
        gap: 12px;
    }

    .barra__nav {
        order: 3;
        width: 100%;
        flex: none;
    }

    .barra__correo {
        display: none;
    }

    .usuario {
        flex-direction: column;
        align-items: stretch;
    }

    .usuario__controles {
        width: 100%;
    }

    .campo-grupo {
        flex: 1;
    }

    .campo,
    .campo-grupo--ancho .campo {
        width: 100%;
        min-width: 0;
    }

    .boton {
        width: 100%;
    }
}
