:root { font-family:Inter,Segoe UI,Arial,sans-serif; color:#17212b; background:#f2f5f7; line-height:1.5; }
* { box-sizing:border-box; }
body { margin:0; }
.topbar { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 2rem; background:#102b3f; color:white; }
.brand { font-size:1.35rem; font-weight:760; }
.subtitle { opacity:.76; }
.session { display:flex; gap:.8rem; align-items:center; flex-wrap:wrap; }
.session a { color:#dff4ff; font-weight:700; }
main { max-width:1500px; margin:0 auto; padding:1.4rem; }
.panel { background:white; border:1px solid #d6e0e6; border-radius:12px; padding:1.2rem; box-shadow:0 5px 18px rgba(16,43,63,.06); margin-bottom:1rem; }
.narrow { max-width:480px; margin:3rem auto; }
h1,h2,h3 { margin-top:0; }
p { color:#566a77; }
label { display:block; font-weight:650; margin-bottom:.85rem; }
input,select { display:block; width:100%; padding:.72rem; border:1px solid #b9c7d0; border-radius:7px; font:inherit; background:white; }
label input { margin-top:.35rem; }
button { border:0; border-radius:7px; padding:.72rem 1rem; background:#156b9b; color:white; font-weight:700; cursor:pointer; }
button.secondary { background:#e4edf2; color:#173247; }
.hidden { display:none !important; }
.searchbar { display:grid; grid-template-columns:1fr 2fr 1.2fr auto; gap:.7rem; align-items:end; }
.check { display:flex; align-items:center; gap:.5rem; padding:.65rem; background:#f5f7f9; border-radius:7px; margin:0; }
.check input { width:auto; }
.message { min-height:1.4rem; margin-top:.7rem; white-space:pre-wrap; }
.message.error { color:#a12626; }
.message.success { color:#247a43; }
.chips { display:flex; flex-wrap:wrap; gap:.55rem; }
.chip { background:#e9f2f7; border:1px solid #c4d8e4; border-radius:999px; padding:.45rem .7rem; }
.warning { border-color:#d69b35; background:#fffaf0; }
.conflict { padding:.8rem; border-left:5px solid #b23b3b; background:white; margin:.6rem 0; border-radius:7px; }
.requirements { display:grid; gap:.75rem; }
.requirement { border:1px solid #dbe4ea; border-left:6px solid #277c4e; border-radius:9px; padding:1rem; background:#fbfcfd; }
.requirement h3 { margin-bottom:.35rem; }
.meta { color:#637785; font-size:.87rem; }
.condition { margin-top:.65rem; padding:.7rem; background:#f4f7f9; border-radius:7px; }
.score { float:right; background:#e4f2e9; color:#1d6038; border-radius:999px; padding:.25rem .55rem; font-weight:700; }
@media (max-width:950px) {
  .searchbar { grid-template-columns:1fr; }
  .topbar { padding:1rem; }
  main { padding:1rem; }
}
