/* Generated by tools/build-css.mjs — do not edit by hand.
   Regenerate with: npm run build:css                                     */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; border: 0 solid #e2e5f1; }
html { -webkit-text-size-adjust: 100%; }
body {
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  background: #f2f4fb;
  color: #1b1f33;
  min-height: 100vh;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3 { font-family: 'Fraunces', Georgia, serif; font-weight: 500; letter-spacing: -0.01em; line-height: 1.2; }
button { font-family: inherit; cursor: pointer; background: none; color: inherit; }
input, select, textarea { font-family: inherit; font-size: 0.95rem; color: inherit; }
a { color: inherit; }
img, svg, canvas { display: block; max-width: 100%; }
svg { stroke: currentColor; fill: none; }
table { border-collapse: collapse; }
:focus-visible { outline: 3px solid #2f3a82; outline-offset: 2px; }
[hidden] { display: none !important; }

.nav-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.nav-item .nav-icon svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
}

.tab {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  font-size: 0.75rem;
}

.tab-icon svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
}

/* ---- buttons ---- */
.btn {
  display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;border-radius:9999px;padding-left:1.5rem;padding-right:1.5rem;padding-top:0.75rem;padding-bottom:0.75rem;font-size:0.875rem;line-height:1.25rem;font-weight:600;transition-property:color,background-color,border-color,opacity,box-shadow,transform,filter;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms;
  border: none;
}
.btn:active { transform: translateY(1px); }
.btn[disabled] { opacity: .55; cursor: not-allowed; }
.btn-dark { background-color:#171e52;color:#f2f4fb; }
.btn-dark:hover:not([disabled]) { filter: brightness(1.35); }
.btn-sage { background-color:#d3ddf3;color:#171e52; }
.btn-sage:hover:not([disabled]) { filter: brightness(.96); }
.btn-ghost { border-width:1px;border-style:solid;border-color:#e2e5f1;background-color:transparent;color:#171e52; }
.btn-ghost:hover:not([disabled]) { background-color:#e7ecfb; }
.btn-danger { background-color:#f6e4e2;color:#b3453d; }
.btn-danger:hover:not([disabled]) { filter: brightness(.96); }
.btn-sm { padding-left:1rem;padding-right:1rem;padding-top:0.5rem;padding-bottom:0.5rem;font-size:0.75rem;line-height:1rem; }
.btn-full { width:100%; }

.mini-btn {
  display:inline-flex;align-items:center;border-radius:9999px;background-color:#e3f0e7;padding-left:1rem;padding-right:1rem;padding-top:0.5rem;padding-bottom:0.5rem;font-size:0.75rem;line-height:1rem;font-weight:600;color:#3c7d52;white-space:nowrap;
}
.mini-btn:hover { filter: brightness(.95); }
.mini-btn-info { background-color:#e2ebf5;color:#3d6ea5; }

.icon-btn {
  display:inline-flex;height:2.25rem;width:2.25rem;align-items:center;justify-content:center;border-radius:9999px;border-width:1px;border-style:solid;border-color:#e2e5f1;background-color:#ffffff;color:#6e7599;transition-property:color,background-color,border-color,opacity,box-shadow,transform,filter;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms;
}
.icon-btn:hover { border-color:#171e52;color:#171e52; }
.icon-btn-del:hover { border-color:#b3453d;color:#b3453d; }
.icon-btn svg { width: 14px; height: 14px; stroke-width: 2; }

.link-btn { font-size:0.875rem;line-height:1.25rem;font-weight:600;color:#3c7d52; }
.link-btn:hover { text-decoration-line:underline; }

/* ---- surfaces ---- */
.panel { overflow:hidden;border-radius:18px;background-color:#ffffff;box-shadow:0 10px 30px rgba(23,30,82,.08); }
.panel-head { display:flex;align-items:center;justify-content:space-between;gap:0.75rem;border-bottom-width:1px;border-style:solid;border-color:#e2e5f1;padding-left:1.5rem;padding-right:1.5rem;padding-top:1rem;padding-bottom:1rem; }
.panel-head h2 { font-size:1.125rem;line-height:1.75rem;color:#171e52; }

.stat {
  cursor:pointer;border-radius:18px;border-width:1px;border-style:solid;border-color:transparent;background-color:#ffffff;padding:1.25rem;box-shadow:0 10px 30px rgba(23,30,82,.08);transition-property:color,background-color,border-color,opacity,box-shadow,transform,filter;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms;
  width: 100%;

  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.stat:hover { border-color:#e2e5f1; transform: translateY(-2px); }
.stat-chip { margin-bottom:0.75rem;display:flex;height:2.5rem;width:2.5rem;align-items:center;justify-content:center;border-radius:0.75rem; }
.stat-chip svg { width: 18px; height: 18px; stroke-width: 2; }
.stat-label { font-size:0.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:#6e7599; }
.stat-value { font-family:Fraunces,Georgia,serif;font-size:2.25rem;line-height:2.5rem;color:#171e52; line-height: 1.15; }

.empty { padding-left:1.25rem;padding-right:1.25rem;padding-top:2.75rem;padding-bottom:2.75rem;text-align:center;font-size:0.875rem;line-height:1.25rem;color:#6e7599; }
.empty strong { margin-bottom:0.375rem;display:block;font-family:Fraunces,Georgia,serif;font-size:1.125rem;line-height:1.75rem;color:#171e52; }

/* ---- pills ---- */
.pill { display:inline-block;border-radius:9999px;padding-left:0.75rem;padding-right:0.75rem;padding-top:0.25rem;padding-bottom:0.25rem;font-size:0.75rem;line-height:1rem;font-weight:600;white-space:nowrap; }
.pill-paid, .pill-active { background-color:#e3f0e7;color:#3c7d52; }
.pill-pending, .pill-due { background-color:#f7edd7;color:#a8720f; }
.pill-expired { background-color:#f6e4e2;color:#b3453d; }
.pill-hold { background-color:#e2ebf5;color:#3d6ea5; }
.pill-none { background-color:#e7ecfb;color:#6e7599; }

/* ---- form fields ---- */
.field { display:flex;flex-direction:column;gap:0.375rem; }
.field > label { font-size:0.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:#6e7599; }
.field .req { color:#b3453d; }
.field input, .field select, .field textarea {
  width:100%;border-radius:0.75rem;border-width:1px;border-style:solid;border-color:#e2e5f1;background-color:#ffffff;padding-left:1rem;padding-right:1rem;padding-top:0.75rem;padding-bottom:0.75rem;
}
.field input:focus, .field select:focus, .field textarea:focus { outline: 2px solid #171e52; }
.field-full { grid-column:1 / -1; }

.pill-input { border-radius:9999px;border-width:1px;border-style:solid;border-color:#e2e5f1;background-color:#ffffff;padding-left:1rem;padding-right:1rem;padding-top:0.75rem;padding-bottom:0.75rem; }

.search-box { position:relative;min-width:190px;flex:1 1 0%; }
.search-box input { width:100%;border-radius:9999px;border-width:1px;border-style:solid;border-color:#e2e5f1;background-color:#ffffff;padding-top:0.75rem;padding-bottom:0.75rem;padding-left:2.5rem;padding-right:1rem; }
.search-box input:focus { outline: 2px solid #171e52; }
.search-box svg { position:absolute;left:1rem;height:1rem;width:1rem;color:#6e7599; top: 50%; transform: translateY(-50%); stroke-width: 2; }

.form-error { display:none;border-radius:0.75rem;background-color:#f6e4e2;padding-left:1rem;padding-right:1rem;padding-top:0.75rem;padding-bottom:0.75rem;font-size:0.875rem;line-height:1.25rem;color:#b3453d; }
.form-error.is-shown { display:block; }

/* ---- tables ---- */
.data-table { width:100%; border-collapse: collapse; }
.data-table thead th {
  border-bottom-width:1px;border-style:solid;border-color:#e2e5f1;background-color:#e7ecfb;padding-left:1rem;padding-right:1rem;padding-top:0.75rem;padding-bottom:0.75rem;text-align:left;font-size:0.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:0.025em;color:#6e7599;white-space:nowrap;
}
.data-table tbody td { border-bottom-width:1px;border-style:solid;border-color:#e2e5f1;padding-left:1rem;padding-right:1rem;padding-top:0.875rem;padding-bottom:0.875rem;font-size:0.875rem;line-height:1.25rem;vertical-align:middle; }
.data-table tbody tr:last-child td { border-bottom: none; }
.data-table tbody tr:hover { background-color:#e7ecfb; }
.mono { font-size:0.875rem;line-height:1.25rem;font-weight:600;color:#171e52;white-space:nowrap; }
.dim { font-size:0.875rem;line-height:1.25rem;color:#6e7599; overflow-wrap: break-word; }
.row-actions { display:flex;justify-content:flex-end;gap:0.375rem; }

/* ---- member rows & mobile cards ---- */
.mrow { display:flex;align-items:center;gap:0.75rem;border-bottom-width:1px;border-style:solid;border-color:#e2e5f1;padding-left:1.5rem;padding-right:1.5rem;padding-top:0.875rem;padding-bottom:0.875rem; }
.mrow:last-child { border-bottom: none; }
.avatar {
  display:flex;height:2.5rem;width:2.5rem;flex:none;align-items:center;justify-content:center;border-radius:9999px;background-color:#d3ddf3;font-size:0.75rem;line-height:1rem;font-weight:600;color:#171e52;
}
.avatar-sm { height:2rem;width:2rem;font-size:0.6875rem;line-height:1rem; }
.mrow-who { min-width:0px;flex:1 1 0%; }
.mrow-name { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:0.875rem;line-height:1.25rem;font-weight:600; }
.mrow-meta { font-size:0.75rem;line-height:1rem;color:#6e7599; }

.mcard { border-radius:18px;background-color:#ffffff;padding:1rem;box-shadow:0 10px 30px rgba(23,30,82,.08); }
.mcard-top { margin-bottom:0.375rem;display:flex;justify-content:space-between;gap:0.5rem; }
.mcard-grid { margin-top:0.625rem;margin-bottom:0.625rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:0.75rem;row-gap:0.5rem;font-size:0.875rem;line-height:1.25rem; }
.mcard-k { margin-bottom:0.125rem;font-size:0.6875rem;line-height:1rem;text-transform:uppercase;letter-spacing:0.025em;color:#6e7599; }
.mcard-foot { margin-top:0.75rem;display:flex;gap:0.5rem; }
.mcard-foot .btn { flex:1 1 0%;padding-left:0.75rem;padding-right:0.75rem;padding-top:0.5rem;padding-bottom:0.5rem;font-size:0.75rem;line-height:1rem; }

/* ---- overlays ---- */
.overlay {
  position:fixed;inset:0px;z-index:50;display:none;align-items:flex-start;justify-content:center;overflow-y:auto;padding-left:1rem;padding-right:1rem;padding-top:1.5rem;padding-bottom:1.5rem;
  background: rgba(27, 31, 51, .55);
}
.overlay.is-open { display:flex; }
.modal { width:100%;max-width:36rem;border-radius:1.5rem;background-color:#f2f4fb;padding:2rem;box-shadow:0 30px 70px rgba(0,0,0,.35); margin: auto 0; }
.modal h2 { margin-bottom:1.25rem;font-size:1.5rem;line-height:2rem;color:#171e52; }
.modal-actions { margin-top:1.5rem;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:0.625rem; }
.modal-scroll { max-height:70vh;overflow-y:auto; margin: 0 -6px; padding: 0 6px; }

/* ---- detail grids ---- */
.kv-grid { margin-bottom:1rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem;row-gap:0.625rem; }
.kv-k { margin-bottom:0.125rem;font-size:0.6875rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:0.025em;color:#6e7599; }
.kv-v { font-size:0.875rem;line-height:1.25rem; overflow-wrap: break-word; }
.sect-label {
  margin-bottom:0.625rem;margin-top:0.875rem;display:inline-block;border-radius:9999px;background-color:#d3ddf3;padding-left:0.75rem;padding-right:0.75rem;padding-top:0.25rem;padding-bottom:0.25rem;font-size:0.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:0.1em;color:#171e52;
}
.hq { display:flex;justify-content:space-between;gap:0.625rem;border-bottom-width:1px;border-style:solid;border-color:#e2e5f1;padding-top:0.5rem;padding-bottom:0.5rem;font-size:0.875rem;line-height:1.25rem; }
.hq:last-child { border-bottom: none; }
.attach-row { display:flex;align-items:center;gap:0.625rem;border-bottom-width:1px;border-style:solid;border-color:#e2e5f1;padding-top:0.625rem;padding-bottom:0.625rem;font-size:0.875rem;line-height:1.25rem; }
.attach-row:last-child { border-bottom: none; }
.attach-row .fn { min-width:0px;flex:1 1 0%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }

.hist-grid { margin-top:0.25rem;display:flex;flex-wrap:wrap;gap:0.375rem; }
.hist-cell { border-radius:0.5rem;padding-left:0.625rem;padding-right:0.625rem;padding-top:0.375rem;padding-bottom:0.375rem;text-align:center;font-size:0.6875rem;line-height:1rem;font-weight:600; min-width: 64px; }
.hist-cell small { margin-bottom:1px;display:block;font-size:0.6875rem;line-height:1rem;font-weight:400; opacity: .75; }
.hist-paid { background-color:#e3f0e7;color:#3c7d52; }
.hist-unpaid { background-color:#f6e4e2;color:#b3453d; }
.hist-pending { background-color:#f7edd7;color:#a8720f; }
.hist-none { background-color:#e7ecfb;color:#6e7599; }

.audit-row { display:flex;align-items:baseline;gap:0.75rem;border-bottom-width:1px;border-style:solid;border-color:#e2e5f1;padding-top:0.625rem;padding-bottom:0.625rem;font-size:0.875rem;line-height:1.25rem; }
.audit-row:last-child { border-bottom: none; }
.audit-row .t { font-size:0.75rem;line-height:1rem;color:#6e7599;white-space:nowrap; min-width: 112px; }
.audit-row .w { font-weight:600;color:#171e52;white-space:nowrap; }

/* ---- navigation ---- */
.nav-item {
  display:flex;width:100%;align-items:center;gap:0.75rem;border-radius:0.75rem;padding-left:0.875rem;padding-right:0.875rem;padding-top:0.75rem;padding-bottom:0.75rem;text-align:left;font-size:0.875rem;line-height:1.25rem;font-weight:500;color:#c0c7e6;transition-property:color,background-color,border-color,opacity,box-shadow,transform,filter;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms;
}
.nav-item svg { width: 17px; height: 17px; flex: none; stroke-width: 2; }
.nav-item:hover { color: #fff; background: rgba(255, 255, 255, .07); }
.nav-item.is-on { background-color:#f2f4fb;font-weight:600;color:#171e52; }
.nav-badge {
  margin-left:auto;border-radius:9999px;background-color:#b3453d;padding-left:0.5rem;padding-right:0.5rem;padding-top:0.125rem;padding-bottom:0.125rem;text-align:center;font-size:0.6875rem;line-height:1rem;font-weight:600;color:#ffffff;
  min-width: 20px;
}
.tab {
  position:relative;display:flex;flex-direction:column;align-items:center;gap:0.25rem;border-radius:0.75rem;padding-left:0.5rem;padding-right:0.5rem;padding-top:0.5rem;padding-bottom:0.5rem;font-size:0.6875rem;line-height:1rem;font-weight:600;color:#6e7599;white-space:nowrap;
  flex: 1 0 auto; min-width: 52px;
}
.tab svg { width: 19px; height: 19px; stroke-width: 2; }
.tab.is-on { background-color:#e7ecfb;color:#171e52; }
.tab .nav-badge { position:absolute; top: 2px; right: 16%; margin: 0; padding: 1px 6px; }

/* ---- toast ---- */
.toast {
  position:fixed;left:50%;z-index:50;border-radius:9999px;background-color:#171e52;padding-left:1.5rem;padding-right:1.5rem;padding-top:0.75rem;padding-bottom:0.75rem;font-size:0.875rem;line-height:1.25rem;color:#f2f4fb;box-shadow:0 10px 30px rgba(23,30,82,.08);
  bottom: 24px; opacity: 0; transform: translateX(-50%) translateY(90px); transition: .25s;
  pointer-events: none;
}
.toast.is-shown { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ---- water-testing widgets ---- */
.pt-box { border-radius:1rem;border-width:1px;border-style:solid;border-color:#e2e5f1;padding:1rem; }
.pt-box-label { margin-bottom:0.75rem;font-size:0.75rem;line-height:1rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:#171e52; }
.pt-box-grid { display:grid;gap:0.625rem; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); }
.pt-box-grid .field input { text-align:center; }
.pt-grid { display:grid;gap:1rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.pt-form { display:grid;align-items:flex-end;gap:0.75rem; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.pt-li { margin-top:0.875rem;display:flex;align-items:center;justify-content:space-between;gap:0.625rem;border-top-width:1px;border-style:solid;border-style:dashed;border-color:#e2e5f1;padding-top:0.75rem;font-size:0.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:0.025em;color:#171e52; }
.pt-check { display:inline-flex;cursor:pointer;align-items:center;gap:0.5rem;font-size:0.875rem;line-height:1.25rem;font-weight:500; }
.pt-check input { height:1.25rem;width:1.25rem;flex:none;cursor:pointer;accent-color:#171e52; }
.pt-prow { display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0.625rem;border-radius:0.75rem;border-width:1px;border-style:solid;border-color:#e2e5f1;background-color:#ffffff;padding-left:0.875rem;padding-right:0.875rem;padding-top:0.625rem;padding-bottom:0.625rem; }
.banner { margin-bottom:1rem;border-radius:18px;background-color:#ffffff;padding-left:1.25rem;padding-right:1.25rem;padding-top:0.875rem;padding-bottom:0.875rem;box-shadow:0 10px 30px rgba(23,30,82,.08); border-left: 5px solid #e2e5f1; }
.banner-good { border-left-color: #3c7d52; }
.banner-warn { border-left-color: #a8720f; }
.banner-bad { border-left-color: #b3453d; }

/* ---- public forms (register / guests) ---- */
.hero {
  padding-left:1.25rem;padding-right:1.25rem;text-align:center;color:#f2f4fb;
  padding-top: clamp(40px, 7vw, 72px); padding-bottom: clamp(40px, 7vw, 72px);
  background:
    radial-gradient(900px 500px at 90% -20%, #2f3a82 0%, transparent 60%),
    radial-gradient(700px 450px at -10% 120%, #10143a 0%, transparent 55%),
    #171e52;
}
.auth-bg {
  display:flex;min-height:100vh;align-items:center;justify-content:center;padding:1.5rem;
  background:
    radial-gradient(1000px 600px at 85% -10%, #2f3a82 0%, transparent 60%),
    radial-gradient(800px 500px at -10% 110%, #10143a 0%, transparent 55%),
    #171e52;
}
.auth-card { width:100%;max-width:28rem;border-radius:1.5rem;background-color:#f2f4fb;padding-left:2.25rem;padding-right:2.25rem;padding-top:2.75rem;padding-bottom:2.75rem;text-align:center;box-shadow:0 30px 70px rgba(0,0,0,.35); }
.auth-card h1 { margin-bottom:0.5rem;font-size:1.875rem;line-height:2.25rem;color:#171e52; }
.auth-card input { margin-bottom:0.75rem;width:100%;border-radius:9999px;border-width:1px;border-style:solid;border-color:#e2e5f1;background-color:#ffffff;padding-left:1rem;padding-right:1rem;padding-top:0.875rem;padding-bottom:0.875rem;text-align:center; }
.auth-card input:focus { outline: 2px solid #171e52; }
.eyebrow { margin-bottom:0.625rem;font-size:0.6875rem;line-height:1rem;text-transform:uppercase;color:#6e7599; letter-spacing: .35em; }

.step-chip { margin-bottom:0.75rem;display:inline-block;border-radius:9999px;background-color:#d3ddf3;padding-left:0.75rem;padding-right:0.75rem;padding-top:0.25rem;padding-bottom:0.25rem;font-size:0.6875rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:0.1em;color:#171e52; }
.qrow { display:flex;align-items:center;gap:0.75rem;border-bottom-width:1px;border-style:solid;border-color:#e2e5f1;padding-top:0.75rem;padding-bottom:0.75rem; }
.qrow:last-of-type { border-bottom: none; }
.qrow .qn { flex:none;font-family:Fraunces,Georgia,serif;color:#171e52; width: 24px; }
.qrow .qt { flex:1 1 0%;font-size:0.875rem;line-height:1.25rem; line-height: 1.45; }
.seg { display:flex;flex:none;gap:0.375rem; }
.seg label { cursor:pointer; }
.seg input { position: absolute; opacity: 0; pointer-events: none; }
.seg span { display:inline-block;border-radius:9999px;border-width:1px;border-style:solid;border-color:#e2e5f1;background-color:#ffffff;padding-left:1rem;padding-right:1rem;padding-top:0.5rem;padding-bottom:0.5rem;font-size:0.75rem;line-height:1rem;font-weight:600;color:#6e7599; }
.seg input:checked + span.yes { background-color:#f6e4e2;color:#b3453d; border-color: #b3453d; }
.seg input:checked + span.no { background-color:#e3f0e7;color:#3c7d52; border-color: #3c7d52; }
.seg input:focus-visible + span { outline: 3px solid #2f3a82; outline-offset: 2px; }
.check-row { display:flex;align-items:flex-start;gap:0.75rem;padding-top:0.75rem;padding-bottom:0.75rem;font-size:0.875rem;line-height:1.25rem; line-height: 1.55; }
.check-row input { height:1.25rem;width:1.25rem;flex:none;accent-color:#171e52; margin-top: 2px; }
.honeypot { position: absolute; left: -9999px; opacity: 0; height: 0; overflow: hidden; }

.pw-meter { margin-top:0.25rem;height:0.375rem;width:100%;overflow:hidden;border-radius:9999px;background-color:#e2e5f1; }
.pw-meter span { display:block;height:100%;border-radius:9999px;transition-property:color,background-color,border-color,opacity,box-shadow,transform,filter;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms; width: 0; background: #b3453d; }

/* --- utilities --- */
.block{display:block}
.flex{display:flex}
.grid{display:grid}
.hidden{display:none}
.inline-flex{display:inline-flex}
.inline{display:inline}
.table{display:table}
.absolute{position:absolute}
.fixed{position:fixed}
.relative{position:relative}
.sticky{position:sticky}
.bottom-0{bottom:0px}
.bottom-8{bottom:2rem}
.left-0{left:0px}
.left-1\/2{left:50%}
.left-6{left:1.5rem}
.right-0{right:0px}
.right-2{right:0.5rem}
.right-6{right:1.5rem}
.top-0{top:0px}
.top-1\/2{top:50%}
.top-2{top:0.5rem}
.z-40{z-index:40}
.overflow-hidden{overflow:hidden}
.overflow-x-auto{overflow-x:auto}
.flex-col{flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.flex-1{flex:1 1 0%}
.flex-none{flex:none}
.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.col-span-2{grid-column:span 2 / span 2}
.gap-1{gap:0.25rem}
.gap-1\.5{gap:0.375rem}
.gap-2{gap:0.5rem}
.gap-2\.5{gap:0.625rem}
.gap-3{gap:0.75rem}
.gap-3\.5{gap:0.875rem}
.gap-4{gap:1rem}
.justify-between{justify-content:space-between}
.items-center{align-items:center}
.items-end{align-items:flex-end}
.w-\[232px\]{width:232px}
.h-\[170px\]{height:170px}
.h-screen{height:100vh}
.min-w-\[180px\]{min-width:180px}
.min-w-\[220px\]{min-width:220px}
.min-w-0{min-width:0px}
.min-h-screen{min-height:100vh}
.max-w-\[160px\]{max-width:160px}
.max-w-2xl{max-width:42rem}
.max-w-3xl{max-width:48rem}
.max-w-lg{max-width:32rem}
.max-w-md{max-width:28rem}
.max-w-xl{max-width:36rem}
.max-h-\[60vh\]{max-height:60vh}
.mx-auto{margin-left:auto;margin-right:auto}
.my-2{margin-top:0.5rem;margin-bottom:0.5rem}
.-mt-6{margin-top:-1.5rem}
.mb-1{margin-bottom:0.25rem}
.mb-16{margin-bottom:4rem}
.mb-2{margin-bottom:0.5rem}
.mb-2\.5{margin-bottom:0.625rem}
.mb-3{margin-bottom:0.75rem}
.mb-4{margin-bottom:1rem}
.mb-5{margin-bottom:1.25rem}
.mb-6{margin-bottom:1.5rem}
.ml-1{margin-left:0.25rem}
.ml-2{margin-left:0.5rem}
.ml-5{margin-left:1.25rem}
.mt-1{margin-top:0.25rem}
.mt-1\.5{margin-top:0.375rem}
.mt-2\.5{margin-top:0.625rem}
.mt-3{margin-top:0.75rem}
.mt-4{margin-top:1rem}
.mt-5{margin-top:1.25rem}
.mt-6{margin-top:1.5rem}
.p-10{padding:2.5rem}
.p-4{padding:1rem}
.p-5{padding:1.25rem}
.p-6{padding:1.5rem}
.px-2{padding-left:0.5rem;padding-right:0.5rem}
.px-3{padding-left:0.75rem;padding-right:0.75rem}
.px-3\.5{padding-left:0.875rem;padding-right:0.875rem}
.px-4{padding-left:1rem;padding-right:1rem}
.px-5{padding-left:1.25rem;padding-right:1.25rem}
.px-6{padding-left:1.5rem;padding-right:1.5rem}
.py-1\.5{padding-top:0.375rem;padding-bottom:0.375rem}
.py-2{padding-top:0.5rem;padding-bottom:0.5rem}
.py-2\.5{padding-top:0.625rem;padding-bottom:0.625rem}
.py-3{padding-top:0.75rem;padding-bottom:0.75rem}
.py-3\.5{padding-top:0.875rem;padding-bottom:0.875rem}
.py-6{padding-top:1.5rem;padding-bottom:1.5rem}
.pb-2{padding-bottom:0.5rem}
.pb-24{padding-bottom:6rem}
.pb-3{padding-bottom:0.75rem}
.pt-4{padding-top:1rem}
.font-display{font-family:Fraunces,Georgia,serif}
.text-2xl{font-size:1.5rem;line-height:2rem}
.text-2xs{font-size:0.6875rem;line-height:1rem}
.text-3xl{font-size:1.875rem;line-height:2.25rem}
.text-4xl{font-size:2.25rem;line-height:2.5rem}
.text-base{font-size:1rem;line-height:1.5rem}
.text-lg{font-size:1.125rem;line-height:1.75rem}
.text-sm{font-size:0.875rem;line-height:1.25rem}
.text-xl{font-size:1.25rem;line-height:1.75rem}
.text-xs{font-size:0.75rem;line-height:1rem}
.font-semibold{font-weight:600}
.leading-relaxed{line-height:1.625}
.tracking-normal{letter-spacing:0em}
.tracking-ultra{letter-spacing:0.28em}
.tracking-wider{letter-spacing:0.05em}
.normal-case{text-transform:none}
.uppercase{text-transform:uppercase}
.text-center{text-align:center}
.text-left{text-align:left}
.text-bad{color:#b3453d}
.text-cream{color:#f2f4fb}
.text-good{color:#3c7d52}
.text-info{color:#3d6ea5}
.text-muted{color:#6e7599}
.text-navy{color:#171e52}
.text-onnavy{color:#c0c7e6}
.text-warn{color:#a8720f}
.no-underline{text-decoration-line:none}
.underline{text-decoration-line:underline}
.list-decimal{list-style-type:decimal}
.bg-bad-soft{background-color:#f6e4e2}
.bg-good-soft{background-color:#e3f0e7}
.bg-info-soft{background-color:#e2ebf5}
.bg-navy{background-color:#171e52}
.bg-sage-soft{background-color:#e7ecfb}
.bg-warn-soft{background-color:#f7edd7}
.bg-white{background-color:#ffffff}
.border{border-width:1px;border-style:solid}
.border-b{border-bottom-width:1px;border-style:solid}
.border-t{border-top-width:1px;border-style:solid}
.border-dashed{border-style:dashed}
.border-line{border-color:#e2e5f1}
.border-white{border-color:#ffffff}
.rounded-2xl{border-radius:1rem}
.rounded-full{border-radius:9999px}
.rounded-xl{border-radius:0.75rem}
.cursor-crosshair{cursor:crosshair}
.pointer-events-none{pointer-events:none}
.touch-none{touch-action:none}
.-translate-y-2{transform:translateY(-2px)}
.translate-y-2{transform:translateY(2px)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
.scrollbar-none{scrollbar-width:none;-ms-overflow-style:none}

@media (min-width:640px){
.sm\:flex-row{flex-direction:row}
.sm\:flex-wrap{flex-wrap:wrap}
.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.sm\:gap-5{gap:1.25rem}
}
@media (min-width:768px){
.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1024px){
.lg\:block{display:block}
.lg\:flex{display:flex}
.lg\:hidden{display:none}
.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.lg\:col-span-2{grid-column:span 2 / span 2}
.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}
.lg\:pb-10{padding-bottom:2.5rem}
.lg\:pt-8{padding-top:2rem}
}
@media (min-width:1280px){
.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}
}

/* Printing happens inside the page — no popups, no inline styles, so the
   Content-Security-Policy can stay strict. */
#print-root { display: none; }
@media print {
  body.is-printing > *:not(#print-root) { display: none !important; }
  body.is-printing { background: #fff; }
  #print-root { display: block; font-family: Arial, Helvetica, sans-serif; color: #1c2333; }
  #print-root h1 { background: #171e52; color: #fff; text-align: center; padding: 14px; font-size: 1.2rem; margin: 0 0 14px; font-family: inherit; }
  #print-root h2 { font-size: .95rem; margin: 18px 0 6px; color: #171e52; font-family: inherit; }
  #print-root .print-date { background: #171e52; color: #fff; display: inline-block; padding: 6px 18px; font-weight: bold; margin: 6px 0; }
  #print-root table { width: 100%; border-collapse: collapse; margin-top: 6px; }
  #print-root th { background: #171e52; color: #fff; padding: 7px; font-size: .72rem; text-transform: uppercase; }
  #print-root td { border: 1px solid #444; padding: 7px; text-align: center; font-size: .85rem; }
  #print-root .note { font-size: .78rem; line-height: 1.55; margin-top: 6px; }
  #print-root .warn { color: #c00; font-weight: bold; margin: 10px 0; font-size: .85rem; }
  #print-root .rules { text-align: center; font-size: .82rem; line-height: 1.6; margin-bottom: 6px; }
  #print-root .lead { color: #6e7599; font-size: .85rem; margin-bottom: 18px; text-align: center; }
  #print-root .kv { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 10px; }
  #print-root .kv .k { font-size: .62rem; text-transform: uppercase; letter-spacing: .07em; color: #6e7599; }
  #print-root .report th, #print-root .report td { text-align: left; border: none; border-bottom: 1px solid #ddd; }
  @page { margin: 14mm; }
}
