.sidebar { min-width: 240px; background: linear-gradient(180deg, #111827 0%, #1f2937 100%) !important; box-shadow: 2px 0 12px rgba(0,0,0,.08); }
@media (min-width: 992px) { .sidebar { width: 250px; position: sticky; top: 0; height: 100vh; overflow-y: auto; } }
.sidebar .nav-link { border-radius: .6rem; padding: .55rem .85rem; transition: background-color .15s; }
.sidebar .nav-link i { width: 1.4rem; display: inline-block; opacity: .85; }
.sidebar .nav-link.active { background: linear-gradient(90deg, #2563eb, #4f46e5); box-shadow: 0 2px 8px rgba(37,99,235,.35); }
.sidebar .nav-link:hover:not(.active) { background-color: rgba(255,255,255,.1); }
.stat-card .stat-value { font-size: 1.9rem; font-weight: 700; line-height: 1.1; }
.stat-card { transition: transform .15s, box-shadow .15s; }
.stat-card:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(16,24,40,.1) !important; }
.stat-icon { width: 52px; height: 52px; border-radius: .9rem; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; flex: none; }
.sidebar-brand { display: flex; align-items: center; gap: .65rem; font-size: 1.15rem; font-weight: 700; }
.sidebar-logo { width: 38px; height: 38px; border-radius: .75rem; background: linear-gradient(135deg, #2563eb, #7c3aed); display: inline-flex; align-items: center; justify-content: center; }
.sidebar-user { background: rgba(255,255,255,.06); border-radius: .75rem; padding: .6rem; }
.avatar { width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg, #2563eb, #7c3aed); display: flex; align-items: center; justify-content: center; font-weight: 700; flex: none; }
main h1:focus { outline: none; }
main h1.h3 { font-weight: 700; color: #111827; letter-spacing: -.01em; }
main .card-header { background: #fff; border-bottom: 1px solid #eef0f4; font-weight: 600; padding: .85rem 1.1rem; border-radius: .9rem .9rem 0 0 !important; }
main .table-hover > tbody > tr:hover > * { background-color: #f5f7ff; }
main .table > :not(caption) > * > * { border-bottom-color: #eef0f4; }
.badge { font-weight: 600; padding: .4em .7em; border-radius: 999px; }
.form-label { font-weight: 600; color: #374151; }
.form-control:focus, .form-select:focus { border-color: #818cf8; box-shadow: 0 0 0 .2rem rgba(79,70,229,.15); }
.btn-primary { background: linear-gradient(90deg, #2563eb, #4f46e5); border: 0; font-weight: 600; }
.btn-primary:hover, .btn-primary:focus { background: linear-gradient(90deg, #1d4ed8, #4338ca); }
.btn-outline-primary { color: #4f46e5; border-color: #c7d2fe; }
.btn-outline-primary:hover { background: #4f46e5; border-color: #4f46e5; }
.modal-content { border: 0; border-radius: 1rem; box-shadow: 0 20px 45px rgba(0,0,0,.2); }
.modal-header { border-bottom-color: #eef0f4; }
.alert { border: 0; border-radius: .75rem; }
.pagination .page-link { border-radius: .45rem; margin: 0 .1rem; color: #4f46e5; }
main td a { white-space: nowrap; }
main a { text-decoration: none; }
main a:hover { text-decoration: underline; }
main a.btn:hover { text-decoration: none; }
@media (min-width: 992px) { main.flex-grow-1 { padding-top: 4.25rem !important; } }
@media (max-width: 991.98px) {
    .sidebar { min-width: 0; position: sticky; top: 0; z-index: 1040; padding-top: .6rem !important; padding-bottom: .6rem !important; }
    .sidebar > div:first-child { margin-bottom: 0 !important; }
    .sidebar-content { position: absolute; left: 0; right: 0; top: 100%; max-height: calc(100vh - 60px); overflow-y: auto; padding: .75rem 1rem 1rem; background: #1f2937; box-shadow: 0 8px 16px rgba(0,0,0,.35); }
    main { padding-bottom: 2rem; }
    .alertas-chamados { margin: .6rem 4.25rem 0 0 !important; }
}
.table-actions button { margin-left: .25rem; }
.sessao-expirada-overlay { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(0,0,0,.65); }
.sessao-expirada-dialog { width: 100%; max-width: 430px; }

body { background-color: #f3f4f8; }
main .card { border: 0; border-radius: .9rem; box-shadow: 0 1px 3px rgba(16,24,40,.08), 0 1px 2px rgba(16,24,40,.04); }
main .table > :not(caption) > * > * { padding-top: .7rem; padding-bottom: .7rem; }
main .table thead th { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: #6b7280; }
.btn { border-radius: .55rem; }
.form-control, .form-select, .input-group-text { border-radius: .55rem; }

/* Autenticação */
.auth-bg { background: linear-gradient(135deg, #1e3a8a 0%, #4f46e5 55%, #7c3aed 100%); }
.auth-card { width: 100%; max-width: 440px; background: #fff; border-radius: 1rem; padding: 1.5rem; box-shadow: 0 20px 45px rgba(0,0,0,.25); }
.auth-card .card { box-shadow: none; border: 0; }
.auth-bg .text-muted { color: rgba(255,255,255,.7) !important; }
.auth-card .text-muted { color: #6b7280 !important; }

.login-shell { min-height: 100vh; display: flex; }
.login-brand { flex: 1 1 52%; align-items: center; justify-content: center; padding: 3rem; color: #fff;
    background: radial-gradient(circle at 20% 20%, rgba(255,255,255,.14), transparent 45%), linear-gradient(135deg, #1e3a8a 0%, #4f46e5 55%, #7c3aed 100%); }
.login-brand > div { max-width: 460px; }
.brand-logo { width: 72px; height: 72px; border-radius: 1.2rem; background: rgba(255,255,255,.18); display: flex; align-items: center; justify-content: center; font-size: 2.2rem; margin-bottom: 1.5rem; backdrop-filter: blur(4px); }
.brand-logo-sm { width: 56px; height: 56px; font-size: 1.7rem; margin: 0 auto 1rem; background: linear-gradient(135deg, #2563eb, #7c3aed); color: #fff; }
.brand-list li { display: flex; gap: .6rem; align-items: flex-start; margin-bottom: .75rem; opacity: .95; }
.brand-list i { font-size: 1.2rem; color: #a5f3fc; }
.login-form-side { flex: 1 1 48%; display: flex; align-items: center; justify-content: center; padding: 2rem 1.25rem; background: #f8fafc; }
.login-card { width: 100%; max-width: 420px; }
.login-card .input-group-text { background: #fff; color: #6b7280; }
.login-card .form-control:focus { box-shadow: 0 0 0 .2rem rgba(79,70,229,.2); border-color: #818cf8; }
.login-card .btn-primary { background: linear-gradient(90deg, #2563eb, #4f46e5); border: 0; font-weight: 600; padding: .75rem; }
.login-card .btn-primary:hover { filter: brightness(1.08); }
