@import"https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=IBM+Plex+Mono:wght@400;600&display=swap";:root{--bg: #0d0f14;--surface: #161b26;--surface-2: #1e2535;--border: #2a3148;--accent: #f97316;--accent-dim: rgba(249, 115, 22, .15);--green: #22c55e;--yellow: #eab308;--red: #ef4444;--text: #e2e8f0;--text-muted: #64748b;--radius: 10px;--font-head: "Syne", sans-serif;--font-mono: "IBM Plex Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-head);min-height:100vh}.page{display:flex;flex-direction:column;min-height:100vh}.app-header{background:var(--surface);border-bottom:1px solid var(--border);padding:20px 32px;display:flex;align-items:center;gap:16px}.app-header h1{font-size:1.6rem;font-weight:800;letter-spacing:-.5px;color:var(--accent)}.header-meta{margin-left:auto;display:flex;gap:8px;align-items:center}.badge{background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent);border-radius:20px;padding:3px 12px;font-size:.75rem;font-weight:700;letter-spacing:1px;font-family:var(--font-mono)}.badge-diesel{background:#eab3081f;color:var(--yellow);border-color:var(--yellow)}.reg-banner{display:flex;align-items:flex-start;gap:10px;background:#f973160f;border:1px solid rgba(249,115,22,.25);border-radius:var(--radius);padding:12px 18px;font-size:.82rem;color:var(--text-muted);line-height:1.6}.reg-icon{font-size:1.1rem;margin-top:1px;flex-shrink:0}.reg-text{flex:1}.reg-sep{margin:0 6px;opacity:.4}.reg-link{color:var(--accent);text-decoration:none;font-weight:600}.reg-link:hover{text-decoration:underline}.footer-link{color:var(--accent);text-decoration:none}.footer-link:hover{text-decoration:underline}.main-content{flex:1;max-width:1280px;margin:0 auto;width:100%;padding:32px 24px;display:flex;flex-direction:column;gap:28px}.upload-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;display:flex;flex-direction:column;gap:16px}.dropzone{border:2px dashed var(--border);border-radius:8px;padding:40px 20px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;color:var(--text-muted)}.dropzone:hover,.dropzone.drag-over{border-color:var(--accent);background:var(--accent-dim);color:var(--text)}.dropzone-icon{font-size:2.5rem;margin-bottom:8px}.file-name{color:var(--accent);font-weight:600}.hint{font-size:.8rem;color:var(--text-muted);margin-top:4px}.upload-actions{display:flex;gap:12px;align-items:center}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:10px 24px;font-family:var(--font-head);font-weight:700;font-size:.95rem;cursor:pointer;transition:opacity .15s}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-primary:hover:not(:disabled){opacity:.9}.btn-secondary{background:transparent;color:var(--accent);border:1px solid var(--accent);border-radius:6px;padding:9px 20px;font-family:var(--font-head);font-weight:600;font-size:.9rem;cursor:pointer;text-decoration:none;transition:background .15s}.btn-secondary:hover{background:var(--accent-dim)}.status-banner{padding:16px 20px;border-radius:8px;font-weight:600}.status-banner.polling{background:#3b82f626;color:#60a5fa;border:1px solid #3b82f6}.status-banner.error{background:#ef44441a;color:#fca5a5;border:1px solid #ef4444}.results{display:flex;flex-direction:column;gap:24px}.results-header{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.results-header h2{font-size:1.3rem;font-weight:800;flex:1}.results-header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn-export{display:flex;align-items:center;gap:8px;background:var(--accent);color:#fff;border:none;border-radius:8px;padding:10px 20px;font-family:var(--font-head);font-weight:700;font-size:.9rem;cursor:pointer;transition:opacity .15s}.btn-export:hover:not(:disabled){opacity:.88}.btn-export:disabled{opacity:.4;cursor:not-allowed}.export-badge{background:#ffffff40;border-radius:10px;padding:1px 8px;font-size:.72rem;font-weight:600}.tabela-selector{display:flex;gap:6px}.tab-btn{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);border-radius:6px;padding:6px 16px;font-family:var(--font-head);font-weight:700;cursor:pointer;transition:all .15s}.tab-btn.active,.tab-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;align-items:stretch}@media (max-width: 1180px){.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 560px){.kpi-grid{grid-template-columns:1fr}}.kpi-card{min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 6px;text-align:center;border-left:4px solid var(--border)}.kpi-neutral{border-left-color:var(--text-muted)}.kpi-green{border-left-color:var(--green)}.kpi-yellow{border-left-color:var(--yellow)}.kpi-red{border-left-color:var(--red)}.kpi-orange{border-left-color:var(--accent)}.kpi-teal{border-left-color:#20c997}.kpi-value{font-size:clamp(.85rem,1vw,1.35rem);font-weight:800;font-family:var(--font-mono);margin-bottom:4px;line-height:1.2;white-space:nowrap;overflow:hidden}.kpi-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.chart-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.chart-container h3{font-size:1rem;font-weight:700;margin-bottom:16px;color:var(--text-muted)}.result-table-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.filters-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px}.filters-panel__inner{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.filters-panel__count{color:var(--text-muted);font-size:.85rem;margin-left:auto;align-self:center;font-family:var(--font-mono)}.filter-group{display:flex;flex-direction:column;gap:4px;min-width:120px}.filter-label{font-size:.7rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-family:var(--font-mono)}.filter-select{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:7px 10px;font-family:var(--font-head);font-size:.85rem;cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.filter-select:focus{outline:none;border-color:var(--accent)}.table-toolbar{display:flex;gap:12px;align-items:center;padding:12px 20px;border-bottom:1px solid var(--border)}.table-count{color:var(--text-muted);font-size:.85rem;margin-left:auto;font-family:var(--font-mono)}.table-toolbar--paged{flex-wrap:wrap;justify-content:space-between}.table-pagination{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.table-page-info{font-size:.85rem;color:var(--text-muted);font-family:var(--font-mono);min-width:8rem;text-align:center}.table-page-info strong{color:var(--text)}.btn-pagination{padding:6px 12px!important;font-size:.8rem!important}.table-count-range{opacity:.9}.table-scroll{overflow-x:auto;max-height:480px;overflow-y:auto}.table-scroll--paged{max-height:none;overflow-y:visible}.result-table{width:100%;border-collapse:collapse;font-size:.85rem;font-family:var(--font-mono)}.result-table th{background:var(--surface-2);color:var(--text-muted);padding:10px 14px;text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0;border-bottom:1px solid var(--border)}.th-group{text-align:center;border-left:2px solid var(--border);color:var(--text-muted);font-size:.8rem;letter-spacing:1px}.th-group--active{color:var(--accent);border-left-color:var(--accent)}.th-sub{text-align:right;border-left:1px solid var(--border);font-size:.7rem;background:var(--surface-2);top:38px}.delta-pos{color:var(--green);font-weight:600;text-align:right}.delta-neg{color:var(--red);font-weight:600;text-align:right}.na{color:var(--text-muted);opacity:.4;text-align:center}.cell-designada{background:#f9731614;border-left:2px solid var(--accent)!important}.result-table td{padding:9px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.result-table tr:last-child td{border-bottom:none}.result-table tr:hover td{background:var(--surface-2)}.status-ok td,tr.status-ok td{color:var(--green)}.status-warn td,tr.status-warn td{color:var(--yellow)}.status-err td,tr.status-err td{color:var(--red)}.status-cell{font-weight:700}.pagination{display:flex;gap:12px;align-items:center;justify-content:center;padding:14px;border-top:1px solid var(--border);font-family:var(--font-mono);color:var(--text-muted)}.pagination button{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:6px;width:32px;height:32px;cursor:pointer;font-size:1rem}.pagination button:disabled{opacity:.35;cursor:not-allowed}.app-footer{background:var(--surface);border-top:1px solid var(--border);padding:14px 32px;font-size:.8rem;color:var(--text-muted);text-align:center;font-family:var(--font-mono)}.insights-section{display:flex;flex-direction:column;gap:20px}.insights-section__title{font-size:1rem;font-weight:700;color:var(--text-muted);letter-spacing:1px;text-transform:uppercase;padding-bottom:8px;border-bottom:1px solid var(--border);margin:0}.insights-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media (max-width: 900px){.insights-row{grid-template-columns:1fr}}.insight-panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px 20px 14px;display:flex;flex-direction:column;gap:12px}.insight-panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.insight-panel__title-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;flex:1}.insight-panel__title{font-size:.95rem;font-weight:700;color:var(--text);margin:0}.btn-details{background:transparent;border:1px solid var(--border);color:var(--text-muted);border-radius:6px;padding:4px 10px;font-size:.75rem;cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s;flex-shrink:0}.btn-details:hover{border-color:var(--accent);color:var(--accent)}.methodology-box{background:var(--surface-2);border-left:3px solid var(--accent);border-radius:6px;padding:10px 14px;font-size:.82rem;color:var(--text-muted);line-height:1.6}.methodology-box strong{color:var(--accent)}.insight-badge{background:#f9731626;color:var(--accent);border:1px solid rgba(249,115,22,.4);border-radius:12px;padding:2px 10px;font-size:.72rem;font-weight:700;letter-spacing:.5px;white-space:nowrap}.risk-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:.78rem;color:var(--text-muted)}.risk-legend-item{display:flex;align-items:center;gap:5px}.risk-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.outlier-tabs{display:flex;gap:10px;flex-wrap:wrap}.outlier-tab{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-radius:6px;padding:6px 14px;font-size:.82rem;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.outlier-tab:hover{border-color:var(--accent);color:var(--text)}.outlier-tab.active.negativo{background:#ef44441f;border-color:#ef4444;color:#ef4444}.outlier-tab.active.positivo{background:#3b82f61f;border-color:#3b82f6;color:#3b82f6}.outlier-empty{font-size:.85rem;color:var(--text-muted);text-align:center;padding:16px 0;margin:0}.map-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.map-mode-group{display:flex;flex-wrap:wrap;gap:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:3px;max-width:100%}.map-mode-btn{background:transparent;border:none;color:var(--text-muted);border-radius:6px;padding:6px 14px;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.map-mode-btn:hover:not(:disabled){color:var(--text)}.map-mode-btn:disabled{opacity:.45;cursor:not-allowed}.map-mode-btn.active{background:var(--accent);color:#fff}.rpm-chart-toolbar{margin-bottom:12px}.map-dir-select{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 12px;font-size:.82rem;cursor:pointer}.map-dir-select:focus{outline:none;border-color:var(--accent)}.map-container{border-radius:8px;overflow:hidden;background:#0f1420}.map-tooltip{background:#161b26;border:1px solid var(--border);border-radius:6px;padding:8px 12px;font-size:.8rem;color:var(--text);z-index:100;box-shadow:0 4px 16px #0006;pointer-events:none;white-space:nowrap}.map-legend{display:flex;align-items:center;gap:10px;margin-top:4px}.map-legend-bar{flex:1;height:8px;border-radius:4px;max-width:200px}.map-legend-label{font-size:.75rem;color:var(--text-muted)}
