:root {
    --bg: #f3f4f6;
    --panel: #ffffff;
    --text: #252525;
    --muted: #6b7280;
    --line: #dedede;
    --accent: #7f1d1d;
    --accent-dark: #651515;
    --danger: #9f2525;
    --success: #2f6f45;
    --shadow: 0 14px 35px rgba(0,0,0,.08);
}

* {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    min-height: 100%;
    font-family: Arial, Helvetica, sans-serif;
    color: var(--text);
    background: var(--bg);
}

body.modal-open {
    overflow: hidden;
}

h1, h2, p {
    margin-top: 0;
}

.eyebrow {
    font-size: .72rem;
    letter-spacing: .14em;
    font-weight: 700;
    color: var(--accent);
}

.login-page {
    display: grid;
    place-items: center;
    min-height: 100vh;
    padding: 24px;
}

.login-card {
    width: min(440px, 100%);
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 34px;
    box-shadow: var(--shadow);
}

.brand-block {
    margin-bottom: 28px;
}

.brand-block h1 {
    margin: 7px 0 5px;
    font-size: 1.6rem;
}

label {
    display: block;
    margin-bottom: 7px;
    font-weight: 700;
    font-size: .9rem;
}

input,
select,
textarea {
    width: 100%;
    border: 1px solid #cfcfcf;
    border-radius: 9px;
    padding: 10px 11px;
    font: inherit;
    background: white;
}

input:focus,
select:focus,
textarea:focus {
    outline: 2px solid rgba(127,29,29,.15);
    border-color: var(--accent);
}

.login-card input {
    margin-bottom: 18px;
}

.btn {
    border: 0;
    border-radius: 9px;
    padding: 10px 15px;
    cursor: pointer;
    font-weight: 700;
}

.btn-primary {
    background: var(--accent);
    color: white;
}

.btn-primary:hover {
    background: var(--accent-dark);
}

.btn-secondary {
    background: #ececec;
    color: #2a2a2a;
}

.btn-danger {
    background: #f6dddd;
    color: var(--danger);
}

.btn-small {
    padding: 7px 10px;
    font-size: .82rem;
}

.btn-block {
    width: 100%;
}

.topbar {
    min-height: 78px;
    background: white;
    border-bottom: 1px solid var(--line);
    padding: 15px 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.topbar h1 {
    margin: 4px 0 0;
    font-size: 1.35rem;
}

.user-box {
    display: grid;
    gap: 2px;
    text-align: right;
    font-size: .85rem;
}

.user-box span {
    color: var(--muted);
}

.user-box a {
    color: var(--accent);
    font-weight: 700;
}

.admin-shell {
    max-width: 1500px;
    margin: 0 auto;
    padding: 24px;
}

.tabs {
    display: flex;
    gap: 5px;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--line);
}

.tab {
    border: 0;
    background: transparent;
    padding: 11px 15px;
    cursor: pointer;
    color: #555;
    font-weight: 700;
    border-bottom: 3px solid transparent;
}

.tab.active {
    color: var(--accent);
    border-bottom-color: var(--accent);
}

.tab-panel {
    display: none;
}

.tab-panel.active {
    display: block;
}

.section-heading {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
    margin-bottom: 16px;
}

.section-heading h2 {
    margin-bottom: 3px;
}

.section-heading p {
    color: var(--muted);
    margin-bottom: 0;
}

.table-card,
.placeholder-card {
    background: white;
    border: 1px solid var(--line);
    border-radius: 13px;
    overflow: hidden;
    box-shadow: 0 5px 18px rgba(0,0,0,.04);
}

.placeholder-card {
    padding: 24px;
}

.table-wrap {
    overflow-x: auto;
}

table {
    width: 100%;
    border-collapse: collapse;
}

th,
td {
    text-align: left;
    padding: 12px 13px;
    border-bottom: 1px solid #ececec;
    vertical-align: middle;
    font-size: .89rem;
}

th {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .035em;
    color: #5e5e5e;
    background: #fafafa;
}

.muted {
    color: var(--muted);
    font-size: .8rem;
    margin-top: 3px;
}

.small-cell {
    font-size: .79rem;
}

