:root { color-scheme: light; --ink:#17202a; --muted:#6d7782; --line:#e4e8ec; --soft:#f7f9fb; --blue:#2f6fed; --green:#18794e; --amber:#9a6500; --red:#b54747; }
* { box-sizing: border-box; }
body { margin:0; background:#f1f4f6; color:var(--ink); font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.shell { max-width:1600px; margin:0 auto; padding:28px 32px 56px; }
.topbar { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:24px; }
.eyebrow { margin:0 0 5px; color:var(--blue); font-size:11px; font-weight:700; letter-spacing:.13em; }
h1 { margin:0; font-size:30px; letter-spacing:-.02em; }
.button { border:1px solid #ccd4dc; background:white; color:var(--ink); border-radius:6px; padding:9px 14px; font:inherit; cursor:pointer; }
.button:hover { border-color:var(--blue); color:var(--blue); }.button-primary { border-color:var(--blue); background:var(--blue); color:white; }.button-primary:hover { background:#245dd0; color:white; }
.stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:20px; }
.stat { border:1px solid var(--line); border-left:3px solid #9ca7b1; background:white; padding:15px 18px; }.stat.accent { border-left-color:var(--green); }.stat.blue { border-left-color:var(--blue); }.stat.muted { border-left-color:#8c97a3; }
.stat span { display:block; color:var(--muted); font-size:12px; }.stat strong { display:block; margin-top:3px; font-size:25px; }
.toolbar { display:flex; align-items:end; gap:10px; padding:14px 0; } label { display:grid; gap:5px; color:var(--muted); font-size:12px; font-weight:600; }
input,select { min-width:150px; border:1px solid #ccd4dc; border-radius:5px; background:white; color:var(--ink); padding:8px 9px; font:inherit; } input:focus,select:focus { border-color:var(--blue); outline:2px solid #dbe7ff; }
.run-status { align-self:center; color:var(--muted); margin-left:auto; }.table-wrap { overflow-x:auto; border:1px solid var(--line); background:white; }
table { width:100%; border-collapse:collapse; min-width:1120px; } th { background:var(--soft); color:var(--muted); font-size:11px; letter-spacing:.04em; text-align:left; text-transform:uppercase; white-space:nowrap; } th,td { border-bottom:1px solid var(--line); padding:12px 11px; vertical-align:top; } tbody tr:hover { background:#fbfcfe; }
.project-name { max-width:260px; font-weight:700; }.description { display:block; max-width:260px; margin-top:3px; color:var(--muted); font-size:12px; }.source { font-weight:600; }.subtle { color:var(--muted); font-size:12px; }.links a { color:var(--blue); text-decoration:none; }.links a+a { margin-left:7px; }
.chips { display:flex; flex-wrap:wrap; gap:4px; max-width:190px; }.chip { padding:2px 6px; border-radius:4px; background:#edf2f6; color:#44515c; font-size:11px; }.license { font-weight:700; white-space:nowrap; }.license.blocked { color:var(--red); }.license.allowed { color:var(--green); }
.score { font-weight:800; font-variant-numeric:tabular-nums; }.score.good { color:var(--green); }.score.mid { color:var(--amber); }.score.low { color:var(--red); }.status { display:inline-block; border-radius:4px; padding:3px 7px; font-size:11px; font-weight:700; white-space:nowrap; }.status-candidate { background:#e3f4eb; color:var(--green); }.status-idea { background:#fff3d5; color:var(--amber); }.status-archived { background:#eef1f4; color:var(--muted); }.empty { padding:42px; text-align:center; color:var(--muted); }
@media (max-width:700px) { .shell { padding:20px 14px 40px; }.topbar { align-items:flex-start; flex-direction:column; }.stats { grid-template-columns:repeat(2,1fr); }.toolbar { align-items:stretch; flex-wrap:wrap; }.run-status { width:100%; margin-left:0; }.button-primary { width:100%; } }

