:root { color-scheme: light; --navy:#12304a; --teal:#167d86; --gold:#d8a522; --paper:#f5f7f8; --ink:#18242c; --line:#d5dce0; --danger:#a42828; }
* { box-sizing:border-box; }
body { margin:0; font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--ink); background:var(--paper); }
.siteHeader { display:flex; align-items:center; gap:.8rem; padding:1rem max(1rem,calc((100% - 1180px)/2)); color:white; background:var(--navy); }
.siteHeader span { display:block; font-size:.8rem; opacity:.8; }
.brandMark { width:3.25rem; height:3.25rem; object-fit:contain; padding:.3rem; border-radius:.6rem; background:#fff; box-shadow:0 0 0 1px #ffffff55; }
.brandLink { display:flex; border-radius:.6rem; }
.brandLink:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
main { max-width:1180px; margin:2rem auto; padding:0 1rem; }
h1,h2 { color:var(--navy); line-height:1.2; }
.panel,.card { background:white; border:1px solid var(--line); border-radius:.8rem; padding:1.25rem; box-shadow:0 2px 8px #12304a10; }
.narrow { max-width:520px; margin:2rem auto; }
.status { padding:.8rem 1rem; border-left:4px solid var(--teal); background:white; }
.status[data-kind="error"] { border-color:var(--danger); color:var(--danger); }
.status[data-kind="success"] { border-color:#247a3a; }
label { display:block; margin:.9rem 0 .3rem; font-weight:650; }
input,textarea,select { width:100%; padding:.75rem; border:1px solid #9eabb3; border-radius:.4rem; background:white; font:inherit; }
input:disabled { color:#78858d; background:#e7eaec; border-color:#c8cfd3; }
textarea { font-family:ui-monospace,"Cascadia Mono",monospace; font-size:.9rem; }
button,.buttonLink { transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease,color .12s ease; }
button { margin:.9rem .45rem 0 0; padding:.7rem 1rem; border:0; border-radius:.45rem; background:var(--navy); color:white; font-weight:700; cursor:pointer; }
button:hover:not(:disabled),.buttonLink:hover { transform:translateY(-1px); box-shadow:0 4px 10px #12304a33; filter:brightness(1.08); }
button:active:not(:disabled),.buttonLink:active { transform:translateY(1px); box-shadow:none; }
button.secondary { color:var(--navy); background:#e7eef1; }
button:disabled { opacity:.5; cursor:not-allowed; }
.formGrid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.checkLabel { display:flex; gap:.55rem; align-items:flex-start; font-weight:500; }
.checkLabel input { width:auto; margin-top:.3rem; }
.personRow { display:grid; grid-template-columns:1fr 2fr; align-items:start; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line); }
.dangerLink { margin:0; color:var(--danger); background:#faeaea; }
.dangerZone { margin-top:1.5rem; padding:1rem; border:1px solid #d9a5a5; border-radius:.6rem; background:#fff8f8; }
.dangerZone h3 { margin-top:0; color:var(--danger); }
.dangerButton { background:var(--danger); }
.actionStatus { margin:1rem 0 0; padding:.75rem 1rem; border-left:4px solid var(--teal); background:#f2f7f8; }
.actionStatus[data-kind="error"] { border-color:var(--danger); color:var(--danger); background:#fff5f5; }
.actionStatus[data-kind="success"] { border-color:#247a3a; color:#185e2a; background:#f2faf4; }
.qrGrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1rem; }
.qrCard { text-align:center; border:1px solid var(--line); border-radius:.6rem; padding:1rem; }
.qrCard canvas { display:block; max-width:100%; height:auto; margin:0 auto 1rem; }
.buttonLink { display:inline-block; padding:.65rem .9rem; border-radius:.45rem; color:white; background:var(--navy); font-weight:700; text-decoration:none; }
details { margin-top:1.4rem; border-top:1px solid var(--line); padding-top:1rem; }
summary { cursor:pointer; font-weight:700; }
.toolbar { display:flex; justify-content:space-between; gap:1rem; align-items:center; margin-bottom:1rem; }
.toolbar h1,.toolbar p { margin:.2rem 0; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); gap:1rem; }
.card h2 { margin-top:0; }
dl { border-top:1px solid var(--line); padding-top:.6rem; }
dt { font-weight:700; text-transform:capitalize; color:var(--navy); }
dd { margin:0 0 .65rem; white-space:pre-wrap; overflow-wrap:anywhere; }
#adminPanel { margin-top:1rem; }
footer { display:flex; justify-content:space-between; gap:2rem; max-width:1180px; margin:1rem auto 0; padding:1.25rem 1rem; border-top:1px solid var(--line); color:#53636d; font-size:.82rem; }
footer div { display:flex; flex-direction:column; gap:.15rem; }
footer strong { color:var(--navy); font-size:.88rem; }
footer a { color:inherit; text-underline-offset:.18em; }
footer a:hover { color:var(--teal); }
.securitySummary { text-align:right; }
@media (max-width:700px) { .toolbar { align-items:flex-start; flex-direction:column; } .toolbar button { margin-top:.35rem; } .formGrid { grid-template-columns:1fr; gap:0; } }
@media (max-width:700px) { footer { flex-direction:column; gap:.75rem; text-align:center; } .securitySummary { text-align:center; } }
@media print {
  @page { margin:14mm; }
  body { background:#fff; color:#000; font-size:10pt; }
  .siteHeader { padding:.5rem 0; color:#000; background:#fff; border-bottom:2px solid #12304a; }
  .brandMark { width:2.4rem; height:2.4rem; box-shadow:none; }
  main { max-width:none; margin:.75rem 0; padding:0; }
  .status,.actions,#adminPanel { display:none !important; }
  .grid { grid-template-columns:repeat(2,1fr); gap:.5rem; }
  .card { break-inside:avoid; box-shadow:none; padding:.75rem; }
  footer { max-width:none; padding:.75rem 0 0; border-top:1px solid #999; color:#333; }
}
