/* =====================================================================
   Admin screens: Settings, Department Leadership, Sheet tools (adm-*)
   ===================================================================== */
.adm-grid { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); align-items: start; }
.adm-grid > .e-card + .e-card { margin-top: 0; }
@media (min-width: 1000px) { .adm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .adm-grid > .wide { grid-column: 1 / -1; } }
@media (min-width: 1560px) { .adm-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.adm-grid > .wide:empty { display: none; }
.adm-narrow { max-width: 620px; }
.adm-pgrid { margin-bottom: 14px; }

.adm-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--bad); margin-left: 7px; vertical-align: 2px; }
.adm-p { margin-bottom: 12px; font-size: .9rem; }
.adm-sub { display: block; color: var(--muted); font-size: .82rem; font-weight: 400; overflow-wrap: anywhere; }
.adm-grow { flex: 1; min-width: 0; }
.adm-mono { font-family: var(--mono); letter-spacing: .04em; }
.adm-nowrap { white-space: nowrap; font-size: .85rem; }
.adm-center { justify-content: center; }
.adm-act { margin-top: 12px; }
.adm-mb { margin-bottom: 12px; }
.e-card .e-hint + .e-hint { margin-top: 6px; }
.e-card .e-hint { overflow-wrap: anywhere; }
.e-card > .e-status:not(:empty), form > .e-status:not(:empty) { margin-top: 10px; }

