.admin-body{background:#f5f3ef;color:#161616}.admin-topbar{display:flex;justify-content:space-between;gap:2rem;align-items:center;padding:2rem clamp(1rem,4vw,4rem);background:#111;color:#fff;border-bottom:4px solid #b89a45}.admin-topbar h1{margin:.15rem 0}.admin-topbar .muted{color:#d4d4d4}.topbar-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.admin-shell{padding:2rem clamp(1rem,4vw,4rem) 4rem}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.metric-card{background:#fff;border:1px solid #ddd6c8;border-radius:18px;padding:1.1rem;display:flex;flex-direction:column;gap:.25rem}.metric-card strong{font-size:2rem}.metric-card small,.muted{color:#666}.admin-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,.8fr);gap:1rem;margin-bottom:1rem}.admin-panel{background:#fff;border:1px solid #ddd6c8;border-radius:18px;padding:1.25rem}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.panel-heading.compact{align-items:center}.panel-heading h2{margin:.15rem 0}.panel-actions{display:flex;gap:.5rem;flex-wrap:wrap}.panel-actions input,.panel-actions select,.admin-note-label textarea{border:1px solid #c8c1b5;border-radius:10px;padding:.65rem .75rem;font:inherit;background:#fff}.table-wrap{overflow:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{text-align:left;padding:.8rem .65rem;border-bottom:1px solid #eee8df;vertical-align:top}.admin-table tbody tr{cursor:pointer}.admin-table tbody tr:hover,.admin-table tbody tr.selected{background:#f7f1df}.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:.35rem .65rem;font-size:.85rem;background:#ece8df;color:#333}.status-pill[data-status="verified"]{background:#e0efe5;color:#16582e}.status-pill[data-status="submitted"]{background:#fff0c7;color:#6a4b00}.status-pill[data-status="adjustment"]{background:#fff0c7;color:#6a4b00;border:1px solid #e2bd55}.status-pill[data-status="cancelled"]{background:#f4dddd;color:#7e1f1f}.detail-list{display:grid;gap:.65rem;margin:0 0 1rem}.detail-list div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid #eee8df;padding-bottom:.45rem}.detail-list dt{color:#666}.detail-list dd{margin:0;text-align:right;font-weight:600}.attendee-detail-list{display:grid;gap:.6rem;margin-bottom:1rem}.attendee-detail{border:1px solid #eee8df;border-radius:12px;padding:.75rem}.attendee-detail strong{display:block}.admin-note-label{display:grid;gap:.4rem}.detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:1rem}.button.danger{background:#7f1d1d;color:#fff;border-color:#7f1d1d}.inline-message{min-height:1.25rem;color:#5c4b16}.admin-seat-map{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.admin-table-block{border:1px solid #ddd6c8;border-radius:16px;padding:.8rem}.admin-table-title{display:flex;justify-content:space-between;margin-bottom:.65rem}.admin-seat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem}.admin-seat{aspect-ratio:1;border-radius:999px;border:1px solid #bdb6aa;background:#fff;font-size:.8rem}.admin-seat.pending{background:#f4cf65}.admin-seat.sold{background:#a7d7b2}.admin-seat.reserved{background:#bbb}.admin-seat.held{background:#c8b7e6}.admin-seat.selectable{cursor:pointer}.admin-seat.chosen{outline:3px solid #8b1e2d;outline-offset:2px}.legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.9rem}.legend span{display:flex;align-items:center;gap:.35rem}.dot{width:.75rem;height:.75rem;border-radius:999px;display:inline-block}.dot.available{background:#fff;border:1px solid #aaa}.dot.pending{background:#f4cf65}.dot.sold{background:#a7d7b2}.dot.reserved{background:#bbb}.empty-state,.empty-detail{color:#666;text-align:center;padding:2rem 1rem}.seat-dialog{width:min(900px,92vw);border:0;border-radius:18px;padding:1.25rem}.seat-dialog::backdrop{background:rgba(0,0,0,.55)}.icon-button{border:0;background:transparent;font-size:2rem}.dialog-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}@media(max-width:900px){.metric-grid{grid-template-columns:repeat(2,1fr)}.admin-grid{grid-template-columns:1fr}.admin-topbar{align-items:flex-start;flex-direction:column}}@media(max-width:560px){.metric-grid{grid-template-columns:1fr}.detail-actions{grid-template-columns:1fr}.panel-actions{width:100%}.panel-actions input,.panel-actions select{width:100%}}

.login-gate{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:1rem;background:rgba(17,17,17,.94)}.login-card{width:min(430px,100%);background:#fff;border-radius:20px;padding:1.5rem;display:grid;gap:1rem}.login-card h1{margin:0}.login-card label{display:grid;gap:.35rem;font-weight:600}.login-card input{border:1px solid #c8c1b5;border-radius:10px;padding:.75rem;font:inherit}.admin-identity{font-size:.9rem;color:#ddd}.report-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem}.report-button{border:1px solid #ddd6c8;background:#fff;border-radius:14px;padding:1rem;text-align:left;cursor:pointer;display:grid;gap:.4rem}.report-button:hover{background:#f7f1df}.report-button span{font-size:.85rem;color:#666}.reports-panel{margin-bottom:1rem}@media(max-width:1050px){.report-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.report-grid{grid-template-columns:1fr}}

.development-banner{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;padding:10px 18px;background:#f6d365;color:#332600;border-bottom:2px solid #b7791f;text-align:center}.development-banner[hidden]{display:none}.development-banner span{font-size:.9rem}

/* Respect the native hidden attribute even when login-gate defines display:grid. */
.login-gate[hidden]{display:none!important}

.admin-seat.current-seat{box-shadow:inset 0 0 0 3px #1f4f7a}.admin-seat.current-seat::after{content:""}.dialog-actions .button:disabled{opacity:.5;cursor:not-allowed}

.admin-seat.reserved-occupied{background:#6f42a5;color:#fff;border-color:#4c2b75}

/* GUIDON FIX28D: active ceremony is a persistent operational safety indicator. */
.active-ceremony-chip{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;row-gap:4px;align-items:center;min-width:360px;max-width:560px;padding:8px 13px 9px;border:2px solid #d4aa3f;border-radius:10px;background:rgba(3,25,48,.92);color:#fff;line-height:1.05;box-shadow:0 0 0 1px rgba(255,255,255,.06)}
.active-ceremony-chip:empty{display:none}.active-ceremony-label{grid-column:1;font-size:.58rem;text-transform:uppercase;letter-spacing:.12em;color:#f0ca66;font-weight:900}.active-ceremony-chip strong{grid-column:2;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.active-ceremony-uuid{grid-column:1/-1;padding-top:2px;border-top:1px solid rgba(240,202,102,.25);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.62rem;color:#dce7f4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.active-ceremony-uuid::before{content:"UUID: ";color:#f0ca66;font-weight:800}
@media(max-width:1250px){.active-ceremony-chip{min-width:280px;max-width:360px}.active-ceremony-uuid{font-size:.56rem}}@media(max-width:900px){.active-ceremony-chip{min-width:220px}.active-ceremony-uuid{display:none}}


/* GUIDON FIX9A: Registrations live seating containment */
.admin-seat-map{
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:1.15rem;
}

.admin-table-block{
  min-width:0;
  overflow:hidden;
  background:#fff;
  padding:1rem;
}

.admin-seat-grid{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:.55rem;
  width:100%;
  max-width:300px;
  margin:0 auto;
}

.admin-seat{
  width:100%;
  min-width:0;
  max-width:46px;
  justify-self:center;
  font-weight:700;
}

/* GUIDON FIX9A: preserve occupied live-seat visibility when disabled */
.admin-seat.sold:disabled,
.admin-seat.pending:disabled,
.admin-seat.held:disabled,
.admin-seat.reserved:disabled,
.admin-seat.reserved-occupied:disabled{
  opacity:1!important;
}

.admin-seat.sold:disabled{
  background:#a7d7b2!important;
}

.admin-seat.pending:disabled{
  background:#f4cf65!important;
}

.admin-seat.held:disabled{
  background:#c8b7e6!important;
}

.admin-seat.reserved:disabled{
  background:#bbb!important;
}

.admin-seat.reserved-occupied:disabled{
  background:#6f42a5!important;
  color:#fff!important;
  border-color:#4c2b75!important;
}

/* GUIDON FIX9B: Live seating status colors and hover preservation.
   Overrides the global FIX28R button system for operational seat indicators. */

.admin-seat[aria-disabled="true"]{
  opacity:1!important;
  cursor:default!important;
  transform:none!important;
}

/* Requested / payment not yet verified */
.admin-seat.pending,
.admin-seat.pending[aria-disabled="true"]{
  background:#f4cf65!important;
  color:#071a33!important;
  border-color:#d7ad35!important;
}

/* Verified / paid */
.admin-seat.sold,
.admin-seat.sold[aria-disabled="true"]{
  background:#a7d7b2!important;
  color:#123d21!important;
  border-color:#78b68a!important;
}

/* Reserved / VIP */
.admin-seat.reserved,
.admin-seat.reserved[aria-disabled="true"]{
  background:#bbb!important;
  color:#333!important;
  border-color:#999!important;
}

/* Reserved seat with an occupant */
.admin-seat.reserved-occupied,
.admin-seat.reserved-occupied[aria-disabled="true"]{
  background:#6f42a5!important;
  color:#fff!important;
  border-color:#4c2b75!important;
}

/* Temporary held seat */
.admin-seat.held,
.admin-seat.held[aria-disabled="true"]{
  background:#c8b7e6!important;
  color:#24163a!important;
  border-color:#9c84c5!important;
}

/* Preserve title hover without button movement */
.admin-seat[aria-disabled="true"]:hover{
  transform:none!important;
  box-shadow:none!important;
}

/* GUIDON FIX9C: fully filled live-seat status tiles */

.admin-seat.sold,
.admin-seat.sold[aria-disabled="true"]{
  background-color:#a7d7b2!important;
  background-image:none!important;
  color:#123d21!important;
  border-color:#78b68a!important;
}

.admin-seat.pending,
.admin-seat.pending[aria-disabled="true"]{
  background-color:#f4cf65!important;
  background-image:none!important;
  color:#071a33!important;
  border-color:#d7ad35!important;
}

.admin-seat.reserved,
.admin-seat.reserved[aria-disabled="true"]{
  background-color:#bbb!important;
  background-image:none!important;
  color:#333!important;
  border-color:#999!important;
}

.admin-seat.reserved-occupied,
.admin-seat.reserved-occupied[aria-disabled="true"]{
  background-color:#6f42a5!important;
  background-image:none!important;
  color:#fff!important;
  border-color:#4c2b75!important;
}

.admin-seat.held,
.admin-seat.held[aria-disabled="true"]{
  background-color:#c8b7e6!important;
  background-image:none!important;
  color:#24163a!important;
  border-color:#9c84c5!important;
}

/* GUIDON FIX9D: force operational seat fills above global button theme */

button.admin-seat.sold,
button.admin-seat.sold[aria-disabled="true"]{
  background:#a7d7b2!important;
  color:#123d21!important;
  border-color:#78b68a!important;
}

button.admin-seat.pending,
button.admin-seat.pending[aria-disabled="true"]{
  background:#f4cf65!important;
  color:#071a33!important;
  border-color:#d7ad35!important;
}

button.admin-seat.reserved,
button.admin-seat.reserved[aria-disabled="true"]{
  background:#bbb!important;
  color:#333!important;
  border-color:#999!important;
}

button.admin-seat.reserved-occupied,
button.admin-seat.reserved-occupied[aria-disabled="true"]{
  background:#6f42a5!important;
  color:#fff!important;
  border-color:#4c2b75!important;
}

button.admin-seat.held,
button.admin-seat.held[aria-disabled="true"]{
  background:#c8b7e6!important;
  color:#24163a!important;
  border-color:#9c84c5!important;
}

/* GUIDON FIX9E: authoritative Live Seating fills.
   Scoped to the live ballroom so the global button theme cannot override seat status. */

#adminSeatMap button.admin-seat.sold{
  background:#a7d7b2!important;
  background-color:#a7d7b2!important;
  background-image:none!important;
  color:#123d21!important;
  border-color:#78b68a!important;
  opacity:1!important;
}

#adminSeatMap button.admin-seat.pending{
  background:#f4cf65!important;
  background-color:#f4cf65!important;
  background-image:none!important;
  color:#071a33!important;
  border-color:#d7ad35!important;
  opacity:1!important;
}

#adminSeatMap button.admin-seat.reserved{
  background:#bbb!important;
  background-color:#bbb!important;
  background-image:none!important;
  color:#333!important;
  border-color:#999!important;
  opacity:1!important;
}

#adminSeatMap button.admin-seat.reserved-occupied{
  background:#6f42a5!important;
  background-color:#6f42a5!important;
  background-image:none!important;
  color:#fff!important;
  border-color:#4c2b75!important;
  opacity:1!important;
}

#adminSeatMap button.admin-seat.held{
  background:#c8b7e6!important;
  background-color:#c8b7e6!important;
  background-image:none!important;
  color:#24163a!important;
  border-color:#9c84c5!important;
  opacity:1!important;
}

#adminSeatMap button.admin-seat[aria-disabled="true"]{
  cursor:default!important;
  transform:none!important;
  box-shadow:none!important;
}

/* GUIDON FIX9Q · terminal refund lifecycle states */
.status-pill[data-status="refund_pending"]{background:#fff0c7;color:#6a4b00;border:1px solid #e2bd55}
.status-pill[data-status="refund_paid"]{background:#e0efe5;color:#16582e}

/* GUIDON FIX9V: replacement-seat modal uses the same unmistakable operational
   state fills as Live Seating. Occupied/reserved/current seats are read-only. */
#moveSeatMap button.admin-seat.sold,
#moveSeatMap button.admin-seat.sold:disabled{
  background:#a7d7b2!important;
  background-color:#a7d7b2!important;
  background-image:none!important;
  color:#123d21!important;
  border-color:#78b68a!important;
  opacity:1!important;
}
#moveSeatMap button.admin-seat.pending,
#moveSeatMap button.admin-seat.pending:disabled{
  background:#f4cf65!important;
  background-color:#f4cf65!important;
  background-image:none!important;
  color:#071a33!important;
  border-color:#d7ad35!important;
  opacity:1!important;
}
#moveSeatMap button.admin-seat.reserved,
#moveSeatMap button.admin-seat.reserved:disabled{
  background:#bbb!important;
  background-color:#bbb!important;
  background-image:none!important;
  color:#333!important;
  border-color:#999!important;
  opacity:1!important;
}
#moveSeatMap button.admin-seat.reserved-occupied,
#moveSeatMap button.admin-seat.reserved-occupied:disabled{
  background:#6f42a5!important;
  background-color:#6f42a5!important;
  background-image:none!important;
  color:#fff!important;
  border-color:#4c2b75!important;
  opacity:1!important;
}
#moveSeatMap button.admin-seat.held,
#moveSeatMap button.admin-seat.held:disabled{
  background:#c8b7e6!important;
  background-color:#c8b7e6!important;
  background-image:none!important;
  color:#24163a!important;
  border-color:#9c84c5!important;
  opacity:1!important;
}
#moveSeatMap button.admin-seat.current-seat,
#moveSeatMap button.admin-seat.current-seat:disabled{
  background:#eef4f8!important;
  background-color:#eef4f8!important;
  background-image:none!important;
  color:#17344f!important;
  border-color:#1f4f7a!important;
  box-shadow:inset 0 0 0 2px #1f4f7a!important;
  opacity:1!important;
}
#moveSeatMap button.admin-seat:disabled{
  cursor:not-allowed!important;
}

/* GUIDON FIX9W · reserved-seat move authority for Suite Admin / Developer */
#moveSeatMap button.admin-seat.reserved-selectable{
  cursor:pointer!important;
  box-shadow:inset 0 0 0 2px #6f42a5!important;
}
#moveSeatMap button.admin-seat.reserved-selectable:hover{
  outline:3px solid #6f42a5;
  outline-offset:2px;
}
