
/* Site fonts, served from this site (/assets/fonts, SIL Open Font License). The Apps Script copy falls back to Georgia / Arial. */
@font-face { font-family: "EB Garamond"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/eb-garamond-latin-400-normal-v1.woff2") format("woff2"); }
@font-face { font-family: "EB Garamond"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/eb-garamond-latin-500-normal-v1.woff2") format("woff2"); }
@font-face { font-family: "EB Garamond"; font-style: normal; font-weight: 600 700; font-display: swap; src: url("/assets/fonts/eb-garamond-latin-600-normal-v1.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/ibm-plex-sans-latin-400-normal-v1.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-style: italic; font-weight: 400; font-display: swap; src: url("/assets/fonts/ibm-plex-sans-latin-400-italic-v1.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/ibm-plex-sans-latin-500-normal-v1.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 600 800; font-display: swap; src: url("/assets/fonts/ibm-plex-sans-latin-600-normal-v1.woff2") format("woff2"); }


:root {
  --background:#090909;
  --panel:#111010;
  --panel-alt:#171313;
  --border:#403131;
  --border-soft:#302626;
  --text:#dedada;
  --muted:#948b8b;
  --accent:#71373a;
  --accent-hover:#8b4549;
  --error:#d36f73;
  --gold:#c7ad73;
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-height: 100%;
  background: var(--background);
  color: var(--text);
  font-family:"IBM Plex Sans", Arial, Helvetica, sans-serif;
}

body {
  padding-bottom: 60px;
}

.topbar {
  min-height: 88px;
  padding: 18px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid var(--border);
  background: #111315;
}

.topbar h1 {
  margin: 4px 0 0;
  font-size: 24px;
}

.eyebrow {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.4px;
}

.environment-pill {
  padding: 8px 12px;
  border: 1px solid var(--border);
  background: var(--panel);
  color: var(--muted);
  font-size: 12px;
}

.page-shell {
  width: min(1180px, calc(100% - 40px));
  margin: 34px auto 0;
}

.module-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 26px;
}

.tab-button {
  background: var(--panel);
  border-color: var(--border);
  color: var(--muted);
}

.tab-button.active {
  background: var(--accent);
  border-color: #8e2020;
  color: #fff;
}

.module-header {
  margin-bottom: 22px;
}

.module-header h2 {
  margin: 5px 0;
  font-size: 32px;
}

.module-header p {
  margin: 0;
  color: var(--muted);
}

.search-panel {
  display: flex;
  align-items: end;
  gap: 16px;
  padding: 20px;
  border: 1px solid var(--border);
  background: var(--panel);
}

.field-group {
  width: 250px;
}

.field-grow {
  flex: 1;
  width: auto;
}

.field-wide {
  width: auto;
  grid-column: 1 / -1;
}

label {
  display: block;
  margin-bottom: 7px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

select,
input,
textarea {
  width: 100%;
  padding: 9px 11px;
  border: 1px solid var(--border);
  outline: none;
  background: var(--panel-alt);
  color: var(--text);
  font-family: inherit;
}

select,
input {
  min-height: 42px;
}

textarea {
  resize: vertical;
}

button {
  min-height: 42px;
  padding: 0 24px;
  border: 1px solid #8e2020;
  background: var(--accent);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}

button:hover {
  background: var(--accent-hover);
}

button:disabled {
  opacity: .5;
  cursor: default;
}

.secondary-button {
  background: var(--panel-alt);
  border-color: var(--border);
  color: var(--text);
}

.secondary-button:hover {
  background: #2a2d31;
}

.results-panel,
.detail-panel,
.registration-panel {
  margin-top: 22px;
  border: 1px solid var(--border);
  background: var(--panel);
}

.results-heading,
.detail-heading,
.history-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--border);
}

.results-heading h3,
.detail-heading h3,
.history-heading h3 {
  margin: 4px 0 0;
  font-size: 18px;
}

.result-count {
  min-width: 44px;
  padding: 7px 10px;
  border: 1px solid var(--border);
  background: var(--panel-alt);
  color: var(--muted);
  text-align: center;
  font-size: 12px;
}

.status-line {
  padding: 14px 20px;
  border-top: 1px solid var(--border-soft);
  color: var(--muted);
  font-size: 13px;
}

.status-line.error {
  color: var(--error);
}

.relic-row {
  display: grid;
  grid-template-columns:
    120px
    minmax(220px, 1fr)
    180px
    190px
    150px;
  gap: 14px;
  align-items: center;
  min-height: 56px;
  padding: 10px 20px;
  border-bottom: 1px solid var(--border-soft);
  cursor: pointer;
}

.relic-row:hover {
  background: #202327;
}

.relic-id {
  color: #c8c8c2;
  font-family:"IBM Plex Sans", Arial, Helvetica, sans-serif;font-variant-numeric:tabular-nums;
  font-size: 12px;
}

.relic-name {
  font-weight: 700;
}

.relic-meta {
  color: var(--muted);
  font-size: 12px;
}

.status-badge {
  width: fit-content;
  padding: 5px 8px;
  border: 1px solid #566358;
  background: #28302a;
  color: #b8c7b9;
  font-size: 11px;
}

.empty-state {
  padding: 46px 20px;
  text-align: center;
  color: var(--muted);
}

.detail-grid {
  display: grid;
  grid-template-columns:
    repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--border-soft);
}

.detail-cell {
  padding: 15px;
  background: var(--panel);
}

