/* ======== PASES ZPC · Admin ======== */
.pz-admin-wrap { max-width:1400px; margin:20px auto; padding:0 15px; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; }
.pz-admin-header { background:#1a365d; color:#fff; padding:20px 25px; border-radius:10px 10px 0 0; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; }
.pz-admin-header h1 { margin:0; font-size:22px; color:#fff; }
.pz-admin-sub { margin:5px 0 0; font-size:12px; opacity:.85; }
.pz-admin-nav { display:flex; gap:6px; background:#2d3748; padding:10px 15px; flex-wrap:wrap; }
.pz-nav-btn { padding:8px 16px; background:#4a5568; color:#fff; border:none; border-radius:4px; cursor:pointer; font-size:13px; font-weight:600; transition:all .2s; text-decoration:none; }
.pz-nav-btn:hover { background:#718096; color:#fff; }
.pz-nav-btn.active { background:#2b6cb0; }

.pz-admin-section { display:none; margin-top:20px; }
.pz-admin-section.active { display:block; }

.pz-card { background:#fff; border-radius:10px; padding:25px; margin-bottom:25px; box-shadow:0 2px 8px rgba(0,0,0,.08); }
.pz-card h2 { color:#1a365d; margin:0 0 15px; border-bottom:2px solid #e2e8f0; padding-bottom:10px; font-size:18px; }

/* ==== Grid de estadísticas: 4 columnas fijas, alineado a la izquierda ==== */
.pz-stats-grid {
    display: grid;
    grid-template-columns: repeat(8, 1fr);   /* 8 columnas, cada una % */
    gap: 15px;
    margin-bottom: 20px;
    justify-content: start;                   /* alinear a la izquierda */
}
.pz-stat-card { background:#f7fafc; padding:14px; border-radius:8px; text-align:center; }
.pz-stat-num { font-size:20px; font-weight:700; color:#2b6cb0; }
.pz-stat-lbl { font-size:12px; color:#4a5568; }

.pz-bar-container { display:flex; flex-direction:column; gap:8px; }
.pz-bar-item { display:flex; align-items:center; gap:10px; }
.pz-bar-label { width:180px; font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pz-bar-bg { flex:1; height:20px; background:#edf2f7; border-radius:10px; overflow:hidden; }
.pz-bar-fill { height:100%; background:linear-gradient(90deg,#2b6cb0,#4299e1); border-radius:10px; }
.pz-bar-count { font-size:13px; font-weight:700; min-width:40px; text-align:right; }

.pz-form-group { display:flex; flex-direction:column; }
.pz-form-group label { font-size:12px; font-weight:700; color:#4a5568; margin-bottom:4px; }
.pz-form-group input, .pz-form-group select, .pz-form-group textarea {
    padding:8px 10px; border:1px solid #e2e8f0; border-radius:5px; font-size:13px; background:#fff; box-sizing:border-box; width:100%;
}
.pz-form-row { display:grid; grid-template-columns:1fr 1fr; gap:15px; }

.pz-table-responsive { overflow-x:auto; }
.pz-table { width:100%; border-collapse:collapse; font-size:13px; }
/* ============================================================
   TABLAS MÁS COMPACTAS (padding vertical reducido a la mitad)
   ============================================================ */
.pz-table th {
    background: #f7fafc;
    padding: 1px 10px;             /* antes: 10px 10px */
    text-align: left;
    border-bottom: 2px solid #e2e8f0;
    font-weight: 700;
    color: #2d3748;
    font-size: 13px;                /* opcional: letra un poco más pequeña */
    line-height: 1.3;
}

.pz-table td {
    padding: 1px 10px;             /* antes: 10px 10px */
    border-bottom: 1px solid #e2e8f0;
    vertical-align: middle;
    font-size: 13px;                /* opcional */
    line-height: 1.3;
}
.pz-fila-hoy { background:#ffcc00 !important; }
.pz-empty { text-align:center; padding:25px; color:#718096; }

.pz-badge { padding:4px 10px; border-radius:20px; font-size:11px; font-weight:700; }
.pz-badge-ok   { background:#c6f6d5; color:#22543d; }
.pz-badge-warn { background:#fefcbf; color:#975a16; }
.pz-badge-err  { background:#fed7d7; color:#9b2c2c; }

.pz-btn { display:inline-block; padding:8px 16px; border:none; border-radius:5px; cursor:pointer; font-size:13px; text-decoration:none; font-weight:600; transition:all .2s; text-align:center; }
.pz-btn-primary { background:#2b6cb0; color:#fff; } .pz-btn-primary:hover { background:#2c5282; color:#fff; }
.pz-btn-success { background:#48bb78; color:#fff; } .pz-btn-success:hover { background:#38a169; color:#fff; }
.pz-btn-danger  { background:#e53e3e; color:#fff; } .pz-btn-danger:hover  { background:#c53030; color:#fff; }
.pz-btn-warning { background:#ed8936; color:#fff; } .pz-btn-warning:hover { background:#dd6b20; color:#fff; }
.pz-btn-cancel  { background:#a0aec0; color:#fff; }
.pz-btn-sm { padding:3px 8px; font-size:11px; }

/* ============================================
   CONTENEDOR DE BOTONES DE ACCIÓN EN TABLAS
   ============================================ */
.pz-actions {
    display: flex;
    gap: 6px;
    flex-wrap: nowrap;
    align-items: stretch;
}
.pz-actions > form {
    display: inline-flex;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    align-items: stretch;
}
.pz-actions .pz-btn,
.pz-actions > form .pz-btn {
    min-width: 90px;
    flex: 0 0 auto;
    text-align: center;
    white-space: nowrap;
    box-sizing: border-box;
    padding: 2px 10px;
    font-size: 11px;
    line-height: 1.2;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* ============================================================
   FILTROS · BLINDADOS
   Alta especificidad + !important para vencer al tema
   ============================================================ */
.pz-admin-wrap .pz-filtros,
.pz-filtros.pz-filtros {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    align-items: flex-end !important;
    margin-bottom: 15px !important;
}

.pz-admin-wrap .pz-filtros .pz-form-group,
.pz-filtros .pz-form-group {
    display: flex !important;
    flex-direction: column !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    width: auto !important;
}

.pz-admin-wrap .pz-filtros .pz-form-group > label,
.pz-filtros .pz-form-group > label {
    display: block !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    color: #4a5568 !important;
    margin: 0 0 4px 0 !important;
    padding: 0 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    text-transform: none !important;
}

.pz-admin-wrap .pz-filtros .pz-form-group input,
.pz-admin-wrap .pz-filtros .pz-form-group select,
.pz-admin-wrap .pz-filtros .pz-form-group textarea,
.pz-filtros .pz-form-group input,
.pz-filtros .pz-form-group select {
    display: block !important;
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    padding: 0 12px !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 6px !important;
    font-size: 13px !important;
    background-color: #fff !important;
    color: #2d3748 !important;
    box-sizing: border-box !important;
    line-height: 1 !important;
    width: 100% !important;
    margin: 0 !important;
    box-shadow: none !important;
    float: none !important;
    vertical-align: middle !important;
    appearance: auto;
}

.pz-admin-wrap .pz-filtros .pz-form-group input[type="date"],
.pz-filtros .pz-form-group input[type="date"] {
    -webkit-appearance: none;
    appearance: none;
    line-height: 1 !important;
    padding: 0 12px !important;
}

.pz-admin-wrap .pz-filtros .pz-form-group input:focus,
.pz-admin-wrap .pz-filtros .pz-form-group select:focus,
.pz-filtros .pz-form-group input:focus,
.pz-filtros .pz-form-group select:focus {
    outline: none !important;
    border-color: #2b6cb0 !important;
    box-shadow: 0 0 0 3px rgba(43,108,176,.15) !important;
}

/* --- Anchos fijos por campo --- */
.pz-admin-wrap .pz-filtros .pz-form-group.pz-filtro-zona,
.pz-admin-wrap .pz-filtros .pz-form-group.pz-filtro-fecha,
.pz-filtros .pz-form-group.pz-filtro-zona,
.pz-filtros .pz-form-group.pz-filtro-fecha {
    flex: 0 0 180px !important;
    min-width: 180px !important;
    max-width: 180px !important;
    width: 180px !important;
}

.pz-admin-wrap .pz-filtros .pz-form-group.pz-filtro-usuario,
.pz-filtros .pz-form-group.pz-filtro-usuario {
    flex: 1 1 240px !important;
    min-width: 240px !important;
    width: auto !important;
    max-width: none !important;
}

/* --- Botones del filtro --- */
.pz-admin-wrap .pz-filtros .pz-btn,
.pz-filtros .pz-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 18px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    float: none !important;
}

.pz-msg { padding:12px 15px; border-radius:6px; margin:15px 0; font-size:14px; }
.pz-msg-success { background:#c6f6d5; color:#22543d; border:1px solid #9ae6b4; }
.pz-msg-error   { background:#fed7d7; color:#9b2c2c; border:1px solid #feb2b2; }

.pz-modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:99999; justify-content:center; align-items:center; }
.pz-modal-overlay.active { display:flex; }
.pz-modal-box { background:#fff; padding:30px; border-radius:10px; max-width:620px; width:92%; max-height:90vh; overflow-y:auto; }
.pz-modal-wide { max-width:700px; }
.pz-modal-box h3 { margin:0 0 15px; color:#1a365d; }
.pz-modal-buttons { display:flex; gap:10px; justify-content:flex-end; margin-top:20px; }

.pz-input-group { display:flex; align-items:center; border:1px solid #e2e8f0; border-radius:5px; background:#fff; }
.pz-input-group input { border:none !important; flex:1; padding:8px 10px; }
.pz-toggle-pass { background:none; border:none; cursor:pointer; font-size:1rem; padding:0 8px; color:#4a5568; }

.pz-admin-notice { padding:20px; background:#fff; border-left:4px solid #2b6cb0; margin:20px 0; border-radius:6px; }
.pz-admin-denied { border-left-color:#e53e3e; background:#fff5f5; }

@media (max-width:768px) {
    .pz-form-row { grid-template-columns:1fr; }
    .pz-bar-label { width:100px; }
    .pz-admin-header { flex-direction:column; text-align:center; }
    .pz-actions { flex-wrap: wrap; }
    .pz-actions .pz-btn { min-width: 80px; }
    .pz-admin-wrap .pz-filtros .pz-form-group.pz-filtro-zona,
    .pz-admin-wrap .pz-filtros .pz-form-group.pz-filtro-fecha {
        flex: 1 1 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    .pz-admin-wrap .pz-filtros .pz-form-group.pz-filtro-usuario {
        flex: 1 1 100% !important;
        min-width: 0 !important;
        width: 100% !important;
    }
}
/* ============================================================
   PLACEHOLDER INVISIBLE
   Ocupa el mismo espacio que un botón de acción para que las
   filas mantengan la misma altura aunque no haya botón.
   ============================================================ */
.pz-btn-placeholder {
    display: inline-block;
    height: 32px;                    /* mismo alto que .pz-btn-sm */
    min-width: 70px;                 /* mismo ancho mínimo que los botones de acción */
    visibility: hidden;              /* ocupa espacio pero no se ve */
    vertical-align: middle;
    pointer-events: none;
    user-select: none;
}