:root{--bg:#f5f6f8;--card:#fff;--text:#1d2330;--muted:#6b7280;--line:#e5e7eb;--brand:#1f7a4d;--brand-2:#e9f6ef;--danger:#c0392b;--warn:#b7791f}
*{box-sizing:border-box}
body{margin:0;font:15px/1.5 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--brand)}
.top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 20px;background:#fff;border-bottom:1px solid var(--line)}
.brand{font-weight:700;text-decoration:none;color:var(--text)}
.top nav{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
main{max-width:1000px;margin:0 auto;padding:20px 16px 60px}
h1{font-size:24px;margin:8px 0 12px}h2{font-size:17px;margin:18px 0 10px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin:0 0 16px}
.card.narrow{max-width:420px;margin:40px auto}.narrow-left{max-width:460px}
.card.job{display:block;text-decoration:none;color:inherit}.card.job:hover{border-color:var(--brand)}
.card.job h2{margin:0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.row{display:flex;align-items:center}.between{justify-content:space-between}.gap{gap:8px;flex-wrap:wrap}
.actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.muted{color:var(--muted)}.small{font-size:13px}
label{display:block;margin:10px 0;font-weight:600;font-size:14px}
label input:not([type=checkbox]),label select,label textarea{display:block;width:100%;margin-top:4px;padding:9px 10px;border:1px solid #cfd4dc;border-radius:8px;font:inherit;font-weight:400;background:#fff}
textarea{font-family:ui-monospace,Consolas,monospace!important;font-size:13px!important}
label small,small.help{display:block;font-weight:400;color:var(--muted);font-size:12.5px;margin:-4px 0 8px}
label.check,.check{display:inline-flex;align-items:center;gap:6px;font-weight:500;margin:6px 14px 6px 0}
.days{display:flex;flex-wrap:wrap}
.field>span{font-weight:600;font-size:14px}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0 14px}
.btn{display:inline-block;padding:9px 14px;border-radius:8px;border:1px solid #cfd4dc;background:#fff;font:inherit;font-weight:600;cursor:pointer}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.danger{background:#fff;border-color:var(--danger);color:var(--danger)}
.btn.ghost{border-color:transparent;color:var(--muted)}
.btn:hover{filter:brightness(.96)}
button.link{background:none;border:0;color:var(--brand);font:inherit;cursor:pointer;padding:0}
form.inline{display:inline}
.flash{padding:10px 14px;border-radius:8px;margin:0 0 16px;border:1px solid}
.flash.ok{background:var(--brand-2);border-color:#b6e2c8}
.flash.err{background:#fdecea;border-color:#f5c2bd}
.flash.warn{background:#fff7e6;border-color:#f6d9a3}
.badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:700;background:#eef0f3;color:#444}
.badge.success{background:#dff3e8;color:#17663f}.badge.failed{background:#fbe0dd;color:#a3271b}
.badge.skipped{background:#fff1d6;color:#8a5a00}.badge.dry{background:#e3ecff;color:#2446a6}.badge.running{background:#ede4ff;color:#5b2fb3}
dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:10px 0}dt{color:var(--muted)}dd{margin:0}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}
tr.clickable{cursor:pointer}tr.clickable:hover{background:#fafbfc}
pre.log{background:#0f172a;color:#e2e8f0;padding:14px;border-radius:8px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:12.5px;max-height:70vh}
details{margin:16px 0;border-top:1px solid var(--line);padding-top:10px}
code{background:#eef0f3;padding:1px 5px;border-radius:4px}
@media (max-width:600px){table thead{display:none}table td{display:block;border:0;padding:2px 0}table tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}}
