/* RL Sistema - employee portal visual layer */
:root {
    --portal-bg: #f3f6fa;
    --portal-panel: #ffffff;
    --portal-line: #dbe5ef;
    --portal-line-strong: #c8d5e3;
    --portal-text: #172033;
    --portal-soft: #334155;
    --portal-muted: #6b7a90;
    --portal-navy: #121a24;
    --portal-navy-2: #182332;
    --portal-teal: #14b8a6;
    --portal-blue: #2563eb;
    --portal-green: #059669;
    --portal-amber: #d97706;
    --portal-rose: #e11d48;
    --portal-shadow-xs: 0 1px 2px rgba(15, 23, 42, .06);
    --portal-shadow-sm: 0 8px 22px rgba(15, 23, 42, .06);
    --portal-shadow-md: 0 18px 42px rgba(15, 23, 42, .09);
    --portal-radius: 8px;
    --portal-radius-sm: 6px;
}

body {
    background:
        linear-gradient(180deg, #edf4fa 0, #f8fafc 320px, var(--portal-bg) 100%) !important;
    color: var(--portal-text);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.login-container,
.stat-card,
.table-portal,
.info-card,
.modal-content,
.card {
    border: 1px solid var(--portal-line) !important;
    border-radius: var(--portal-radius) !important;
    background: var(--portal-panel) !important;
    box-shadow: var(--portal-shadow-sm) !important;
}

.login-container {
    max-width: 470px !important;
    overflow: hidden;
}

.login-header,
.welcome-banner,
.btn-login,
.btn-portal-primary {
    background: linear-gradient(135deg, #0f766e 0%, var(--portal-blue) 100%) !important;
}

.login-header {
    padding: 30px 24px !important;
}

.login-logo {
    width: 118px !important;
    height: 118px !important;
    filter: drop-shadow(0 12px 24px rgba(0, 0, 0, .18));
}

.login-header h1,
.section-title,
.stat-value,
.info-value {
    color: var(--portal-text) !important;
    letter-spacing: 0 !important;
}

.login-header h1,
.login-header p,
.welcome-banner h2,
.welcome-banner p {
    color: #ffffff !important;
}

.login-body {
    padding: 34px 30px !important;
}

.form-floating input,
.form-portal .form-control,
.form-portal .form-select,
.form-control,
.form-select {
    border: 1px solid #cbd8e6 !important;
    border-radius: var(--portal-radius-sm) !important;
    color: var(--portal-text) !important;
    box-shadow: none !important;
}

.form-floating input:focus,
.form-portal .form-control:focus,
.form-portal .form-select:focus,
.form-control:focus,
.form-select:focus {
    border-color: var(--portal-teal) !important;
    box-shadow: 0 0 0 3px rgba(20, 184, 166, .18) !important;
}

.btn-login,
.btn-portal,
.btn {
    border-radius: var(--portal-radius-sm) !important;
    letter-spacing: 0 !important;
}

.btn-login,
.btn-portal-primary,
.btn-portal-success {
    border: 0 !important;
    color: #ffffff !important;
    font-weight: 800 !important;
    box-shadow: 0 10px 22px rgba(37, 99, 235, .18) !important;
}

.btn-login:hover,
.btn-portal-primary:hover,
.btn-portal-success:hover,
.stat-card:hover {
    transform: translateY(-2px) !important;
    box-shadow: var(--portal-shadow-md) !important;
}

.primeiro-acesso a,
.voltar-link a:hover {
    color: #0f766e !important;
}

.sidebar,
.topbar-mobile {
    background: linear-gradient(180deg, #17212d 0, #111923 100%) !important;
}

.sidebar-header,
.sidebar-footer {
    border-color: rgba(255, 255, 255, .08) !important;
}

.sidebar-avatar {
    border-radius: var(--portal-radius) !important;
    border: 1px solid rgba(45, 212, 191, .62) !important;
    box-shadow: 0 0 0 4px rgba(20, 184, 166, .11) !important;
}

.sidebar-name {
    color: #ffffff !important;
}

.sidebar-cargo,
.sidebar-nav a {
    color: #aebccc !important;
}

.sidebar-nav a {
    border-left: 0 !important;
    border-radius: var(--portal-radius) !important;
    margin: 2px 12px !important;
    padding: 11px 12px !important;
}

.sidebar-nav a:hover,
.sidebar-nav a.active {
    background: linear-gradient(90deg, rgba(20, 184, 166, .18), rgba(37, 99, 235, .10)) !important;
    color: #ffffff !important;
}

.main-content {
    background: transparent !important;
}

.welcome-banner {
    border-radius: var(--portal-radius) !important;
    box-shadow: var(--portal-shadow-sm) !important;
}

.welcome-banner::after {
    display: none !important;
}

.stat-icon {
    border-radius: var(--portal-radius-sm) !important;
}

.stat-label,
.section-subtitle,
.info-label,
.table-portal th {
    color: var(--portal-muted) !important;
}

.table-portal th {
    background: #eef4f8 !important;
    color: #2d3b4f !important;
    font-weight: 800 !important;
}

.table-portal td {
    color: var(--portal-soft) !important;
    border-color: #edf2f7 !important;
}

.badge-status {
    border-radius: 999px !important;
}

.badge-pendente {
    background: #fff7ed !important;
    color: #9a3412 !important;
}

.badge-aprovado,
.badge-concluido {
    background: #ecfdf5 !important;
    color: #047857 !important;
}

.badge-rejeitado {
    background: #fff1f2 !important;
    color: #be123c !important;
}

.badge-analise {
    background: #eff6ff !important;
    color: #1d4ed8 !important;
}

.escala-dia {
    border-radius: var(--portal-radius-sm) !important;
}

.escala-dia-hoje {
    border-color: var(--portal-teal) !important;
}

@media (max-width: 768px) {
    .main-content {
        padding: 16px !important;
    }

    .login-container {
        max-width: 100% !important;
    }

    .welcome-banner,
    .info-card,
    .stat-card,
    .table-portal {
        width: 100% !important;
    }
}
