
body{font:14px/1.45 system-ui,sans-serif;margin:0;color:#1d2433;background:#f6f7f9}
header{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;padding:.6rem 1rem;background:#1d2433;color:#fff}
header a{color:#cfe1ff;margin-right:.8rem;text-decoration:none} header a:hover{text-decoration:underline}
header form{margin-left:auto} main{max-width:1200px;margin:1rem auto;padding:0 1rem}
table{border-collapse:collapse;width:100%;background:#fff;margin:.5rem 0 1.5rem} th,td{border:1px solid #dde1e7;padding:.35rem .5rem;text-align:left;vertical-align:top}
th{background:#eef1f5} .muted{color:#6b7385} .inline{display:inline}
.tabs{display:flex;gap:1rem;flex-wrap:wrap;margin:1rem 0}.tabs a[aria-current=page]{font-weight:bold;border-bottom:3px solid #1f659d}
.feed-controls table{display:block;max-width:100%;overflow-x:auto}
.feed-controls input,.feed-controls select{box-sizing:border-box;max-width:100%}
.feed-controls form.card>*{min-width:0}
.badge.green{background:#e3f6e8}.badge.amber{background:#fff5d6}.badge.red{background:#fde8e8}
fieldset{border:1px solid #dde1e7}fieldset label{display:inline-flex;margin:.3rem}
.flash{padding:.6rem .8rem;border-radius:4px} .flash.ok{background:#e3f6e8} .flash.error{background:#fde8e8} .flash.warn{background:#fff5d6}
.tiles{display:flex;gap:.8rem;flex-wrap:wrap} .tile{background:#fff;border:1px solid #dde1e7;border-left:6px solid #9aa3b2;padding:.6rem .8rem;min-width:160px}
.tile.ok{border-left-color:#1f9d55} .tile.bad{border-left-color:#d64545} .tile.warn{border-left-color:#d69e2e}
.badge{padding:0 .4rem;border-radius:3px;font-size:12px} .badge.ok,.badge.passed{background:#e3f6e8} .badge.bad,.badge.failed{background:#fde8e8} .badge.skipped{background:#eef1f5}
form.card{background:#fff;border:1px solid #dde1e7;padding:.8rem;margin:.5rem 0 1.5rem;display:flex;gap:.8rem;flex-wrap:wrap;align-items:end}
label{display:flex;flex-direction:column;font-size:12px;gap:.2rem} input,select{font:inherit;padding:.25rem}
code.key{display:block;background:#fff5d6;padding:.6rem;font-size:15px;word-break:break-all;user-select:all}
.chart{background:#fff;border:1px solid #dde1e7;padding:.7rem;margin:.5rem 0 1rem}.chart svg{display:block;width:100%;height:140px;border-bottom:1px solid #9aa3b2}
.chart .col{fill:#1f659d}.chart .col:hover{fill:#d69e2e}.chart figcaption{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:12px;margin-top:.3rem}
.fc-summary{margin:.5rem 0 1rem}.tile-value{font-size:24px;font-weight:600}
.pill{display:inline-block;padding:0 .5rem;border-radius:10px;font-size:12px;border:1px solid transparent;white-space:nowrap}
.pill.ok{background:#e3f6e8;border-color:#1f9d55;color:#14532d}.pill.warn{background:#fff5d6;border-color:#d69e2e;color:#6b4e00}
.pill.bad{background:#fde8e8;border-color:#d64545;color:#8a1c1c}.pill.idle{background:#eef1f5;border-color:#9aa3b2;color:#3b4252}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.8rem;margin:.5rem 0 1.5rem}
.fc-card{background:#fff;border:1px solid #dde1e7;border-top:5px solid #9aa3b2;padding:.7rem .8rem}
.fc-card.ok{border-top-color:#1f9d55}.fc-card.warn{border-top-color:#d69e2e}.fc-card.bad{border-top-color:#d64545}
.fc-card header{background:none;color:inherit;padding:0;justify-content:space-between;align-items:flex-start}
.fc-card h3{margin:0;font-size:16px}.fc-card dl{display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;margin:.6rem 0}
.fc-card dt{color:#6b7385}.fc-card dd{margin:0;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.fc-card meter,.feed-controls td meter{width:100%;max-width:12rem}.chip{display:inline-block;background:#eef1f5;border-radius:3px;padding:0 .35rem;margin:0 .2rem .2rem 0;font-size:12px}
.segbar{display:block;width:100%;height:18px;border-radius:3px;background:#eef1f5}.seg.ok{fill:#1f9d55}.seg.warn{fill:#d69e2e}.seg.bad{fill:#d64545}.seg.idle{fill:#9aa3b2}
.legend{list-style:none;display:flex;gap:.5rem;flex-wrap:wrap;padding:0;margin:.4rem 0 1rem}
.pipeline-strip{display:flex;gap:.5rem;flex-wrap:wrap;align-items:stretch;margin:.5rem 0 1rem}.pipeline-strip>div{background:#fff;border:1px solid #dde1e7;padding:.5rem .8rem}
.matrix td,.matrix th{text-align:center}.matrix td:first-child,.matrix th:first-child{text-align:left}.url{word-break:break-all;font-size:12px}
.effect{margin:0 0 .3rem}
.banner{padding:.7rem 1rem;border-radius:4px;border-left:6px solid #9aa3b2;background:#fff;font-size:15px}.banner.ok{border-left-color:#1f9d55;background:#e3f6e8}.banner.warn{border-left-color:#d69e2e;background:#fff5d6}.banner.bad{border-left-color:#d64545;background:#fde8e8}
.alerts{list-style:none;padding:0;margin:.5rem 0 1rem}.alert{background:#fff;border:1px solid #dde1e7;border-left:5px solid #9aa3b2;padding:.5rem .8rem;margin-bottom:.4rem}.alert.critical{border-left-color:#d64545}.alert.warning{border-left-color:#d69e2e}
.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}
.radio{flex-direction:row;align-items:center;gap:.4rem;font-size:14px}
.scroll{max-height:60vh;overflow:auto;border:1px solid #dde1e7}.scroll table{margin:0}.scroll th{position:sticky;top:0}
pre{white-space:pre-wrap;margin:0;font-size:12px}
.evidence{display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;margin:.5rem 0}.evidence dt{color:#6b7385}.evidence dd{margin:0}
details summary{cursor:pointer}