.actions {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.state-pill {
    display: inline-block;
    border-radius: 999px;
    padding: 5px 9px;
    font-size: .73rem;
    font-weight: 700;
}

.state-borrador {
    background: #eee;
}

.state-preparado {
    background: #e8eef9;
    color: #31558a;
}

.state-activo {
    background: #dff2e4;
    color: var(--success);
}

.state-finalizado {
    background: #ececec;
    color: #555;
}

.state-cancelado {
    background: #f6dddd;
    color: var(--danger);
}

.loading,
.empty-cell {
    padding: 28px;
    text-align: center;
    color: var(--muted);
}

.alert {
    padding: 11px 13px;
    border-radius: 9px;
    margin-bottom: 14px;
}

.alert-error {
    background: #f8e4e4;
    color: #8a2222;
}

.alert-success {
    background: #e2f2e7;
    color: #2d693e;
}

.modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1000;
}

.modal.open {
    display: block;
}

.modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.46);
}

.modal-dialog {
    position: relative;
    width: min(840px, calc(100% - 28px));
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    margin: 20px auto;
    background: white;
    border-radius: 15px;
    box-shadow: 0 24px 60px rgba(0,0,0,.22);
}

.modal-header {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: flex-start;
    padding: 20px 22px 10px;
}

.modal-header h2 {
    margin-top: 4px;
}

#eventForm {
    padding: 8px 22px 22px;
}

.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.form-field-full {
    grid-column: 1 / -1;
}

.form-error {
    min-height: 20px;
    margin-top: 14px;
    color: var(--danger);
    font-weight: 700;
    font-size: .87rem;
}

.modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 12px;
}

@media (max-width: 760px) {
    .topbar {
        align-items: flex-start;
        padding: 14px 16px;
    }

    .admin-shell {
        padding: 16px;
    }

    .section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .form-grid {
        grid-template-columns: 1fr;
    }

    .form-field-full {
        grid-column: auto;
    }

    .tabs {
        overflow-x: auto;
    }
}


.participant-grid {
    display: grid;
    grid-template-columns: minmax(320px, .8fr) minmax(320px, 1.2fr);
    gap: 16px;
    margin-bottom: 16px;
}

.participant-grid .placeholder-card {
    overflow: visible;
}

.participant-grid h3 {
    margin-bottom: 18px;
}

.field-help {
    margin-top: 7px;
    color: var(--muted);
    font-size: .8rem;
    line-height: 1.35;
}

#participantsFile,
#participantEvent {
    margin-bottom: 14px;
}

.summary-empty {
    color: var(--muted);
}

#importSummary {
    display: grid;
    gap: 7px;
    margin-bottom: 16px;
}

.participant-detail-card {
    margin-bottom: 16px;
}

.participant-list-card {
    margin-top: 16px;
}

.table-title {
    padding: 14px 14px 10px;
    font-weight: 700;
}

.validation-pill {
    display: inline-block;
    padding: 4px 8px;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 700;
    background: #ececec;
}

.validation-valido {
    background: #dff2e4;
    color: #2f6f45;
}

.validation-email_invalido,
.validation-no_encontrado,
.validation-no_elegible {
    background: #f6dddd;
    color: #8d2525;
}

.validation-duplicado_archivo,
.validation-ya_autorizado {
    background: #f7edcf;
    color: #7b5a11;
}

@media (max-width: 850px) {
    .participant-grid {
        grid-template-columns: 1fr;
    }
}


.email-control-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 13px;
    padding: 14px 16px;
    margin-bottom: 16px;
}

@media (max-width: 700px) {
    .email-control-card {
        align-items: flex-start;
        flex-direction: column;
    }
}


.registration-window {
    white-space: nowrap;
    line-height: 1.45;
}

.registration-label {
    display: inline-block;
    min-width: 42px;
    font-weight: 700;
    color: #555;
}


.sync-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 13px;
    padding: 20px;
    box-shadow: 0 5px 18px rgba(0,0,0,.04);
}

.sync-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 18px;
}

.sync-card-header h3 {
    margin: 4px 0 4px;
    font-size: 1.15rem;
}

.sync-card-header p {
    margin: 0;
    color: var(--muted);
}

.sync-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.sync-metrics {
    display: grid;
    grid-template-columns: repeat(5, minmax(120px, 1fr));
    gap: 10px;
    margin: 16px 0;
}

