:root {
    --dgaia-fondo: #f2f7f7;
    --dgaia-superficie: #ffffff;
    --dgaia-superficie-suave: #f7fbfb;
    --dgaia-texto: #102f2f;
    --dgaia-texto-secundario: #587070;
    --dgaia-borde: #d5e4e4;
    --dgaia-acento: #0fa9a0;
    --dgaia-acento-oscuro: #087f79;
    --dgaia-exito: #18b96e;
    --dgaia-aviso: #d68a16;
    --dgaia-peligro: #c84343;
    --dgaia-noche: #112035;
    --dgaia-sombra: 0 12px 34px rgba(18, 55, 55, .09);
    --dgaia-radio: 18px;
    --dgaia-radio-pequeno: 12px;
    --dgaia-maximo: 1460px;
}

html {
    background: var(--dgaia-fondo);
}

body {
    background: var(--dgaia-fondo) !important;
    color: var(--dgaia-texto) !important;
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif !important;
    line-height: 1.5;
}

body,
button,
input,
select,
textarea {
    font-synthesis: none;
}

header,
nav,
main,
section,
article,
aside,
div {
    box-sizing: border-box;
}

header {
    background: rgba(255, 255, 255, .98) !important;
    color: var(--dgaia-texto) !important;
    border-bottom: 1px solid var(--dgaia-borde) !important;
    box-shadow: 0 4px 18px rgba(20, 55, 55, .04);
}

header img {
    object-fit: contain;
}

header a,
header button {
    color: var(--dgaia-texto) !important;
}

main {
    width: min(calc(100% - 48px), var(--dgaia-maximo));
    margin-inline: auto;
}

h1,
h2,
h3,
h4 {
    color: var(--dgaia-texto) !important;
    letter-spacing: -.025em;
    line-height: 1.16;
}

h1 {
    font-size: clamp(2rem, 3vw, 3.15rem) !important;
}

h2 {
    font-size: clamp(1.35rem, 2vw, 2rem) !important;
}

h3 {
    font-size: clamp(1.1rem, 1.5vw, 1.45rem) !important;
}

p,
small,
label {
    color: var(--dgaia-texto-secundario);
}

button,
.button,
.btn,
a[role="button"],
input[type="submit"] {
    min-height: 44px;
    border-radius: 12px !important;
    font-weight: 750 !important;
    transition:
        transform .15s ease,
        box-shadow .15s ease,
        background-color .15s ease,
        border-color .15s ease !important;
}

button:hover,
.button:hover,
.btn:hover,
a[role="button"]:hover {
    transform: translateY(-1px);
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid rgba(15, 169, 160, .28) !important;
    outline-offset: 2px;
}

input,
select,
textarea {
    color: var(--dgaia-texto) !important;
    background: #fff !important;
    border: 1px solid #cbdcdc !important;
    border-radius: 12px !important;
}

input::placeholder,
textarea::placeholder {
    color: #829696 !important;
    opacity: 1;
}

article,
.card,
.panel,
.section-card,
.dashboard-card,
.kpi-card {
    border-color: var(--dgaia-borde) !important;
    border-radius: var(--dgaia-radio) !important;
}

.dgaia-commercial-shell {
    background: var(--dgaia-fondo) !important;
}

.dgaia-commercial-header {
    position: sticky;
    top: 0;
    z-index: 900;
}

.dgaia-commercial-header-inner {
    width: min(calc(100% - 40px), var(--dgaia-maximo));
    min-height: 76px;
    margin-inline: auto;
    display: flex;
    align-items: center;
    gap: 18px;
}

.dgaia-commercial-brand {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 235px;
}

.dgaia-commercial-brand img {
    width: 82px;
    max-height: 44px;
}

.dgaia-commercial-brand-text {
    display: grid;
    gap: 1px;
}

.dgaia-commercial-brand-text strong {
    color: var(--dgaia-texto);
    font-size: 1rem;
}

.dgaia-commercial-brand-text span {
    color: var(--dgaia-texto-secundario);
    font-size: .86rem;
}

.dgaia-commercial-nav {
    margin-left: auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.dgaia-commercial-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 15px;
    border: 1px solid var(--dgaia-borde);
    border-radius: 11px;
    background: #fff;
    color: var(--dgaia-texto) !important;
    text-decoration: none;
    font-weight: 750;
    font-size: .91rem;
}

.dgaia-commercial-nav a:hover {
    border-color: var(--dgaia-acento);
    background: #eefafa;
}

.dgaia-commercial-nav a[aria-current="page"] {
    color: #fff !important;
    background: var(--dgaia-texto);
    border-color: var(--dgaia-texto);
}

.dgaia-page-intro {
    padding: 42px 0 28px !important;
    background: transparent !important;
}

.dgaia-page-intro h1 {
    margin: 0 0 8px !important;
}

