/* 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-sidebar .bg-dark { background:#fff !important; border:1px solid #dbe5f2; color:#64748b !important; }
.admin-sidebar .bg-dark .text-white { color:#172b4d !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:#18734b !important; background:#e4f4f1; border-left:0; }
.admin-sidebar .nav-link.text-warning { color:#34908c !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:#34908c !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:#f1f8f7; 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:#34908c; border-color:#34908c; }
body:has(.admin-sidebar) main .btn-primary:hover { background:#28756f; border-color:#28756f; }
body:has(.admin-sidebar) main .btn-outline-primary { color:#34908c; border-color:#34908c; }
body:has(.admin-sidebar) main .btn-outline-primary:hover { background:#34908c; border-color:#34908c; color:#fff; }
@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);
}

/* Padrão institucional inspirado no portal CTILS */
.topbar {
    background: #f1f1f1;
    color: #444;
    font-size: .78rem;
    border-bottom: 1px solid #ddd;
}
.topbar .container { display:flex; justify-content:space-between; gap:1rem; min-height:34px; align-items:center; }
.topbar a { color:#444; text-decoration:none; padding:.45rem .2rem; }
.topbar a:hover { color:#18734b; text-decoration:underline; }
.topbar-left, .topbar-right { display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; }
.topbar .sep { color:#aaa; }
.brandbar { background:#fff url('../img/ctils-bg-header.png') repeat-x center bottom / auto 171px; }
.brandbar .container { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; min-height:156px; padding:1.25rem 12px; }
.brand { display:flex; align-items:center; gap:1rem; color:#222; text-decoration:none; }
.brand-logo { width:110px; height:110px; object-fit:contain; filter:drop-shadow(0 3px 5px rgba(0,0,0,.12)); }
.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; }
.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:#18734b; border-bottom:5px solid #b3272d; }
.mainmenu .container { padding:0 12px; }
.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:.45rem; padding:1rem .85rem; color:#fff; text-decoration:none; font-size:.96rem; font-weight:600; white-space:nowrap; }
.mainmenu a:hover { color:#fff; background:rgba(0,0,0,.12); }
.menu-account { margin-left:.5rem; }
.account-button { display:inline-flex; align-items:center; gap:.4rem; padding:.55rem .85rem; border:1px solid rgba(255,255,255,.65); border-radius:3px; color:#fff; background:transparent; text-decoration:none; font-weight:700; }
.account-button:hover { color:#fff; background:rgba(255,255,255,.12); }
.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:calc(100% + 8px); right:0; left:auto; min-width:210px; padding:.45rem; background:#fff; border:1px solid #e2e8f0; border-radius:8px; box-shadow:0 12px 28px rgba(15,23,42,.18); }
.mainmenu .dropdown-menu.show { display:block; }
.mainmenu .dropdown-menu a, .mainmenu .dropdown-menu .dropdown-item { display:flex; width:100%; padding:.65rem .75rem; color:#334155 !important; background:transparent; font-size:.9rem; font-weight:600; white-space:nowrap; }
.mainmenu .dropdown-menu a:hover, .mainmenu .dropdown-menu .dropdown-item:hover { color:#18734b !important; background:#eef8f7; }
.mainmenu .dropdown-menu form { margin:0; }
.mainmenu .dropdown-menu .text-danger { color:#b3272d !important; }
.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 { min-height:100vh; background:#eef7f6; display:flex; flex-direction:column; }
.admin-login-shell { 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 20px 55px rgba(15,70,65,.16); }
.admin-login-brand { position:relative; display:flex; flex-direction:column; justify-content:space-between; color:#fff; background:linear-gradient(145deg,#064c46,#18734b 62%,#34908c); overflow:hidden; }
.admin-login-brand::after { content:""; position:absolute; width:360px; height:360px; right:-150px; bottom:-150px; border:1px solid rgba(255,255,255,.22); 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:#fff; 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:#34908c; 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:#34908c; background:#f1f8f7; border-color:#d7e5e3; }
.admin-login-form-panel .form-control { border-color:#d7e5e3; padding:.75rem .8rem; }
.admin-login-form-panel .form-control:focus { border-color:#34908c; box-shadow:0 0 0 .2rem rgba(52,144,140,.16); }
.admin-login-submit { background:#34908c; border-color:#34908c; color:#fff; }
.admin-login-submit:hover { background:#28756f; border-color:#28756f; 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:#34908c; }
.admin-login-footer { 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:#666; }
.site-footer--itapevi::before { content:""; position:absolute; inset:auto 0 0; height:150px; background:url('../img/ctils-bg-footer.png') repeat-x center bottom / auto 150px; opacity:.35; }
.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 { min-height:0; padding-top:1rem; padding-bottom:1rem; }
    .brand-logo { width:82px; height:82px; }
    .brand-logo-ecidadania { width:min(100%, 520px); height:auto; max-height:110px; object-position:left center; }
    .site-search { max-width:none; }
    .mainmenu ul { align-items:stretch; flex-direction:column; }
    .mainmenu a { width:100%; padding:.75rem .5rem; }
    .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; background:#666; }
.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,.13); border-radius:8px; overflow:hidden; }
.footer-ribbon { display:flex; align-items:center; justify-content:center; min-width:40px; padding:10px 8px; background:#378f88; color:#fff; 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,.9); }
.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; color:#fff !important; font-size:32px; }
.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:transparent; border:1px solid #fff; border-radius:8px; text-decoration:none; }
.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; }
.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}
