:root{--bg:#f3f6fb;--panel:#fff;--ink:#14213a;--muted:#6f7d94;--line:#e5eaf2;--accent:#3867ed;--nav:#10192e;--green:#1caf83;--red:#d9485f}*{box-sizing:border-box}body{margin:0;font:14px Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.login-screen{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#284e9d,#10192e 55%)}.login-card{width:min(390px,92vw);padding:36px;background:#fff;border-radius:18px;box-shadow:0 24px 80px #050b1c88}.brand-mark,.brand>span{display:grid;place-items:center;background:linear-gradient(135deg,#4e7cff,#25bda2);color:#fff;font-weight:800}.brand-mark{width:48px;height:48px;border-radius:14px;font-size:24px}.login-card h1{font-size:32px;margin:18px 0 2px}.login-card p{color:var(--muted);margin:0 0 24px}.login-card label,.job-form label{display:grid;gap:7px;margin:14px 0;font-weight:600}.login-card input,.job-form input,.job-form textarea,.job-form select,.toolbar input,.toolbar select{border:1px solid #dce3ef;border-radius:9px;padding:11px 12px;background:#fbfcff;color:var(--ink)}button{border:0;border-radius:9px;padding:10px 15px;background:var(--accent);color:#fff;font-weight:650;cursor:pointer}.login-card button{width:100%;margin-top:8px}.error{color:var(--red);min-height:20px;margin-top:10px}#app{min-height:100vh;grid-template-columns:245px 1fr}#app:not([hidden]){display:grid}aside{position:sticky;top:0;height:100vh;background:var(--nav);color:#dce6ff;padding:24px 16px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 24px}.brand>span{width:39px;height:39px;border-radius:11px}.brand b{display:block;font-size:21px}.brand small{color:#8797b7}nav{display:grid;gap:7px}nav button{background:transparent;color:#9eadca;text-align:left;padding:12px 14px}nav button.active,nav button:hover{background:#203052;color:#fff}.aside-foot{margin-top:auto;border-top:1px solid #26334e;padding:18px 8px 0;display:grid;gap:9px}.aside-foot button{background:#24324e;text-align:left}main{padding:30px;min-width:0}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}header h1{margin:0 0 4px;font-size:28px}header p{margin:0;color:var(--muted)}.live{background:#e6f8f2;color:#08765a;padding:9px 13px;border-radius:30px;font-weight:600}.live i{display:inline-block;width:8px;height:8px;background:var(--green);border-radius:50%;margin-right:7px}.cards{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:14px;margin-bottom:18px}.card,article{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 3px 16px #263b6610}.card{padding:18px}.card small{color:var(--muted);font-weight:600}.card strong{display:block;font-size:27px;margin-top:10px}.grid-two{display:grid;grid-template-columns:1.55fr 1fr;gap:18px}article{padding:18px;min-width:0}article h2{margin:0;font-size:17px}.article-head,.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:15px}.article-head{justify-content:space-between}.link{background:transparent;color:var(--accent);padding:5px}.secondary{background:#e9eef8;color:#34435d}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{text-align:left;padding:11px 9px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.pill{display:inline-block;padding:4px 8px;border-radius:20px;background:#e7efff;color:#2855c3;font-size:12px;font-weight:700}.pill.running{background:#fff2ce;color:#936900}.pill.completed{background:#e1f7ef;color:#08765a}.pill.failed{background:#ffe7eb;color:#a9233c}.job-list{display:grid;gap:10px}.job{padding:12px;border:1px solid var(--line);border-radius:10px}.job-top{display:flex;justify-content:space-between;gap:8px}.job small{display:block;color:var(--muted);margin-top:7px}.toolbar span{flex:1}.toolbar input{min-width:260px}.grid-jobs{display:grid;grid-template-columns:420px 1fr;gap:18px}.job-form small{font-weight:400;color:var(--muted)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:1100px){.cards{grid-template-columns:repeat(3,1fr)}.grid-two,.grid-jobs{grid-template-columns:1fr}}@media(max-width:760px){#app:not([hidden]){display:block}aside{position:static;height:auto}.brand{padding-bottom:12px}nav{display:flex;overflow:auto}.aside-foot{display:none}main{padding:18px}.cards{grid-template-columns:repeat(2,1fr)}header{align-items:flex-start}.toolbar{flex-wrap:wrap}.toolbar span{display:none}.toolbar input{min-width:100%;width:100%}}
