:root{--navy:#11145a;--navy2:#262a83;--gold:#ffd64a;--ink:#17182c;--muted:#6d7188;--line:#e6e8f0;--bg:#f5f6fa;--green:#198754;--red:#c34242}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.shell{grid-template-columns:230px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--navy);color:#fff;height:100vh;padding:24px 16px;position:sticky;top:0}.brand{padding:4px 10px 26px;font-size:21px;font-weight:850}.brand span{color:var(--gold)}.nav{gap:6px;display:grid}.nav a{color:#d8daf7;border-radius:11px;padding:12px 14px;font-weight:650}.nav a:hover{color:#fff;background:#ffffff12}.logout{color:#c8caeb;cursor:pointer;background:0 0;border:0;position:absolute;bottom:24px;left:26px}.content{min-width:0;padding:30px}.heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px;display:flex}.heading h1{margin:0;font-size:29px}.heading p{color:var(--muted);margin:6px 0 0}.filters{flex-wrap:wrap;align-items:flex-end;gap:9px;display:flex}.filters label{color:var(--muted);font-size:12px;font-weight:750}input,select{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;margin-top:5px;padding:10px 11px;display:block}button.primary{background:var(--navy);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:11px 16px;font-weight:750}button.primary:disabled{cursor:wait;opacity:.68}.cards{grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px;margin:0 0 18px;display:grid}.card,.panel{border:1px solid var(--line);background:#fff;border-radius:16px;box-shadow:0 4px 16px #11145a08}.card{padding:17px}.card span{color:var(--muted);font-size:12px;font-weight:700;display:block}.card strong{margin-top:7px;font-size:24px;display:block}.panel{margin-bottom:18px;padding:18px;overflow:auto}table{border-collapse:collapse;width:100%;min-width:900px}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:12px 10px}th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:11px}.badge{background:#eef0f6;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;display:inline-block}.badge.active,.badge.authenticated{color:var(--green);background:#e3f6ec}.badge.cancelled,.badge.halted,.badge.failed,.badge.pending{color:var(--red);background:#fdeaea}.muted{color:var(--muted)}.pager{justify-content:space-between;align-items:center;padding-top:16px;display:flex}.pager a{background:#eef0f6;border-radius:9px;padding:9px 12px;font-weight:700}.form-panel{grid-template-columns:repeat(5,minmax(120px,1fr));align-items:end;gap:10px;display:grid}.notice{background:#fff7d7;border-radius:10px;margin-bottom:15px;padding:12px 14px}.login{place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{background:#fff;border-radius:22px;width:min(390px,100%);padding:32px;box-shadow:0 15px 50px #11145a20}.login-card h1{color:var(--navy);margin:0}.login-card label{margin-top:18px;font-weight:700;display:block}.login-card input{width:100%;padding:13px}.login-card button{width:100%;margin-top:22px}.error{color:var(--red);font-size:13px}.bar-wrap{align-items:center;gap:8px;display:flex}.bar{background:var(--navy2);border-radius:5px;min-width:2px;height:8px}.error-notice{color:var(--red);background:#fdeaea}.empty{text-align:center;color:var(--muted);padding:28px}.is-refreshing{opacity:.55;transition:opacity .18s}.shimmer{background:linear-gradient(90deg,#eef0f5 25%,#fafbfc 45%,#eef0f5 65%) 0 0/220% 100%;border-radius:8px;animation:1.25s infinite shimmer;display:block}.shimmer-label{width:65%;height:12px}.shimmer-value{width:48%;height:27px;margin-top:10px}.skeleton-table{gap:13px;display:grid}.shimmer-row{width:100%;height:42px}@keyframes shimmer{to{background-position:-220% 0}}@media (max-width:850px){.shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.nav{display:flex;overflow:auto}.logout{margin:16px 10px 0;position:static}.content{padding:18px 12px}.heading{display:block}.filters{margin-top:15px}.form-panel{grid-template-columns:1fr 1fr}}
