/* Registration Desk Tools (docs/handoff/onsite-ops). Builds on campaigns.css
 * (the module pill row, cpv1 page head / table / buttons); only what the
 * module adds is here, all under rdt- names. Tokens from design_tokens.css. */

/* --- The module row: pills at the left, the event selector at the right --- */
.rdt-subnav { align-items: center; }
.rdt-scope { margin-left: auto; }
.rdt-scope-combobox { position: relative; display: inline-block; }

/* The module's scope (D-033): the one dark element on the page, so it reads
 * as a module-wide control and not as another pill. Neutral dark ground, no
 * colour tint (canon). */
.rdt-scope-trigger {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 7px 14px;
  background: var(--color-slate-900); color: #fff;
  border: 1px solid var(--color-slate-900); border-radius: var(--r-input);
  font: inherit; font-size: 13.5px; font-weight: 600; cursor: pointer;
}
.rdt-scope-trigger:hover { background: #1e293b; }
/* the switch in flight (P0.6 Moment 2): slate-600, cursor progress, an 11px ring before the label; the old page stays */
.rdt-scope-combobox.cpv1-combobox--inflight .rdt-scope-trigger { background: var(--color-slate-600, #475569); cursor: progress; }
.rdt-scope-combobox.cpv1-combobox--inflight .rdt-scope-value::before { content: ""; display: inline-block; width: 11px; height: 11px; margin-right: 7px; border: 2px solid rgba(255,255,255,.35); border-top-color: #fff; border-radius: 50%; vertical-align: -1px; animation: rdt-ring .8s linear infinite; }
@keyframes rdt-ring { to { transform: rotate(360deg); } }
.rdt-scope-trigger:focus-visible { outline: 2px solid var(--border-strong); outline-offset: 2px; }
.rdt-scope-lab { font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: .07em; font-weight: 600; color: rgba(255,255,255,.65); }
.rdt-scope-caret { color: rgba(255,255,255,.75); font-size: 10px; margin-left: 1px; }

/* The selector open: the picker-shell sectioned overlay (components/picker-shell,
 * picker-overlay-states), anchored to the trigger's right edge. */
.rdt-scope-overlay {
  position: absolute; top: calc(100% + 4px); right: 0; left: auto;
  width: 360px; z-index: 60; text-align: left;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-card);
  box-shadow: var(--sh-menu); overflow: hidden;
}
.rdt-scope-overlay[hidden] { display: none; }
.rdt-scope-overlay .cpv1-combobox-search { padding: 6px; border-bottom: 1px solid var(--border-faint, var(--color-slate-100)); }
.rdt-scope-overlay .cpv1-combobox-search-input {
  width: 100%; padding: 5px 8px; box-sizing: border-box;
  border: 1px solid transparent; border-radius: var(--r-input); background: var(--surface-2);
  font-size: 12.5px; font-family: inherit;
}
.rdt-scope-overlay .cpv1-combobox-search-input:focus-visible { outline: none; border-color: var(--border-strong); }
.rdt-scope-overlay .cpv1-combobox-list { max-height: 320px; overflow-y: auto; padding: 4px 0; }
.rdt-scope-overlay .picker-section-head { padding: 6px 10px 2px; font-family: var(--font-mono); font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--fg-faint); }
.rdt-scope-overlay .picker-section-head[hidden] { display: none; }
.rdt-scope-overlay .cpv1-combobox-option {
  display: flex; justify-content: space-between; gap: 12px; width: 100%;
  text-align: left; padding: 6px 10px; background: none; border: 0;
  font-size: 12.5px; font-family: inherit; color: var(--fg); cursor: pointer; white-space: nowrap;
}
.rdt-scope-overlay .cpv1-combobox-option[hidden] { display: none; }
.rdt-scope-overlay .cpv1-combobox-option:hover,
.rdt-scope-overlay .cpv1-combobox-option--active { background: var(--surface-2); }
.rdt-scope-overlay .cpv1-combobox-option[aria-selected="true"] { font-weight: 600; }
.rdt-scope-when { font-family: var(--font-mono); font-size: 11px; color: var(--fg-faint); flex-shrink: 0; }
.rdt-scope-overlay .cpv1-combobox-empty { padding: 8px 10px; font-size: 12.5px; color: var(--fg-faint); }
.rdt-scope-overlay .cpv1-combobox-empty[hidden] { display: none; }

/* --- The page head's facts row (the tracker event page's field vocabulary) --- */
.rdt-facts { display: flex; flex-wrap: wrap; gap: 8px 36px; padding: 12px 18px; font-size: 13px; }   /* a control at the right end drops to its own line when the row is short of room */
.rdt-facts > div { flex-shrink: 0; white-space: nowrap; }   /* a fact never wraps; the row is wider than its facts */
.rdt-fact-l { font-family: var(--font-mono); font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--color-slate-500); font-weight: 600; }
.rdt-fact-v { font-size: 15px; font-weight: 600; color: var(--color-slate-900); margin-top: 2px; font-variant-numeric: tabular-nums; }
.rdt-fact-v--muted { font-weight: 400; color: var(--fg-muted); }

/* --- The list: every row, no viewport, no pagination (D-030) --- */
.rdt-tbl th {
  text-align: left; padding: 8px 12px; font-weight: 600; color: var(--color-slate-500);
  font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; font-family: var(--font-mono);
  background: var(--color-slate-100); border-bottom: 1px solid var(--color-slate-200);
}
.rdt-tbl td { padding: 8px 12px; border-bottom: 1px solid #eef2f6; color: var(--color-slate-900); vertical-align: top; }
.rdt-tbl tr.cpv1-data-row:hover td { background: var(--color-slate-50); }
.rdt-col-first { width: 150px; } .rdt-col-last { width: 170px; } .rdt-col-title { width: auto; } .rdt-col-company { width: 260px; } .rdt-col-x { width: 56px; }
.rdt-tbl td.rdt-td-x { overflow: visible; text-align: center; padding: 6px 8px; }

/* Per-row single action (canon: ×, always visible). */
.rdt-row-x { border: none; background: none; color: var(--fg-faint); font-size: 14px; cursor: pointer; padding: 2px 6px; line-height: 1; }
.rdt-row-x:hover { color: var(--color-danger, #b91c1c); }

/* A hidden row: stays on the page, greyed and labelled, restorable at once
 * (no strikethrough, per canon); off the PDF. Pure class toggle so a Turbo
 * morph can re-apply it. */
.rdt-hidden-tag { display: none; font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--fg-faint); margin-left: 8px; }
.rdt-row-x--restore { display: none; }
tr.rdt-row--hidden td { color: var(--fg-faint); }
tr.rdt-row--hidden .rdt-hidden-tag { display: inline; }
tr.rdt-row--hidden .rdt-row-x--hide { display: none; }
tr.rdt-row--hidden .rdt-row-x--restore { display: inline; color: var(--color-slate-500); }

/* --- Check-ins pages (chunk 2, D-040) --- */
.rdt-mono { font-family: var(--font-mono); font-size: 12px; color: var(--fg-muted); }
/* Seven columns of real data: the table keeps a floor width and its wrap
 * scrolls sideways below it, so the page itself never does. At the frame's
 * full width nothing scrolls. */
.rdt-tbl-wrap--wide { overflow-x: auto; }
.rdt-tbl--arrivals { min-width: 1020px; }
.rdt-tbl--attendees { min-width: 1020px; }   /* Lists › Attendees (D-077): the arrivals table's shape, the time last */
.rdt-tbl--record   { min-width: 970px; }
.rdt-col-time { width: 90px; } .rdt-col-ticket { width: 150px; } .rdt-col-change { width: 110px; } .rdt-col-barcode { width: 190px; } .rdt-col-links { width: 180px; }
.rdt-tbl--arrivals .rdt-col-first, .rdt-tbl--attendees .rdt-col-first, .rdt-tbl--record .rdt-col-first { width: 120px; }
.rdt-tbl--arrivals .rdt-col-last,  .rdt-tbl--attendees .rdt-col-last,  .rdt-tbl--record .rdt-col-last  { width: 140px; }
.rdt-tbl--arrivals .rdt-col-company, .rdt-tbl--attendees .rdt-col-company { width: 190px; }
.rdt-tbl td.rdt-col-links { overflow: visible; text-overflow: clip; }
.rdt-mini-link { font-family: var(--font-mono); font-size: 11px; color: var(--color-slate-500); text-decoration: none; margin-right: 10px; white-space: nowrap; }
.rdt-mini-link:hover { color: var(--color-slate-900); text-decoration: underline; }
.rdt-chg { font-family: var(--font-mono); font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--fg-muted); }
.rdt-chg--gone, .rdt-chg--back { color: var(--color-slate-900); font-weight: 600; }
.rdt-btn-secondary { padding: 6px 13px; background: #fff; color: var(--color-slate-900); border: 1px solid var(--border-strong); border-radius: 4px; font: inherit; font-size: 12.5px; font-weight: 500; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; }
.rdt-btn-secondary:hover { background: var(--color-slate-50); color: var(--color-slate-900); text-decoration: none; }

/* --- Send by Email: a strip under the page head (D-055) --- */
.rdt-send { display: flex; gap: 10px; align-items: flex-start; background: #fff; border: 1px solid var(--color-slate-200); border-top: none; padding: 14px 18px; }
.rdt-send[hidden] { display: none; }
.rdt-send-to { flex: 1; min-height: 64px; padding: 8px 10px; border: 1px solid var(--border-strong); border-radius: 4px; font: inherit; font-size: 13px; line-height: 1.5; resize: vertical; }
.rdt-send-to:focus { outline: none; border-color: var(--color-slate-900); }
.rdt-send-acts { display: flex; gap: 8px; padding-top: 2px; }

/* --- Configure › Settings (the configuration-page archetype's rows) --- */
.rdt-cfg-row { display: grid; grid-template-columns: 180px 1fr; gap: 16px; align-items: start; padding: 10px 16px; border-bottom: 1px solid #eef2f6; }
.rdt-cfg-row:last-child { border-bottom: none; }
.rdt-cfg-k { font-family: var(--font-mono); font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--fg-muted); padding-top: 8px; }
.rdt-cfg-input { width: 100%; padding: 7px 9px; border: 1px solid var(--border-strong); border-radius: 4px; font: inherit; font-size: 13px; box-sizing: border-box; background: #fff; }
textarea.rdt-cfg-input { line-height: 1.45; resize: vertical; }
.rdt-cfg-actions { padding: 4px 0 24px; }

/* --- Badges › Badge review (D-050, D-051; named D-077) --- */
.rdt-bc { border: 1px solid var(--color-slate-200); border-top: none; background: #fff; }
.rdt-bc-sec { display: flex; align-items: center; gap: 14px; padding: 10px 18px; background: var(--color-slate-100); border-top: 1px solid var(--color-slate-200); border-bottom: 1px solid var(--color-slate-200); }
.rdt-bc-sec h2 { margin: 0; font-size: 13px; font-weight: 600; color: var(--color-slate-900); }
.rdt-bc-sec .n { font-family: var(--font-mono); font-size: 12px; color: var(--fg-muted); }
.rdt-bc-sec .cpv1-btn-primary { margin-left: auto; }
/* Below 1000px the section scrolls sideways (the wrapper is .rdt-tbl-wrap--wide, as the check-in record's
   table) rather than squeezing the name columns until words break in the middle. */
.rdt-bc-tbl { width: 100%; min-width: 1080px; border-collapse: collapse; font-size: 14px; table-layout: fixed; }
.rdt-bc-tbl th { text-align: left; padding: 8px 12px; font-weight: 600; color: var(--color-slate-500); font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; font-family: var(--font-mono); border-bottom: 1px solid var(--color-slate-200); }
.rdt-bc-tbl td { padding: 9px 12px; vertical-align: middle; color: var(--color-slate-900); line-height: 1.4; border-bottom: 1px solid #eef2f6; overflow-wrap: anywhere; }
/* the label column is narrow (a tag or a ticket type); the four fields take the room; the controls column is
   sized for its widest state, a changed row being edited in the Keep/Discard sections (• ✓ × Keep Discard ⋯,
   218px of controls plus the cell's padding), and is the same in all four tables so the field columns line up
   from section to section and the ⋯ sits at the same place on every row */
.rdt-bc-lab { width: 120px; }
.rdt-bc-first { width: 14%; } .rdt-bc-last { width: 16%; } .rdt-bc-title { width: 31%; } .rdt-bc-company { width: 25%; } .rdt-bc-act { width: 320px; }
/* a row whose badge is no longer what Eventbrite has — changed here, by a person or an accepted proposal — carries
   a dot before its controls (D-059). Nothing else: the person saw the change happen. */
.rdt-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--color-slate-400); vertical-align: middle; margin-right: 10px; }
td.rdt-bc-lab { font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--fg-faint); padding-left: 18px; }
td.rdt-bc-lab-proposed { color: var(--color-blue-700, #1d4ed8); }
td.rdt-bc-ticket { font-family: inherit; font-size: 12.5px; text-transform: none; letter-spacing: 0; color: var(--fg-muted); }
/* a proposal is a pair of rows, field-aligned; only the cells that differ are tinted */
tr.rdt-bc-pair-a td { border-top: 1px solid var(--color-slate-200); padding-top: 12px; border-bottom: 1px solid #f1f5f9; }
tr.rdt-bc-pair-b td { padding-bottom: 12px; border-bottom: 1px solid var(--color-slate-200); }
/* the proposed line carries the model's reasoning; nothing shows until the pointer is on the line (the app's
   provenance-tip pill), and only the cursor on the label says there is something to find (D-062, D-083) */
.rdt-why { cursor: help; }
/* a decided pair's outcome — Accepted / Kept — sits with the row's marks, before its ✓ and × (D-083) */
.rdt-outcome { color: var(--color-slate-700, #334155); }
tr.rdt-bc-pair-a td.rdt-diff { background: var(--color-slate-100); }
tr.rdt-bc-pair-b td.rdt-diff { background: #e8f0fe; }
tr.rdt-bc-gap td { height: 10px; padding: 0; background: var(--color-slate-100); border: none; }
tr.rdt-bc-dup td { border-top: none; }
tr.rdt-bc-dup-last td { border-bottom: 1px solid var(--color-slate-200); }
.rdt-bc-empty { padding: 14px 18px; color: var(--fg-muted); font-size: 13px; }
/* a second badge in the label column (No title / No company, D-085) sits under the first */
.rdt-badge--blank { margin-top: 4px; }
td.rdt-bc-lab .rdt-badge + .rdt-badge--blank { display: inline-flex; }
/* the canon's static badge (components/badge-chip) */
.rdt-badge { display: inline-flex; align-items: center; gap: 6px; padding: 3px 8px; font-family: var(--font-sans, inherit); font-size: 12px; font-weight: 500; line-height: 1.4; text-transform: none; letter-spacing: 0; border-radius: var(--r-pill); border: 1px solid transparent; white-space: nowrap; background: var(--surface-2); color: var(--fg-muted); }
/* P0.5 inline edit: rest plain; hover a faint border; editing slate-400 + focus ring; no tint */
.rdt-val[contenteditable] { display: inline-block; min-width: 2ch; cursor: text; border: 1px solid transparent; border-radius: 3px; padding: 1px 5px; margin: 0 -6px; transition: border-color .1s ease-out; }
.rdt-val[contenteditable]:hover { border-color: var(--color-slate-200); }
.rdt-val[contenteditable]:focus { outline: none; border-color: var(--color-slate-400); background: #fff; box-shadow: 0 0 0 2px rgba(29,78,216,.25); }
/* per-row controls: the app's small glyph control; Keep / Discard in words (ghost buttons) */
td.rdt-bc-act { text-align: right; white-space: nowrap; padding-right: 14px; }
.rdt-rx { font: inherit; font-size: 14px; line-height: 1; background: none; border: none; padding: 2px 5px; border-radius: 3px; cursor: pointer; color: var(--fg-faint); vertical-align: middle; }
.rdt-rx:hover { color: var(--color-slate-900); background: var(--color-slate-100); }
.rdt-rx--ok { color: var(--color-slate-900); font-weight: 700; }
.rdt-btn-ghost { display: inline-flex; align-items: center; font: inherit; font-size: 12px; font-weight: 500; padding: 6px 10px; border-radius: var(--r-pill); border: 1px solid transparent; background: none; color: var(--color-slate-700, #334155); cursor: pointer; vertical-align: middle; }
.rdt-btn-ghost:hover { background: var(--color-slate-100); }
/* the row menu */
.rdt-menu { position: relative; display: inline-block; vertical-align: middle; }
.rdt-menu-list { position: absolute; right: 0; top: calc(100% + 4px); z-index: 50; min-width: 240px; background: #fff; border: 1px solid var(--border); border-radius: var(--r-card); box-shadow: var(--sh-menu); padding: 4px; text-align: left; }
.rdt-menu-list[hidden] { display: none; }
.rdt-menu-list a, .rdt-menu-list button { display: block; width: 100%; text-align: left; padding: 7px 10px; font: inherit; font-size: 13px; color: var(--fg); background: none; border: 0; border-radius: 3px; cursor: pointer; text-decoration: none; }
.rdt-menu-list a:hover, .rdt-menu-list button:hover { background: var(--color-slate-50); }
.rdt-menu-list button[disabled] { color: var(--fg-faint); cursor: default; }
.rdt-menu-list button[disabled]:hover { background: none; }
.rdt-menu-sep { height: 1px; background: var(--border); margin: 4px 2px; }

/* an edited row (D-057): its ✓ / × appear until saved or undone */
.rdt-edit-acts[hidden] { display: none; }
.rdt-edit-acts { margin-right: 6px; }
tr.rdt-bc-row--dirty td { background: #fffdf5; }

/* a discarded badge stays in view, greyed, with ↺ to put it back (D-058) */
tr.rdt-bc-row--off td { color: var(--fg-faint); }
tr.rdt-bc-row--off .rdt-badge { color: var(--fg-faint); }
tr.rdt-bc-row--off td.rdt-bc-lab-proposed { color: var(--fg-faint); }

/* --- Badges › Batches (D-067): the page head's two actions, the two sections' tables --- */
.rdt-inline-form { display: inline; margin: 0; }
.rdt-bc-sec .rdt-sec-action { margin-left: auto; }
/* --- Badges › Cancellation report (D-069): the Remove list, and the batches made beneath it --- */
.rdt-tbl--batches .rdt-col-no { width: 70px; } .rdt-tbl--batches .rdt-col-made { width: 220px; } .rdt-tbl--batches .rdt-col-n { width: 90px; } .rdt-tbl--batches .rdt-col-file { width: 90px; text-align: right; }
.rdt-tbl--remove .rdt-col-ck { width: 44px; } .rdt-tbl--remove .rdt-col-last { width: 200px; } .rdt-tbl--remove .rdt-col-first { width: 170px; } .rdt-tbl--remove .rdt-col-company { width: auto; } .rdt-tbl--remove .rdt-col-reason { width: 220px; }
/* the batch a badge last entered, at the right edge of its row on the badge records page (D-068) */
.rdt-pr { font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--fg-faint); margin-right: 12px; vertical-align: middle; white-space: nowrap; }
/* a save that did not go through: the reason beside the row's ✓ and ×, the draft kept */
.rdt-edit-error { font-size: 12px; color: var(--fg-muted); margin-right: 10px; vertical-align: middle; }

/* --- Lists › Reconciliation list (D-018, D-067): a box per row, speakers in their own section --- */
.rdt-tbl--reconciliation .rdt-col-ck { width: 44px; } .rdt-tbl--reconciliation .rdt-col-last { width: 200px; } .rdt-tbl--reconciliation .rdt-col-first { width: 170px; } .rdt-tbl--reconciliation .rdt-col-company { width: auto; }
.rdt-tbl td.rdt-ck { font-size: 15px; color: var(--fg-faint); text-align: center; }
.rdt-tbl th { background: var(--color-slate-100); }

/* --- Configure › Stations (the row collection inside the configuration page): the pairing code field,
   a row's muted "last seen", the ⋯ menu's items as button_to forms, a stopped station greyed */
/* the pairing row's field labels (components/field: mono 10.5px uppercase, faint) before each box */
.panel-add-row .panel-add-label { flex: none; font-family: var(--font-mono); font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--fg-faint); white-space: nowrap; }
.rdt-pair-code { flex: 0 0 170px; font-family: var(--font-mono); text-transform: uppercase; letter-spacing: .06em; }
.rdt-pair-code::placeholder { font-family: inherit; text-transform: none; letter-spacing: 0; }
.rdt-row-meta { font-size: 12.5px; color: var(--fg-muted); white-space: nowrap; }
.row.rdt-row--off .row-content, .row.rdt-row--off .rdt-row-meta { color: var(--fg-faint); }
.rdt-menu-form { display: block; margin: 0; }
.rdt-menu-list .rdt-menu-form button { display: block; width: 100%; text-align: left; padding: 7px 10px; font: inherit; font-size: 13px; color: var(--fg); background: none; border: 0; border-radius: 3px; cursor: pointer; }
.rdt-menu-list .rdt-menu-form button:hover { background: var(--color-slate-50); }

/* Refresh from Eventbrite (D-078): at the right end of the Eventbrite API page's facts bar */
.rdt-facts .rdt-refresh { margin-left: auto; align-self: center; flex-shrink: 0; }
.rdt-facts .rdt-refresh button { white-space: nowrap; }
/* --- Check-ins › Eventbrite API (D-075): the log in the email send log's shape (avo_custom.css .smtp-log-output);
   the level is carried by the label's word and the line's weight, never by colour (canon) --- */
.rdt-api-out {
  margin-top: 10px; background: #1a1a2e; border-radius: .5rem; padding: 1rem;
  min-height: 300px; max-height: 560px; overflow-y: auto;
  font-family: 'Monaco', 'Menlo', var(--font-mono), monospace; font-size: .75rem; color: #e0e0e0;
}
.rdt-api-ln { padding: .25rem 0; white-space: pre-wrap; }
.rdt-api-t { color: #6b7280; margin-right: 1rem; }
.rdt-api-lv { display: inline-block; width: 5.5em; color: #9ca3af; }
.rdt-api-ln[data-label="pull"] { color: #6b7280; }
.rdt-api-ln--warning { color: #fff; }
.rdt-api-ln--error { color: #fff; font-weight: 600; }
.rdt-api-day { padding: .625rem 0 .25rem; color: #6b7280; font-size: .6875rem; text-transform: uppercase; letter-spacing: .06em; }
.rdt-api-empty { color: #6b7280; text-align: center; padding: 3rem; }
.rdt-api-earlier {
  display: block; margin: 0 auto .5rem; padding: 4px 12px;
  background: transparent; color: #9ca3af; border: 1px solid #374151; border-radius: var(--r-input);
  font: inherit; font-size: .75rem; cursor: pointer;
}
.rdt-api-earlier:hover { color: #fff; border-color: #6b7280; }
.rdt-api-earlier:disabled { opacity: .5; cursor: default; }
