/* theme.css: the portal's own stylesheet.
 *
 * Deliberately NOT a copy of sitelib.THEME_CSS. The directory site's theme is
 * generated by Python and changes with it; copying it here would create a
 * second copy to drift. This is a small, self-contained subset that matches
 * the same navy and gold so the portal reads as the same publication.
 */
*, *::before, *::after { box-sizing: border-box; }
:root {
  --gold:#C9A84C; --navy:#1A2550; --navy-2:#22305f;
  --ink:#16192b; --muted:#5a6079; --line:#e3e5ec; --bg:#f6f7fa;
  --ok:#2f855a; --warn:#7a5a09; --bad:#c53030;
}
html { -webkit-text-size-adjust:100%; }
body {
  margin:0; background:var(--bg); color:var(--ink);
  font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
a { color:#1e2f6b; }

.tnav { background:#121a3a; border-bottom:1px solid rgba(201,168,76,.28); }
.tnav-in { max-width:900px; margin:0 auto; padding:13px 18px;
  display:flex; align-items:center; gap:12px; justify-content:space-between; }
.tnav-brand { display:flex; align-items:center; gap:9px; color:#fff;
  text-decoration:none; font-weight:800; }
.tnav-brand .dot { width:9px; height:9px; border-radius:50%;
  background:var(--gold); flex:none; }
.tnav a.out { color:#c9cee4; text-decoration:none; font-size:.86rem; font-weight:600; }
.tnav a.out:hover { color:#fff; }

.hero { background:linear-gradient(168deg,#243256 0%,#1A2550 44%,#101736 100%);
  position:relative; }
.hero-in { max-width:900px; margin:0 auto; padding:38px 18px 34px; }
.eyebrow { margin:0 0 11px; color:var(--gold); font-size:.7rem; font-weight:800;
  letter-spacing:.17em; text-transform:uppercase; }
.hero h1 { margin:0; color:#fdfdff; font-size:clamp(1.6rem,4vw,2.2rem);
  line-height:1.12; letter-spacing:-.018em; font-weight:800; max-width:22ch; }
.hero p { margin:14px 0 0; color:#ccd3ea; max-width:56ch; }
.hero-rule { height:1px; background:linear-gradient(90deg,
  rgba(201,168,76,0), rgba(201,168,76,.85) 22%, rgba(201,168,76,.85) 78%,
  rgba(201,168,76,0)); }

main { max-width:900px; margin:0 auto; padding:26px 18px 40px; }
h2 { margin:26px 0 6px; font-size:1.16rem; letter-spacing:-.01em; }
h3 { margin:18px 0 5px; font-size:1rem; }
p { margin:0 0 11px; }
.muted { color:var(--muted); font-size:.92rem; }

.card { background:#fff; border:1px solid var(--line); border-radius:12px;
  padding:20px 21px; box-shadow:0 1px 2px rgba(20,25,50,.05); margin:0 0 16px; }
.card.gold { border-left:3px solid var(--gold); border-radius:0 12px 12px 0; }
.card.navy { border-left:3px solid var(--navy); border-radius:0 12px 12px 0; }

label { display:block; font-weight:650; font-size:.9rem; margin:0 0 5px;
  color:#20253c; }
input[type=email], input[type=text], input[type=tel], input[type=url],
select, textarea {
  width:100%; padding:10px 12px; border:1px solid #c8cdde; border-radius:8px;
  font:inherit; font-size:.95rem; background:#fff; color:#20253c;
}
textarea { min-height:84px; resize:vertical; }
input:focus, select:focus, textarea:focus {
  outline:2px solid rgba(201,168,76,.55); outline-offset:1px;
  border-color:var(--gold);
}
.field { margin:0 0 14px; }
.hint { margin:5px 0 0; color:var(--muted); font-size:.85rem; }

button, .btn {
  display:inline-block; padding:11px 20px; border-radius:8px; border:0;
  background:var(--navy); color:#fff; font:inherit; font-weight:700;
  font-size:.94rem; cursor:pointer; text-decoration:none;
}
button:hover, .btn:hover { background:#26356e; }
button[disabled] { opacity:.55; cursor:not-allowed; }
.btn2 { background:#eef0f7; color:#2b3a72; border:1px solid #dfe3ee; }
.btn2:hover { background:#e4e8f5; }
.btnrow { display:flex; flex-wrap:wrap; gap:10px; margin:14px 0 0; }

.check { display:flex; gap:10px; align-items:flex-start; margin:14px 0 0; }
.check input { margin-top:4px; flex:none; width:auto; }
.check label { font-weight:500; font-size:.92rem; margin:0; color:#3c4159; }

.badge { display:inline-block; padding:3px 10px; border-radius:999px;
  font-size:.72rem; font-weight:750; letter-spacing:.03em; text-transform:uppercase; }
.b-pending { background:#fdf3d6; color:var(--warn); border:1px solid #f0dca4; }
.b-ok { background:#e3f4ea; color:var(--ok); border:1px solid #bfe3cd; }
.b-bad { background:#fdeaea; color:var(--bad); border:1px solid #f3c9c9; }

.msg { margin:14px 0 0; padding:12px 14px; border-radius:8px; font-size:.93rem; }
.msg.ok { background:#e3f4ea; color:#1f5a3c; border:1px solid #bfe3cd; }
.msg.err { background:#fdeaea; color:#8a2020; border:1px solid #f3c9c9; }
.msg.info { background:#eef1fa; color:#26356e; border:1px solid #d3dbf4; }
.hidden { display:none !important; }

.results { margin:12px 0 0; display:grid; gap:9px; }
.hit { display:flex; flex-wrap:wrap; gap:10px; align-items:center;
  justify-content:space-between; padding:12px 14px; background:#fbfbfd;
  border:1px solid var(--line); border-radius:10px; }
.hit b { display:block; }
.hit .where { color:var(--muted); font-size:.87rem; }

table.kv { width:100%; border-collapse:collapse; font-size:.93rem; }
table.kv th, table.kv td { text-align:left; padding:8px 10px;
  border-bottom:1px solid var(--line); vertical-align:top; }
table.kv th { color:#20253c; font-weight:650; width:34%; }
table.kv td { color:#3c4159; overflow-wrap:anywhere; }

footer { background:#0f1631; color:#8d97b8; font-size:.85rem; }
.foot-in { max-width:900px; margin:0 auto; padding:22px 18px;
  display:flex; flex-wrap:wrap; gap:12px 22px; justify-content:space-between; }
footer a { color:#c2cbe6; }
.foot-links { display:flex; flex-wrap:wrap; gap:14px; }

@media (max-width:560px) {
  .hero-in { padding:28px 16px 26px; }
  table.kv th { width:auto; }
  table.kv, table.kv tbody, table.kv tr, table.kv th, table.kv td { display:block; }
  table.kv th { border-bottom:0; padding-bottom:0; }
}
