/* =====================================================
   Bases de Datos — Frontend CSS
   Estilo: corporativo limpio, inspirado en la imagen
   ===================================================== */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600;700&family=DM+Mono:wght@400;500&display=swap');

:root {
    --bdd-primary: #6C5CE7;
    --bdd-primary-light: #a29bfe;
    --bdd-primary-dark: #4834d4;
    --bdd-accent: #00cec9;
    --bdd-success: #00b894;
    --bdd-danger: #d63031;
    --bdd-warning: #fdcb6e;
    --bdd-info: #74b9ff;

    --bdd-bg: #f5f6fa;
    --bdd-surface: #ffffff;
    --bdd-border: #e8eaf0;
    --bdd-border-hover: #c8cce0;

    --bdd-text-primary: #2d3436;
    --bdd-text-secondary: #636e72;
    --bdd-text-muted: #b2bec3;
    --bdd-text-white: #ffffff;

    --bdd-shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
    --bdd-shadow: 0 4px 16px rgba(108,92,231,0.08), 0 2px 6px rgba(0,0,0,0.04);
    --bdd-shadow-lg: 0 10px 40px rgba(108,92,231,0.12), 0 4px 16px rgba(0,0,0,0.06);

    --bdd-radius: 12px;
    --bdd-radius-sm: 8px;
    --bdd-radius-xs: 5px;
    --bdd-font: 'DM Sans', -apple-system, sans-serif;
    --bdd-mono: 'DM Mono', monospace;
}

.bdd-standalone-page {
    background: var(--bdd-bg) !important;
    font-family: var(--bdd-font) !important;
    margin: 0;
    padding: 0;
}

.bdd-page-wrapper {
    max-width: 1400px;
    margin: 0 auto;
    padding: 32px 24px;
}

/* ── Password Gate ────────────────────────────────── */
.bdd-password-gate {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60vh;
    padding: 40px 16px;
}

.bdd-password-card {
    background: var(--bdd-surface);
    border-radius: var(--bdd-radius);
    box-shadow: var(--bdd-shadow-lg);
    padding: 52px 48px;
    max-width: 440px;
    width: 100%;
    text-align: center;
    border: 1px solid var(--bdd-border);
}

.bdd-lock-icon {
    width: 64px;
    height: 64px;
    background: linear-gradient(135deg, var(--bdd-primary-light) 0%, var(--bdd-primary) 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 24px;
    color: white;
}

.bdd-lock-icon svg { width: 28px; height: 28px; }

.bdd-section-title {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--bdd-text-primary);
    margin: 0 0 8px;
    font-family: var(--bdd-font);
}

.bdd-section-desc {
    color: var(--bdd-text-secondary);
    margin: 0 0 28px;
    font-size: 0.9rem;
    line-height: 1.5;
}

.bdd-password-form { width: 100%; }

.bdd-input-group {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
}

.bdd-password-input {
    flex: 1;
    padding: 12px 16px;
    border: 2px solid var(--bdd-border);
    border-radius: var(--bdd-radius-sm);
    font-family: var(--bdd-font);
    font-size: 0.95rem;
    transition: border-color 0.2s, box-shadow 0.2s;
    outline: none;
    background: var(--bdd-bg);
}

.bdd-password-input:focus {
    border-color: var(--bdd-primary);
    box-shadow: 0 0 0 3px rgba(108,92,231,0.1);
    background: white;
}

.bdd-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 11px 20px;
    border: none;
    border-radius: var(--bdd-radius-sm);
    cursor: pointer;
    font-family: var(--bdd-font);
    font-size: 0.9rem;
    font-weight: 600;
    transition: all 0.2s;
    text-decoration: none;
    white-space: nowrap;
}

.bdd-btn-primary {
    background: var(--bdd-primary);
    color: white;
}
.bdd-btn-primary:hover { background: var(--bdd-primary-dark); transform: translateY(-1px); box-shadow: var(--bdd-shadow); }

.bdd-btn svg { width: 16px; height: 16px; }

.bdd-password-error {
    background: #fff5f5;
    color: var(--bdd-danger);
    border: 1px solid #feb2b2;
    border-radius: var(--bdd-radius-xs);
    padding: 10px 14px;
    font-size: 0.85rem;
    margin-top: 8px;
    text-align: left;
}

/* ── Table Wrapper ────────────────────────────────── */
.bdd-table-wrapper {
    background: var(--bdd-surface);
    border-radius: var(--bdd-radius);
    box-shadow: var(--bdd-shadow);
    border: 1px solid var(--bdd-border);
    overflow: hidden;
    font-family: var(--bdd-font);
}

.bdd-table-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: 28px 28px 20px;
    border-bottom: 1px solid var(--bdd-border);
    flex-wrap: wrap;
}

.bdd-main-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--bdd-text-primary);
    margin: 0 0 4px;
    font-family: var(--bdd-font);
}

.bdd-subtitle {
    color: var(--bdd-text-secondary);
    margin: 0;
    font-size: 0.875rem;
}

.bdd-table-controls {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.bdd-search-wrap {
    display: flex;
    align-items: center;
}

.bdd-search-input {
    padding: 13px 22px;
    border: 2px solid var(--bdd-border);
    border-radius: 50px;
    font-family: var(--bdd-font);
    font-size: 0.9rem;
    width: 300px;
    transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
    outline: none;
    background: var(--bdd-bg);
}

.bdd-search-input:focus {
    border-color: var(--bdd-primary);
    box-shadow: 0 0 0 3px rgba(108,92,231,0.1);
    background: white;
}

.bdd-table-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
}