.detail-label {
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.detail-value {
  overflow-wrap: anywhere;
}

.text-section {
  padding: 18px 20px;
  border-top: 1px solid var(--border-soft);
}

.text-section h4 {
  margin: 0 0 9px;
  color: var(--muted);
  font-size: 12px;
  text-transform: uppercase;
}

.history-row {
  display: grid;
  grid-template-columns:
    100px
    150px
    1fr
    160px
    180px;
  gap: 14px;
  padding: 12px 20px;
  border-bottom: 1px solid var(--border-soft);
}

.history-date,
.history-meta {
  color: var(--muted);
  font-size: 12px;
}

.registration-panel {
  padding: 20px;
}

.registration-grid {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.registration-actions {
  display: flex;
  gap: 10px;
  margin-top: 20px;
}

.field-help {
  margin-top: 6px;
  color: var(--muted);
  font-size: 11px;
}

.test-access {
  padding-top: 16px;
  border-top: 1px solid var(--border-soft);
}

.hidden {
  display: none !important;
}

@media (max-width: 850px) {
  .search-panel {
    display: grid;
    grid-template-columns: 1fr;
  }

  .field-group,
  .field-grow {
    width: 100%;
  }

  .detail-grid {
    grid-template-columns: 1fr 1fr;
  }

  .registration-grid {
    grid-template-columns: 1fr;
  }

  .history-row {
    grid-template-columns: 1fr;
  }
}



.topbar-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.roblox-login-button {
  border-color: #4d535a;
  background: #25282c;
  color: #fff;
}

.roblox-login-button:hover {
  background: #30343a;
}

.auth-identity {
  display: flex;
  align-items: center;
  gap: 10px;
}

.auth-avatar {
  width: 38px;
  height: 38px;
  border: 1px solid var(--border);
  object-fit: cover;
  background: var(--panel-alt);
}

.auth-copy {
  min-width: 0;
}

.auth-username {
  max-width: 190px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  font-weight: 700;
}

.auth-user-id {
  margin-top: 2px;
  color: var(--muted);
  font-family:"IBM Plex Sans", Arial, Helvetica, sans-serif;font-variant-numeric:tabular-nums;
  font-size: 10px;
}

.compact-button {
  min-height: 34px;
  padding: 0 12px;
  font-size: 11px;
}

.auth-message {
  margin-bottom: 18px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  background: var(--panel);
  color: var(--muted);
  font-size: 13px;
}

.auth-message.success {
  border-color: #566358;
  color: #b8c7b9;
}

.auth-message.error {
  border-color: #6d3d3d;
  color: var(--error);
}

@media (max-width: 850px) {
  .topbar {
    align-items: flex-start;
  }

  .topbar-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
  }
}


.access-gate {
  padding: 28px;
  border: 1px solid var(--border);
  background: var(--panel);
}

.access-gate h2 {
  margin: 6px 0 8px;
}

.access-gate p {
  margin: 0;
  color: var(--muted);
}



.detail-actions {
  display: flex;
  gap: 10px;
}

.relic-edit-panel {
  padding: 20px;
  border-top: 1px solid var(--border);
  background: #141618;
}

.edit-heading {
  margin-bottom: 18px;
}

.edit-heading h3 {
  margin: 4px 0 0;
}


.history-entry {
  border-bottom: 1px solid var(--border-soft);
}

.history-entry-summary {
  display: grid;
  grid-template-columns:
    110px
    170px
    minmax(240px, 1fr)
    180px;
  gap: 14px;
  align-items: center;
  padding: 14px 20px;
  cursor: pointer;
  list-style: none;
}

.history-entry-summary::-webkit-details-marker {
  display: none;
}

.history-entry-summary::before {
  content: "▸";
  color: var(--muted);
  margin-right: 6px;
}

.history-entry[open]
.history-entry-summary::before {
  content: "▾";
}

.history-entry-summary:hover {
  background: #202327;
}

.history-event-type {
  font-weight: 700;
}

.history-entry-reason {
  color: var(--text);
}

.history-entry-body {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 18px 20px 20px 40px;
  border-top: 1px solid var(--border-soft);
  background: #141618;
}

.history-detail-item {
  padding: 10px 12px;
  border: 1px solid var(--border-soft);
  background: var(--panel);
}

.history-notes-block {
  grid-column: 1 / -1;
  padding: 12px;
  border: 1px solid var(--border-soft);
  background: var(--panel);
}

.history-change-ledger {
  margin: 8px 0 0;
  white-space: pre-wrap;
  word-break: break-word;
  color: var(--text);
  font-family: inherit;
  font-size: 13px;
  line-height: 1.5;
}

@media (max-width: 850px) {
  .history-entry-summary {
    grid-template-columns: 1fr;
    padding-left: 20px;
  }

  .history-entry-body {
    grid-template-columns: 1fr;
    padding-left: 20px;
  }
}


/* V7.2 — cleaner expandable Relic History */
.history-change-section {
  grid-column: 1 / -1;
  margin-top: 4px;
}

.history-change-heading {
  margin-bottom: 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.history-change-grid {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.history-change-card {
  padding: 12px;
  border: 1px solid var(--border-soft);
  background: var(--panel);
}

.history-change-transition {
  margin-top: 5px;
  line-height: 1.45;
  white-space: pre-wrap;
  word-break: break-word;
}

@media (max-width: 850px) {
  .history-change-grid {
    grid-template-columns: 1fr;
  }
}


.admin-module-tabs { margin-bottom:18px; padding-bottom:18px; border-bottom:1px solid var(--border-soft); }
.module-subtabs { margin-bottom:26px; }
.personnel-row { display:grid; grid-template-columns:minmax(170px,1fr) minmax(170px,1fr) 150px 170px 120px; gap:14px; align-items:center; min-height:60px; padding:10px 20px; border-bottom:1px solid var(--border-soft); cursor:pointer; }
.personnel-row:hover { background:#202327; }
.personnel-primary { font-weight:700; }
.personnel-secondary,.personnel-meta { color:var(--muted); font-size:12px; }
.personnel-summary-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.personnel-pending-strip { display:flex; gap:10px; flex-wrap:wrap; padding:14px 20px; border-top:1px solid var(--border-soft); }
.pending-card { padding:8px 11px; border:1px solid var(--border); background:var(--panel-alt); color:var(--muted); font-size:12px; }
.pending-card.has-pending { border-color:#725d31; color:#d7c18a; }
.personnel-detail-tabs { display:flex; gap:8px; flex-wrap:wrap; padding:16px 20px; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.personnel-detail-content { min-height:120px; }
.personnel-table-row { display:grid; grid-template-columns:140px 180px minmax(160px,1fr) minmax(160px,1fr); gap:14px; padding:12px 20px; border-bottom:1px solid var(--border-soft); }
.personnel-table-row>div { overflow-wrap:anywhere; }
.personnel-table-main { font-weight:700; }
.personnel-table-meta { color:var(--muted); font-size:12px; }
@media(max-width:900px){.personnel-row,.personnel-table-row{grid-template-columns:1fr 1fr}.personnel-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


.topbar-module-tabs {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.topbar-module-tabs.hidden {
  display: none;
}

.topbar-module-tabs .tab-button {
  min-height: 38px;
  padding: 0 18px;
}

.topbar-actions {
  margin-left: 0;
}

.module-subtabs {
  margin-top: 0;
}

@media (max-width: 900px) {
  .topbar {
    flex-wrap: wrap;
  }

  .topbar-module-tabs {
    order: 3;
    width: 100%;
    margin-left: 0;
  }
}


.personnel-action-panel {
  margin: 20px;
  border: 1px solid var(--border);
  background: var(--panel-alt);
}

.personnel-action-grid {
  display: grid;
  grid-template-columns:
    repeat(4, minmax(0, 1fr));
  gap: 16px;
  padding: 20px;
}

.personnel-action-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 0 20px 20px;
}

.personnel-action-footer .status-line {
  flex: 1;
  padding: 10px 0;
  border: 0;
}

@media (max-width: 900px) {
  .personnel-action-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}


/* ============================================================
 * FORM CONTROL NORMALISATION — PHASE 4F.1
 * ============================================================ */

select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 38px;
  background-color: var(--panel-alt);
  color: var(--text);
  border-color: var(--border);
  background-image:
    linear-gradient(
      45deg,
      transparent 50%,
      var(--muted) 50%
    ),
    linear-gradient(
      135deg,
      var(--muted) 50%,
      transparent 50%
    );
  background-position:
    calc(100% - 16px) 17px,
    calc(100% - 11px) 17px;
  background-size:
    5px 5px,
    5px 5px;
  background-repeat:
    no-repeat;
}

select:focus {
  border-color: #5a6068;
}

select:disabled {
  opacity: .55;
}

select option {
  background: #1e2023;
  color: #f0f0ed;
}

select option:disabled {
  color: #8f949a;
}

.personnel-action-grid select,
.personnel-action-grid input,
.personnel-action-grid textarea {
  background-color: var(--panel);
}

.personnel-action-grid select {
  min-height: 42px;
}



.admin-modal { position:fixed; inset:0; z-index:2000; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(0,0,0,.72); }
.admin-modal.hidden { display:none; }
.admin-modal-card { width:min(760px,100%); max-height:88vh; overflow:auto; border:1px solid var(--border); background:var(--panel); box-shadow:0 24px 70px rgba(0,0,0,.45); }
.admin-confirm-body { padding:20px; display:grid; gap:12px; }
.admin-modal-footer { display:flex; justify-content:flex-end; gap:10px; padding:18px 20px; border-top:1px solid var(--border); }
.confirm-personnel-name { font-size:18px; font-weight:700; }
.confirm-change-count,.service-event-count { color:var(--muted); font-size:12px; }
.confirm-change { padding:12px; border:1px solid var(--border-soft); background:var(--panel-alt); }
.confirm-change-values { display:flex; align-items:center; gap:10px; margin-top:5px; overflow-wrap:anywhere; }
.confirm-arrow { color:var(--muted); }
.confirm-meta { padding:10px 0; color:var(--muted); overflow-wrap:anywhere; }
.service-event-group { border-bottom:1px solid var(--border-soft); }
.service-event-group summary { cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:14px 20px; }
.service-event-group summary::-webkit-details-marker { display:none; }
.service-event-group summary:hover { background:#202327; }
.service-event-details { padding:0 20px 18px; display:grid; gap:10px; }
.service-change-detail { padding:12px; border:1px solid var(--border-soft); background:var(--panel-alt); }


#operationSubmissionPanel {
  margin-bottom: 24px;
}

#operationSubmissionPanel .registration-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

#operationSubmissionPanel .registration-actions .status-line {
  flex: 1;
}

#operationResultAttendanceLink a {
  color: var(--text);
  text-decoration: underline;
}


.operations-browser-search {
  margin-bottom: 0;
}

.operation-browser-row {
  display: grid;
  grid-template-columns:
    minmax(220px, 1.5fr)
    minmax(140px, .8fr)
    minmax(140px, .8fr)
    minmax(140px, .8fr)
    minmax(150px, .8fr);
  gap: 14px;
  align-items: center;
  min-height: 72px;
  padding: 12px 20px;
  border-bottom: 1px solid var(--border-soft);
  cursor: pointer;
}

.operation-browser-row:hover {
  background: #202327;
}

.operation-status-badge {
  display: inline-block;
  padding: 5px 8px;
  border: 1px solid var(--border);
  background: var(--panel-alt);
  font-size: 12px;
  font-weight: 700;
}

.operation-detail-grid {
  grid-template-columns:
    repeat(4, minmax(0, 1fr));
}

.operation-summary-strip {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  padding: 14px 20px;
  border-top: 1px solid var(--border-soft);
}

.operation-detail-links {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.operation-link-card {
  display: inline-block;
  padding: 10px 12px;
  border: 1px solid var(--border);
  color: var(--text);
  text-decoration: none;
  background: var(--panel-alt);
}

.operation-link-card:hover {
  background: #202327;
}

@media (max-width: 900px) {
  .operation-browser-row {
    grid-template-columns:
      1fr 1fr;
  }

  .operation-detail-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}


/* Phase 5D — clearer separation below Zeus Submission heading */
#operationSubmissionPanel .results-heading {
  margin-bottom: 20px;
}

#operationSubmissionPanel .registration-grid {
  padding-top: 8px;
}

.operation-edit-panel {
  margin-top: 22px;
}

.operation-edit-panel .results-heading {
  margin-bottom: 20px;
}

.operation-edit-panel .registration-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}


/* ============================================================
 * PHASE 6B — ATTENDANCE APPROVAL BOARD
 * ============================================================ */

.attendance-filter-panel {
  margin-bottom: 0;
}

.attendance-approval-row {
  display: grid;
  grid-template-columns:
    minmax(220px, 1.2fr)
    minmax(220px, 1.2fr)
    minmax(130px, .65fr)
    minmax(170px, .75fr);
  gap: 16px;
  align-items: center;
  min-height: 76px;
  padding: 13px 20px;
  border-bottom: 1px solid var(--border-soft);
  cursor: pointer;
}

.attendance-approval-row:hover {
  background: #202327;
}

/* Bulk approval */
.attendance-bulk-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 16px;
  padding: 10px 12px;
  margin: 6px 0 10px;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 8px;
  background: rgba(255, 255, 255, .03);
}
.attendance-bulk-bar[hidden] { display: none; }
.attendance-bulk-all { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.attendance-bulk-bar button { margin-left: auto; }
.attendance-pick-cell { display: flex; align-items: flex-start; gap: 10px; }
.attendance-pick { padding: 4px; margin: -4px 0 0 -4px; cursor: pointer; }
.attendance-pick input, .attendance-bulk-all input {
  appearance: auto; -webkit-appearance: checkbox; flex: none;
  width: 18px; height: 18px; min-width: 0; min-height: 0; padding: 0; margin: 0;
  border: 0; border-radius: 3px; box-shadow: none; background: none;
  accent-color: #d6bc78; cursor: pointer;
}
.attendance-bulk-progress {
  flex: 1 1 220px;
  height: 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .08);
  overflow: hidden;
}
.attendance-bulk-progress[hidden] { display: none; }
.attendance-bulk-progress-fill {
  height: 100%;
  width: 0;
  border-radius: 999px;
  background: linear-gradient(90deg, #8b6d2c, #d6bc78);
  transition: width .2s linear;
}
.attendance-pick input:disabled { opacity: .35; cursor: not-allowed; }
/* Award / Qualification bulk tick boxes (Admin_Client_BulkPick) */
.admin-bulk-cell { display: grid; grid-template-columns: auto 1fr; column-gap: 10px; align-items: start; }
.admin-bulk-cell > .admin-bulk-pick { grid-row: span 2; }
.admin-bulk-bar { margin-bottom: 10px; }
.has-bulk-pick.is-picked { outline: 1px solid var(--gold, #c9a54a); outline-offset: -1px; }
.attendance-approval-row.is-picked { outline: 1px solid rgba(214, 188, 120, .55); background: rgba(214, 188, 120, .06); }

.attendance-points-line {
  font-size: 16px;
  font-weight: 700;
}

.attendance-warning {
  margin-top: 6px;
  font-size: 12px;
  color: #ff7373;
}

.attendance-clear {
  margin-top: 6px;
  font-size: 12px;
  color: var(--muted);
}

.attendance-detail-grid {
  grid-template-columns:
    repeat(4, minmax(0, 1fr));
}

.attendance-validation-section {
  padding: 18px 20px;
  border-top: 1px solid var(--border-soft);
}

.attendance-validation-box {
  margin-top: 8px;
  padding: 12px;
  border: 1px solid var(--border);
  background: var(--panel-alt);
  white-space: pre-wrap;
}

.attendance-validation-box.has-warning {
  border-color: #8f3838;
}

.attendance-decision-preview {
  margin: 18px 20px 20px;
  padding: 16px;
  border: 1px dashed var(--border);
  background: var(--panel-alt);
}

.attendance-decision-preview p {
  margin: 7px 0 0;
  color: var(--muted);
}

@media (max-width: 900px) {
  .attendance-approval-row {
    grid-template-columns: 1fr 1fr;
  }

  .attendance-detail-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}


.attendance-action-grid {
  display: grid;
  grid-template-columns:
    minmax(180px, .7fr)
    minmax(180px, .7fr)
    minmax(280px, 1.6fr);
  gap: 14px;
  margin-top: 14px;
}

.attendance-action-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-top: 14px;
}

@media (max-width: 900px) {
  .attendance-action-grid {
    grid-template-columns:
      1fr;
  }
}


/* ============================================================
 * PHASE 7B — LEAVE APPROVAL BOARD
 * ============================================================ */

.leave-filter-panel {
  margin-bottom: 0;
}

.leave-approval-row {
  display: grid;
  grid-template-columns:
    minmax(230px, 1.3fr)
    minmax(140px, .7fr)
    minmax(160px, .75fr)
    minmax(160px, .7fr);
  gap: 16px;
  align-items: center;
  min-height: 76px;
  padding: 13px 20px;
  border-bottom: 1px solid var(--border-soft);
  cursor: pointer;
}

.leave-approval-row:hover {
  background: #202327;
}

.leave-detail-grid {
  grid-template-columns:
    repeat(4, minmax(0, 1fr));
}

.leave-decision-preview {
  margin: 18px 20px 20px;
  padding: 16px;
  border: 1px dashed var(--border);
  background: var(--panel-alt);
}

.leave-decision-preview p {
  margin: 7px 0 0;
  color: var(--muted);
}

@media (max-width: 900px) {
  .leave-approval-row {
    grid-template-columns:
      1fr 1fr;
  }

  .leave-detail-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}


/* ============================================================
 * PHASE 7C — LEAVE ACTIONS
 * ============================================================ */

.leave-action-grid {
  display: grid;
  grid-template-columns:
    minmax(190px, .75fr)
    minmax(190px, .75fr)
    minmax(300px, 1.5fr);
  gap: 14px;
  margin-top: 14px;
}

.leave-action-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-top: 14px;
}

@media (max-width: 900px) {
  .leave-action-grid {
    grid-template-columns:
      1fr;
  }
}


/* ============================================================
 * PHASE 8B — AWARDS APPROVAL BOARD
 * ============================================================ */

.awards-filter-panel {
  margin-bottom: 0;
}

.award-request-row {
  display: grid;
  grid-template-columns:
    minmax(230px, 1.2fr)
    minmax(230px, 1.2fr)
    minmax(170px, .8fr)
    minmax(170px, .8fr);
  gap: 16px;
  align-items: center;
  min-height: 78px;
  padding: 13px 20px;
  border-bottom: 1px solid var(--border-soft);
  cursor: pointer;
}

.award-request-row:hover {
  background: #202327;
}

.awards-detail-grid {
  grid-template-columns:
    repeat(4, minmax(0, 1fr));
}

.awards-decision-preview {
  margin: 18px 20px 20px;
  padding: 16px;
  border: 1px dashed var(--border);
  background: var(--panel-alt);
}

.awards-decision-preview p {
  margin: 7px 0 0;
  color: var(--muted);
}

@media (max-width: 900px) {
  .award-request-row {
    grid-template-columns:
      1fr 1fr;
  }

  .awards-detail-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}


/* ============================================================
 * PHASE 8C — AWARD ACTIONS
 * ============================================================ */

.award-action-grid {
  display: grid;
  grid-template-columns:
    minmax(190px, .75fr)
    minmax(320px, 1.6fr);
  gap: 14px;
  margin-top: 14px;
}

.award-action-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-top: 14px;
}

@media (max-width: 900px) {
  .award-action-grid {
    grid-template-columns:
      1fr;
  }
}


.awards-subtabs {
  margin-bottom: 18px;
}

.awards-workspace-placeholder {
  min-height: 180px;
}


/* ============================================================
 * AWARDS R2 — DIRECT GRANT / EDIT
 * ============================================================ */

.award-grant-grid {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(220px, 1fr));
  gap: 16px;
  padding: 20px;
}

