@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@300;400;500;600;700&family=Barlow+Condensed:wght@500;600;700&display=swap');

:root {
    --preto-abs:       #07080a;
    --preto-card:      #111318;
    --preto-input:     #0d0e12;
    --dourado:         #c8a84b;
    --dourado-hover:   #e0bf69;
    --dourado-dim:     rgba(200,168,75,0.10);
    --cinza-texto:     #8a8f9e;
    --cinza-claro:     #c4c8d4;
    --borda:           #1e2129;
    --borda-hover:     #2a2d38;
    --sucesso:         #2ecc71;
    --erro:            #e74c3c;
    --alerta:          #f39c12;
    --sidebar-w:       250px;
    --sidebar-w-col:   64px;
    --sidebar-bg:      #090b0f;
}

/* ── TEMA CLARO ──────────────────────────────────────────── */
body.tema-claro {
    --preto-abs:    #f0f2f5;
    --preto-card:   #ffffff;
    --preto-input:  #e8eaf0;
    --cinza-texto:  #4b5563;
    --cinza-claro:  #111827;
    --borda:        #d1d5db;
    --borda-hover:  #9ca3af;
    --sidebar-bg:   #1a1c22;
    --dourado-dim:  rgba(180,140,20,0.10);
    /* Garante que alerta e sucesso fiquem legíveis no claro */
    --alerta:       #b45309;
    --sucesso:      #16a34a;
    --erro:         #dc2626;
}