/* inline form row: input grows, buttons stay */
.adm-inline { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; }
.adm-inline > .e-input, .adm-inline > .e-field { flex: 1 1 180px; min-width: 0; width: auto; }
.adm-fields { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); align-items: end; margin-bottom: 12px; }
.adm-dnr { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.adm-dnr > .e-btn, .adm-f4 > .e-btn { justify-self: start; }
.e-page:has(.adm-grid, .adm-fields, .adm-inline) .e-card .e-field + .e-field,
.e-page:has(.adm-grid, .adm-fields, .adm-inline) .e-card .e-field + .adm-fields { margin-top: 12px; }
.adm-fields .e-field + .e-field { margin-top: 0; }
.e-field textarea { min-height: 84px; }

/* chips with a remove button */
.adm-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.adm-chip { display: inline-flex; align-items: center; gap: 7px; padding: 4px 6px 4px 11px; border-radius: var(--r-sm); border: 1px solid var(--rule-2); background: var(--field); font-size: .86rem; overflow-wrap: anywhere; min-height: 30px; }
.adm-chip:not(:has(.adm-x)) { padding-right: 11px; }
.adm-k { font-size: .8rem; font-weight: 600; color: var(--gold); }
.adm-x { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0; border: 0; border-radius: var(--r-sm); background: var(--well);
  color: var(--ink-2); font: inherit; font-size: .7rem; line-height: 1; cursor: pointer; flex: none; }
.adm-x:hover { background: var(--bad-wash); color: var(--bad); }
.adm-x.armed { padding: 0 9px; background: var(--bad-solid); color: #fff; font-weight: 700; font-size: .74rem; }

/* toggle rows */
.adm-toggle { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 0; border-top: 1px solid var(--rule); cursor: pointer; color: var(--ink-2); }
.adm-toggle + .adm-toggle { border-top: 1px solid var(--rule); }
:root { --knob: #ffffff; }
:root[data-theme="dark"] { --knob: #d9d6cc; }
.adm-switch { appearance: none; -webkit-appearance: none; flex: none; position: relative; width: 40px; height: 23px; margin: 0; border-radius: var(--r-sm); background: var(--well); border: 1px solid var(--rule-2); cursor: pointer; transition: background .15s, border-color .15s; }
.adm-switch::after { content: ""; position: absolute; top: 2px; left: 2px; width: 17px; height: 17px; border-radius: 1px; background: var(--knob); box-shadow: 0 0 0 1px var(--rule-2); transition: transform .15s, box-shadow .15s; }
.adm-switch:checked { background: var(--sage); border-color: var(--sage); }
.adm-switch:checked::after { transform: translateX(17px); box-shadow: none; }
.adm-switch:focus-visible { outline: 2px solid var(--sage); outline-offset: 2px; }
.adm-cb { width: 18px; height: 18px; accent-color: var(--sage); }

/* lists */
.adm-list > * { gap: 12px; }
.adm-list > div { padding: 10px 2px; }
.adm-log .adm-when { color: var(--muted); font-size: .8rem; font-variant-numeric: tabular-nums; margin-right: 4px; }
.adm-log { max-height: 460px; overflow-y: auto; }
.adm-fz { margin-bottom: 12px; align-items: flex-start; flex-wrap: wrap; }
.adm-fz .e-btn { margin-left: auto; }
.adm-preview { margin-top: 12px; font-size: .86rem; color: var(--muted); }
.adm-preview:empty { display: none; }
.adm-kv { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; font-size: .92rem; margin-bottom: 10px; }
.adm-kv dt { color: var(--muted); }
.adm-kv dd { margin: 0; font-weight: 600; }
.adm-big { font-family: var(--serif); font-size: 2rem; font-weight: 700; line-height: 1.1; margin-bottom: 12px; }
.adm-big.adm-mono { font-family: var(--mono); font-size: 1.6rem; }

/* promotions table */
.adm-req { max-height: none; }
.adm-req input[type=number] { width: 84px; min-height: 34px; padding: 4px 8px; text-align: right; display: inline-block; }
.adm-req tr.adm-merit input[type=number] { opacity: .35; }
.adm-req td:first-child { white-space: nowrap; }

/* people */
.adm-who .e-pick { width: 100%; }
.adm-picked { display: flex; align-items: center; gap: 12px; margin-top: 12px; padding: 10px 12px; border-radius: var(--r); border: 1px solid color-mix(in srgb, var(--sage) 55%, transparent); background: var(--sage-wash); flex-wrap: wrap; }
.adm-picked .e-who .nm a { color: var(--ink); }
.adm-picked .e-who .nm a:hover { color: var(--sage-ink); }
.adm-person { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.adm-person:hover .nm { color: var(--sage-ink); }
.adm-tags { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.adm-mb.adm-tags { justify-content: flex-start; }
.adm-tag { align-items: center; gap: 6px; padding: 3px 4px 3px 9px; }
.adm-tag .adm-x { min-width: 18px; height: 18px; background: transparent; color: inherit; }
.adm-sws { display: flex; flex-wrap: wrap; gap: 7px; margin: 12px 0; }
.adm-sw { width: 30px; height: 30px; border-radius: var(--r-sm); border: 2px solid transparent; cursor: pointer; padding: 0; position: relative; }
.adm-sw::after { content: ""; position: absolute; inset: 8px; border-radius: 1px; background: var(--sf); }
.adm-sw.on { border-color: var(--sf); box-shadow: 0 0 0 2px var(--paper) inset; }
.adm-sw { background: var(--well); }
.adm-sw.c-gold { --sf: var(--gold); } .adm-sw.c-red { --sf: var(--bad); } .adm-sw.c-orange { --sf: var(--orange); }
.adm-sw.c-green { --sf: var(--sage-ink); } .adm-sw.c-teal { --sf: var(--teal); } .adm-sw.c-blue { --sf: var(--info); }
.adm-sw.c-purple { --sf: var(--cpm); } .adm-sw.c-pink { --sf: #9b3b6a; } .adm-sw.c-grey { --sf: var(--ink-2); }
:root[data-theme="dark"] .adm-sw.c-pink { --sf: #f0a1c5; }
.adm-amt { flex: 1 1 120px; }

/* rank history + inline edit forms */
.adm-hist { display: grid; }
.adm-hist > * { border-top: 1px solid var(--rule); }
.adm-hist > *:first-child { border-top: 0; }
.adm-hrow { display: flex; align-items: center; gap: 10px; padding: 10px 2px; flex-wrap: wrap; }
.adm-edit { display: block !important; padding: 14px !important; margin: 6px 0; border-radius: var(--r); background: var(--sage-wash); border: 1px solid color-mix(in srgb, var(--sage) 55%, transparent) !important; }
.adm-edit > b { display: block; margin-bottom: 10px; }
.adm-edit .adm-fields { margin: 12px 0 0; }
.adm-hadd { margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--rule-2); }
.adm-sublabel { color: var(--ink-2); font-size: .9rem; font-weight: 600; margin-bottom: 10px; }
.adm-f4 { margin-bottom: 0; }
.adm-shop .adm-switch { margin-left: 4px; }

/* passcode lock */
.adm-lock { max-width: 420px; margin: 24px auto; }

/* toast */
.adm-toast { position: fixed; left: 50%; bottom: 24px; z-index: 120; transform: translate(-50%, 16px); opacity: 0; pointer-events: none; max-width: calc(100vw - 32px);
  padding: 10px 18px; border-radius: var(--r-sm); background: var(--toast-bg); color: var(--toast-ink); font-weight: 600; font-size: .9rem; box-shadow: var(--shadow); transition: opacity .2s, transform .2s; }
.adm-toast.show { opacity: 1; transform: translate(-50%, 0); }
.adm-toast.err { background: var(--bad-solid); color: #fff; border-radius: var(--r); }

/* ---------- Department Leadership ---------- */
.adm-ld-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); align-items: start; }
.adm-ld { padding: 0; overflow: hidden; border-color: var(--gold-line) !important; }
.adm-ld + .adm-ld { margin-top: 0; }
.adm-ld-head { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 12px 18px; background: var(--gold-wash); border-bottom: 1px solid var(--gold-line); }
.adm-ld-head span:first-child { color: var(--gold); font-size: .9rem; font-weight: 600; }
.adm-ld-head span:last-child { color: var(--gold); font-size: .8rem; }
.adm-ld-body { padding: 18px; }
.adm-ld-who { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.adm-ld-who .e-av.lg { border: 2px solid var(--gold-line); }
.adm-ld-name { display: block; font-family: var(--serif); font-size: 1.45rem; font-weight: 700; color: var(--ink); overflow-wrap: anywhere; }
.adm-ld-name:hover { color: var(--gold); }
.adm-ld-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 16px 0 14px; border-top: 1px solid var(--rule-2); border-bottom: 1px solid var(--rule-2); }
.adm-ld-stats div { padding: 10px 12px; border-left: 1px solid var(--rule-2); }
.adm-ld-stats div:first-child { border-left: 0; padding-left: 0; }
.adm-ld-stats b { display: block; font-family: var(--serif); font-weight: 700; font-size: 1.45rem; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.adm-ld-stats span { color: var(--muted); font-size: .78rem; }
.adm-ld-vacant { text-align: center; padding: 18px 0 14px; color: var(--muted); font-family: var(--serif); font-size: 1.3rem; font-weight: 700; letter-spacing: .02em; }
.adm-ld-panel { margin-top: 16px; padding-top: 16px; border-top: 1px dashed var(--gold-line); display: grid; gap: 12px; }
.adm-ld-panel .e-field + .e-field, .adm-ld-panel .adm-fields { margin: 0; }
.adm-ld-panel .adm-picked { margin-top: 0; }
.adm-ld-panel .e-seg { justify-self: start; }
.adm-gold { background: var(--gold-solid); border-color: var(--gold-solid); color: var(--on-gold); font-weight: 600; }
.adm-gold:hover:not(:disabled) { background: var(--gold); border-color: var(--gold); }
.adm-gold.armed { background: var(--gold); color: var(--on-gold); }
.adm-ld-past { margin-top: 14px; }
.adm-ld-past .e-li { gap: 12px; }
.adm-flash { margin-bottom: 14px; }

/* ---------- Sheet tools ---------- */
.adm-tools { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); }
.adm-tools > .e-card + .e-card { margin-top: 0; }
@media (min-width: 1200px) { .adm-tools { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } }
.adm-tool { display: flex; align-items: center; gap: 14px; }
.adm-tool b { font-size: 1rem; }
.adm-danger { border-color: var(--bad-line) !important; }
.adm-qpanel { margin-top: 14px; padding: 14px; border-radius: var(--r); border: 1px solid var(--bad-line); background: var(--bad-wash); }
.adm-qpanel p { margin-bottom: 10px; color: var(--ink-2); }
.adm-qpanel .e-input { flex: 1 1 140px; font-family: var(--mono); letter-spacing: .1em; }
#t-st:not(:empty) { margin-top: 14px; }

@media (max-width: 600px) {
  .adm-tool { flex-wrap: wrap; }
  .adm-tool > .e-btn { width: 100%; }
  .adm-ld-stats div { padding: 8px 10px; }
  .adm-ld-stats div:first-child { padding-left: 0; }
  .adm-picked .e-empid { order: 3; }
  .e-tabs button { padding: 10px 11px; }
}
.adm-ld-who .adm-grow { min-width: 150px; }
.adm-ld-name { overflow-wrap: normal; word-break: normal; }
.adm-ld-past .e-li { flex-wrap: wrap; }
.adm-ld-past .e-li .e-who { min-width: 140px; }
@media (max-width: 600px) {
  .adm-ld-past .adm-nowrap { width: 100%; padding-left: 40px; margin-top: -4px; }
  .adm-ld-body { padding: 16px; }
}
.adm-picked .e-who { min-width: 150px; }

/* Settings ▸ Events */
.adm-evt-card .e-card-title { align-items: center; }
.adm-evt-on { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; }
.adm-evt-card.off > :not(.e-card-title) { opacity: .5; }
.adm-evt-h { margin: 12px 0 6px; font-size: .9rem; font-weight: 600; color: var(--ink-2); }
.adm-evt-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.e-page .e-card .adm-evt-row .e-field + .e-field { margin-top: 0; }
.adm-evt-row .e-field span { font-size: .8rem; }
.adm-evt-row input { text-align: right; font-variant-numeric: tabular-nums; }
.adm-evt-row input.bad { border-color: var(--bad-line); }
.adm-evt-save { display: flex; align-items: center; justify-content: flex-end; gap: 14px; flex-wrap: wrap; }
.adm-evt-save .e-status { margin-right: auto; }
@media (max-width: 480px) { .adm-evt-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Settings ▸ Health */
.adm-hl-secs { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.adm-hl-top { display: flex; justify-content: space-between; gap: 8px; font-size: .9rem; }
.adm-hl-top span { font-variant-numeric: tabular-nums; color: var(--ink-2); }
.adm-hl-bar { display: block; height: 8px; margin: 6px 0 4px; border-radius: var(--r-sm); background: var(--well); overflow: hidden; }
.adm-hl-bar i { display: block; height: 100%; border-radius: var(--r-sm); background: var(--sage); }
.adm-hl-sec.low .adm-hl-bar i { background: var(--warn); }
.adm-hl-sec.low small { color: var(--warn); }
.adm-hl-daily { flex: 1 1 260px; border-top: 0; padding: 0; }
.adm-hl-list { list-style: none; margin: 8px 0 0; padding: 0; display: grid; }
.adm-hl-list li { display: flex; flex-wrap: wrap; gap: 2px 10px; padding: 7px 0; border-top: 1px solid var(--rule); }
.adm-hl-list li:first-child { border-top: 0; }
.adm-hl-list .e-muted { font-size: .85rem; }
/* Settings ▸ People: earning freezes */
.adm-fzlist > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.adm-fzlist .adm-person { flex: 1; min-width: 0; text-decoration: none; color: inherit; }
.adm-fzlist .adm-fzoff { opacity: .6; }
/* Rich text editor (edit/richtext.js) */
.rte { border: 1px solid var(--rule-2); border-radius: var(--r); background: var(--paper); overflow: hidden; }
.rte:focus-within { border-color: var(--sage); box-shadow: 0 0 0 3px var(--sage-wash); }
.rte-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; padding: 6px; border-bottom: 1px solid var(--rule); background: var(--sheet); position: sticky; top: 0; z-index: 1; }
.rte-style { height: 32px; padding: 0 8px; margin-right: 4px; border-radius: var(--r); border: 1px solid var(--rule-2); background: var(--paper); color: var(--ink); font: inherit; font-size: .88rem; }
.rte-btn { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: var(--r); background: none; color: var(--ink-2); cursor: pointer; }
.rte-btn svg { width: 17px; height: 17px; }
.rte-btn:hover { background: var(--well); color: var(--ink); }
.rte-btn.on { background: var(--sage-wash); color: var(--sage-ink); }
.rte-sep { width: 1px; height: 20px; margin: 0 4px; background: var(--rule-2); }
.rte-link { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 8px; border-bottom: 1px solid var(--rule); }
.rte-link[hidden] { display: none; }
.rte-link .e-input { flex: 1 1 240px; height: 34px; }
.rte-area { min-height: 180px; max-height: 60vh; overflow: auto; padding: 14px 16px; outline: none; max-width: none; }
.rte-area:empty::before { content: "Write here…"; color: var(--muted); }
/* Settings ▸ Site text */
.st-layout { display: grid; grid-template-columns: minmax(200px, 280px) minmax(0, 1fr); gap: 18px; align-items: start; }
.st-list { display: grid; gap: 14px; }
.st-gh { font-size: .88rem; font-weight: 600; color: var(--ink-2); margin-bottom: 6px; }
.st-group { display: grid; gap: 4px; }
.st-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; padding: 8px 10px; border-radius: var(--r-sm); border: 1px solid transparent; background: none; color: var(--ink-2); font: inherit; font-size: .9rem; text-align: left; cursor: pointer; }
.st-item:hover { background: var(--sheet); color: var(--ink); }
.st-item.on { background: var(--sage-wash); border-color: color-mix(in srgb, var(--sage) 55%, transparent); color: var(--ink); }
.st-item .e-chip { font-size: .7rem; padding: 1px 7px; }
.st-item .aw-lock { font-size: .68rem; padding: 0 5px; }
.aw-lockrow { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--rule); }
.aw-lockrow > div { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 200px; }
.aw-lockrow small { font-size: .82rem; }
.st-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; }
.st-actions + .e-hint { margin-top: 8px; }
.st-edit .e-hint { margin: -4px 0 10px; }
@media (max-width: 900px) { .st-layout { grid-template-columns: minmax(0, 1fr); } }
/* Settings ▸ Awards and Market: add / remove / restore */
.st-new { color: var(--sage-ink); font-weight: 600; border: 1px solid var(--rule-2); justify-content: flex-start; }
.st-new:hover { border-color: color-mix(in srgb, var(--sage) 55%, transparent); }
.st-removed { padding-top: 10px; border-top: 1px solid var(--rule); }
.st-rm { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 10px; font-size: .9rem; }
.st-rm > span { min-width: 0; }
.st-rm small { display: block; font-size: .78rem; }
.aw-form .adm-fields { margin: 0 0 12px; }
.aw-form textarea { width: 100%; resize: vertical; }
.adm-push { margin-left: auto; }
.adm-new { margin-top: 12px; }
.adm-rmh { margin: 18px 0 6px; }
@media (max-width: 560px) { .rte-sep { display: none; } .rte-style { flex: 1 0 100%; margin: 0 0 4px; } }
