:root{--navy:#0d1f52;--navy2:#081540;--card:rgba(255,255,255,.075);--card2:rgba(255,255,255,.105);--border:rgba(255,255,255,.13);--muted:rgba(255,255,255,.68);--dim:rgba(255,255,255,.42);--green:#4ab840;--green2:#66d458;--blue:#4a9bf5;--amber:#f59e0b;--cyan:#22c7c7;--purple:#a855f7;--red:#ef4444}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Segoe UI',system-ui,sans-serif;background:linear-gradient(135deg,#071238 0%,#0d1f52 48%,#10265f 100%);color:#fff;min-height:100vh;overflow-x:hidden}
.access-gate{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at top left,rgba(102,212,88,.16),transparent 32%),linear-gradient(135deg,#071238 0%,#0d1f52 54%,#10265f 100%)}
.access-gate[hidden],#app-shell[hidden]{display:none!important}
.access-card{width:min(440px,100%);background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:26px;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.access-card img{width:56px;height:56px;margin-bottom:18px}.access-card span{display:block;color:#6ee864;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.12em;margin-bottom:8px}.access-card h1{font-size:30px;line-height:1;margin-bottom:10px}.access-card p{color:var(--muted);font-size:14px;line-height:1.45;margin-bottom:20px}.access-card label{display:block;color:rgba(255,255,255,.82);font-size:12px;font-weight:900;margin-bottom:8px}.access-row{display:flex;gap:8px}.access-row input{min-width:0;flex:1;height:40px;border-radius:8px;border:1px solid var(--border);background:rgba(255,255,255,.1);color:#fff;padding:0 12px;font-size:15px;outline:none}.access-row input:focus{border-color:rgba(102,212,88,.74);box-shadow:0 0 0 3px rgba(102,212,88,.14)}#access-error{display:block;min-height:18px;margin-top:10px;color:#ff9a9a;font-weight:800}.is-locked{overflow:hidden}.partner-badge{display:inline-flex;align-items:center;min-height:36px;border-radius:999px;border:1px solid rgba(102,212,88,.36);color:#9bff8f;background:rgba(102,212,88,.12);padding:0 12px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
header{min-height:64px;background:linear-gradient(135deg,#071238,#0d1f52 58%,#142870);border-bottom:1px solid rgba(74,184,64,.32);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;position:sticky;top:0;z-index:20;box-shadow:0 2px 24px rgba(0,0,0,.42)}
.logo-wrap{display:flex;align-items:center;gap:12px}.logo-mark{width:46px;height:46px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.09);font-size:18px;font-weight:900;color:#6ee864}.logo-text h1{font-size:25px;font-weight:900;letter-spacing:2px}.logo-text p{font-size:10px;letter-spacing:3px;color:var(--green);text-transform:uppercase;margin-top:2px}
.header-right{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}.header-status{font-size:12px;color:var(--muted)}
.btn{background:rgba(255,255,255,.08);border:1px solid var(--border);color:#fff;border-radius:8px;padding:9px 13px;font-size:12px;font-weight:800;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:36px}.btn:hover{background:rgba(255,255,255,.14)}.btn.green{background:var(--green);color:#081540;border-color:var(--green)}.btn.central{border-color:rgba(74,184,64,.35);color:#dfffd9}
main{width:100%;max-width:1920px;margin:0 auto;padding:12px 16px 22px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:12px}.eyebrow{font-size:11px;color:#6ee864;text-transform:uppercase;font-weight:900;letter-spacing:.08em;margin-bottom:4px}.topbar h2{font-size:22px;line-height:1.1}.topbar p{font-size:12px;color:var(--muted);margin-top:5px}
.filter-bar{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:980px}.multi-filter{position:relative;min-width:150px}.multi-filter-btn{height:38px;width:100%;background:rgba(255,255,255,.085);border:1px solid var(--border);color:#fff;border-radius:8px;padding:0 30px 0 10px;font-size:12px;font-weight:800;outline:none;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.multi-filter-btn:after{content:"";position:absolute;right:11px;top:16px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid rgba(255,255,255,.76)}.multi-filter.open .multi-filter-btn{border-color:rgba(102,212,88,.62);background:rgba(255,255,255,.13)}.multi-filter-menu{display:none;position:absolute;right:0;top:42px;width:260px;max-height:320px;overflow:auto;background:#071238;border:1px solid rgba(102,212,88,.38);border-radius:10px;box-shadow:0 18px 38px rgba(0,0,0,.48);z-index:50;padding:8px}.multi-filter.open .multi-filter-menu{display:block}.multi-filter-actions{display:flex;gap:6px;margin-bottom:8px}.multi-filter-actions button{flex:1;height:28px;border:1px solid var(--border);border-radius:7px;background:rgba(255,255,255,.08);color:#fff;font-size:11px;font-weight:800;cursor:pointer}.multi-filter-option{display:flex;align-items:center;gap:8px;padding:7px 6px;border-radius:7px;color:rgba(255,255,255,.88);font-size:12px;cursor:pointer}.multi-filter-option:hover{background:rgba(255,255,255,.08)}.multi-filter-option input{accent-color:var(--green);width:14px;height:14px;flex:0 0 auto}.multi-filter-empty{padding:8px;color:var(--muted);font-size:12px}
.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}.kpi-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px;min-height:92px;position:relative;overflow:hidden}.kpi-card:before{content:'';position:absolute;left:0;right:0;top:0;height:3px;background:var(--tone,var(--green))}.kpi-card.green{--tone:var(--green)}.kpi-card.blue{--tone:var(--blue)}.kpi-card.amber{--tone:var(--amber)}.kpi-card.cyan{--tone:var(--cyan)}.kpi-card.purple{--tone:var(--purple)}.kpi-card span{display:block;color:rgba(255,255,255,.72);font-size:12px;margin-bottom:8px}.kpi-card strong{display:block;font-size:25px;line-height:1;font-weight:900}.kpi-card small{display:block;color:var(--muted);font-size:11px;margin-top:7px}
.grid{display:grid;gap:14px;margin-bottom:14px;min-width:0}.grid.two{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:15px;box-shadow:inset 0 1px 0 rgba(255,255,255,.03);min-width:0}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.chart-title{font-size:17px;font-weight:900;margin-bottom:4px}.chart-sub{font-size:12px;color:var(--muted)}.chart-box{height:260px}
.table-wrap{overflow:auto;max-width:100%;max-height:360px;border-radius:10px;border:1px solid rgba(255,255,255,.08)}.table-wrap.large{max-height:460px}.table-wrap.compact{max-height:260px}.detail-table{width:100%;border-collapse:collapse;font-size:12px;min-width:1180px}.compact-table{min-width:720px}.detail-table thead{position:sticky;top:0;z-index:2}.detail-table th{background:#0a1c44;color:rgba(255,255,255,.72);font-size:10px;text-transform:uppercase;letter-spacing:.6px;padding:9px;text-align:left;white-space:nowrap}.detail-table td{padding:9px;border-bottom:1px solid rgba(255,255,255,.055);vertical-align:top}.detail-table td.num{text-align:right;font-variant-numeric:tabular-nums}.detail-table tr:hover{background:rgba(255,255,255,.05)}
.source-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;border:1px solid rgba(255,255,255,.16);white-space:nowrap}.source-alelo{background:rgba(74,155,245,.18);color:#9dccff}.source-semparar{background:rgba(102,212,88,.18);color:#9bff8f}
.posto-cell{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;min-width:260px}.posto-cell strong{font-weight:800;color:#fff;line-height:1.25}.posto-cell span{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}
.rank-list,.insight-list{display:flex;flex-direction:column;gap:10px}.rank-row,.insight{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:10px;align-items:center;padding:10px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08)}.insight{display:block}.rank-row strong,.insight strong{font-size:13px;line-height:1.3}.rank-row span,.insight span{display:block;font-size:12px;color:var(--muted);margin-top:4px;line-height:1.35}.rank-row em{font-style:normal;text-align:right;font-weight:900;color:#6ee864}
.heat-card{min-width:0}.heat-wrap{margin-top:10px;max-width:100%;max-height:360px;overflow:auto;border:1px solid rgba(255,255,255,.08);border-radius:10px}.heat-table{width:100%;min-width:980px;border-collapse:collapse;font-size:11px}.heat-table thead{position:sticky;top:0;z-index:2}.heat-table th{background:#dbe8f6;color:#081540;padding:6px 7px;text-align:center;border:1px solid rgba(8,21,64,.14);font-weight:900;white-space:nowrap}.heat-table th:first-child,.heat-table th:nth-child(2){text-align:left}.heat-table td{padding:5px 7px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.045);white-space:nowrap}.heat-table td.num{text-align:right;font-variant-numeric:tabular-nums}.heat-table .heat-price{text-align:right;font-weight:900;font-variant-numeric:tabular-nums}.heat-table .heat-empty{text-align:center;color:var(--dim)}.heat-table .matrix-region td{background:#cfe0f2;color:#081540;font-weight:900}.heat-table .matrix-total td{position:sticky;bottom:0;background:#dbe8f6;color:#081540;font-weight:900}.delta-up{color:#ff6b6b!important;font-weight:900}.delta-down{color:#6ee864!important;font-weight:900}.delta-flat{color:rgba(255,255,255,.78);font-weight:900}.matrix-region .delta-flat,.matrix-total .delta-flat{color:#4b587c!important}
.positive{color:#ff9a9a;font-weight:900}.negative{color:#8cff82;font-weight:900}.neutral{color:rgba(255,255,255,.82);font-weight:900}.empty{color:var(--muted);padding:16px}
@media(max-width:1450px){.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.two{grid-template-columns:1fr}.topbar{align-items:flex-start}.chart-box{height:220px}.kpi-card strong{font-size:22px}}
@media(max-width:900px){header,.topbar{display:block}.header-right,.filter-bar{justify-content:flex-start;margin-top:10px}.kpi-grid{grid-template-columns:1fr}.multi-filter,.btn,.partner-badge{width:100%}.multi-filter-menu{left:0;right:auto;width:100%}main{padding:10px}.logo-wrap{margin-bottom:8px}.access-row{display:block}.access-row .btn{margin-top:8px}}
