: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; align-items:center; gap:.9rem; 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);
}
.narrow { max-width:480px; margin:3rem auto; }
.panel-heading { display:flex; justify-content:space-between; gap:1rem; }
h1,h2,h3 { margin-top:0; }
p { color:#566a77; }
label { display:block; font-weight:650; margin-bottom:.85rem; }
input,select {
  width:100%; padding:.75rem; 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:2fr 1fr auto; gap:.65rem; margin:1rem 0; }
.layout { display:grid; grid-template-columns:minmax(320px,.8fr) minmax(0,1.4fr); gap:1rem; }
.results { display:grid; gap:.65rem; align-content:start; max-height:760px; overflow:auto; }
.result-card {
  border:1px solid #dbe4ea; border-left:5px solid #277aa6;
  border-radius:8px; padding:.9rem; cursor:pointer; background:#fbfcfd;
}
.result-card.object { border-left-color:#277c4e; }
.result-card:hover { border-color:#86a7ba; }
.result-card strong { display:block; }
.result-card p { margin:.45rem 0 0; font-size:.92rem; }
.hint,.meta { color:#637785; font-size:.88rem; }
.details {
  border:1px solid #dbe4ea; border-radius:10px; padding:1rem;
  background:#fff; min-height:300px;
}
.section {
  margin:1rem 0; padding:.9rem; border-radius:8px;
  background:#f6f8fa; border:1px solid #dce5eb;
}
.fact-block {
  margin:.7rem 0; padding:.8rem; border-left:4px solid #277aa6;
  background:#f7fbfd;
}
.message { min-height:1.4rem; margin-top:.6rem; white-space:pre-wrap; }
.message.error { color:#a12626; }
.message.success { color:#247a43; }
@media (max-width:900px) {
  .layout,.searchbar { grid-template-columns:1fr; }
  .topbar { padding:1rem; }
  main { padding:1rem; }
}
