/* 
 * Design System 360 - Padronização baseada no Módulo de Zeladoria
 */

/* --- ESTATÍSTICAS (STAT CARDS) --- */
/* O modelo do Zeladoria usa as classes do Bootstrap: 
   .card .shadow-sm .border-0 .border-start .border-primary .border-4 
*/

/* Estilo adicional para garantir a suavidade e hover igual ao padrão */
.stat-card-standard {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    border-radius: 0.75rem !important;
}

.stat-card-standard:hover {
    transform: translateY(-3px);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.08) !important;
}

/* 
   PADRÃO MINI-CARDS (SHORTCUTS)
   Uso: .card .stat-card-standard .border-0 .border-start .border-[color] .border-4
   Sempre usar com .icon-box-std para consistência visual.
*/

.stat-title-standard {
    color: #64748b;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.025em;
    margin-bottom: 0.5rem;
}

.stat-value-standard {
    font-size: 1.75rem;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: 0;
}

/* --- STATS LABELS --- */
.stat-label-standard {
    font-size: 0.8125rem;
    font-weight: 600;
    /* Slightly bolder for better visibility */
    margin-top: 0.5rem;
    margin-bottom: 0;
    display: block;
}

/* Contextual coloring based on card border */
.card.border-primary .stat-label-standard,
.card.border-primary-std .stat-label-standard {
    color: var(--std-primary) !important;
}

.card.border-success .stat-label-standard,
.card.border-success-std .stat-label-standard {
    color: var(--std-success) !important;
}

.card.border-danger .stat-label-standard,
.card.border-danger-std .stat-label-standard {
    color: var(--std-danger) !important;
}

.card.border-warning .stat-label-standard,
.card.border-warning-std .stat-label-standard {
    color: var(--std-warning) !important;
}

.card.border-info .stat-label-standard,
.card.border-info-std .stat-label-standard {
    color: var(--std-info) !important;
}

.card.border-purple-std .stat-label-standard {
    color: var(--std-purple) !important;
}

.card.border-teal-std .stat-label-standard {
    color: var(--std-teal) !important;
}

.card.border-fuchsia-std .stat-label-standard {
    color: var(--std-fuchsia) !important;
}

.card.border-sky-std .stat-label-standard {
    color: var(--std-sky) !important;
}

.card.border-indigo-std .stat-label-standard {
    color: var(--std-indigo) !important;
}

.card.border-pink-std .stat-label-standard {
    color: var(--std-pink) !important;
}

.card.border-lime-std .stat-label-standard {
    color: var(--std-lime) !important;
}

.card.border-yellow-std .stat-label-standard {
    color: var(--std-yellow) !important;
}

.card.border-emerald-std .stat-label-standard {
    color: var(--std-emerald) !important;
}

/* --- TABELAS ESMAECIDAS (FADED TABLES) --- */
.table-faded-standard {
    border-collapse: separate;
    border-spacing: 0;
}

.table-faded-standard thead th {
    background-color: #f8fafc !important;
    /* Cinza esmaecido */
    color: #475569 !important;
    font-weight: 600 !important;
    font-size: 0.8125rem;
    text-transform: none;
    border-bottom: 1px solid #e2e8f0 !important;
    padding: 1rem 0.75rem !important;
    white-space: nowrap;
}

.table-faded-standard tbody td {
    padding: 1rem 0.75rem !important;
    border-bottom: 1px solid #f1f5f9;
    font-size: 0.875rem;
}

.table-faded-standard tbody tr:hover {
    background-color: rgba(241, 245, 249, 0.4);
}

/* Links de IDs/Protocolos */
.link-id-standard {
    font-weight: 700;
    text-decoration: none;
    color: #0d6efd;
    /* Azul padrão zeladoria */
}

.link-id-standard:hover {
    text-decoration: underline;
}

/* --- BADGES E CORES SUAVES (SOFT COLORS) --- */
.badge-soft-standard {
    padding: 0.45em 0.85em;
    border-radius: 6px;
    font-weight: 600;
    font-size: 0.75rem;
    border: 1px solid transparent;
}

