:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#1f2328;--ink-muted:#59636e;--line:#d9dee3;--ground:#f6f8fa;--surface:#fff;--accent:#0969da;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5}body{background:var(--ground);color:var(--ink);margin:0}.app-header{background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:.75rem 1.5rem;display:flex}.app-brand{align-items:center;gap:.6rem;text-decoration:none;display:flex}.app-logo{height:1.5rem;display:block}.app-title{color:var(--ink);font-size:1.05rem;font-weight:700}.app-header-user{align-items:center;gap:1rem;display:flex}.user-name{color:var(--ink-muted);font-size:.9rem}.page{max-width:960px;margin:0 auto;padding:2rem 1.5rem 4rem}.centered-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;min-height:100vh;padding:2rem;display:flex}h1{margin:0;font-size:1.6rem}.subtitle{color:var(--ink-muted);margin:.25rem 0 0}.page-message{color:var(--ink-muted);margin:1.5rem 0}.metric-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.5rem 0 2rem;display:grid}.metric-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:.25rem;padding:1rem 1.25rem;display:flex}.metric-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);font-size:.72rem;font-weight:600}.metric-value{font-size:1.9rem;font-weight:700}.jobs-table{border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:8px;width:100%;overflow:hidden}.jobs-table th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);border-bottom:1px solid var(--line);padding:.6rem 1rem;font-size:.72rem;font-weight:600}.jobs-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:.75rem 1rem}.jobs-table tbody:last-child tr:last-child td{border-bottom:none}.jobs-table .group-row th{letter-spacing:.01em;text-transform:none;color:var(--ink);background:var(--ground);border-bottom:1px solid var(--line);padding:.55rem 1rem;font-size:.85rem;font-weight:650}.job-name{color:var(--accent);font-weight:600;text-decoration:none;display:block}.job-name:hover{text-decoration:underline}.job-description{color:var(--ink-muted);font-size:.85rem;display:block}.actions-cell{text-align:right;white-space:nowrap}.badge{border-radius:999px;padding:.15rem .6rem;font-size:.78rem;font-weight:600;display:inline-block}.badge-success{color:#116329;background:#dafbe1}.badge-failed{color:#a40e26;background:#ffebe9}.badge-running{color:#0550ae;background:#ddf4ff}.badge-idle{color:#59636e;background:#eaeef2}.run-button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:6px;padding:.35rem .9rem;font-size:.85rem;font-weight:600}.run-button:hover:not(:disabled){filter:brightness(1.1)}.run-button:disabled{opacity:.5;cursor:default}.run-cell{align-items:center;gap:.5rem;display:inline-flex}.run-note{color:var(--ink-muted);font-size:.8rem}.link-button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.9rem}.link-button:hover{text-decoration:underline}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-direction:column;align-items:center;gap:.75rem;max-width:22rem;padding:2.5rem 3rem;display:flex;box-shadow:0 4px 16px #0000000f}.login-logo{height:2.5rem;margin-bottom:.5rem}.login-button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:6px;width:100%;margin-top:.75rem;padding:.6rem 1rem;font-size:.95rem;font-weight:600}.login-button:hover{filter:brightness(1.1)}.login-error{color:#a40e26;margin:0;font-size:.85rem}.access-denied-button{width:auto;margin-top:1rem}.back-link{color:var(--accent);margin-bottom:1rem;font-size:.9rem;text-decoration:none;display:inline-block}.back-link:hover{text-decoration:underline}.details-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem;display:flex}.section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 .75rem;font-size:.72rem;font-weight:600}
