:root { --text:#17242b; --muted:#657279; --line:#dfe6e4; --bg:#f7f9f8; --white:#fff; --green:#13804e; --red:#ba242b; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font:14px/1.5 Arial,Helvetica,sans-serif; }
img { max-width:100%; }
a { color:inherit; }
h1,h2,h3,p { margin-top:0; }
h1 { font-size:25px; line-height:1.2; }
h2 { font-size:19px; line-height:1.3; }
h3 { font-size:16px; }
button,input,select,textarea { font:inherit; }
.wrap { width:min(1060px,calc(100% - 30px)); margin:auto; }
.site-header { background:#fff; border-bottom:1px solid var(--line); }
.nav { min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.brand { display:block; flex:none; }
.site-logo { display:block; width:245px; height:auto; }
.nav nav { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px 15px; }
.nav nav a { text-decoration:none; font-weight:700; font-size:13px; }
.nav nav a:hover { color:var(--green); }
.nav-cta,.button { display:inline-block; background:#193d35; color:#fff !important; border:1px solid #193d35; border-radius:6px; padding:9px 13px; text-decoration:none; font-weight:700; cursor:pointer; }
.button:hover,.nav-cta:hover { filter:brightness(1.15); }
.button.secondary { background:#fff; color:#193d35 !important; }
.button.danger { background:#fff; color:var(--red) !important; border-color:var(--red); }
.simple-intro { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:27px 0 15px; }
.simple-intro h1 { margin-bottom:6px; }
.simple-intro p { color:var(--muted); max-width:700px; margin-bottom:0; }
.simple-intro .button { flex:none; }
.home-overview { padding:23px 0 8px; }
.home-overview-head { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.home-overview-head h1 { margin-bottom:4px; }
.home-overview-head p { margin-bottom:0; color:var(--muted); }
.home-overview-head .button { flex:none; }
.overview-stats { display:flex; flex-wrap:wrap; gap:9px; margin:17px 0 12px; }
.overview-stat { display:flex; align-items:center; gap:8px; min-width:155px; padding:10px 13px; border-radius:7px; border:1px solid var(--line); background:#fff; text-decoration:none; font-size:12px; font-weight:700; }
.overview-stat strong { font-size:21px; line-height:1; }
.overview-stat img { width:31px; height:31px; object-fit:cover; border-radius:4px; }
.overview-stat.left { color:var(--red); background:#fcebee; border-color:#efc8cb; }
.overview-stat.right { color:var(--green); background:#e9f6ee; border-color:#bfddca; }
.overview-stat.all { color:var(--text); }
.activity-strip { display:flex; align-items:center; gap:11px; min-height:39px; margin:0 0 10px; padding:6px 11px; background:#fff; border:1px solid var(--line); border-radius:6px; font-size:12px; overflow:hidden; }
.activity-label { color:var(--green); font-weight:700; text-transform:uppercase; white-space:nowrap; }
#activity-name { min-width:0; font-weight:700; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.activity-note { margin-left:auto; color:var(--muted); white-space:nowrap; }
.ticker-enter { animation:ticker-in .3s ease-out; }
@keyframes ticker-in { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
.research-note { margin:0 0 28px; padding:15px 18px; background:#fff; border:1px solid var(--line); border-radius:7px; }
.research-note h2 { font-size:15px; margin-bottom:4px; }
.research-note p { font-size:12px; color:var(--muted); margin:0; }
.ideology-links { display:flex; gap:9px; flex-wrap:wrap; margin:12px 0 19px; }
.ideology-links a { display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--line); border-radius:6px; padding:7px 10px; text-decoration:none; font-weight:700; }
.ideology-links a:hover { border-color:#97ada1; }
.ideology-links img { width:23px; height:23px; object-fit:cover; border-radius:4px; }
.compact-map { display:grid; grid-template-columns:1.5fr .8fr; gap:20px; background:#fff; border:1px solid var(--line); border-radius:8px; padding:18px; align-items:start; }
.compact-map h2 { margin-bottom:4px; }
.compact-map p { color:var(--muted); margin-bottom:15px; }
.compact-filter { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; align-items:end; }
.compact-filter label { min-width:0; }
.compact-filter .button { width:max-content; }
label { display:block; font-weight:700; font-size:13px; }
input,select,textarea { display:block; width:100%; min-height:37px; margin-top:5px; padding:8px 9px; border:1px solid #cbd6d0; border-radius:5px; background:#fff; color:var(--text); }
textarea { resize:vertical; }
input:focus,select:focus,textarea:focus { outline:2px solid #8bc3a5; outline-offset:1px; }
.brazil-map { display:grid; place-items:center; background:#f5f8f6; border:1px solid var(--line); border-radius:6px; min-height:220px; padding:8px; }
.brazil-map svg { display:block; width:100%; max-height:255px; }
.state-path { fill:#cbded2; stroke:#fff; stroke-width:1; cursor:pointer; }
.state-path.left-heavy { fill:#e9a9ad; }
.state-path.right-heavy { fill:#9bd2b3; }
.state-path.balanced { fill:#cbb7d1; }
.state-path:hover,.state-path:focus { fill:#73aa8a; outline:none; }
.state-path.selected { fill:var(--green); }
.map-totals { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 15px; }
.map-total { display:inline-flex; align-items:center; gap:6px; border-radius:5px; padding:6px 9px; font-size:12px; font-weight:700; }
.map-total.left { background:#fcebee; color:#9c1d24; }
.map-total.right { background:#e9f6ee; color:#0e6540; }
.map-total img { width:20px; height:20px; object-fit:cover; border-radius:3px; }
.map-markers { pointer-events:none; }
.map-symbol { stroke:#fff; stroke-width:2; }
.map-count { font:700 12px Arial,sans-serif; fill:#17242b; paint-order:stroke; stroke:#fff; stroke-width:3px; }
.map-count.esquerda { fill:var(--red); }
.map-count.direita { fill:var(--green); }
.list-section { margin:23px 0 32px; }
.list-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:10px; }
.list-heading h2 { margin:0; }
.list-heading span,.source-footnote { color:var(--muted); font-size:12px; }
.company-list { background:#fff; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.company-row { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:64px; padding:10px 14px; border-bottom:1px solid var(--line); text-decoration:none; }
.company-row:last-child { border-bottom:0; }
.company-row:hover { background:#f3f8f5; }
.row-brand { display:flex; align-items:center; gap:11px; min-width:0; }
.row-brand>div { min-width:0; }
.row-brand strong { display:block; font-size:14px; line-height:1.25; }
.row-brand small { display:block; color:var(--muted); font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:690px; }
.row-right { display:flex; align-items:center; gap:16px; flex:none; }
.row-arrow { font-size:22px; color:#8a9991; }
.company-logo { position:relative; display:inline-grid; place-items:center; flex:none; width:40px; height:40px; border-radius:6px; background:#e6efe9; color:#285c42; font-size:19px; font-weight:700; overflow:hidden; }
.company-logo img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; background:#fff; }
.tag { display:inline-flex; align-items:center; gap:6px; width:max-content; border-radius:5px; padding:5px 7px; background:#eef1ef; color:#4d5a52; font-size:11px; font-weight:700; white-space:nowrap; }
.tag.esquerda { color:#9c1d24; background:#fcebee; }
.tag.direita { color:#0e6540; background:#e9f6ee; }
.position-icon { width:18px; height:18px; object-fit:cover; border-radius:3px; }
.pagination { display:flex; align-items:center; justify-content:center; gap:18px; padding:20px 0; font-weight:700; }
.pagination a { color:var(--green); }
.source-footnote { margin:0 0 25px; }
.setup-note,.notice { padding:10px 12px; background:#e9f6ee; border:1px solid #bbdfc8; border-radius:5px; }
.empty,.error-box { padding:18px; background:#fff; border:1px solid var(--line); border-radius:6px; }
.error-box { background:#fff0f0; border-color:#e3b8ba; color:#86232b; margin:12px 0; }
.site-footer { background:#fff; border-top:1px solid var(--line); }
.footer-inner { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:18px 0; color:var(--muted); font-size:12px; }
.footer-links { display:flex; flex-wrap:wrap; gap:10px; }
.breadcrumb { padding:16px 0; color:var(--muted); font-size:12px; }
.breadcrumb a { text-decoration:none; }
.profile,.ranking-profile,.admin-card,.main-form,.evidence { background:#fff; border:1px solid var(--line); border-radius:8px; padding:18px; }
.profile.esquerda { border-top:4px solid var(--red); }
.profile.direita { border-top:4px solid var(--green); }
.profile h1,.ranking-profile h1 { margin:8px 0; }
.profile-head { display:flex; align-items:center; gap:13px; }
.profile-head .company-logo { width:56px; height:56px; }
.lead { color:var(--muted); }
.facts,.ranking-profile dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; border-top:1px solid var(--line); padding-top:13px; margin-top:15px; }
.facts small,.ranking-profile dt { display:block; font-size:11px; color:var(--muted); text-transform:uppercase; }
.facts strong,.ranking-profile dd { margin:0; font-weight:700; }
.content-section,.ranking-profile { margin-bottom:28px; }
.content-section h2 { margin-bottom:10px; }
.evidence { margin:8px 0; }
.source-meta { display:flex; justify-content:space-between; gap:10px; font-size:12px; color:var(--muted); }
.source-meta a { color:var(--green); }
.review-date,.form-note { color:var(--muted); font-size:12px; }
.presence-list { display:flex; flex-wrap:wrap; gap:7px; }
.presence-list span { padding:5px 7px; border:1px solid var(--line); border-radius:5px; }
.form-intro,.admin-login { max-width:680px; margin:25px auto 15px; }
.form-intro p,.admin-login p { color:var(--muted); }
.main-form { max-width:760px; margin:0 auto 30px; }
.main-form label { margin-bottom:13px; }
.position-choices { display:flex; flex-wrap:wrap; gap:9px; border:0; padding:0; margin:0 0 14px; }
.position-choices legend { font-size:13px; font-weight:700; margin-bottom:7px; }
.position-choice { display:flex; align-items:center; gap:8px; padding:9px 12px; border:2px solid var(--line); border-radius:7px; cursor:pointer; background:#fff; min-width:145px; }
.position-choice.left:has(input:checked) { border-color:var(--red); background:#fcebee; }
.position-choice.right:has(input:checked) { border-color:var(--green); background:#e9f6ee; }
.position-choice input,.check-line input { width:auto; min-height:0; margin:0; }
.position-choice img { width:31px; height:31px; border-radius:4px; object-fit:cover; }
.check-line { display:flex; align-items:center; gap:8px; }
.display-name-option { margin:0 0 15px; padding:10px 12px; border:1px solid var(--line); border-radius:6px; }
.display-name-option summary { cursor:pointer; font-weight:700; }
.display-name-option label { margin:12px 0 4px; }
.display-name-option small { color:var(--muted); }
.cookie-banner { position:fixed; left:50%; bottom:15px; transform:translateX(-50%); z-index:50; width:min(900px,calc(100% - 20px)); display:flex; justify-content:space-between; align-items:center; gap:15px; padding:13px 16px; background:#fff; border:1px solid var(--line); box-shadow:0 5px 25px #0002; border-radius:8px; }
.cookie-banner p { margin:0; font-size:12px; }
.cookie-banner>div,.cookie-actions { display:flex; flex-wrap:wrap; gap:7px; flex:none; }
.cookie-banner .button { font-size:12px; white-space:nowrap; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.honeypot { position:absolute; left:-10000px; }
.prose { max-width:760px; padding:10px 0 30px; }
.prose li { margin-bottom:7px; }
.admin-top { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:20px 0; }
.admin-top h1 { margin-bottom:5px; }
.queue { background:#fff; border:1px solid var(--line); border-radius:8px; margin-bottom:30px; }
.queue-row,.location-row { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px; border-bottom:1px solid var(--line); text-decoration:none; }
.queue-row:last-child,.location-row:last-child { border-bottom:0; }
.queue-row span { color:var(--muted); font-size:12px; }
.admin-card { max-width:760px; margin:0 0 14px; }
.source-edit { padding:12px 0; border-top:1px solid var(--line); }
.source-edit .button { margin-top:10px; }
.admin-actions { display:flex; flex-wrap:wrap; gap:8px; }
.filters { display:flex; gap:10px; align-items:end; margin-bottom:15px; }
.filters label { flex:1; }
@media(max-width:740px) { .nav { flex-wrap:wrap; padding:10px 0; } .site-logo { width:190px; } .nav nav { width:100%; justify-content:flex-start; gap:8px 12px; } .simple-intro,.home-overview-head { align-items:flex-start; flex-direction:column; } .compact-map { grid-template-columns:1fr; } .brazil-map svg { max-height:250px; } .row-brand small { max-width:240px; } .footer-inner { flex-wrap:wrap; } .cookie-banner { align-items:flex-start; flex-direction:column; } }
@media(max-width:480px) { .wrap { width:calc(100% - 20px); } .compact-filter,.form-grid { grid-template-columns:1fr; } .company-row { align-items:flex-start; } .row-right { flex-direction:column; align-items:end; gap:2px; } .tag { white-space:normal; text-align:center; } .row-brand small { max-width:165px; } .facts,.ranking-profile dl { grid-template-columns:1fr; } .admin-top { align-items:flex-start; flex-direction:column; } }
@media(max-width:480px) { .activity-note { display:none; } .activity-label { font-size:10px; } }

