:root{--bg: #0b0e0d;--surface: #111614;--control: #121714;--border: #1f2824;--border-strong: #2a322e;--card-edge: #3a4841;--text: #eef2ef;--text-muted: #b3bcb6;--text-dim: #8e9892;--brand: #47bd69;--brand-hover: #7dd497;--brand-tint: #122017;--warn: #e6c66a;--warn-border: #4a4128;--error: #e8a195;--font: "Rubik", system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 var(--font)}h1{margin:0 0 4px;font-size:22px}h2{margin:0 0 12px;font-size:17px;font-weight:500}code,.mono{font-family:var(--mono);font-size:13px}.page{max-width:1280px;margin:0 auto;padding:0 16px 48px;display:flex;flex-direction:column;gap:16px}.topbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 0;border-bottom:1px solid var(--border)}.spacer{flex:1}.db{font-family:var(--mono);font-size:12px;padding:2px 8px;border:1px solid var(--warn-border);color:var(--warn);border-radius:999px}.card{background:var(--surface);border:1px solid var(--card-edge);border-radius:4px;padding:16px}.narrow{max-width:400px;margin:12vh auto 0;width:calc(100% - 32px)}.center{text-align:center;margin-top:20vh}.form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px;color:var(--text-muted);font-size:14px}.input{font:inherit;color:var(--text);background:var(--control);border:1px solid var(--border-strong);border-radius:10px;padding:10px 12px}.input:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.input.code{font-family:var(--mono);font-size:20px;letter-spacing:4px;text-align:center}.btn{font:inherit;font-weight:500;color:var(--text);background:transparent;border:1px solid var(--border-strong);border-radius:10px;padding:10px 18px;cursor:pointer}.btn:hover{border-color:var(--brand)}.btn:disabled{opacity:.5;cursor:default}.btn--primary{background:var(--brand);border-color:var(--brand);color:#07110a}.btn--primary:hover{background:var(--brand-hover)}.btn--small{padding:6px 12px;font-size:14px}.row{display:flex;gap:8px}.hint{color:var(--text-dim);font-size:14px;margin:0}.form-error{color:var(--error);font-size:14px;margin:0;min-height:1em}.qr{display:flex;flex-direction:column;align-items:center;gap:8px}.qr img{border-radius:6px;background:#fff}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.tile{display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--card-edge);border-radius:4px;padding:14px 16px}.tile--warn{border-color:var(--warn-border)}.tile--warn .tile-value{color:var(--warn)}.tile-label{color:var(--text-muted);font-size:14px}.tile-value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums}.count{color:var(--text-dim);font-weight:400}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:start;color:var(--text-dim);font-weight:500;padding:6px 10px;border-bottom:1px solid var(--border-strong);white-space:nowrap}td{padding:8px 10px;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;white-space:nowrap}.ltr-cell{text-align:end}tr.inactive td,.id{color:var(--text-dim)}.warn{color:var(--warn)}.tag{margin-inline-start:8px;font-size:12px;padding:1px 6px;border:1px solid var(--border-strong);border-radius:999px;color:var(--text-dim)}:root{--st-ok: #47bd69;--st-late: #f0c75e;--st-failed: #d6455d;--st-skipped: #6a8fe8;--pending: #8e9892;--pending-bg: #1c2320}h3{margin:0;font-size:15px;font-weight:500;color:var(--text-muted)}.commands-head,.sub-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.commands-head h2{margin:0}.input--small{padding:6px 10px;font-size:14px;max-width:220px}.commands-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:24px}@media(max-width:1023.98px){.commands-grid{grid-template-columns:minmax(0,1fr)}}.link{font:inherit;font-size:14px;color:var(--brand);background:none;border:0;padding:0;cursor:pointer}.link:hover{color:var(--brand-hover)}.legend{display:flex;flex-wrap:wrap;gap:6px 16px;list-style:none;margin:0 0 8px;padding:0;font-size:14px;color:var(--text-muted)}.legend b,.tooltip b{color:var(--text);font-weight:500;font-variant-numeric:tabular-nums}.swatch{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:-1px}.swatch--ok{background:var(--st-ok)}.swatch--late{background:var(--st-late)}.swatch--failed{background:var(--st-failed)}.swatch--skipped{background:var(--st-skipped)}.swatch--pending{background:repeating-linear-gradient(45deg,var(--pending) 0 2px,var(--pending-bg) 2px 4px)}.chart{position:relative}.chart svg{display:block}.chart .grid{stroke:var(--border);stroke-width:1}.chart .baseline{stroke:var(--border-strong);stroke-width:1}.chart .tick{fill:var(--text-dim);font:11px var(--mono)}.seg--ok{fill:var(--st-ok);background:var(--st-ok)}.seg--late{fill:var(--st-late);background:var(--st-late)}.seg--failed{fill:var(--st-failed);background:var(--st-failed)}.seg--skipped{fill:var(--st-skipped);background:var(--st-skipped)}.seg--pending{fill:url(#hatch);background:repeating-linear-gradient(45deg,var(--pending) 0 2px,var(--pending-bg) 2px 4px)}.chart .hit{fill:transparent}.chart .hover-col{fill:var(--text);opacity:.05}.tooltip{position:absolute;width:170px;display:flex;flex-direction:column;gap:2px;padding:8px 10px;background:var(--control);border:1px solid var(--card-edge);border-radius:6px;font-size:13px;pointer-events:none;box-shadow:0 4px 16px #0006}.tooltip-row{display:flex;align-items:center;gap:6px;color:var(--text-muted)}.tooltip-row b{margin-inline-start:auto}table.days td,table.days th{padding-inline:6px}table.days tr.today td{background:var(--brand-tint)}.num--late{color:var(--st-late)}.num--failed{color:var(--st-failed)}.num--pending{color:var(--pending)}tr.selected td{background:var(--brand-tint)}.problems .sub-head{margin-top:18px}.problems .legend label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.bar-col{width:30%;min-width:80px}.hbar{display:flex;gap:2px;height:10px}.hbar .seg{min-width:2px}.hbar .seg:last-child{border-start-end-radius:3px;border-end-end-radius:3px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}table.days .bar-col{width:25%;min-width:60px}
