:root {
  color-scheme: light;
  --ink: #071f3d;
  --deep-blue: #071f3d;
  --deep-blue-light: #0d365f;
  --muted: #63717c;
  --line: #d8e0e4;
  --surface: #ffffff;
  --canvas: #eef2f3;
  --accent: #9c6d08;
  --accent-dark: #6f4c00;
  --ok: #0b6b4b;
  --danger: #a43131;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--canvas); }
.topbar { display: flex; justify-content: space-between; gap: 2rem; align-items: end; padding: 2rem max(2rem, calc((100vw - 1440px) / 2)); color: white; background: linear-gradient(125deg, var(--deep-blue), var(--deep-blue-light)); }
h1, h2, p { margin-top: 0; }
h1 { margin-bottom: .35rem; font-size: clamp(2rem, 4vw, 3.4rem); letter-spacing: -.04em; }
h2 { margin-bottom: 0; font-size: 1.35rem; }
.eyebrow { margin-bottom: .35rem; color: #d9b96d; font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.local-badge { padding: .55rem .8rem; border: 1px solid #657682; border-radius: 999px; white-space: nowrap; }
.admin-session { display: flex; gap: .65rem; align-items: center; }
.admin-session form { margin: 0; }
.admin-session button { width: auto; color: white; background: transparent; border-color: #657682; }
main { width: min(1440px, calc(100% - 2rem)); margin: 0 auto; padding: 1rem 0 4rem; }
.section-nav { position: sticky; top: 0; z-index: 2; display: flex; gap: .5rem; overflow-x: auto; margin: 0 0 1rem; padding: .75rem 0; background: var(--canvas); }
.section-nav a { padding: .55rem .8rem; color: var(--ink); background: white; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; white-space: nowrap; }
.context-panel { border-color: #bfa35f; background: linear-gradient(135deg, #fff, #fffaf0); }
.context-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.context-help { margin: 1rem 0 0; color: var(--muted); }
.onboarding-progress { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .5rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.onboarding-progress li { padding: .6rem; color: var(--muted); background: #eef2f3; border-radius: 8px; font-size: .78rem; font-weight: 800; text-align: center; }
.onboarding-progress li.done { color: var(--ok); background: #dbf3e9; }
.readiness-check { margin-top: 1rem; padding: 1rem; border: 1px solid #e0bd69; border-radius: 10px; background: #fff8e7; }
.readiness-check.ready { border-color: #8acbb4; background: #eefaf6; }
.readiness-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.readiness-heading h3 { margin: 0; font-size: 1.05rem; }
.readiness-heading .eyebrow { margin-bottom: .2rem; }
.readiness-state { padding: .25rem .55rem; color: var(--accent-dark); background: #f5d993; border-radius: 999px; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.readiness-check.ready .readiness-state { color: var(--ok); background: #cdeedf; }
.readiness-warning { margin: .8rem 0 0; }
.readiness-warning a, .readiness-client a { color: var(--accent-dark); }
.readiness-clients { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; margin-top: .8rem; }
.readiness-client { display: grid; grid-template-columns: 1fr auto; gap: .45rem .8rem; min-width: 0; padding: .75rem; background: white; border: 1px solid #e5c982; border-radius: 8px; }
.readiness-client.ready { border-color: #9fd6c3; }
.readiness-client > a { font-size: .78rem; }
.readiness-client ul { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.readiness-client li { padding: .25rem .45rem; color: var(--danger); background: #fbe4e4; border-radius: 999px; font-size: .7rem; font-weight: 700; }
.readiness-client li.done { color: var(--ok); background: #dbf3e9; }
.readiness-client li a { color: inherit; }
.readiness-note { margin: .8rem 0 0; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; min-width: 0; }
.panel, .message, .issued-key { margin-bottom: 1rem; padding: 1.25rem; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 8px 24px rgb(23 33 43 / 5%); }
.panel { min-width: 0; }
.wide { grid-column: 1 / -1; }
.section-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .65rem 1rem; align-items: center; margin-bottom: 1rem; }
.section-heading > span { color: var(--muted); font-weight: 700; }
.section-refresh { width: auto; align-self: center; white-space: nowrap; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.wide-field { grid-column: 1 / -1; }
label { display: grid; gap: .3rem; color: var(--muted); font-size: .82rem; font-weight: 700; }
label small { font-weight: 400; }
label.has-field-info { position: relative; }
.field-label-heading { display: inline-flex; gap: .35rem; align-items: center; width: fit-content; max-width: 100%; }
.field-label-caption { min-width: 0; }
.field-info,
.field-info:hover {
  position: relative;
  z-index: 4;
  display: inline-grid;
  place-items: center;
  width: 1.15rem;
  min-width: 1.15rem;
  height: 1.15rem;
  padding: 0;
  color: var(--accent-dark);
  background: white;
  border: 1px solid #9eb0ba;
  border-radius: 50%;
  font-size: .72rem;
  font-weight: 900;
  line-height: 1;
  flex: 0 0 auto;
}
.field-tooltip {
  position: fixed;
  z-index: 1000;
  width: min(20rem, calc(100vw - 1rem));
  padding: .65rem .75rem;
  color: white;
  background: var(--deep-blue);
  border-radius: 8px;
  box-shadow: 0 10px 30px rgb(0 0 0 / 22%);
  font-size: .76rem;
  font-weight: 500;
  line-height: 1.45;
  text-align: left;
  white-space: normal;
  pointer-events: none;
}
input, select, textarea, button { width: 100%; min-width: 0; padding: .7rem .75rem; color: var(--ink); background: white; border: 1px solid #b9c5cb; border-radius: 8px; font: inherit; }
textarea { resize: vertical; }
input:focus, select:focus, textarea:focus { outline: 3px solid rgb(156 109 8 / 18%); border-color: var(--accent); }
button { align-self: end; color: white; background: var(--accent); border-color: var(--accent); font-weight: 800; cursor: pointer; }
button:hover { background: var(--accent-dark); }
button.secondary { padding: .45rem .6rem; color: var(--ink); background: white; border-color: var(--line); font-size: .8rem; }
button.danger, button.danger.secondary { color: white; background: var(--danger); border-color: var(--danger); }
button.danger:hover, button.danger.secondary:hover { background: #7e2020; }
.check { display: flex; align-items: center; gap: .5rem; }
.check input { min-width: auto; }
.cards { display: grid; gap: .6rem; margin-top: 1rem; }
.cards article { display: grid; grid-template-columns: minmax(9rem, 1fr) auto; gap: .25rem 1rem; padding: .75rem; background: #f7f9fa; border-radius: 9px; }
.cards article { min-width: 0; }
.cards article.selected-card { outline: 2px solid var(--accent); background: #fff9e9; }
.cards article > span, .cards article > small { color: var(--muted); }
.card-notes { grid-column: 1 / -1; margin: .35rem 0 0; color: var(--ink); font-size: .85rem; line-height: 1.45; overflow-wrap: anywhere; white-space: pre-wrap; }
.cards code { overflow-wrap: anywhere; }
.client-card { grid-template-columns: 1fr !important; }
.scope-picker { min-width: 0; margin: 0; padding: 1rem; border: 1px solid var(--line); border-radius: 10px; }
.scope-picker legend { padding: 0 .35rem; color: var(--ink); font-weight: 800; }
.scope-picker legend small { margin-left: .35rem; color: var(--muted); font-weight: 400; }
.scope-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.scope-option { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .65rem; align-items: start; padding: .8rem; color: var(--ink); background: #f7f9fa; border: 1px solid var(--line); border-radius: 9px; cursor: pointer; }
.scope-option:has(input:checked) { border-color: var(--accent); background: #fff9e9; box-shadow: inset 0 0 0 1px var(--accent); }
.scope-option input { width: 1rem; min-width: 1rem; margin-top: .15rem; }
.scope-option span { display: grid; gap: .25rem; min-width: 0; }
.scope-option code { color: var(--accent-dark); overflow-wrap: anywhere; }
.scope-option small { color: var(--muted); font-weight: 400; line-height: 1.4; }
.scope-option em { color: var(--ok); font-size: .7rem; font-style: normal; font-weight: 800; }
.additional-scopes { margin-top: .8rem; }
.scope-badges { display: flex; flex-wrap: wrap; gap: .35rem; }
.scope-badges code { padding: .25rem .45rem; color: var(--accent-dark); background: #fff4d8; border-radius: 999px; }
.actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; }
.actions form { display: flex; gap: .4rem; }
.actions select { padding: .45rem; font-size: .8rem; }
.button-link { display: inline-flex; align-items: center; justify-content: center; padding: .45rem .65rem; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: white; font-size: .8rem; font-weight: 800; text-decoration: none; }
.danger-zone { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #efb9b9; }
.danger-zone button { width: auto; }
.empty-state, .warning { padding: .9rem; color: var(--muted); background: #f7f9fa; border-radius: 8px; }
.warning { color: var(--accent-dark); background: #fff8e7; border-left: 4px solid var(--accent); }
.package-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.package-actions form { flex: 1 1 15rem; }
.status { justify-self: end; padding: .15rem .45rem; border-radius: 999px; font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.status.active { color: var(--ok); background: #dbf3e9; }
.status.suspended, .status.canceled, .status.revoked { color: var(--danger); background: #fbe4e4; }
.status.new { color: #715100; background: #fff0b8; }
.status.inreview { color: #0b4a79; background: #dceeff; }
.status.converted { color: var(--ok); background: #dbf3e9; }
.status.deliveryfailed, .status.rejected { color: var(--danger); background: #fbe4e4; }
.inquiry-cards article { grid-template-columns: minmax(0, 1fr); gap: .65rem; }
.inquiry-cards .section-heading { margin: 0; }
.inquiry-cards dl { display: grid; grid-template-columns: minmax(8rem, auto) minmax(0, 1fr); gap: .25rem 1rem; margin: 0; }
.inquiry-cards dt { color: var(--muted); font-weight: 700; }
.inquiry-cards dd { margin: 0; overflow-wrap: anywhere; }
.inquiry-cards details { border: 1px solid var(--line); border-radius: 8px; padding: .7rem; background: white; }
.inquiry-cards summary { cursor: pointer; font-weight: 800; }
.inquiry-cards pre { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; font-size: .85rem; color: var(--muted); }
.inquiry-cards .actions { align-items: end; }
.inquiry-list-fold { margin-top: 1rem; }
.inquiry-list-fold > summary { cursor: pointer; padding: .75rem 1rem; border: 1px solid var(--line); border-radius: 8px; background: #f7f9fa; font-weight: 800; }
.inquiry-list-fold[open] > summary { margin-bottom: .8rem; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .7rem; border-bottom: 1px solid var(--line); text-align: left; white-space: nowrap; }
th { color: var(--muted); font-size: .75rem; text-transform: uppercase; }
code { font-family: ui-monospace, "Cascadia Code", monospace; font-size: .82em; }
.origin-form { grid-template-columns: 1fr 1fr auto auto; }
.origin-list { display: grid; gap: .75rem; margin-top: 1rem; }
.origin-edit-form { display: grid; grid-template-columns: minmax(10rem,.8fr) minmax(16rem,1.8fr) auto minmax(12rem,auto); gap: .7rem; align-items: end; padding: .8rem; background: #f7f9fa; border-radius: 9px; }
.origin-edit-form > * { min-width: 0; }
.origin-edit-form input[readonly] { color: var(--muted); background: #eef2f3; }
.origin-actions { display: flex; flex-wrap: wrap; gap: .45rem; justify-content: flex-end; }
.origin-actions button { width: auto; }
.message.error { color: var(--danger); border-color: #efb9b9; }
.message.success { color: var(--ok); border-color: #a8d9c8; }
.login-page { min-height: 100vh; background: linear-gradient(135deg, var(--deep-blue), var(--deep-blue-light)); }
.login-main { display: grid; place-items: center; min-height: 100vh; padding: 1rem; }
.login-panel { width: min(28rem, 100%); margin: 0; padding: clamp(1.5rem, 5vw, 2.5rem); }
.login-panel h1 { font-size: 2.25rem; }
.login-intro { color: var(--muted); line-height: 1.55; }
.login-form { display: grid; gap: 1rem; }
.login-form button { margin-top: .25rem; }
.login-form button:disabled { opacity: .55; cursor: not-allowed; }
.validation-summary:empty { display: none; }
.validation-summary { color: var(--danger); }
.issued-key { display: grid; grid-template-columns: 1fr 2fr; gap: 1rem; border: 2px solid var(--accent); scroll-margin-top: 1rem; }
.issued-key:focus { outline: 4px solid color-mix(in srgb, var(--accent) 35%, transparent); outline-offset: 3px; }
.issued-key dl { margin: 0; }
.issued-key dt { color: var(--muted); font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.issued-key dd { margin: .2rem 0 .8rem; overflow-wrap: anywhere; }
.secret { display: block; padding: .65rem; background: #fff8e7; border-radius: 6px; user-select: all; }
@media (max-width: 850px) {
  .grid, .issued-key { grid-template-columns: 1fr; }
  .form-grid, .origin-form, .origin-edit-form, .context-form { grid-template-columns: 1fr; }
  .scope-options { grid-template-columns: 1fr; }
  .readiness-clients { grid-template-columns: 1fr; }
  .origin-actions { flex-wrap: wrap; }
  .onboarding-progress { grid-template-columns: 1fr; }
  .topbar { align-items: start; flex-direction: column; }
  .admin-session { align-items: stretch; flex-direction: column; }
  .cards article { grid-template-columns: minmax(0, 1fr); }
  .status { justify-self: start; }
}
.js .context-submit { display: none; }

.context-actions { display: flex; flex-wrap: wrap; gap: .7rem; align-items: center; margin-top: 1rem; }
.context-actions form { margin: 0; }
#organizations > .danger-zone { display: none; }
.field-guide { margin: 0 0 1rem; padding: .9rem 1rem; border: 1px solid #d8e0e4; border-radius: 10px; background: #f7f9fa; }
.field-guide summary { cursor: pointer; font-weight: 800; }
.field-guide dl { display: grid; grid-template-columns: minmax(9rem, 13rem) 1fr; gap: .55rem 1rem; margin-bottom: 0; }
.field-guide dt { font-weight: 800; }
.field-guide dd { margin: 0; color: #52616c; }

@media (max-width: 600px) {
  .field-guide dl { grid-template-columns: 1fr; }
  .field-guide dd { margin-bottom: .45rem; }
}
