*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #3498db;--primary-dark: #2980b9;--success: #27ae60;--danger: #e74c3c;--warning: #f39c12;--bg: #f5f6fa;--card-bg: #fff;--text: #2c3e50;--text-light: #7f8c8d;--border: #dcdde1}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}.app-container{min-height:100vh}.navbar{background:var(--card-bg);padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px #0000001a}.navbar h1{font-size:1.25rem;color:var(--primary)}.nav-links{display:flex;gap:1rem;align-items:center}.nav-links a{color:var(--text);text-decoration:none;padding:.5rem 1rem;border-radius:4px;transition:background .2s}.nav-links a:hover,.nav-links a.router-link-active{background:var(--bg)}.btn{display:inline-block;padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;transition:all .2s;text-decoration:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#219a52}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#c0392b}.btn-warning{background:var(--warning);color:#fff}.btn-warning:hover{background:#d68910}.btn-sm{padding:.25rem .5rem;font-size:.75rem}.btn:disabled{opacity:.6;cursor:not-allowed}.main-content{padding:2rem;max-width:1200px;margin:0 auto}.card{background:var(--card-bg);border-radius:8px;padding:1.5rem;margin-bottom:1rem;box-shadow:0 2px 4px #0000000d}.card h2{margin-bottom:1rem;color:var(--text)}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500}.form-control{width:100%;padding:.75rem;border:1px solid var(--border);border-radius:4px;font-size:1rem}.form-control:focus{outline:none;border-color:var(--primary)}.error{color:var(--danger);font-size:.875rem;margin-top:.5rem}table{width:100%;border-collapse:collapse}th,td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border)}th{background:var(--bg);font-weight:600}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500}.status-running{background:#d4edda;color:#155724}.status-stopped{background:#f8d7da;color:#721c24}.status-error{background:#fff3cd;color:#856404}.logs-container{background:#1e1e1e;color:#d4d4d4;padding:1rem;border-radius:4px;font-family:Monaco,Menlo,monospace;font-size:.75rem;max-height:400px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh}.login-card{background:var(--card-bg);padding:2rem;border-radius:8px;box-shadow:0 4px 6px #0000001a;width:100%;max-width:400px}.login-card h2{text-align:center;margin-bottom:1.5rem}.grid{display:grid;gap:1rem}.grid-2{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-card{text-align:center}.stat-value{font-size:2rem;font-weight:700;color:var(--primary)}.stat-label{color:var(--text-light);font-size:.875rem}.loading{text-align:center;padding:2rem;color:var(--text-light)}.actions{display:flex;gap:.5rem}