/* ── Sidebar sempre escura no modo claro ─────────────────── */
body.tema-claro .sidebar { background: var(--sidebar-bg); }
body.tema-claro .sidebar,
body.tema-claro .sidebar * { color: inherit; }
body.tema-claro .sidebar .nav-item,
body.tema-claro .sidebar .nav-link,
body.tema-claro .sidebar .sidebar-footer-btn { color: #8a8f9e; }
body.tema-claro .sidebar .nav-item:hover,
body.tema-claro .sidebar .nav-item.active,
body.tema-claro .sidebar .nav-link:hover,
body.tema-claro .sidebar .nav-link.active,
body.tema-claro .sidebar .sidebar-footer-btn:hover { color: var(--dourado); }
body.tema-claro .sidebar .user-name { color: #c4c8d4; }
body.tema-claro .sidebar .toggle-btn { color: #8a8f9e; border-color: #2a2d38; }
body.tema-claro .sidebar .toggle-btn:hover { color: var(--dourado); border-color: var(--dourado); }
body.tema-claro .sidebar .sidebar-footer { color: #6b7280; }

/* ── Textos hardcoded "white" → adaptados ao claro ──────── */
body.tema-claro .header-actions h1   { color: var(--cinza-claro); }
body.tema-claro .kpi-value           { color: var(--cinza-claro); }
body.tema-claro .modal-title         { color: var(--cinza-claro); }

/* ── Inputs no tema claro ────────────────────────────────── */
body.tema-claro input,
body.tema-claro select,
body.tema-claro textarea {
    background: var(--preto-input);
    color: var(--cinza-claro);
    border-color: var(--borda);
}
body.tema-claro select option { background: var(--preto-card); color: var(--cinza-claro); }
body.tema-claro input::placeholder,
body.tema-claro textarea::placeholder { color: var(--cinza-texto); }

/* ── Tabela no tema claro ────────────────────────────────── */
body.tema-claro td { color: var(--cinza-claro); }
body.tema-claro tbody tr:hover td { color: var(--cinza-claro); }

/* ── Badges com contraste adequado no claro ──────────────── */
body.tema-claro .badge-aberto    { background:rgba(59,130,246,.12); color:#1d4ed8;  border-color:rgba(59,130,246,.3); }
body.tema-claro .badge-instrucao { background:rgba(180,100,0,.10);  color:#92400e;  border-color:rgba(180,100,0,.25); }
body.tema-claro .badge-encerrado { background:rgba(22,163,74,.12);  color:#15803d;  border-color:rgba(22,163,74,.3); }
body.tema-claro .badge-arquivado { background:rgba(100,116,139,.12);color:#475569; border-color:rgba(100,116,139,.3); }

/* ── Alerta de prazo no claro ────────────────────────────── */
body.tema-claro .alerta-prazo { background:rgba(180,83,9,.07); border-color:rgba(180,83,9,.25); }
body.tema-claro .alerta-prazo-titulo { color: var(--alerta); }
body.tema-claro .alerta-prazo-item { color: var(--cinza-claro); }

/* ── Toast no claro ──────────────────────────────────────── */
body.tema-claro .toast { color: var(--cinza-claro); box-shadow: 0 4px 20px rgba(0,0,0,.12); }

/* ── Botão secundário no claro ───────────────────────────── */
body.tema-claro .btn-secondary { color: var(--cinza-texto); border-color: var(--borda); }
body.tema-claro .btn-secondary:hover { color: var(--dourado); border-color: var(--dourado); }

/* ── Modal no claro ──────────────────────────────────────── */
body.tema-claro .modal-overlay { background: rgba(0,0,0,.45); }

/* ── Tooltip sidebar no claro ────────────────────────────── */
body.tema-claro .sidebar.collapsed .nav-item::after {
    background: #ffffff;
    color: #111827;
    border-color: #d1d5db;
}

/* ── save-btn: texto deve ser escuro sobre dourado ────────── */
body.tema-claro .save-btn { color: #111827; }

/* ── RESET ───────────────────────────────────────────────── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }

body {
    font-family: 'Barlow', sans-serif;
    background: var(--preto-abs);
    color: var(--cinza-claro);
    display: flex;
    min-height: 100vh;
    overflow-x: hidden;
}

/* ── SIDEBAR ─────────────────────────────────────────────── */
.sidebar {
    width: var(--sidebar-w);
    background: var(--sidebar-bg);
    border-right: 1px solid var(--borda);
    position: fixed; top:0; left:0;
    height: 100vh; z-index: 200;
    display: flex; flex-direction: column;
    transition: width .26s cubic-bezier(.4,0,.2,1);
    overflow: hidden;
    /* Nunca some no desktop — transform:none explícito */
    transform: translateX(0);
}
.sidebar.collapsed { width: var(--sidebar-w-col); }

.sidebar-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 14px; height: 64px;
    border-bottom: 1px solid var(--borda); flex-shrink: 0;
    gap: 8px;
}

.sidebar-brand {
    display:flex; align-items:center; gap:10px;
    overflow:hidden; flex:1; min-width:0;
}

/* Logo visível quando expandido, some quando colapsado */
.sidebar-logo {
    width: 120px;
    height: auto;
    max-height: 44px;
    object-fit: contain;
    flex-shrink: 0;
    transition: opacity .2s, width .26s;
}
.sidebar.collapsed .sidebar-logo { opacity:0; width:0; }

.sidebar-logo-fb {
    width:36px; height:36px; border-radius:6px;
    background:var(--dourado); color:var(--preto-abs);
    font-weight:700; font-size:1.1rem;
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
    transition: opacity .2s;
}
.sidebar.collapsed .sidebar-logo-fb { opacity:0; width:0; overflow:hidden; }

.toggle-btn {
    background:none; border:1px solid var(--borda);
    color:var(--cinza-texto); width:32px; height:32px; min-width:32px;
    border-radius:5px; cursor:pointer;
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
    transition: all .2s;
}
.toggle-btn:hover { border-color:var(--dourado); color:var(--dourado); }

/* User */
.sidebar-user {
    padding:12px 14px; border-bottom:1px solid var(--borda);
    display:flex; align-items:center; gap:9px;
    overflow:hidden; white-space:nowrap; flex-shrink:0;
}
.user-avatar {
    width:34px; height:34px; min-width:34px; border-radius:50%;
    background:var(--dourado-dim); border:1.5px solid var(--dourado);
    display:flex; align-items:center; justify-content:center;
    font-size:.95rem; flex-shrink:0; color:var(--dourado);
}
.user-info { overflow:hidden; min-width:0; }
.user-name { font-size:.83rem; font-weight:600; color:var(--cinza-claro); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.user-role { font-size:.7rem; color:var(--dourado); text-transform:uppercase; letter-spacing:.06em; }
.sidebar.collapsed .user-info { display:none; }

/* Nav */
.sidebar-nav {
    flex:1; padding:8px 0; overflow-y:auto; overflow-x:hidden;
}
.sidebar-nav::-webkit-scrollbar { width:3px; }
.sidebar-nav::-webkit-scrollbar-thumb { background:var(--borda-hover); border-radius:2px; }

.nav-label {
    font-size:.62rem; font-weight:600; letter-spacing:.12em;
    text-transform:uppercase; color:var(--cinza-texto);
    padding:8px 18px 4px; white-space:nowrap;
    transition:opacity .2s;
}
.sidebar.collapsed .nav-label { opacity:0; }

.nav-item {
    display:flex; align-items:center; gap:12px;
    padding:11px 18px; color:var(--cinza-texto);
    text-decoration:none; font-size:.86rem; font-weight:500;
    white-space:nowrap; overflow:hidden;
    border-left:3px solid transparent; transition:all .2s; position:relative;
}
.nav-item svg { flex-shrink:0; min-width:20px; }
.nav-item .nav-text { overflow:hidden; text-overflow:ellipsis; transition:opacity .2s; white-space:nowrap; }
.sidebar.collapsed .nav-text { opacity:0; pointer-events:none; }
.nav-item:hover, .nav-item.active {
    background:var(--dourado-dim); color:var(--dourado); border-left-color:var(--dourado);
}

/* Aliases legado */
.nav-link { display:flex; align-items:center; gap:12px; padding:11px 18px; color:var(--cinza-texto); text-decoration:none; font-size:.86rem; font-weight:500; white-space:nowrap; overflow:hidden; border-left:3px solid transparent; transition:all .2s; position:relative; }
.nav-link .nav-icon { font-size:1rem; min-width:22px; text-align:center; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.nav-link:hover, .nav-link.active { background:var(--dourado-dim); color:var(--dourado); border-left-color:var(--dourado); }

/* Tooltip no collapsed */
.sidebar.collapsed .nav-item::after {
    content:attr(data-tooltip); position:absolute;
    left:calc(var(--sidebar-w-col) + 8px); top:50%; transform:translateY(-50%);
    background:var(--preto-card); color:var(--cinza-claro);
    padding:5px 11px; border-radius:5px; font-size:.8rem;
    white-space:nowrap; z-index:999;
    border:1px solid var(--borda); opacity:0; pointer-events:none; transition:opacity .15s;
}
.sidebar.collapsed .nav-item:hover::after { opacity:1; }

/* Footer da sidebar */
.sidebar-footer-wrap {
    padding:10px; border-top:1px solid var(--borda);
    display:flex; flex-direction:column; gap:4px;
    flex-shrink:0; overflow:hidden;
}

.sidebar-footer-btn {
    display:flex; align-items:center; gap:10px;
    padding:9px 8px; color:var(--cinza-texto);
    background:none; border:none; cursor:pointer;
    font-size:.84rem; font-weight:500; text-align:left;
    border-radius:5px; transition:all .2s; white-space:nowrap; overflow:hidden;
    font-family:'Barlow',sans-serif;
}
.sidebar-footer-btn:hover { background:var(--dourado-dim); color:var(--dourado); }
.sidebar-footer-btn.logout:hover { background:rgba(231,76,60,.1); color:var(--erro); }
.sidebar-footer-btn svg { flex-shrink:0; min-width:18px; }
.sidebar.collapsed .sidebar-footer-btn .nav-text { opacity:0; width:0; overflow:hidden; }

.sidebar-footer {
    padding:12px 14px; border-top:1px solid var(--borda);
    font-size:.7rem; color:var(--cinza-texto);
    text-align:center; white-space:nowrap; overflow:hidden; flex-shrink:0;
}
.sidebar.collapsed .sidebar-footer { display:none; }

.sidebar-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.65); z-index:190; }
.sidebar-overlay.active { display:block; }

/* ── MAIN ─────────────────────────────────────────────────── */
.main-area {
    margin-left: var(--sidebar-w);
    flex:1; padding:1.8rem 2.2rem;
    transition: margin-left .26s cubic-bezier(.4,0,.2,1);
    min-width:0; width:calc(100% - var(--sidebar-w));
}
body.sidebar-collapsed .main-area {
    margin-left: var(--sidebar-w-col);
    width: calc(100% - var(--sidebar-w-col));
}

/* ── HEADER ──────────────────────────────────────────────── */
.header-actions {
    display:flex; justify-content:space-between; align-items:center;
    margin-bottom:1.8rem; flex-wrap:wrap; gap:.8rem;
}
.header-actions h1 {
    font-family:'Barlow Condensed',sans-serif;
    font-size:1.7rem; font-weight:700; color:white;
    text-transform:uppercase; letter-spacing:.04em;
}
.header-breadcrumb { font-size:.78rem; color:var(--cinza-texto); margin-top:2px; }

/* ── CONTENT CARD ────────────────────────────────────────── */
.content-card {
    background:var(--preto-card);
    border:1px solid var(--borda); border-radius:9px; padding:1.6rem;
}

/* ── FILTROS ─────────────────────────────────────────────── */
.filter-grid { display:flex; gap:.9rem; margin-bottom:1.4rem; flex-wrap:wrap; align-items:center; }
.filter-grid input, .filter-grid select { flex:1; min-width:140px; }

/* ── INPUTS ──────────────────────────────────────────────── */
input, select, textarea {
    background:var(--preto-input); border:1px solid var(--borda);
    color:var(--cinza-claro); padding:9px 13px; border-radius:6px;
    width:100%; font-family:'Barlow',sans-serif; font-size:.87rem;
    transition:border-color .2s; outline:none;
}
input:focus, select:focus, textarea:focus { border-color:var(--dourado); }
input::placeholder, textarea::placeholder { color:var(--cinza-texto); font-size:.81rem; }
select option { background:var(--preto-card); }
textarea { resize:vertical; min-height:85px; }

label {
    font-size:.76rem; font-weight:600; color:var(--cinza-texto);
    text-transform:uppercase; letter-spacing:.06em;
    margin-bottom:5px; display:block;
}
.form-group { display:flex; flex-direction:column; }

/* ── AUTOCOMPLETE ────────────────────────────────────────── */
.autocomplete-list {
    position:absolute; top:100%; left:0; right:0;
    background:var(--preto-card); border:1px solid var(--borda);
    border-top:none; border-radius:0 0 6px 6px; z-index:500;
    max-height:200px; overflow-y:auto;
}
.autocomplete-item {
    padding:8px 13px; font-size:.86rem; color:var(--cinza-claro);
    cursor:pointer; transition:background .15s;
}
.autocomplete-item:hover { background:var(--dourado-dim); color:var(--dourado); }

/* ── TABELA ──────────────────────────────────────────────── */
.table-wrapper { width:100%; overflow-x:auto; min-height:380px; border-radius:7px; }
table { width:100%; border-collapse:collapse; table-layout:fixed; min-width:680px; }
thead { background:rgba(200,168,75,.05); }
th {
    color:var(--dourado); text-align:left; padding:11px 14px;
    font-family:'Barlow Condensed',sans-serif; font-size:.78rem; font-weight:600;
    text-transform:uppercase; letter-spacing:.08em; border-bottom:1px solid var(--borda);
    white-space:nowrap;
}
td {
    padding:11px 14px; border-bottom:1px solid var(--borda);
    font-size:.84rem; color:var(--cinza-texto);
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
tbody tr { cursor:pointer; transition:background .12s; }
tbody tr:hover { background:var(--dourado-dim); }
tbody tr:hover td { color:var(--cinza-claro); }

/* Badges */
.badge {
    display:inline-block; padding:3px 9px; border-radius:20px;
    font-size:.71rem; font-weight:600; text-transform:uppercase; letter-spacing:.04em;
}
.badge-aberto    { background:rgba(59,130,246,.14); color:#60a5fa;  border:1px solid rgba(59,130,246,.28); }
.badge-instrucao { background:rgba(243,156,18,.14); color:#f59e0b;  border:1px solid rgba(243,156,18,.28); }
.badge-encerrado { background:rgba(46,204,113,.14); color:#4ade80;  border:1px solid rgba(46,204,113,.28); }
.badge-arquivado { background:rgba(138,143,158,.14);color:#8a8f9e; border:1px solid rgba(138,143,158,.28); }

/* ── PAGINAÇÃO ───────────────────────────────────────────── */
.pagination { display:flex; justify-content:center; align-items:center; gap:14px; margin-top:1.3rem; flex-wrap:wrap; }
.page-info { font-size:.83rem; color:var(--cinza-texto); }

/* ── BOTÕES ──────────────────────────────────────────────── */
.save-btn {
    background:var(--dourado); color:var(--preto-abs);
    padding:9px 20px; border:none; border-radius:6px;
    font-family:'Barlow Condensed',sans-serif; font-size:.93rem; font-weight:700;
    letter-spacing:.06em; text-transform:uppercase; cursor:pointer;
    text-decoration:none; display:inline-flex; align-items:center; gap:5px;
    transition:background .2s, transform .1s; white-space:nowrap;
}
.save-btn:hover { background:var(--dourado-hover); }
.save-btn:active { transform:scale(.98); }

.btn-secondary {
    background:transparent; color:var(--cinza-texto);
    padding:9px 18px; border:1px solid var(--borda); border-radius:6px;
    font-family:'Barlow Condensed',sans-serif; font-size:.88rem; font-weight:600;
    text-transform:uppercase; letter-spacing:.06em; cursor:pointer;
    text-decoration:none; display:inline-flex; align-items:center; gap:5px; transition:all .2s;
}
.btn-secondary:hover { border-color:var(--dourado); color:var(--dourado); }

.btn-danger {
    background:transparent; color:var(--erro);
    padding:6px 14px; border:1px solid rgba(231,76,60,.3); border-radius:5px;
    font-size:.82rem; font-weight:600; cursor:pointer; transition:all .2s;
}
.btn-danger:hover { background:rgba(231,76,60,.1); }

/* ── FORM GRID ───────────────────────────────────────────── */
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.3rem; }
.form-grid .span-2 { grid-column:span 2; }
.form-section-title {
    font-family:'Barlow Condensed',sans-serif;
    font-size:.83rem; font-weight:700; color:var(--dourado);
    text-transform:uppercase; letter-spacing:.1em;
    margin-bottom:1.1rem; padding-bottom:7px;
    border-bottom:1px solid var(--borda);
    display:flex; align-items:center; gap:7px;
}

/* ── MAPA ────────────────────────────────────────────────── */
#map { width:100%; height:320px; border-radius:7px; border:1px solid var(--borda); overflow:hidden; }
#map-dashboard { width:100%; height:340px; border-radius:9px; border:1px solid var(--borda); overflow:hidden; }
.map-search-row { display:flex; gap:9px; margin-bottom:9px; }
.map-search-row input { flex:1; }
.map-coords { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:9px; }

/* ── ANEXOS ──────────────────────────────────────────────── */
.anexos-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:.9rem; margin-top:.4rem; }
.anexo-card {
    background:var(--preto-input); border:1.5px dashed var(--borda);
    border-radius:7px; padding:1.1rem;
    display:flex; flex-direction:column; gap:8px; transition:border-color .2s;
}
.anexo-card:hover { border-color:var(--dourado); }
.anexo-card-title { font-size:.78rem; font-weight:600; color:var(--cinza-claro); text-transform:uppercase; letter-spacing:.05em; display:flex; align-items:center; gap:7px; }
.file-input-wrapper { position:relative; }
.file-input-wrapper input[type="file"] { opacity:0; position:absolute; inset:0; cursor:pointer; z-index:2; }
.file-input-label { display:flex; align-items:center; gap:7px; padding:7px 11px; background:var(--preto-card); border:1px solid var(--borda); border-radius:4px; font-size:.8rem; color:var(--cinza-texto); cursor:pointer; transition:all .2s; }
.file-input-wrapper:hover .file-input-label { border-color:var(--dourado); color:var(--dourado); }
.file-selected { font-size:.76rem; color:var(--sucesso); margin-top:3px; }

/* ── MODAL ───────────────────────────────────────────────── */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.75); z-index:1000; align-items:center; justify-content:center; padding:1rem; }
.modal-overlay.active { display:flex; }
.modal { background:var(--preto-card); border:1px solid var(--borda); border-radius:11px; width:100%; max-width:480px; padding:1.8rem; animation:modalIn .2s ease; }
@keyframes modalIn { from{opacity:0;transform:scale(.96) translateY(-8px)} to{opacity:1;transform:scale(1) translateY(0)} }
.modal-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:1.4rem; }
.modal-title { font-family:'Barlow Condensed',sans-serif; font-size:1.15rem; font-weight:700; color:white; text-transform:uppercase; }
.modal-close { background:none; border:none; color:var(--cinza-texto); font-size:1.3rem; cursor:pointer; line-height:1; }
.modal-close:hover { color:var(--erro); }
.modal-footer { display:flex; justify-content:flex-end; gap:9px; margin-top:1.4rem; }

/* ── DASHBOARD ───────────────────────────────────────────── */
.kpi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:1.1rem; margin-bottom:1.8rem; }
.kpi-card {
    background:var(--preto-card); border:1px solid var(--borda);
    border-radius:9px; padding:1.3rem;
    display:flex; flex-direction:column; gap:6px; transition:border-color .2s;
}
.kpi-card:hover { border-color:var(--borda-hover); }
.kpi-label { font-size:.72rem; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--cinza-texto); }
.kpi-value { font-family:'Barlow Condensed',sans-serif; font-size:1.9rem; font-weight:700; color:white; line-height:1; }
.kpi-sub { font-size:.75rem; color:var(--cinza-texto); }

/* Alerta prazo */
.alerta-prazo {
    background:rgba(243,156,18,.1); border:1px solid rgba(243,156,18,.3);
    border-radius:8px; padding:1rem 1.2rem;
    margin-bottom:1.2rem;
}
.alerta-prazo-titulo { font-size:.78rem; font-weight:700; color:var(--alerta); text-transform:uppercase; letter-spacing:.08em; margin-bottom:.6rem; }
.alerta-prazo-item { font-size:.83rem; color:var(--cinza-claro); padding:4px 0; border-bottom:1px solid rgba(243,156,18,.15); display:flex; align-items:center; gap:8px; }
.alerta-prazo-item:last-child { border:none; }

/* ── CONFIGURAÇÕES ───────────────────────────────────────── */
.config-section { margin-bottom:2.2rem; }
.config-section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:1rem; }
.config-item { display:flex; align-items:center; justify-content:space-between; padding:10px 14px; background:var(--preto-input); border:1px solid var(--borda); border-radius:6px; margin-bottom:7px; gap:8px; }
.config-item-label { font-size:.86rem; color:var(--cinza-claro); display:flex; align-items:center; gap:7px; }
.config-item-actions { display:flex; gap:7px; }

/* ── TOAST ───────────────────────────────────────────────── */
.toast-container { position:fixed; bottom:22px; right:22px; z-index:2000; display:flex; flex-direction:column; gap:8px; }
.toast { background:var(--preto-card); border:1px solid var(--borda); border-left:4px solid var(--sucesso); border-radius:7px; padding:11px 16px; font-size:.86rem; color:var(--cinza-claro); min-width:240px; animation:toastIn .22s ease; box-shadow:0 4px 20px rgba(0,0,0,.4); }
.toast.erro   { border-left-color:var(--erro); }
.toast.alerta { border-left-color:var(--alerta); }
@keyframes toastIn { from{opacity:0;transform:translateX(18px)} to{opacity:1;transform:translateX(0)} }

/* ── MISC ────────────────────────────────────────────────── */
.readonly-field { background:var(--preto-card) !important; color:var(--cinza-texto) !important; cursor:default; }
.text-gold { color:var(--dourado) !important; }
.text-success { color:var(--sucesso); }
.text-error   { color:var(--erro); }
.text-muted   { color:var(--cinza-texto); font-size:.84rem; }
.mobile-menu-btn { display:none; background:none; border:1px solid var(--borda); color:var(--cinza-texto); width:34px; height:34px; border-radius:6px; cursor:pointer; align-items:center; justify-content:center; font-size:1rem; flex-shrink:0; }
.mobile-menu-btn:hover { border-color:var(--dourado); color:var(--dourado); }

::-webkit-scrollbar { width:5px; height:5px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--borda-hover); border-radius:3px; }

/* ── RESPONSIVIDADE ──────────────────────────────────────── */
@media (max-width: 1024px) { .form-grid { grid-template-columns:1fr 1fr; } }

@media (max-width: 768px) {
    /* No mobile a sidebar vira drawer: sai pela esquerda e volta com mobile-open */
    .sidebar {
        transform: translateX(-100%) !important;
        width: var(--sidebar-w) !important;
        transition: transform .26s cubic-bezier(.4,0,.2,1) !important;
    }
    .sidebar.mobile-open {
        transform: translateX(0) !important;
    }
    /* No mobile collapsed não faz sentido — sempre mostra completa quando aberta */
    .sidebar.collapsed {
        width: var(--sidebar-w) !important;
    }
    .sidebar.collapsed .nav-text    { opacity:1 !important; pointer-events:auto !important; }
    .sidebar.collapsed .user-info   { display:block !important; }
    .sidebar.collapsed .nav-label   { opacity:1 !important; }
    .sidebar.collapsed .sidebar-footer { display:block !important; }
    .sidebar.collapsed .sidebar-logo { opacity:1 !important; width:120px !important; }

    .main-area {
        margin-left: 0 !important;
        width: 100% !important;
        padding: 1rem 1.1rem;
    }
    body.sidebar-collapsed .main-area {
        margin-left: 0 !important;
        width: 100% !important;
    }

    .mobile-menu-btn { display:flex !important; }
    .header-actions h1 { font-size:1.25rem; }
    .form-grid { grid-template-columns:1fr !important; }
    .form-grid .span-2 { grid-column:span 1; }
    .kpi-grid { grid-template-columns:1fr 1fr; }
    .map-coords { grid-template-columns:1fr; }
    #map { height:260px; }
}
@media (max-width: 480px) {
    .kpi-grid { grid-template-columns:1fr; }
    .filter-grid { flex-direction:column; }
    .header-actions { flex-direction:column; align-items:flex-start; }
}