/* 
   PALETA DE CORES CURADA (360 VIBRANT PREMIUM)
   Gradients e Sombras com Glow para um visual High-End.
*/
:root {
    --grad-primary: linear-gradient(135deg, #0d6efd 0%, #0043a8 100%);
    --grad-success: linear-gradient(135deg, #10b981 0%, #065f46 100%);
    --std-primary: #0d6efd;
    --std-success: #198754;
    --std-danger: #dc3545;
    --std-warning: #fd7e14;
    /* Orange */
    --std-info: #0dcaf0;
    /* Cyan */
    --std-purple: #6f42c1;
    --std-indigo: #6610f2;
    --std-teal: #20c997;
    --std-pink: #d63384;
    --std-yellow: #ffc107;
    --std-lime: #82c91e;
    --std-sky: #0ea5e9;
    --std-fuchsia: #e83e8c;
    --std-emerald: #10b981;
    --std-gray: #6c757d;
    --std-bluegray: #495057;

    /* Cores Suaves (Soft) */
    --std-soft-bg: rgba(241, 245, 249, 1);
    --std-unified-icon: #ffffff;
    /* Branco Puro */
    --std-unified-bg: #4b5563;
    /* Slate 600 - Cinza Escuro Sólido */
}

/* Sombras com GLOW (Premium Effect - Removido por solicitação de "menos chamativo") */
.shadow-glow-primary {
    box-shadow: none !important;
}

.shadow-glow-success {
    box-shadow: none !important;
}

.shadow-glow-warning {
    box-shadow: none !important;
}

.shadow-glow-info {
    box-shadow: none !important;
}

.shadow-glow-purple {
    box-shadow: none !important;
}

.shadow-glow-indigo {
    box-shadow: none !important;
}

.shadow-glow-rose {
    box-shadow: none !important;
}

.shadow-glow-teal {
    box-shadow: 0 10px 15px -3px rgba(20, 184, 166, 0.2), 0 4px 6px -2px rgba(20, 184, 166, 0.1) !important;
}

.shadow-glow-pink {
    box-shadow: 0 10px 15px -3px rgba(236, 72, 153, 0.2), 0 4px 6px -2px rgba(236, 72, 153, 0.1) !important;
}

/* Utilitários de Gradiente para Icon Boxes (Substituído por Unificado) */
.bg-unified-std {
    background-color: var(--std-unified-bg) !important;
    color: var(--std-unified-icon) !important;
}

/* Utilitários de Texto */
.text-primary-std {
    color: var(--std-primary) !important;
}

.text-success-std {
    color: var(--std-success) !important;
}

.text-danger-std {
    color: var(--std-danger) !important;
}

.text-warning-std {
    color: var(--std-warning) !important;
}

.text-info-std {
    color: var(--std-info) !important;
}

.text-purple-std {
    color: var(--std-purple) !important;
}

.text-indigo-std {
    color: var(--std-indigo) !important;
}

.text-teal-std {
    color: var(--std-teal) !important;
}

.text-rose-std {
    color: var(--std-rose) !important;
}

.text-emerald-std {
    color: var(--std-emerald) !important;
}

.text-violet-std {
    color: var(--std-violet) !important;
}

.text-pink-std {
    color: var(--std-pink) !important;
}

/* EXTENDED TEXT COLORS */
.text-lime-std {
    color: var(--std-lime) !important;
}

.text-sky-std {
    color: var(--std-sky) !important;
}

.text-fuchsia-std {
    color: var(--std-fuchsia) !important;
}

.text-gray-std {
    color: var(--std-gray) !important;
}

.text-bluegray-std {
    color: var(--std-bluegray) !important;
}

.text-yellow-std {
    color: var(--std-yellow) !important;
}

/* Utilitários de Borda */
.border-primary-std {
    border-color: var(--std-primary) !important;
}

.border-success-std {
    border-color: var(--std-success) !important;
}

.border-danger-std {
    border-color: var(--std-danger) !important;
}

.border-warning-std {
    border-color: var(--std-warning) !important;
}

.border-info-std {
    border-color: var(--std-info) !important;
}

.border-purple-std {
    border-color: var(--std-purple) !important;
}

.border-indigo-std {
    border-color: var(--std-indigo) !important;
}

.border-teal-std {
    border-color: var(--std-teal) !important;
}

.border-rose-std {
    border-color: var(--std-rose) !important;
}

.border-emerald-std {
    border-color: var(--std-emerald) !important;
}

.border-violet-std {
    border-color: var(--std-violet) !important;
}

.border-pink-std {
    border-color: var(--std-pink) !important;
}

/* Utilitários de Fundo Suave (Soft BG) */
.bg-soft-blue-std {
    background-color: rgba(13, 110, 253, 0.1) !important;
}

.bg-soft-green-std {
    background-color: rgba(25, 135, 84, 0.1) !important;
}

.bg-soft-red-std {
    background-color: rgba(220, 53, 69, 0.1) !important;
}

.bg-soft-orange-std {
    background-color: rgba(245, 158, 11, 0.1) !important;
}

.bg-soft-cyan-std {
    background-color: rgba(6, 182, 212, 0.1) !important;
}

.bg-soft-purple-std {
    background-color: rgba(111, 66, 193, 0.1) !important;
}

.bg-soft-indigo-std {
    background-color: rgba(99, 102, 241, 0.1) !important;
}

.bg-soft-teal-std {
    background-color: rgba(20, 184, 166, 0.1) !important;
}

.bg-soft-rose-std {
    background-color: rgba(244, 63, 94, 0.1) !important;
}

.bg-soft-emerald-std {
    background-color: rgba(16, 185, 129, 0.1) !important;
}

.bg-soft-violet-std {
    background-color: rgba(139, 92, 246, 0.1) !important;
}

.bg-soft-pink-std {
    background-color: rgba(236, 72, 153, 0.1) !important;
}

/* EXTENDED SOFT BACKGROUNDS */
.bg-soft-lime-std {
    background-color: rgba(130, 201, 30, 0.1) !important;
}

.bg-soft-sky-std {
    background-color: rgba(14, 165, 233, 0.1) !important;
}

.bg-soft-fuchsia-std {
    background-color: rgba(232, 62, 140, 0.1) !important;
}

.bg-soft-gray-std {
    background-color: rgba(108, 117, 125, 0.1) !important;
}

.bg-soft-bluegray-std {
    background-color: rgba(73, 80, 87, 0.1) !important;
}

.bg-soft-yellow-std {
    background-color: rgba(255, 193, 7, 0.1) !important;
}

/* --- UTILITÁRIOS --- */
.hero-section-std {
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%);
    border-radius: 1.5rem !important;
    color: white;
    position: relative;
    overflow: hidden;
    /* 
       NOTA: Use com moderação. O usuário prefere cabeçalhos claros (.page-header) 
       para evitar um visual "exagerado" em módulos internos.
    */
}

.icon-box-std {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    transition: all 0.2s ease;
    flex-shrink: 0;
    /* Simplificado */
}

.icon-box-std i {
    opacity: 0.9;
}

/* Versão compacta para ícones */
.icon-box-sm-std {
    width: 40px;
    height: 40px;
    border-radius: 10px;
}

.icon-box-sm-std i {
    font-size: 1.25rem !important;
}

/* Padding reduzido para dashboards densos */
.card-compact-std .card-body {
    padding: 1.25rem !important;
}

/* 
   Layout de Atalhos e Mini-Cards:
   O usuário prefere que os mini-cards de atalhos e operações fiquem dispostos 
   diretamente no grid da página, sem estarem envoltos por um container .card branco.
   Isso evita excesso de sombras e bordas (card dentro de card).
*/
.transition-all {
    transition: all 0.2s ease-in-out;
}


.card.stat-card-standard:hover .icon-box-std {
    /* Efeito sutil apenas de leve transparência ou escala mínima */
    opacity: 0.85;
}

.fw-extrabold {
    font-weight: 800 !important;
}

/* --- BORDAS PADRONIZADAS (CARD SYSTEM) --- */
/* Garantindo borda lateral grossa conforme solicitado (Professional Accent) */
.border-primary-std {
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-left-width: 4px !important;
    border-left-color: var(--std-primary) !important;
}

.border-success-std {
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-left-width: 4px !important;
    border-left-color: var(--std-success) !important;
}

.border-danger-std {
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-left-width: 4px !important;
    border-left-color: var(--std-danger) !important;
}

.border-warning-std {
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-left-width: 4px !important;
    border-left-color: var(--std-warning) !important;
}

.border-info-std {
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-left-width: 4px !important;
    border-left-color: var(--std-info) !important;
}

.border-purple-std {
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-left-width: 4px !important;
    border-left-color: var(--std-purple) !important;
}

.border-indigo-std {
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-left-width: 4px !important;
    border-left-color: var(--std-indigo) !important;
}

.border-teal-std {
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-left-width: 4px !important;
    border-left-color: var(--std-teal) !important;
}

.border-rose-std {
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-left-width: 4px !important;
    border-left-color: var(--std-rose) !important;
}

.border-emerald-std {
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-left-width: 4px !important;
    border-left-color: var(--std-emerald) !important;
}

.border-violet-std {
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-left-width: 4px !important;
    border-left-color: var(--std-violet) !important;
}

.border-pink-std {
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-left-width: 4px !important;
    border-left-color: var(--std-pink) !important;
}

.border-lime-std {
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-left-width: 4px !important;
    border-left-color: var(--std-lime) !important;
}

.border-sky-std {
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-left-width: 4px !important;
    border-left-color: var(--std-sky) !important;
}

.border-fuchsia-std {
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-left-width: 4px !important;
    border-left-color: var(--std-fuchsia) !important;
}

.border-yellow-std {
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-left-width: 4px !important;
    border-left-color: var(--std-yellow) !important;
}

/* --- BOTÕES PADRONIZADOS (BUTTON SYSTEM) --- */
.btn-std-outline {
    border-radius: 50px !important;
    padding: 0.4rem 1.25rem !important;
    font-weight: 600 !important;
    font-size: 0.8125rem !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    background: transparent !important;
    text-decoration: none !important;
    border-width: 1.5px !important;
    min-width: 130px;
}

.btn-std-outline i {
    font-size: 0.9rem;
    transition: transform 0.25s ease;
}

.btn-std-outline:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.btn-std-outline:hover i {
    transform: translateX(3px);
}

/* Color variations */
.btn-std-outline-primary {
    border: 1.5px solid var(--std-primary) !important;
    color: var(--std-primary) !important;
}

.btn-std-outline-primary:hover {
    background-color: var(--std-primary) !important;
    color: white !important;
}

.btn-std-outline-success {
    border: 1.5px solid var(--std-success) !important;
    color: var(--std-success) !important;
}

.btn-std-outline-success:hover {
    background-color: var(--std-success) !important;
    color: white !important;
}

.btn-std-outline-danger {
    border: 1.5px solid var(--std-danger) !important;
    color: var(--std-danger) !important;
}

.btn-std-outline-danger:hover {
    background-color: var(--std-danger) !important;
    color: white !important;
}

.btn-std-outline-warning {
    border: 1.5px solid var(--std-warning) !important;
    color: var(--std-warning) !important;
}

.btn-std-outline-warning:hover {
    background-color: var(--std-warning) !important;
    color: white !important;
}

.btn-std-outline-info {
    border: 1.5px solid var(--std-info) !important;
    color: var(--std-info) !important;
}

.btn-std-outline-info:hover {
    background-color: var(--std-info) !important;
    color: white !important;
}

.btn-std-outline-purple {
    border: 1.5px solid var(--std-purple) !important;
    color: var(--std-purple) !important;
}

.btn-std-outline-purple:hover {
    background-color: var(--std-purple) !important;
    color: white !important;
}

.btn-std-outline-teal {
    border: 1.5px solid var(--std-teal) !important;
    color: var(--std-teal) !important;
}

.btn-std-outline-teal:hover {
    background-color: var(--std-teal) !important;
    color: white !important;
}

.btn-std-outline-sky {
    border: 1.5px solid var(--std-sky) !important;
    color: var(--std-sky) !important;
}

.btn-std-outline-sky:hover {
    background-color: var(--std-sky) !important;
    color: white !important;
}

/* -std suffix variations to match module mapping */
.btn-std-outline-primary-std {
    border: 1.5px solid var(--std-primary) !important;
    color: var(--std-primary) !important;
}

.btn-std-outline-primary-std:hover {
    background-color: var(--std-primary) !important;
    color: white !important;
}

.btn-std-outline-success-std {
    border: 1.5px solid var(--std-success) !important;
    color: var(--std-success) !important;
}

.btn-std-outline-success-std:hover {
    background-color: var(--std-success) !important;
    color: white !important;
}

.btn-std-outline-warning-std {
    border: 1.5px solid var(--std-warning) !important;
    color: var(--std-warning) !important;
}

.btn-std-outline-warning-std:hover {
    background-color: var(--std-warning) !important;
    color: white !important;
}

.btn-std-outline-danger-std {
    border: 1.5px solid var(--std-danger) !important;
    color: var(--std-danger) !important;
}

.btn-std-outline-danger-std:hover {
    background-color: var(--std-danger) !important;
    color: white !important;
}

.btn-std-outline-purple-std {
    border: 1.5px solid var(--std-purple) !important;
    color: var(--std-purple) !important;
}

.btn-std-outline-purple-std:hover {
    background-color: var(--std-purple) !important;
    color: white !important;
}

.btn-std-outline-indigo-std {
    border: 1.5px solid var(--std-indigo) !important;
    color: var(--std-indigo) !important;
}

.btn-std-outline-indigo-std:hover {
    background-color: var(--std-indigo) !important;
    color: white !important;
}

.btn-std-outline-teal-std {
    border: 1.5px solid var(--std-teal) !important;
    color: var(--std-teal) !important;
}

.btn-std-outline-teal-std:hover {
    background-color: var(--std-teal) !important;
    color: white !important;
}

.btn-std-outline-sky-std {
    border: 1.5px solid var(--std-sky) !important;
    color: var(--std-sky) !important;
}

.btn-std-outline-sky-std:hover {
    background-color: var(--std-sky) !important;
    color: white !important;
}

.btn-std-outline-emerald-std {
    border: 1.5px solid var(--std-emerald) !important;
    color: var(--std-emerald) !important;
}

.btn-std-outline-emerald-std:hover {
    background-color: var(--std-emerald) !important;
    color: white !important;
}

.btn-std-outline-indigo {
    border: 1.5px solid var(--std-indigo) !important;
    color: var(--std-indigo) !important;
}

.btn-std-outline-indigo:hover {
    background-color: var(--std-indigo) !important;
    color: white !important;
}

.btn-std-outline-fuchsia {
    border: 1.5px solid var(--std-fuchsia) !important;
    color: var(--std-fuchsia) !important;
}

.btn-std-outline-fuchsia:hover {
    background-color: var(--std-fuchsia) !important;
    color: white !important;
}

/* More -std variations */
.btn-std-outline-pink-std {
    border: 1.5px solid var(--std-pink) !important;
    color: var(--std-pink) !important;
}

.btn-std-outline-pink-std:hover {
    background-color: var(--std-pink) !important;
    color: white !important;
}

.btn-std-outline-yellow-std {
    border: 1.5px solid var(--std-yellow) !important;
    color: var(--std-yellow) !important;
}

.btn-std-outline-yellow-std:hover {
    background-color: var(--std-yellow) !important;
    color: white !important;
}

.btn-std-outline-fuchsia-std {
    border: 1.5px solid var(--std-fuchsia) !important;
    color: var(--std-fuchsia) !important;
}

.btn-std-outline-fuchsia-std:hover {
    background-color: var(--std-fuchsia) !important;
    color: white !important;
}

.btn-std-outline-info-std {
    border: 1.5px solid var(--std-info) !important;
    color: var(--std-info) !important;
}

.btn-std-outline-info-std:hover {
    background-color: var(--std-info) !important;
    color: white !important;
}

.btn-std-outline-secondary-std {
    border: 1.5px solid var(--std-gray) !important;
    color: var(--std-gray) !important;
}

.btn-std-outline-secondary-std:hover {
    background-color: var(--std-gray) !important;
    color: white !important;
}

.btn-std-outline-lime-std {
    border: 1.5px solid var(--std-lime) !important;
    color: var(--std-lime) !important;
}

.btn-std-outline-lime-std:hover {
    background-color: var(--std-lime) !important;
    color: white !important;
}

.btn-std-outline-violet-std {
    border: 1.5px solid var(--std-violet) !important;
    color: var(--std-violet) !important;
}

.btn-std-outline-violet-std:hover {
    background-color: var(--std-violet) !important;
    color: white !important;
}

.btn-std-outline-rose-std {
    border: 1.5px solid var(--std-rose) !important;
    color: var(--std-rose) !important;
}

.btn-std-outline-rose-std:hover {
    background-color: var(--std-rose) !important;
    color: white !important;
}

/* --- SOLID BUTTONS (UNIFIED) --- */
.btn-primary-std {
    background-color: var(--std-primary) !important;
    border-color: var(--std-primary) !important;
    color: white !important;
    transition: all 0.2s ease;
}
.btn-primary-std:hover {
    background-color: #0056b3 !important;
    border-color: #0056b3 !important;
    transform: translateY(-1px);
}

.btn-indigo-std {
    background-color: var(--std-indigo) !important;
    border-color: var(--std-indigo) !important;
    color: white !important;
    transition: all 0.2s ease;
}
.btn-indigo-std:hover {
    background-color: #520dc2 !important;
    border-color: #520dc2 !important;
    transform: translateY(-1px);
}

/* --- SOLID BACKGROUNDS (UNIFIED) --- */
.bg-primary-std {
    background-color: var(--std-primary) !important;
}
.bg-indigo-std {
    background-color: var(--std-indigo) !important;
}
