:root{
  --bg:#f5f7f9;--panel:#fff;--text:#111827;--muted:#64748b;--line:#dfe5eb;
  --blue:#1268a8;--blue2:#0d568c;--soft:#eaf3f9;--red:#c62828;--green:#16794b;
  --shadow:0 6px 20px rgba(20,35,50,.045);--radius:12px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}[hidden]{display:none!important}
.site-header{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:30}
.brand{display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--blue);color:white;font-weight:800}.brand strong{display:block;font-size:17px}.brand small{display:block;color:var(--muted);font-size:11px;margin-top:1px}.top-nav{display:flex;align-items:center;gap:6px}.top-nav a{padding:9px 12px;border-radius:8px;color:#475569}.top-nav a:hover,.top-nav a.active{background:var(--soft);color:var(--blue);font-weight:700}
.page-shell{width:100%;padding:20px 22px 55px}.hero{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;display:flex;justify-content:space-between;gap:24px;align-items:flex-start;box-shadow:var(--shadow)}.eyebrow{text-transform:uppercase;letter-spacing:.09em;font-size:11px;font-weight:800;color:var(--blue);margin-bottom:5px}.hero h1{font-size:30px;line-height:1.1;letter-spacing:-.03em;margin:0 0 7px}.hero p{margin:0;max-width:940px;color:#526173;line-height:1.45}.meta-line{display:flex;flex-wrap:wrap;gap:16px;margin-top:13px;color:var(--muted);font-size:12px}.measure-switch{display:flex;border:1px solid var(--line);border-radius:9px;background:#f7f9fb;padding:2px;white-space:nowrap}.measure-switch button{border:0;background:transparent;padding:9px 12px;border-radius:7px;color:#526173;font-weight:700;font-size:12px}.measure-switch button.active{background:var(--blue);color:#fff}
.tabs{display:flex;align-items:center;gap:3px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:4px;margin:16px 0}.tabs button{border:0;background:transparent;padding:10px 15px;border-radius:7px;color:#334155}.tabs button:hover{background:#f5f7f9}.tabs button.active{background:var(--soft);color:var(--blue);font-weight:800}.tab-panel{display:none}.tab-panel.active{display:block}.status-line{min-height:0;color:var(--muted);font-size:12px}.status-line.busy{padding:8px 0}.status-line.error{color:var(--red);padding:8px 0}
.kpi-grid{display:grid;gap:12px;margin-bottom:14px}.kpi-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}.kpi span{display:block;color:#627184;font-size:12px}.kpi strong{display:block;font-size:24px;line-height:1.1;margin:7px 0 4px;letter-spacing:-.02em}.kpi small{color:var(--muted);font-size:11px}.positive{color:#0b65a3!important}.negative{color:var(--red)!important}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;margin-bottom:14px}.card-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:10px}.card h2,.methodology h2{font-size:19px;margin:0 0 3px;letter-spacing:-.015em}.card h3{margin:0}.card-head p,.card p{margin:0;color:var(--muted);font-size:12px}.actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.btn{border:1px solid #ced7df;background:#fff;color:#17202b;border-radius:8px;padding:8px 11px;font-size:12px;font-weight:700;display:inline-flex;justify-content:center;align-items:center}.btn:hover{background:#f5f7f9}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.primary:hover{background:var(--blue2)}.btn.ghost{background:#fff}.chart-card{padding-bottom:12px}.chart-wrap{position:relative;width:100%;height:410px}.chart-wrap.medium{height:460px}.chart-wrap.tall{height:560px}.chart-wrap.distribution{height:620px}.chart-wrap canvas{display:block;width:100%;height:100%}.chart-tooltip{position:absolute;display:none;pointer-events:none;background:#101820;color:#fff;padding:7px 9px;border-radius:7px;font-size:12px;box-shadow:0 5px 18px rgba(0,0,0,.2);white-space:nowrap;z-index:3}.source-line{border-top:1px solid #edf0f2;margin-top:8px;padding-top:9px;color:var(--muted);font-size:11px}
.appearance,.method-details{border-top:1px solid #edf0f2;margin-top:10px;padding-top:8px}.appearance summary,.method-details summary{cursor:pointer;color:#476174;font-size:11px;font-weight:800;list-style:none;display:inline-flex;align-items:center;gap:5px}.appearance summary::-webkit-details-marker,.method-details summary::-webkit-details-marker{display:none}.appearance summary::before,.method-details summary::before{content:'▸';font-size:10px}.appearance[open] summary::before,.method-details[open] summary::before{content:'▾'}.appearance-grid{display:grid;grid-template-columns:repeat(4,minmax(135px,1fr));gap:10px;align-items:end;background:#f8fafc;border:1px solid #e5ebf0;border-radius:9px;padding:12px;margin-top:8px}.appearance-grid label{display:grid;gap:5px;font-size:11px;color:#526173;font-weight:700}.appearance-grid select{height:36px;border:1px solid #cdd6df;border-radius:7px;background:#fff;padding:0 8px;color:#17202b}.appearance-grid .check-inline{display:flex;align-items:center;gap:7px;min-height:36px;font-weight:600}.appearance-grid .style-reset{height:36px;width:max-content}.method-details p{margin:8px 0 0!important;max-width:1100px;line-height:1.55!important;color:#536273!important}.subsection-title{font-size:14px!important;margin:18px 0 8px!important;color:#2e3c4b}
.filter-card{padding:15px 16px}.filter-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,220px)) auto;gap:10px;align-items:end}.filter-grid.series-grid{grid-template-columns:170px repeat(3,minmax(165px,1fr)) minmax(175px,auto) auto}.filter-grid.companies-grid{grid-template-columns:repeat(4,minmax(150px,1fr))}.filter-grid.route-grid{grid-template-columns:220px 1fr 1fr auto}.filter-grid.distribution-grid{grid-template-columns:260px 260px auto}.filter-grid label{display:grid;gap:5px;color:#526173;font-size:11px;font-weight:700}.filter-grid select,.filter-grid input{width:100%;height:39px;border:1px solid #cdd6df;border-radius:8px;background:#fff;padding:0 10px;color:#17202b}.filter-action{display:flex;align-items:end}.filter-action .btn{height:39px}.check-row{display:flex;align-items:center;gap:8px;margin-top:12px;color:#475569;font-size:12px}.company-select-wrap{border-top:1px solid var(--line);margin-top:13px;padding-top:13px}.company-select-wrap>strong{font-size:12px}.company-select-wrap>p{font-size:11px;margin:3px 0 8px}.pill-grid{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.pill{display:flex;align-items:center;gap:5px;border:1px solid #d4dce3;border-radius:7px;padding:6px 8px;font-size:11px;background:#fff}.pill:has(input:checked){background:#eef7fc;border-color:#9fc8e1;color:#075b92}.pill input{margin:0}
.notice{display:flex;gap:10px;align-items:flex-start;border-radius:10px;padding:12px 14px;margin:0 0 14px;border:1px solid #dfe5eb;background:#fff}.notice strong{font-size:12px;white-space:nowrap}.notice span{font-size:12px;color:#57677a;line-height:1.4}.notice.error{border-color:#efc5c5;background:#fff5f5;color:#8d2020}.split-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(330px,1fr);gap:14px}.table-wrap{overflow:auto;border-top:1px solid #eef1f4}.table-wrap.compact{max-height:430px}.table-wrap table{width:100%;border-collapse:collapse;font-size:12px}.table-wrap th{position:sticky;top:0;background:#fff;color:#637286;text-transform:uppercase;letter-spacing:.04em;font-size:10px;text-align:left;padding:10px 9px;border-bottom:1px solid var(--line);white-space:nowrap}.table-wrap td{padding:9px;border-bottom:1px solid #e9edf0;white-space:nowrap}.table-wrap tbody tr:hover{background:#fafcfd}
.methodology{margin-top:20px;padding:22px 24px}.methodology h2{font-size:24px}.method-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:16px}.method-grid>div{border-top:2px solid #d8e2e9;padding-top:12px}.method-grid strong{font-size:13px}.method-grid p{margin-top:6px;line-height:1.5}.site-footer{display:flex;justify-content:space-between;gap:20px;padding:20px 22px;border-top:1px solid var(--line);background:#fff;color:var(--muted);font-size:11px}
@media(max-width:1180px){.filter-grid.series-grid{grid-template-columns:repeat(2,1fr)}.appearance-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1100px){.kpi-grid.four{grid-template-columns:repeat(2,1fr)}.split-grid{grid-template-columns:1fr}.method-grid{grid-template-columns:repeat(2,1fr)}.filter-grid.companies-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.site-header{height:auto;padding:12px 14px;align-items:flex-start}.top-nav{display:none}.page-shell{padding:14px}.hero{padding:17px;display:block}.hero h1{font-size:26px}.measure-switch{margin-top:15px;width:max-content;max-width:100%}.tabs{overflow:auto;white-space:nowrap}.tabs button{padding:9px 11px}.kpi-grid.four,.kpi-grid.three{grid-template-columns:1fr}.filter-grid,.filter-grid.series-grid,.filter-grid.companies-grid,.filter-grid.route-grid,.filter-grid.distribution-grid{grid-template-columns:1fr}.chart-wrap{height:350px}.chart-wrap.medium{height:430px}.chart-wrap.tall{height:480px}.chart-wrap.distribution{height:600px}.card-head{display:block}.card-head .actions{margin-top:9px}.appearance-grid{grid-template-columns:1fr 1fr}.method-grid{grid-template-columns:1fr}.site-footer{display:block}.site-footer span{display:block;margin:4px 0}.notice{display:block}.notice strong{display:block;margin-bottom:4px}}
@media(max-width:480px){.appearance-grid{grid-template-columns:1fr}.measure-switch{display:grid;width:100%}.measure-switch button{width:100%}}

/* Entrada suave dos gráficos quando chegam à área visível. */
.chart-card.reveal-pending{opacity:0;transform:translateY(18px) scale(.995);}
.chart-card.reveal-visible{animation:drChartReveal .62s cubic-bezier(.22,.61,.36,1) both;}
@keyframes drChartReveal{from{opacity:0;transform:translateY(18px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}
@media (prefers-reduced-motion: reduce){.chart-card.reveal-pending,.chart-card.reveal-visible{opacity:1;transform:none;animation:none}}

/* 2.1 — filtros e animação de desenho */
.filter-grid.advanced-grid{grid-template-columns:repeat(3,minmax(190px,1fr)) auto}
.compare-check{align-self:end;min-height:39px;display:flex!important;align-items:center;gap:7px;padding:0 4px;color:#475569!important;font-size:12px!important;font-weight:600!important}
.chart-wrap canvas.chart-draw-in{animation:drCanvasDraw .48s ease-out both;transform-origin:left center}
@keyframes drCanvasDraw{from{opacity:.12;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}
@media(prefers-reduced-motion:reduce){.chart-wrap canvas.chart-draw-in{animation:none}}
@media(max-width:900px){.filter-grid.advanced-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.filter-grid.advanced-grid{grid-template-columns:1fr}}

/* 2.2 — idiomas e metodologia explicativa */
.header-right{display:flex;align-items:center;gap:16px}.language-control{display:flex;align-items:center;gap:7px;color:#526173;font-size:11px;font-weight:700}.language-control select{height:34px;border:1px solid #d0d8df;border-radius:8px;background:#fff;padding:0 28px 0 9px;color:#17202b}.method-explain{margin-top:9px;max-width:1160px;background:#f8fafc;border:1px solid #e7edf1;border-radius:8px;padding:11px 13px}.method-explain p{margin:0 0 7px!important;line-height:1.55!important}.method-explain p:last-child{margin-bottom:0!important}.method-explain strong{color:#263848}.method-details summary{padding:3px 0}.language-control span{white-space:nowrap}
@media(max-width:760px){.header-right{margin-left:auto}.language-control span{display:none}.language-control select{max-width:120px}.top-nav{display:none}}

/* 2.4 — filtros geográficos e padrões gráficos */
.geo-filter-card{margin-top:0;padding:14px 16px;background:#fbfcfd}
.geo-filter-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:10px}
.geo-filter-head h2{font-size:15px;margin:0 0 3px}
.geo-filter-head p{margin:0;color:var(--muted);font-size:11px;line-height:1.45;max-width:980px}
.filter-grid.geo-grid{grid-template-columns:minmax(150px,190px) minmax(220px,1.2fr) minmax(180px,240px) auto}
.geo-actions{gap:7px;align-items:end}
.geo-actions .btn{white-space:nowrap}
@media(max-width:980px){.filter-grid.geo-grid{grid-template-columns:1fr 1fr}.geo-actions{grid-column:1/-1}}
@media(max-width:760px){.filter-grid.geo-grid{grid-template-columns:1fr}.geo-actions{grid-column:auto;flex-wrap:wrap}}


/* 2.9 — duas áreas principais: visão geral e estatísticas detalhadas */
.details-intro{padding:19px 21px;margin-bottom:18px}.details-intro h2{font-size:24px;margin:4px 0 5px}.details-intro p{max-width:980px;line-height:1.5}
.detail-section{margin:0 0 28px}.detail-section-head{padding:8px 3px 10px;border-bottom:1px solid #dde5eb;margin:0 0 12px}.detail-section-head h2{font-size:21px;margin:0 0 4px}.detail-section-head p{font-size:12px;color:var(--muted);margin:0;max-width:1000px;line-height:1.45}
.stack-grid{display:grid;grid-template-columns:1fr;gap:14px}.stack-grid>.card{margin-bottom:0}
#tab-details .filter-card{position:relative}
@media(max-width:760px){.details-intro h2{font-size:21px}.detail-section-head h2{font-size:19px}}

/* Seletor de idioma por bandeiras */
.language-flags{display:flex;align-items:center;gap:6px;padding:3px;background:#f7f9fb;border:1px solid #e1e7ec;border-radius:10px}
.lang-flag{width:36px;height:30px;display:grid;place-items:center;border-radius:7px;font-size:20px;line-height:1;text-decoration:none;filter:saturate(.9);transition:.16s ease}
.lang-flag:hover{background:#fff;box-shadow:0 2px 8px rgba(23,61,90,.10);transform:translateY(-1px)}
.lang-flag.active{background:#fff;box-shadow:0 0 0 2px rgba(23,105,170,.18);filter:saturate(1.05)}

.site-header{box-shadow:0 1px 0 rgba(15,23,42,.02)}
.tabs{box-shadow:0 2px 10px rgba(15,23,42,.025)}
.card{transition:border-color .18s ease,box-shadow .18s ease}
.card:hover{border-color:#d7e0e7}

.lang-flag img{display:block;width:25px;height:17px;border-radius:3px;object-fit:cover;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