.sync-metric {
    border: 1px solid #e5e5e5;
    border-radius: 10px;
    padding: 12px;
    background: #fafafa;
}

.sync-metric span {
    display: block;
    color: var(--muted);
    font-size: .78rem;
    margin-bottom: 4px;
}

.sync-metric strong {
    font-size: 1.25rem;
}

.sync-progress-block {
    margin-top: 18px;
}

.sync-status-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 7px;
}

.sync-progress-track {
    height: 10px;
    background: #ececec;
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: 8px;
}

.sync-progress-bar {
    height: 100%;
    background: var(--accent);
    border-radius: inherit;
    transition: width .25s ease;
}

.sync-last-run {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #ececec;
    font-size: .84rem;
}

@media (max-width: 900px) {
    .sync-card-header {
        flex-direction: column;
    }

    .sync-metrics {
        grid-template-columns: repeat(2, minmax(120px, 1fr));
    }
}

@media (max-width: 540px) {
    .sync-metrics {
        grid-template-columns: 1fr;
    }
}


.email-control-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

@media (max-width: 700px) {
    .email-control-actions {
        width: 100%;
        align-items: stretch;
        flex-direction: column;
    }

    .email-control-actions .btn {
        width: 100%;
    }
}


/* ==========================================================
   Zebra_Dialog - estilo institucional del módulo administrativo
   ========================================================== */

.ZebraDialogBackdrop.app-zebra-dialog {
    background: #222;
}

.ZebraDialog.app-zebra-dialog {
    border: 0;
    border-radius: 14px;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
    overflow: hidden;
    width: min(500px, calc(100vw - 28px));
}

.ZebraDialog.app-zebra-dialog .ZebraDialog_Title {
    background: #fff;
    border-bottom: 1px solid #ececec;
    color: #111;
    font-size: 1.05rem;
    padding: 16px 18px;
}

.ZebraDialog.app-zebra-dialog .ZebraDialog_Body {
    color: #333;
    font-family: inherit;
    font-size: .92rem;
    line-height: 1.5;
    margin: 0;
    padding: 22px 22px 20px;
}

.ZebraDialog.app-zebra-dialog.ZebraDialog_Icon .ZebraDialog_Body {
    background-position: 22px 22px;
    padding-left: 118px;
}

.ZebraDialog.app-zebra-dialog .ZebraDialog_Buttons {
    background: #fafafa;
    border-top: 1px solid #ececec;
    padding: 12px 14px;
}

.ZebraDialog.app-zebra-dialog .ZebraDialog_Buttons a {
    border-radius: 8px;
    box-sizing: border-box !important;
    font-family: inherit;
    font-size: .86rem;
    min-width: 88px;
    padding: 9px 16px;
}

.ZebraDialog.app-zebra-dialog .ZebraDialog_Buttons a.app-dialog-ok {
    background: var(--accent);
    color: #fff;
}

.ZebraDialog.app-zebra-dialog .ZebraDialog_Buttons a.app-dialog-ok:hover,
.ZebraDialog.app-zebra-dialog .ZebraDialog_Buttons a.app-dialog-ok:focus {
    background: #741818;
    color: #fff;
}

.ZebraDialog.app-zebra-dialog .ZebraDialog_Buttons a.app-dialog-cancel {
    background: #e8e8e8;
    color: #222;
}

.ZebraDialog.app-zebra-dialog .ZebraDialog_Buttons a.app-dialog-cancel:hover,
.ZebraDialog.app-zebra-dialog .ZebraDialog_Buttons a.app-dialog-cancel:focus {
    background: #d8d8d8;
    color: #111;
}

@media (max-width: 574px) {
    .ZebraDialog.app-zebra-dialog {
        width: calc(100vw - 20px);
    }

    .ZebraDialog.app-zebra-dialog.ZebraDialog_Icon .ZebraDialog_Body {
        background-size: 48px 48px;
        background-position: 18px 22px;
        padding-left: 82px;
    }
}


.scanner-admin-card {
    margin-top: 16px;
}

.scanner-modal-dialog{width:min(860px, calc(100% - 28px));max-height:calc(100vh - 84px);display:flex;flex-direction:column;}
.scanner-admin-form.scanner-admin-modal-form{padding:8px 22px 18px;overflow-y:auto;max-height:calc(100vh - 170px);margin:0;border:none;}
.scanner-admin-fields {
    display: grid;
    grid-template-columns: minmax(220px, .9fr) minmax(280px, 1.2fr);
    gap: 12px;
}

