:root {
    --bg: #0b181f; --sidebar-bg: #081115; --card-bg: #0f2030;
    --accent: #1B4F8A; --accent-light: #2471b8;
    --text: #DDE6ED; --text-muted: #7F8C8D;
    --green: #27AE60; --green-light: #2ECC71;
    --red: #C0392B; --red-light: #E74C3C;
    --yellow: #F39C12; --radius: 10px;
}
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif; background:var(--bg); color:var(--text); min-height:100vh; }
a { color:var(--accent-light); text-decoration:none; }

/* FLASH & LOGIN */
.flash-messages { position:fixed; top:16px; right:16px; z-index:9999; display:flex; flex-direction:column; gap:8px; }
.flash-msg { background:var(--accent); color:white; padding:12px 20px; border-radius:var(--radius); font-size:10pt; animation: slideIn .3s ease; }
.flash-inline { background:var(--accent); color:white; padding:10px 16px; border-radius:var(--radius); margin-bottom:16px; }
@keyframes slideIn { from{transform:translateX(100%);opacity:0} to{transform:none;opacity:1} }

/* ═══ LOGIN MODERNO (GLASSMORPHISM — TEMA ESCURO) ═══════════════════════ */
.login-page {
    display:flex; align-items:center; justify-content:center;
    min-height:100vh;
    background: linear-gradient(135deg, #050a0e 0%, #0b181f 50%, #0f1f2e 100%);
    position: relative; overflow: hidden;
}

/* ── BLOBS ANIMADOS DE FUNDO ────────────────────────────── */
.login-blobs { position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.blob {
    position:absolute; border-radius:50%;
    filter: blur(80px); opacity:0.35;
    animation: floatBlob 20s ease-in-out infinite;
}
.blob-1 { width:380px; height:380px; background:#1B4F8A; top:8%;  left:5%;  animation-delay:0s; }
.blob-2 { width:320px; height:320px; background:#2471b8; top:55%; left:12%; animation-delay:-5s; }
.blob-3 { width:420px; height:420px; background:#0d3a6b; top:20%; right:8%; animation-delay:-10s; }
.blob-4 { width:280px; height:280px; background:#1a5a8a; bottom:10%; right:18%; animation-delay:-15s; }
.blob-5 { width:240px; height:240px; background:#1B4F8A; top:40%; left:45%; animation-delay:-7s; opacity:0.25; }

@keyframes floatBlob {
    0%, 100% { transform: translate(0, 0) scale(1); }
    25%      { transform: translate(40px, -30px) scale(1.1); }
    50%      { transform: translate(-20px, 40px) scale(0.95); }
    75%      { transform: translate(-40px, -20px) scale(1.05); }
}

.login-wrapper {
    width:100%; max-width:440px; padding:20px; z-index:1;
    display:flex; flex-direction:column; align-items:center;
}

.login-card-glass {
    background: linear-gradient(145deg, rgba(23,70,111,.92), rgba(7,29,54,.96));
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border: 1px solid rgba(103,159,202,.62);
    border-radius: 20px;
    padding: 40px 36px; width: 100%;
    box-shadow:
        0 18px 44px rgba(0, 0, 0, 0.34),
        0 0 20px rgba(26,126,196,.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.055);
    animation: cardFadeIn .6s ease-out;
}
@keyframes cardFadeIn { from { transform: translateY(20px); opacity: 0; } to { transform: none; opacity: 1; } }

/* Logo da CLDF */
.login-header-new { text-align:center; margin-bottom:28px; }
.login-logo-img {
    width: 80px; height: 80px;
    margin: 0 auto 14px;
    display: flex; align-items: center; justify-content: center;
    filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.4));
}
.login-logo-img img {
    max-width: 100%; max-height: 100%;
    object-fit: contain;
}
.login-header-new h1 {
    color: white; font-size: 22pt; margin: 4px 0;
    letter-spacing: -0.5px;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}
.login-header-new p {
    color: rgba(255, 255, 255, 0.75);
    font-size: 10pt;
}

/* Indicador de Conexão */
.conn-check {
    display: inline-flex; align-items: center; gap: 8px;
    margin-top: 16px; padding: 6px 14px; border-radius: 20px;
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.1);
}
.conn-text { font-size: 8pt; color: rgba(255, 255, 255, 0.7); }

/* Erro */
.login-erro-new {
    background: rgba(192, 57, 43, 0.2);
    border: 1px solid rgba(231, 76, 60, 0.5);
    color: #ffb3a8;
    padding: 12px 16px; border-radius: 10px;
    margin-bottom: 20px; font-size: 10pt; text-align: center;
    backdrop-filter: blur(6px);
}

/* Formulário */
.form-group { margin-bottom: 20px; }
.form-group label {
    display: block;
    color: rgba(255, 255, 255, 0.85);
    font-size: 8.5pt;
    margin-bottom: 8px;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Tabs de Perfil (3 botões: N2 / N1 / Supervisor) */
.perfil-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 6px;
    background: rgba(0, 0, 0, 0.25);
    border-radius: 10px; padding: 4px;
    border: 1px solid rgba(255, 255, 255, 0.1);
}
.perfil-tabs input { display: none; }
.perfil-tab {
    text-align: center; padding: 10px 6px;
    cursor: pointer; color: rgba(255, 255, 255, 0.55);
    font-size: 9.5pt; font-weight: bold;
    border-radius: 8px;
    transition: color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
}
.perfil-tab:hover { color: rgba(255, 255, 255, 0.85); }
.perfil-tabs input:checked + .perfil-tab {
    color: white;
    background: linear-gradient(135deg, var(--accent) 0%, var(--accent-light) 100%);
    box-shadow: 0 2px 10px rgba(36, 113, 184, 0.5);
}

/* Select e Input */
.select-wrapper { position: relative; }
.select-wrapper select,
.form-group input[type="password"] {
    width: 100%; padding: 12px 16px;
    background: rgba(0, 0, 0, 0.25);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 10px;
    font-size: 11pt; outline: none; appearance: none;
    transition: border-color 0.2s, background 0.2s;
}

/* Estilo para a lista de nomes dentro do select */
.select-wrapper select option {
    background-color: #0D233A; /* Altera a cor de fundo (ex: um tom de azul escuro) */
    color: #ffffff; /* Altera a cor do texto para branco */
}

.select-wrapper select { padding-right: 40px; }
.select-wrapper select:focus,
.form-group input[type="password"]:focus {
    border-color: rgba(255, 255, 255, 0.4);
    background: rgba(0, 0, 0, 0.35);
}
.form-group input[type="password"]::placeholder {
    color: rgba(255, 255, 255, 0.4);
}
.select-arrow {
    position: absolute; right: 16px; top: 50%;
    transform: translateY(-50%);
    color: rgba(255, 255, 255, 0.6);
    pointer-events: none;
}

/* Botão Entrar */
.btn-entrar-new {
    width: 100%; padding: 14px;
    display: flex; align-items: center; justify-content: center; gap: 10px;
    background: linear-gradient(135deg, #1e5fb0 0%, #2471b8 100%);
    color: white; border: none; border-radius: 10px;
    font-size: 12pt; font-weight: bold;
    cursor: pointer;
    transition: transform 0.1s, box-shadow 0.2s;
    box-shadow: 0 4px 18px rgba(36, 113, 184, 0.4);
    margin-top: 4px;
}
.btn-entrar-new:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 24px rgba(36, 113, 184, 0.6);
}
.btn-entrar-new:active { transform: translateY(0); }

/* Rodapé */
.login-footer {
    margin-top: 20px;
    color: rgba(255, 255, 255, 0.35);
    font-size: 8pt; letter-spacing: 1px;
    text-align: center;
}

/* DASHBOARD LAYOUT */
.dashboard { display:flex; min-height:100vh; }
.sidebar { width:220px; min-width:220px; background:var(--sidebar-bg); border-right:1px solid var(--accent); display:flex; flex-direction:column; justify-content:space-between; position:fixed; top:0; left:0; bottom:0; z-index:100; }
.sidebar-top { padding:20px 16px 0; }
.sidebar-bottom { padding:16px; }
.sidebar-brand { display:flex; align-items:center; gap:10px; padding:0 4px 20px; border-bottom:1px solid #1a2d40; margin-bottom:16px; }
.brand-icon {
    font-size:22px; color:var(--accent-light);
    width: 36px; height: 36px;
    display: flex; align-items: center; justify-content: center;
}
.brand-icon img { width: 100%; height: 100%; object-fit: contain; }
.brand-text { font-size:13pt; color:white; font-weight:bold; }
.sidebar-section-label { color:#34495E; font-size:8pt; font-weight:bold; margin:8px 0 4px 4px; }
.sidebar-btn { display:block; width:100%; text-align:left; padding:10px 12px; background:transparent; color:#BDC3C7; border:none; border-radius:6px; font-size:11pt; cursor:pointer; margin-bottom:2px; }
.sidebar-btn:hover { background:var(--accent); color:white; }
.sidebar-dropdown .dropdown-menu { margin-left:12px; overflow:hidden; max-height:300px; transition:max-height .25s; }
.sidebar-dropdown .dropdown-menu.hidden { max-height:0; }
.dropdown-arrow { float:right; transition:transform .25s; }
.sidebar-dropdown.open .dropdown-arrow { transform:rotate(180deg); }
.dropdown-menu a { display:block; padding:8px 12px; color:#BDC3C7; font-size:10pt; border-radius:4px; }
.dropdown-menu a:hover { background:var(--accent); color:white; text-decoration:none; }
.dropdown-divider { height:1px; background:var(--accent); margin:6px 8px; }

/* Profile & Main */
.profile-card { background:var(--bg); border:1px solid var(--accent); border-radius:14px; padding:16px; text-align:center; }
.profile-avatar { width:64px; height:64px; border-radius:50%; overflow:hidden; margin:0 auto 10px; background:var(--card-bg); display:flex; align-items:center; justify-content:center; }
.profile-avatar img { width:100%; height:100%; object-fit:cover; }
.avatar-letter { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:24pt; font-weight:bold; color:white; background:var(--accent); }
.profile-name { color:white; font-weight:bold; }
.profile-role { color:var(--text-muted); font-size:8pt; margin:4px 0 12px; }
.logout-btn { display:inline-block; padding:6px 16px; color:var(--red-light); border:1px solid var(--red); border-radius:6px; font-size:9pt; cursor:pointer; }
.logout-btn:hover { background:var(--red); color:white; text-decoration:none; }

.main-content { margin-left:220px; flex:1; }
.main-header { display:flex; justify-content:space-between; align-items:center; padding:20px 28px; border-bottom:1px solid #1a2d40; }
.main-header h2 { color:white; font-size:14pt; }
.relogio { color:var(--text-muted); font-family:Consolas,monospace; }
.conn-dot { width:10px; height:10px; border-radius:50%; display:inline-block; margin-left:10px;}
.conn-on { background:var(--green-light); box-shadow:0 0 6px var(--green); }
.conn-off { background:var(--red-light); box-shadow:0 0 6px var(--red); }

/* CARDS GRID */
.cards-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:20px; padding:24px 28px; }
.tech-card { border-radius:14px; padding:20px; text-align:center; border:2px solid transparent; transition:transform .15s, box-shadow .15s; }
.tech-card:hover { transform:translateY(-3px); box-shadow:0 6px 20px rgba(0,0,0,.3); }
.card-livre { background:#63EBA0; border-color:#17DB69; } .card-ocupado { background:#C5867F; border-color:#E74C3C; }
.card-almoco { background:#D3A55B; border-color:#F39C12; } .card-indisponivel { background:#BBBBBB; border-color:#FFFFFF; }
.card-fim_expediente { background:#A5BFDB; border-color:#2893DA; }

.card-avatar { width:72px; height:72px; border-radius:50%; overflow:hidden; margin:0 auto 8px; background:rgba(0,0,0,.15); display:flex; align-items:center; justify-content:center; }
.card-avatar img { width:100%; height:100%; object-fit:cover; }
.card-avatar .avatar-letter { font-size:28pt; background:rgba(0,0,0,.2); width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
.card-name { font-size:13pt; font-weight:bold; color:#2C3E50; } .card-role { font-size:9pt; color:#000; margin-bottom:6px; }
.card-divider { height:1px; background:rgba(0,0,0,.15); margin:8px 0; }
.card-status { font-size:12pt; font-weight:bold; margin:6px 0 4px; }
.card-livre .card-status { color:#1A7A45; } .card-ocupado .card-status { color:#B03A2E; } .card-almoco .card-status { color:#B7770D; }
.card-indisponivel .card-status { color:#717D7E; } .card-fim_expediente .card-status { color:#1A5276; }
.card-detail { font-size:9pt; color:#555; min-height:24px; word-break:break-word; }
.card-schedule { font-size:9pt; color:#2471A3; margin-top:4px; } .card-count { font-size:10pt; color:#1b3436; margin-top:4px; font-weight:bold; }

.btn-encaminhar { margin-top:12px; padding:8px 16px; background:#27AE60; color:white; border:none; border-radius:6px; font-weight:bold; font-size:9pt; cursor:pointer; }
.btn-encaminhar:hover { background:#1E8449; }

/* MODALS */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:1000; align-items:center; justify-content:center; backdrop-filter:blur(3px); }
.modal-overlay.show { display:flex; }
.modal-card { background:var(--sidebar-bg); border:1px solid var(--accent); border-radius:14px; width:90%; max-width:480px; animation:modalIn .25s ease; }
.modal-small { max-width:380px; }
@keyframes modalIn { from{transform:scale(.9);opacity:0} to{transform:none;opacity:1} }
.modal-header { display:flex; justify-content:space-between; align-items:center; padding:18px 22px; border-bottom:1px solid #1a2d40; }
.modal-header h3 { color:white; font-size:13pt; } .modal-close { background:none; border:none; color:var(--text-muted); font-size:16pt; cursor:pointer; }
.modal-body { padding:22px; } .modal-subtitle { color:var(--text-muted); font-size:9pt; margin-bottom:14px; }

.status-options { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.status-opt { flex:1 1 calc(50% - 8px); padding:12px 8px; border:2px solid transparent; border-radius:8px; cursor:pointer; font-weight:bold; font-size:10pt; text-align:center; }
.opt-livre { background:#63EBA0; color:#1A7A45; } .opt-ocupado { background:#C5867F; color:#B03A2E; }
.opt-almoco { background:#D3A55B; color:#B7770D; } .opt-indisponivel { background:#BBBBBB; color:#717D7E; } .opt-fim { background:#A5BFDB; color:#1A5276; }
.status-opt.sel { box-shadow:0 0 0 3px rgba(255,255,255,0.6); transform:scale(1.03); }

.campo-extra { margin-bottom:14px; } .campo-extra label { display:block; color:var(--text-muted); font-size:9pt; margin-bottom:4px; }
.campo-extra input { width:100%; padding:8px 12px; background:var(--card-bg); color:var(--text); border:1px solid var(--accent); border-radius:6px; font-size:10pt; outline:none; }
.hidden { display:none !important; }

.btn-confirmar { width:100%; padding:12px; background:var(--accent); color:white; border:none; border-radius:8px; font-size:11pt; font-weight:bold; cursor:pointer; }
.btn-confirmar:hover { background:var(--accent-light); }
.btn-green { background:var(--green); } .btn-green:hover { background:var(--green-light); }
.btn-cancelar { padding:10px 20px; background:#2c3e50; color:var(--text); border:none; border-radius:8px; cursor:pointer; }
.btn-danger { padding:10px 20px; background:var(--red); color:white; border:none; border-radius:8px; cursor:pointer; font-weight:bold; }
.modal-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:16px; }
.horario-row { display:flex; align-items:center; gap:12px; margin:16px 0; }
.horario-row select { padding:8px 12px; background:var(--card-bg); color:var(--text); border:1px solid var(--accent); border-radius:6px; font-size:11pt; }

/* PAGES (Config, Tecnicos) */
.page-wrapper { min-height:100vh; padding:30px; } .page-card { max-width:800px; margin:0 auto; background:var(--sidebar-bg); border:1px solid var(--accent); border-radius:14px; padding:28px; }
.page-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; border-bottom:1px solid #1a2d40; padding-bottom:14px; }
.page-header h2 { color:white; } .btn-voltar { padding:8px 16px; background:var(--accent); color:white; border-radius:6px; font-size:9pt; }
.text-muted { color:var(--text-muted); }
.loading-placeholder { grid-column:1/-1; text-align:center; padding:60px 20px; color:var(--text-muted); }
.spinner { width:36px; height:36px; border:3px solid var(--accent); border-top-color:transparent; border-radius:50%; animation:spin .8s linear infinite; margin:0 auto 16px; }
@keyframes spin { to{transform:rotate(360deg)} }

.upload-area { border:2px dashed var(--accent); border-radius:12px; padding:30px; text-align:center; cursor:pointer; margin-bottom:14px; }
.upload-icon { font-size:28pt; display:block; margin-bottom:8px; }
.form-actions { margin-top: 16px; }

@media (max-width:768px) {
    .sidebar { width:60px; min-width:60px; } .sidebar .brand-text, .sidebar .sidebar-section-label, .sidebar .dropdown-menu, .sidebar .profile-name, .sidebar .profile-role { display:none; }
    .sidebar .sidebar-brand { justify-content:center; } .main-content { margin-left:60px; }
    .cards-grid { grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); }
}
/* ESTILOS DE DIFICULDADE E SELECT */
.select-dificuldade {
    width: 100%; padding: 10px 12px; background: var(--card-bg); color: var(--text);
    border: 1px solid var(--accent); border-radius: 6px; font-size: 11pt; outline: none;
    cursor: pointer; margin-top: 6px;
}
.select-dificuldade:focus { border-color: var(--accent-light); }

.badge-dificuldade {
    display: inline-block; padding: 3px 10px; border-radius: 12px;
    font-size: 8pt; font-weight: bold; margin-top: 6px; color: white;
}
.badge-facil { background-color: #27AE60; }
.badge-medio { background-color: #F39C12; color: #2C3E50; }
.badge-dificil { background-color: #C0392B; }

.card-motivo-indisponivel {
    font-size: 8pt; color: #717D7E; font-style: italic; margin-top: 2px;
}
/* ── DASHBOARD CARDS ─────────────────────────────── */
.dash-cards-grid {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 20px 28px;
}
.dash-card {
    background: var(--card-bg);
    border: 1px solid var(--accent);
    border-radius: 10px;
    overflow: hidden;
}
.dash-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    cursor: pointer;
    user-select: none;
    transition: background 0.2s;
}
.dash-card-header:hover { background: #1a2d40; }
.dash-card-identity { display: flex; align-items: center; gap: 14px; }
.dash-avatar {
    width: 48px; height: 48px;
    border-radius: 50%; overflow: hidden;
    border: 2px solid var(--accent);
    background: #1a2d40;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.dash-avatar img { width: 100%; height: 100%; object-fit: cover; }
.dash-avatar .avatar-letter { font-size: 18pt; font-weight: bold; color: var(--text); background: var(--accent); width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.dash-card-nome  { font-size: 11pt; font-weight: bold; color: var(--text); }
.dash-card-cargo { font-size: 9pt; color: var(--text-muted); margin-top: 2px; }
.dash-card-horario { font-size: 9pt; color: #5a7a9a; margin-top: 2px; }
.dash-card-right { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.dash-status-badge { padding: 4px 10px; border-radius: 12px; font-size: 9pt; font-weight: bold; white-space: nowrap; }
.dash-status-badge.st-livre        { background: #1a3d2a; color: #2ecc71; }
.dash-status-badge.st-ocupado      { background: #3d1a1a; color: #e74c3c; }
.dash-status-badge.st-almoco       { background: #3d3010; color: #f39c12; }
.dash-status-badge.st-indisponivel { background: #1a1a2a; color: #7F8C8D; }
.dash-status-badge.st-fim          { background: #0d1e2e; color: #2893DA; }
.dash-expand-arrow { color: var(--text-muted); font-size: 14pt; transition: transform 0.2s; }
.dash-metrics-bar {
    display: flex;
    border-top: 1px solid #1a2d40;
    border-bottom: 1px solid #1a2d40;
}
.dash-metric {
    flex: 1;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    padding: 10px 6px;
    border-right: 1px solid #1a2d40;
}
.dash-metric:last-child { border-right: none; }
.dash-metric-val { font-size: 14pt; font-weight: bold; color: var(--text); }
.dash-metric-lbl { font-size: 8pt; color: var(--text-muted); margin-top: 2px; }
.dash-metric-recusa .dash-metric-val { color: var(--red-light); }
.dash-card-body { padding: 16px 18px; border-top: 1px solid #1a2d40; }
.dash-section { margin-bottom: 18px; }
.dash-section:last-child { margin-bottom: 0; }
.dash-section-title { font-size: 8pt; font-weight: bold; color: #5a7a9a; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 10px; }
.dash-dificuldade-bar { display: flex; gap: 8px; flex-wrap: wrap; }
.dif-badge { padding: 4px 12px; border-radius: 10px; font-size: 9pt; font-weight: bold; }
.dif-facil  { background: #1a3d2a; color: #2ecc71; }
.dif-medio  { background: #3d3010; color: #f39c12; }
.dif-dificil{ background: #3d1a1a; color: #e74c3c; }
.dash-hist-table { width: 100%; border-collapse: collapse; font-size: 9pt; color: var(--text); }
.dash-hist-table th { text-align: left; padding: 6px 8px; color: var(--text-muted); border-bottom: 1px solid #1a2d40; font-weight: normal; }
.dash-hist-table td { padding: 6px 8px; border-bottom: 1px solid #0d1a26; }
.dash-hist-table tr:last-child td { border-bottom: none; }
.dash-resumo-mes { display: flex; gap: 24px; }
.dash-resumo-item { display: flex; flex-direction: column; align-items: center; }
.dash-resumo-val { font-size: 20pt; font-weight: bold; color: var(--text); }
.dash-resumo-lbl { font-size: 9pt; color: var(--text-muted); }
.dash-resumo-recusa .dash-resumo-val { color: var(--red-light); }
.dashboard-container { padding: 24px 28px; }
.dash-table { width: 100%; border-collapse: collapse; background: var(--sidebar-bg); border-radius: 12px; overflow: hidden; }
.dash-table th { background: var(--accent); color: white; padding: 14px 16px; text-align: left; font-size: 10pt; }
.dash-table td { padding: 12px 16px; border-bottom: 1px solid #1a2d40; color: var(--text); font-size: 10pt; }
.dash-table tr:hover td { background: var(--card-bg); }

.dash-badge { padding: 4px 10px; border-radius: 12px; font-size: 8pt; font-weight: bold; color: white; display: inline-block; }
.dash-livre { background: #27AE60; } .dash-ocupado { background: #C0392B; } 
.dash-almoco { background: #F39C12; color: #2C3E50; } .dash-indisponivel { background: #7F8C8D; }
.dash-fim { background: #2893DA; }

.mini-badge { padding: 2px 8px; border-radius: 10px; font-size: 8pt; margin-right: 4px; display: inline-block; background: #1a2d40; color: var(--text-muted);}
/* =========================================
   CORREÇÕES DE LAYOUT E NOVOS BOTÕES RÁPIDOS
   ========================================= */

/* Corrige Cards lado a lado (Problema 3) */
.main-content { 
    flex: 1; 
    margin-left: 220px; 
    min-width: 0; /* Importante para o flex funcionar */
}
.cards-grid { 
    display: flex; 
    flex-wrap: wrap; 
    gap: 20px; 
    padding: 24px 28px; 
}
/* Cards com tamanho FIXO e igual */
.tech-card { 
    flex: 0 0 260px;      /* LARGURA FIXA: não cresce, não encolhe, sempre 260px */
    max-width: 260px; 
    min-height: 310px;     /* Altura mínima para igualar visualmente */
    border-radius: 14px; 
    padding: 20px; 
    text-align: center;
    border: 2px solid transparent; 
    transition: transform .15s, box-shadow .15s;
    display: flex;
    flex-direction: column;
    align-items: center;
}
/* Garante que detalhes e contagem fiquem na base do card */
.card-detail { font-size:9pt; color:#555; min-height:24px; word-break:break-word; flex-grow: 1; display: flex; align-items: center; }
.card-count { font-size:10pt; color:#1b3436; margin-top:auto; font-weight:bold; width: 100%; }
.btn-encaminhar { margin-top:auto; padding:8px 16px; background:#27AE60; color:white; border:none; border-radius:6px; font-weight:bold; font-size:9pt; cursor:pointer; width: 100%; }
.tech-card:hover { transform:translateY(-3px); box-shadow:0 6px 20px rgba(0,0,0,.3); }

/* Botões de Status Rápidos na Sidebar (Problema 4) */
.status-btn-group { display: flex; flex-direction: column; gap: 4px; margin-bottom: 10px; }
.status-btn-inline {
    padding: 8px 10px; border: none; border-radius: 6px; font-weight: bold;
    font-size: 9pt; cursor: pointer; width: 100%; text-align: left;
    transition: filter 0.2s;
}
.status-btn-inline:hover { filter: brightness(1.2); }
.btn-st-livre { background: #63EBA0; color: #1A7A45; }
.btn-st-ocupado { background: #C5867F; color: #B03A2E; }
.btn-st-almoco { background: #D3A55B; color: #B7770D; }
.btn-st-indisponivel { background: #BBBBBB; color: #717D7E; }

/* Campos extras dentro da sidebar */
.campos-adicionais-side { margin-bottom: 10px; text-align: left; }
.campos-adicionais-side label { color: #7F8C8D; font-size: 8pt; display: block; margin-top: 6px; margin-bottom: 2px; }
.campos-adicionais-side input, .campos-adicionais-side select {
    width: 100%; padding: 6px 8px; background: var(--card-bg); color: var(--text);
    border: 1px solid var(--accent); border-radius: 4px; font-size: 9pt; outline: none;
}
.campos-adicionais-side input:focus, .campos-adicionais-side select:focus { border-color: var(--accent-light); }
/* Estilo do Input de Senha */
.form-group input[type="password"] {
    width:100%; padding:12px 16px; background:var(--card-bg); color:var(--text);
    border:1px solid #1a2d40; border-radius:10px; font-size:11pt; outline:none;
    transition: border-color 0.2s; box-sizing: border-box;
}
.form-group input[type="password"]:focus { 
    border-color:var(--accent-light); 
    box-shadow: 0 0 0 3px rgba(36, 113, 184, 0.2);
}
.form-group input[type="password"]::placeholder { color: #5a6a7a; }

/* ── WALLPAPER ─────────────────────────────── */
.modal-wallpaper { max-width: 700px; }
.wallpaper-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    max-height: 380px;
    overflow-y: auto;
    padding-right: 4px;
}
.wp-thumb {
    height: 90px;
    border-radius: 8px;
    background-size: cover;
    background-position: center;
    cursor: pointer;
    border: 3px solid transparent;
    position: relative;
    overflow: hidden;
    transition: transform 0.15s, border-color 0.15s;
}
.wp-thumb:hover { transform: scale(1.04); border-color: var(--accent-light); }
.wp-thumb.wp-selected { border-color: var(--green-light); box-shadow: 0 0 10px rgba(46,204,113,0.5); }
.wp-label {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    background: rgba(0,0,0,0.55);
    color: white;
    font-size: 8pt;
    text-align: center;
    padding: 4px;
    backdrop-filter: blur(2px);
}

/* Overlay escuro sobre o body quando wallpaper ativo */
/*body.has-wallpaper .dashboard::before {
    content: '';
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 0;
    pointer-events: none;
}
/* ── MODO TV (fullscreen sem sidebar para projetor) ─────────── */
body.modo-tv .sidebar { display: none !important; }
body.modo-tv .main-content { margin-left: 0 !important; }
body.modo-tv .main-header h2 { font-size: 22pt; }
body.modo-tv .cards-grid {
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 20px; padding: 20px 40px;
}
body.modo-tv .tech-card { padding: 26px; transform: scale(1); }
body.modo-tv .tech-card .nome { font-size: 14pt; }
body.modo-tv .tech-card .status-text { font-size: 11pt; }
body.modo-tv .relogio { font-size: 16pt; font-weight: bold; }
body.modo-tv #conn-status { width: 14px; height: 14px; }
body.modo-tv #view-dashboard { display: none !important; }
body.modo-tv #view-painel { display: block !important; }

/* Botão flutuante para sair do modo TV */
.tv-exit-btn {
    display: none;
    position: fixed; top: 14px; right: 14px; z-index: 1000;
    width: 44px; height: 44px; border-radius: 50%;
    background: rgba(0,0,0,0.5); color: white;
    border: 1px solid rgba(255,255,255,0.2);
    font-size: 14pt; cursor: pointer;
    transition: background 0.2s;
    backdrop-filter: blur(8px);
}
.tv-exit-btn:hover { background: rgba(0,0,0,0.75); }
body.modo-tv .tv-exit-btn { display: flex; align-items: center; justify-content: center; }

/* ── FEED DE ATIVIDADES (Supervisor) ─────────── */
.feed-lista { padding: 20px 28px; display:flex; flex-direction:column; gap:10px; }
.feed-item {
    background: var(--card-bg);
    border: 1px solid #1a2d40;
    border-left: 4px solid #1B4F8A;
    border-radius: 10px;
    padding: 12px 14px;
    display: flex; gap: 14px; align-items: flex-start;
    animation: feedFadeIn .35s ease-out;
}
@keyframes feedFadeIn { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:none; } }
.feed-item.feed-recusa      { border-left-color: #e74c3c; }
.feed-item.feed-finalizacao { border-left-color: #2ecc71; }
.feed-item.feed-aceite      { border-left-color: #3498db; }
.feed-item.feed-marco       { border-left-color: #f39c12; background: linear-gradient(90deg, rgba(243,156,18,0.08) 0%, var(--card-bg) 60%); }
.feed-icone { font-size: 18pt; line-height: 1; flex-shrink: 0; }
.feed-conteudo { flex: 1; min-width: 0; }
.feed-mensagem { color: var(--text); font-size: 10.5pt; }
.feed-justificativa {
    margin-top: 6px;
    padding: 6px 10px;
    background: rgba(231, 76, 60, 0.1);
    border-left: 2px solid #e74c3c;
    color: #ffb3a8; font-style: italic; font-size: 9.5pt;
    border-radius: 4px;
}
.feed-tempo { color: var(--text-muted); font-size: 8.5pt; margin-top: 4px; }

.feed-filters { display:flex; gap:6px; }
.feed-filtro {
    padding: 6px 14px; background: transparent;
    color: var(--text-muted); border: 1px solid #1a2d40;
    border-radius: 16px; cursor: pointer; font-size: 9pt; font-weight: bold;
    transition: all .15s;
}
.feed-filtro:hover { color: var(--text); border-color: var(--accent-light); }
.feed-filtro.active { background: var(--accent); border-color: var(--accent); color: white; }

.feed-badge {
    display: inline-block;
    background: #e74c3c; color: white;
    border-radius: 10px; padding: 1px 7px;
    font-size: 8.5pt; font-weight: bold;
    margin-left: 6px;
    min-width: 18px; text-align: center;
}
.feed-badge.hidden { display: none; }

/* ── DIVISOR ENTRE GRUPOS DE CARDS (N2 e Equipe N1) ───── */
.grid-divisor {
    flex-basis: 100%;          /* força ocupar a linha inteira no flexbox */
    width: 100%;
    display: flex; align-items: center; gap: 14px;
    margin: 32px 0 14px;
    padding: 0;
    color: #DDE6ED;
    font-size: 11pt; font-weight: bold;
    text-transform: uppercase; letter-spacing: 1.5px;
}
.grid-divisor::before,
.grid-divisor::after {
    content: '';
    flex: 1; height: 2px;
    background: linear-gradient(to right, transparent, #1B4F8A 30%, #1B4F8A 70%, transparent);
}
.grid-divisor span {
    white-space: nowrap; padding: 4px 16px;
    background: rgba(27, 79, 138, 0.15);
    border: 1px solid #1B4F8A;
    border-radius: 20px;
    color: #5fa8e8;
}

/* ── CARDS DA EQUIPE (N1 / Supervisor — só presença) ── */
.card-presenca-equipe {
    opacity: 0.85;
}
.card-presenca-equipe.card-livre {
    opacity: 1;
    border-color: #2ecc71 !important;
}
.card-presenca-equipe.card-indisponivel {
    opacity: 0.65;
}
/* Esconde elementos que não fazem sentido nestes cards */
.card-presenca-equipe .card-detail,
.card-presenca-equipe .card-schedule,
.card-presenca-equipe .card-count { display: none; }

/* ── BOTÕES EXPORTAR ───────────────────────── */
.btn-export {
    padding: 6px 14px; background: var(--accent);
    color: white; border: none; border-radius: 6px;
    font-size: 9pt; font-weight: bold; cursor: pointer;
    margin-left: 8px; transition: background .15s;
}
.btn-export:hover { background: var(--accent-light); }

/* ── LINK DE CHAMADO (URL do GLPI) ─────────────────────── */
.link-chamado {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--accent-light);
    text-decoration: none;
    font-weight: bold;
    padding: 2px 6px;
    border-radius: 4px;
    background: rgba(36, 113, 184, 0.12);
    border: 1px solid rgba(36, 113, 184, 0.3);
    transition: all 0.15s;
    font-size: 9.5pt;
}
.link-chamado:hover {
    background: rgba(36, 113, 184, 0.25);
    border-color: var(--accent-light);
    color: white;
}

/* ── MENU DE 3 PONTINHOS NO CARD ───────────────────────── */
.card-menu {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 10;
}

/* ═══ LOGIN INSTITUCIONAL — DUAS COLUNAS ════════════════════════════════ */
.login-page {
    background:#071a2c;
    overflow-x:hidden;
    overflow-y:auto;
}
.login-backdrop { position:fixed; inset:0; overflow:hidden; pointer-events:none; }
.login-backdrop::before {
    content:""; position:absolute; inset:0;
    background:
        radial-gradient(circle at 12% 18%, rgba(18,126,206,.25), transparent 35%),
        radial-gradient(circle at 82% 80%, rgba(16,91,157,.22), transparent 38%),
        linear-gradient(118deg, #071d36 0%, #061629 48%, #09233c 100%);
}
.login-shape { position:absolute; display:block; transform:rotate(29deg); border-radius:40px; }
.login-shape-a {
    width:330px; height:900px; left:43%; top:-300px;
    background:linear-gradient(90deg, transparent, rgba(55,112,158,.11), transparent);
}
.login-shape-b {
    width:250px; height:720px; left:31%; top:350px;
    background:linear-gradient(90deg, transparent, rgba(23,80,126,.16), transparent);
}
.login-glow {
    position:absolute; width:720px; height:720px; right:-220px; top:-260px;
    border-radius:50%; background:rgba(37,102,151,.12); filter:blur(70px);
}
.login-shell {
    position:relative; z-index:1; width:min(1260px, calc(100% - 64px)); min-height:100vh;
    margin:auto; padding:44px 0; display:grid; grid-template-columns:minmax(0, .9fr) minmax(520px, 1.1fr);
    align-items:center; gap:86px;
}
.login-welcome { text-align:center; padding:30px 0; }
.login-welcome-logo {
    width:138px; height:138px; object-fit:contain; margin-bottom:30px;
    filter:drop-shadow(0 14px 25px rgba(0,0,0,.35));
}
.login-welcome h1 {
    color:#fff; font-size:clamp(30px, 3.1vw, 47px); line-height:1.08;
    letter-spacing:-1.2px; font-weight:750; text-shadow:0 4px 18px rgba(0,0,0,.22);
}
.login-welcome p { margin-top:15px; color:#aab8c8; font-size:clamp(17px, 1.5vw, 23px); }
.login-server-status {
    width:max-content; margin:34px auto 0; padding:11px 20px; border-radius:999px;
    display:flex; align-items:center; gap:10px; font-size:15px; border:1px solid;
    background:linear-gradient(145deg, rgba(23,70,111,.78), rgba(7,29,54,.86));
    box-shadow:0 8px 20px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.035);
}
.login-server-status.is-online { color:#58d990; border-color:rgba(53,197,119,.32); }
.login-server-status.is-offline { color:#ff8a80; border-color:rgba(231,76,60,.38); }
.status-light { width:13px; height:13px; border-radius:50%; }
.is-online .status-light { background:#41db85; box-shadow:0 0 8px #41db85, 0 0 17px rgba(65,219,133,.75); }
.is-offline .status-light { background:#e74c3c; box-shadow:0 0 12px rgba(231,76,60,.8); }
.login-access-card {
    width:100%; padding:56px 58px 32px; border-radius:22px;
    background:linear-gradient(145deg, rgba(23,70,111,.92), rgba(7,29,54,.96));
    border:2px solid rgba(103,159,202,.68);
    box-shadow:0 28px 70px rgba(0,0,0,.34), 0 0 22px rgba(26,126,196,.1), inset 0 1px 0 rgba(255,255,255,.055);
    backdrop-filter:blur(22px) saturate(125%); -webkit-backdrop-filter:blur(22px) saturate(125%);
}
.login-access-form .form-group { margin-bottom:27px; }
.login-access-form .form-group > label {
    color:#b9c5d1; font-size:14px; letter-spacing:.2px; margin-bottom:11px;
}
.login-access-card .perfil-tabs {
    gap:5px; padding:6px; min-height:66px; align-items:stretch;
    border-color:rgba(103,159,202,.46); background:rgba(5,27,49,.76); border-radius:13px;
}
.login-access-card .perfil-tab {
    display:flex; align-items:center; justify-content:center; padding:12px 8px;
    font-size:14px; white-space:nowrap; border-radius:9px;
}
.login-access-card .perfil-tabs input:checked + .perfil-tab {
    background:linear-gradient(135deg, rgba(18,126,206,.96), rgba(16,91,157,.96));
    border:1px solid rgba(102,193,245,.72);
    box-shadow:0 7px 17px rgba(0,78,145,.28), inset 0 1px 0 rgba(255,255,255,.1);
}
.login-access-card .perfil-tabs input:checked + .perfil-tab::after {
    content:"✓"; font-size:16px; margin-left:9px;
}
.login-access-card .select-wrapper select,
.login-password-wrap {
    height:66px; border:1px solid rgba(103,159,202,.46); border-radius:12px;
    background:rgba(5,27,49,.76); box-shadow:inset 0 2px 8px rgba(0,0,0,.16);
}
.login-access-card .select-wrapper select {
    padding:0 50px 0 20px; font-size:17px;
}
.login-password-wrap { display:flex; align-items:center; padding:0 18px; color:#7890a5; }
.login-access-card .login-password-wrap input[type="password"] {
    height:100%; flex:1; min-width:0; padding:0 0 0 13px; border:0; background:transparent;
    box-shadow:none; font-size:17px;
}
.login-access-card .login-password-wrap input[type="password"]:focus {
    border:0; background:transparent; box-shadow:none;
}
.login-password-wrap:focus-within,
.login-access-card .select-wrapper select:focus {
    border-color:#4bb8f2; box-shadow:0 0 0 3px rgba(42,164,230,.13), 0 0 14px rgba(42,164,230,.1);
}
.login-access-card .select-arrow { right:21px; font-size:17px; }
.login-access-card .btn-entrar-new {
    min-height:66px; margin-top:32px; border-radius:12px; font-size:17px;
    background:linear-gradient(135deg, #127ece, #105b9d); border:1px solid rgba(102,193,245,.5);
    box-shadow:0 10px 24px rgba(0,78,145,.28), inset 0 1px 0 rgba(255,255,255,.1);
}
.login-access-card .btn-entrar-new:hover {
    background:linear-gradient(135deg, #168ddd, #126aaf);
    box-shadow:0 15px 34px rgba(0,91,160,.4), 0 0 16px rgba(75,184,242,.14);
}
.login-access-card .btn-entrar-new:disabled { opacity:.72; cursor:wait; transform:none; }
.login-access-card .login-erro-new { margin:0 0 24px; }
.login-access-card .login-footer { margin-top:31px; color:#8495a8; font-size:13px; letter-spacing:0; }
.login-access-card .login-footer span { margin:0 4px; }

@media (max-width: 980px) {
    .login-shell { grid-template-columns:1fr; width:min(620px, calc(100% - 36px)); gap:22px; padding:34px 0; }
    .login-welcome { padding:0; }
    .login-welcome-logo { width:88px; height:88px; margin-bottom:14px; }
    .login-welcome h1 { font-size:31px; }
    .login-welcome p { margin-top:8px; font-size:16px; }
    .login-server-status { margin-top:18px; padding:8px 15px; font-size:13px; }
    .login-access-card { padding:38px 36px 25px; }
}
@media (max-width: 560px) {
    .login-shell {
        width:min(100% - 20px, 460px); min-height:100dvh;
        gap:14px; padding:14px 0;
    }
    .login-welcome-logo { width:60px; height:60px; margin-bottom:6px; }
    .login-welcome h1 { font-size:23px; }
    .login-welcome p { margin-top:5px; font-size:13px; }
    .login-server-status { margin-top:10px; padding:7px 13px; font-size:12px; }
    .login-access-card { padding:22px 16px 16px; border-radius:17px; }
    .login-access-card .perfil-tabs { min-height:54px; }
    .login-access-card .perfil-tab { padding:8px 3px; font-size:10.5px; }
    .login-access-card .perfil-tabs input:checked + .perfil-tab::after { margin-left:3px; font-size:12px; }
    .login-access-card .select-wrapper select, .login-password-wrap { height:54px; }
    .login-access-card .select-wrapper select,
    .login-access-card .login-password-wrap input[type="password"] { font-size:16px; }
    .login-access-card .btn-entrar-new { min-height:54px; margin-top:18px; font-size:16px; }
    .login-access-form .form-group { margin-bottom:17px; }
    .login-access-form .form-group > label { margin-bottom:8px; font-size:13px; }
    .login-access-card .login-footer { margin-top:22px; font-size:12px; }
}
.form-group .codigo-2fa-input {
    width:100%; padding:14px 16px; background:rgba(5,27,49,.76); color:white;
    border:1px solid rgba(103,159,202,.46); border-radius:10px; outline:none;
    font-size:20pt; letter-spacing:8px; text-align:center;
}
.form-group .codigo-2fa-input:focus {
    border-color:#4bb8f2; background:rgba(5,27,49,.9);
    box-shadow:0 0 0 3px rgba(42,164,230,.13), 0 0 14px rgba(42,164,230,.1);
}
.ajuda-2fa { color:var(--text-muted); font-size:8.5pt; margin-top:8px; display:block; text-align:center; }
.aviso-confianca { margin-top:16px; padding:10px; border-radius:8px; background:rgba(39,174,96,.1); color:#7ee2a8; font-size:8.5pt; text-align:center; }
.card-menu-btn {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: var(--text);
    width: 26px;
    height: 26px;
    border-radius: 50%;
    font-size: 16pt;
    cursor: pointer;
    padding: 0;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s;
}
.card-menu-btn:hover {
    background: var(--accent);
    border-color: var(--accent-light);
}
.card-menu-popup {
    position: absolute;
    top: 32px;
    right: 0;
    min-width: 220px;
    background: #0f2030;
    border: 1px solid #1B4F8A;
    border-radius: 8px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.5);
    padding: 6px;
    z-index: 100;
}
.card-menu-popup.hidden { display: none; }
.card-menu-popup a {
    display: block;
    padding: 8px 12px;
    color: var(--text);
    text-decoration: none;
    border-radius: 4px;
    font-size: 9.5pt;
    white-space: nowrap;
}
.card-menu-popup a:hover {
    background: var(--accent);
    color: white;
}

/* Garante que o card seja position relative para o menu absoluto funcionar */
.tech-card { position: relative; }
.card-sugestao {
    position:absolute; top:10px; left:10px; z-index:2;
    padding:5px 9px; border-radius:999px;
    background:#fff4c2; color:#7a5700; border:1px solid #e2b93b;
    box-shadow:0 2px 8px rgba(0,0,0,.16), 0 0 0 rgba(241,196,15,0);
    font-size:8pt; line-height:1; font-weight:800;
    overflow:hidden; isolation:isolate;
    animation:sugestaoPulse 2.2s ease-in-out infinite;
}
.card-sugestao::after {
    content:""; position:absolute; z-index:-1; top:-80%; bottom:-80%; left:-45%; width:28%;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,.9), transparent);
    transform:rotate(18deg); animation:sugestaoReflexo 2.8s ease-in-out infinite;
}
@keyframes sugestaoPulse {
    0%, 100% { transform:translateY(0) scale(1); box-shadow:0 2px 8px rgba(0,0,0,.16), 0 0 0 rgba(241,196,15,0); }
    50% { transform:translateY(-1px) scale(1.035); box-shadow:0 3px 10px rgba(0,0,0,.18), 0 0 13px rgba(241,196,15,.72); }
}
@keyframes sugestaoReflexo {
    0%, 28% { left:-45%; opacity:0; }
    38% { opacity:1; }
    62% { left:120%; opacity:.9; }
    63%, 100% { left:120%; opacity:0; }
}
@media (prefers-reduced-motion: reduce) {
    .card-sugestao, .card-sugestao::after { animation:none; }
}

/* ═══ BARRA LATERAL — MESMA IDENTIDADE DOS CARDS ══════════════════════ */
.sidebar {
    background:linear-gradient(160deg, rgba(23,70,111,.97), rgba(7,29,54,.985));
    border-right:1px solid rgba(103,159,202,.68);
    box-shadow:12px 0 30px rgba(0,0,0,.25), inset -1px 0 0 rgba(255,255,255,.035);
    backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
}
.sidebar-brand { border-bottom-color:rgba(103,159,202,.34); }
.sidebar .brand-text { color:#eef7ff; }
.sidebar-section-label { color:#6f91ad; letter-spacing:.8px; }
.sidebar-btn {
    color:#b8cad9; border:1px solid transparent; border-radius:10px;
    transition:background .18s, border-color .18s, color .18s, transform .18s, box-shadow .18s;
}
.sidebar-btn:hover {
    color:#eef7ff; background:rgba(33,112,171,.48);
    border-color:rgba(103,159,202,.42); transform:translateX(2px);
}
.sidebar-btn.is-active {
    color:#eef7ff; background:linear-gradient(135deg, rgba(18,126,206,.94), rgba(16,91,157,.94));
    border-color:rgba(102,193,245,.72);
    box-shadow:0 7px 17px rgba(0,78,145,.28), inset 0 1px 0 rgba(255,255,255,.1);
}
.sidebar-ponto-btn {
    width:100%; margin:0 0 2px; padding:10px 12px;
    display:flex; align-items:center; justify-content:flex-start; gap:7px;
    border:1px solid transparent; border-radius:10px;
    background:transparent; color:#b8cad9;
    box-shadow:none; font-size:11pt; font-weight:400; cursor:pointer;
    transition:background .18s, border-color .18s, color .18s, transform .18s;
}
.sidebar-ponto-btn:hover {
    color:#eef7ff; background:rgba(33,112,171,.48);
    border-color:rgba(103,159,202,.42); transform:translateX(2px);
}
.sidebar-ponto-btn:active { transform:translateX(0); }
.sidebar-ponto-btn.is-unconfigured { opacity:.62; }
.ponto-clock { font-size:11pt; line-height:1; }
.sidebar-dropdown .dropdown-menu {
    margin-top:4px; padding-left:5px; border-left:1px solid rgba(103,159,202,.3);
}
.dropdown-menu a { color:#9fb5c8; border:1px solid transparent; border-radius:8px; }
.dropdown-menu a:hover {
    color:#eef7ff; background:rgba(33,112,171,.4); border-color:rgba(103,159,202,.3);
}
.dropdown-divider { background:rgba(103,159,202,.32); }
.profile-card {
    background:linear-gradient(145deg, rgba(23,70,111,.92), rgba(7,29,54,.96));
    border:1px solid rgba(103,159,202,.68); border-radius:16px;
    box-shadow:0 12px 28px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.045);
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.profile-avatar {
    background:#193f62; border:2px solid rgba(119,177,219,.9);
    box-shadow:0 5px 15px rgba(0,0,0,.24);
}
.profile-name { color:#eef7ff; }
.profile-role { color:#91a9bf; }
.logout-btn {
    color:#ff9b94; background:rgba(94,25,28,.26); border-color:rgba(231,76,60,.62);
}
.logout-btn:hover { background:rgba(192,57,43,.82); border-color:#e86a5d; }

/* ═══ SUPERFÍCIES INTERNAS — IDENTIDADE VISUAL UNIFICADA ══════════════ */
.main-header {
    background:linear-gradient(145deg, rgba(23,70,111,.9), rgba(7,29,54,.95));
    border-bottom-color:rgba(103,159,202,.46);
    box-shadow:0 8px 22px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.035);
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.main-header h2 { color:#eef7ff; }

.dash-card,
.ranking-card,
.feed-item,
.page-card,
.modal-card {
    background:linear-gradient(145deg, rgba(23,70,111,.92), rgba(7,29,54,.96));
    border:1px solid rgba(103,159,202,.62);
    box-shadow:0 12px 28px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.04);
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.dash-card { border-radius:14px; }
.dash-card-header:hover { background:rgba(33,112,171,.25); }
.dash-avatar {
    background:#193f62; border-color:rgba(119,177,219,.9);
    box-shadow:0 4px 12px rgba(0,0,0,.22);
}
.dash-card-nome, .dash-metric-val, .dash-resumo-val { color:#eef7ff; }
.dash-card-cargo, .dash-card-horario, .dash-metric-lbl, .dash-resumo-lbl { color:#91a9bf; }
.dash-metrics-bar, .dash-card-body { border-color:rgba(103,159,202,.3); }
.dash-metric { border-right-color:rgba(103,159,202,.24); }
.dash-section-title, .ranking-titulo { color:#75a9cf; }
.dash-hist-table th, .dash-hist-table td { border-color:rgba(103,159,202,.22); }
.dash-table {
    background:linear-gradient(145deg, rgba(23,70,111,.92), rgba(7,29,54,.96));
    border:1px solid rgba(103,159,202,.62);
    box-shadow:0 12px 28px rgba(0,0,0,.22); border-radius:14px;
}
.dash-table th { background:linear-gradient(135deg, rgba(18,126,206,.9), rgba(16,91,157,.92)); }
.dash-table td { border-bottom-color:rgba(103,159,202,.24); }
.dash-table tr:hover td { background:rgba(33,112,171,.22); }

.ranking-section { border-bottom-color:rgba(103,159,202,.35); }
.ranking-card { border-radius:14px; }
.ranking-titulo { border-bottom-color:rgba(103,159,202,.3); }
.ranking-linha { background:rgba(25,74,113,.34); }
.ranking-linha:hover { background:rgba(40,105,155,.38); }

.feed-item { border-left-width:4px; border-radius:14px; }
.feed-item.feed-marco {
    background:linear-gradient(90deg, rgba(243,156,18,.1), rgba(23,70,111,.92) 42%, rgba(7,29,54,.96));
}
.feed-mensagem { color:#eef7ff; }
.feed-tempo { color:#91a9bf; }
.feed-filtro, .pico-preset-btn {
    background:rgba(7,29,54,.64); color:#9fb5c8; border-color:rgba(103,159,202,.42);
}
.feed-filtro:hover, .pico-preset-btn:hover { color:#eef7ff; background:rgba(33,112,171,.35); }
.feed-filtro.active, .pico-preset-btn.active {
    color:#eef7ff; background:linear-gradient(135deg, rgba(18,126,206,.94), rgba(16,91,157,.94));
    border-color:rgba(102,193,245,.72); box-shadow:0 5px 14px rgba(0,78,145,.24);
}

.pico-controles {
    background:linear-gradient(145deg, rgba(23,70,111,.86), rgba(7,29,54,.92));
    border-bottom-color:rgba(103,159,202,.4);
    box-shadow:0 8px 20px rgba(0,0,0,.16);
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.pico-periodo-grupo input[type="date"] {
    background:rgba(5,27,49,.76); border-color:rgba(103,159,202,.46); color:#eef7ff;
}
#pico-canvas {
    background:linear-gradient(145deg, rgba(23,70,111,.92), rgba(7,29,54,.96));
    border-color:rgba(103,159,202,.62); border-radius:14px;
    box-shadow:0 12px 28px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.04);
}

.modal-overlay { background:rgba(2,13,24,.72); }
.modal-card { border-radius:16px; }
.modal-header { border-bottom-color:rgba(103,159,202,.34); }
.modal-header h3 { color:#eef7ff; }
.modal-body, .modal-body p { color:#b8cad9; }
.modal-card input:not([type="file"]),
.modal-card select,
.modal-card textarea,
.page-card input,
.page-card select,
.page-card textarea {
    background:rgba(5,27,49,.76); color:#eef7ff;
    border-color:rgba(103,159,202,.46);
}
.modal-card input:focus, .modal-card select:focus, .modal-card textarea:focus,
.page-card input:focus, .page-card select:focus, .page-card textarea:focus {
    border-color:#4bb8f2; box-shadow:0 0 0 3px rgba(42,164,230,.13); outline:none;
}
.page-card { border-radius:16px; }
.page-header { border-bottom-color:rgba(103,159,202,.34); }
.btn-voltar, .btn-export {
    background:linear-gradient(135deg,#087bd8,#0797e6); border:1px solid rgba(102,193,245,.5);
    box-shadow:0 6px 15px rgba(0,113,201,.22);
}
.btn-voltar:hover, .btn-export:hover { background:linear-gradient(135deg,#0b8eec,#13a7f3); }
.btn-cancelar { background:rgba(40,70,96,.72); border:1px solid rgba(103,159,202,.38); }

/* ═══ CARDS MODERNOS — mantém o wallpaper global intacto ═══════════════ */
.cards-grid { gap:24px; }
.tech-card {
    --status-rgb:127,140,141;
    flex:0 0 280px; width:280px; max-width:280px; min-height:340px;
    padding:20px; border-radius:16px;
    background:linear-gradient(145deg, rgba(23,70,111,.92), rgba(7,29,54,.96));
    border:3px solid rgba(103,159,202,.68);
    box-shadow:0 12px 28px rgba(0,0,0,.26), 0 0 10px rgba(var(--status-rgb),.14), inset 0 1px 0 rgba(255,255,255,.045);
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.tech-card:hover {
    transform:translateY(-4px);
    border-color:rgba(88,189,245,.9);
    box-shadow:0 17px 34px rgba(0,0,0,.34), 0 0 18px rgba(22,143,214,.17);
}
.tech-card.card-livre { --status-rgb:46,204,113; border-color:rgba(46,204,113,.72); }
.tech-card.card-ocupado {
    --status-rgb:231,76,60;
    border-color:rgba(231,76,60,.86);
}
.tech-card.card-almoco {
    --status-rgb:243,156,18;
    border-color:rgba(243,156,18,.86);
}
.tech-card.card-indisponivel { --status-rgb:141,156,170; border-color:rgba(127,140,141,.78); }
.tech-card.card-fim_expediente {
    --status-rgb:52,152,219;
    border-color:rgba(52,152,219,.84);
}
.tech-card:has(.card-sugestao) {
    border:3px solid #21c5ff;
    box-shadow:0 14px 32px rgba(0,0,0,.3), 0 0 18px rgba(33,197,255,.48), inset 0 1px 0 rgba(255,255,255,.07);
}
.tech-card .card-avatar {
    width:88px; height:88px; margin:0 auto 10px;
    position:relative; overflow:visible;
    border:4px solid rgb(var(--status-rgb)); background:#193f62;
    box-shadow:0 5px 15px rgba(0,0,0,.24), 0 0 10px rgba(var(--status-rgb),.3);
}
.tech-card .card-avatar img,
.tech-card .card-avatar .avatar-letter { position:relative; z-index:1; border-radius:50%; overflow:hidden; }
.tech-card .card-avatar::before {
    content:""; position:absolute; inset:-7px; z-index:0;
    border:2px solid rgba(var(--status-rgb),.6); border-radius:50%;
    opacity:0; transform:scale(.94); pointer-events:none;
}
.tech-card .card-avatar::after {
    content:""; position:absolute; right:1px; bottom:2px; z-index:3;
    width:17px; height:17px; border-radius:50%;
    border:3px solid #0b2945; background:#7f8c8d;
    box-shadow:0 2px 7px rgba(0,0,0,.35);
}
.tech-card.card-livre .card-avatar::before {
    animation:avatarStatusPulse 2.1s ease-in-out infinite;
}
.tech-card.card-ocupado .card-avatar::before {
    animation:avatarStatusPulse 1.45s ease-in-out infinite;
}
.tech-card.card-almoco .card-avatar::before {
    animation:avatarStatusPulse 2.7s ease-in-out infinite;
}
.tech-card.card-livre .status-dot { animation:statusDotPulse 2.1s ease-in-out infinite; }
.tech-card.card-ocupado .status-dot { animation:statusDotPulse 1.45s ease-in-out infinite; }
.tech-card.card-almoco .status-dot { animation:statusDotPulse 2.7s ease-in-out infinite; }
@keyframes avatarStatusPulse {
    0%, 100% { opacity:.2; transform:scale(.94); box-shadow:0 0 0 rgba(var(--status-rgb),0); }
    50% { opacity:.95; transform:scale(1.08); box-shadow:0 0 16px rgba(var(--status-rgb),.72); }
}
@keyframes statusDotPulse {
    0%, 100% { transform:scale(1); filter:brightness(1); }
    50% { transform:scale(1.3); filter:brightness(1.22); }
}
@media (prefers-reduced-motion: reduce) {
    .tech-card .card-avatar::before, .tech-card .status-dot { animation:none !important; }
}
.tech-card .card-avatar .avatar-letter { font-size:30pt; background:#193f62; color:#eef7ff; }
.tech-card .card-name { color:#eef7ff; font-size:14pt; line-height:1.2; }
.tech-card .card-role { color:#91a9bf; font-size:9pt; margin:3px 0 7px; }
.tech-card .card-divider { width:100%; height:1px; margin:9px 0; background:rgba(103,159,202,.34); }
.tech-card .card-status {
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    min-width:132px; min-height:31px; margin:2px auto 6px; padding:5px 13px;
    border-radius:999px; border:1px solid; font-size:9.5pt; line-height:1.1;
}
.tech-card .status-dot {
    width:10px; height:10px; flex:0 0 10px; border-radius:50%;
    background:#7f8c8d; box-shadow:0 0 7px rgba(127,140,141,.72);
}
.tech-card.card-livre .card-avatar::after,
.tech-card.card-livre .status-dot { background:#2ecc71; box-shadow:0 0 9px rgba(46,204,113,.85); }
.tech-card.card-ocupado .card-avatar::after,
.tech-card.card-ocupado .status-dot { background:#e74c3c; box-shadow:0 0 9px rgba(231,76,60,.82); }
.tech-card.card-almoco .card-avatar::after,
.tech-card.card-almoco .status-dot { background:#f39c12; box-shadow:0 0 9px rgba(243,156,18,.82); }
.tech-card.card-indisponivel .card-avatar::after,
.tech-card.card-indisponivel .status-dot { background:#8d9caa; box-shadow:0 0 8px rgba(141,156,170,.68); }
.tech-card.card-fim_expediente .card-avatar::after,
.tech-card.card-fim_expediente .status-dot { background:#3498db; box-shadow:0 0 9px rgba(52,152,219,.78); }
.tech-card.card-livre .card-status { color:#78efb0; background:rgba(5,92,60,.72); border-color:#16975f; }
.tech-card.card-ocupado .card-status { color:#ffb3aa; background:rgba(105,24,31,.82); border-color:#d94a3d; }
.tech-card.card-almoco .card-status { color:#ffd59a; background:rgba(112,61,8,.82); border-color:#df8b10; }
.tech-card.card-indisponivel .card-status { color:#d2dce4; background:rgba(58,77,94,.8); border-color:#71879a; }
.tech-card.card-fim_expediente .card-status { color:#9fd9ff; background:rgba(20,67,101,.8); border-color:#3787be; }
.tech-card .card-detail { color:#a9bfd1; justify-content:center; text-align:center; }
.tech-card .card-detail a { color:#65caff; }
.tech-card .card-motivo-indisponivel { color:#b7c7d4; }
.tech-card .card-schedule { color:#9eb4c7; }
.tech-card .card-count { color:#eef7ff; font-size:10pt; }
.tech-card .btn-encaminhar {
    min-height:38px; border-radius:8px; background:linear-gradient(135deg,#087bd8,#0797e6);
    box-shadow:0 7px 17px rgba(0,113,201,.25);
}
.tech-card .btn-encaminhar:hover { background:linear-gradient(135deg,#0b8eec,#13a7f3); }
.tech-card .card-menu-btn { background:rgba(5,27,49,.72); border-color:rgba(103,159,202,.44); }
.tech-card .badge-dificuldade { box-shadow:0 3px 9px rgba(0,0,0,.18); }

/* ── TIMER DE OFERTA (barra de progresso) ────────────── */
.timer-oferta-wrap {
    margin-top: 14px;
    padding: 10px;
    background: rgba(0, 0, 0, 0.25);
    border-radius: 8px;
}
.timer-label {
    display: flex;
    justify-content: space-between;
    color: var(--text-muted);
    font-size: 9pt;
    margin-bottom: 6px;
    font-weight: bold;
}
.timer-label span:last-child {
    color: var(--green-light);
    font-size: 11pt;
}
.timer-bar-container {
    width: 100%;
    height: 8px;
    background: rgba(0, 0, 0, 0.4);
    border-radius: 4px;
    overflow: hidden;
}
.timer-bar {
    height: 100%;
    width: 100%;
    background: linear-gradient(90deg, #e74c3c 0%, #f39c12 30%, #2ecc71 60%);
    border-radius: 4px;
    transition: width 0.25s linear;
}

/* Quebra URLs longas dentro de modais */
.modal-body p, .modal-body strong { word-break: break-word; overflow-wrap: anywhere; }
.modal-body a.link-chamado { max-width: 100%; word-break: break-word; }

/* ── MÚLTIPLOS CHAMADOS NO CARD ────────────────── */
.card-multi-compacto {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 5px 8px;
}
.card-multi-label {
    font-size: 8.5pt;
    color: var(--text-muted);
    font-weight: 700;
    white-space: nowrap;
}
.card-multi-links {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 4px;
}
.card-chamado-multi-link,
.card-chamado-multi-texto {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    padding: 3px 8px;
    border: 1px solid rgba(36, 113, 184, 0.65);
    border-radius: 6px;
    background: rgba(36, 113, 184, 0.12);
    color: var(--accent-light);
    font-size: 8pt;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}
.card-chamado-multi-link:hover {
    background: rgba(36, 113, 184, 0.25);
    border-color: var(--accent-light);
}

/* ── LISTA DE CHAMADOS NO MODAL DE FINALIZAR ────── */
.chamado-ativo-item {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid #1a2d40;
    border-radius: 8px;
    padding: 12px;
    margin-bottom: 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    justify-content: space-between;
}
.chamado-ativo-info { flex: 1; min-width: 200px; }
.chamado-ativo-num {
    color: var(--text);
    font-weight: bold;
    margin-bottom: 4px;
    word-break: break-word;
    overflow-wrap: anywhere;
}
.chamado-ativo-tempo {
    color: var(--text-muted);
    font-size: 8.5pt;
}
.chamado-ativo-acoes {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.alerta-info { display: flex; align-items: center; }

/* ── PICO DE ATENDIMENTOS ─────────────────────── */
.pico-controles {
    padding: 14px 28px;
    display: flex;
    flex-wrap: nowrap;
    gap: 14px;
    align-items: center;
    justify-content: flex-start;
    background: rgba(0, 0, 0, 0.2);
    border-bottom: 1px solid #1a2d40;
    overflow-x: auto;
}
.pico-periodo-grupo {
    display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; flex-shrink: 0;
}
.pico-periodo-grupo label {
    color: var(--text-muted);
    font-size: 9pt;
    font-weight: bold;
    text-transform: uppercase;
}
.pico-periodo-grupo input[type="date"] {
    background: rgba(0, 0, 0, 0.4);
    border: 1px solid #1a2d40;
    border-radius: 6px;
    color: var(--text);
    padding: 8px 10px;
    font-size: 9.5pt;
    color-scheme: dark;
}
.pico-periodo-grupo input[type="date"]:focus {
    border-color: var(--accent-light);
    outline: none;
}
.pico-presets {
    display: flex; gap: 6px; flex-shrink: 0; margin-left: auto;
}
.pico-preset-btn {
    padding: 7px 14px;
    background: transparent;
    color: var(--text-muted);
    border: 1px solid #1a2d40;
    border-radius: 16px;
    cursor: pointer;
    font-size: 9pt;
    font-weight: bold;
    transition: all 0.15s;
    white-space: nowrap;
}
.pico-preset-btn:hover {
    color: var(--text); border-color: var(--accent-light);
}
.pico-preset-btn.active {
    background: var(--accent); border-color: var(--accent); color: white;
}

.pico-grafico-container {
    position: relative;
    padding: 24px 28px;
    height: calc(100vh - 250px);
    min-height: 400px;
}
#pico-canvas {
    background: var(--card-bg);
    border: 1px solid var(--accent);
    border-radius: 10px;
    padding: 12px;
}

/* ── RANKING DE ATENDIMENTOS ─────────────────────── */
.ranking-section {
    padding: 20px 28px 8px;
    border-bottom: 1px solid #1a2d40;
}
.ranking-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 12px;
}
.ranking-header h3 {
    color: var(--text);
    font-size: 12pt;
    margin: 0;
}
.ranking-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
@media (max-width: 900px) {
    .ranking-grid { grid-template-columns: 1fr; }
}
.ranking-card {
    background: var(--card-bg);
    border: 1px solid var(--accent);
    border-radius: 10px;
    padding: 14px;
}
.ranking-titulo {
    color: var(--text-muted);
    font-size: 9pt;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid #1a2d40;
}
.ranking-linha {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    margin-bottom: 4px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.02);
    border-left: 3px solid transparent;
    transition: background 0.15s;
}
.ranking-linha:hover { background: rgba(255, 255, 255, 0.05); }
.ranking-linha.rank-ouro   { border-left-color: #f1c40f; background: rgba(241, 196, 15, 0.06); }
.ranking-linha.rank-prata  { border-left-color: #bdc3c7; background: rgba(189, 195, 199, 0.05); }
.ranking-linha.rank-bronze { border-left-color: #cd7f32; background: rgba(205, 127, 50, 0.05); }

.rank-pos {
    min-width: 30px;
    text-align: center;
    font-size: 16pt;
    line-height: 1;
}
.rank-pos .rank-num {
    color: var(--text-muted);
    font-size: 10pt;
    font-weight: bold;
}
.rank-foto {
    width: 34px; height: 34px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #1a2d40;
}
.ranking-linha.rank-ouro .rank-foto { border-color: #f1c40f; }
.ranking-linha.rank-prata .rank-foto { border-color: #bdc3c7; }
.ranking-linha.rank-bronze .rank-foto { border-color: #cd7f32; }
.rank-avatar-letter {
    width: 34px; height: 34px;
    border-radius: 50%;
    background: var(--accent);
    color: white;
    font-weight: bold;
    align-items: center;
    justify-content: center;
    font-size: 11pt;
}
.rank-nome {
    flex: 1;
    color: var(--text);
    font-size: 10pt;
    font-weight: bold;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.rank-total {
    color: var(--green-light);
    font-size: 13pt;
    font-weight: bold;
    min-width: 60px;
    text-align: right;
}
.rank-unidade {
    color: var(--text-muted);
    font-size: 8pt;
    font-weight: normal;
    margin-left: 2px;
}
.ranking-linha.rank-ouro   .rank-total { color: #f1c40f; }
.ranking-linha.rank-prata  .rank-total { color: #ecf0f1; }
.ranking-linha.rank-bronze .rank-total { color: #e6a774; }

/* ═══ EXPERIÊNCIA MOBILE DO PAINEL ═════════════════════════════════════ */
.mobile-menu-toggle, .mobile-menu-backdrop { display:none; }

@media (max-width: 768px) {
    html, body { width:100%; max-width:100%; overflow-x:hidden; }
    body.mobile-menu-open { overflow:hidden; }
    .dashboard { display:block; width:100%; min-height:100dvh; }
    .mobile-menu-toggle {
        display:flex; position:fixed; top:12px; left:12px; z-index:1201;
        width:42px; height:42px; padding:10px; flex-direction:column;
        justify-content:center; gap:5px; border:1px solid rgba(97,155,201,.42);
        border-radius:10px; background:rgba(8,27,43,.94); box-shadow:0 5px 18px rgba(0,0,0,.3);
    }
    .mobile-menu-toggle span { display:block; width:100%; height:2px; border-radius:2px; background:#dce8f2; }
    .mobile-menu-backdrop {
        position:fixed; inset:0; z-index:1090; border:0; background:rgba(0,0,0,.58);
        backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px);
    }
    body.mobile-menu-open .mobile-menu-backdrop { display:block; }
    .sidebar {
        width:min(86vw, 320px); min-width:0; z-index:1200; transform:translateX(-105%);
        transition:transform .25s ease; overflow-y:auto; box-shadow:15px 0 45px rgba(0,0,0,.45);
    }
    body.mobile-menu-open .sidebar { transform:translateX(0); }
    .sidebar-top { padding:18px 16px 0; }
    .sidebar-bottom { padding:14px 16px 22px; }
    .sidebar .brand-text, .sidebar .sidebar-section-label, .sidebar .profile-name,
    .sidebar .profile-role { display:block; }
    .sidebar .sidebar-brand { justify-content:flex-start; padding-left:48px; }
    .sidebar .dropdown-menu { display:block; margin-left:8px; }
    .sidebar .dropdown-menu.hidden { max-height:0; }
    .sidebar .dropdown-menu:not(.hidden) { max-height:420px; }
    .sidebar-btn { min-height:44px; }
    .profile-card { padding:13px; }
    .profile-avatar { width:54px; height:54px; }
    .main-content, #view-painel .main-content, #view-dashboard, #view-feed, #view-pico {
        width:100% !important; min-width:0 !important; margin-left:0 !important;
    }
    .main-header { min-height:66px; padding:15px 14px 15px 64px; gap:10px; align-items:center; }
    .main-header h2 { min-width:0; font-size:13pt; line-height:1.25; }
    .header-info { min-width:0; }
    .relogio { display:none; }
    .cards-grid {
        display:grid; grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:10px; padding:14px 10px 24px; align-items:stretch;
    }
    .tech-card {
        width:100%; max-width:none; min-width:0; min-height:246px; flex-basis:auto;
        justify-self:stretch; padding:13px 8px 12px; overflow:hidden;
        display:flex; flex-direction:column; align-items:center; text-align:center;
    }
    .tech-card:hover { transform:none; }
    .tech-card .card-avatar {
        width:58px; height:58px; margin:0 auto 7px; flex:0 0 58px;
    }
    .tech-card .card-avatar .avatar-letter { font-size:20pt; }
    .tech-card .card-name {
        width:100%; font-size:10.5pt; line-height:1.15; overflow-wrap:anywhere;
    }
    .tech-card .card-role { margin:2px 0 0; font-size:7.5pt; }
    .tech-card .card-divider { width:100%; margin:6px 0 5px; }
    .tech-card .card-status {
        max-width:100%; margin:2px 0; padding:6px 8px;
        font-size:8.5pt; line-height:1.15; text-align:center; white-space:normal;
    }
    .tech-card .card-detail {
        min-height:0; flex-grow:1; display:flex; align-items:center; justify-content:center;
        margin-top:3px; font-size:7.5pt; line-height:1.25; text-align:center; overflow-wrap:anywhere;
    }
    .tech-card .card-motivo-indisponivel { font-size:7.25pt; }
    .tech-card .badge-dificuldade { align-self:center; max-width:100%; font-size:7pt; }
    .tech-card .card-schedule { margin-top:4px; font-size:7.5pt; line-height:1.2; }
    .tech-card .card-count { width:100%; margin-top:3px; font-size:8pt; line-height:1.2; text-align:center; }
    .tech-card .btn-encaminhar {
        width:100%; min-width:0; margin-top:7px; padding:8px 5px;
        font-size:7.5pt; white-space:normal;
    }
    .tech-card .card-menu { top:7px; right:7px; }
    .tech-card .card-sugestao { top:7px; left:7px; max-width:calc(100% - 38px); font-size:6.5pt; padding:4px 6px; }
    .dashboard-container, .dash-cards-grid, .feed-lista, .ranking-section { padding-left:12px; padding-right:12px; }
    .dash-cards-grid { padding-top:14px; }
    .dash-card-header { padding:12px; gap:8px; flex-wrap:wrap; }
    .dash-card-identity { min-width:0; gap:10px; }
    .dash-card-nome { overflow-wrap:anywhere; }
    .dash-card-right { margin-left:auto; gap:7px; }
    .dash-status-badge { font-size:8pt; padding:4px 7px; }
    .dash-metrics-bar { overflow-x:auto; }
    .dash-metric { min-width:82px; }
    .dash-card-body { padding:13px 11px; overflow-x:auto; }
    .dash-resumo-mes { gap:14px; flex-wrap:wrap; }
    .dash-table, .dash-hist-table { min-width:560px; }
    .dashboard-container { overflow-x:auto; }
    .feed-filters { display:flex; max-width:calc(100vw - 86px); overflow-x:auto; padding-bottom:3px; }
    .feed-filtro { flex:0 0 auto; }
    .feed-item { padding:12px; gap:9px; }
    .feed-icone { flex:0 0 auto; }
    .pico-controles { padding:12px; gap:12px; }
    .pico-periodo-grupo, .pico-presets { width:100%; flex-wrap:wrap; }
    .pico-periodo-grupo input { min-width:0; flex:1 1 130px; }
    .pico-grafico-container { margin:12px; padding:12px; overflow-x:auto; }
    .pico-grafico-container canvas { min-width:600px; }
    .modal-overlay { padding:12px; align-items:flex-start; overflow-y:auto; }
    .modal-card { width:100%; max-width:520px; margin:auto 0; max-height:calc(100dvh - 24px); overflow-y:auto; }
    .modal-header { position:sticky; top:0; z-index:2; padding:14px 15px; background:rgba(11,43,70,.97); }
    .modal-body { padding:16px 14px; }
    .modal-actions { flex-wrap:wrap; }
    .modal-actions > button { flex:1 1 130px; }
    .horario-row { gap:7px; }
    .horario-row select { min-width:0; flex:1; padding:8px 6px; }
    .status-options { display:grid; grid-template-columns:1fr 1fr; }
    .status-opt { min-width:0; }
    .chamado-ativo-item { align-items:stretch; }
    .chamado-ativo-info { min-width:0; width:100%; }
    .chamado-ativo-acoes { width:100%; }
    .chamado-ativo-acoes > * { flex:1 1 120px; min-width:0 !important; }
    .page-wrapper { padding:14px; }
    .page-card { padding:18px 14px; }
    .page-header { gap:12px; align-items:flex-start; }
}

@media (max-width: 390px) {
    .main-header h2 { font-size:12pt; }
    .cards-grid { gap:8px; padding-left:8px; padding-right:8px; }
    .tech-card { width:100%; padding:12px 7px 11px; }
    .modal-overlay { padding:8px; }
    .modal-card { max-height:calc(100dvh - 16px); }
    .status-options { grid-template-columns:1fr; }
    .rank-unidade { display:none; }
    .rank-total { min-width:36px; font-size:11pt; }
}


/* Notificação geral */
.aviso-geral-overlay { z-index: 2400; background:rgba(1,10,20,.82); }
.aviso-geral-card { max-width:620px; overflow:hidden; border-color:rgba(75,184,242,.78); box-shadow:0 28px 70px rgba(0,0,0,.55); }
.aviso-geral-faixa { height:7px; background:linear-gradient(90deg,#1786d5,#58c5ff); }
.aviso-geral-body { display:flex; gap:18px; align-items:flex-start; padding:28px; }
.aviso-geral-icone { width:58px; height:58px; flex:0 0 58px; display:grid; place-items:center; border-radius:18px; background:rgba(31,145,220,.18); font-size:27px; }
.aviso-geral-conteudo { min-width:0; flex:1; }
.aviso-geral-rotulo { color:#6dc7ff; font-size:8pt; font-weight:800; letter-spacing:1.5px; margin-bottom:7px; }
.aviso-geral-conteudo h3 { color:#f4f9fd; font-size:18pt; line-height:1.25; margin:0 0 12px; overflow-wrap:anywhere; }
.aviso-geral-conteudo p { color:#d5e2ec; font-size:11pt; line-height:1.65; white-space:pre-wrap; overflow-wrap:anywhere; }
.aviso-geral-meta { color:#829bb0; font-size:8.5pt; margin-top:18px; }
.aviso-geral-acoes { display:flex; justify-content:flex-end; padding:0 28px 24px; }
.aviso-geral-acoes .btn-confirmar { min-width:120px; }
.aviso-geral-card[data-nivel="atencao"] { border-color:rgba(247,184,59,.82); }
.aviso-geral-card[data-nivel="atencao"] .aviso-geral-faixa { background:linear-gradient(90deg,#c9850b,#ffd166); }
.aviso-geral-card[data-nivel="atencao"] .aviso-geral-icone { background:rgba(247,184,59,.17); }
.aviso-geral-card[data-nivel="atencao"] .aviso-geral-rotulo { color:#ffd166; }
.aviso-geral-card[data-nivel="urgente"] { border-color:rgba(238,86,86,.86); }
.aviso-geral-card[data-nivel="urgente"] .aviso-geral-faixa { background:linear-gradient(90deg,#b92828,#ff6b6b); }
.aviso-geral-card[data-nivel="urgente"] .aviso-geral-icone { background:rgba(238,86,86,.17); }
.aviso-geral-card[data-nivel="urgente"] .aviso-geral-rotulo { color:#ff8585; }
.modal-aviso-editor { max-width:620px; }
.modal-aviso-editor textarea { resize:vertical; min-height:130px; }
.aviso-contador { text-align:right; color:#7893aa; font-size:8pt; margin-top:4px; }
.aviso-editor-ativo { margin:12px 0 0; padding:10px 12px; border-radius:8px; background:rgba(31,145,220,.14); color:#7acbff; font-size:9pt; }
.aviso-editor-acoes { align-items:center; }
@media (max-width:600px) {
    .aviso-geral-overlay {
        align-items:flex-end;
        padding:0;
        background:rgba(1,10,20,.86);
    }
    .aviso-geral-card {
        width:100%;
        max-width:none;
        max-height:calc(100dvh - env(safe-area-inset-top, 0px) - 18px);
        margin:0;
        border-right:0;
        border-bottom:0;
        border-left:0;
        border-radius:24px 24px 0 0;
        overflow:hidden;
        animation:avisoMobileIn .28s ease-out;
    }
    .aviso-geral-faixa { height:6px; }
    .aviso-geral-body {
        max-height:calc(100dvh - 150px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
        padding:22px 20px 18px;
        flex-direction:column;
        gap:14px;
        overflow-y:auto;
        overscroll-behavior:contain;
        -webkit-overflow-scrolling:touch;
    }
    .aviso-geral-icone {
        width:48px;
        height:48px;
        flex:0 0 48px;
        border-radius:15px;
        font-size:23px;
    }
    .aviso-geral-rotulo { font-size:7.5pt; }
    .aviso-geral-conteudo h3 { font-size:16pt; line-height:1.28; margin-bottom:10px; }
    .aviso-geral-conteudo p { font-size:10.5pt; line-height:1.6; }
    .aviso-geral-meta { margin-top:14px; }
    .aviso-geral-acoes {
        padding:12px 20px calc(16px + env(safe-area-inset-bottom, 0px));
        background:rgba(8,31,52,.98);
        border-top:1px solid rgba(103,159,202,.25);
    }
    .aviso-geral-acoes .btn-confirmar {
        width:100%;
        min-height:50px;
        font-size:11pt;
    }
}
@keyframes avisoMobileIn {
    from { transform:translateY(100%); opacity:.72; }
    to { transform:translateY(0); opacity:1; }
}


/* Envio de chamados: feedback visual e bloqueio contra clique duplo */
.btn-confirmar.is-loading {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    cursor: wait;
    pointer-events: none;
    opacity: .88;
}

.btn-loading-spinner {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    display: inline-block;
    border: 2px solid rgba(255, 255, 255, .38);
    border-top-color: #fff;
    border-radius: 50%;
    animation: btn-loading-spin .7s linear infinite;
}

@keyframes btn-loading-spin {
    to { transform: rotate(360deg); }
}


/* ── RANKING NO PADRÃO VISUAL DA BARRA LATERAL ───────────────────── */
.ranking-card {
    background: linear-gradient(160deg, rgba(23,70,111,.97), rgba(7,29,54,.985));
    border-color: rgba(103,159,202,.68);
    box-shadow: 0 12px 30px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.035);
}
.ranking-titulo {
    color: #b8cad9;
    border-bottom-color: rgba(103,159,202,.32);
}
.ranking-linha,
.ranking-linha.rank-ouro,
.ranking-linha.rank-prata,
.ranking-linha.rank-bronze {
    background: rgba(33,112,171,.16);
}
.ranking-linha:nth-child(even),
.ranking-linha.rank-ouro:nth-child(even),
.ranking-linha.rank-prata:nth-child(even),
.ranking-linha.rank-bronze:nth-child(even) {
    background: rgba(7,29,54,.34);
}
.ranking-linha:hover,
.ranking-linha.rank-ouro:hover,
.ranking-linha.rank-prata:hover,
.ranking-linha.rank-bronze:hover {
    background: rgba(33,112,171,.38);
}


.dashboard-tabs{display:flex;gap:8px;margin:0 0 18px;border-bottom:1px solid #1b4f8a;padding-bottom:10px}
.dashboard-tab{background:transparent;border:1px solid #254665;color:#b8c7d5;border-radius:8px;padding:8px 13px;font-weight:700;cursor:pointer}
.dashboard-tab.is-active{background:#1b4f8a;color:#fff}
.qualidade-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.qualidade-toolbar p{margin:0}.qualidade-toolbar select{background:#102536;color:#eaf4ff;border:1px solid #285273;border-radius:7px;padding:8px}
.qualidade-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.qualidade-kpi,.qualidade-card{background:rgba(12,31,47,.88);border:1px solid #254665;border-radius:12px;padding:16px}.qualidade-kpi span{display:block;color:#b8c7d5}.qualidade-kpi b{display:block;font-size:1.65rem;margin-top:8px;color:#fff}
.q-red{color:#ff7070!important}.q-amber{color:#ffc154!important}.q-green{color:#6ee7a0!important}.qualidade-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:16px}.qualidade-card h3{margin:0 0 14px;color:#fff}.qualidade-card table{width:100%;border-collapse:collapse;font-size:.88rem}.qualidade-card th,.qualidade-card td{padding:9px 7px;text-align:left;border-bottom:1px solid rgba(37,70,101,.55)}.qualidade-card th{color:#b8c7d5}.qualidade-scroll{max-height:365px;overflow:auto}.q-badge{padding:4px 7px;border-radius:999px;font-size:.75rem;font-weight:700}.q-aceito{background:#164c30;color:#74e5a2}.q-recusado{background:#642526;color:#ff9c9c}.q-expirado{background:#65480e;color:#ffd470}.q-pendente{background:#254665;color:#b9dbf4}
@media(max-width:900px){.qualidade-kpis{grid-template-columns:repeat(2,1fr)}.qualidade-grid{grid-template-columns:1fr}}@media(max-width:520px){.qualidade-kpis{grid-template-columns:1fr}.qualidade-toolbar{flex-direction:column;align-items:stretch}}

/* QUALIDADE — painel visual alinhado ao tema institucional */
.qualidade-section {
    padding: 22px 28px 32px;
    animation: qualidadeEntrada .22s ease-out;
}
@keyframes qualidadeEntrada { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.qualidade-toolbar {
    padding: 14px 16px;
    margin-bottom: 18px;
    background: linear-gradient(135deg, rgba(18, 56, 85, .88), rgba(12, 31, 47, .92));
    border: 1px solid #285273;
    border-radius: 12px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, .14);
}
.qualidade-toolbar p { color: #c7d8e7; font-size: .92rem; }
.qualidade-toolbar strong { color: #fff; }
.qualidade-toolbar select {
    min-width: 150px;
    font: inherit;
    font-weight: 700;
    outline: none;
    cursor: pointer;
    transition: border-color .2s, box-shadow .2s;
}
.qualidade-toolbar select:focus {
    border-color: #56a6df;
    box-shadow: 0 0 0 3px rgba(86, 166, 223, .18);
}

.qualidade-kpis { gap: 16px; margin-bottom: 18px; }
.qualidade-kpi {
    position: relative;
    min-height: 112px;
    overflow: hidden;
    padding: 18px;
    border-color: #285273;
    background: linear-gradient(145deg, rgba(21, 53, 78, .98), rgba(11, 30, 46, .98));
    box-shadow: 0 8px 20px rgba(0, 0, 0, .16);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.qualidade-kpi::before {
    content: "";
    position: absolute;
    top: 0; bottom: 0; left: 0;
    width: 4px;
    background: #4aa3da;
}
.qualidade-kpi::after {
    content: "";
    position: absolute;
    width: 110px; height: 110px;
    right: -38px; bottom: -58px;
    border: 1px solid rgba(109, 184, 232, .16);
    border-radius: 50%;
    box-shadow: 0 0 0 20px rgba(109, 184, 232, .035);
}
.qualidade-kpi:hover { transform: translateY(-3px); border-color: #4aa3da; box-shadow: 0 12px 24px rgba(0, 0, 0, .22); }
.qualidade-kpi span { position: relative; z-index: 1; text-transform: uppercase; letter-spacing: .055em; font-size: .72rem; font-weight: 800; color: #b9d2e4; }
.qualidade-kpi b { position: relative; z-index: 1; font-size: 1.85rem; line-height: 1; margin-top: 13px; }
.qualidade-kpi.q-red::before { background: #ef6464; }
.qualidade-kpi.q-red b { color: #ff9b9b !important; }
.qualidade-kpi.q-amber::before { background: #f2ae43; }
.qualidade-kpi.q-amber b { color: #ffd27d !important; }
.qualidade-kpi.q-green::before { background: #42c982; }
.qualidade-kpi.q-green b { color: #7ce6a9 !important; }

.qualidade-grid { gap: 18px; align-items: start; }
.qualidade-card {
    padding: 0;
    overflow: hidden;
    border-color: #285273;
    background: linear-gradient(145deg, rgba(16, 43, 64, .96), rgba(10, 27, 42, .96));
    box-shadow: 0 8px 22px rgba(0, 0, 0, .16);
}
.qualidade-card h3 {
    margin: 0;
    padding: 15px 17px;
    color: #eaf5ff;
    font-size: .95rem;
    background: rgba(34, 92, 133, .28);
    border-bottom: 1px solid rgba(67, 133, 177, .52);
}
.qualidade-card table { font-size: .84rem; }
.qualidade-card th {
    padding: 11px 13px;
    color: #aecdde;
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .045em;
    background: rgba(6, 23, 37, .34);
}
.qualidade-card td { padding: 12px 13px; color: #e2edf5; }
.qualidade-card tbody tr { transition: background .15s ease; }
.qualidade-card tbody tr:hover { background: rgba(61, 139, 190, .17); }
.qualidade-card tbody tr:last-child td { border-bottom: none; }
.qualidade-scroll { max-height: 386px; scrollbar-color: #397ca9 rgba(5, 18, 29, .45); }
.q-badge { display: inline-flex; align-items: center; padding: 5px 9px; text-transform: capitalize; letter-spacing: .01em; border: 1px solid transparent; }
.q-aceito { background: rgba(32, 120, 73, .3); border-color: rgba(83, 208, 130, .45); color: #8febba; }
.q-recusado { background: rgba(143, 47, 50, .3); border-color: rgba(241, 104, 104, .42); color: #ffaaaa; }
.q-expirado { background: rgba(152, 104, 23, .3); border-color: rgba(244, 181, 69, .42); color: #ffda8d; }
.q-pendente { background: rgba(45, 100, 138, .3); border-color: rgba(102, 175, 221, .42); color: #bee4fb; }

@media (max-width: 900px) {
    .qualidade-section { padding: 18px 20px 28px; }
}
@media (max-width: 520px) {
    .qualidade-section { padding: 14px 13px 24px; }
    .qualidade-toolbar { padding: 13px; gap: 10px; }
    .qualidade-toolbar select { width: 100%; min-width: 0; }
    .qualidade-kpi { min-height: 96px; padding: 15px; }
    .qualidade-kpi b { font-size: 1.65rem; margin-top: 10px; }
    .qualidade-card h3 { padding: 13px; }
    .qualidade-card th, .qualidade-card td { padding: 10px 9px; }
    .qualidade-card table { font-size: .78rem; }
    .qualidade-scroll { overflow-x: auto; }
}


/* =============================================================================
   NÚMEROS ÚTEIS — padrão visual do Painel
   ============================================================================= */
.numeros-uteis-view {
    max-width: 1180px;
}
.numeros-uteis-card {
    background: linear-gradient(145deg, rgba(8, 37, 72, .96), rgba(11, 59, 105, .92));
    border: 1px solid rgba(75, 160, 226, .55);
    border-radius: 16px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, .24);
    padding: 22px;
}
.numeros-uteis-busca,
.numeros-uteis-form input {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
    min-height: 46px;
    color: #f5f9ff;
    background: rgba(2, 22, 45, .82);
    border: 1px solid #397fba;
    border-radius: 11px;
    padding: 11px 14px;
    outline: none;
}
.numeros-uteis-busca::placeholder,
.numeros-uteis-form input::placeholder {
    color: rgba(222, 235, 248, .62);
}
.numeros-uteis-busca:focus,
.numeros-uteis-form input:focus {
    border-color: #68b9f4;
    box-shadow: 0 0 0 3px rgba(67, 163, 223, .18);
}
.numeros-uteis-tabela-wrap {
    overflow-x: auto;
    border: 1px solid rgba(88, 164, 220, .28);
    border-radius: 12px;
}
.numeros-uteis-tabela {
    width: 100%;
    border-collapse: collapse;
    min-width: 560px;
}
.numeros-uteis-tabela th {
    color: #dcedff;
    background: rgba(3, 29, 61, .78);
    border-bottom: 1px solid rgba(98, 175, 232, .38);
}
.numeros-uteis-tabela td {
    color: #edf6ff;
    border-bottom: 1px solid rgba(98, 175, 232, .18);
}
.numeros-uteis-tabela tr:last-child td { border-bottom: 0; }
.numeros-uteis-tabela a {
    color: #83d4ff;
    font-weight: 700;
    text-decoration: none;
}
.numeros-uteis-tabela a:hover { text-decoration: underline; }
.numeros-uteis-form {
    margin-top: 16px;
}
.numeros-uteis-form h3 {
    margin: 0 0 18px;
    color: #f5f9ff;
}
.numeros-uteis-form .form-group label {
    color: #d9edff;
    font-weight: 700;
}
.numeros-uteis-form .btn-confirmar {
    min-height: 44px;
    margin-top: 6px;
}
@media (max-width: 600px) {
    .numeros-uteis-card { padding: 14px; border-radius: 13px; }
    .numeros-uteis-tabela { min-width: 470px; }
}


/* Configuração: mantém todos os atalhos acessíveis em telas baixas. */
.sidebar {
    justify-content: flex-start;
    overflow-y: auto;
    overscroll-behavior: contain;
}
.sidebar-bottom {
    margin-top: auto;
}
.sidebar-dropdown .dropdown-menu {
    max-height: min(56dvh, 460px);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
}
.sidebar-dropdown .dropdown-menu.hidden {
    overflow: hidden;
}
@media (max-width: 768px) {
    .sidebar-dropdown .dropdown-menu:not(.hidden) {
        max-height: min(58dvh, 520px);
    }
}