.dgaia-page-intro p {
    max-width: 780px;
    margin: 0;
    font-size: 1.02rem;
}

.dgaia-panel-unificado {
    background: var(--dgaia-superficie) !important;
    color: var(--dgaia-texto) !important;
    border: 1px solid var(--dgaia-borde) !important;
    border-radius: var(--dgaia-radio) !important;
    box-shadow: var(--dgaia-sombra) !important;
}

.dgaia-panel-unificado * {
    color: inherit;
}

.dgaia-panel-unificado p,
.dgaia-panel-unificado small,
.dgaia-panel-unificado label {
    color: var(--dgaia-texto-secundario) !important;
}

.dgaia-kpi-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px !important;
}

.dgaia-kpi {
    min-height: 128px !important;
    padding: 22px !important;
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    background: var(--dgaia-superficie) !important;
    border: 1px solid var(--dgaia-borde) !important;
    border-left: 4px solid var(--dgaia-acento) !important;
    border-radius: 16px !important;
    box-shadow: 0 8px 22px rgba(18, 55, 55, .055);
}

.dgaia-kpi-label {
    color: var(--dgaia-texto-secundario) !important;
    font-size: .78rem !important;
    font-weight: 800 !important;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.dgaia-kpi-value {
    color: var(--dgaia-texto) !important;
    font-size: clamp(1.85rem, 3vw, 2.75rem) !important;
    line-height: 1 !important;
    font-weight: 850 !important;
}

.dgaia-kpi-detail {
    color: var(--dgaia-texto-secundario) !important;
    font-size: .88rem !important;
}

.dgaia-state-ok {
    border-left-color: var(--dgaia-exito) !important;
}

.dgaia-state-warning {
    border-left-color: var(--dgaia-aviso) !important;
}

.dgaia-state-danger {
    border-left-color: var(--dgaia-peligro) !important;
}

.dgaia-user-message {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 14px 16px;
    background: #f4f9f9;
    border: 1px solid var(--dgaia-borde);
    border-left: 4px solid var(--dgaia-acento);
    border-radius: 12px;
    color: var(--dgaia-texto-secundario) !important;
}

.dgaia-user-message strong {
    color: var(--dgaia-texto) !important;
}

.dgaia-technical-hidden {
    display: none !important;
}

body[data-dgaia-screen="waiter"] main > section,
body[data-dgaia-screen="waiter"] main > div,
body[data-dgaia-screen="kitchen"] main > section,
body[data-dgaia-screen="kitchen"] main > div,
body[data-dgaia-screen="owner"] main > section,
body[data-dgaia-screen="owner"] main > div {
    margin-top: 18px;
}

body[data-dgaia-screen="waiter"] main section,
body[data-dgaia-screen="waiter"] main article,
body[data-dgaia-screen="kitchen"] main section,
body[data-dgaia-screen="kitchen"] main article {
    background: var(--dgaia-superficie) !important;
    color: var(--dgaia-texto) !important;
    border-color: var(--dgaia-borde) !important;
    box-shadow: var(--dgaia-sombra);
}

body[data-dgaia-screen="waiter"] main [style*="background"],
body[data-dgaia-screen="waiter"] main [class*="dark"] {
    color: var(--dgaia-texto) !important;
}

body[data-dgaia-screen="waiter"] main [class*="hero"],
body[data-dgaia-screen="waiter"] main [class*="header"] {
    border-radius: 0 !important;
}

body[data-dgaia-screen="waiter"] main section {
    padding: clamp(22px, 3vw, 34px) !important;
}

body[data-dgaia-screen="kitchen"] main {
    padding-bottom: 60px;
}

body[data-dgaia-screen="kitchen"] main section {
    border: 1px solid var(--dgaia-borde) !important;
    border-radius: var(--dgaia-radio) !important;
}

body[data-dgaia-screen="owner"] [style*="color: white"],
body[data-dgaia-screen="owner"] [style*="color:white"],
body[data-dgaia-screen="owner"] [style*="color: #fff"],
body[data-dgaia-screen="owner"] [style*="color:#fff"] {
    color: var(--dgaia-texto) !important;
}

body[data-dgaia-screen="owner"] .dgaia-kpi,
body[data-dgaia-screen="owner"] .dgaia-kpi * {
    opacity: 1 !important;
    visibility: visible !important;
}

@media (max-width: 1080px) {
    .dgaia-commercial-header-inner {
        align-items: flex-start;
        padding-block: 14px;
    }

    .dgaia-commercial-nav {
        gap: 6px;
    }

    .dgaia-commercial-nav a {
        min-height: 39px;
        padding-inline: 11px;
        font-size: .84rem;
    }

    .dgaia-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    main {
        width: min(calc(100% - 24px), var(--dgaia-maximo));
    }

    .dgaia-commercial-header {
        position: static;
    }

    .dgaia-commercial-header-inner {
        width: calc(100% - 24px);
        display: grid;
    }

    .dgaia-commercial-nav {
        margin-left: 0;
        justify-content: flex-start;
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 4px;
    }

    .dgaia-commercial-nav a {
        white-space: nowrap;
    }

    .dgaia-page-intro {
        padding: 28px 0 20px !important;
    }

    .dgaia-kpi-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   FASE 2B-5F · CORRECCIONES ESPECÍFICAS
   ============================================================ */

/* Evitar tarjetas accidentales alrededor de títulos pequeños */
.dgaia-panel-unificado.dgaia-panel-invalido {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}

/* Contraste real de botones oscuros */
.dgaia-boton-oscuro,
.dgaia-boton-oscuro:visited,
header .dgaia-boton-oscuro,
header .dgaia-boton-oscuro * {
    color: #ffffff !important;
}

.dgaia-boton-oscuro:hover {
    color: #ffffff !important;
}

/* Contraste de botones de salida */
.dgaia-boton-salir,
.dgaia-boton-salir:visited,
header .dgaia-boton-salir,
header .dgaia-boton-salir * {
    color: #9e2331 !important;
}

/* Indicadores ejecutivos reales */
body[data-dgaia-screen="owner"] .dgaia-kpi-grid-corregida {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 16px !important;
    padding: 20px !important;
    background: #ffffff !important;
    border: 1px solid var(--dgaia-borde) !important;
    border-radius: var(--dgaia-radio) !important;
    box-shadow: var(--dgaia-sombra) !important;
}

body[data-dgaia-screen="owner"] .dgaia-kpi-corregida {
    min-width: 0 !important;
    min-height: 138px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-start !important;
    gap: 8px !important;
    padding: 22px !important;
    margin: 0 !important;
    overflow: hidden !important;
    background: #ffffff !important;
    border: 1px solid var(--dgaia-borde) !important;
    border-left: 5px solid var(--dgaia-acento) !important;
    border-radius: 15px !important;
    box-shadow: 0 7px 20px rgba(18, 55, 55, .055) !important;
    opacity: 1 !important;
    visibility: visible !important;
}

body[data-dgaia-screen="owner"] .dgaia-kpi-corregida *,
body[data-dgaia-screen="owner"] .dgaia-kpi-corregida strong,
body[data-dgaia-screen="owner"] .dgaia-kpi-corregida span {
    opacity: 1 !important;
    visibility: visible !important;
    filter: none !important;
    text-shadow: none !important;
}

body[data-dgaia-screen="owner"] .dgaia-kpi-corregida-label {
    color: var(--dgaia-texto-secundario) !important;
    font-size: .78rem !important;
    font-weight: 850 !important;
    letter-spacing: .055em !important;
    text-transform: uppercase !important;
}

body[data-dgaia-screen="owner"] .dgaia-kpi-corregida-valor {
    color: var(--dgaia-texto) !important;
    font-size: clamp(2rem, 3vw, 2.8rem) !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}

body[data-dgaia-screen="owner"] .dgaia-kpi-corregida-detalle {
    color: var(--dgaia-texto-secundario) !important;
    font-size: .89rem !important;
    line-height: 1.35 !important;
}

body[data-dgaia-screen="owner"] .dgaia-kpi-corregida-ok {
    border-left-color: var(--dgaia-exito) !important;
}

body[data-dgaia-screen="owner"] .dgaia-kpi-corregida-atencion {
    border-left-color: var(--dgaia-aviso) !important;
}

/* Limpieza de cocina */
body[data-dgaia-screen="kitchen"] .dgaia-titulo-planificacion {
    display: block !important;
    width: auto !important;
    max-width: none !important;
    min-height: 0 !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

body[data-dgaia-screen="kitchen"] .dgaia-titulo-planificacion h1,
body[data-dgaia-screen="kitchen"] .dgaia-titulo-planificacion h2,
body[data-dgaia-screen="kitchen"] .dgaia-titulo-planificacion h3 {
    margin: 0 !important;
}

body[data-dgaia-screen="kitchen"] main {
    padding-top: 28px !important;
}

body[data-dgaia-screen="kitchen"] main > section,
body[data-dgaia-screen="kitchen"] main > div {
    margin-top: 16px !important;
}

/* Cabecera más consistente */
body[data-dgaia-screen="kitchen"] header,
body[data-dgaia-screen="waiter"] header {
    min-height: 72px !important;
}

body[data-dgaia-screen="kitchen"] header img,
body[data-dgaia-screen="waiter"] header img {
    max-height: 46px !important;
}

/* Adaptación */
@media (max-width: 1050px) {
    body[data-dgaia-screen="owner"] .dgaia-kpi-grid-corregida {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 620px) {
    body[data-dgaia-screen="owner"] .dgaia-kpi-grid-corregida {
        grid-template-columns: 1fr !important;
        padding: 12px !important;
    }
}