.scanner-admin-form-actions {
    display: flex;
    gap: 8px;
    margin-top: 12px;
}

.scanner-admin-table-wrap {
    margin-top: 6px;
}

.scanner-admin-actions {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.btn-danger-soft {
    background: #f8dede;
    color: #951f1f;
}

.btn-danger-soft:hover {
    background: #f2caca;
}

@media (max-width: 760px) {
    .scanner-admin-fields {
        grid-template-columns: 1fr;
    }
}

/* Etapas del proceso de participantes */
#tab-participants [hidden] { display: none !important; }
.participant-grid:has(#participantSummaryCard[hidden]) { grid-template-columns: minmax(0, 1fr); }
.participant-grid.participant-import-finished { grid-template-columns: minmax(0, 1fr); }
.participant-grid.participant-import-finished h3 { display: none; }
#participantListType { width: 100%; margin-bottom: 14px; }


/* ==== Diseño institucional con header, footer y menú lateral fijos ==== */
body.admin-main-page {
    --main-header-height: 84px;
    --main-footer-height: 62px;
    --main-sidebar-width: 244px;
    background: var(--uprrp-page-bg);
    padding-top: var(--main-header-height);
    padding-bottom: var(--main-footer-height);
}
.admin-main-page .topbar {
    position: fixed;
    z-index: 1050;
    top: 0; left: 0; right: 0;
    height: var(--main-header-height);
    min-height: 0;
    padding: 12px 25px;
    color: var(--uprrp-white);
    background: var(--uprrp-gradient-header);
    border-bottom: 0;
    box-shadow: var(--uprrp-shadow-header);
}
.admin-main-page .topbar .eyebrow,
.admin-main-page .topbar .user-box span,
.admin-main-page .topbar .user-box a { color: var(--uprrp-white); }
.admin-main-page .topbar .user-box a { text-decoration: underline; }
.admin-main-page .admin-sidebar {
    position: fixed;
    z-index: 1010;
    left: 0;
    top: var(--main-header-height);
    bottom: var(--main-footer-height);
    width: var(--main-sidebar-width);
    margin: 0;
    padding: 22px 12px;
    background: #fff;
    border-right: 1px solid var(--uprrp-border);
    border-bottom: 0;
    box-shadow: 3px 0 13px rgba(38,28,28,.04);
    display: flex;
    flex-direction: column;
    gap: 7px;
    overflow-y: auto;
    overflow-x: hidden;
}
.admin-main-page .admin-sidebar .tab {
    flex: 0 0 auto;
    text-align: left;
    width: 100%;
    padding: 14px 15px;
    border: 0;
    border-left: 4px solid transparent;
    border-radius: 8px;
    color: var(--uprrp-text);
    background: transparent;
    font-size: .94rem;
    white-space: normal;
    transition: background-color .15s ease;
}
.admin-main-page .admin-sidebar .tab:hover {
    background: var(--uprrp-red-soft-2);
}
.admin-main-page .admin-sidebar .tab.active {
    background: var(--uprrp-red-soft);
    color: var(--uprrp-red-medium);
    border-left-color: var(--uprrp-red-primary);
}
.admin-main-page .admin-shell {
    margin: 0 0 0 var(--main-sidebar-width);
    padding: 24px clamp(16px, 2vw, 32px);
    max-width: none;
    min-width: 0;
    min-height: calc(100vh - var(--main-header-height) - var(--main-footer-height));
}
.admin-main-page .admin-footer {
    position: fixed;
    z-index: 1060;
    bottom: 0; left: 0; right: 0;
    height: var(--main-footer-height);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 8px 15px;
    background: var(--uprrp-gradient-header);
    color: var(--uprrp-white);
    box-shadow: 0 -3px 12px rgba(38,28,28,.14);
    font-size: .86rem;
    text-align: center;
}
.admin-main-page .admin-footer img {
    display: block;
    width: 115px;
    max-height: 43px;
    object-fit: contain;
    background: #fff;
    border-radius: 5px;
    padding: 3px 5px;
}
/* Override de la navegación horizontal preexistente en breakpoints. */
@media (max-width: 900px) {
    body.admin-main-page { --main-sidebar-width: 194px; }
    .admin-main-page .admin-sidebar { overflow-x: hidden; }
}
@media (max-width: 650px) {
    body.admin-main-page {
        --main-header-height: 94px;
        --main-sidebar-width: 150px;
        --main-footer-height: 78px;
    }
    .admin-main-page .topbar { padding: 10px 14px; align-items: center; gap: 10px; }
    .admin-main-page .topbar h1 { font-size: 1rem; }
    .admin-main-page .topbar .eyebrow { font-size: .62rem; }
    .admin-main-page .topbar .user-box { font-size: .7rem; max-width: 40%; overflow-wrap: anywhere; }
    .admin-main-page .admin-sidebar { padding: 14px 7px; }
    .admin-main-page .admin-sidebar .tab { padding: 12px 8px; font-size: .82rem; }
    .admin-main-page .admin-shell { padding: 14px 10px; }
    .admin-main-page .admin-footer { gap: 8px; flex-wrap: wrap; align-content: center; padding: 5px 8px; font-size: .71rem; }
    .admin-main-page .admin-footer img { width: 85px; max-height: 30px; }
}


/* ==== Refinamientos visuales: insignia lateral, textura y tarjetas ==== */
.admin-main-page .admin-sidebar-art {
    flex: 0 0 auto;
    margin-top: auto;
    padding: 25px 3px 2px;
    width: 100%;
    text-align: center;
}
.admin-main-page .admin-sidebar-art img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 210px;
    margin: 0 auto;
    object-fit: contain;
}
/* Misma textura que el login, atenuada con una película gris clara. */
.admin-main-page .admin-shell {
    background-color: var(--uprrp-page-bg, #F5F6F8);
    background-image:
        linear-gradient(rgba(245, 246, 248, .68), rgba(245, 246, 248, .68)),
        url('../images/login_sand_grain.png');
    background-repeat: no-repeat, repeat;
    background-size: 100% 100%, 256px 256px;
}
/* Elevación delicada para las distintas familias de tarjetas. */
.admin-main-page :is(.table-card, .placeholder-card, .sync-card, .email-control-card) {
    box-shadow: 0 7px 22px rgba(38, 28, 28, .11), 0 2px 6px rgba(38, 28, 28, .045);
    border-color: var(--uprrp-border, #D9DDE1);
}
@media (max-width: 900px) {
    .admin-main-page .admin-sidebar-art img { max-width: 170px; }
}
@media (max-width: 650px) {
    .admin-main-page .admin-sidebar-art { padding-top: 16px; }
    .admin-main-page .admin-sidebar-art img { max-width: 125px; }
}

/* Modal de eventos: centrado en el viewport y por encima del header/footer fijos. */
.admin-main-page #eventModal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    padding: 18px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.admin-main-page #eventModal.open {
    display: flex;
}
.admin-main-page #eventModal .modal-backdrop {
    position: absolute;
    inset: 0;
}
.admin-main-page #eventModal .modal-dialog {
    position: relative;
    z-index: 1;
    width: min(840px, 100%);
    max-height: calc(100vh - 36px);
    max-height: calc(100dvh - 36px);
    overflow-y: auto;
    margin: 0;
    overscroll-behavior: contain;
}
@media (max-width: 650px) {
    .admin-main-page #eventModal { padding: 10px; }
    .admin-main-page #eventModal .modal-dialog {
        max-height: calc(100vh - 20px);
        max-height: calc(100dvh - 20px);
    }
}