.readonly-value {
  min-height: 42px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  background: var(--panel-alt);
}

.granted-award-clickable {
  cursor: pointer;
}

@media (max-width: 900px) {
  .award-grant-grid {
    grid-template-columns:
      1fr;
  }
}


.operations-subtabs {
  margin-bottom: 18px;
}


/* ============================================================
 * QUALIFICATIONS R3
 * ============================================================ */

.qualifications-subtabs {
  margin-bottom: 18px;
}

.qualifications-filter-panel {
  margin-bottom: 0;
}

.qualification-request-row {
  display: grid;
  grid-template-columns:
    minmax(230px, 1.2fr)
    minmax(240px, 1.2fr)
    minmax(170px, .8fr)
    minmax(170px, .8fr);
  gap: 16px;
  align-items: center;
  min-height: 78px;
  padding: 13px 20px;
  border-bottom: 1px solid var(--border-soft);
  cursor: pointer;
}

.qualification-request-row:hover {
  background: #202327;
}

.qualifications-detail-grid {
  grid-template-columns:
    repeat(4, minmax(0, 1fr));
}

.qualifications-action-panel {
  margin: 18px 20px 20px;
  padding: 16px;
  border: 1px dashed var(--border);
  background: var(--panel-alt);
}

.qualification-action-grid {
  display: grid;
  grid-template-columns:
    minmax(190px, .75fr)
    minmax(320px, 1.6fr);
  gap: 14px;
  margin-top: 14px;
}

