@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap");html.dark{--c-accent:#6366F1;--c-accent-fg:#FFFFFF;--c-accent-hover:#5457E0;--c-accent-soft:#818CF8;--c-accent-bg-10:rgba(99,102,241,0.10);--c-accent-bg-15:rgba(99,102,241,0.15);--c-accent-bg-20:rgba(99,102,241,0.20);--c-accent-glow:0 0 24px rgba(99,102,241,0.15);--c-bg:#101014;--c-surface:#1B1B25;--c-surface-2:#1F1F2E;--c-surface-3:#252536;--c-border:#2C2C3A;--c-text:#F1F1F4;--c-text-strong:#F1F1F4;--c-text-secondary:#8A8F98;--c-text-muted:#8A8F98;--c-text-dim:rgba(138,143,152,0.6);--c-success:#3DD68C;--c-warning:#F0C000;--c-error:#EB5757;--c-input-bg:#1B1B25;--c-scrollbar:rgba(255,255,255,0.08);--c-shadow-modal:0 24px 48px rgba(0,0,0,0.4);color-scheme:dark}:root,html.light{--c-accent:#6366F1;--c-accent-fg:#FFFFFF;--c-accent-hover:#5457E0;--c-accent-soft:#818CF8;--c-accent-bg-10:rgba(99,102,241,0.08);--c-accent-bg-15:rgba(99,102,241,0.12);--c-accent-bg-20:rgba(99,102,241,0.18);--c-accent-glow:0 0 24px rgba(99,102,241,0.10);--c-bg:#FAFAFB;--c-surface:#FFFFFF;--c-surface-2:#F4F4F7;--c-surface-3:#ECECF1;--c-border:#E1E1E6;--c-text:#1F1F2E;--c-text-strong:#101014;--c-text-secondary:#6B6F78;--c-text-muted:#8A8F98;--c-text-dim:rgba(138,143,152,0.7);--c-success:#2BB876;--c-warning:#D99F00;--c-error:#D94747;--c-input-bg:#FFFFFF;--c-scrollbar:rgba(0,0,0,0.12);--c-shadow-modal:0 24px 48px rgba(0,0,0,0.10);color-scheme:light}*{box-sizing:border-box}body,html{margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Segoe UI,sans-serif;font-size:14px;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--c-bg);color:var(--c-text)}.mono,code,pre{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--c-scrollbar);border-radius:9999px}a{color:var(--c-accent);text-decoration:none}a:hover{color:var(--c-accent-hover)}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.03em;line-height:1.25}h1{font-size:24px}h2{font-size:16px}h3{font-size:14px}.overline{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--c-text-secondary)}.view{padding:20px 24px 48px;max-width:1180px}.view--wide{max-width:none}.view-head{margin-bottom:20px}.view-head h1{margin-bottom:6px}.view-head p{margin:0;color:var(--c-text-secondary);font-size:13px;line-height:1.5;max-width:80ch}.section{margin-top:32px}.section:first-child{margin-top:0}.section-head,.section>h2{margin-bottom:12px}.section-head{display:flex;align-items:center;gap:8px}.section-head h2{margin:0}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:8px;padding:12px 16px}.card--flush{padding:0;overflow:hidden}.grid{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stat .label{color:var(--c-text-secondary);font-size:12px;font-weight:500}.stat .value{font-size:24px;font-weight:600;letter-spacing:-.03em;margin-top:4px;line-height:1.2}.stat .value.pass{color:var(--c-success)}.stat .value.warn{color:var(--c-warning)}.stat .value.blocked{color:var(--c-error)}.stat .sub{color:var(--c-text-muted);font-size:11px;margin-top:4px}.btn{height:32px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:transparent;border:1px solid var(--c-border);border-radius:6px;color:var(--c-text);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background 50ms,border-color 50ms,color 50ms}.btn:hover:not(:disabled){border-color:var(--c-text-muted)}.btn--primary{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-accent-fg)}.btn--primary:hover:not(:disabled){background:var(--c-accent-hover);border-color:var(--c-accent-hover)}.btn--ghost{border-color:transparent;color:var(--c-text-secondary)}.btn--ghost:hover:not(:disabled){color:var(--c-text);background:var(--c-surface-2);border-color:transparent}.btn--danger{color:var(--c-error);border-color:transparent}.btn--danger:hover:not(:disabled){background:var(--c-surface-2);border-color:var(--c-error)}.btn--sm{height:28px;padding:0 10px;font-size:12px}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.btn-row--end{justify-content:flex-end}input[type=date],input[type=number],input[type=text],select,textarea{height:32px;padding:0 10px;background:var(--c-input-bg);border:1px solid var(--c-border);border-radius:6px;color:var(--c-text);font-family:inherit;font-size:14px;width:100%;outline:none;transition:border-color .1s,box-shadow .1s}select{padding-right:6px}textarea{height:auto;padding:8px 10px}input::placeholder{color:var(--c-text-muted)}input:focus,select:focus,textarea:focus{border-color:var(--c-accent);box-shadow:0 0 0 2px var(--c-accent-bg-15)}input:disabled,select:disabled{opacity:.5;cursor:not-allowed}input[type=checkbox],input[type=radio]{width:auto;height:auto;accent-color:var(--c-accent)}.field{display:block;margin-bottom:14px}.field>span{display:block;margin-bottom:6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--c-text-secondary)}:focus-visible{outline:none;box-shadow:0 0 0 2px var(--c-accent-bg-20)}.chip{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 8px;border-radius:4px;font-size:11px;font-weight:500;background:var(--c-surface-2);color:var(--c-text-secondary);white-space:nowrap}.chip.pass{background:color-mix(in srgb,var(--c-success) 18%,transparent);color:var(--c-success)}.chip.warn{background:color-mix(in srgb,var(--c-warning) 20%,transparent);color:var(--c-warning)}.chip.blocked{background:color-mix(in srgb,var(--c-error) 18%,transparent);color:var(--c-error)}.chip.accent{background:var(--c-accent-bg-15);color:var(--c-accent)}.chip .dot{width:6px;height:6px;background:currentColor}.chip .dot,.circle{border-radius:9999px;flex-shrink:0}.circle{width:14px;height:14px;border:1.5px solid var(--c-text-muted);display:inline-block}.circle.todo{border-style:solid}.circle.backlog{border-style:dotted}.circle.progress{background:linear-gradient(90deg,var(--c-warning) 50%,transparent 50%);border-color:var(--c-warning)}.circle.done{background:var(--c-success);border-color:var(--c-success)}.circle.failed{background:var(--c-error);border-color:var(--c-error)}.kbd{font-family:JetBrains Mono,monospace;font-size:10px;padding:1px 5px;background:var(--c-surface-3);border:1px solid var(--c-border);border-radius:9999px;color:var(--c-text-muted);min-width:20px;text-align:center;display:inline-block}table{width:100%;border-collapse:collapse;font-size:13px}thead th{height:28px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--c-text-secondary);white-space:nowrap}tbody td,thead th{padding:0 12px;border-bottom:1px solid var(--c-border)}tbody td{height:36px}tbody tr{transition:background 50ms}tbody tr:hover{background:var(--c-surface-2)}tbody tr:last-child td{border-bottom:none}td.num,th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.table-wrap{overflow-x:auto}.tbl{border:1px solid var(--c-border);border-radius:8px;overflow:hidden;background:var(--c-surface)}.tbl__scroll{max-height:62vh;overflow:auto}table.data{width:100%;min-width:1020px;table-layout:fixed;border-collapse:collapse;font-size:12px}table.data thead{position:-webkit-sticky;position:sticky;top:0;z-index:1}table.data thead tr{background:var(--c-surface-2)}table.data thead th{padding:9px 10px;font-size:11px;font-weight:600;text-transform:none;letter-spacing:0;color:var(--c-text-secondary);border-bottom:1px solid var(--c-border)}table.data tbody td,table.data thead th{height:auto;text-align:center;white-space:nowrap}table.data tbody td{padding:7px 10px;overflow:hidden;text-overflow:ellipsis;border-bottom:none;color:var(--c-text)}table.data tbody tr{border-top:1px solid var(--c-border)}table.data tbody tr:first-child{border-top:none}table.data tbody tr:hover{background:var(--c-surface-2)}table.data tbody tr.is-selected{background:var(--c-accent-bg-10)}table.data .thumb{width:68px;height:68px;border-radius:6px;object-fit:cover;background:var(--c-surface-2);border:1px solid var(--c-border);display:block;margin:0 auto}table.data .thumb--none{display:grid;place-items:center;font-size:11px;color:var(--c-text-muted)}table.data .l{text-align:left}table.data .r{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.data .c{text-align:center}table.data .dim{color:var(--c-text-secondary)}table.data th .sub{display:block;font-weight:400;color:var(--c-text-muted)}.rows{flex-direction:column}.row,.rows{display:flex}.row{align-items:center;gap:10px;min-height:36px;padding:8px 16px;border-left:2px solid transparent;cursor:default;transition:background 50ms}.row:hover{background:var(--c-surface-2)}.row.selected{background:var(--c-accent-bg-10);border-left-color:var(--c-accent)}.row .ident{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--c-text-muted);flex-shrink:0}.row .title{font-size:14px;font-weight:500;color:var(--c-text-strong)}.row .title a{color:inherit}.row .title a:hover{color:var(--c-accent)}.row .meta{font-size:12px;color:var(--c-text-secondary)}.row .spacer{flex:1 1;min-width:8px}.group-head{gap:8px;padding:8px 16px 4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--c-text-secondary)}.filterbar,.group-head{display:flex;align-items:center}.filterbar{flex-wrap:wrap;gap:8px 16px;padding:10px 12px;margin-bottom:8px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:8px}input.filterbar__search{width:260px;flex:0 0 260px}.fgroup{display:flex;align-items:center;gap:6px}.fgroup__label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-right:2px}.fchip,.fgroup__label{color:var(--c-text-secondary);white-space:nowrap}.fchip{height:24px;padding:0 10px;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--c-border);border-radius:4px;background:transparent;font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:background 50ms,border-color 50ms,color 50ms}.fchip:hover{background:var(--c-surface-2);color:var(--c-text)}.fchip[aria-pressed=true]{background:var(--c-accent-bg-15);border-color:color-mix(in srgb,var(--c-accent) 45%,transparent);color:var(--c-accent)}.fchip .circle,.fchip .dot{flex-shrink:0}.fchip .dot{width:6px;height:6px;border-radius:9999px;background:currentColor}.split{display:grid;grid-template-columns:200px 1fr;grid-gap:16px;gap:16px;align-items:start}@media (max-width:900px){.split{grid-template-columns:1fr}}.facet{margin-bottom:14px}.facet h3{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin:0 0 4px}.facet h3,.facet label{color:var(--c-text-secondary)}.facet label{display:flex;align-items:center;gap:7px;height:26px;padding:0 4px;border-radius:6px;font-size:13px;cursor:pointer;transition:background 50ms}.facet label:hover{background:var(--c-surface-2);color:var(--c-text)}.diff{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--c-border);border-radius:8px;overflow:hidden;background:var(--c-surface)}.diff>*{border-bottom:1px solid var(--c-border);border-right:1px solid var(--c-border)}.diff>:nth-child(3n){border-right:none}.diff>:nth-last-child(-n+3){border-bottom:none}.diff .colhead{padding:10px 14px;background:var(--c-surface-2);font-size:13px;font-weight:500;color:var(--c-text-strong)}.diff .colhead small{display:block;margin-top:2px;font-size:11px;font-weight:400;color:var(--c-text-muted)}.diff .cell{padding:12px 14px;font-size:13px}.diff .cell .k{font-size:11px;font-weight:600;letter-spacing:.05em;margin-bottom:5px}.diff .cell .k,.diff .sub{color:var(--c-text-secondary)}.diff .sub{font-size:12px;margin-top:4px}@media (max-width:1000px){.diff{grid-template-columns:1fr}.diff>*{border-right:none}.diff>:nth-last-child(-n+3){border-bottom:1px solid var(--c-border)}.diff>:last-child{border-bottom:none}}.alert{border-radius:6px;padding:9px 12px;font-size:13px;line-height:1.5;margin:8px 0;border:1px solid}.alert.blocked{background:color-mix(in srgb,var(--c-error) 10%,transparent);border-color:color-mix(in srgb,var(--c-error) 32%,transparent);color:var(--c-error)}.alert.warn{background:color-mix(in srgb,var(--c-warning) 12%,transparent);border-color:color-mix(in srgb,var(--c-warning) 34%,transparent);color:var(--c-warning)}.alert.pass{background:color-mix(in srgb,var(--c-success) 10%,transparent);border-color:color-mix(in srgb,var(--c-success) 30%,transparent);color:var(--c-success)}.alert code{background:color-mix(in srgb,currentColor 14%,transparent);color:inherit}.skeleton-flag{border:1px dashed color-mix(in srgb,var(--c-warning) 45%,transparent);background:color-mix(in srgb,var(--c-warning) 8%,transparent);color:var(--c-warning);border-radius:6px;padding:9px 12px;font-size:12px;margin-bottom:20px}.modal-backdrop{position:fixed;inset:0;z-index:900;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;padding-top:12vh}.modal{width:560px;max-width:92vw;max-height:76vh;background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:12px;box-shadow:var(--c-shadow-modal);overflow-y:auto;padding:20px;height:-moz-fit-content;height:fit-content}.modal h3{font-size:16px;margin:0 0 16px}.modal .kv{display:grid;grid-template-columns:104px 1fr;grid-gap:8px 14px;gap:8px 14px;font-size:13px;margin:14px 0}.modal .kv dt{color:var(--c-text-secondary)}.modal .kv dd{margin:0}.hr{border:none;border-top:1px solid var(--c-border);margin:14px 0}.note{color:var(--c-text-secondary);font-size:12px;margin-top:10px;line-height:1.5}.empty{color:var(--c-text-muted);padding:48px 0;text-align:center;font-size:13px}code{padding:1px 5px;border-radius:4px;font-size:12px}code,pre{background:var(--c-surface-2);color:var(--c-text-secondary)}pre{border:1px solid var(--c-border);border-radius:6px;padding:12px;overflow-x:auto;font-size:11.5px;line-height:1.55;margin:0}pre code{background:none;padding:0}.two-col{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@media (max-width:900px){.two-col{grid-template-columns:1fr}}