/* Administración individual de participantes confirmados. */
.participant-manage-card { margin: 16px 0; }
.participant-manage-fields { display: grid; grid-template-columns: minmax(170px, 1fr) minmax(220px, 1.5fr) auto; gap: 12px; align-items: end; }
.participant-manage-fields .form-field { margin-bottom: 0; }
.participant-manage-fields > .btn { min-height: 42px; }
#confirmedParticipantsTable td .btn { margin: 2px; }
@media (max-width: 850px) { .participant-manage-fields { grid-template-columns: 1fr; } }

/* Resumen de operación de estaciones */
.scanner-stats {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px;}
.scanner-stats>div {border:1px solid var(--uprrp-border,#ddd);background:white;border-radius:12px;padding:14px;box-shadow:0 3px 12px rgba(38,28,28,.07);display:flex;flex-direction:column;gap:5px;}
.scanner-stats strong {font-size:1.7rem;color:var(--uprrp-red-primary,#E70000);}
.scanner-stats span,.scanner-stats-note,.scanner-last-seen {color:#62676D;font-size:.82rem;}
.scanner-stats-note {margin:10px 0;}
.scanner-toolbar {display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0;}
.scanner-toolbar select {width:auto;min-width:210px;}
.scanner-last-seen {margin-top:6px;}
.scanner-assignment-inline{display:flex;align-items:center;gap:8px;}
.scanner-assignment-inline select{min-width:0;width:240px;max-width:100%;flex:0 1 240px;}
.scanner-assignment-inline .btn{flex:0 0 auto;}

@media(max-width:850px){.scanner-stats{grid-template-columns:repeat(2,minmax(0,1fr));}.scanner-assignment-inline{flex-direction:column;align-items:stretch;}.scanner-assignment-inline select{width:100%;flex-basis:auto;}}


/* Informes y estadísticas (estilos específicos sin alterar las demás vistas). */
.ra-report-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:15px}
.ra-report-toolbar label{margin:0}
.ra-report-toolbar select{width:min(450px,100%)}
.ra-report-status{font-weight:700;color:var(--uprrp-red-dark,#8F0000);font-size:.85rem}
.ra-report-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:17px}
.ra-report-metric{background:#fff;border:1px solid #ddd;border-left:4px solid var(--uprrp-red,#E70000);border-radius:12px;padding:17px;box-shadow:0 4px 14px rgba(38,28,28,.08)}
.ra-report-metric span{display:block;color:#62676d;font-size:.82rem}
.ra-report-metric strong{display:block;font-size:1.7rem;margin-top:6px}
.ra-report-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.ra-report-tab{background:white;border:1px solid #d9dde1;border-radius:9px;padding:10px 14px;cursor:pointer;font-weight:700}
.ra-report-tab.active{background:var(--uprrp-red,#E70000);color:#fff;border-color:var(--uprrp-red,#E70000)}
.ra-report-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:18px}
.ra-report-actions label{margin:0}
.ra-report-actions input{width:min(320px,100%)}
.ra-report-chart{margin-bottom:20px;padding:12px;background:#fafafa;border-radius:10px}
.ra-report-bar-row{display:grid;grid-template-columns:55px 1fr 35px;gap:9px;align-items:center;margin:6px 0;font-size:.82rem}
.ra-report-bar-track{background:#ececec;border-radius:8px;overflow:hidden;height:13px}
.ra-report-bar-fill{background:var(--uprrp-red,#E70000);height:100%}
.ra-report-footnote{color:#62676d;font-size:.83rem;margin:10px 0}
@media(max-width:900px){.ra-report-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.ra-report-cards{grid-template-columns:1fr}}

/* Subsecciones independientes de Administración */
.admin-inner-tabs { display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px;padding-bottom:12px;border-bottom:1px solid var(--uprrp-border,#ddd); }
.admin-inner-tab { border:1px solid var(--uprrp-border,#ddd);border-radius:9px;background:#fff;color:var(--uprrp-text,#261c1c);padding:11px 15px;font-weight:700;cursor:pointer; }
.admin-inner-tab.active { border-color:var(--uprrp-red-primary,#e70000);background:var(--uprrp-red-soft,#fde8e8);color:var(--uprrp-red-dark,#8f0000); }
.admin-inner-pane[hidden] {display:none!important;}
.sync-card-header-split{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;}
.admin-user-modal-dialog{width:min(1180px, calc(100% - 28px));max-height:calc(100vh - 84px);display:flex;flex-direction:column;}
.admin-users-modal-form{padding:8px 22px 18px;overflow-y:auto;max-height:calc(100vh - 170px);}
.admin-users-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0;}
.admin-users-check {display:flex;gap:8px;align-items:center;margin:10px 0;}
.admin-users-check input,.admin-users-permissions input {width:auto;}
.admin-users-permissions {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 14px;align-items:start;}
.admin-users-permission-group{border:1px solid var(--uprrp-border,#d9dde1);border-radius:12px;background:#fff;padding:10px;box-shadow:var(--uprrp-shadow-sm,0 2px 8px rgba(38,28,28,.08));}
.admin-users-permission-item{display:flex;gap:8px;align-items:flex-start;font-size:.88rem;}
.admin-users-permission-item-parent{font-weight:700;color:var(--uprrp-text,#261c1c);}
.admin-users-permission-children{display:grid;gap:6px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--uprrp-border,#d9dde1);}
.admin-users-permission-item-child{padding-left:8px;}
#adminUsersFeedback,#adminUsersModalFeedback {margin:10px 0;}
@media(max-width:1100px){.admin-users-permissions{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:760px){.admin-users-grid{grid-template-columns:1fr;}.admin-users-permissions{grid-template-columns:1fr;}.sync-card-header-split{flex-direction:column;align-items:flex-start;}}

/* Overlay de usuarios: centrar en la ventana completa, sobre header y footer fijos. */
.admin-main-page #adminUserModal {
    position: fixed;
    inset: 0;
    z-index: 1250;
    padding: 20px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.admin-main-page #adminUserModal.open { display: flex; }
.admin-main-page #adminUserModal .modal-backdrop { position: absolute; inset: 0; }
.admin-main-page #adminUserModal .admin-user-modal-dialog {
    position: relative;
    z-index: 1;
    width: min(1180px, 100%);
    max-height: calc(100dvh - 40px);
    margin: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.admin-main-page #adminUserModal .modal-header { flex: 0 0 auto; }
.admin-main-page #adminUserModal .admin-users-modal-form {
    min-height: 0;
    flex: 1 1 auto;
    overflow-y: auto;
    max-height: none;
    overscroll-behavior: contain;
}
@media (max-width: 650px) {
    .admin-main-page #adminUserModal { padding: 10px; }
    .admin-main-page #adminUserModal .admin-user-modal-dialog { max-height: calc(100dvh - 20px); }
}

/* Overlay independiente de estaciones, centrado respecto al viewport. */
.admin-main-page #scannerAdminModal {
    position: fixed;
    inset: 0;
    z-index: 25000;
    padding: 18px;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}
.admin-main-page #scannerAdminModal.open { display: flex; }
.admin-main-page #scannerAdminModal .modal-backdrop { position: absolute; inset: 0; }
.admin-main-page #scannerAdminModal .scanner-modal-dialog {
    position: relative;
    z-index: 1;
    margin: 0;
    width: min(780px, 100%);
    max-height: calc(100dvh - 36px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.admin-main-page #scannerAdminModal .modal-header { flex: 0 0 auto; }
.admin-main-page #scannerAdminModal .scanner-admin-modal-form {
    min-height: 0;
    overflow-y: auto;
    max-height: none;
    overscroll-behavior: contain;
}
@media (max-width: 700px) {
    .admin-main-page #scannerAdminModal { padding: 10px; }
    .admin-main-page #scannerAdminModal .scanner-modal-dialog { max-height: calc(100dvh - 20px); }
}

/* Configuración del sistema: tabs internos y valores operativos no sensibles */
.system-settings-tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--uprrp-border,#ddd);padding-bottom:12px;margin-bottom:18px}
.system-settings-tab{border:1px solid var(--uprrp-border,#ddd);border-radius:9px;padding:11px 15px;background:#fff;color:var(--uprrp-text,#261c1c);font-weight:700;cursor:pointer}
.system-settings-tab.active{background:var(--uprrp-red-soft,#fde8e8);border-color:var(--uprrp-red-primary,#e70000);color:var(--uprrp-red-dark,#8f0000)}
.system-settings-pane[hidden]{display:none!important}
.system-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}
.system-settings-grid>div{display:flex;flex-direction:column;gap:6px;background:var(--uprrp-surface-muted,#f0f1f3);border:1px solid var(--uprrp-border,#ddd);border-radius:10px;padding:13px}
.system-settings-grid span{font-size:.83rem;color:var(--uprrp-text-muted,#62676d)}
.system-settings-grid strong{font-size:.96rem;overflow-wrap:anywhere}
.system-settings-feedback{min-height:1.5rem;margin-top:12px;font-weight:600}
@media(max-width:700px){.system-settings-grid{grid-template-columns:1fr}}
