:root {
  /* BioTrust palette: black ink on pale sage, pine-green accent (from Jonas's logo). */
  --bg:#eef3e8; --card:#ffffff; --ink:#15211a; --muted:#5d6b5f; --line:#d3ddc9;
  --bar:#e2ebd8; --accent:#2f6b4b; --accent-ink:#fff; --accent-dark:#235138; --neutral:#8d978a;
  --clear:#2f6b4b; --note:#9a7a16; --flag:#b23b2e; --refer:#9a7a16; --approve:#2f6b4b; --deny:#b23b2e;
}
* { box-sizing:border-box; }
body { margin:0; font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; color:var(--ink); background:var(--bg); }
a { color:var(--accent); text-decoration:none; } a:hover { text-decoration:underline; }

.topbar { background:var(--bar); color:var(--ink); padding:12px 22px; display:flex; align-items:center; gap:18px; border-bottom:1px solid var(--line); }
.topbar a { color:var(--ink); opacity:.7; } .topbar a:hover { opacity:1; text-decoration:none; }
.topbar .brand { display:flex; align-items:center; gap:10px; font-weight:700; letter-spacing:.01em; }
.topbar .brand .tag { font-weight:500; font-size:11px; color:var(--muted); border-left:1px solid var(--line); padding-left:10px; letter-spacing:.06em; text-transform:uppercase; }
.topbar .spacer { flex:1; }
.mark { width:26px; height:26px; display:block; color:var(--ink); }

.wrap { max-width:1000px; margin:24px auto; padding:0 20px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:18px 20px; margin-bottom:18px; }
h1 { font-size:22px; margin:0 0 4px; letter-spacing:-.01em; } h2 { font-size:17px; margin:18px 0 8px; } h3 { font-size:15px; margin:14px 0 6px; } h4 { font-size:13.5px; margin:14px 0 4px; }
.muted { color:var(--muted); } .small { font-size:13px; }
table { width:100%; border-collapse:collapse; } th,td { text-align:left; padding:8px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
th { font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); }
label { display:block; font-size:13px; color:var(--muted); margin:10px 0 3px; }
input[type=text],input[type=email],input[type=password],input[type=url],select,textarea {
  width:100%; padding:8px 10px; border:1px solid var(--line); border-radius:8px; font:inherit; background:#fff; color:var(--ink); }
input:focus,select:focus,textarea:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(47,107,75,.15); }
textarea { min-height:64px; resize:vertical; }
.row { display:flex; gap:12px; flex-wrap:wrap; } .row > * { flex:1; min-width:140px; }
button, .btn { background:var(--accent); color:var(--accent-ink); border:0; border-radius:8px; padding:9px 16px; font:inherit; font-weight:600; cursor:pointer; }
button:hover, .btn:hover { background:var(--accent-dark); }
button.secondary, .btn.secondary { background:#e7eede; color:var(--ink); border:1px solid var(--line); }
button.secondary:hover { background:#dde7d2; }
button.danger { background:#fbeceb; color:var(--flag); border:1px solid #e7c4bf; padding:4px 12px; font-size:12px; font-weight:600; }
button.danger:hover { background:#f5dcd8; }
.badge { display:inline-block; padding:2px 9px; border-radius:999px; font-size:12px; font-weight:700; color:#fff; }
.b-CLEAR,.b-APPROVE,.b-supported { background:var(--clear); } .b-NOTE,.b-NEEDS_REVIEW { background:var(--note); }
.b-FLAG,.b-DENY,.b-error { background:var(--flag); } .b-PARTIAL,.b-weakly_supported{ background:var(--neutral);} .b-pending,.b-extracting{ background:var(--neutral);}
.b-STRONG{background:var(--clear);} .b-INSUFFICIENT,.b-unresolved,.b-contradictory{background:var(--flag);} .b-done{background:var(--clear);}
.crit { border:1px solid var(--line); border-radius:10px; padding:12px 14px; margin-bottom:12px; }
.crit .desc { color:var(--muted); font-size:13px; margin-bottom:8px; }
.crit .selects { display:flex; gap:10px; flex-wrap:wrap; } .crit .selects > div { flex:1; min-width:130px; }
.rec { font-size:20px; font-weight:800; }
.subject { border-left:3px solid var(--accent); padding:6px 0 6px 12px; margin:8px 0; }
.notice { background:#e4efd9; border:1px solid #c3d6ad; color:#2f5a2f; padding:10px 14px; border-radius:8px; margin-bottom:16px; }
.flash { background:#fbeceb; border:1px solid #e7bcb6; color:#9a2b1e; padding:8px 12px; border-radius:8px; margin-bottom:12px; }
.login-wrap { max-width:360px; margin:13vh auto; }
.login-wrap .brand { display:flex; align-items:center; gap:12px; margin-bottom:6px; }
.login-wrap .brand h1 { margin:0; } .login-wrap .mark { width:40px; height:40px; }
.kv { display:grid; grid-template-columns:140px 1fr; gap:4px 12px; font-size:14px; }
.kv dt { color:var(--muted); } .kv dd { margin:0; }
.inline { display:flex; gap:10px; align-items:center; }
hr { border:0; border-top:1px solid var(--line); margin:18px 0; }
details.card > summary { cursor:pointer; font-weight:600; font-size:15px; }
details.card[open] > summary { margin-bottom:12px; }
.badge.b-src { background:#5f6f8c; text-transform:lowercase; }
.evlist { list-style:none; padding-left:0; margin:6px 0 14px; }
.evlist li { padding:7px 0; border-bottom:1px solid var(--line); }
.evlist li a { font-weight:600; }
.htmx-indicator { display:none; }
.htmx-request .htmx-indicator, .htmx-request.htmx-indicator { display:inline; }
