@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-primary:#f8fafc;--bg-card:#fff;--bg-card-hover:#f1f5f9;--bg-terminal:#f4f4f5;--border-subtle:#e2e8f0;--border-glow:#cbd5e1;--text-primary:#0f172a;--text-secondary:#475569;--text-dim:#64748b;--accent-primary:#3b82f6;--accent-secondary:#2563eb;--accent-glow:#3b82f61a;--success:#10b981;--success-glow:#10b9811a;--warning:#f59e0b;--error:#ef4444;--error-glow:#ef44441a;--terminal-text:#3f3f46;--terminal-chrome:#e4e4e7;--radius-sm:6px;--radius-md:8px;--radius-lg:12px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);justify-content:center;align-items:center;min-height:100vh;font-family:Inter,system-ui,-apple-system,sans-serif;display:flex}.app-root{justify-content:center;width:100%;padding:1rem;display:flex}.app-container{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);width:100%;max-width:600px;padding:1.5rem;box-shadow:0 10px 25px -5px #0000000d,0 8px 10px -6px #00000003}.header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;display:flex}.header-badge{background:var(--accent-glow);color:var(--accent-secondary);border-radius:var(--radius-sm);align-items:center;gap:6px;padding:4px 8px;font-size:.7rem;font-weight:600;display:flex}.header-badge .dot{background:var(--accent-primary);border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}@keyframes pulse{0%{transform:scale(.95);box-shadow:0 0 #3b82f6b3}70%{transform:scale(1);box-shadow:0 0 0 6px #3b82f600}to{transform:scale(.95);box-shadow:0 0 #3b82f600}}.header h1{color:var(--text-primary);letter-spacing:-.5px;font-size:1.25rem;font-weight:700}.header .subtitle{display:none}.stats-row{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem;display:grid}.stat-card{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);text-align:center;padding:.5rem .75rem}.stat-label{text-transform:uppercase;color:var(--text-dim);margin-bottom:.25rem;font-size:.65rem;font-weight:600}.stat-value{color:var(--text-primary);font-size:1rem;font-weight:700}.stat-value.accent{color:var(--accent-secondary)}.stat-value.success{color:var(--success)}.stat-value.warning{color:var(--warning)}.control-panel{background:var(--bg-primary);border-radius:var(--radius-md);border:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.control-left{align-items:center;display:flex}.status-badge{align-items:center;gap:6px;font-size:.8rem;font-weight:600;display:inline-flex}.status-badge.idle{color:var(--text-secondary)}.status-badge.running{color:var(--accent-secondary)}.status-badge.success{color:var(--success)}.status-badge.error{color:var(--error)}.status-indicator{background:currentColor;border-radius:50%;width:6px;height:6px}.running .status-indicator{animation:1s infinite blink}@keyframes blink{50%{opacity:.5}}.btn-run{background:var(--accent-primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:6px;padding:.5rem 1rem;font-size:.85rem;font-weight:500;transition:background .2s;display:inline-flex}.btn-run:hover:not(:disabled){background:var(--accent-secondary)}.btn-run:disabled{background:var(--border-subtle);color:var(--text-dim);cursor:not-allowed}.spin-icon{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.terminal-container{background:var(--bg-terminal);border-radius:var(--radius-md);border:1px solid var(--border-subtle);overflow:hidden}.terminal-chrome{background:var(--terminal-chrome);border-bottom:1px solid var(--border-subtle);align-items:center;padding:6px 12px;display:flex}.traffic-lights{gap:6px;display:flex}.traffic-light{border-radius:50%;width:10px;height:10px}.tl-red{background:#ff5f57}.tl-yellow{background:#febc2e}.tl-green{background:#28c840}.terminal-tab{color:var(--text-secondary);margin-left:1rem;font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:500}.terminal-body{height:250px;color:var(--terminal-text);padding:.75rem 1rem;font-family:JetBrains Mono,monospace;font-size:.75rem;line-height:1.5;overflow-y:auto}.terminal-body::-webkit-scrollbar{width:6px}.terminal-body::-webkit-scrollbar-track{background:0 0}.terminal-body::-webkit-scrollbar-thumb{background:#d4d4d8;border-radius:3px}.terminal-placeholder{color:var(--text-dim);align-items:center;gap:.5rem;height:100%;display:flex}.cursor-blink{background:var(--text-dim);width:6px;height:12px;animation:1s step-end infinite blink;display:inline-block}.log-line{gap:8px;margin-bottom:2px;display:flex}.log-timestamp{color:#a1a1aa;flex-shrink:0}.log-message{word-break:break-word}.log-INFO .log-message{color:var(--terminal-text)}.log-SUCCESS .log-message{color:#059669}.log-WARN .log-message{color:#d97706}.log-ERROR .log-message{color:#dc2626}.log-HEADER .log-message{color:var(--accent-primary);font-weight:600}.control-actions{gap:.5rem;display:flex}.btn-stop{background:var(--bg-primary);color:var(--error);border:1px solid var(--error-glow);border-radius:var(--radius-sm);cursor:pointer;align-items:center;padding:.5rem 1rem;font-size:.85rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-stop:hover{background:var(--error-glow)}.popup-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172a66;justify-content:center;align-items:center;animation:.3s ease-out fadeIn;display:flex;position:fixed;inset:0}.popup-content{background:var(--bg-card);border-radius:var(--radius-lg);text-align:center;width:90%;max-width:400px;padding:2rem;animation:.3s cubic-bezier(.175,.885,.32,1.275) scaleIn;box-shadow:0 20px 40px -10px #0003}.popup-content h2{color:var(--text-primary);margin:1rem 0 .5rem}.popup-content p{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.9rem;line-height:1.5}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.footer{text-align:center;color:var(--text-dim);padding-top:1rem;font-size:.7rem}@media (width<=480px){.app-container{box-shadow:none;border:none;border-radius:0;min-height:100vh;padding:1rem}.app-root{padding:0}.stats-row{grid-template-columns:repeat(3,1fr)}.control-panel{flex-direction:column;align-items:stretch;gap:.75rem}.btn-run{justify-content:center}}
