/* ==========================================================================
   PESCA.ID — Sistema Digital de Medição de Peixes (Design System Oficial Web)
   Substitui variáveis legadas (#FF5500, #121212) e garante layout 100% fluido
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@700;800;900&family=Inter:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@500;600;700&display=swap');

:root {
    /* 1. Fundos & Superfícies (Deep Space & Azul Meia-Noite da Pílula Oficial) */
    --pesca-bg-deep: #050914;           /* Fundo principal escuro da marca */
    --pesca-bg-navy: #070D1D;           /* Sidebar e Topbar sólidas */
    --pesca-bg-card: #0A1428;           /* Azul Meia-Noite (mesmo tom da pílula oficial) */
    --pesca-bg-elevated: #0F1E3A;       /* Linhas de ranking, hover e cards elevados */
    --pesca-border-subtle: #182E5C;     /* Azul Tecnológico (borda oficial da pílula) */
    --pesca-border-bright: #00F0FF;     /* Borda ativa / foco em Ciano Biométrico */

    /* 2. Cores Principais da Marca (Extraídas do SVG Oficial ID NOVA) */
    --pesca-cyan: #00F0FF;              /* Alvo Biométrico '.', Alvo 'i' e Ponteiras do 'd' */
    --pesca-cyan-dim: rgba(0, 240, 255, 0.14);
    --pesca-gold-light: #FFE033;        /* Topo do gradiente da trena 'i' */
    --pesca-gold-main: #FFB800;         /* Centro do gradiente da trena 'i' e Ponto LED */
    --pesca-gold-deep: #FF8C00;         /* Base do gradiente da trena 'i' */
    --pesca-gold-gradient: linear-gradient(180deg, #FFE033 0%, #FFB800 50%, #FF8C00 100%);

    /* 3. Cores Semânticas de Arbitragem & Torneio */
    --pesca-emerald: #00FF9D;           /* Captura Homologada / Validação Oficial */
    --pesca-warning: #FFB800;           /* Alerta / Em Análise */
    --pesca-danger: #EF4444;            /* Rejeitado / Fora da Régua */

    /* 4. Textos de Alta Legibilidade Solar (WCAG AAA) */
    --pesca-text-primary: #FFFFFF;      /* Branco Puro ('pesca' e 'd') */
    --pesca-text-secondary: #B4C6E7;    /* Azul-gelo claro para subtítulos e rótulos */
    --pesca-text-muted: #64748B;        /* Metadados secundários */

    /* 5. Aliases de Compatibilidade Retroativa com templates atuais (--bf-*) */
    --bf-bg-carbon: var(--pesca-bg-deep);
    --bf-surface-card: var(--pesca-bg-card);
    --bf-surface-elevated: var(--pesca-bg-elevated);
    --bf-border-subtle: var(--pesca-border-subtle);
    --bf-border-active: var(--pesca-border-bright);
    --bf-text-primary: var(--pesca-text-primary);
    --bf-text-secondary: var(--pesca-text-secondary);
    --bf-text-muted: var(--pesca-text-muted);
    --bf-sport-orange: var(--pesca-gold-main);
    --bf-sport-orange-hover: var(--pesca-gold-deep);
    --bf-ruler-cyan: var(--pesca-cyan);
    --bf-success-green: var(--pesca-emerald);
    --bf-warning-amber: var(--pesca-warning);
    --bf-danger-red: var(--pesca-danger);

    /* 6. Tipografia Oficial */
    --pesca-font-display: 'Montserrat', 'Inter', -apple-system, sans-serif;
    --pesca-font-sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --pesca-font-mono: 'JetBrains Mono', monospace;
}

html, body {
    width: 100% !important;
    min-height: 100vh;
    background-color: var(--pesca-bg-deep) !important;
    color: var(--pesca-text-primary) !important;
    font-family: var(--pesca-font-sans);
    -webkit-font-smoothing: antialiased;
    margin: 0;
    padding: 0;
}

body:not(.d-flex) {
    display: block !important;
}

.admin-layout {
    display: flex !important;
    flex-direction: row !important;
    width: 100% !important;
    min-width: 100% !important;
    min-height: 100vh !important;
}

.admin-main {
    flex: 1 1 auto !important;
    width: calc(100% - 268px) !important;
    max-width: none !important;
    min-width: 0 !important;
}

.admin-content {
    width: 100% !important;
    max-width: none !important;
}

.bf-card, .glass-card {
    background-color: var(--pesca-bg-card);
    border: 1px solid var(--pesca-border-subtle);
    border-radius: 16px;
    padding: 24px;
    box-shadow: 0 10px 28px rgba(2, 4, 9, 0.6);
}

.table-glass, .v2-table {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

.table-glass th, .v2-table th {
    background-color: #070D1D !important;
    color: var(--pesca-text-secondary) !important;
    font-size: 0.73rem !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    padding: 14px 16px !important;
    border-bottom: 1px solid var(--pesca-border-subtle) !important;
    white-space: nowrap;
    vertical-align: middle !important;
}

.table-glass td, .v2-table td {
    padding: 14px 16px !important;
    border-bottom: 1px solid rgba(24, 46, 92, 0.55) !important;
    vertical-align: middle !important;
    background-color: var(--pesca-bg-card) !important;
    color: var(--pesca-text-primary);
}

.table-glass tbody tr:hover td, .v2-table tbody tr:hover td {
    background-color: var(--pesca-bg-elevated) !important;
}

.bf-btn-primary, .btn-v2-primary, .btn-cyber {
    background: var(--pesca-gold-gradient);
    color: #050914 !important;
    font-family: var(--pesca-font-display);
    font-weight: 800;
    border: 1px solid rgba(255, 224, 51, 0.4);
    border-radius: 11px;
    padding: 10px 20px;
}

.bf-btn-primary:hover, .btn-v2-primary:hover, .btn-cyber:hover {
    background: linear-gradient(180deg, #FFE866 0%, #FFC400 50%, #FF9900 100%);
    color: #050914 !important;
}

/* Regras automáticas para Impressão de Laudos A4 e PDFs */
@media print {
    html, body {
        background: #FFFFFF !important;
        color: #1D1D1B !important;
    }
    .logo-screen-only { display: none !important; }
    .logo-print-only { display: inline-block !important; }
}

/* ==========================================================================
   TABELAS LARGAS: largura mínima evita colunas sobrepostas (rolagem horizontal)
   ========================================================================== */
.table-responsive > .table-glass { min-width: 1080px; }
.table-glass td .badge, .table-glass td .btn-glass, .table-glass td .btn-cyber { white-space: nowrap; }
.table-glass td, .table-glass th { text-align: left; }
.table-glass td.text-end, .table-glass th.text-end { text-align: right !important; }
.table-glass td.text-center, .table-glass th.text-center { text-align: center !important; }
.bf-leaderboard-metric { font-family: var(--pesca-font-display); font-weight: 800; font-size: 1.45rem; font-variant-numeric: tabular-nums; color: var(--pesca-text-primary); white-space: nowrap; }
.bf-fish-length-hero { font-family: var(--pesca-font-display); font-weight: 900; }
.text-muted { color: #8DA4CE !important; }
.form-label { color: var(--pesca-text-secondary) !important; }

/* Sidebar: rótulos em uma linha, badges compactos */
.admin-nav-link { gap: 10px; padding: 10px 12px; font-size: 0.82rem; white-space: nowrap; }
.admin-nav-link > span:not(.badge) { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.admin-nav-link .badge { padding: 3px 6px; letter-spacing: 0.02em; }
.glass-input::placeholder, .form-control.glass-input::placeholder { color: #64748B !important; opacity: 1; }
