:root{--font-family-base:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--color-primary:#3b82f6;--color-secondary:#1e293b;--color-success:#22c55e;--color-error:#ef4444;--color-warning:#f59e0b;--bg-page:#0f172a;--bg-surface:#1e293b;--bg-surface-alt:#0f172a;--text-title:#e2e8f0;--text-body:#e2e8f0;--text-muted:#94a3b8;--border-color:#334155;--focus-ring:0 0 0 3px #3b82f640;--radius-sm:8px;--radius-md:12px;--radius-lg:14px;--space-1:8px;--space-2:16px;--space-3:24px}*{box-sizing:border-box}body{background:var(--bg-page);min-height:100vh;color:var(--text-body);font-family:var(--font-family-base), "sans-serif";margin:0}h1,h2,h3,h4,h5,h6{color:var(--text-title);margin:0}p{color:var(--text-body);margin:0}.ui-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:0 10px 24px #0206173d}.ui-label{color:var(--text-body);font-size:.82rem;font-weight:600}.ui-input,.ui-select,.ui-multiselect{background:var(--bg-surface-alt);border:1px solid var(--border-color);color:var(--text-body);border-radius:var(--radius-sm);padding:8px 10px;font-size:.86rem;transition:border-color .2s,box-shadow .2s,background-color .2s}.ui-input:hover,.ui-select:hover,.ui-multiselect:hover{filter:brightness(1.05)}.ui-input:focus,.ui-select:focus,.ui-multiselect:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring);outline:none}.ui-button{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;padding:8px 12px;font-size:.85rem;font-weight:600}.ui-button--primary{background:var(--color-primary);color:var(--text-title)}.ui-button--secondary{border-color:var(--border-color);color:var(--text-body);background:0 0}.ui-button:disabled,.ui-button--disabled{opacity:.6;cursor:not-allowed}.ui-table{border-collapse:collapse;width:100%}.ui-tooltip{background:var(--bg-surface-alt);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.ui-modal{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg)}.dashboardShell{width:min(1160px,94vw);margin:0 auto;padding:28px 0 42px}.dashboardHeader{justify-content:space-between;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.dashboardHeaderActions{align-items:center;gap:var(--space-2);display:flex}.dashboardTitle{letter-spacing:.2px;font-size:clamp(1.4rem,2vw,1.9rem)}.dashboardSubtitle{color:var(--text-muted);margin-top:6px;font-size:.92rem}.filterGroup{align-items:center;gap:var(--space-1);display:flex}.filterGroup .ui-select{min-width:160px}.statusPill{border:1px solid #0000;border-radius:999px;padding:8px 14px;font-size:.84rem;font-weight:600}.statusPill.isOnline{color:#86efac;background:#22c55e24;border-color:#22c55e4d}.statusPill.isOffline{color:#fca5a5;background:#ef444429;border-color:#ef444452}.errorBanner{color:#fca5a5;border-radius:var(--radius-md);margin-bottom:var(--space-2);background:#ef444429;border:1px solid #f8717152;padding:10px 14px;font-size:.9rem}.cardsGrid{gap:var(--space-2);margin-bottom:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.CardInfo{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);min-height:128px;padding:16px;box-shadow:0 10px 24px #0206173d}.kpiSkeleton{min-height:128px;position:relative;overflow:hidden}.kpiSkeleton:after{content:"";background:linear-gradient(90deg,#0000,#94a3b824,#0000);animation:1.4s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes shimmer{to{transform:translate(100%)}}.cardHeader{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.nameInfo{color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;font-size:.8rem;font-weight:600}.trendBadge{border:1px solid #0000;border-radius:999px;padding:4px 8px;font-size:.76rem;font-weight:700}.trendBadge.cor-alerta{color:#fca5a5;background:#ef44441f;border-color:#f8717159}.trendBadge.cor-sucesso{color:#86efac;background:#22c55e24;border-color:#22c55e59}.valorInfo{color:var(--text-title);margin-bottom:12px;font-size:clamp(1.45rem,2.5vw,1.9rem);font-weight:700;line-height:1.2}.dataInfo{justify-content:space-between;align-items:baseline;font-size:.84rem;display:flex}.dataLabel{color:var(--text-muted)}.dataValue{color:#cbd5e1;font-weight:600}.chartPanel{margin-bottom:var(--space-3);justify-content:center;display:flex}.chartContainer{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);flex-direction:column;width:100%;min-height:500px;margin:12px auto;padding:clamp(12px,2.5vw,20px);display:flex;box-shadow:0 10px 24px #0206173d}.chartHeader{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.chartTitle{font-size:clamp(.92rem,2.2vw,1.1rem)}.chartSubtitle,.chartMeta{color:var(--text-muted);font-size:.76rem}.chartHeaderControls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.compareLegendRow{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.compareBadge{color:#bfdbfe;background:#3b82f61f;border:1px solid #3b82f673;border-radius:999px;align-items:center;padding:4px 10px;font-size:.72rem;font-weight:600;display:inline-flex}.compareBadge--faded{color:#e2e8f0b8;background:#94a3b81f;border-color:#94a3b859}.chartCanvas{flex:1;width:100%;min-height:380px}.chartDescription{color:var(--color-primary);margin-bottom:6px;font-size:.76rem;font-weight:700}.chartEmptyState{color:var(--text-muted);text-align:center;padding-top:32px;font-size:.8rem}.conversionSection{margin-top:var(--space-3);width:100%;min-width:0}.conversionChartSection{width:100%;min-width:0;margin-bottom:18px}.conversionChartHeader{justify-content:space-between;gap:var(--space-2);align-items:flex-start;margin-bottom:12px;display:flex}.sectionTitle{color:var(--text-title);margin:0;font-size:1.14rem;font-weight:600}.conversionChartSubtitle{color:var(--text-muted);margin-top:6px;font-size:.88rem}.conversionChartFilters{grid-template-columns:repeat(3,minmax(130px,1fr));gap:10px;width:min(100%,560px);display:grid}.conversionChartFilters label{color:#cbd5e1;flex-direction:column;gap:6px;font-size:.78rem;display:flex}.conversionChartFilters select{background:var(--bg-surface-alt);border:1px solid var(--border-color);color:var(--text-body);border-radius:var(--radius-sm);padding:8px 10px;font-size:.84rem;transition:border-color .2s,box-shadow .2s,filter .2s}.conversionChartFilters select:hover{filter:brightness(1.05)}.conversionChartFilters select:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring);outline:none}.conversionChartCard{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);flex-direction:column;min-width:0;min-height:430px;padding:16px;display:flex;box-shadow:0 10px 24px #0206173d}.conversionChartCanvas{flex:1;width:100%;min-width:0;height:380px;min-height:320px}.conversionChartEmpty{text-align:center;color:var(--text-muted);margin:0;padding:28px 14px;font-size:.92rem}@media (width<=980px){.dashboardHeader{flex-direction:column;align-items:flex-start}.dashboardHeaderActions{justify-content:space-between;width:100%}.cardsGrid{grid-template-columns:1fr}.chartContainer{min-height:450px}.chartCanvas{min-height:350px}.conversionChartHeader{flex-direction:column}.conversionChartFilters{grid-template-columns:repeat(2,minmax(120px,1fr));width:100%}.conversionChartCanvas{min-height:350px}}@media (width<=720px){.cardsGrid{grid-template-columns:1fr}.statusPill{white-space:normal}.dashboardHeaderActions{flex-direction:column;align-items:stretch}.chartContainer{min-height:400px}.chartCanvas{min-height:300px}.conversionChartFilters{grid-template-columns:1fr}.conversionChartCanvas{min-height:300px}}.filterBar{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);border:1px solid #ffffff1a;border-radius:12px;margin-bottom:24px;padding:20px;box-shadow:0 4px 6px #0000001a}.filterBar__container{flex-direction:column;gap:16px;display:flex}.filterBar__row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:flex-end;gap:16px;display:grid}.filterBar__row--advanced{opacity:.9;border-top:1px solid #ffffff1a;margin-top:12px;padding-top:12px}.filterBar__group{flex-direction:column;gap:8px;display:flex}.filterBar__group--checkbox{justify-content:flex-end}.filterBar__checkbox{accent-color:#3b82f6;cursor:pointer;width:18px;height:18px}.filterBar__label{text-transform:uppercase;letter-spacing:.5px;color:#ffffffb3;font-size:12px;font-weight:600}.filterBar__select,.filterBar__input{color:#fff;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff26;border-radius:6px;padding:10px 12px;font-family:inherit;font-size:14px;transition:all .2s}.filterBar__select:hover,.filterBar__input:hover{background:#ffffff14;border-color:#ffffff40}.filterBar__select:focus,.filterBar__input:focus{background:#ffffff1a;border-color:#66bbff80;outline:none;box-shadow:0 0 0 3px #66bbff1a}.filterBar__select option{color:#fff;background:#1a1a2e;padding:8px}.filterBar__reset{color:#fff;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;background:linear-gradient(135deg,#ff6b6b 0%,#ee5a52 100%);border:none;border-radius:6px;height:38px;padding:10px 20px;font-size:13px;font-weight:600;transition:all .2s}.filterBar__reset:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ff6b6b4d}.filterBar__reset:active{transform:translateY(0)}.filterBar--compact{margin-bottom:16px;padding:16px}.filterBar--compact .filterBar__row{grid-template-columns:auto auto auto 1fr auto;gap:12px}.filterBar--compact .filterBar__group{gap:4px}.filterBar--compact .filterBar__label{font-size:11px}.filterBar--compact .filterBar__select{padding:8px 10px;font-size:13px}.filterBar--compact .filterBar__reset{height:32px;padding:8px 16px;font-size:12px}@media (width<=768px){.filterBar{margin-bottom:16px;padding:16px}.filterBar__row{grid-template-columns:1fr 1fr}.filterBar__row--advanced{grid-template-columns:1fr}.filterBar__reset{grid-column:1/-1}.filterBar--compact .filterBar__row{grid-template-columns:1fr}.filterBar--compact .filterBar__reset{grid-column:1/-1}}@media (width<=480px){.filterBar{padding:12px}.filterBar__row{grid-template-columns:1fr}.filterBar__reset{width:100%}}
