:root { --bg:#0f1220; --card:#1a1f36; --fg:#e7e9f3; --muted:#9aa3c0; --accent:#5b8cff; --warn:#ffb454; }
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, sans-serif; background:var(--bg); color:var(--fg); }
header { display:flex; align-items:baseline; gap:1rem; padding:1rem; }
header h1 { margin:0; font-size:1.3rem; }
#generated { color:var(--muted); font-size:.8rem; }
nav { display:flex; gap:.25rem; padding:0 1rem; flex-wrap:wrap; }
nav button { background:var(--card); color:var(--fg); border:0; padding:.5rem .8rem; border-radius:.5rem .5rem 0 0; cursor:pointer; }
nav button.active { background:var(--accent); }
#controls { display:flex; gap:.5rem; padding:1rem; flex-wrap:wrap; }
#controls input[type=search], #controls select { background:var(--card); color:var(--fg); border:1px solid #2a3157; border-radius:.4rem; padding:.5rem; }
main { padding:1rem; display:flex; flex-direction:column; gap:.6rem; }
.card { background:var(--card); border-radius:.6rem; padding:.8rem 1rem; }
.card.new { border-left:3px solid var(--accent); }
.card h3 { margin:0 0 .3rem; font-size:1rem; }
.badge { font-size:.7rem; padding:.1rem .4rem; border-radius:.3rem; background:#2a3157; margin-left:.4rem; }
.meta { color:var(--muted); font-size:.8rem; display:flex; gap:.8rem; flex-wrap:wrap; }
.deadline-soon { color:var(--warn); font-weight:600; }
.score { font-size:.75rem; color:var(--muted); }
a.apply { color:var(--accent); text-decoration:none; }
.warn { color:var(--warn); }
table { width:100%; border-collapse:collapse; font-size:.85rem; }
td, th { text-align:left; padding:.3rem .5rem; border-bottom:1px solid #2a3157; }
