/* E-Cidadania Itapevi - Design System & Modern UI */
:root {
    --primary-color: #0A2540;       /* Azul Marinho Institucional Câmara de Itapevi */
    --primary-hover: #071B30;
    --accent-blue: #0056B3;         /* Azul Vivo Itapevi */
    --accent-gold: #E5A93C;         /* Dourado / Amarelo Ouro Destaque */
    --bg-light: #F4F6F9;
    --bg-card: #FFFFFF;
    --text-main: #1E293B;
    --text-muted: #64748B;
    --border-color: #E2E8F0;
    --card-shadow: 0 10px 25px -5px rgba(10, 37, 64, 0.08), 0 8px 10px -6px rgba(10, 37, 64, 0.04);
    --hover-shadow: 0 20px 30px -10px rgba(10, 37, 64, 0.15);
    --radius-lg: 1rem;
    --radius-md: 0.75rem;
    --transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Modo Escuro */
[data-theme="dark"] {
    --primary-color: #0F172A;
    --primary-hover: #1E293B;
    --accent-blue: #38BDF8;
    --accent-gold: #FACC15;
    --bg-light: #0B0F17;
    --bg-card: #1E293B;
    --text-main: #F8FAFC;
    --text-muted: #94A3B8;
    --border-color: #334155;
    --card-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5);
}

/* Alto Contraste */
body.high-contrast {
    --primary-color: #000000 !important;
    --accent-blue: #FFFF00 !important;
    --accent-gold: #FF00FF !important;
    --bg-light: #000000 !important;
    --bg-card: #111111 !important;
    --text-main: #FFFFFF !important;
    --text-muted: #FFFFFF !important;
    --border-color: #FFFFFF !important;
    color: #FFFFFF !important;
}

body.high-contrast a {
    color: #FFFF00 !important;
    text-decoration: underline !important;
}

body.high-contrast .btn-primary {
    background-color: #FFFF00 !important;
    color: #000000 !important;
    border-color: #FFFFFF !important;
}

/* Estilos Gerais */
body {
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    background-color: var(--bg-light);
    color: var(--text-main);
    line-height: 1.6;
    transition: background-color 0.3s ease, color 0.3s ease;
}

/* Accessibility Toolbar Topo */
.accessibility-bar {
    background-color: #071626;
    color: #E2E8F0;
    font-size: 0.85rem;
    padding: 0.4rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.accessibility-bar a {
    color: #CBD5E1;
    text-decoration: none;
    transition: var(--transition);
}

.accessibility-bar a:hover {
    color: var(--accent-gold);
}

/* Header & Navbar */
.navbar-itapevi {
    background: linear-gradient(135deg, var(--primary-color) 0%, #0D3B66 100%);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.navbar-itapevi .navbar-brand {
    font-weight: 700;
    font-size: 1.35rem;
    letter-spacing: -0.5px;
}

.brand-badge {
    background: linear-gradient(135deg, var(--accent-gold) 0%, #D48C1C 100%);
    color: #0A2540;
    font-weight: 800;
    padding: 0.25rem 0.6rem;
    border-radius: 0.5rem;
    font-size: 0.75rem;
    text-transform: uppercase;
}

.nav-link {
    font-weight: 500;
    color: rgba(255, 255, 255, 0.9) !important;
    padding: 0.6rem 1rem !important;
    border-radius: 0.5rem;
    transition: var(--transition);
}

.nav-link:hover, .nav-link.active {
    color: #FFFFFF !important;
    background: rgba(255, 255, 255, 0.12);
}

/* Hero Institutional Banner */
.hero-banner {
    background: linear-gradient(135deg, var(--primary-color) 0%, #104172 60%, var(--accent-blue) 100%);
    color: #FFFFFF;
    padding: 4rem 0 5rem 0;
    position: relative;
    overflow: hidden;
    border-radius: 0 0 2rem 2rem;
}

.hero-banner::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(229, 169, 60, 0.15) 0%, rgba(255, 255, 255, 0) 70%);
    pointer-events: none;
}

.hero-title {
    font-size: 2.75rem;
    font-weight: 800;
    letter-spacing: -1px;
    line-height: 1.2;
}

.hero-subtitle {
    font-size: 1.2rem;
    color: #E2E8F0;
    max-width: 650px;
}

/* Search Bar Component */
.search-box-container {
    margin-top: -2.5rem;
    position: relative;
    z-index: 10;
}

.search-card {
    background: var(--bg-card);
    border-radius: var(--radius-lg);
    box-shadow: var(--card-shadow);
    padding: 1.25rem;
    border: 1px solid var(--border-color);
}

.search-input {
    border: 2px solid var(--border-color);
    border-radius: 0.75rem 0 0 0.75rem;
    padding: 0.85rem 1.25rem;
    font-size: 1rem;
}

.search-input:focus {
    border-color: var(--accent-blue);
    box-shadow: 0 0 0 4px rgba(0, 86, 179, 0.15);
}

.search-btn {
    border-radius: 0 0.75rem 0.75rem 0;
    background-color: var(--accent-blue);
    color: white;
    font-weight: 600;
    padding: 0 1.75rem;
}

/* Cards & Eixos Temáticos */
.feature-card {
    background: var(--bg-card);
    border-radius: var(--radius-lg);
    border: 1px solid var(--border-color);
    box-shadow: var(--card-shadow);
    padding: 2rem 1.5rem;
    height: 100%;
    transition: var(--transition);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.feature-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--accent-blue), var(--accent-gold));
    opacity: 0;
    transition: var(--transition);
}

.feature-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--hover-shadow);
}

.feature-card:hover::before {
    opacity: 1;
}

.feature-icon-wrapper {
    width: 70px;
    height: 70px;
    margin: 0 auto 1.25rem auto;
    border-radius: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    background: rgba(0, 86, 179, 0.08);
    color: var(--accent-blue);
    transition: var(--transition);
}

.feature-card:hover .feature-icon-wrapper {
    background: var(--accent-blue);
    color: #FFFFFF;
    transform: scale(1.1);
}
.feature-card { height:100%; display:flex; flex-direction:column; }
.feature-card > p { flex-grow:1; }
.feature-card > a { margin-top:auto; }

/* Stats Counter Section */
.stat-card {
    background: var(--bg-card);
    border-radius: var(--radius-md);
    padding: 1.5rem;
    border: 1px solid var(--border-color);
    box-shadow: var(--card-shadow);
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

.stat-icon {
    width: 55px;
    height: 55px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary-color), var(--accent-blue));
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
}

.stat-number {
    font-size: 1.85rem;
    font-weight: 800;
    color: var(--primary-color);
    line-height: 1;
}

