@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--bg-primary:#0a0e1a;--bg-secondary:#111827;--bg-card:#111827b3;--bg-card-hover:#1f2937cc;--bg-glass:#1118278c;--bg-input:#1a2236;--bg-sidebar:#0d1220;--accent:#6366f1;--accent-hover:#818cf8;--accent-glow:#6366f140;--accent-subtle:#6366f11a;--green:#22c55e;--green-bg:#22c55e1f;--red:#ef4444;--red-bg:#ef44441f;--yellow:#f59e0b;--yellow-bg:#f59e0b1f;--blue:#3b82f6;--blue-bg:#3b82f61f;--purple:#a855f7;--cyan:#06b6d4;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--text-inverse:#0f172a;--border:#94a3b81f;--border-hover:#94a3b840;--border-accent:#6366f166;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 20px var(--accent-glow);--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--sidebar-width:260px;--sidebar-collapsed:72px;--header-height:0px;--transition-fast:.15s cubic-bezier(.4,0,.2,1);--transition-base:.25s cubic-bezier(.4,0,.2,1);--transition-slow:.4s cubic-bezier(.4,0,.2,1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px}body{background:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(80% 60% at 20% 10%,#6366f114,#0000 50%),radial-gradient(60% 50% at 80% 90%,#a855f70f,#0000 50%);position:fixed;inset:0}#root{z-index:1;min-height:100vh;display:flex;position:relative}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}h1,h2,h3,h4{color:var(--text-primary);font-weight:700;line-height:1.3}h1{letter-spacing:-.02em;font-size:1.75rem}h2{letter-spacing:-.01em;font-size:1.35rem}h3{font-size:1.1rem}h4{font-size:.95rem}code,.mono{font-family:JetBrains Mono,Fira Code,monospace}.app-layout{width:100%;min-height:100vh;display:flex}.main-content{margin-left:var(--sidebar-width);max-width:100%;transition:margin-left var(--transition-base);flex:1;padding:32px 40px;overflow-x:hidden}.glass-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--radius-lg);transition:all var(--transition-base);padding:24px}.glass-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md)}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:none;align-items:center;gap:8px;padding:10px 20px;font-family:inherit;font-size:.9rem;font-weight:600;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--accent), #7c3aed);color:#fff;box-shadow:0 2px 12px var(--accent-glow)}.btn-primary:hover{box-shadow:0 4px 20px var(--accent-glow);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-success{color:#fff;background:linear-gradient(135deg,#16a34a,#22c55e);box-shadow:0 2px 12px #22c55e40}.btn-success:hover{transform:translateY(-1px);box-shadow:0 4px 20px #22c55e59}.btn-danger{color:#fff;background:linear-gradient(135deg,#dc2626,#ef4444);box-shadow:0 2px 12px #ef444440}.btn-danger:hover{transform:translateY(-1px);box-shadow:0 4px 20px #ef444459}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-hover)}.btn-sm{padding:6px 14px;font-size:.82rem}.btn-lg{padding:14px 28px;font-size:1rem}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.input,.textarea,.select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);transition:all var(--transition-fast);width:100%;padding:10px 14px;font-family:inherit;font-size:.9rem}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2394a3b8' viewBox='0 0 16 16'%3E%3Cpath d='M8 12L2 6h12z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.textarea{resize:vertical;min-height:120px}.label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:.82rem;font-weight:600;display:block}.page-header{margin-bottom:32px}.page-header h1{margin-bottom:8px}.page-header p{color:var(--text-secondary);font-size:.95rem}.grid{gap:20px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (width<=1200px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.main-content{margin-left:0;padding:20px 16px}}.table-wrapper{border-radius:var(--radius-lg);border:1px solid var(--border);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:14px 16px;font-size:.78rem;font-weight:600}td{border-bottom:1px solid var(--border);color:var(--text-secondary);padding:14px 16px}tr:last-child td{border-bottom:none}tr:hover td{background:var(--bg-card-hover);color:var(--text-primary)}.badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:6px;padding:4px 12px;font-size:.78rem;font-weight:600;display:inline-flex}.badge-passed{background:var(--green-bg);color:var(--green)}.badge-failed{background:var(--red-bg);color:var(--red)}.badge-running{background:var(--blue-bg);color:var(--blue)}.badge-pending{background:var(--yellow-bg);color:var(--yellow)}.badge-cancelled{color:#9ca3af;background:#6b728026}.badge-error{background:var(--red-bg);color:var(--red)}.badge-running:before{content:"";background:var(--blue);border-radius:50%;width:8px;height:8px;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#94a3b833;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b859}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-fade-in{animation:.4s ease-out both fadeIn}.animate-slide-in{animation:.3s ease-out both slideIn}.animate-scale-in{animation:.3s ease-out both scaleIn}.stagger>*{animation:.4s ease-out both fadeIn}.stagger>:first-child{animation-delay:0s}.stagger>:nth-child(2){animation-delay:50ms}.stagger>:nth-child(3){animation-delay:.1s}.stagger>:nth-child(4){animation-delay:.15s}.toggle-wrapper{align-items:center;gap:10px;display:flex}.toggle{border-radius:var(--radius-full);background:var(--bg-input);border:1px solid var(--border);cursor:pointer;width:44px;height:24px;transition:all var(--transition-fast);position:relative}.toggle.active{background:var(--accent);border-color:var(--accent)}.toggle:after{content:"";width:18px;height:18px;transition:transform var(--transition-fast);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.toggle.active:after{transform:translate(20px)}.empty-state{text-align:center;color:var(--text-muted);padding:60px 20px}.empty-state svg{opacity:.3;width:64px;height:64px;margin-bottom:16px}.empty-state h3{color:var(--text-secondary);margin-bottom:8px}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--transition-fast);padding:6px 10px;font-size:.78rem;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}[data-tooltip]:hover:after{opacity:1}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}
