@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@300;400;500;600;700&display=swap";
:root{--bg-main:#080b11;--bg-gradient:radial-gradient(circle at 50% 0%, #151c2e 0%, #080b11 70%);--sidebar-bg:#0d121eb3;--card-bg:#141a2a73;--card-border:#ffffff0f;--card-glow:#6366f126;--primary:#6366f1;--primary-hover:#4f46e5;--primary-light:#6366f126;--success:#22c55e;--success-light:#22c55e26;--danger:#ef4444;--danger-light:#ef444426;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--border-light:#ffffff14;--input-bg:#0a0e1799;--font-main:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-header:"Outfit", sans-serif;--sidebar-width:320px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-main);background-image:var(--bg-gradient);width:100%;min-height:100vh;color:var(--text-primary);font-family:var(--font-main);-webkit-font-smoothing:antialiased;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-main)}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#fff3}.app-container{min-height:100vh;display:flex;position:relative}.sidebar{width:var(--sidebar-width);border-right:1px solid var(--card-border);z-index:10;background:#0b0f19;flex-direction:column;flex-shrink:0;height:100vh;padding:2.5rem 1.75rem;transition:width .3s cubic-bezier(.4,0,.2,1),padding .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1),border-color .3s;display:flex;position:sticky;top:0;overflow:hidden}.sidebar-inner{flex-direction:column;flex-shrink:0;gap:2.5rem;width:264px;display:flex}.app-container.sidebar-collapsed .sidebar{opacity:0;pointer-events:none;border-right-color:#0000;width:0;padding:2.5rem 0}.brand{justify-content:center;align-items:center;width:100%;display:flex}.brand-logo{max-width:100%;height:auto;display:block}.filters-header{font-family:var(--font-header);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:.75rem;font-size:.75rem;font-weight:700}.filter-group{flex-direction:column;gap:.5rem;margin-bottom:1.5rem;display:flex}.filter-label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.filter-control{background:var(--input-bg);border:1px solid var(--card-border);width:100%;color:var(--text-primary);font-family:var(--font-main);border-radius:10px;outline:none;padding:.75rem 1rem;font-size:.9rem;transition:all .2s}.filter-control:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light)}input[type=date]::-webkit-calendar-picker-indicator{filter:invert();cursor:pointer;opacity:.7;transition:opacity .2s}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.date-inputs-wrapper{flex-direction:column;gap:.5rem;display:flex}.main-content{flex-direction:column;flex-grow:1;gap:2.25rem;min-width:0;padding:2.5rem;display:flex}.dashboard-header{justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.dashboard-title-wrapper{align-items:center;gap:1rem;display:flex}.dashboard-title h2{font-family:var(--font-header);letter-spacing:-.02em;margin-bottom:.25rem;font-size:1.85rem;font-weight:700}.dashboard-title p{color:var(--text-secondary);font-size:.95rem}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;display:grid}.kpi-card{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--card-border);border-radius:16px;align-items:center;gap:1.25rem;padding:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.kpi-card:before{content:"";pointer-events:none;background:linear-gradient(#ffffff05 0%,#0000 100%);width:100%;height:100%;position:absolute;top:0;left:0}.kpi-card:hover{box-shadow:0 12px 24px -10px var(--card-glow);border-color:#6366f14d;transform:translateY(-4px)}.kpi-icon-container{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.5rem;display:flex}.kpi-icon-container.blue{color:#3b82f6;background:#3b82f626}.kpi-icon-container.emerald{background:var(--success-light);color:var(--success)}.kpi-icon-container.purple{color:#a855f7;background:#a855f726}.kpi-icon-container.indigo{background:var(--primary-light);color:var(--primary)}.kpi-info{flex-direction:column;gap:.25rem;display:flex}.kpi-label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.kpi-value{font-family:var(--font-header);color:var(--text-primary);letter-spacing:-.01em;font-size:1.6rem;font-weight:700}.project-tags-card{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--card-border);border-radius:16px;flex-direction:column;gap:.75rem;padding:1.25rem 1.5rem;display:flex}.project-tags-title{font-family:var(--font-header);color:var(--text-secondary);align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;display:flex}.project-tags-container{flex-wrap:wrap;gap:.6rem;display:flex}.project-tag{cursor:pointer;border:1px solid var(--card-border);color:var(--text-primary);-webkit-user-select:none;user-select:none;background:#ffffff08;border-radius:20px;align-items:center;gap:.5rem;padding:.4rem .8rem;font-size:.8rem;font-weight:500;transition:all .2s;display:flex}.project-tag:hover{background:#ffffff14;border-color:#fff3;transform:translateY(-1px)}.project-tag.active{background:#6366f11a;border-color:#6366f166;box-shadow:0 2px 8px #6366f11a}.project-tag.disabled{opacity:.35;background:#ffffff03;border-style:dashed;text-decoration:line-through;transform:none}.project-tag-dot{border-radius:2px;width:10px;height:10px}.project-tag.disabled .project-tag-dot{background-color:var(--text-muted)!important}.charts-grid{grid-template-columns:repeat(auto-fit,minmax(450px,1fr));gap:1.5rem;display:grid}.chart-card{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--card-border);border-radius:20px;flex-direction:column;gap:1.25rem;min-height:420px;padding:1.75rem;display:flex}.chart-card-header{justify-content:space-between;align-items:center;display:flex}.chart-title h3{font-family:var(--font-header);font-size:1.15rem;font-weight:600}.chart-title p{color:var(--text-secondary);margin-top:.15rem;font-size:.85rem}.chart-wrapper{flex-grow:1;width:100%;min-height:320px;position:relative}.custom-tooltip{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0e17e6;border:1px solid #ffffff26;border-radius:8px;padding:.75rem 1rem;font-size:.85rem;box-shadow:0 10px 15px -3px #00000080}.tooltip-title{color:var(--text-primary);border-bottom:1px solid #ffffff1a;margin-bottom:.4rem;padding-bottom:.25rem;font-weight:600}.tooltip-item{align-items:center;gap:.5rem;margin-top:.25rem;display:flex}.tooltip-item-color{border-radius:50%;width:10px;height:10px}.tooltip-item-label{color:var(--text-secondary)}.tooltip-item-value{color:var(--text-primary);margin-left:auto;font-weight:600}.table-card{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--card-border);border-radius:20px;flex-direction:column;gap:1.25rem;padding:1.75rem;display:flex}.table-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.table-search-input{min-width:200px;max-width:300px}.table-wrapper{border:1px solid var(--card-border);background:#0a0e174d;border-radius:12px;width:100%;overflow-x:auto}.modern-table{border-collapse:collapse;text-align:left;width:100%;font-size:.9rem}.modern-table th{font-family:var(--font-header);color:var(--text-secondary);border-bottom:1px solid var(--card-border);letter-spacing:.02em;background:#0a0e17b3;padding:1rem 1.25rem;font-weight:600}.modern-table td{color:var(--text-primary);border-bottom:1px solid #ffffff0a;padding:1rem 1.25rem;font-weight:400}.modern-table tbody tr{transition:background .15s}.modern-table tbody tr:hover{background:#ffffff05}.modern-table tbody tr:last-child td{border-bottom:none}.badge{border-radius:30px;align-items:center;gap:.4rem;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge.success{background:var(--success-light);color:var(--success);border:1px solid #10b98133}.badge.danger{background:var(--danger-light);color:var(--danger);border:1px solid #f43f5e33}.pagination-container{color:var(--text-secondary);justify-content:space-between;align-items:center;margin-top:.5rem;font-size:.85rem;display:flex}.pagination-buttons{gap:.5rem;display:flex}.pagination-btn{background:var(--input-bg);border:1px solid var(--card-border);color:var(--text-primary);cursor:pointer;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-weight:500;transition:all .2s;display:flex}.pagination-btn:hover:not(:disabled){background:var(--primary-light);border-color:var(--primary);color:var(--text-primary)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.empty-state{text-align:center;color:var(--text-secondary);background:var(--card-bg);border:1px dashed var(--card-border);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:4rem 2rem;display:flex}.empty-state-icon{color:var(--text-muted);font-size:2.5rem}.loader-container{min-height:400px;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;display:flex}.loader-spinner{border:3px solid #6366f11a;border-top-color:var(--primary);border-radius:50%;width:50px;height:50px;animation:1s ease-in-out infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:1024px){.app-container{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--card-border);width:100%;height:auto;padding:1.75rem;position:relative}.main-content{max-width:100%;padding:1.5rem}.charts-grid{grid-template-columns:1fr}}.tabs-navigation{border-bottom:1px solid var(--border-light);gap:1rem;margin-bottom:.5rem;padding-bottom:.5rem;display:flex}.tab-button{color:var(--text-secondary);font-family:var(--font-header);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-size:1rem;font-weight:600;transition:all .2s;display:flex;position:relative}.tab-button:hover{color:var(--text-primary);background:#ffffff08}.tab-button.active{color:var(--primary);background:var(--primary-light)}.tab-button.active:after{content:"";background:var(--primary);width:100%;height:2px;box-shadow:0 0 10px var(--primary);border-radius:2px;position:absolute;bottom:-9px;left:0}.version-view-container{flex-direction:column;gap:2rem;display:flex}.version-section-title{font-family:var(--font-header);color:var(--text-primary);align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:1.25rem;font-weight:600;display:flex}.version-selector-pills{white-space:nowrap;background:var(--card-bg);border:1px solid var(--card-border);scrollbar-width:thin;scrollbar-color:#ffffff1a transparent;border-radius:12px;gap:.75rem;padding:1rem;display:flex;overflow-x:auto}.version-selector-pills::-webkit-scrollbar{height:6px}.version-selector-pills::-webkit-scrollbar-track{background:0 0}.version-selector-pills::-webkit-scrollbar-thumb{background-color:#ffffff26;border-radius:10px}.version-selector-pills::-webkit-scrollbar-thumb:hover{background-color:#ffffff4d}.version-pill{border:1px solid var(--card-border);color:var(--text-secondary);font-family:var(--font-main);cursor:pointer;background:#ffffff0d;border-radius:20px;flex-shrink:0;padding:.5rem 1rem;font-size:.85rem;font-weight:500;transition:all .2s}.version-pill:hover{color:var(--text-primary);background:#ffffff1a}.version-pill.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 0 12px #6366f166}.test-list{flex-direction:column;gap:.5rem;display:flex}.test-list-header{font-family:var(--font-header);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border-light);grid-template-columns:80px 120px 1.5fr 150px 80px repeat(3,100px) 1fr 60px;align-items:center;gap:1.5rem;margin-bottom:.5rem;padding:.75rem 1.25rem;font-size:.8rem;font-weight:700;display:grid}.test-row{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--card-border);color:var(--text-secondary);border-radius:12px;grid-template-columns:80px 120px 1.5fr 150px 80px repeat(3,100px) 1fr 60px;align-items:center;gap:1.5rem;padding:.75rem 1.25rem;font-size:.9rem;transition:all .3s cubic-bezier(.4,0,.2,1);display:grid;position:relative}.test-row:hover{background:#ffffff05;transform:translate(4px)}.test-row.sucesso{border-left:4px solid var(--success)}.test-row.sucesso:hover{border-color:var(--success);box-shadow:0 4px 20px #22c55e26}.test-row.revisao{border-left:4px solid #eab308}.test-row.revisao:hover{border-color:#eab308;box-shadow:0 4px 20px #eab30826}.test-row.erro_dev{border-left:4px solid var(--danger)}.test-row.erro_dev:hover{border-color:var(--danger);box-shadow:0 4px 20px #ef444426}.test-row.erro_auto{border-left:4px solid #f97316}.test-row.erro_auto:hover{border-color:#f97316;box-shadow:0 4px 20px #f9731626}.test-row.pausado{opacity:.75;border-left:4px solid #8b5cf6}.test-row.pausado:hover{border-color:#8b5cf6;box-shadow:0 4px 20px #8b5cf626}.test-row.pendente{border-left:4px solid #64748b}.test-row.pendente:hover{border-color:#64748b;box-shadow:0 4px 20px #64748b26}.col-code{font-family:var(--font-header);color:var(--text-muted);text-transform:uppercase;font-size:.8rem;font-weight:700}.col-name{font-family:var(--font-header);color:var(--text-primary);font-weight:600;line-height:1.4}.test-status-select{cursor:pointer;background-color:var(--input-bg);color:var(--text-primary);border:1px solid #ffffff14;border-radius:30px;outline:none;width:100%;padding:.35rem .75rem;font-size:.8rem;font-weight:700;transition:all .2s}.test-status-select:focus{box-shadow:0 0 0 2px #ffffff1a}.test-status-select.sucesso{background:var(--success-light);color:var(--success);border:1px solid #22c55e33}.test-status-select.revisao{color:#eab308;background:#eab30826;border:1px solid #eab30833}.test-status-select.erro_dev{background:var(--danger-light);color:var(--danger);border:1px solid #ef444433}.test-status-select.erro_auto{color:#f97316;background:#f9731626;border:1px solid #f9731633}.test-status-select.pausado{color:#8b5cf6;background:#8b5cf626;border:1px solid #8b5cf633}.test-status-select.pendente{color:#64748b;background:#64748b26;border:1px solid #64748b33}.test-status-select option{color:var(--text-primary);background:#0f172a}.btn-delete-row{cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:.35rem;font-size:1rem;transition:all .2s;display:flex}.btn-delete-row:hover:not(:disabled){opacity:1;background:#f43f5e26;box-shadow:0 0 8px #f43f5e4d}.btn-delete-row:disabled{cursor:not-allowed;opacity:.15}.badge-grupo{text-transform:uppercase;letter-spacing:.03em;text-align:center;border-radius:6px;width:100%;padding:.25rem .5rem;font-size:.7rem;font-weight:700;display:inline-block}.badge-grupo.finalizacao{color:#38bdf8;background:#38bdf826;border:1px solid #38bdf833}.badge-grupo.casoteste{color:#c084fc;background:#a855f71f;border:1px solid #a855f726}.collapsible-header-btn{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--card-border);width:100%;color:var(--text-primary);font-family:var(--font-header);cursor:pointer;border-radius:12px;outline:none;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;font-size:.95rem;font-weight:600;transition:all .2s;display:flex}.collapsible-header-btn:hover{background:#ffffff0a;border-color:#ffffff26}.collapsible-content{margin-top:.75rem;animation:.3s cubic-bezier(.4,0,.2,1) forwards slideDown}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.version-charts-grid{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}@media (max-width:768px){.version-charts-grid{grid-template-columns:1fr}}.donut-chart-card{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--card-border);border-radius:16px;flex-direction:column;gap:.75rem;padding:1.25rem;display:flex}.donut-chart-card h4{font-family:var(--font-header);color:var(--text-primary);border-bottom:1px solid var(--border-light);margin-bottom:.25rem;padding-bottom:.5rem;font-size:1rem;font-weight:600}.donut-chart-card.empty{text-align:center;justify-content:center;min-height:220px}.version-progress-wrapper{align-items:center;gap:.75rem;display:flex}.version-progress-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:700}.progress-bar-track{background:#ffffff0d;border:1px solid #ffffff14;border-radius:20px;width:150px;height:8px;position:relative;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg,#10b981,#3b82f6);border-radius:20px;height:100%;transition:width .4s cubic-bezier(.4,0,.2,1);box-shadow:0 0 8px #10b98180}.donut-card-body{justify-content:space-between;align-items:center;gap:1.5rem;width:100%;display:flex}.donut-graph-wrapper{flex-direction:column;flex:1;align-items:center;gap:.5rem;display:flex}.donut-sub-label{font-family:var(--font-main);color:var(--text-secondary);text-align:center;font-size:.85rem;font-weight:500}.custom-legend-list{flex-direction:column;flex:1.2;gap:.4rem;display:flex}.legend-row{font-family:var(--font-main);color:var(--text-secondary);justify-content:flex-start;align-items:center;gap:1rem;font-size:.85rem;display:flex}.legend-badge{color:#fff;text-align:center;border:1px solid #ffffff14;border-radius:12px;justify-content:center;align-items:center;width:65px;height:24px;font-size:.75rem;font-weight:700;display:flex}.legend-badge.erro-dev{color:#fff;background-color:#ef4444}.legend-badge.erro-auto{color:#fff;background-color:#f97316}.legend-badge.revisao{color:#fff;background-color:#eab308}.legend-badge.pausado{color:#fff;background-color:#8b5cf6}.legend-badge.sucesso{color:#fff;background-color:#22c55e}.legend-badge.pendente{color:#fff;background-color:#64748b}.legend-label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.legend-count{color:var(--text-primary);text-align:center;width:24px;font-family:monospace;font-weight:600}.charts-toggle-header{justify-content:flex-end;margin-bottom:.25rem;display:flex}.toggle-switch-container{background:var(--input-bg);border:1px solid var(--card-border);border-radius:30px;gap:2px;padding:3px;display:flex}.toggle-switch-btn{font-family:var(--font-header);color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:20px;outline:none;padding:.4rem 1rem;font-size:.8rem;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1)}.toggle-switch-btn:hover{color:var(--text-primary)}.toggle-switch-btn.active{background:var(--primary);color:#fff;box-shadow:0 0 10px #6366f173}.donut-chart-card.full-width{width:100%;max-width:580px}.status-filter-container{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--card-border);border-radius:16px;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1rem;margin-bottom:.5rem;padding:1rem 1.25rem;display:flex}.status-filter-label{font-family:var(--font-header);color:var(--text-secondary);font-size:.85rem;font-weight:600}.status-filter-pills{flex-wrap:wrap;flex-grow:1;gap:.65rem;display:flex}.status-filter-pill{font-family:var(--font-main);cursor:pointer;border:1px solid var(--card-border);color:var(--text-muted);background:#0a0e1766;border-radius:30px;outline:none;align-items:center;gap:.5rem;padding:.45rem .9rem;font-size:.82rem;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.status-filter-pill:hover{color:var(--text-primary);border-color:#ffffff26;transform:translateY(-1px)}.status-filter-pill.active{color:var(--text-primary)}.status-filter-pill.active.sucesso{border-color:var(--success);background:var(--success-light);box-shadow:0 0 10px #22c55e40}.status-filter-pill.active.revisao{background:#eab30826;border-color:#eab308;box-shadow:0 0 10px #eab30840}.status-filter-pill.active.erro_dev{border-color:var(--danger);background:var(--danger-light);box-shadow:0 0 10px #ef444440}.status-filter-pill.active.erro_auto{background:#f9731626;border-color:#f97316;box-shadow:0 0 10px #f9731640}.status-filter-pill.active.pausado{background:#8b5cf626;border-color:#8b5cf6;box-shadow:0 0 10px #8b5cf640}.status-filter-pill.active.pendente{background:#64748b26;border-color:#64748b;box-shadow:0 0 10px #64748b40}.status-filter-actions{gap:.5rem;display:flex}