.bdd-total-count {
    font-size: 0.875rem;
    color: var(--bdd-text-secondary);
}

.bdd-count-num {
    font-weight: 700;
    color: var(--bdd-primary);
    font-size: 1rem;
}

.bdd-last-updated {
    font-size: 0.75rem;
    color: var(--bdd-text-muted);
}

/* ── Table ─────────────────────────────────────────── */
.bdd-table-container {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.bdd-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.bdd-th {
    padding: 13px 16px;
    text-align: left;
    font-weight: 600;
    color: var(--bdd-text-secondary);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: #f8f9fd;
    border-bottom: 2px solid var(--bdd-border);
    white-space: nowrap;
    user-select: none;
}

.bdd-th.bdd-sortable {
    cursor: pointer;
    transition: color 0.15s;
}

.bdd-th.bdd-sortable:hover { color: var(--bdd-primary); }
.bdd-th.bdd-sort-active { color: var(--bdd-primary); }

.bdd-sort-icon {
    width: 12px;
    height: 12px;
    margin-left: 4px;
    opacity: 0.4;
    display: inline-block;
    vertical-align: middle;
    transition: opacity 0.15s;
}

.bdd-th.bdd-sort-active .bdd-sort-icon { opacity: 1; }

.bdd-row {
    border-bottom: 1px solid var(--bdd-border);
    transition: background 0.12s;
}

.bdd-row:hover { background: #fafbff; }
.bdd-row:last-child { border-bottom: none; }

.bdd-td {
    padding: 14px 16px;
    color: var(--bdd-text-primary);
    vertical-align: middle;
    max-width: 260px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bdd-td:first-child { font-weight: 600; }

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

/* Tipos de celda */
.bdd-email-link {
    color: var(--bdd-primary);
    text-decoration: none;
    font-family: var(--bdd-mono);
    font-size: 0.82rem;
}
.bdd-email-link:hover { text-decoration: underline; }

.bdd-social-handle {
    color: var(--bdd-primary);
    font-weight: 500;
}

/* Badges */
.bdd-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 50px;
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}

.bdd-badge-vip       { background: #fff8e1; color: #f57c00; }
.bdd-badge-familiar  { background: #e8f5e9; color: #2e7d32; }
.bdd-badge-terror    { background: #fce4ec; color: #c62828; }
.bdd-badge-acción    { background: #e3f2fd; color: #1565c0; }
.bdd-badge-gamer     { background: #f3e5f5; color: #6a1b9a; }
.bdd-badge-anime     { background: #e0f2f1; color: #00695c; }

/* Loading */
.bdd-loading-row td { text-align: center; padding: 48px; }
.bdd-spinner-wrap { display: flex; align-items: center; justify-content: center; gap: 12px; color: var(--bdd-text-secondary); }
.bdd-spinner {
    width: 24px; height: 24px;
    border: 3px solid var(--bdd-border);
    border-top-color: var(--bdd-primary);
    border-radius: 50%;
    animation: bdd-spin 0.7s linear infinite;
}
@keyframes bdd-spin { to { transform: rotate(360deg); } }

.bdd-empty-cell { text-align: center; padding: 48px; color: var(--bdd-text-muted); font-size: 0.9rem; }

/* Footer */
.bdd-table-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 28px;
    border-top: 1px solid var(--bdd-border);
    background: #f8f9fd;
    flex-wrap: wrap;
    gap: 12px;
}

.bdd-per-page-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
    color: var(--bdd-text-secondary);
}

.bdd-per-page {
    padding: 5px 10px;
    border: 1px solid var(--bdd-border);
    border-radius: var(--bdd-radius-xs);
    font-family: var(--bdd-font);
    font-size: 0.85rem;
    background: white;
    cursor: pointer;
}

/* Paginación */
.bdd-pagination {
    display: flex;
    align-items: center;
    gap: 4px;
}

.bdd-page-btn {
    min-width: 34px;
    height: 34px;
    padding: 0 8px;
    border: 1px solid var(--bdd-border);
    border-radius: var(--bdd-radius-xs);
    background: white;
    cursor: pointer;
    font-family: var(--bdd-font);
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--bdd-text-secondary);
    transition: all 0.15s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.bdd-page-btn:hover { background: #f0efff; border-color: var(--bdd-primary-light); color: var(--bdd-primary); }
.bdd-page-btn.bdd-active { background: var(--bdd-primary); color: white; border-color: var(--bdd-primary); }
.bdd-page-btn:disabled { opacity: 0.4; cursor: not-allowed; }

/* Responsive */
@media (max-width: 768px) {
    .bdd-page-wrapper { padding: 16px 12px; }
    .bdd-password-card { padding: 32px 24px; }
    .bdd-table-header { padding: 20px 16px 16px; flex-direction: column; }
    .bdd-table-controls { width: 100%; }
    .bdd-search-input { width: 100%; }
    .bdd-search-input:focus { width: 100%; }
    .bdd-search-wrap { flex: 1; }
    .bdd-table-meta { align-items: flex-start; }
    .bdd-table-footer { padding: 12px 16px; }
    .bdd-td { max-width: 160px; }
    .bdd-main-title { font-size: 1.25rem; }
    .bdd-input-group { flex-direction: column; }
}