.qualification-grant-grid {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(220px, 1fr));
  gap: 16px;
  padding: 20px;
}

.qualification-action-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-top: 14px;
}

@media (max-width: 900px) {
  .qualification-request-row,
  .qualification-grant-grid,
  .qualification-action-grid {
    grid-template-columns:
      1fr;
  }

  .qualifications-detail-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}


/* 1C — Grape-derived command/admin visual system */
body{font-size:14px;line-height:1.5}
.topbar{position:sticky;top:0;z-index:100;min-height:72px;padding:10px 28px;background:#100d0d;border-bottom:1px solid #4a3032}
.topbar h1,.module-header h2,.detail-heading h3,.results-heading h3{font-family:"EB Garamond", Georgia, "Times New Roman", serif;letter-spacing:.35px}
.topbar h1{font-size:21px;color:#f0ecec}
.eyebrow{color:var(--gold)}
.page-shell{width:min(1420px,calc(100% - 40px));margin-top:28px}
.topbar-module-tabs{gap:3px;flex-wrap:wrap;justify-content:center}
.topbar-module-tabs .tab-button{min-height:36px;padding:0 13px;border-color:transparent;background:transparent}
.topbar-module-tabs .tab-button:hover{background:#211718}
.topbar-module-tabs .tab-button.active{background:#3b1f21;border-color:#704043;color:#f0e7e7}
.module-header{padding:18px 20px;background:linear-gradient(90deg,#241718 0%,#151111 55%,transparent 100%);border-left:3px solid #744043;border-bottom:1px solid var(--border-soft)}
.module-header h2{font-size:30px;color:#f0eded}
.search-panel,.results-panel,.detail-panel,.registration-panel,.access-gate{background:var(--panel);border-color:var(--border)}
button{border-color:#704043;background:var(--accent)}
button:hover{background:var(--accent-hover)}
.secondary-button{background:#171313;border-color:#4a3939}
.secondary-button:hover{background:#211818}
select,input,textarea{background:#0e0c0c;border-color:#493737}
select:focus,input:focus,textarea:focus{border-color:#825054;box-shadow:0 0 0 1px #825054}
.admin-modal{background:rgba(0,0,0,.78);backdrop-filter:blur(3px)}
.admin-modal-card{background:#120f0f;border-color:#5a383a;box-shadow:0 20px 70px rgba(0,0,0,.55)}
.entry-summary{min-width:100px;color:var(--muted);text-align:right;padding-bottom:10px}
.entry-summary span{color:var(--gold);font:700 24px "EB Garamond", Georgia, "Times New Roman", serif}
.entry-request-list{display:grid;gap:8px;margin-top:14px}
.entry-request-card{width:100%;min-height:66px;padding:12px 14px;display:grid;grid-template-columns:130px 1fr auto;gap:18px;align-items:center;text-align:left;background:#141010;border:1px solid #3e3030}
.entry-request-card:hover{background:#1d1515;border-color:#704043}
.entry-request-id{color:var(--gold);font:700 14px "EB Garamond", Georgia, "Times New Roman", serif}
.entry-request-main{display:flex;flex-direction:column;gap:3px}.entry-request-main small,.entry-request-meta{color:var(--muted);font-size:12px}
.entry-source-banner{margin-bottom:18px;padding:12px 14px;display:flex;gap:10px;flex-wrap:wrap;background:#1a1313;border-left:3px solid #744043;color:#bcb3b3}
.entry-source-banner strong{color:var(--gold)}
.entry-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.entry-review-grid .field-group{width:auto}.entry-review-grid .entry-wide{grid-column:1/-1}
@media(max-width:900px){.entry-review-grid{grid-template-columns:1fr 1fr}.entry-request-card{grid-template-columns:1fr;gap:4px}}
@media(max-width:620px){.entry-review-grid{grid-template-columns:1fr}.topbar{position:static}}

.danger-button{
  background:#321517;
  border-color:#7b383d;
  color:#f0dede;
}
.danger-button:hover{
  background:#512126;
}

.entry-applicant-notes{margin:0 0 18px;padding:12px 14px;background:#100d0d;border:1px solid #3e3030}
.entry-note-label{margin-bottom:5px;color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase}
.entry-note-copy{color:#d2caca;white-space:pre-wrap;overflow-wrap:anywhere}

.public-home-link{
  color:var(--gold);
  text-decoration:none;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
}
.public-home-link:hover{
  text-decoration:underline;
}
.admin-topbar-link{
  min-height:38px;padding:8px 15px;display:inline-flex;align-items:center;
  border:1px solid #806642;background:#1c1b16;color:var(--gold);
  text-decoration:none;font-size:12px;font-weight:700;letter-spacing:.3px;
}
.admin-topbar-link:hover{background:#302b20;border-color:var(--gold);color:#f0d79d}
.detail-actions .personnel-detail-action{
  min-height:40px;padding:0 16px;border:1px solid #806642;
  background:#221d18;color:var(--gold);font-size:12px;letter-spacing:.25px;
}
.detail-actions .personnel-detail-action:hover{background:#34271d;border-color:var(--gold)}
.detail-actions .secondary-button{background:#191514;border-color:#655144;color:#d3c2aa}
.personnel-action-panel .personnel-action-footer button,
.personnel-action-panel .history-heading button{
  background:#261e18;border-color:#806642;color:var(--gold);
}
.personnel-action-panel .personnel-action-footer button:hover,
.personnel-action-panel .history-heading button:hover{background:#382b1f;border-color:var(--gold)}
.personnel-action-grid .field-hint{display:block;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.35}
.personnel-summary-grid .detail-cell.personnel-long-value{grid-column:span 2}
.personnel-summary-grid .detail-value{overflow-wrap:anywhere;white-space:pre-wrap}
.app-session-overlay[hidden]{display:none!important}
.app-session-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(4,8,7,.78)}
#appIdleDialog,#appIdleSignedOut{z-index:10000}
.app-session-card{width:min(420px,100%);padding:28px;text-align:center;border:1px solid #a58b4f;background:#121915;color:#f1ead6;box-shadow:0 18px 70px #000}
.app-session-card h2{margin:12px 0;color:#e0c46c}.app-session-card p{line-height:1.5}.app-idle-countdown{font-size:24px;font-variant-numeric:tabular-nums;color:#e0c46c}
.app-session-spinner{display:inline-block;width:34px;height:34px;border:3px solid #5b5541;border-top-color:#e0c46c;border-radius:50%;animation:app-session-spin .8s linear infinite}
@keyframes app-session-spin{to{transform:rotate(360deg)}}
#personnelAccessPanel{margin:18px 0;padding:18px}
#personnelAccessPanel .search-panel{display:grid;grid-template-columns:minmax(0,250px) max-content;gap:16px;align-items:end}
#personnelAccessPanel .search-panel label{width:auto;margin:0}
#personnelAccessPanel .search-panel select,#personnelAccessPanel .search-panel button{height:42px}
@media(max-width:600px){#personnelAccessPanel .search-panel{grid-template-columns:1fr}#personnelAccessPanel .search-panel button{justify-self:start}}
body:has(.detail-panel:not(.hidden):not(#operationSubmissionResult),.admin-record-panel:not(.hidden),.operation-edit-panel:not(.hidden))::before{content:"";position:fixed;inset:0;z-index:1190;background:rgba(0,0,0,.72)}
.detail-panel:not(.hidden):not(#operationSubmissionResult),.admin-record-panel:not(.hidden){position:fixed!important;z-index:1200;top:5vh;left:0;right:0;width:min(1100px,calc(100vw - 28px));max-height:90vh;overflow:auto;overscroll-behavior:contain;margin:0 auto!important;background:var(--panel);border:1px solid var(--gold);box-shadow:0 20px 65px #000}
.operation-edit-panel:not(.hidden){position:fixed!important;z-index:1210;top:4vh;left:0;right:0;width:min(1100px,calc(100vw - 28px));max-height:92vh;overflow:auto;margin:0 auto!important;background:var(--panel);border:1px solid var(--gold);box-shadow:0 20px 65px #000}
.admin-record-panel .detail-heading,.detail-panel:not(.hidden):not(#operationSubmissionResult) .detail-heading{position:sticky;top:0;z-index:1;background:var(--panel)}
.admin-legal-footer{
  display:flex;justify-content:center;gap:7px;padding:20px;
  border-top:1px solid var(--border-soft);color:var(--muted);font-size:12px;
}
.admin-legal-footer a{color:var(--gold);text-decoration:none}
.admin-legal-footer a:hover{text-decoration:underline}
@media(max-width:700px){.personnel-summary-grid .detail-cell.personnel-long-value{grid-column:1/-1}.detail-actions{flex-wrap:wrap}}
.character-review-panel{margin-bottom:18px}.character-review-row{width:100%;display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:10px;align-items:center;padding:12px 16px;border:0;border-bottom:1px solid var(--border-soft);background:transparent;color:var(--text);text-align:left;cursor:pointer;font:inherit}
.character-review-row:hover{background:#223027}.character-review-row strong{color:var(--gold)}.character-review-row small{color:var(--muted)}
.character-review-detail{padding:18px;border-top:1px solid var(--border-soft)}.character-review-detail h4{margin:0 0 15px;color:var(--gold)}
.character-review-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:15px}.character-review-facts div{border-bottom:1px solid var(--border-soft);padding:6px 0}.character-review-facts small{display:block;color:var(--gold);margin-bottom:5px}.character-review-facts strong{font-weight:500;overflow-wrap:anywhere;white-space:pre-wrap}
.character-review-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}.character-review-choices label{display:grid;gap:5px}.character-review-choices select,.character-review-detail textarea{background:#101810;border:1px solid var(--border-soft);color:var(--text);padding:9px;font:inherit;width:100%}.character-review-actions{display:flex;gap:12px;align-items:center;margin-top:15px}
@media(max-width:750px){.character-review-row,.character-review-facts,.character-review-choices{grid-template-columns:1fr}}
.operation-opfor-dropdown{position:relative;border:1px solid var(--border);background:var(--panel)}
.operation-opfor-dropdown summary{cursor:pointer;padding:10px 12px;min-height:38px;color:var(--text)}
.operation-opfor-dropdown[open] .operation-opfor-list{border-top:1px solid var(--border)}
.operation-opfor-list{max-height:160px;overflow:auto;padding:8px 10px}
.operation-opfor-list label{display:flex;align-items:center;gap:8px;margin:4px 0;font-size:12px;text-transform:none;cursor:pointer}
.operation-opfor-list input{width:auto;margin:0}
.operation-opfor-dropdown .secondary-button{margin:5px 10px 10px}
.operation-choice-overlay{position:fixed;inset:0;z-index:1500;background:rgba(0,0,0,.75);display:grid;place-items:center;padding:16px}
.operation-choice-card{width:min(450px,100%);background:var(--panel);border:1px solid var(--gold);padding:24px;box-shadow:0 20px 65px #000}
.operation-choice-card h3{margin:0 0 10px;color:var(--gold)}
.operation-choice-card input{width:100%}.operation-choice-card p{color:var(--muted)}
.operation-choice-actions{display:flex;gap:10px;margin-top:18px}
#operationChoiceStatus{min-height:1.5em;color:var(--gold);margin-top:8px}

/* Admin file claims: who is working on a file */
.admin-claim-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 14px;padding:9px 12px;border:1px solid rgba(201,162,77,.35);border-left:3px solid #6f9b6a;background:rgba(111,155,106,.10);font-size:.9rem;line-height:1.4}
.admin-claim-banner.is-locked{border-left-color:#c9a24d;background:rgba(201,162,77,.12)}
.admin-claim-banner .admin-claim-dot{width:8px;height:8px;border-radius:50%;background:#6f9b6a;flex:none}
.admin-claim-banner.is-locked .admin-claim-dot{background:#c9a24d}
.admin-claim-banner span:nth-child(2){flex:1 1 220px}
.admin-claim-banner .admin-claim-takeover{margin-left:auto;padding:6px 12px;font-size:.85rem}
.admin-claim-readonly input:disabled,.admin-claim-readonly select:disabled,.admin-claim-readonly textarea:disabled,.admin-claim-readonly button:disabled{opacity:.55;cursor:not-allowed}
.admin-claim-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;border:1px solid rgba(201,162,77,.55);color:#e2c784;font-size:.75rem;white-space:nowrap;vertical-align:middle}
.admin-claim-badge.is-mine{border-color:rgba(111,155,106,.6);color:#9cc596}

/* Personnel Entry confirmation */
.entry-confirm{display:grid;gap:18px}
.entry-confirm-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:14px;border-bottom:1px solid var(--border-soft)}
.entry-confirm-name{font-size:20px;font-weight:700;color:var(--text);line-height:1.2}
.entry-confirm-sub{margin-top:4px;color:var(--muted);font-size:13px}
.entry-confirm-pill{flex:none;padding:4px 10px;border:1px solid rgba(199,173,115,.45);color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.entry-confirm-section h5{margin:0 0 8px;color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.entry-confirm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.entry-confirm-field{display:grid;gap:3px;align-content:start;padding:10px 12px;border:1px solid var(--border-soft);background:var(--panel-alt);min-width:0}
.entry-confirm-field span{color:var(--muted);font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.entry-confirm-field strong{color:var(--text);font-size:14px;font-weight:600;overflow-wrap:anywhere}
.entry-confirm-field strong.is-empty{color:var(--muted);font-weight:400;font-style:italic}
.entry-confirm-notes{margin:0;padding:10px 12px;border:1px solid var(--border-soft);background:var(--panel-alt);white-space:pre-wrap;overflow-wrap:anywhere}
.entry-confirm-footnote{margin:0;color:var(--muted);font-size:12px}
@media (max-width:520px){.entry-confirm-head{flex-direction:column}.entry-confirm-grid{grid-template-columns:1fr 1fr}}
.admin-modal-close{flex:none;width:36px;height:36px;padding:0;display:grid;place-items:center;border:1px solid var(--border-soft);background:transparent;color:var(--muted);font-size:22px;line-height:1;cursor:pointer}
.admin-modal-close:hover,.admin-modal-close:focus-visible{color:var(--text);border-color:var(--gold)}

/* Shared styled confirm + slow-loading controls */
.app-confirm-card{text-align:left}
.app-confirm-eyebrow{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.8}
.app-confirm-card h2{margin:6px 0 10px}
.app-confirm-body{line-height:1.5}
.app-confirm-body p{margin:0 0 8px}
.app-confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;flex-wrap:wrap}
#appLoadingSlow{justify-content:center}

/* Searchable dropdowns */
.app-select-search{position:relative;width:100%}
.app-select-native{display:none!important}
.app-select-input{width:100%;box-sizing:border-box}
.app-select-list{position:absolute;z-index:2500;left:0;right:0;top:calc(100% + 2px);max-height:280px;overflow:auto;border:1px solid var(--gold,#c7ad73);background:var(--panel,#111);box-shadow:0 14px 40px rgba(0,0,0,.5)}
.app-select-option{padding:8px 12px;cursor:pointer;color:var(--text,#ddd);font-size:14px}
.app-select-option.is-active,.app-select-option:hover{background:rgba(199,173,115,.16)}
.app-select-option.is-selected{color:var(--gold,#c7ad73);font-weight:600}
.app-select-empty{padding:8px 12px;color:var(--muted,#999);font-size:13px;font-style:italic}

/* Admin overview */
.admin-overview-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.admin-overview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin:16px 0 20px}
.admin-overview-card{display:grid;gap:6px;text-align:left;padding:16px 18px;border:1px solid var(--border-soft);background:var(--panel-alt);color:var(--text);cursor:pointer;font:inherit}
.admin-overview-card:hover,.admin-overview-card:focus-visible{border-color:var(--gold)}
.admin-overview-card.is-busy{border-left:3px solid var(--gold)}
.admin-overview-count{font-size:30px;font-weight:700;line-height:1;color:var(--muted)}
.admin-overview-card.is-busy .admin-overview-count{color:var(--gold)}
.admin-overview-label{font-weight:600}
.admin-overview-hint{color:var(--muted);font-size:12px}
.admin-overview-open{color:var(--muted);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.admin-overview-card.is-busy .admin-overview-open{color:var(--gold)}
.admin-overview-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}
.admin-overview-list{display:grid}
.admin-overview-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--border-soft);font-size:14px}
.admin-overview-row:last-child{border-bottom:0}
.admin-overview-row small{color:var(--muted);white-space:nowrap}

/* Personnel file: special status (penance / second position) */
.personnel-special-panel .special-block{margin-top:14px;padding:14px 16px;border:1px solid var(--border-soft);background:var(--panel-alt)}
.personnel-special-panel .special-block.is-penance{border-left:3px solid #b95a5a}
.special-block-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.special-block-head h4{margin:0;font-size:15px}
.special-tag{display:inline-block;margin-left:8px;padding:2px 8px;border:1px solid rgba(199,173,115,.5);color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;vertical-align:middle}
.special-tag.is-penance{border-color:rgba(217,106,106,.6);color:#e59a9a}
.special-line{margin:8px 0;color:var(--text);line-height:1.5}
.special-notes{margin:6px 0;padding:8px 10px;border:1px solid var(--border-soft);color:var(--muted);white-space:pre-wrap}
.special-redaction{display:grid;gap:8px;margin:10px 0}
.special-check{display:flex;align-items:center;gap:8px;cursor:pointer}
.special-title-row{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.special-title-row .field-group{flex:1 1 200px;margin:0}
.special-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:10px 0}
.special-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.status-line.error{color:#e07b7b}

/* Special status: form controls (override generic label/input styling) */
.personnel-special-panel .special-check{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;margin:0;padding:0;text-transform:none;letter-spacing:normal;font-size:14px;font-weight:500;color:var(--text)}
.personnel-special-panel .special-check input[type=checkbox]{flex:none;width:18px!important;height:18px!important;min-height:0!important;margin:0;padding:0;accent-color:#b95a5a}
.personnel-special-panel .special-block .field-group{width:100%}
.personnel-special-panel .special-block > label.field-group{display:grid;margin-top:8px}
.personnel-special-panel .special-title-row .field-group{flex:1 1 220px;width:auto}

.app-select-list,.app-select-option,.app-select-empty{text-transform:none;letter-spacing:normal;font-weight:400}
.app-select-option.is-selected{font-weight:600}


/* ---------- Admin list sort bar (same feel as the Community personnel headers) ---------- */
.admin-sort-bar{display:flex;flex-wrap:wrap;align-items:center;gap:4px 18px;padding:10px 20px;border-bottom:1px solid var(--border-soft);background:var(--panel-alt)}
.admin-sort-label{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-right:2px}
.admin-sort{border:0;background:none;color:var(--muted);font:inherit;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 0;cursor:pointer;white-space:nowrap;min-height:0;box-shadow:none}
.admin-sort span{margin-left:4px;font-size:12px}
.admin-sort:hover,.admin-sort.is-active{color:var(--gold);background:none}
.admin-sort:focus-visible{outline:1px solid var(--gold);outline-offset:3px}
.admin-sort-clear{margin-left:auto;color:var(--muted);font-weight:600;letter-spacing:.04em;text-transform:none;font-size:12px}
@media (max-width:640px){.admin-sort-bar{gap:4px 12px;padding:10px 14px}.admin-sort-clear{margin-left:0}}


/* ---------- Audit log ---------- */
.audit-filters{flex-wrap:wrap}
.audit-toolbar{justify-content:flex-start}
.audit-count{letter-spacing:.06em;color:var(--text);font-weight:600;text-transform:none;font-size:12px}
.audit-list{padding:4px 20px 16px}
.audit-day{margin:18px 0 8px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid var(--border-soft);padding-bottom:6px}
.audit-entry{position:relative;border:1px solid var(--border-soft);border-left:3px solid var(--border);background:var(--panel-alt);padding:12px 16px 10px;margin:8px 0}
.audit-entry.audit-approve{border-left-color:#5f9a6b}.audit-entry.audit-reject{border-left-color:var(--error)}
.audit-entry.audit-access{border-left-color:#8c7bd0}.audit-entry.audit-create{border-left-color:#5f8fc0}
.audit-entry.audit-personnel{border-left-color:var(--gold)}.audit-entry.audit-edit{border-left-color:#a88a55}
.audit-entry.audit-system{border-left-color:#6b6b6b;opacity:.85}
.audit-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px}
.audit-badge{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:2px 8px;border:1px solid currentColor;color:var(--muted)}
.audit-approve .audit-badge{color:#7fbf8c}.audit-reject .audit-badge{color:var(--error)}.audit-access .audit-badge{color:#a99be0}
.audit-create .audit-badge{color:#7fb0e0}.audit-personnel .audit-badge,.audit-edit .audit-badge{color:var(--gold)}
.audit-title{margin:0;font-size:15px;font-weight:700;color:var(--text);font-family:inherit;letter-spacing:0}
.audit-area{font-size:12px;color:var(--muted)}
.audit-head time{margin-left:auto;font-size:12px;color:var(--text);white-space:nowrap}
.audit-sub{color:var(--muted);font-weight:400}
.audit-who{display:flex;flex-wrap:wrap;gap:4px 22px;margin-top:8px;font-size:13px}
.audit-who-item small,.audit-notes small{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.audit-changes{margin-top:10px;border-top:1px dashed var(--border-soft);padding-top:8px;display:grid;gap:4px}
.audit-change{display:grid;grid-template-columns:minmax(110px,170px) minmax(0,1fr);gap:2px 12px;font-size:13px;align-items:baseline}
.audit-values{overflow-wrap:anywhere}
.audit-arrow{margin:0 4px}
.audit-field{color:var(--muted)}
.audit-before{color:var(--muted);text-decoration:line-through;text-decoration-color:rgba(211,111,115,.6);overflow-wrap:anywhere}
.audit-after{color:var(--text);overflow-wrap:anywhere}
.audit-arrow{color:var(--gold)}
.audit-empty{color:var(--muted)}
.audit-ref{border-bottom:1px dotted var(--muted);cursor:help}
.audit-id{font-family:"IBM Plex Sans", Arial, Helvetica, sans-serif;font-variant-numeric:tabular-nums;font-size:11px;color:var(--muted)}
.audit-notes{margin-top:8px;display:flex;flex-direction:column;gap:3px;font-size:13px;white-space:pre-wrap}
.audit-ref-line{position:absolute;right:16px;bottom:8px;font-family:"IBM Plex Sans", Arial, Helvetica, sans-serif;font-variant-numeric:tabular-nums;font-size:10px;color:#5d5454}
.audit-more{display:flex;justify-content:center;padding:0 20px 18px}
@media (max-width:640px){.audit-list{padding:4px 12px 12px}.audit-change{grid-template-columns:1fr}.audit-head time{margin-left:0;width:100%}.audit-ref-line{position:static;margin-top:6px}}


/* ---------- Personnel Entry cards ---------- */
.entry-request-card{grid-template-columns:110px minmax(150px,240px) minmax(0,1fr) auto}
.entry-request-facts{display:flex;flex-wrap:wrap;justify-content:flex-start;justify-self:stretch;width:100%;gap:4px 16px;color:var(--text);font-size:12px;font-weight:400;text-align:left}
.entry-request-main strong{font-weight:700}.entry-request-main small{font-weight:400}
.entry-request-meta{display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right;font-weight:400}
.entry-request-main{justify-self:stretch;text-align:left}
.entry-request-status{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);border:1px solid rgba(199,173,115,.45);padding:1px 7px}
.entry-request-status.is-review{color:#d9a35c;border-color:#d9a35c}
.entry-request-wait{color:var(--muted)}
.entry-request-wait.is-late{color:var(--error)}
#personnelEntryResultsSortBar{margin-top:10px}
@media(max-width:900px){.entry-request-card{grid-template-columns:1fr}.entry-request-meta{align-items:flex-start;text-align:left}}


/* ---------- Reliquary ---------- */
.relic-search-panel{flex-wrap:wrap}
.relic-search-panel .field-group{width:170px}
.relic-search-panel .field-grow{flex:1 1 320px;width:auto}
.relic-stats{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.relic-stat{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:110px;padding:10px 14px;border:1px solid var(--border-soft);border-left:3px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;text-align:left;min-height:0}
.relic-stat strong{font:700 22px "EB Garamond", Georgia, "Times New Roman", serif;color:var(--text)}
.relic-stat span{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.relic-stat:hover,.relic-stat.is-active{border-color:var(--gold);background:var(--panel-alt)}
.relic-stat.is-good{border-left-color:#5f9a6b}.relic-stat.is-held{border-left-color:var(--gold)}
.relic-stat.is-warn{border-left-color:#d9a35c}.relic-stat.is-bad{border-left-color:var(--error)}
.relic-row{display:grid;grid-template-columns:90px minmax(160px,1.3fr) minmax(130px,1fr) minmax(120px,1fr) minmax(130px,1fr) 130px;gap:14px;align-items:center;padding:10px 20px;min-height:60px}
.relic-status{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border:1px solid var(--border);color:var(--muted);white-space:nowrap}
.relic-status.is-good{color:#7fbf8c;border-color:#5f9a6b}.relic-status.is-held{color:var(--gold);border-color:rgba(199,173,115,.6)}
.relic-status.is-warn{color:#d9a35c;border-color:#d9a35c}.relic-status.is-bad{color:var(--error);border-color:var(--error)}
.detail-cell-fill{grid-column:span 3}
.relic-image{display:block;max-width:220px;max-height:160px;margin-top:8px;border:1px solid var(--border-soft)}
.relic-history{padding:0 20px 16px}
.relic-confirm-reason small{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-right:6px}
#adminConfirmModal .audit-changes{border-top:0;padding-top:0;margin:4px 0 12px}
@media (max-width:900px){.relic-row{grid-template-columns:1fr 1fr;gap:6px 12px}.relic-row .relic-id{grid-column:1 / -1}.detail-cell-fill{grid-column:auto}}


/* ---------- One status label style everywhere (colour set by adminStatusTone_) ---------- */
.status-badge,.operation-status-badge,.relic-status,.entry-request-status{display:inline-block;width:fit-content;padding:3px 9px;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;line-height:1.4}
.tone-good,.relic-status.is-good{color:#7fbf8c;border-color:#5f9a6b}
.tone-held,.relic-status.is-held,.entry-request-status{color:var(--gold);border-color:rgba(199,173,115,.6)}
.tone-warn,.relic-status.is-warn,.entry-request-status.is-review{color:#d9a35c;border-color:#d9a35c}
.tone-bad,.relic-status.is-bad{color:var(--error);border-color:var(--error)}
.tone-neutral{color:var(--muted);border-color:var(--border)}


.opfor-filter{display:block;width:100%;margin:8px 0 6px;box-sizing:border-box}
.operation-opfor-list label[hidden]{display:none}


.roblox-continue-link{display:inline-block;margin-top:10px;text-decoration:none;text-align:center}
.roblox-continue-link[hidden]{display:none}

/* ---------- Admin Access page (Admin_Client_Access) ---------- */
.access-search-panel{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.access-search-panel .field-grow{flex:1 1 240px}
.access-areas{display:grid;gap:16px;margin-top:12px}
.access-area{background:var(--panel);border:1px solid var(--border-soft);border-left:3px solid var(--accent);padding:16px 18px}
.access-area[data-area="command"]{border-left-color:var(--gold)}
.access-area.is-legacy{border-left-color:var(--error)}
.access-area-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.access-area-head h3{margin:0;font-size:15px;letter-spacing:.08em;text-transform:uppercase}
.access-count{color:var(--muted);font-size:12px}
.access-note{color:var(--muted);font-size:13px;margin:6px 0 12px}
.access-holders{display:grid;gap:6px}
.access-holder{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 10px;background:var(--panel-alt);border:1px solid var(--border-soft)}
.access-holder-name{display:flex;flex-direction:column;min-width:0}
.access-holder-name span{color:var(--muted);font-size:12px}
.access-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.access-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:1px solid rgba(199,173,115,.5);color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.access-chip.is-legacy{border-color:rgba(217,106,106,.6);color:#e59a9a}
.access-chip-remove{background:none;border:0;color:inherit;padding:0 0 0 4px;margin:0;min-height:0;font-size:14px;line-height:1;cursor:pointer}
.access-chip-remove:hover{color:var(--error)}
.access-other{color:var(--muted);font-size:12px}
.access-empty{margin:0;padding:10px 12px;text-align:left;font-size:13px}
.access-add{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-soft)}
.access-add .field-grow{flex:1 1 240px}
.access-clear{min-height:0;padding:4px 10px;font-size:12px}
#personnelAccessCurrent .access-chip{margin-right:4px}
@media (max-width:640px){.access-add > *{flex:1 1 100%}.access-add button{width:100%}}
/* Point & Allied requests (Attendance page; Admin_Client_PointRequests) */
.point-requests-panel { margin-top: 18px; }
.point-requests-panel[hidden] { display: none; }
.point-request-row { border: 1px solid #2c352e; border-radius: 4px; padding: 12px 14px; margin-bottom: 10px; background: rgba(255,255,255,.015); }
.point-request-row.is-decided { padding: 8px 12px; opacity: .85; }
.point-request-head { display: grid; grid-template-columns: minmax(140px,1fr) minmax(180px,2fr) minmax(120px,auto); gap: 14px; align-items: start; }
.point-request-detail { margin: 10px 0 0; padding: 8px 10px; border-left: 2px solid #4b5a4e; color: #cbd2cc; white-space: normal; overflow-wrap: anywhere; }
.point-request-detail a { display: inline-block; margin-top: 6px; }
.point-request-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; margin-top: 10px; }
.point-request-actions .field-group { margin: 0; display: flex; flex-direction: column; gap: 4px; }
.point-request-actions .point-request-points { width: 90px; }
.point-requests-history { margin-top: 8px; }
.point-requests-history summary { cursor: pointer; color: #9aa39d; padding: 6px 0; }
@media (max-width: 700px) { .point-request-head { grid-template-columns: 1fr; gap: 6px; } }
/* Relic grade (Master Crafted / Holy Relic) next to the relic name */
.relic-grade-badge { display: inline-block; margin-left: 6px; padding: 1px 7px; border: 1px solid #8a7334; border-radius: 10px; color: #d9bf6a; font-size: 11px; font-weight: 600; letter-spacing: .3px; vertical-align: middle; white-space: nowrap; }
/* Operation logging: Community Zeus name + Co-Zeus picker */
.operation-community-name { margin-top: 6px; }
.operation-cozeus-add { display: flex; gap: 8px; padding: 8px; border-top: 1px solid #2c352e; }
.operation-cozeus-add input { flex: 1; min-width: 0; }
/* Overview → Needs you (Admin_Client_Overview) */
.admin-needs-panel { margin: 14px 0 18px; }
.admin-needs-list { display: grid; }
.admin-needs-row { display: grid; grid-template-columns: 56px 1fr auto; gap: 14px; align-items: center; padding: 12px 18px; border-bottom: 1px solid var(--border-soft, #2c352e); border-left: 3px solid var(--gold, #c9a54a); }
.admin-needs-row:last-child { border-bottom: 0; }
.admin-needs-row.is-amber { border-left-color: #d39b3a; background: rgba(211,155,58,.06); }
.admin-needs-row.is-red { border-left-color: #c75c5c; background: rgba(199,92,92,.08); }
.admin-needs-count { font-size: 26px; font-weight: 700; color: var(--gold, #c9a54a); text-align: center; }
.admin-needs-row.is-red .admin-needs-count { color: #e08a8a; }
.admin-needs-text { display: grid; gap: 3px; min-width: 0; }
.admin-needs-text small { color: var(--muted, #9aa39d); overflow-wrap: anywhere; }
.admin-needs-clear { padding: 18px; color: #8fc79a; }
.admin-overview-subhead { margin: 6px 0 -6px; }
.admin-overview-by { color: var(--muted, #9aa39d); font-weight: 400; }
@media (max-width: 640px) { .admin-needs-row { grid-template-columns: 44px 1fr; } .admin-needs-row button { grid-column: 1 / -1; } }
/* Operations → Availability heat map (Admin_Client_Availability) */
.availability-filters { align-items: flex-end; }
.availability-filters .availability-check { display: flex; flex-direction: row; align-items: center; gap: 8px; font-size: 13px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--text, #e6e9e6); align-self: center; white-space: nowrap; }
.availability-filters .availability-check input { width: 16px; height: 16px; min-height: 0; padding: 0; margin: 0; flex: 0 0 auto; accent-color: var(--gold, #c9a54a); }
.avail-grid-wrap { overflow-x: auto; padding: 8px 20px; }
.avail-grid { border-collapse: separate; border-spacing: 2px; }
.avail-grid th { font-size: 11px; font-weight: 600; color: var(--muted, #9aa39d); padding: 0 6px 0 0; text-align: left; white-space: nowrap; }
.avail-grid thead th { text-align: center; padding: 0 0 4px; }
.avail-heat td { width: 30px; height: 26px; min-width: 30px; text-align: center; font-size: 11px; font-weight: 700; color: #0e120f; border-radius: 3px; background: #1a1d1b; }
.avail-heat td.h0 { color: transparent; }
.avail-heat td.h1, .availability-legend .h1 { background: #3b3424; color: #d8c9a0; }
.avail-heat td.h2, .availability-legend .h2 { background: #5c4c26; color: #f0e2bd; }
.avail-heat td.h3, .availability-legend .h3 { background: #8a6f2c; }
.avail-heat td.h4, .availability-legend .h4 { background: #b9933a; }
.avail-heat td.h5, .availability-legend .h5 { background: #e2bd55; }
.availability-legend { display: flex; align-items: center; gap: 4px; padding: 0 20px; font-size: 12px; color: var(--muted, #9aa39d); }
.availability-legend i { display: inline-block; width: 18px; height: 12px; border-radius: 2px; }
.availability-best-title { margin: 16px 20px 6px; }
.availability-best { margin: 0 20px 10px; padding-left: 20px; display: grid; gap: 4px; }
.availability-panel .personnel-meta { padding: 0 20px 16px; }
/*
 * Action panels opened from inside a record window (Edit Personnel, Adjust Points, Edit Relic) open as their
 * own window on top, instead of appearing at the bottom of the record. (No transform on the record window,
 * so these fixed windows are placed against the screen.)
 */
.personnel-action-panel:not(.hidden),.relic-edit-panel:not(.hidden){position:fixed!important;z-index:1300;top:6vh;left:0;right:0;width:min(1100px,calc(100vw - 28px));max-height:88vh;overflow:auto;overscroll-behavior:contain;margin:0 auto!important;padding:18px 20px;background:var(--panel);border:1px solid var(--gold);box-shadow:0 0 0 100vmax rgba(0,0,0,.6),0 24px 70px #000}
/* Service Outcome (Admin_Client_ServiceOutcome) and former-member tags in the Personnel list */
.service-status-tag{display:inline-block;margin-left:6px;padding:1px 7px;border:1px solid var(--muted,#8a7a66);border-radius:999px;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;color:var(--muted,#b9a98f)}
.service-status-tag.is-deserted{border-color:#b04a3c;color:#e08a7c}
.service-status-tag.is-discharged{border-color:#8a8a8a;color:#c8c8c8}
.service-status-tag.is-retired{border-color:#7f8f6a;color:#b8c7a0}
.personnel-row.is-former{opacity:.62}
.personnel-row.is-former:hover{opacity:1}
.service-outcome-panel .so-section{grid-column:1/-1;border-top:1px solid rgba(201,162,91,.25);padding-top:10px}
.service-outcome-panel .so-section .personnel-action-grid{padding:0;margin:0}
.service-outcome-panel .field-group{width:auto;min-width:0}
.service-outcome-panel #soReplacement{grid-column:1/-1;padding-top:4px}
.service-outcome-panel .so-check label{display:flex;gap:8px;align-items:flex-start;font-weight:normal;text-transform:none;letter-spacing:0;cursor:pointer}
.service-outcome-panel .so-check input[type=checkbox]{width:18px;height:18px;min-height:0;flex:0 0 18px;margin:2px 0 0;padding:0;accent-color:var(--gold)}
.service-outcome-panel .so-steps{margin:0;padding-left:20px;line-height:1.7}
#serviceOutcomeWho{margin:14px 20px 0;line-height:1.5}
/* Duplicate operations (Admin_Client_OperationMerge) */
.merge-intro{margin:0 20px 6px;line-height:1.5}
#operationMergeGroups{display:grid;gap:14px;padding:6px 20px 16px}
.merge-group{border:1px solid var(--border);background:var(--panel-alt)}
.merge-table-wrap{overflow-x:auto}
.merge-table{width:100%;border-collapse:collapse;font-size:13px}
.merge-table th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:9px 12px;border-bottom:1px solid var(--border)}
.merge-table td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.05);vertical-align:top}
.merge-table tr:has(input[type=radio]:checked){background:rgba(201,162,91,.08)}
.merge-choice{white-space:nowrap}
.merge-choice label{display:flex;align-items:center;gap:6px;margin:0 0 4px;font-size:12px;font-weight:normal;text-transform:none;letter-spacing:0;cursor:pointer}
.merge-choice input{width:16px;height:16px;min-height:0;margin:0;padding:0;accent-color:var(--gold)}
.merge-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;flex-wrap:wrap}
.merge-footer .merge-preview{flex:1 1 260px}
.merge-manual{margin:4px 20px 20px;border:1px solid var(--border);padding:10px 14px}
.merge-manual summary{cursor:pointer;color:var(--gold)}
.merge-pick-list{display:grid;gap:4px;max-height:260px;overflow:auto;margin:8px 0 12px}
.merge-pick{display:flex;gap:8px;align-items:baseline;font-weight:normal;text-transform:none;letter-spacing:0;cursor:pointer}
.merge-pick input{width:16px;height:16px;min-height:0;margin:0;accent-color:var(--gold)}
.merge-warning{color:#e0a46c}
/* Roblox Group Check (Admin_Client_GroupCheck) */
.group-check-intro{margin:10px 20px;line-height:1.5}
.group-check-intro a{color:var(--gold)}
.group-check-section{border:1px solid var(--border);margin:10px 20px;background:var(--panel-alt)}
@media (max-width:600px){.group-check-section,.group-check-intro{margin-left:8px;margin-right:8px}}
.group-check-section>summary{cursor:pointer;padding:12px 14px;display:flex;align-items:center;gap:10px;justify-content:space-between}
.group-check-section>summary::-webkit-details-marker{display:none}
.group-check-section .empty-state{padding:14px}
.group-check-section .group-check-note{margin:0;padding:4px 14px 14px;line-height:1.5}
.group-check-table a{color:var(--gold)}
.group-check-table .link-button{background:none;border:0;padding:0;min-height:0;color:var(--text,#e8dccb);font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}

/* Accessibility (stage 9): a clear outline for keyboard focus everywhere; less motion when asked. */
:focus-visible { outline: 2px solid #d9bf7d; outline-offset: 2px; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline-offset: 0; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }

/* Stage 9: an empty request queue takes one line. */
.character-review-panel.is-empty #characterAdminList,.character-review-panel.is-empty #characterAdminDetail{display:none}
.character-review-panel.is-empty .results-heading{padding-top:12px;padding-bottom:12px}
.character-review-panel.is-empty .results-heading .eyebrow{display:none}
.character-review-panel.is-empty .results-heading h3{font-size:17px}

/* Stage 9: compact header. Brand and account on one line; every module on one line below, scrolling sideways when narrow. */
.topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"brand . account" "nav nav nav";align-items:center;column-gap:20px;row-gap:4px;padding:10px 28px 0;min-height:0}
.topbar>div:first-child{grid-area:brand;display:flex;align-items:baseline;gap:12px;white-space:nowrap;min-width:0}
.topbar>div:first-child .eyebrow{margin:0}
.topbar h1{margin:0;font-size:20px;line-height:1.2}
.topbar-actions{grid-area:account;min-width:0;white-space:nowrap;margin:0}
.topbar-actions a,.topbar-actions button{white-space:nowrap}
.auth-username{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar-module-tabs{grid-area:nav;display:flex;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;width:auto;order:0;margin:0 -28px;padding:2px 28px 8px;gap:2px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.topbar-module-tabs.hidden{display:none}
.topbar-module-tabs .tab-button{flex:0 0 auto;white-space:nowrap}
@media(max-width:700px){
  .topbar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand account" "nav nav";padding:8px 14px 0;column-gap:10px}
  .topbar>div:first-child .eyebrow,.auth-user-id,.auth-avatar{display:none}
  .topbar h1{font-size:18px}
  .auth-copy{display:none}
  .topbar>div:first-child,.topbar h1{overflow:hidden;text-overflow:ellipsis}
  .topbar-module-tabs{margin:0 -14px;padding:2px 14px 8px}
}