.stat-label {
    font-size: 0.85rem;
    color: var(--text-muted);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Voting Progress Bars */
.vote-bar-wrapper {
    background: #E2E8F0;
    height: 14px;
    border-radius: 10px;
    overflow: hidden;
    display: flex;
}

.vote-bar-favoravel {
    background: linear-gradient(90deg, #10B981, #059669);
    transition: width 0.6s ease;
}

.vote-bar-contrario {
    background: linear-gradient(90deg, #EF4444, #DC2626);
    transition: width 0.6s ease;
}

/* Buttons & Badges */
.btn-itapevi {
    background-color: var(--primary-color);
    color: #FFFFFF;
    font-weight: 600;
    border-radius: 0.6rem;
    padding: 0.65rem 1.35rem;
    transition: var(--transition);
}

.btn-itapevi:hover {
    background-color: var(--accent-blue);
    color: #FFFFFF;
}

.btn-vote-favoravel {
    background-color: #10B981;
    color: #FFFFFF;
    font-weight: 700;
    border: none;
    padding: 0.75rem 1.5rem;
    border-radius: 0.75rem;
    transition: var(--transition);
}

.btn-vote-favoravel:hover {
    background-color: #059669;
    transform: scale(1.03);
    color: #FFFFFF;
}

.btn-vote-contrario {
    background-color: #EF4444;
    color: #FFFFFF;
    font-weight: 700;
    border: none;
    padding: 0.75rem 1.5rem;
    border-radius: 0.75rem;
    transition: var(--transition);
}

.btn-vote-contrario:hover {
    background-color: #DC2626;
    transform: scale(1.03);
    color: #FFFFFF;
}

/* Status Badges Workflow */
.badge-status {
    font-size: 0.8rem;
    padding: 0.4em 0.8em;
    border-radius: 2rem;
    font-weight: 700;
}

.badge-recebido { background-color: #DBEAFE; color: #1E40AF; }
.badge-analise { background-color: #FEF3C7; color: #92400E; }
.badge-respondido { background-color: #D1FAE5; color: #065F46; }
.badge-concluido { background-color: #E0E7FF; color: #3730A3; }
.badge-arquivado { background-color: #F3F4F6; color: #4B5563; }

/* Admin Sidebar */
.admin-sidebar {
    background-color: var(--primary-color);
    min-height: 100vh;
    color: #FFFFFF;
}

.admin-sidebar .nav-link {
    color: #94A3B8 !important;
    padding: 0.75rem 1.25rem !important;
    margin-bottom: 0.25rem;
}

.admin-sidebar .nav-link:hover,
.admin-sidebar .nav-link.active {
    color: #FFFFFF !important;
    background-color: rgba(255, 255, 255, 0.1);
    border-left: 4px solid var(--accent-gold);
}
.admin-sidebar { position:sticky; top:0; background:#f7faff; min-height:100vh; border-right:1px solid #dbe5f2; border-radius:0 22px 22px 0; box-shadow:10px 0 30px rgba(26,44,82,.08); color:#64748b; overflow:hidden; }
@media (max-width: 768px) { .admin-sidebar { position:static; min-height:auto; border-radius:0 0 18px 18px; } }
.admin-sidebar .border-bottom { border-color:#dbe5f2 !important; }
.admin-brand { display:flex; flex-direction:column; align-items:flex-start; gap:.4rem; color:#172b4d !important; }
.admin-brand img { width:180px; height:62px; object-fit:contain; object-position:left center; }
.admin-brand span { color:#64748b; font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; }
.admin-user-card { background:#375A95; border:1px solid #2c4a7c; border-radius:8px; padding:.5rem; }
.admin-user-icon { color:#F6C100 !important; }
.admin-sidebar .nav-link { color:#6b7d99 !important; border-radius:8px; margin:.2rem 0; font-size:.86rem; font-weight:700; }
.admin-sidebar .nav-link:hover, .admin-sidebar .nav-link.active { color:#375A95 !important; background:#eaf0fa; border-left:0; }
.admin-nav-group { padding:.9rem .75rem .3rem; color:#9aa9c0; font-size:.66rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.admin-nav-external { color:#b8860a !important; }
.admin-sidebar .nav-link.text-danger { color:#b3272d !important; }
body:has(.admin-sidebar) { background:#eef3fb !important; }
body:has(.admin-sidebar) main { color:#172b4d; }
body:has(.admin-sidebar) main > .d-flex { border-bottom:0 !important; }
body:has(.admin-sidebar) main .card { border:1px solid #dbe5f2 !important; box-shadow:0 6px 18px rgba(50,80,120,.06) !important; }
body:has(.admin-sidebar) { font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
body:has(.admin-sidebar) .container-fluid { padding-left:0; }
body:has(.admin-sidebar) .admin-sidebar { width:auto; }
body:has(.admin-sidebar) main { padding:28px 38px !important; }
body:has(.admin-sidebar) main > .d-flex { position:relative; padding-top:0 !important; margin-bottom:28px !important; align-items:flex-end !important; }
body:has(.admin-sidebar) main > .d-flex h1 { font-size:1.65rem; letter-spacing:-.03em; color:#172b4d !important; }
body:has(.admin-sidebar) main > .d-flex h1 i { color:#375A95 !important; }
body:has(.admin-sidebar) main > .d-flex::before { content:"Bem-vindo de volta à gestão do E-Cidadania"; position:absolute; transform:translateY(-24px); color:#8495a7; font-size:.72rem; font-weight:600; }
body:has(.admin-sidebar) main .card.rounded-4 { border-radius:12px !important; }
body:has(.admin-sidebar) main .card.p-3 { min-height:112px; }
body:has(.admin-sidebar) main .card .border-start { border-left-width:3px !important; }
body:has(.admin-sidebar) main .table { --bs-table-hover-bg:#eaf0fa; font-size:.82rem; }
body:has(.admin-sidebar) main .table thead th { color:#72839c; font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; border-bottom-color:#dbe5f2; }
body:has(.admin-sidebar) main .btn-primary { background:#375A95; border-color:#375A95; }
body:has(.admin-sidebar) main .btn-primary:hover { background:#2c4a7c; border-color:#2c4a7c; }
body:has(.admin-sidebar) main .btn-outline-primary { color:#375A95; border-color:#375A95; }
body:has(.admin-sidebar) main .btn-outline-primary:hover { background:#375A95; border-color:#375A95; color:#fff; }
.ouv-status-badge { display:inline-flex; align-items:center; padding:.32rem .7rem; border-radius:999px; font-size:.72rem; font-weight:700; }
.ouv-status-recebida { background:#eef2f9; color:#3a4b66; }
.ouv-status-analise { background:#fff3d6; color:#8a5b00; }
.ouv-status-encaminhada { background:#e4ecfa; color:#2c4a7c; }
.ouv-status-respondida { background:#e8f0fc; color:#375A95; }
.ouv-status-concluida { background:#e0f3ea; color:#1c7a4d; }
.ouv-status-arquivada { background:#eef0f2; color:#5c6773; }
.ouv-tipo-badge { display:inline-flex; align-items:center; padding:.28rem .65rem; border-radius:8px; background:#f1f4f9; color:#3a4b66; font-size:.78rem; font-weight:600; }
@media (max-width: 768px) { body:has(.admin-sidebar) main { padding:22px 16px !important; } body:has(.admin-sidebar) main > .d-flex::before { position:static; transform:none; margin-bottom:4px; } }

/* Footer Institucional */
.footer-itapevi {
    background-color: #071626;
    color: #94A3B8;
    padding: 4rem 0 2rem 0;
    margin-top: 5rem;
    border-top: 4px solid var(--accent-gold);
}

.footer-itapevi h5 {
    color: #FFFFFF;
    font-weight: 700;
    margin-bottom: 1.25rem;
}

.footer-itapevi a {
    color: #CBD5E1;
    text-decoration: none;
    transition: var(--transition);
}

.footer-itapevi a:hover {
    color: var(--accent-gold);
}

/* Réplica fiel do padrão institucional do portal oficial (barueri.legislativo.website) */
.topbar {
    background: #375A95;
    color: #fff;
    font-size: 12px;
    border-bottom: 3px solid #FFF209;
    box-shadow: 0 3px 0 0 #31B157;
}
.topbar .container { display:flex; justify-content:space-between; gap:1rem; min-height:34px; align-items:center; padding-top:10px; padding-bottom:7px; }
.topbar a { display:inline-flex; align-items:center; gap:.35rem; color:#fff; text-decoration:none; font-weight:600; padding:.45rem .2rem; }
.topbar a:hover { color:#F6C100; text-decoration:none; }
.topbar-left, .topbar-right { display:flex; align-items:center; gap:1.1rem; flex-wrap:wrap; }
.topbar-left a strong { display:inline-block; padding:3px 6px; background:#3d65a8; font-weight:700; }
.topbar-right a { border-left:1px solid rgba(255,255,255,.44); padding-left:1.1rem; }
.topbar-right a:first-child { border-left:0; padding-left:0; }
.brandbar { background:#fff; }
.brandbar .container { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; min-height:170px; padding:16px 12px; }
.brand { display:flex; align-items:center; gap:1rem; color:#222; text-decoration:none; }
.brand-logo { width:auto; height:156px; object-fit:contain; }
.brand-logo-ecidadania { width:min(650px, 62vw); height:128px; object-fit:contain; object-position:left center; filter:none; }
.brand-copy { display:flex; flex-direction:column; line-height:1; }
.brand-copy strong { color:#505050; font-size:clamp(1.65rem, 3vw, 2.5rem); letter-spacing:.04em; }
.brand-copy small { color:#18734b; font-size:.88rem; font-weight:700; margin-top:.35rem; }
.brand-copy em { color:#666; font-size:.8rem; font-style:normal; margin-top:.3rem; }
.brandbar-tools { display:flex; flex-direction:column; align-items:flex-end; gap:14px; }
.brandbar-social { display:flex; align-items:center; gap:15px; }
.brandbar-social a { color:#698dc8 !important; text-decoration:none; font-size:1.7rem; line-height:1; transition:.15s; }
.brandbar-social a:hover { color:#375A95 !important; }
.brandbar-cta { display:inline-flex; align-items:center; gap:.4rem; white-space:nowrap; }
.site-search { display:flex; gap:.5rem; width:min(390px, 100%); }
.site-search .form-control, .site-search .btn { border-radius:2px; height:38px; }
.site-search .form-control { border-color:#d8d8d8; }
.site-search .btn { border:1px solid #d8d8d8; background:#f7f7f7; width:44px; }
.mainmenu { background:#375A95; border-bottom:1px solid #284370; }
.mainmenu .container { padding:0 12px; position:relative; }
.mainmenu ul { list-style:none; margin:0; padding:0; display:flex; align-items:center; justify-content:center; gap:2px; flex-wrap:wrap; }
.mainmenu li { position:relative; }
.mainmenu a { display:inline-flex; align-items:center; gap:.4rem; padding:1rem .85rem; color:#fff; text-decoration:none; font-size:.88rem; font-weight:600; white-space:nowrap; }
.mainmenu a:hover { color:#F6C100; background:transparent; }
.mainmenu .dropdown-toggle i { font-size:.7rem; }
.mainmenu .dropdown-toggle::after { display:none; }
.menu-account { margin-left:.5rem; }
.account-button { display:inline-flex; align-items:center; gap:.4rem; padding:.55rem .85rem; border:1px solid rgba(35,50,66,.25); border-radius:3px; color:#233242; background:transparent; text-decoration:none; font-weight:700; }
.account-button:hover { color:#375A95; background:#f2f6fa; }
.mainmenu .dropdown { position:relative; display:block; min-width:0; padding:0; background:transparent; border:0; box-shadow:none; }
.mainmenu .dropdown-menu { display:none; position:absolute; top:100%; left:0; right:auto; min-width:210px; margin:0; padding:.5rem 0; background:#f9fafb; border:1px solid rgba(0,0,0,.1); border-radius:0; box-shadow:0 12px 28px rgba(15,23,42,.18); }
.mainmenu .dropdown-menu.show { display:block; }
.mainmenu .dropdown-menu.mega { left:50%; transform:translateX(-50%); width:min(980px, 94vw); padding:1.5rem; }
.mainmenu .mega-row { display:flex; flex-wrap:wrap; margin:0 -.9rem; }
.mainmenu .mega-col { flex:1 1 220px; padding:0 .9rem; margin-bottom:1rem; min-width:200px; }
.mainmenu .mega-col-title { display:block; margin-bottom:.55rem; padding-bottom:.4rem; border-bottom:1px solid #d7dde3; color:#666; font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.mainmenu .mega-col ul { list-style:none; margin:0; padding:0; }
.mainmenu .mega-col li { margin-bottom:.4rem; }
.mainmenu .dropdown-menu a, .mainmenu .dropdown-menu .dropdown-item { display:flex; align-items:center; gap:.4rem; width:100%; padding:.55rem 1rem; color:#334155 !important; background:transparent; font-size:.83rem; font-weight:500; white-space:normal; }
.mainmenu .mega-col a { padding:0; }
.mainmenu .dropdown-menu a i, .mainmenu .dropdown-menu .dropdown-item i { font-size:.68rem; color:#98a2ae; }
.mainmenu .dropdown-menu a:hover, .mainmenu .dropdown-menu .dropdown-item:hover { color:#375A95 !important; background:#eef2f7; }
.mainmenu .dropdown-menu form { margin:0; }
.mainmenu .dropdown-menu .text-danger { color:#b3272d !important; }
@media (min-width: 992px) { .mainmenu .dropdown:hover > .dropdown-menu { display:block; } }
.citizen-hero { background:linear-gradient(135deg,#18734b,#34908c); }
.citizen-hero-icon { color:#34908c; }
.protocol-row { cursor:pointer; }
.protocol-row:hover { background:#eef8f7 !important; }
.citizen-modal-header { background:linear-gradient(135deg,#18734b,#34908c); }
.nav-pills .nav-link { color:#18734b !important; background:transparent; }
.nav-pills .nav-link.active { background:#34908c; color:#fff !important; }
.nav-pills .nav-link:focus { outline:none; box-shadow:0 0 0 .2rem rgba(52,144,140,.25); }
.nav-pills:focus { outline:none; }
.admin-login-page { position:relative; overflow:hidden; min-height:100vh; background:#eef2f9; display:flex; flex-direction:column; }
.admin-login-page::before, .admin-login-page::after { content:""; position:fixed; border-radius:50%; pointer-events:none; z-index:0; }
.admin-login-page::before { top:-180px; left:-160px; width:520px; height:520px; background:radial-gradient(circle at 35% 35%,rgba(55,90,149,.16),transparent 70%); }
.admin-login-page::after { bottom:-200px; right:-160px; width:520px; height:520px; background:radial-gradient(circle at 60% 60%,rgba(246,193,0,.14),transparent 70%); }
.admin-login-shell { position:relative; z-index:1; width:min(1050px, calc(100% - 2rem)); min-height:610px; margin:auto; display:grid; grid-template-columns:1fr 1fr; background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 25px 60px rgba(20,40,75,.16); }
.admin-login-brand { position:relative; display:flex; flex-direction:column; justify-content:space-between; color:#fff; background:linear-gradient(150deg,#1b3866,#375A95 62%,#2d4c81); overflow:hidden; }
.admin-login-brand::after { content:""; position:absolute; width:360px; height:360px; right:-150px; bottom:-150px; border:1px solid rgba(255,255,255,.18); border-radius:50%; box-shadow:0 0 0 22px rgba(255,255,255,.05),0 0 0 44px rgba(255,255,255,.04); }
.admin-login-logo-wrap { padding:48px 42px 20px; background:#fff; border-radius:0 0 100px 0; }
.admin-login-logo-wrap img { display:block; width:min(100%,430px); height:125px; object-fit:contain; object-position:left center; }
.admin-login-message { position:relative; z-index:1; padding:38px 42px 25px; }
.admin-login-message h1 { font-size:clamp(1.6rem,3vw,2.25rem); line-height:1.15; font-weight:800; }
.admin-login-message p { max-width:390px; color:rgba(255,255,255,.8); line-height:1.6; }
.admin-login-features { position:relative; z-index:1; display:flex; justify-content:space-around; gap:10px; padding:20px 25px 25px; border-top:1px solid rgba(255,255,255,.16); font-size:.72rem; font-weight:700; }
.admin-login-features span { display:flex; flex-direction:column; align-items:center; gap:7px; text-align:center; }
.admin-login-features i { display:grid; place-items:center; width:36px; height:36px; border:1px solid rgba(255,255,255,.7); border-radius:8px; color:#F6C100; font-size:1rem; }
.admin-login-form-panel { display:flex; align-items:center; padding:45px 55px; }
.admin-login-form-inner { width:100%; max-width:340px; margin:auto; }
.admin-login-kicker { color:#375A95; font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; margin-bottom:1rem; }
.admin-login-form-inner h2 { color:#182a38; font-weight:800; margin-bottom:.35rem; }
.admin-login-form-panel .input-group-text { color:#375A95; background:#eef2f9; border-color:#d7dfec; }
.admin-login-form-panel .form-control { border-color:#d7dfec; padding:.75rem .8rem; }
.admin-login-form-panel .form-control:focus { border-color:#375A95; box-shadow:0 0 0 .2rem rgba(55,90,149,.16); }
.admin-login-submit { background:#375A95; border-color:#375A95; color:#fff; }
.admin-login-submit:hover { background:#2c4a7c; border-color:#2c4a7c; color:#fff; }
.admin-login-back { display:block; margin-top:1.5rem; color:#64748b; font-size:.82rem; text-align:center; text-decoration:none; }
.admin-login-back:hover { color:#375A95; }
.admin-login-footer { position:relative; z-index:1; padding:0 1rem 1rem; color:#8495a0; font-size:.75rem; text-align:center; }
.consultas-admin-modal-header { background:linear-gradient(135deg,#18734b,#34908c); }
@media (max-width: 768px) { .admin-login-shell { grid-template-columns:1fr; min-height:auto; } .admin-login-brand { min-height:430px; } .admin-login-logo-wrap { padding:28px 25px 18px; } .admin-login-logo-wrap img { height:95px; } .admin-login-message { padding:28px 25px 20px; } .admin-login-form-panel { padding:35px 25px 42px; } }
.mainmenu-toggle { width:100%; border:0; background:transparent; color:#fff; text-align:left; padding:.75rem .25rem; font-weight:700; }
.site-footer--itapevi { position:relative; overflow:hidden; min-height:440px; margin-top:4rem; color:#fff; background:linear-gradient(165deg,#2c4d80 0%,#375A95 55%,#2f5290 100%); }
.footer-overlay { position:absolute; inset:0; background:rgba(0,0,0,.06); }
.footer-inner { position:relative; z-index:1; padding-top:2.25rem; }
.footer-brand { display:flex; flex-direction:column; align-items:flex-start; }
.footer-logo { width:min(180px, 75%); height:180px; object-fit:contain; object-position:left top; filter:brightness(0) invert(1); }
.footer-description { max-width:340px; color:rgba(255,255,255,.78); font-size:.88rem; }
.site-footer--itapevi .footer-subtitle { color:#fff; font-size:1.05rem; font-weight:800; margin:1rem 0 1rem; }
.site-footer--itapevi a { color:rgba(255,255,255,.82); text-decoration:none; }
.site-footer--itapevi a:hover { color:#ffd166; }
.footer-social { display:flex; gap:.8rem; margin-top:.4rem; }
.footer-social a { font-size:1.4rem; }
.footer-bottom { position:relative; z-index:1; margin-top:2rem; border-top:1px solid rgba(255,255,255,.2); }
.footer-bottom-inner { display:flex; justify-content:space-between; gap:1rem; padding:1rem 0; color:rgba(255,255,255,.75); font-size:.78rem; }
@media (max-width: 768px) {
    .topbar .container, .brandbar .container { align-items:flex-start; flex-direction:column; }
    .topbar .container { padding-top:.35rem; padding-bottom:.35rem; }
    .topbar-right { display:none; }
    .brandbar .container { align-items:center; min-height:0; padding-top:1.25rem; padding-bottom:1.25rem; gap:1rem; }
    .brand { width:100%; justify-content:center; }
    .brand-logo { width:110px; height:110px; }
    .brand-logo-ecidadania { width:min(100%, 520px); height:auto; max-height:110px; object-position:left center; }
    .site-search { max-width:none; }
    .brandbar-tools { align-items:center; width:100%; }
    .brandbar-social { justify-content:center; }
    .mainmenu ul { align-items:stretch; flex-direction:column; }
    .mainmenu a { width:100%; padding:.75rem .5rem; }
    .mainmenu .dropdown-menu, .mainmenu .dropdown-menu.mega { position:static; transform:none; width:100%; box-shadow:none; border:0; border-radius:0; background:#2b4a7a; }
    .mainmenu .dropdown-menu a, .mainmenu .dropdown-menu .dropdown-item { color:#fff !important; }
    .mainmenu .mega-col-title { color:#c9d6ea; border-bottom-color:rgba(255,255,255,.2); }
    .mainmenu .dropdown-menu a:hover, .mainmenu .dropdown-menu .dropdown-item:hover { background:rgba(255,255,255,.08); color:#F6C100 !important; }
    .menu-account { margin-left:0; }
    .footer-bottom-inner { flex-direction:column; }
}

/* Footer CTILS: composição institucional com cartões verticais */
.site-footer--itapevi { min-height:500px; }
.site-footer--itapevi .footer-inner { padding-top:30px; padding-bottom:95px; }
.site-footer--itapevi .footer-brand { min-height:260px; justify-content:flex-start; }
.site-footer--itapevi .footer-logo { width:min(290px, 100%); height:270px; max-height:none; object-fit:contain; object-position:left top; filter:none; }
.footer-card { display:flex; min-height:148px; color:#fff; background:rgba(255,255,255,.08); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,.14); border-radius:14px; overflow:hidden; }
.footer-ribbon { display:flex; align-items:center; justify-content:center; min-width:40px; padding:10px 8px; background:#F6C100; color:#1c2b3d; font-weight:800; letter-spacing:.04em; writing-mode:vertical-rl; transform:rotate(180deg); }
.footer-card-body { padding:34px 30px; }
.footer-text-strong { color:#fff; font-weight:800; }
.footer-text-muted, .footer-card .footer-text-muted { color:rgba(255,255,255,.85); }
.site-footer--itapevi .footer-subtitle { color:#fff; font-size:20px; font-weight:800; }
.footer-social { display:flex; gap:10px; flex-wrap:wrap; }
.footer-social-btn { width:42px; height:42px; display:inline-flex; align-items:center; justify-content:center; border-radius:10px; background:rgba(255,255,255,.1); color:#fff !important; font-size:22px; transition:.15s; }
.footer-social-btn:hover { background:#F6C100; color:#1c2b3d !important; }
.footer-apps { display:flex; gap:10px; flex-wrap:wrap; }
.footer-app-btn { max-width:190px; display:inline-flex; align-items:center; gap:10px; padding:8px 12px; color:#fff !important; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.35); border-radius:10px; text-decoration:none; transition:.15s; }
.footer-app-btn:hover { background:rgba(255,255,255,.14); border-color:#fff; }
.footer-app-btn i { font-size:25px; }
.footer-app-btn small, .footer-app-btn b { display:block; line-height:1.1; }
.footer-bottom { position:relative; z-index:1; background:rgba(0,0,0,.18); border-top:1px solid rgba(255,255,255,.12); }
.footer-bottom-inner { display:flex; justify-content:space-between; gap:12px; padding:14px 0; color:rgba(255,255,255,.82); font-size:13px; }
@media (max-width: 992px) { .site-footer--itapevi .footer-logo { width:230px; height:220px; } }

/* Paleta institucional: remove o amarelo decorativo e alinha os componentes ao verde/vermelho da Câmara. */
.accent-gold { color:#34908c !important; }
:root { --accent-gold: #34908c; --accent-gold-dark: #28756f; }
.brand-badge { background: #34908c; color: #fff; }
.btn-warning, .bg-warning { background-color:#34908c !important; border-color:#34908c !important; color:#fff !important; }
.btn-warning:hover, .btn-warning:focus { background-color:#28756f !important; border-color:#28756f !important; color:#fff !important; }
.btn-outline-warning { color:#34908c !important; border-color:#34908c !important; }
.btn-outline-warning:hover, .btn-outline-warning:focus { background-color:#34908c !important; color:#fff !important; }
.text-warning { color:#34908c !important; }
.bg-warning-subtle { background-color:#f8e2e3 !important; }
.border-warning { border-color:#34908c !important; }
/* Alertas continuam amarelos quando representam aviso semântico, mas com contraste mais suave. */
.alert-warning { color:#664d03; background:#fff8df; border-color:#f1df9b; }
.stat-icon[style*="F59E0B"], .feature-icon-wrapper[style*="F59E0B"] { background:rgba(52,144,140,.12) !important; color:#34908c !important; }

/* Retema o azul "primary" padrão do Bootstrap para o azul institucional da Câmara de Barueri. */
:root { --bs-primary: #375A95; --bs-primary-rgb: 55,90,149; }
.text-primary { color:#375A95 !important; }
.bg-primary { background-color:#375A95 !important; }
.border-primary { border-color:#375A95 !important; }
.btn-primary { background-color:#375A95 !important; border-color:#375A95 !important; color:#fff !important; }
.btn-primary:hover, .btn-primary:focus { background-color:#2c4a7c !important; border-color:#2c4a7c !important; color:#fff !important; }
.btn-outline-primary { color:#375A95 !important; border-color:#375A95 !important; }
.btn-outline-primary:hover, .btn-outline-primary:focus { background-color:#375A95 !important; border-color:#375A95 !important; color:#fff !important; }
.bg-primary-subtle { background-color:#e8edf5 !important; }
a.text-primary:hover { color:#2c4a7c !important; }
.hero-camara-logo { display:block; width:190px; height:145px; margin:0 auto; object-fit:contain; }
.stat-card { width:min(100%, 400px); aspect-ratio:1.35; min-height:220px; margin:0 auto; padding:1.5rem; flex-direction:column; justify-content:center; text-align:center; gap:.6rem; }
.stats-grid { max-width:900px; margin-left:auto; margin-right:auto; }
.stats-grid { max-width:none; }
.stats-grid > [class*="col-"] { display:flex; }
.stats-grid .stat-card { width:100%; height:100%; aspect-ratio:auto; min-height:112px; margin:0; flex-direction:row; justify-content:flex-start; text-align:left; gap:1.25rem; }
.stats-grid .stat-description { margin:0; }
.stat-card .stat-icon { width:58px; height:58px; flex:0 0 58px; }
.stat-card .stat-number { font-size:2rem; line-height:1; }
.stat-card .stat-label { font-size:.92rem; }
.stat-description { color:var(--text-muted); font-size:.74rem; line-height:1.35; max-width:220px; margin:0 auto; }

/* Menu de acessibilidade e integração VLibras */
.accessibility-button { position:fixed; left:20px; bottom:22px; width:60px; height:60px; display:flex; align-items:center; justify-content:center; z-index:1080; border:3px solid #fff; border-radius:50%; color:#fff; background:#34908c; font-size:2rem; cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,.25); transition:.2s ease; }
.accessibility-button:hover, .accessibility-button:focus { background:#b3272d; transform:scale(1.08); outline:none; }
.accessibility-menu { position:fixed; left:20px; bottom:94px; width:292px; z-index:1079; overflow:hidden; background:#fff; border-radius:8px; box-shadow:0 10px 24px rgba(0,0,0,.28); opacity:0; visibility:hidden; transform:scale(.95) translateY(10px); transition:.2s ease; }
.accessibility-menu.show { opacity:1; visibility:visible; transform:scale(1) translateY(0); }
.accessibility-menu .menu-header { display:flex; justify-content:space-between; align-items:center; padding:12px 16px; color:#fff; background:#34908c; font-weight:700; }
.accessibility-menu .close-btn { border:0; background:none; color:#fff; font-size:1.5rem; cursor:pointer; }
.accessibility-menu .menu-list { list-style:none; padding:0; margin:0; }
.accessibility-menu .menu-list li { display:flex; align-items:center; gap:10px; padding:12px 16px; border-bottom:1px solid #f0f0f0; cursor:pointer; transition:.2s; }
.accessibility-menu .menu-list li:hover { background:#eef8f7; }
.accessibility-menu .menu-list i { color:#34908c; font-size:1.1rem; }
.consultas-hero { background:linear-gradient(135deg,#18734b,#34908c); }
.consultas-hero-icon { color:#18734b; }
.consultas-badge, .consultas-button { background:#34908c; border-color:#34908c; color:#fff; }
.consultas-button:hover, .consultas-button:focus { background:#28756f; border-color:#28756f; color:#fff; }
.login-header { background:linear-gradient(135deg,#18734b,#34908c); }
.login-header-icon { color:#34908c; }
.login-button { background:#34908c; border-color:#34908c; color:#fff; }
.login-button:hover, .login-button:focus { background:#28756f; border-color:#28756f; color:#fff; }
.login-link { color:#34908c; }
.login-link:hover { color:#28756f; }
body.grayscale { filter:grayscale(100%); }
body.negative-contrast { filter:invert(100%); }
body.negative-contrast img, body.negative-contrast video, body.negative-contrast iframe { filter:invert(100%); }
body.underline-links a { text-decoration:underline !important; }
body.readable-font { font-family:Arial,Verdana,sans-serif !important; }
@media (max-width:576px) { .accessibility-button { left:14px; bottom:14px; width:52px; height:52px; font-size:1.65rem; } .accessibility-menu { left:14px; bottom:78px; width:min(292px, calc(100vw - 28px)); } }
.vereador-picker{position:relative}.vereador-options{display:none;position:absolute;z-index:1060;left:0;right:0;top:calc(100% + 4px);max-height:220px;overflow:auto;background:#fff;border:1px solid #d7e2e8;border-radius:10px;box-shadow:0 8px 22px rgba(16,52,72,.14);padding:5px}.vereador-options.show{display:block}.vereador-option{display:block;width:100%;border:0;background:transparent;text-align:left;padding:9px 11px;border-radius:7px;color:#263746;font-size:.9rem;cursor:pointer}.vereador-option:hover,.vereador-option:focus{background:#e8f4f2;color:#287f7a;outline:0}
.wa-inbox{display:grid;grid-template-columns:320px 1fr;height:calc(100vh - 180px);min-height:520px;background:#fff;border-radius:10px;overflow:hidden}.wa-list{overflow:auto;border-right:1px solid #e5e7eb}.wa-contact{display:flex;flex-direction:column;padding:14px;color:#263746;text-decoration:none;border-bottom:1px solid #eef1f3}.wa-contact.active,.wa-contact:hover{background:#e8f4f2}.wa-contact small,.wa-contact span,.wa-chat header small{display:block;color:#6c757d;font-size:.75rem}.wa-chat{display:flex;min-width:0;min-height:0;overflow:hidden;flex-direction:column;background:#f3f0e9}.wa-chat header{flex:0 0 auto;display:flex;justify-content:space-between;padding:14px 18px;background:#fff;border-bottom:1px solid #ddd}.wa-messages{flex:1 1 auto;min-height:0;overflow-y:auto;padding:22px}.wa-message{width:fit-content;max-width:72%;margin:0 0 12px;padding:9px 12px;background:#fff;border-radius:9px;box-shadow:0 1px 2px #0001}.wa-message.out{margin-left:auto;background:#d9fdd3}.wa-message small,.wa-message time{display:block;color:#68737d;font-size:.65rem}.wa-message time{text-align:right;margin-top:4px}.wa-compose{position:relative;z-index:2;flex:0 0 auto;display:flex;gap:10px;padding:12px;background:#fff;border-top:1px solid #e5e7eb}@media(max-width:850px){.wa-inbox{grid-template-columns:1fr;height:auto}.wa-list{max-height:260px;border-right:0}.wa-chat{min-height:600px}.wa-message{max-width:88%}}

/* Central de atendimento WhatsApp */
.wa-page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.wa-page-head h1{margin:.15rem 0;font-size:1.65rem;font-weight:800;color:#1c3344}.wa-page-head p{margin:0;color:#71808b;font-size:.88rem}.wa-kicker{color:#218c63;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.wa-filters{display:flex;gap:.4rem;margin-bottom:.8rem;overflow-x:auto}.wa-filters a{padding:.42rem .8rem;border:1px solid #ccd7dd;border-radius:999px;color:#536571;background:#fff;text-decoration:none;font-size:.78rem;white-space:nowrap}.wa-filters a:hover,.wa-filters a.active{color:#fff;background:#278d69;border-color:#278d69}.wa-inbox{grid-template-columns:340px 1fr;height:calc(100vh - 210px);min-height:540px;border:1px solid #dde5e9;border-radius:14px}.wa-list{background:#fff}.wa-list-search{position:relative;padding:12px;border-bottom:1px solid #e7ecef}.wa-list-search i{position:absolute;left:24px;top:22px;color:#89969f}.wa-list-search input{width:100%;padding:.58rem .7rem .58rem 2.15rem;border:1px solid #d9e2e7;border-radius:9px;background:#f7f9fa;outline:0}.wa-list-search input:focus{border-color:#34908c;box-shadow:0 0 0 3px rgba(52,144,140,.12)}.wa-contact{display:flex;flex-direction:row;gap:11px;padding:13px 14px}.wa-contact.active{background:#e4f4ef;border-left:3px solid #278d69;padding-left:11px}.wa-avatar{display:grid!important;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:50%;color:#278d69!important;background:#dff3eb;font-size:1.15rem!important}.wa-avatar.large{width:44px;height:44px;flex-basis:44px}.wa-contact-body{min-width:0;flex:1}.wa-contact-top{display:flex!important;justify-content:space-between;gap:.5rem}.wa-contact-top b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wa-contact-top time{color:#84919a;font-size:.68rem}.wa-preview{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:.15rem 0;color:#667781!important;font-size:.75rem!important}.wa-contact-meta{display:flex!important;align-items:center;justify-content:space-between}.wa-status{display:inline-flex!important;width:max-content;padding:.22rem .5rem;border-radius:999px;color:#53636c!important;background:#edf1f3;font-size:.62rem!important;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.wa-status-waiting_agent{color:#855c05!important;background:#fff1c7}.wa-status-in_service{color:#176946!important;background:#d9f5e8}.wa-status-bot{color:#315b8d!important;background:#e0edff}.wa-status-closed{color:#68737a!important;background:#e9edef}.wa-unread{display:grid!important;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:10px;color:#fff!important;background:#278d69;font-size:.66rem!important;font-weight:800}.wa-chat-header{align-items:center;min-height:69px}.wa-chat-person{display:flex;align-items:center;gap:11px}.wa-chat-person b{display:block;color:#213946}.wa-chat-person span{display:inline-block;margin-right:10px;color:#75838c;font-size:.69rem}.wa-chat-actions{display:flex;align-items:center;gap:.45rem}.wa-chat-actions form{margin:0}.wa-messages{padding:20px 26px;background-color:#efece5;background-image:radial-gradient(rgba(73,94,87,.07) .7px,transparent .7px);background-size:12px 12px}.wa-day{text-align:center;margin:6px 0 18px}.wa-day span{padding:.28rem .65rem;border-radius:7px;color:#69777f;background:#fff;box-shadow:0 1px 2px #0001;font-size:.67rem}.wa-message{min-width:105px;padding:8px 11px;border-radius:10px}.wa-message.in{border-top-left-radius:3px}.wa-message.out{border-top-right-radius:3px}.wa-message-author{margin-bottom:2px;color:#2d8667;font-size:.65rem;font-weight:800}.wa-message-body{color:#243943;font-size:.85rem;line-height:1.42}.wa-message-info{display:flex;justify-content:flex-end;gap:5px;margin-top:3px;color:#78878e;font-size:.59rem}.wa-message-status-read{color:#168ed1}.wa-compose textarea{min-height:40px;max-height:120px;resize:none}.wa-compose .btn{display:flex;align-items:center;gap:7px;padding-left:1rem;padding-right:1rem}.wa-compose-disabled{display:flex;justify-content:center;align-items:center;gap:.5rem;padding:16px;color:#74828a;background:#fff;border-top:1px solid #e5e7eb;font-size:.8rem}.wa-empty-chat,.wa-empty-list{display:flex;align-items:center;justify-content:center;flex-direction:column;color:#89969d;text-align:center}.wa-empty-chat{height:100%}.wa-empty-chat i,.wa-empty-list i{font-size:2.5rem;color:#b7c8c5}.wa-empty-chat h2{font-size:1.1rem;margin:.7rem 0 .2rem}.wa-empty-chat p{font-size:.78rem}.wa-empty-list{padding:3rem 1rem;gap:.6rem;font-size:.78rem}@media(max-width:992px){.wa-inbox{grid-template-columns:290px 1fr}.wa-chat-actions .wa-status{display:none!important}}@media(max-width:768px){.wa-page-head p{display:none}.wa-inbox{grid-template-columns:1fr;height:auto}.wa-list{max-height:280px}.wa-chat{min-height:620px}.wa-chat-header{align-items:flex-start}.wa-chat-actions{flex-wrap:wrap;justify-content:flex-end}.wa-compose .btn span{display:none}}
.wa-chat{position:relative}.wa-new-messages{position:absolute;z-index:4;left:50%;bottom:72px;transform:translateX(-50%);padding:.45rem .75rem;border:0;border-radius:999px;color:#fff;background:#278d69;font-size:.72rem;font-weight:700;box-shadow:0 4px 14px rgba(24,77,61,.25)}.wa-new-messages:hover{background:#1d7657}.wa-contact[hidden]{display:none!important}
.wa-avatar{overflow:hidden}.wa-avatar img{display:block;width:100%;height:100%;object-fit:cover}.wa-contact-title{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.wa-edit-contact{display:inline-grid;place-items:center;width:23px;height:23px;padding:0;border:0;border-radius:50%;color:#60757f;background:#edf3f3;font-size:.68rem}.wa-edit-contact:hover{color:#fff;background:#278d69}.wa-citizen-badge{padding:.18rem .4rem;border-radius:999px;color:#176946!important;background:#d9f5e8;font-size:.6rem!important;font-weight:800}.wa-contact-name-form{margin-top:.4rem}.wa-contact-name-form.show{display:flex;gap:.35rem}.wa-contact-name-form input{width:220px;max-width:45vw}
.wa-message-media{margin:3px 0 7px}.wa-message-media img,.wa-message-media video{display:block;width:min(320px,100%);max-height:330px;border-radius:8px;object-fit:contain;background:#172029}.wa-message-media audio{display:block;width:min(300px,65vw);height:42px}.wa-document{display:flex;align-items:center;gap:.65rem;min-width:230px;padding:.7rem;border-radius:8px;color:#29424e;background:rgba(255,255,255,.65);text-decoration:none}.wa-document>i:first-child{color:#b3272d;font-size:1.6rem}.wa-document>i:last-child{margin-left:auto}.wa-document span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.77rem;font-weight:700}.wa-document small{display:block;color:#71808b;font-size:.62rem;font-weight:400}.wa-attachment-form{display:flex;align-items:center;gap:.5rem;padding:10px 12px;background:#f7faf9;border-top:1px solid #dce6e3}.wa-attachment-form[hidden]{display:none}.wa-file-picker{display:flex;align-items:center;gap:.4rem;max-width:240px;margin:0;padding:.45rem .65rem;border:1px dashed #91aaa2;border-radius:8px;color:#39655a;background:#fff;cursor:pointer;font-size:.73rem;font-weight:700}.wa-file-picker span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wa-file-picker input{display:none}.wa-attachment-form>input{min-width:120px}.wa-attach-button{flex:0 0 42px;color:#50716a}@media(max-width:700px){.wa-attachment-form{align-items:stretch;flex-wrap:wrap}.wa-attachment-form>input{order:3;flex-basis:100%}.wa-document{min-width:190px}}
.wa-protocol-panel{flex:0 0 auto;padding:8px 12px;background:#f8fbfa;border-bottom:1px solid #dce6e3}.wa-protocol-link{display:flex;align-items:center;gap:.5rem}.wa-protocol-link>span{color:#45665d;font-size:.72rem;font-weight:800;white-space:nowrap}.wa-protocol-link input{max-width:220px;margin-left:auto;text-transform:uppercase}.wa-protocol-card{display:flex;align-items:center;gap:.7rem}.wa-protocol-icon{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:9px;color:#207a5c;background:#dff3eb;font-size:1rem}.wa-protocol-data{display:flex;min-width:0;flex-direction:column}.wa-protocol-data small{color:#71817a;font-size:.59rem;text-transform:uppercase;font-weight:800}.wa-protocol-data b{color:#203e35;font-size:.76rem}.wa-protocol-data>span{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5f716a;font-size:.68rem}.wa-protocol-details{display:flex;gap:1rem;margin-left:auto}.wa-protocol-details span{display:flex;flex-direction:column;color:#788780;font-size:.57rem;text-transform:uppercase}.wa-protocol-details b{color:#334c44;font-size:.68rem;text-transform:none}.wa-protocol-card form{margin:0}@media(max-width:850px){.wa-protocol-details{display:none}.wa-protocol-data>span{max-width:180px}}@media(max-width:600px){.wa-protocol-link>span{font-size:0}.wa-protocol-link>span i{font-size:1rem}.wa-protocol-card{flex-wrap:wrap}.wa-protocol-card>a{margin-left:auto}}
.wa-quick-bar{display:flex;align-items:center;gap:.45rem;padding:7px 12px;color:#278d69;background:#fff;border-top:1px solid #e1e8e5}.wa-quick-bar select{width:min(330px,calc(100% - 55px));border-color:#d6e2de}.wa-quick-bar>a{display:grid;place-items:center;width:28px;height:28px;margin-left:auto;border-radius:50%;color:#62756f;text-decoration:none}.wa-quick-bar>a:hover{color:#fff;background:#278d69}.wa-shortcut-input{width:180px}.wa-quick-delete{position:absolute;left:1rem;bottom:.65rem;margin:0}.wa-quick-delete .btn{padding:0;font-size:.7rem}.card:has(>.wa-quick-delete){position:relative}
.wa-contact[data-priority="high"]::after,.wa-contact[data-priority="urgent"]::after{content:"";position:absolute;left:6px;top:18px;width:6px;height:6px;border-radius:50%;background:#e08a19}.wa-contact[data-priority="urgent"]::after{background:#c22d35;box-shadow:0 0 0 3px rgba(194,45,53,.12)}.wa-contact{position:relative}.wa-organization{flex:0 0 auto;background:#fff;border-bottom:1px solid #dce6e3}.wa-organization-summary{display:flex;align-items:center;gap:.55rem;width:100%;padding:7px 12px;border:0;color:#556a63;background:#fff;text-align:left;font-size:.68rem}.wa-organization-summary:hover{background:#f7faf9}.wa-priority{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .5rem;border-radius:999px;font-weight:800;background:#edf1f0}.wa-priority-low{color:#687a75}.wa-priority-normal{color:#337563;background:#e3f2ed}.wa-priority-high{color:#9b5d08;background:#fff0d4}.wa-priority-urgent{color:#a32129;background:#fde5e7}.wa-tag-summary{display:flex;gap:.3rem;min-width:0;overflow:hidden}.wa-tag-summary span,.wa-tag-picker label{padding:.18rem .45rem;border-left:3px solid var(--tag-color);border-radius:4px;color:#4d625b;background:#f0f4f2;white-space:nowrap}.wa-tag-summary em{color:#8b9994;font-style:normal}.wa-has-note{color:#806b22}.wa-organization-form{padding:10px 12px;background:#f8faf9}.wa-organization-form.show{display:grid;grid-template-columns:130px minmax(210px,1fr) minmax(240px,1.4fr) auto;gap:.7rem;align-items:start}.wa-tag-picker>div{display:flex;gap:.35rem;flex-wrap:wrap}.wa-tag-picker label{cursor:pointer;font-size:.67rem}.wa-tag-picker input{accent-color:var(--tag-color)}.wa-notes-field label i{color:#788780}.wa-notes-field textarea{resize:vertical}@media(max-width:900px){.wa-organization-form.show{grid-template-columns:1fr 1fr}.wa-notes-field{grid-column:1/-1}.wa-has-note{display:none}}@media(max-width:600px){.wa-organization-form.show{grid-template-columns:1fr}.wa-notes-field{grid-column:auto}.wa-tag-summary{display:none}}
.wa-transfer-toggle{display:flex;align-items:center;gap:.4rem;width:100%;padding:6px 12px;border:0;border-top:1px solid #edf1ef;color:#587069;background:#fff;text-align:left;font-size:.68rem;font-weight:700}.wa-transfer-toggle small{margin-left:auto;color:#899891;font-weight:400}.wa-transfer-form{padding:9px 12px;background:#f7faf9}.wa-transfer-form.show{display:grid;grid-template-columns:minmax(170px,1fr) minmax(150px,.8fr) minmax(200px,1.2fr) auto;gap:.5rem}.wa-transfer-history{grid-column:1/-1;color:#52675f;font-size:.69rem}.wa-transfer-history>div{display:grid;grid-template-columns:1fr auto;gap:.15rem .7rem;padding:.4rem 0;border-top:1px solid #e1e8e5}.wa-transfer-history small{color:#82918b}.wa-transfer-history span{grid-column:1/-1;color:#65776f}@media(max-width:850px){.wa-transfer-form.show{grid-template-columns:1fr 1fr}.wa-transfer-form>input,.wa-transfer-history{grid-column:1/-1}}
.wa-report-card{display:flex;height:100%;min-height:145px;padding:1.2rem;flex-direction:column;border-radius:12px;background:#fff;box-shadow:0 .125rem .25rem rgba(0,0,0,.075)}.wa-report-card>i{color:#278d69;font-size:1.4rem}.wa-report-card span{margin-top:.6rem;color:#6e7f78;font-size:.72rem;text-transform:uppercase;font-weight:800}.wa-report-card b{color:#203b33;font-size:1.65rem}.wa-report-card small{color:#84918c}.wa-daily-chart{display:flex;flex-direction:column;gap:.65rem}.wa-daily-chart>div{display:grid;grid-template-columns:45px 1fr 35px;align-items:center;gap:.6rem;font-size:.72rem}.wa-daily-chart time{color:#71817a}.wa-daily-chart span{height:9px;overflow:hidden;border-radius:5px;background:#e9efed}.wa-daily-chart i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#34908c,#18734b)}.wa-satisfaction{display:flex;align-items:center;justify-content:center;gap:2rem}.wa-score{display:flex;width:120px;height:120px;align-items:center;justify-content:center;flex-direction:column;border-radius:50%;color:#fff;background:linear-gradient(145deg,#34908c,#18734b)}.wa-score b{font-size:2rem}.wa-score span{font-size:.7rem}.wa-satisfaction p{margin:.45rem 0;font-size:.78rem}

/* Acabamento visual do módulo WhatsApp */
.wa-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.wa-head-actions .btn,.wa-page-head .btn{border-radius:9px;font-size:.78rem;font-weight:700}.wa-dashboard{max-width:1500px;margin:auto}.wa-connection-hero{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.1rem;margin-bottom:1.2rem;padding:1.35rem 1.5rem;overflow:hidden;border:1px solid #cee5dc;border-radius:16px;color:#183e33;background:linear-gradient(120deg,#f2fbf7,#e2f4ed);box-shadow:0 8px 25px rgba(34,101,79,.08)}.wa-connection-icon{position:relative;display:grid;place-items:center;width:62px;height:62px;border-radius:18px;color:#fff;background:linear-gradient(145deg,#2ead75,#18734b);font-size:2rem}.wa-connection-icon span{position:absolute;right:-2px;bottom:-2px;width:14px;height:14px;border:3px solid #fff;border-radius:50%;background:#29a66e}.wa-connection-hero>div:nth-child(2)>small{color:#628276;font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.wa-connection-hero h2{margin:.15rem 0;color:#173e32;font-size:1.35rem;font-weight:850}.wa-connection-hero p{margin:0;color:#628076;font-size:.76rem}.wa-connection-meta{display:flex;gap:.75rem}.wa-connection-meta>span{display:grid;grid-template-columns:auto 1fr;column-gap:.5rem;min-width:170px;padding:.7rem .85rem;border:1px solid rgba(48,120,94,.12);border-radius:10px;background:rgba(255,255,255,.65)}.wa-connection-meta i{grid-row:1/3;align-self:center;color:#2d8a68;font-size:1.1rem}.wa-connection-meta small{color:#718a80;font-size:.58rem;text-transform:uppercase}.wa-connection-meta b{color:#284c40;font-size:.72rem}.wa-connection-disconnected,.wa-connection-error{border-color:#efd5d7;background:linear-gradient(120deg,#fff7f7,#f9e9ea)}.wa-connection-disconnected .wa-connection-icon,.wa-connection-error .wa-connection-icon{background:linear-gradient(145deg,#d55a61,#a72b32)}.wa-connection-disconnected .wa-connection-icon span,.wa-connection-error .wa-connection-icon span{background:#c53239}.wa-dashboard-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:.8rem;margin-bottom:1.2rem}.wa-dashboard-stat{display:flex;align-items:center;gap:.85rem;padding:1rem;border:1px solid #e3eae7;border-radius:13px;background:#fff;box-shadow:0 3px 12px rgba(23,59,47,.04);transition:.2s}.wa-dashboard-stat:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(23,59,47,.08)}.wa-dashboard-stat-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:12px;font-size:1.15rem}.wa-dashboard-stat small{display:block;color:#74857e;font-size:.64rem}.wa-dashboard-stat b{display:block;color:#203f35;font-size:1.3rem}.wa-stat-blue .wa-dashboard-stat-icon{color:#3873ad;background:#e7f1fb}.wa-stat-green .wa-dashboard-stat-icon{color:#278d69;background:#e2f5ed}.wa-stat-amber .wa-dashboard-stat-icon{color:#a56a13;background:#fff1d8}.wa-stat-purple .wa-dashboard-stat-icon{color:#7256a5;background:#eee9f8}.wa-stat-red .wa-dashboard-stat-icon{color:#b3272d;background:#fbe5e6}.wa-dashboard-section{overflow:hidden;border:1px solid #e1e8e5;border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(28,65,53,.05)}.wa-section-heading{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.2rem;border-bottom:1px solid #edf1ef}.wa-section-heading h2{margin:0;color:#203c33;font-size:.95rem;font-weight:800}.wa-section-heading p{margin:.15rem 0 0;color:#819089;font-size:.67rem}.wa-section-heading>a{color:#278d69;font-size:.72rem;font-weight:750;text-decoration:none}.wa-dashboard-conversations>a{display:grid;grid-template-columns:42px minmax(145px,.7fr) minmax(180px,1.5fr) auto 75px 15px;align-items:center;gap:.8rem;padding:.78rem 1.1rem;color:#53675f;border-bottom:1px solid #f0f3f2;text-decoration:none;transition:.15s}.wa-dashboard-conversations>a:last-child{border-bottom:0}.wa-dashboard-conversations>a:hover{background:#f4faf7}.wa-dashboard-contact{display:flex;min-width:0;flex-direction:column}.wa-dashboard-contact b,.wa-dashboard-contact small,.wa-dashboard-last{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wa-dashboard-contact b{color:#263f36;font-size:.76rem}.wa-dashboard-contact small,.wa-dashboard-last,.wa-dashboard-conversations time{color:#7c8b85;font-size:.66rem}.wa-dashboard-empty{display:flex;min-height:180px;align-items:center;justify-content:center;flex-direction:column;gap:.35rem;color:#82928b}.wa-dashboard-empty i{font-size:2rem;color:#aac6bb}.wa-dashboard-empty b{font-size:.85rem}.wa-dashboard-empty span{font-size:.68rem}.wa-log-summary{display:grid;grid-template-columns:repeat(3,minmax(150px,220px));gap:.75rem;margin-bottom:1rem}.wa-log-summary>span{display:grid;grid-template-columns:38px 1fr;align-items:center;padding:.8rem 1rem;border:1px solid #e2e9e6;border-radius:12px;background:#fff}.wa-log-summary i{grid-row:1/3;color:#2b8a68;font-size:1.25rem}.wa-log-summary b{color:#263f36;font-size:1.15rem}.wa-log-summary small{color:#7c8b85;font-size:.62rem}.wa-log-table thead th{padding:.75rem 1rem;color:#71827b;background:#f7faf9;border:0;font-size:.62rem;text-transform:uppercase;letter-spacing:.04em}.wa-log-table td{padding:.78rem 1rem;border-color:#edf1ef;color:#52665e;font-size:.72rem}.wa-log-table time{display:flex;flex-direction:column;color:#405a51;font-weight:700}.wa-log-table time small{color:#89968f;font-weight:400}.wa-log-table code{padding:.2rem .4rem;border-radius:5px;color:#49685d;background:#eef4f1;font-size:.62rem}.wa-log-level{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .5rem;border-radius:999px;font-size:.6rem;font-weight:800}.wa-log-level-info{color:#246d55;background:#e0f3eb}.wa-log-level-warning{color:#8a5b11;background:#fff0d3}.wa-log-level-error{color:#a3262d;background:#fbe3e5}.wa-settings-nav{position:sticky;z-index:5;top:0;display:flex;gap:.3rem;margin-bottom:1rem;padding:.45rem;border:1px solid #e1e8e5;border-radius:12px;background:rgba(255,255,255,.94);box-shadow:0 4px 15px rgba(27,67,53,.06);backdrop-filter:blur(8px)}.wa-settings-nav a{display:flex;align-items:center;gap:.35rem;padding:.48rem .7rem;border-radius:8px;color:#60736c;text-decoration:none;font-size:.68rem;font-weight:750}.wa-settings-nav a:hover{color:#1e7355;background:#e8f5f0}.wa-settings-connection{display:grid;grid-template-columns:minmax(210px,.7fr) minmax(330px,1.4fr);gap:1rem;margin-bottom:1rem;padding:1.2rem;border:1px solid #dfe8e4;border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(28,65,53,.05)}.wa-settings-status{display:flex;align-items:center;gap:.75rem}.wa-connection-dot{width:14px;height:14px;border:3px solid #d8eee6;border-radius:50%;background:#29a66e;box-shadow:0 0 0 4px #edf8f4}.wa-connection-dot-disconnected,.wa-connection-dot-error{border-color:#f1d4d6;background:#bc3038;box-shadow:0 0 0 4px #fdf0f1}.wa-settings-status small,.wa-settings-meta small{display:block;color:#7a8c84;font-size:.58rem;text-transform:uppercase;font-weight:750}.wa-settings-status b{display:block;color:#234439;font-size:1rem}.wa-settings-status p{margin:0;color:#b3272d;font-size:.65rem}.wa-settings-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.wa-settings-meta span{padding:.65rem .75rem;border-radius:9px;background:#f5f8f7}.wa-settings-meta b{display:block;overflow:hidden;color:#3a554c;font-size:.69rem;text-overflow:ellipsis;white-space:nowrap}.wa-settings-actions{grid-column:1/-1;display:flex;gap:.45rem;flex-wrap:wrap;padding-top:.85rem;border-top:1px solid #edf1ef}.wa-settings-actions form{margin:0}.wa-settings-actions .btn{border-radius:8px;font-size:.68rem;font-weight:700}.wa-qr-panel{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:2rem;padding:1.2rem;border-radius:12px;background:#f3f8f6}.wa-qr-panel>div:first-child{max-width:320px}.wa-qr-panel>div:first-child>i{color:#278d69;font-size:1.8rem}.wa-qr-panel h3{margin:.5rem 0 .2rem;font-size:1rem}.wa-qr-panel p{color:#71837b;font-size:.7rem}.wa-qr-panel #wa-qr{padding:10px;border-radius:9px;background:#fff}.wa-qr-panel #wa-qr img{max-width:220px;height:auto}.wa-settings-connection+form,.wa-settings-connection~form.card,.wa-settings-connection~.row .card{border-radius:13px!important}.wa-settings-connection+form .card-header{padding:1rem 1.15rem;border-color:#edf1ef}.wa-settings-connection~h2,.wa-settings-connection~div[id]{scroll-margin-top:65px}.wa-settings-connection~h2{margin-top:2rem!important;color:#29473d;font-size:1rem!important;font-weight:800}.wa-settings-connection~form textarea{font-size:.76rem;line-height:1.45}.wa-settings-connection~form label{color:#5b7068;font-size:.7rem;font-weight:650}.wa-settings-connection~form .form-control{border-color:#dce5e1;border-radius:8px}.wa-settings-connection~form .form-control:focus{border-color:#34908c;box-shadow:0 0 0 .2rem rgba(52,144,140,.12)}
@media(max-width:1100px){.wa-dashboard-stats{grid-template-columns:repeat(3,1fr)}.wa-connection-meta{display:none}}@media(max-width:768px){.wa-page-head{align-items:stretch;flex-direction:column}.wa-head-actions{justify-content:flex-start}.wa-connection-hero{grid-template-columns:auto 1fr}.wa-dashboard-stats{grid-template-columns:1fr 1fr}.wa-dashboard-conversations>a{grid-template-columns:42px 1fr auto}.wa-dashboard-last,.wa-dashboard-conversations .wa-status,.wa-dashboard-conversations time{display:none!important}.wa-log-summary{grid-template-columns:1fr 1fr 1fr}.wa-settings-nav{overflow-x:auto}.wa-settings-nav a{white-space:nowrap}.wa-settings-connection{grid-template-columns:1fr}.wa-settings-meta{grid-template-columns:1fr 1fr 1fr}}@media(max-width:520px){.wa-dashboard-stats,.wa-log-summary{grid-template-columns:1fr}.wa-settings-meta{grid-template-columns:1fr}.wa-connection-hero{padding:1rem}.wa-connection-icon{width:50px;height:50px;border-radius:14px;font-size:1.5rem}}

/* Ouvidoria da Câmara Municipal de Barueri */
.ouv-brand { display:flex; gap:14px; align-items:center; color:#133b58; font-size:1.55rem; font-weight:800; letter-spacing:.06em; }
.ouv-brand > i { display:grid; place-items:center; width:52px; height:52px; border-radius:15px; background:#e8f2f3; color:#177d82; }
.ouv-brand small { display:block; font-size:.78rem; font-weight:500; letter-spacing:0; margin-top:3px; }
.ouv-hero { position:relative; overflow:hidden; background:linear-gradient(120deg,#1b3866 0%,#375A95 58%,#2d4c81 100%); color:white; }
.ouv-hero::before, .ouv-hero::after { content:""; position:absolute; border-radius:50%; pointer-events:none; }
.ouv-hero::before { top:-140px; right:-120px; width:440px; height:440px; background:radial-gradient(circle at 32% 32%,rgba(246,193,0,.16),transparent 70%); }
.ouv-hero::after { bottom:-180px; left:-90px; width:380px; height:380px; background:radial-gradient(circle at 60% 60%,rgba(255,255,255,.08),transparent 70%); }
.ouv-hero > .container { position:relative; z-index:1; }
.ouv-hero h1 { line-height:1.15; letter-spacing:-.035em; }
.ouv-hero h1 span { color:#F6C100; }
.ouv-hero .lead { max-width:760px; color:rgba(255,255,255,.85); font-size:1.15rem; }
.ouv-eyebrow { display:inline-flex; align-items:center; gap:.5rem; padding:.45rem 1rem; border-radius:999px; background:rgba(55,90,149,.08); border:1px solid rgba(55,90,149,.18); color:#375A95 !important; font-size:.72rem; font-weight:800; letter-spacing:.12em; }
.ouv-eyebrow i { color:#375A95; }
.ouv-hero .ouv-eyebrow { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.22); color:#fff !important; }
.ouv-hero .ouv-eyebrow i { color:#F6C100; }
.ouv-hero .btn-warning { background:#F6C100 !important; border-color:#F6C100 !important; color:#1c2b3d !important; font-weight:700; box-shadow:0 10px 24px rgba(0,0,0,.18); }
.ouv-hero .btn-warning:hover, .ouv-hero .btn-warning:focus { background:#e0af00 !important; border-color:#e0af00 !important; color:#1c2b3d !important; }
.ouv-hero .btn-outline-light { border-width:2px; font-weight:700; }
.ouv-hero .btn-outline-light:hover { background:rgba(255,255,255,.14); }
.ouv-hero-note { display:inline-flex; align-items:center; gap:.5rem; margin-top:1.5rem; padding:.5rem .9rem; border-radius:999px; background:rgba(255,255,255,.08); font-size:.82rem; color:rgba(255,255,255,.85); }
.ouv-hero-card { background:rgba(255,255,255,.08); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.22); border-radius:24px; padding:38px; box-shadow:0 25px 50px rgba(8,20,40,.25); }
.ouv-hero-card-icon { display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:18px; background:rgba(246,193,0,.16); color:#F6C100; font-size:1.7rem; }
.ouv-type { display:flex; flex-direction:column; height:100%; padding:28px 22px; border:1px solid #e3e9f0; border-radius:18px; color:#16374b; text-decoration:none; transition:transform .18s,box-shadow .18s,border-color .18s; }
.ouv-type:hover { transform:translateY(-5px); box-shadow:0 18px 36px rgba(55,90,149,.14); border-color:#c7d4e6; color:#16374b; }
.ouv-type-icon { display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:14px; background:rgba(55,90,149,.09); color:#375A95; font-size:1.4rem; flex:0 0 auto; }
.ouv-type-cta { margin-top:auto; padding-top:14px; font-weight:700; font-size:.84rem; color:#375A95; }
.ouv-type:hover .ouv-type-icon { background:#375A95; color:#fff; }
.ouv-type:hover .ouv-type-cta { color:#c9860a; }
.ouv-steps { background:#f4f7fb; }
.ouv-step { height:100%; }
.ouv-step-num { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%; background:#375A95; color:#fff; font-weight:800; font-size:1.05rem; box-shadow:0 10px 20px rgba(55,90,149,.3); }
.ouv-steps-note { display:flex; align-items:center; gap:.7rem; padding:1rem 1.3rem; border-radius:14px; background:#fff; border:1px solid #dbe3ee; color:#2c4a7c; font-size:.9rem; }
.ouv-steps-note i { font-size:1.15rem; color:#375A95; }
.ouv-panel { padding:28px; border:1px solid #dce5eb; border-radius:18px; background:white; }
.ouv-form { max-width:900px; }
.ouv-prewrap { white-space:pre-wrap; overflow-wrap:anywhere; }
.ouv-timeline { padding-left:22px; border-left:2px solid #daebe9; list-style:none; margin-left:6px; }
.ouv-timeline li { position:relative; padding-bottom:16px; }
.ouv-timeline li::before { content:''; position:absolute; left:-29px; top:5px; width:12px; height:12px; border-radius:50%; background:#187d82; }
.ouv-footer { background:#112f4c; color:#d9e9f0; }
.ouv-footer a { color:#d9e9f0; display:inline-block; margin-bottom:8px; }
@media(max-width:575px) { .ouv-brand { font-size:1.15rem; gap:8px; } .ouv-brand small { font-size:.66rem; } .ouv-brand > i { width:38px; height:38px; } .ouv-panel { padding:20px; } .ouv-hero .display-4 { font-size:2.35rem; } .brandbar > .container { flex-wrap:wrap; gap:12px; } }
@media print { header, nav, footer, .accessibility-button, #accessibility-menu, [vw], button { display:none!important; } .ouv-panel { border:0; } }
.ouv-type { background:#fff; }
