:root { --blue:#2563eb; --bg:#f7f8fb; --text:#172033; --muted:#64748b; --border:#e2e8f0; --green:#15803d; --red:#b91c1c; --orange:#ea580c; }
/* Enforce HTML hidden attribute even when CSS sets display:flex/grid */
[hidden] { display: none !important; }
* { box-sizing: border-box; }
body { margin:0; font-family: Arial, sans-serif; background:var(--bg); color:var(--text); }
a { color: var(--blue); text-decoration: none; }
.container { max-width: 1180px; margin: 0 auto; padding: 24px; }
.topbar { background:#fff; border-bottom:1px solid var(--border); padding:14px 24px; display:flex; justify-content:space-between; align-items:center; }
.brand { font-weight:700; letter-spacing:.02em; color:var(--text); }
.navlinks { display:flex; gap:18px; align-items:center; }
.card { background:white; border:1px solid var(--border); border-radius:14px; padding:24px; box-shadow:0 8px 24px rgba(15,23,42,.05); margin-bottom:18px; overflow-x:auto; }
.header { display:flex; justify-content:space-between; align-items:center; margin-bottom:24px; gap:16px; }
.btn { border:0; border-radius:10px; padding:10px 14px; background:var(--blue); color:white; cursor:pointer; text-decoration:none; display:inline-block; font-size:14px; }
.btn.secondary { background:#475569; }
.btn.light { background:#eef2ff; color:#1e3a8a; }
.btn.green { background:var(--green); }
.btn.red { background:var(--red); }
.btn.big { font-size:18px; padding:14px 18px; border-radius:14px; }
.input, .select, .textarea { width:100%; padding:11px 12px; border:1px solid var(--border); border-radius:10px; margin:6px 0 14px; background:#fff; }
.input.search { font-size:22px; padding:16px 18px; border-radius:16px; }
.textarea { min-height: 130px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.grid { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:16px; }
.stats { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:14px; margin-bottom:18px; }
.stat { background:#fff; border:1px solid var(--border); border-radius:14px; padding:18px; }
.stat strong { display:block; font-size:30px; margin-top:4px; }
.dashboard-stats { gap:16px; }
.dashboard-stats .stat { position:relative; overflow:hidden; min-height:112px; padding:20px 22px; border:0; box-shadow:0 10px 24px rgba(15,23,42,.08); }
.dashboard-stats .stat::before { content:""; position:absolute; inset:0 auto 0 0; width:7px; }
.dashboard-stats .stat span { display:block; color:#475569; font-size:13px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.dashboard-stats .stat strong { font-size:42px; line-height:1; margin-top:12px; letter-spacing:-.04em; }
.dashboard-stats .stat-events { background:linear-gradient(135deg,#eff6ff,#fff); }
.dashboard-stats .stat-events::before { background:#2563eb; }
.dashboard-stats .stat-events strong { color:#1d4ed8; }
.dashboard-stats .stat-active { background:linear-gradient(135deg,#f0fdf4,#fff); }
.dashboard-stats .stat-active::before { background:#16a34a; }
.dashboard-stats .stat-active strong { color:#15803d; }
.dashboard-stats .stat-pax { background:linear-gradient(135deg,#fff7ed,#fff); }
.dashboard-stats .stat-pax::before { background:#ea580c; }
.dashboard-stats .stat-pax strong { color:#c2410c; }
.dashboard-summary-stats { grid-template-columns:repeat(2, minmax(0, 1fr)); }
.dashboard-table-title { font-size:24px; font-weight:900; margin-bottom:4px; }
.dashboard-table-subtitle { margin-top:0; margin-bottom:18px; }
.muted { color:var(--muted); }
.table { width:100%; border-collapse:collapse; background:#fff; }
.table th, .table td { text-align:left; padding:12px; border-bottom:1px solid var(--border); vertical-align:top; }
.table th { color:#334155; font-size:13px; text-transform:uppercase; letter-spacing:.03em; }
.compact-table th, .compact-table td { padding:10px; }
.compact-table .actions { gap:6px; }
.compact-table .btn { padding:8px 10px; font-size:13px; }
.badge { display:inline-block; border-radius:999px; padding:4px 9px; font-size:12px; background:#e2e8f0; color:#334155; }
.badge.green { background:#dcfce7; color:#166534; }
.badge.red { background:#fee2e2; color:#991b1b; }
.badge.orange { background:#ffedd5; color:#9a3412; }
.alert { padding:12px 14px; border-radius:10px; margin-bottom:16px; }
.alert.success { background:#dcfce7; color:#166534; }
.alert.error { background:#fee2e2; color:#991b1b; }
.inline-form { display:inline; margin:0; }
.link-button { border:0; background:transparent; color:var(--blue); cursor:pointer; font:inherit; padding:0; }
.password-field { position:relative; }
.password-field .input { padding-right:88px; }
.password-toggle {
  position:absolute;
  right:8px;
  top:50%;
  transform:translateY(-50%);
  border:0;
  border-radius:8px;
  background:#eef2ff;
  color:#1e3a8a;
  cursor:pointer;
  font-weight:800;
  padding:7px 10px;
}
.password-toggle:hover { background:#dbeafe; }
.checkbox-list { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:8px 18px; }
.checkbox-item { background:#f8fafc; border:1px solid var(--border); border-radius:10px; padding:10px; }
.actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.result-card { border:1px solid var(--border); border-radius:16px; padding:18px; margin-bottom:12px; background:#fff; display:grid; grid-template-columns: 1fr auto; gap:14px; align-items:center; }
.result-card.checked { background:#f0fdf4; border-color:#86efac; }
.result-title { font-size:22px; font-weight:700; }
.result-meta { color:var(--muted); margin-top:6px; }
.empty-state { padding:28px; text-align:center; color:var(--muted); border:1px dashed var(--border); border-radius:14px; background:#fff; }
@media (max-width: 760px) { .grid, .checkbox-list, .stats { grid-template-columns:1fr; } .header, .topbar, .result-card { align-items:flex-start; flex-direction:column; display:flex; } }

/* Operator desk compact/mobile-first UX */
.operator-shell { max-width: 980px; margin: -10px auto 0; }
.operator-topline { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:8px; font-size:15px; }
.operator-dashboard-link { font-size:13px; color:var(--muted); }
.operator-stats { display:grid; grid-template-columns:repeat(3, 1fr); gap:8px; margin-bottom:8px; }
.operator-stats > div { background:#fff; border:1px solid var(--border); border-radius:10px; padding:7px 10px; display:flex; justify-content:space-between; align-items:center; min-height:36px; }
.operator-stats span { color:var(--muted); font-size:12px; }
.operator-stats strong { font-size:18px; line-height:1; }
.operator-search-card { background:#fff; border:1px solid var(--border); border-radius:14px; padding:10px; margin-bottom:10px; box-shadow:0 4px 14px rgba(15,23,42,.04); position:sticky; top:0; z-index:5; }
.input.operator-search { margin:0; font-size:24px; padding:14px 16px; border-radius:13px; }
.operator-results { padding-bottom:45vh; }
.empty-state.compact { padding:18px; }
.operator-result-card { padding:14px 16px; margin-bottom:10px; border-radius:15px; grid-template-columns: minmax(0, 1fr) auto; }
.operator-result-name { font-size:30px; line-height:1.08; letter-spacing:-.02em; }
.operator-company { font-size:22px; line-height:1.15; font-weight:700; color:#334155; margin-top:7px; }
.operator-code { font-size:15px; color:var(--muted); margin-top:5px; }
.operator-status-row { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:10px; }
.operator-action .btn.big { min-width:128px; font-size:20px; padding:16px 18px; }
.compact-btn { padding:7px 10px; font-size:13px; }

@media (max-width: 760px) {
  .container { padding: 10px; }
  .topbar { padding: 8px 10px; gap: 6px; }
  .topbar .brand { font-size: 13px; }
  .navlinks { gap: 10px; font-size: 13px; }
  .operator-shell { margin-top: -4px; }
  .operator-topline { margin-bottom: 6px; font-size: 13px; }
  .operator-stats { gap:5px; margin-bottom:6px; }
  .operator-stats > div { padding:5px 7px; min-height:30px; border-radius:8px; }
  .operator-stats span { font-size:10px; }
  .operator-stats strong { font-size:16px; }
  .operator-search-card { padding:7px; margin-bottom:8px; border-radius:12px; }
  .input.operator-search { font-size:20px; padding:12px 13px; }
  .operator-result-card { display:grid; grid-template-columns: 1fr; gap:12px; padding:13px; }
  .operator-result-name { font-size:32px; }
  .operator-company { font-size:24px; }
  .operator-code { font-size:16px; }
  .operator-action { width:100%; }
  .operator-action .btn.big { width:100%; font-size:22px; padding:15px 18px; }
}

@media (max-width: 420px) {
  .operator-result-name { font-size:29px; }
  .operator-company { font-size:21px; }
  .input.operator-search { font-size:18px; }
}

/* Operator badges and colored categories */
.operator-stats strong { font-size:22px; }
.operator-chip { display:inline-flex; align-items:center; min-height:28px; border-radius:999px; padding:5px 10px; font-size:14px; font-weight:700; line-height:1; }
.status-ok { background:#dcfce7; color:#166534; }
.status-waiting { background:#ffedd5; color:#9a3412; }
.seat-chip { background:#fee2e2; color:#991b1b; }
.cat-vip { background:#dbeafe; color:#1d4ed8; }
.cat-speaker { background:#dcfce7; color:#166534; }
.cat-staff { background:#f3e8ff; color:#7e22ce; }
.cat-partner { background:#fef3c7; color:#92400e; }
.cat-press { background:#e0f2fe; color:#0369a1; }
.cat-standard { background:#e2e8f0; color:#334155; }
.operator-result-card.cat-vip-card { border-left:7px solid #3b82f6; }
.operator-result-card.cat-speaker-card { border-left:7px solid #22c55e; }
.operator-result-card.cat-staff-card { border-left:7px solid #a855f7; }
.operator-result-card.cat-partner-card { border-left:7px solid #f59e0b; }
.operator-result-card.cat-press-card { border-left:7px solid #0ea5e9; }
.operator-sheet-link { font-size:14px; font-weight:700; color:#1e3a8a; background:#eef2ff; border-radius:999px; padding:6px 16px; }

@media (max-width: 760px) {
  .operator-stats strong { font-size:19px; }
  .operator-chip { font-size:13px; min-height:26px; padding:5px 9px; }
  .operator-sheet-link { font-size:13px; padding:6px 9px; }
}

/* Operator card refinement: info row + visible color band */
.operator-result-card { position:relative; overflow:hidden; padding-left:18px; }
.operator-color-band { position:absolute; left:0; top:0; bottom:0; width:12px; border-radius:15px 0 0 15px; }
.operator-color-band.cat-vip { background:#2563eb; }
.operator-color-band.cat-speaker { background:#16a34a; }
.operator-color-band.cat-staff { background:#9333ea; }
.operator-color-band.cat-partner { background:#f59e0b; }
.operator-color-band.cat-press { background:#0284c7; }
.operator-color-band.cat-standard { background:#94a3b8; }
.operator-info-row { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:8px; }
.operator-status-row { margin-top:9px; }
.operator-code { font-size:16px; font-weight:700; color:#475569; }
.operator-result-card.cat-vip-card,
.operator-result-card.cat-speaker-card,
.operator-result-card.cat-staff-card,
.operator-result-card.cat-partner-card,
.operator-result-card.cat-press-card { border-left:0; }
.operator-result-card.cat-vip-card { box-shadow: inset 0 0 0 9999px rgba(37,99,235,.035), 0 8px 24px rgba(15,23,42,.05); }
.operator-result-card.cat-speaker-card { box-shadow: inset 0 0 0 9999px rgba(22,163,74,.035), 0 8px 24px rgba(15,23,42,.05); }
.operator-result-card.cat-staff-card { box-shadow: inset 0 0 0 9999px rgba(147,51,234,.035), 0 8px 24px rgba(15,23,42,.05); }
.operator-result-card.cat-partner-card { box-shadow: inset 0 0 0 9999px rgba(245,158,11,.04), 0 8px 24px rgba(15,23,42,.05); }
.operator-result-card.cat-press-card { box-shadow: inset 0 0 0 9999px rgba(2,132,199,.035), 0 8px 24px rgba(15,23,42,.05); }

@media (max-width: 760px) {
  .operator-color-band { width:10px; }
  .operator-result-card { padding-left:16px; }
  .operator-info-row { gap:6px; margin-top:7px; }
  .operator-status-row { gap:7px; margin-top:8px; }
  .operator-code { font-size:15px; }
}

/* Operator card stronger category backgrounds */
.operator-sheet-link { background:#1e3a8a; color:#fff; box-shadow:0 2px 6px rgba(30,58,138,.18); }
.operator-result-card.cat-vip-card { background:linear-gradient(90deg, rgba(37,99,235,.20), rgba(255,255,255,.94) 42%, #fff 100%); border-color:#93c5fd; box-shadow:0 8px 24px rgba(37,99,235,.10); }
.operator-result-card.cat-speaker-card { background:linear-gradient(90deg, rgba(22,163,74,.20), rgba(255,255,255,.94) 42%, #fff 100%); border-color:#86efac; box-shadow:0 8px 24px rgba(22,163,74,.10); }
.operator-result-card.cat-staff-card { background:linear-gradient(90deg, rgba(147,51,234,.20), rgba(255,255,255,.94) 42%, #fff 100%); border-color:#d8b4fe; box-shadow:0 8px 24px rgba(147,51,234,.10); }
.operator-result-card.cat-partner-card { background:linear-gradient(90deg, rgba(245,158,11,.22), rgba(255,255,255,.94) 42%, #fff 100%); border-color:#fcd34d; box-shadow:0 8px 24px rgba(245,158,11,.10); }
.operator-result-card.cat-press-card { background:linear-gradient(90deg, rgba(2,132,199,.20), rgba(255,255,255,.94) 42%, #fff 100%); border-color:#7dd3fc; box-shadow:0 8px 24px rgba(2,132,199,.10); }
.operator-result-card.cat-standard-card { background:linear-gradient(90deg, rgba(100,116,139,.14), rgba(255,255,255,.96) 42%, #fff 100%); }
.operator-result-card.checked { background:linear-gradient(90deg, rgba(21,128,61,.18), rgba(240,253,244,.96) 45%, #fff 100%); }
.operator-result-name, .operator-company, .operator-code { text-shadow:0 1px 0 rgba(255,255,255,.55); }

@media (max-width: 760px) {
  .operator-result-card.cat-vip-card { background:linear-gradient(90deg, rgba(37,99,235,.24), rgba(255,255,255,.96) 60%, #fff 100%); }
  .operator-result-card.cat-speaker-card { background:linear-gradient(90deg, rgba(22,163,74,.24), rgba(255,255,255,.96) 60%, #fff 100%); }
  .operator-result-card.cat-staff-card { background:linear-gradient(90deg, rgba(147,51,234,.24), rgba(255,255,255,.96) 60%, #fff 100%); }
  .operator-result-card.cat-partner-card { background:linear-gradient(90deg, rgba(245,158,11,.26), rgba(255,255,255,.96) 60%, #fff 100%); }
  .operator-result-card.cat-press-card { background:linear-gradient(90deg, rgba(2,132,199,.24), rgba(255,255,255,.96) 60%, #fff 100%); }
}

/* Operator info row: plain, larger extra fields beside Prog */
.operator-info-row .operator-chip {
  background: transparent !important;
  color: #1f2937 !important;
  border-radius: 0;
  padding: 0;
  min-height: auto;
  font-size: 18px;
  font-weight: 800;
}
.operator-info-row .operator-chip::before { content: "•"; color:#94a3b8; margin-right:8px; font-weight:700; }
.operator-info-row .seat-chip { color:#991b1b !important; }
.operator-info-row .cat-vip { color:#1d4ed8 !important; }
.operator-info-row .cat-speaker { color:#166534 !important; }
.operator-info-row .cat-staff { color:#7e22ce !important; }
.operator-info-row .cat-partner { color:#92400e !important; }
.operator-info-row .cat-press { color:#0369a1 !important; }

@media (max-width: 760px) {
  .operator-info-row .operator-chip { font-size:20px; }
  .operator-info-row { gap:10px; }
}

/* Operator stats labels: bigger and colored */
.operator-stats span { font-size:16px; font-weight:800; line-height:1; }
.operator-stats strong { font-size:25px; font-weight:900; }
.operator-stats > div:nth-child(1) span,
.operator-stats > div:nth-child(1) strong { color:#2563eb; }
.operator-stats > div:nth-child(2) span,
.operator-stats > div:nth-child(2) strong { color:#15803d; }
.operator-stats > div:nth-child(3) span,
.operator-stats > div:nth-child(3) strong { color:#ea580c; }

@media (max-width: 760px) {
  .operator-stats span { font-size:14px; }
  .operator-stats strong { font-size:22px; }
}

@media (max-width: 420px) {
  .operator-stats span { font-size:12px; }
  .operator-stats strong { font-size:20px; }
}

/* Operator check-in feedback */
.operator-result-card.is-processing { opacity:.78; pointer-events:none; transform:scale(.995); }
.operator-result-card.just-checked-in { animation: checkinPulse 1.25s ease-out; border-color:#16a34a !important; }
.operator-success-flash {
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(22,163,74,.88);
  color:#fff;
  font-size:42px;
  font-weight:900;
  letter-spacing:.04em;
  opacity:0;
  transform:scale(.96);
  pointer-events:none;
  z-index:4;
}
.operator-result-card.just-checked-in .operator-success-flash { animation: successFlash 1.05s ease-out; }

@keyframes successFlash {
  0% { opacity:0; transform:scale(.96); }
  14% { opacity:1; transform:scale(1); }
  70% { opacity:1; transform:scale(1); }
  100% { opacity:0; transform:scale(1.02); }
}

@keyframes checkinPulse {
  0% { box-shadow:0 0 0 0 rgba(22,163,74,.50); }
  45% { box-shadow:0 0 0 8px rgba(22,163,74,.18); }
  100% { box-shadow:0 8px 24px rgba(15,23,42,.05); }
}

@media (max-width: 760px) {
  .operator-success-flash { font-size:34px; }
}

/* Operator event title */
.operator-event-title { justify-content:flex-start; font-size:18px; font-weight:900; color:#172033; margin-bottom:7px; }
.operator-event-title strong { font-weight:900; }
@media (max-width:760px) { .operator-event-title { font-size:17px; margin-bottom:5px; } }

/* Pax sheet operator-first */
.pax-operator-header { margin:-4px 0 12px; }
.pax-sheet { max-width:980px; margin:0 auto; }
.pax-hero { border-radius:18px; padding:22px; margin-bottom:14px; display:flex; justify-content:space-between; gap:18px; align-items:center; color:#0f172a; border:1px solid var(--border); box-shadow:0 8px 24px rgba(15,23,42,.06); }
.pax-hero.is-checked { background:linear-gradient(90deg, rgba(21,128,61,.20), #fff 58%); border-color:#86efac; }
.pax-hero.is-missing { background:linear-gradient(90deg, rgba(234,88,12,.20), #fff 58%); border-color:#fdba74; }
.pax-kicker { font-size:15px; font-weight:800; color:#475569; text-transform:uppercase; letter-spacing:.04em; }
.pax-hero h1 { margin:6px 0 4px; font-size:42px; line-height:1; letter-spacing:-.03em; }
.pax-company { font-size:26px; font-weight:800; color:#334155; }
.pax-status { text-align:right; font-size:22px; font-weight:900; color:#166534; }
.pax-hero.is-missing .pax-status { color:#9a3412; }
.pax-status small { display:block; font-size:14px; color:#64748b; margin-top:5px; }
.pax-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.pax-card { background:#fff; border:1px solid var(--border); border-radius:16px; padding:18px; margin-bottom:14px; box-shadow:0 6px 18px rgba(15,23,42,.04); }
.pax-card h2 { margin:0 0 12px; font-size:18px; }
.pax-field { display:flex; justify-content:space-between; gap:14px; padding:10px 0; border-bottom:1px solid #f1f5f9; }
.pax-field:last-child { border-bottom:0; }
.pax-field span { color:#64748b; font-weight:700; }
.pax-field strong { text-align:right; font-size:18px; }
.pax-note { background:#f8fafc; border-radius:12px; padding:12px; margin-bottom:10px; }
.pax-history { display:grid; gap:8px; }
.pax-history-row { display:grid; grid-template-columns:1fr auto auto; gap:12px; align-items:center; padding:10px; border:1px solid #f1f5f9; border-radius:12px; }
.pax-history-row em { grid-column:1 / -1; color:#64748b; }

@media (max-width:760px) {
  .pax-operator-header .btn.big { width:100%; text-align:center; }
  .pax-hero { align-items:flex-start; flex-direction:column; padding:18px; }
  .pax-hero h1 { font-size:38px; }
  .pax-company { font-size:24px; }
  .pax-status { text-align:left; font-size:20px; }
  .pax-grid { grid-template-columns:1fr; gap:0; }
  .pax-field { align-items:flex-start; flex-direction:column; gap:4px; }
  .pax-field strong { text-align:left; font-size:21px; }
  .pax-history-row { grid-template-columns:1fr; gap:4px; }
}

/* Operator events landing */
.operator-events-shell { max-width:980px; margin:-6px auto 0; }
.operator-events-title { display:flex; justify-content:space-between; align-items:flex-end; gap:12px; margin-bottom:12px; }
.operator-events-title strong { font-size:28px; font-weight:900; letter-spacing:-.02em; }
.operator-events-title span { color:#64748b; font-weight:800; }
.operator-events-list { display:grid; gap:12px; }
.operator-event-card { display:grid; grid-template-columns: minmax(0, 1fr) auto; gap:16px; align-items:center; background:#fff; border:1px solid var(--border); border-radius:18px; padding:20px; color:#172033; box-shadow:0 8px 24px rgba(15,23,42,.06); position:relative; overflow:hidden; }
.operator-event-card::before { content:""; position:absolute; left:0; top:0; bottom:0; width:12px; background:#2563eb; }
.operator-event-card.active::before { background:#15803d; }
.operator-event-card.closed::before { background:#ea580c; }
.operator-event-card.archived::before { background:#64748b; }
.operator-event-name { font-size:34px; line-height:1.05; font-weight:900; letter-spacing:-.03em; padding-left:4px; }
.operator-event-meta { font-size:18px; font-weight:700; color:#475569; margin-top:8px; padding-left:4px; }
.operator-event-action { text-align:right; display:grid; gap:8px; }
.operator-event-action span { font-size:14px; color:#64748b; font-weight:800; text-transform:uppercase; }
.operator-event-action strong { background:#15803d; color:#fff; padding:14px 16px; border-radius:14px; font-size:20px; white-space:nowrap; }

@media (max-width:760px) {
  .operator-events-shell { margin-top:0; }
  .operator-events-title strong { font-size:24px; }
  .operator-event-card { grid-template-columns:1fr; padding:17px; gap:14px; }
  .operator-event-name { font-size:32px; }
  .operator-event-meta { font-size:17px; }
  .operator-event-action { text-align:left; }
  .operator-event-action strong { text-align:center; font-size:22px; padding:15px 18px; }
}

/* Operator initial alphabetical list */
.operator-list-label { font-size:14px; font-weight:800; color:#64748b; margin:2px 0 8px; text-transform:uppercase; letter-spacing:.035em; }
@media (max-width:760px) { .operator-list-label { font-size:12px; margin:0 0 6px; } }

/* Brand logo */
.brand-logo { display:inline-flex; align-items:center; line-height:0; }
.brand-logo img { display:block; height:42px; width:auto; max-width:260px; object-fit:contain; }
.login-card { max-width:420px; margin:60px auto; }
.login-logo { display:block; width:100%; max-width:310px; height:auto; margin:0 0 14px; }

@media (max-width:760px) {
  .topbar .brand-logo img { height:34px; max-width:210px; }
  .login-card { margin:34px auto; }
  .login-logo { max-width:270px; }
}

@media (max-width:420px) {
  .topbar .brand-logo img { height:30px; max-width:180px; }
}

/* Brand logo update — larger approved PNG */
.brand-logo img { height:64px; max-width:430px; image-rendering:auto; }
.topbar { padding:16px 28px; }
.login-card { max-width:620px; margin:52px auto; }
.login-logo { max-width:540px; margin:0 auto 20px; }

@media (max-width:760px) {
  .topbar { padding:12px 14px; }
  .topbar .brand-logo img { height:48px; max-width:300px; }
  .login-card { margin:28px auto; }
  .login-logo { max-width:100%; }
}

@media (max-width:420px) {
  .topbar .brand-logo img { height:42px; max-width:260px; }
}

/* Brand logo test 2 — wide logo from latest file */
.brand-logo img { height:76px; max-width:560px; width:auto; object-fit:contain; }
.topbar { padding:18px 30px; }
.login-card { max-width:760px; margin:44px auto; }
.login-logo { width:100%; max-width:680px; height:auto; margin:0 auto 22px; }

@media (max-width:760px) {
  .topbar { padding:12px 14px; }
  .topbar .brand-logo img { height:54px; max-width:340px; }
  .login-card { margin:24px auto; }
  .login-logo { max-width:100%; }
}

@media (max-width:420px) {
  .topbar .brand-logo img { height:46px; max-width:290px; }
}

/* Brand logo test 3 — compact topbar, larger cropped logo */
.topbar {
  padding:6px 22px;
  min-height:58px;
  align-items:center;
}
.brand-logo img {
  height:52px;
  max-width:360px;
  width:auto;
  object-fit:contain;
}
.navlinks { align-items:center; }
.login-logo {
  max-width:640px;
}

@media (max-width:760px) {
  .topbar {
    padding:5px 10px;
    min-height:50px;
  }
  .topbar .brand-logo img {
    height:44px;
    max-width:300px;
  }
}

@media (max-width:420px) {
  .topbar .brand-logo img {
    height:40px;
    max-width:250px;
  }
}

/* Brand logo vector — crisp text, compact bar */
.topbar {
  padding:5px 22px;
  min-height:58px;
}
.brand-logo img {
  height:54px;
  max-width:430px;
  width:auto;
}
.login-logo {
  max-width:720px;
}

@media (max-width:760px) {
  .topbar { padding:5px 10px; min-height:50px; }
  .topbar .brand-logo img { height:44px; max-width:330px; }
}

@media (max-width:420px) {
  .topbar .brand-logo img { height:40px; max-width:285px; }
}

/* Participant form layout refinement */
.participant-form-row { display:grid; gap:14px; align-items:start; }
.participant-main-row { grid-template-columns: 116px minmax(0, 1fr) minmax(0, 1fr); }
.participant-secondary-row { grid-template-columns: minmax(0, 1fr) 220px; margin-top:2px; }
.participant-prog-field .input { text-align:center; font-weight:800; letter-spacing:.04em; }
.participant-prog-field small { display:block; margin-top:-8px; font-size:12px; white-space:nowrap; }
.participant-color-field .select { font-weight:700; }

/* Dashboard event list refinement */
.dashboard-events-card { padding:0; overflow:hidden; }
.dashboard-events-card .dashboard-table-title { padding:22px 24px 12px; font-size:24px; }
.dashboard-events-list { display:flex; flex-direction:column; }
.dashboard-event-row { display:grid; grid-template-columns:minmax(260px, 1.4fr) auto minmax(270px, .85fr) auto; gap:16px; align-items:center; padding:16px 24px; border-top:1px solid var(--border); }
.dashboard-event-row:hover { background:#f8fafc; }
.dashboard-event-name { font-size:18px; font-weight:900; margin-bottom:5px; }
.dashboard-event-meta { display:flex; flex-wrap:wrap; gap:8px 12px; color:var(--muted); font-size:13px; }
.dashboard-event-meta span { display:inline-flex; align-items:center; }
.dashboard-event-meta span:not(:last-child)::after { content:"•"; color:#cbd5e1; margin-left:12px; }
.dashboard-event-numbers { display:grid; grid-template-columns:repeat(3, minmax(74px, 1fr)); gap:8px; color:#475569; }
.dashboard-event-numbers span { background:#f8fafc; border:1px solid #e2e8f0; border-radius:14px; padding:8px 9px; text-align:center; }
.dashboard-event-numbers strong { display:block; color:#0f172a; font-size:22px; line-height:1; letter-spacing:-.03em; }
.dashboard-event-numbers small { display:block; margin-top:4px; color:#64748b; font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.03em; }
.dashboard-event-numbers .event-number-ok strong { color:#15803d; }
.dashboard-event-numbers .event-number-missing strong { color:#ea580c; }
.dashboard-event-actions { display:flex; flex-direction:column; align-items:flex-end; gap:6px; }
.dashboard-actions-row { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.dashboard-actions-admin { opacity:.78; }
.dashboard-stats .stat small { display:block; margin-top:8px; color:#64748b; font-weight:700; }

/* Approved SVG logo */
.brand-logo img { height:54px; max-width:430px; width:auto; object-fit:contain; }
.login-logo { max-width:720px; width:100%; height:auto; margin:0 auto 22px; }

@media (max-width:900px) {
  .dashboard-event-row { grid-template-columns:1fr; align-items:start; }
  .dashboard-event-actions { align-items:flex-start; }
  .dashboard-actions-row { justify-content:flex-start; }
}

@media (max-width:760px) {
  .participant-main-row, .participant-secondary-row { grid-template-columns:1fr; }
  .participant-prog-field { max-width:120px; }
  .dashboard-events-card .dashboard-table-title { padding:18px 18px 10px; }
  .dashboard-event-row { padding:14px 18px; }
  .dashboard-event-meta { display:block; line-height:1.6; }
  .dashboard-event-meta span::after { display:none; }
  .topbar .brand-logo img { height:44px; max-width:330px; }
}

/* Operator fast desk evolution: scan/search, confirmation, compact list */
.operator-shell-fast { max-width: 1040px; }
.operator-fast-search-card { top: 0; padding: 9px; }
.operator-search-row { display:grid; grid-template-columns:minmax(0, 1fr) 46px; gap:8px; align-items:center; }
.operator-clear-btn { width:46px; height:46px; padding:0; font-size:30px; line-height:1; border-radius:13px; }
.operator-toolbar { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:8px; flex-wrap:wrap; }
.operator-filter-group { display:flex; gap:6px; flex-wrap:wrap; }
.operator-filter { border:1px solid #cbd5e1; background:#fff; color:#334155; border-radius:999px; padding:7px 11px; font-weight:800; cursor:pointer; }
.operator-filter.active { background:#172033; color:#fff; border-color:#172033; }
.operator-scan-hint { color:#64748b; font-size:13px; font-weight:700; }
.operator-feedback { position:sticky; top:86px; z-index:6; padding:10px 12px; border-radius:12px; margin:8px 0; font-weight:900; box-shadow:0 8px 18px rgba(15,23,42,.08); }
.operator-feedback.success { background:#dcfce7; color:#166534; border:1px solid #86efac; }
.operator-feedback.warning { background:#ffedd5; color:#9a3412; border:1px solid #fdba74; }
.operator-feedback.error { background:#fee2e2; color:#991b1b; border:1px solid #fecaca; }
.operator-results-fast { padding-bottom: 28vh; }
.operator-result-card-fast { grid-template-columns:minmax(0, 1fr) 112px; gap:10px; padding:10px 12px 10px 18px; margin-bottom:7px; min-height:88px; align-items:center; }
.operator-fast-title-row { display:flex; align-items:flex-start; gap:10px; justify-content:space-between; }
.operator-result-card-fast .operator-result-name { font-size:24px; line-height:1.02; }
.operator-result-card-fast .operator-company { font-size:17px; margin-top:4px; line-height:1.08; }
.operator-code-pill { display:inline-flex; align-items:center; justify-content:center; min-width:52px; border-radius:12px; padding:5px 8px; background:#0f172a; color:#fff; font-size:18px; font-weight:900; line-height:1; }
.operator-info-row-fast { margin-top:7px; gap:9px; }
.operator-info-row-fast .operator-chip { font-size:14px; }
.operator-result-card-fast .operator-sheet-link { font-size:13px; padding:6px 14px; }
.operator-action-btn { width:100%; padding:13px 10px; border-radius:13px; font-size:17px; font-weight:900; }
.operator-confirm-backdrop { position:fixed; inset:0; background:rgba(15,23,42,.42); z-index:40; }
.operator-confirm-panel { position:fixed; left:50%; bottom:18px; transform:translateX(-50%); width:min(560px, calc(100vw - 22px)); background:#fff; border-radius:18px; border:1px solid var(--border); box-shadow:0 22px 70px rgba(15,23,42,.32); padding:18px; z-index:41; }
.operator-confirm-kicker { color:#15803d; font-size:13px; text-transform:uppercase; letter-spacing:.06em; font-weight:900; }
.operator-confirm-title { font-size:30px; line-height:1.05; font-weight:900; margin-top:4px; }
.operator-confirm-meta { color:#475569; font-size:17px; font-weight:800; margin-top:6px; }
.operator-confirm-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:16px; }
.operator-confirm-actions .btn.big { width:100%; font-weight:900; }

@media (max-width:760px) {
  .operator-fast-search-card { padding:7px; }
  .operator-search-row { grid-template-columns:minmax(0, 1fr) 42px; gap:6px; }
  .operator-clear-btn { width:42px; height:42px; font-size:26px; }
  .operator-toolbar { margin-top:7px; gap:7px; }
  .operator-filter { padding:7px 10px; font-size:13px; }
  .operator-scan-hint { font-size:12px; }
  .operator-feedback { top:74px; font-size:14px; }
  .operator-result-card-fast { grid-template-columns:minmax(0, 1fr) 92px; gap:8px; padding:10px 10px 10px 16px; min-height:78px; }
  .operator-result-card-fast .operator-result-name { font-size:21px; }
  .operator-result-card-fast .operator-company { font-size:15px; }
  .operator-code-pill { min-width:44px; font-size:15px; padding:5px 7px; }
  .operator-info-row-fast { gap:7px; margin-top:6px; }
  .operator-info-row-fast .operator-chip { font-size:12px; }
  .operator-action { width:auto; }
  .operator-action-btn { padding:13px 7px; font-size:15px; }
  .operator-confirm-panel { bottom:10px; padding:16px; }
  .operator-confirm-title { font-size:25px; }
  .operator-confirm-meta { font-size:15px; }
}

@media (max-width:420px) {
  .operator-result-card-fast { grid-template-columns:1fr; }
  .operator-action { width:100%; }
  .operator-action-btn { width:100%; }
  .operator-confirm-actions { grid-template-columns:1fr; }
}

/* Operator fast desk feedback pass: no filters/no confirmation, quieter search field */
.operator-fast-search-card { padding:6px; box-shadow:none; border-color:#e5e7eb; background:#fff; }
.input.operator-search {
  background:#fff;
  border-color:#cbd5e1;
  color:#334155;
  font-size:17px;
  padding:10px 12px;
  border-radius:10px;
  box-shadow:none;
}
.input.operator-search::placeholder { color:#94a3b8; }
.input.operator-search:focus { outline:2px solid #e2e8f0; border-color:#94a3b8; }
.operator-clear-btn { background:#f8fafc; color:#64748b; border:1px solid #e2e8f0; width:40px; height:40px; font-size:24px; border-radius:10px; }
.operator-search-row { grid-template-columns:minmax(0, 1fr) 40px; }
.operator-toolbar, .operator-confirm-backdrop, .operator-confirm-panel { display:none !important; }

@media (max-width:760px) {
  .input.operator-search { font-size:16px; padding:9px 11px; }
  .operator-clear-btn { width:38px; height:38px; font-size:23px; }
  .operator-search-row { grid-template-columns:minmax(0, 1fr) 38px; }
}

/* Operator desk correction: search visible, Prog visually secondary */
.input.operator-search {
  background:#fff !important;
  border-color:#94a3b8 !important;
  color:#172033 !important;
  font-size:22px !important;
  padding:14px 16px !important;
  border-radius:13px !important;
  box-shadow:0 4px 14px rgba(15,23,42,.06) !important;
}
.input.operator-search::placeholder { color:#64748b !important; }
.input.operator-search:focus { outline:3px solid #dbeafe !important; border-color:#2563eb !important; }
.operator-code-pill {
  min-width:auto !important;
  background:#fff !important;
  color:#94a3b8 !important;
  border:1px solid #e2e8f0 !important;
  font-size:13px !important;
  font-weight:700 !important;
  padding:4px 7px !important;
  border-radius:9px !important;
  box-shadow:none !important;
}

@media (max-width:760px) {
  .input.operator-search { font-size:20px !important; padding:12px 13px !important; }
  .operator-code-pill { font-size:12px !important; padding:3px 6px !important; }
}

/* Operator desk correction: bigger name/company while keeping compact cards */
.operator-result-card-fast .operator-result-name {
  font-size:30px !important;
  line-height:1.03 !important;
  font-weight:900 !important;
}
.operator-result-card-fast .operator-company {
  font-size:22px !important;
  line-height:1.08 !important;
  font-weight:800 !important;
}

@media (max-width:760px) {
  .operator-result-card-fast .operator-result-name { font-size:28px !important; }
  .operator-result-card-fast .operator-company { font-size:20px !important; }
}

@media (max-width:420px) {
  .operator-result-card-fast .operator-result-name { font-size:26px !important; }
  .operator-result-card-fast .operator-company { font-size:19px !important; }
}

/* Search highlight */
mark.search-hl { background:transparent !important; color:#e11d48; font-weight:900; padding:0; }

/* Operator desk correction: bigger Accredita button on iPhone/mobile */
@media (max-width:760px) {
  .operator-action-btn {
    min-height:52px !important;
    font-size:18px !important;
    padding:15px 12px !important;
    border-radius:15px !important;
  }
}

@media (max-width:420px) {
  .operator-action-btn {
    min-height:56px !important;
    font-size:19px !important;
    padding:16px 14px !important;
  }
}

/* Pax sheet compact refinement for operator/mobile */
.pax-operator-header { margin:-6px 0 8px; }
.pax-operator-header .btn.big { font-size:16px; padding:11px 14px; border-radius:12px; }
.pax-sheet { max-width:940px; }
.pax-hero { border-radius:15px; padding:16px 18px; margin-bottom:10px; gap:12px; }
.pax-kicker { font-size:12px; letter-spacing:.035em; }
.pax-hero h1 { margin:4px 0 2px; font-size:34px; line-height:1.02; }
.pax-company { font-size:21px; line-height:1.08; }
.pax-status { font-size:18px; }
.pax-status small { font-size:12px; margin-top:3px; }
.pax-grid { gap:10px; }
.pax-card { border-radius:14px; padding:13px 14px; margin-bottom:10px; box-shadow:0 4px 12px rgba(15,23,42,.035); }
.pax-card h2 { margin:0 0 8px; font-size:16px; }
.pax-field { gap:10px; padding:7px 0; }
.pax-field span { font-size:13px; }
.pax-field strong { font-size:16px; }
.pax-note { padding:9px 10px; margin-bottom:7px; border-radius:10px; }
.pax-history { gap:4px; }
.pax-history-row {
  grid-template-columns:auto auto 1fr;
  gap:7px;
  padding:5px 7px;
  border-radius:8px;
  font-size:12px;
  border-color:#f1f5f9;
  background:#fafafa;
}
.pax-history-row strong { font-size:12px; font-weight:800; }
.pax-history-row span { color:#64748b; white-space:nowrap; }
.pax-history-row em { grid-column:1 / -1; font-size:12px; color:#94a3b8; margin-top:-2px; }

@media (max-width:760px) {
  .pax-operator-header { margin:-2px 0 7px; }
  .pax-operator-header .btn.big { width:100%; font-size:15px; padding:10px 12px; }
  .pax-hero { padding:13px 14px; margin-bottom:8px; border-radius:14px; }
  .pax-hero h1 { font-size:31px; }
  .pax-company { font-size:20px; }
  .pax-status { font-size:17px; }
  .pax-card { padding:11px 12px; margin-bottom:8px; }
  .pax-card h2 { font-size:15px; margin-bottom:6px; }
  .pax-field { padding:6px 0; gap:2px; }
  .pax-field strong { font-size:18px; }
  .pax-history-row { grid-template-columns:1fr auto; gap:3px 7px; padding:5px 7px; }
  .pax-history-row span:nth-of-type(2) { display:none; }
  .pax-history-row em { font-size:11px; }
}

/* Pax sheet: remove redundant main data card, widen extra fields */
.pax-grid-extra-wide { grid-template-columns:1fr !important; }
.pax-extra-card { width:100%; }
.pax-extra-card .pax-field {
  display:grid;
  grid-template-columns:minmax(140px, 26%) minmax(0, 1fr);
  align-items:start;
}
.pax-extra-card .pax-field strong { text-align:left; }
.pax-color-field strong { color:#334155; }

@media (max-width:760px) {
  .pax-extra-card .pax-field { grid-template-columns:1fr; }
}

/* Pax sheet: Colore as its own compact section before extra fields */
.pax-color-card { padding:9px 14px; }
.pax-color-card .pax-field { border-bottom:0; padding:4px 0; }
.pax-color-card .pax-field strong { text-align:left; color:#334155; }
.pax-kiosk-code { font-family:ui-monospace,monospace; font-size:17px; letter-spacing:.10em; color:#1e3a8a; }

/* Pax sheet: apply assigned Colore to name/header tab; Grigio is default */
.pax-hero.pax-color-gray { background:linear-gradient(90deg, rgba(100,116,139,.16), #fff 58%); border-color:#cbd5e1; }
.pax-hero.pax-color-blue { background:linear-gradient(90deg, rgba(37,99,235,.24), #fff 58%); border-color:#93c5fd; }
.pax-hero.pax-color-green { background:linear-gradient(90deg, rgba(22,163,74,.24), #fff 58%); border-color:#86efac; }
.pax-hero.pax-color-purple { background:linear-gradient(90deg, rgba(147,51,234,.24), #fff 58%); border-color:#d8b4fe; }
.pax-hero.pax-color-yellow { background:linear-gradient(90deg, rgba(245,158,11,.26), #fff 58%); border-color:#fcd34d; }
.pax-hero.pax-color-cyan { background:linear-gradient(90deg, rgba(2,132,199,.24), #fff 58%); border-color:#7dd3fc; }
.pax-hero.pax-color-gray::before,
.pax-hero.pax-color-blue::before,
.pax-hero.pax-color-green::before,
.pax-hero.pax-color-purple::before,
.pax-hero.pax-color-yellow::before,
.pax-hero.pax-color-cyan::before {
  content:"";
  width:10px;
  align-self:stretch;
  border-radius:12px;
  margin:-2px 2px -2px -4px;
  flex:0 0 auto;
}
.pax-hero.pax-color-gray::before { background:#94a3b8; }
.pax-hero.pax-color-blue::before { background:#2563eb; }
.pax-hero.pax-color-green::before { background:#16a34a; }
.pax-hero.pax-color-purple::before { background:#9333ea; }
.pax-hero.pax-color-yellow::before { background:#f59e0b; }
.pax-hero.pax-color-cyan::before { background:#0284c7; }

/* Stronger assigned colors on desk + Pax sheet; default gray stays intentionally neutral */
.operator-result-card.cat-vip-card {
  background:linear-gradient(90deg, rgba(37,99,235,.38), rgba(255,255,255,.96) 50%, #fff 100%) !important;
  border-color:#60a5fa !important;
  box-shadow:0 8px 24px rgba(37,99,235,.18) !important;
}
.operator-result-card.cat-speaker-card {
  background:linear-gradient(90deg, rgba(22,163,74,.38), rgba(255,255,255,.96) 50%, #fff 100%) !important;
  border-color:#4ade80 !important;
  box-shadow:0 8px 24px rgba(22,163,74,.18) !important;
}
.operator-result-card.cat-staff-card {
  background:linear-gradient(90deg, rgba(147,51,234,.38), rgba(255,255,255,.96) 50%, #fff 100%) !important;
  border-color:#c084fc !important;
  box-shadow:0 8px 24px rgba(147,51,234,.18) !important;
}
.operator-result-card.cat-partner-card {
  background:linear-gradient(90deg, rgba(245,158,11,.42), rgba(255,255,255,.96) 50%, #fff 100%) !important;
  border-color:#fbbf24 !important;
  box-shadow:0 8px 24px rgba(245,158,11,.20) !important;
}
.operator-result-card.cat-press-card {
  background:linear-gradient(90deg, rgba(2,132,199,.38), rgba(255,255,255,.96) 50%, #fff 100%) !important;
  border-color:#38bdf8 !important;
  box-shadow:0 8px 24px rgba(2,132,199,.18) !important;
}
.operator-result-card.cat-standard-card {
  background:linear-gradient(90deg, rgba(100,116,139,.12), rgba(255,255,255,.98) 50%, #fff 100%) !important;
  border-color:#e2e8f0 !important;
  box-shadow:0 4px 12px rgba(15,23,42,.045) !important;
}
.operator-color-band { width:16px !important; }
.operator-color-band.cat-vip { background:#1d4ed8 !important; }
.operator-color-band.cat-speaker { background:#15803d !important; }
.operator-color-band.cat-staff { background:#7e22ce !important; }
.operator-color-band.cat-partner { background:#d97706 !important; }
.operator-color-band.cat-press { background:#0369a1 !important; }
.operator-color-band.cat-standard { background:#94a3b8 !important; }

.pax-hero.pax-color-gray {
  background:linear-gradient(90deg, rgba(100,116,139,.13), #fff 58%) !important;
  border-color:#cbd5e1 !important;
  box-shadow:0 5px 14px rgba(15,23,42,.045) !important;
}
.pax-hero.pax-color-blue {
  background:linear-gradient(90deg, rgba(37,99,235,.40), #fff 62%) !important;
  border-color:#60a5fa !important;
  box-shadow:0 8px 24px rgba(37,99,235,.16) !important;
}
.pax-hero.pax-color-green {
  background:linear-gradient(90deg, rgba(22,163,74,.40), #fff 62%) !important;
  border-color:#4ade80 !important;
  box-shadow:0 8px 24px rgba(22,163,74,.16) !important;
}
.pax-hero.pax-color-purple {
  background:linear-gradient(90deg, rgba(147,51,234,.40), #fff 62%) !important;
  border-color:#c084fc !important;
  box-shadow:0 8px 24px rgba(147,51,234,.16) !important;
}
.pax-hero.pax-color-yellow {
  background:linear-gradient(90deg, rgba(245,158,11,.44), #fff 62%) !important;
  border-color:#fbbf24 !important;
  box-shadow:0 8px 24px rgba(245,158,11,.18) !important;
}
.pax-hero.pax-color-cyan {
  background:linear-gradient(90deg, rgba(2,132,199,.40), #fff 62%) !important;
  border-color:#38bdf8 !important;
  box-shadow:0 8px 24px rgba(2,132,199,.16) !important;
}
.pax-hero.pax-color-gray::before { background:#94a3b8 !important; }
.pax-hero.pax-color-blue::before { background:#1d4ed8 !important; }
.pax-hero.pax-color-green::before { background:#15803d !important; }
.pax-hero.pax-color-purple::before { background:#7e22ce !important; }
.pax-hero.pax-color-yellow::before { background:#d97706 !important; }
.pax-hero.pax-color-cyan::before { background:#0369a1 !important; }
.pax-hero::before { width:14px !important; }

@media (max-width:760px) {
  .operator-color-band { width:13px !important; }
  .pax-hero::before { width:12px !important; }
}

/* Three visible import fields shown after company on desk/Pax tab */
.operator-visible-fields { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.operator-visible-field {
  display:inline-flex;
  align-items:center;
  max-width:100%;
  border-radius:999px;
  padding:4px 8px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(148,163,184,.45);
  color:#1f2937;
  font-size:15px;
  font-weight:850;
  line-height:1.1;
}
.pax-visible-fields { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.pax-visible-fields span {
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:6px 10px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(148,163,184,.45);
  color:#1f2937;
  font-size:17px;
  font-weight:850;
  line-height:1.1;
}
@media (max-width:760px) {
  .operator-visible-field { font-size:14px; padding:4px 7px; }
  .pax-visible-fields { gap:6px; margin-top:7px; }
  .pax-visible-fields span { font-size:15px; padding:5px 8px; }
}

/* Operator desk: softer cancel accreditation button */
.operator-action-btn.btn.red {
  background:#dc7a7a !important;
  color:#fff !important;
  box-shadow:none !important;
}
.operator-action-btn.btn.red:hover,
.operator-action-btn.btn.red:focus {
  background:#cf6b6b !important;
}

/* Import preview two-step flow */
.import-preview-stats { grid-template-columns:repeat(4, minmax(0, 1fr)); }
.import-preview-stats .stat-error strong,
.import-preview-stats .stat-error span { color:#b91c1c; }
.import-preview-header { margin-bottom:14px; }
.import-preview-header h2 { margin:0 0 4px; }
.import-preview-table td { vertical-align:middle; }
.import-row-error { background:#fff1f2; }
.import-errors-card { border-color:#fecaca; }
.import-errors-card h2 { color:#991b1b; }
.btn:disabled { opacity:.45; cursor:not-allowed; }
.table-responsive { overflow-x:auto; }
@media (max-width:760px) {
  .import-preview-stats { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .import-preview-header { align-items:flex-start; }
  .import-preview-header form, .import-preview-header .btn { width:100%; }
}

/* Import preview: stronger ready message and confirm button */
.import-preview-ready-alert {
  font-size:20px;
  line-height:1.35;
  font-weight:800;
  padding:18px 20px;
  border-radius:16px;
}
.import-preview-ready-alert strong { font-weight:900; }
.import-confirm-btn {
  font-size:20px !important;
  font-weight:900 !important;
  padding:16px 24px !important;
  border-radius:16px !important;
  min-height:58px;
  box-shadow:0 8px 18px rgba(21,128,61,.22);
}

@media (max-width:760px) {
  .import-preview-ready-alert {
    font-size:18px;
    padding:16px;
  }
  .import-confirm-btn {
    width:100%;
    font-size:20px !important;
    min-height:60px;
  }
}

/* Import preview error report */
.import-errors-header { margin-bottom:12px; }
.import-errors-header h2 { margin:0 0 4px; }
.import-errors-download-btn {
  background:#b91c1c !important;
  font-weight:900;
  padding:13px 18px;
  border-radius:14px;
}
@media (max-width:760px) {
  .import-errors-header { align-items:flex-start; }
  .import-errors-header form, .import-errors-download-btn { width:100%; }
}

/* Import page compact copy */
.import-format-card { padding:16px 18px; margin-bottom:12px; }
.import-format-card h2 { margin:0 0 8px; font-size:20px; }
.import-format-card p { margin:7px 0; }
.import-required-badges { gap:7px; margin:8px 0 10px !important; }
.import-required-badges .badge { font-size:13px; padding:5px 10px; }
.compact-copy { line-height:1.35; }
@media (max-width:760px) {
  .import-format-card { padding:13px 14px; }
  .import-format-card h2 { font-size:18px; }
  .import-format-card p { margin:6px 0; }
}

/* Global button contrast refinement: gray buttons must stay readable */
.btn.secondary,
button.btn.secondary,
a.btn.secondary {
  background:#1f2937 !important;
  color:#ffffff !important;
  border:1px solid #111827 !important;
  font-weight:800;
  box-shadow:0 2px 8px rgba(15,23,42,.14);
}
.btn.secondary:hover,
.btn.secondary:focus {
  background:#111827 !important;
  color:#ffffff !important;
}
.btn.light,
button.btn.light,
a.btn.light {
  background:#ffffff !important;
  color:#1e3a8a !important;
  border:1px solid #93c5fd !important;
  font-weight:800;
  box-shadow:0 2px 8px rgba(30,58,138,.08);
}
.btn.light:hover,
.btn.light:focus {
  background:#dbeafe !important;
  color:#1e3a8a !important;
}

/* Global button design system: unified, readable, not heavy */
.btn,
button.btn,
a.btn {
  border:1px solid transparent !important;
  border-radius:12px !important;
  padding:10px 14px !important;
  font-size:14px;
  font-weight:800;
  line-height:1.15;
  box-shadow:0 2px 6px rgba(15,23,42,.08);
  transition:background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease, transform .08s ease;
}
.btn:hover,
button.btn:hover,
a.btn:hover,
.btn:focus,
button.btn:focus,
a.btn:focus {
  box-shadow:0 4px 12px rgba(15,23,42,.12);
}
.btn:active,
button.btn:active,
a.btn:active { transform:translateY(1px); }

.btn:not(.secondary):not(.light):not(.green):not(.red) {
  background:#2563eb !important;
  color:#fff !important;
  border-color:#1d4ed8 !important;
}
.btn:not(.secondary):not(.light):not(.green):not(.red):hover,
.btn:not(.secondary):not(.light):not(.green):not(.red):focus {
  background:#1d4ed8 !important;
}

.btn.secondary,
button.btn.secondary,
a.btn.secondary,
.btn.light,
button.btn.light,
a.btn.light {
  background:#ffffff !important;
  color:#334155 !important;
  border-color:#cbd5e1 !important;
  box-shadow:0 2px 6px rgba(15,23,42,.06) !important;
}
.btn.secondary:hover,
.btn.secondary:focus,
.btn.light:hover,
.btn.light:focus {
  background:#f1f5f9 !important;
  color:#0f172a !important;
  border-color:#94a3b8 !important;
}

.btn.green,
button.btn.green,
a.btn.green {
  background:#15803d !important;
  color:#fff !important;
  border-color:#166534 !important;
}
.btn.green:hover,
.btn.green:focus { background:#166534 !important; }

.btn.red,
button.btn.red,
a.btn.red {
  background:#dc7a7a !important;
  color:#fff !important;
  border-color:#cf6b6b !important;
}
.btn.red:hover,
.btn.red:focus { background:#cf6b6b !important; }

.btn.big { font-size:18px !important; padding:14px 18px !important; border-radius:14px !important; }
.compact-table .btn { padding:8px 10px !important; font-size:13px !important; }

/* Button visual refinement after screenshot: common compact style */
.actions .btn,
.header .btn {
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
}
.btn.secondary,
button.btn.secondary,
a.btn.secondary,
.btn.light,
button.btn.light,
a.btn.light {
  background:#ffffff !important;
  color:#1f2937 !important;
  border:1px solid #b6c7dc !important;
  box-shadow:0 2px 7px rgba(15,23,42,.08) !important;
}
.btn.secondary:hover,
.btn.secondary:focus,
.btn.light:hover,
.btn.light:focus {
  background:#f8fafc !important;
  color:#0f172a !important;
  border-color:#7da2c8 !important;
}
.btn:not(.secondary):not(.light):not(.green):not(.red) {
  background:#2563eb !important;
  color:#fff !important;
  border-color:#2563eb !important;
}
.btn.green {
  background:#15803d !important;
  border-color:#15803d !important;
}
.btn.red {
  background:#b91c1c !important;
  border-color:#b91c1c !important;
}
.operator-action-btn.btn.red {
  background:#dc7a7a !important;
  border-color:#dc7a7a !important;
}

/* Restore operator desk buttons: keep them independent from global button refinements */
.operator-result-card .operator-action-btn {
  width:100% !important;
  min-height:52px !important;
  padding:15px 12px !important;
  border-radius:15px !important;
  font-size:18px !important;
  font-weight:900 !important;
  box-shadow:none !important;
}
.operator-result-card .operator-action-btn.btn.green {
  background:#15803d !important;
  color:#fff !important;
  border-color:#15803d !important;
}
.operator-result-card .operator-action-btn.btn.green:hover,
.operator-result-card .operator-action-btn.btn.green:focus {
  background:#166534 !important;
}
.operator-result-card .operator-action-btn.btn.red {
  background:#dc7a7a !important;
  color:#fff !important;
  border-color:#dc7a7a !important;
}
.operator-result-card .operator-action-btn.btn.red:hover,
.operator-result-card .operator-action-btn.btn.red:focus {
  background:#cf6b6b !important;
  border-color:#cf6b6b !important;
}

@media (max-width:420px) {
  .operator-result-card .operator-action-btn {
    min-height:56px !important;
    font-size:19px !important;
    padding:16px 14px !important;
  }
}

/* Operator desk: slightly wider action button column */
.operator-result-card-fast {
  grid-template-columns:minmax(0, 1fr) 132px !important;
}
.operator-result-card .operator-action-btn {
  min-width:132px !important;
}

@media (max-width:760px) {
  .operator-result-card-fast {
    grid-template-columns:minmax(0, 1fr) 112px !important;
  }
  .operator-result-card .operator-action-btn {
    min-width:112px !important;
  }
}

@media (max-width:420px) {
  .operator-result-card-fast {
    grid-template-columns:1fr !important;
  }
  .operator-result-card .operator-action-btn {
    min-width:0 !important;
    width:100% !important;
  }
}

/* Participants page actions: grouped toolbar */
.participant-toolbar {
  display:flex;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:20px;
}
.participant-toolbar-spacer { flex:1 1 0; min-width:0; }
.participant-action-group {
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:10px;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:14px;
  box-shadow:0 6px 18px rgba(15,23,42,.04);
}
.participant-action-group.danger { border-color:#fecaca; background:#fff7f7; }
.participant-action-label {
  color:#64748b;
  font-size:11px;
  font-weight:900;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.participant-action-buttons {
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}
.participant-action-group .inline-form { display:inline-flex; }
.participant-action-group .btn { min-height:38px; padding:9px 11px; }
@media (max-width:760px) {
  .dashboard-summary-stats { grid-template-columns:1fr; }
  .participant-toolbar { flex-direction:column; }
  .participant-toolbar-spacer { display:none; }
  .participant-action-buttons { flex-wrap:wrap; }
  .participant-action-group .btn,
  .participant-action-group .inline-form { flex:1 1 auto; }
  .participant-action-group .inline-form .btn { width:100%; }
}

/* Monitor accessi */
.monitor-shell { max-width:1080px; margin:-6px auto 0; }
.monitor-header { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; margin-bottom:14px; }
.monitor-kicker { color:#64748b; font-size:14px; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }
.monitor-header h1 { margin:4px 0 0; font-size:34px; line-height:1; letter-spacing:-.03em; }
.monitor-refresh-info { color:#64748b; font-size:14px; font-weight:800; text-align:right; }
.monitor-stats { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px; margin-bottom:18px; }
.monitor-stat { background:#fff; border:1px solid var(--border); border-radius:18px; padding:18px 20px; box-shadow:0 8px 22px rgba(15,23,42,.06); position:relative; overflow:hidden; }
.monitor-stat::before { content:""; position:absolute; left:0; top:0; bottom:0; width:8px; }
.monitor-stat span { display:block; font-size:15px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; color:#475569; }
.monitor-stat strong { display:block; margin-top:8px; font-size:56px; line-height:.9; font-weight:950; letter-spacing:-.05em; }
.monitor-stat-ok::before { background:#15803d; }
.monitor-stat-ok strong { color:#15803d; }
.monitor-stat-missing::before { background:#ea580c; }
.monitor-stat-missing strong { color:#ea580c; }
.monitor-stat-total::before { background:#2563eb; }
.monitor-stat-total strong { color:#2563eb; }
.monitor-list-title { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; margin:0 0 10px; }
.monitor-list-title h2 { margin:0; font-size:24px; }
.monitor-list-title p { margin:0; color:#64748b; font-weight:700; }
.monitor-feed { display:flex; flex-direction:column; gap:8px; padding-bottom:30vh; }
.monitor-pax-card { display:grid; grid-template-columns:86px minmax(0,1fr) 110px; align-items:center; gap:12px; background:#fff; border:1px solid #e2e8f0; border-radius:18px; padding:13px 16px; box-shadow:0 6px 18px rgba(15,23,42,.05); position:relative; overflow:hidden; }
.monitor-pax-card::before { content:""; position:absolute; left:0; top:0; bottom:0; width:14px; background:#94a3b8; }
.monitor-pax-time { font-size:25px; font-weight:950; color:#0f172a; padding-left:8px; }
.monitor-pax-main strong { display:block; font-size:28px; line-height:1.02; font-weight:950; letter-spacing:-.02em; }
.monitor-pax-main span { display:block; margin-top:3px; font-size:19px; line-height:1.05; font-weight:800; color:#475569; }
.monitor-pax-code { justify-self:end; color:#94a3b8; border:1px solid #e2e8f0; background:#fff; border-radius:999px; padding:6px 10px; font-weight:900; font-size:13px; }
.monitor-pax-card.is-new { animation:monitorNewPax 1.8s ease-out; }
.monitor-color-gray { background:linear-gradient(90deg, rgba(100,116,139,.10), #fff 52%) !important; }
.monitor-color-blue { background:linear-gradient(90deg, rgba(37,99,235,.34), #fff 58%) !important; border-color:#60a5fa; }
.monitor-color-green { background:linear-gradient(90deg, rgba(22,163,74,.34), #fff 58%) !important; border-color:#4ade80; }
.monitor-color-purple { background:linear-gradient(90deg, rgba(147,51,234,.34), #fff 58%) !important; border-color:#c084fc; }
.monitor-color-yellow { background:linear-gradient(90deg, rgba(245,158,11,.38), #fff 58%) !important; border-color:#fbbf24; }
.monitor-color-cyan { background:linear-gradient(90deg, rgba(2,132,199,.34), #fff 58%) !important; border-color:#38bdf8; }
.monitor-color-gray::before { background:#94a3b8; }
.monitor-color-blue::before { background:#1d4ed8; }
.monitor-color-green::before { background:#15803d; }
.monitor-color-purple::before { background:#7e22ce; }
.monitor-color-yellow::before { background:#d97706; }
.monitor-color-cyan::before { background:#0369a1; }
@keyframes monitorNewPax {
  0% { transform:translateY(-10px); box-shadow:0 0 0 0 rgba(37,99,235,.35); }
  35% { transform:translateY(0); box-shadow:0 0 0 8px rgba(37,99,235,.16); }
  100% { box-shadow:0 6px 18px rgba(15,23,42,.05); }
}
@media (max-width:760px) {
  .monitor-header { align-items:flex-start; flex-direction:column; margin-bottom:10px; }
  .monitor-header h1 { font-size:28px; }
  .monitor-refresh-info { text-align:left; }
  .monitor-stats { gap:7px; margin-bottom:12px; }
  .monitor-stat { padding:12px 10px 12px 14px; border-radius:14px; }
  .monitor-stat span { font-size:11px; }
  .monitor-stat strong { font-size:34px; }
  .monitor-list-title { align-items:flex-start; flex-direction:column; gap:3px; }
  .monitor-list-title h2 { font-size:20px; }
  .monitor-list-title p { font-size:13px; }
  .monitor-pax-card { grid-template-columns:58px minmax(0,1fr); gap:8px; padding:11px 12px 11px 16px; border-radius:15px; }
  .monitor-pax-time { font-size:19px; padding-left:4px; }
  .monitor-pax-main strong { font-size:23px; }
  .monitor-pax-main span { font-size:16px; }
  .monitor-pax-code { grid-column:2; justify-self:start; font-size:12px; padding:4px 8px; }
}

/* Monitor accessi: visible refresh countdown */
.monitor-refresh-bar-card {
  background:#fff;
  border:1px solid #dbe3ee;
  border-radius:16px;
  padding:10px 12px 12px;
  margin:-6px 0 16px;
  box-shadow:0 5px 14px rgba(15,23,42,.045);
}
.monitor-refresh-bar-text {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:8px;
  color:#475569;
  font-weight:900;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.035em;
}
.monitor-refresh-bar-text strong {
  color:#2563eb;
  font-size:18px;
  letter-spacing:0;
  text-transform:none;
}
.monitor-refresh-track {
  height:10px;
  border-radius:999px;
  overflow:hidden;
  background:#e2e8f0;
}
.monitor-refresh-bar {
  height:100%;
  width:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#2563eb,#22c55e);
  transform-origin:left center;
}
.monitor-refresh-bar.is-running {
  animation:monitorRefreshCountdown 5s linear forwards;
}
@keyframes monitorRefreshCountdown {
  from { transform:scaleX(1); }
  to { transform:scaleX(0); }
}
@media (max-width:760px) {
  .monitor-refresh-bar-card { margin:-4px 0 12px; padding:9px 10px 11px; }
  .monitor-refresh-bar-text { font-size:12px; margin-bottom:7px; }
  .monitor-refresh-bar-text strong { font-size:16px; }
  .monitor-refresh-track { height:9px; }
}

/* =====================================================
   Note operative — operator desk modal
   ===================================================== */
/* Pulsante Note — stesso stile pill di .operator-sheet-link */
.operator-note-btn {
  font-size:13px;
  font-weight:700;
  color:#fff;
  background:#1e3a8a;
  border:none;
  border-radius:999px;
  padding:6px 14px;
  cursor:pointer;
  box-shadow:0 2px 6px rgba(30,58,138,.18);
  line-height:1.4;
  flex-shrink:0;
  transition:opacity .12s;
}
.operator-note-btn:hover { opacity:.82; }
.operator-note-btn.has-note { background:#e2e8f0; color:#1e293b; box-shadow:none; }

.operator-note-modal-backdrop { position:fixed; inset:0; background:rgba(15,23,42,.44); z-index:50; }
.operator-note-modal {
  position:fixed;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  width:min(580px, calc(100vw - 22px));
  background:#fff;
  border-radius:18px;
  border:1px solid var(--border);
  box-shadow:0 22px 70px rgba(15,23,42,.30);
  padding:18px;
  z-index:51;
}
.operator-note-modal-header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  margin-bottom:12px;
}
.operator-note-modal-header strong {
  font-size:18px;
  font-weight:900;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:calc(100% - 40px);
}
.operator-note-close {
  flex-shrink:0;
  background:transparent;
  border:0;
  font-size:28px;
  line-height:1;
  color:#94a3b8;
  cursor:pointer;
  padding:0 2px;
}
.operator-note-close:hover { color:#172033; }
.operator-note-textarea {
  display:block;
  width:100%;
  min-height:90px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:10px;
  font-size:16px;
  font-family:inherit;
  resize:vertical;
  margin:0 0 12px;
  background:#fff;
  box-sizing:border-box;
}
.operator-note-textarea:focus { outline:2px solid #dbeafe; border-color:#2563eb; }
.operator-note-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.operator-note-actions .btn { width:100%; font-weight:900; min-height:44px; }
@media (max-width:760px) {
  .operator-note-modal { bottom:10px; padding:14px; }
  .operator-note-textarea { font-size:15px; min-height:80px; }
}

/* =====================================================
   Statistiche avanzate
   ===================================================== */
.stats-shell { max-width:1080px; margin:-6px auto 0; }
.stats-header-row {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:18px;
}
.stats-header-row h1 { margin:0 0 4px; font-size:32px; letter-spacing:-.03em; }
.stats-header-row p { margin:0; color:var(--muted); font-weight:700; }
.stats-summary {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:12px;
  margin-bottom:16px;
}
.stats-stat {
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  padding:16px 18px;
  box-shadow:0 6px 18px rgba(15,23,42,.06);
  position:relative;
  overflow:hidden;
}
.stats-stat::before { content:""; position:absolute; left:0; top:0; bottom:0; width:7px; }
.stats-stat span { display:block; font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.05em; color:#475569; }
.stats-stat strong { display:block; font-size:38px; line-height:.95; font-weight:950; letter-spacing:-.04em; margin-top:8px; }
.stats-stat.s-checked::before { background:#15803d; }
.stats-stat.s-checked strong { color:#15803d; }
.stats-stat.s-missing::before { background:#ea580c; }
.stats-stat.s-missing strong { color:#ea580c; }
.stats-stat.s-total::before { background:#2563eb; }
.stats-stat.s-total strong { color:#2563eb; }
.stats-stat.s-rate::before { background:#7e22ce; }
.stats-stat.s-rate strong { color:#7e22ce; }

.stats-card {
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  padding:20px;
  margin-bottom:14px;
  box-shadow:0 6px 18px rgba(15,23,42,.05);
}
.stats-card h2 { margin:0 0 14px; font-size:20px; font-weight:900; }
.stats-timing-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.stats-timing-item {
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:12px;
  padding:12px 14px;
}
.stats-timing-item span { display:block; font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.05em; color:#475569; }
.stats-timing-item strong { display:block; font-size:22px; font-weight:900; margin-top:4px; color:#172033; }
.stats-timing-item em { display:block; font-style:normal; font-size:12px; color:#64748b; margin-top:2px; }

.stats-chart {
  display:flex;
  gap:6px;
  align-items:flex-end;
  overflow-x:auto;
  padding-bottom:4px;
  min-height:140px;
}
.stats-chart-col {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  flex:0 0 auto;
  min-width:38px;
}
.stats-chart-cnt { font-size:11px; font-weight:900; color:#64748b; line-height:1; }
.stats-chart-bar-wrap {
  flex:1;
  min-height:80px;
  display:flex;
  align-items:flex-end;
  width:28px;
}
.stats-chart-bar {
  background:linear-gradient(to top, #1d4ed8, #60a5fa);
  border-radius:5px 5px 2px 2px;
  width:100%;
  min-height:4px;
  transition:height .3s;
}
.stats-chart-time { font-size:10px; color:#94a3b8; font-weight:700; white-space:nowrap; }

.stats-operator-table { width:100%; border-collapse:collapse; }
.stats-operator-table th {
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:#64748b;
  font-weight:900;
  padding:0 0 8px;
  text-align:left;
  border-bottom:2px solid #f1f5f9;
}
.stats-operator-table th:last-child { text-align:right; }
.stats-operator-table td { padding:10px 0; border-bottom:1px solid #f8fafc; vertical-align:middle; }
.stats-operator-table tr:last-child td { border-bottom:0; }
.stats-operator-name { font-size:16px; font-weight:800; padding-right:14px !important; }
.stats-operator-bar-cell { width:45%; padding:10px 14px 10px 0 !important; }
.stats-operator-bar-track { background:#f1f5f9; border-radius:999px; height:9px; overflow:hidden; }
.stats-operator-bar-fill { background:linear-gradient(90deg, #2563eb, #60a5fa); border-radius:999px; height:100%; transition:width .4s; }
.stats-operator-cnt { font-size:15px; font-weight:900; color:#172033; text-align:right; white-space:nowrap; }
.stats-operator-pct { font-size:12px; color:#64748b; font-weight:700; }
.stats-refresh-btn { font-size:13px !important; padding:8px 12px !important; min-height:36px !important; }
.stats-last-updated { font-size:13px; color:#64748b; font-weight:700; }

@media (max-width:760px) {
  .stats-shell { margin-top:0; }
  .stats-header-row { flex-direction:column; gap:10px; align-items:flex-start; }
  .stats-header-row h1 { font-size:26px; }
  .stats-summary { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; margin-bottom:12px; }
  .stats-stat { padding:12px 14px; border-radius:14px; }
  .stats-stat strong { font-size:30px; }
  .stats-timing-row { grid-template-columns:1fr; gap:8px; }
  .stats-chart-col { min-width:32px; }
  .stats-chart-bar-wrap { width:24px; }
}

/* =====================================================
   Kiosk — layout, PIN entry, desk
   ===================================================== */
.kiosk-body { background:#0f172a; color:#fff; min-height:100vh; }
.kiosk-main { padding:0; min-height:100vh; display:flex; flex-direction:column; }
.kiosk-alert { margin:16px 16px 0; }

/* PIN entry */
.kiosk-pin-shell {
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px 16px;
  min-height:100vh;
}
.kiosk-pin-card {
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  border-radius:24px;
  padding:40px 32px 32px;
  width:100%;
  max-width:400px;
  text-align:center;
}
.kiosk-logo {
  width:100%;
  max-width:220px;
  height:auto;
  margin:0 auto 24px;
  display:block;
  filter:brightness(0) invert(1);
  opacity:.85;
}
.kiosk-pin-card h1 {
  margin:0 0 6px;
  font-size:28px;
  font-weight:900;
  color:#fff;
  letter-spacing:-.02em;
}
.kiosk-event-name {
  font-size:17px;
  font-weight:700;
  color:rgba(255,255,255,.65);
  margin-bottom:28px;
  line-height:1.25;
}
.kiosk-pin-input {
  width:100%;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.22);
  border-radius:14px;
  padding:16px 20px;
  font-size:28px;
  font-weight:900;
  letter-spacing:.16em;
  color:#fff;
  text-align:center;
  margin:0 0 14px;
  box-sizing:border-box;
}
.kiosk-pin-input::placeholder { color:rgba(255,255,255,.32); letter-spacing:.06em; font-size:18px; font-weight:700; }
.kiosk-pin-input:focus { outline:2px solid rgba(255,255,255,.38); border-color:rgba(255,255,255,.50); }
.kiosk-submit-btn {
  width:100%;
  background:#2563eb !important;
  border-color:#1d4ed8 !important;
  color:#fff !important;
  font-size:20px !important;
  font-weight:900 !important;
  padding:16px 20px !important;
  border-radius:14px !important;
  min-height:58px;
  box-shadow:0 8px 24px rgba(37,99,235,.38) !important;
}
.kiosk-submit-btn:hover,
.kiosk-submit-btn:focus { background:#1d4ed8 !important; }

/* Desk — code-entry two-step flow */
.kiosk-desk-shell {
  flex:1;
  display:flex;
  flex-direction:column;
  padding:20px 20px 14px;
  min-height:100vh;
  max-width:640px;
  margin:0 auto;
  width:100%;
  box-sizing:border-box;
}
.kiosk-desk-header {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:28px;
}
.kiosk-desk-title {
  font-size:18px;
  font-weight:900;
  color:rgba(255,255,255,.80);
  line-height:1.15;
}
.kiosk-desk-stats {
  flex-shrink:0;
  font-size:14px;
  font-weight:800;
  color:rgba(255,255,255,.55);
  white-space:nowrap;
}
.kiosk-desk-stats strong { color:rgba(255,255,255,.88); font-size:17px; font-weight:950; }
.kiosk-step { flex:1; display:flex; flex-direction:column; justify-content:center; padding-bottom:40px; }
.kiosk-step-label {
  font-size:26px;
  font-weight:900;
  color:#fff;
  letter-spacing:-.02em;
  line-height:1.15;
  margin-bottom:8px;
}
.kiosk-step-hint {
  font-size:16px;
  font-weight:700;
  color:rgba(255,255,255,.55);
  margin:0 0 24px;
}
.kiosk-code-row {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:10px;
  align-items:stretch;
}
.kiosk-code-input {
  width:100%;
  background:rgba(255,255,255,.10);
  border:1.5px solid rgba(255,255,255,.25);
  border-radius:14px;
  padding:16px 20px;
  font-size:30px;
  font-weight:900;
  letter-spacing:.12em;
  color:#fff;
  margin:0;
  box-sizing:border-box;
  text-transform:uppercase;
}
.kiosk-code-input::placeholder { color:rgba(255,255,255,.30); font-size:20px; letter-spacing:.06em; font-weight:700; }
.kiosk-code-input:focus { outline:2px solid rgba(255,255,255,.38); border-color:rgba(255,255,255,.55); }
.kiosk-find-btn {
  background:#2563eb !important;
  border-color:#2563eb !important;
  color:#fff !important;
  font-size:17px !important;
  font-weight:900 !important;
  padding:16px 20px !important;
  border-radius:14px !important;
  min-height:62px;
  white-space:nowrap;
}
.kiosk-find-btn:hover,
.kiosk-find-btn:focus { background:#1d4ed8 !important; }
.kiosk-find-btn:disabled { opacity:.55; cursor:not-allowed; }

.kiosk-feedback {
  margin-top:12px;
  padding:10px 14px;
  border-radius:12px;
  font-weight:900;
  font-size:16px;
}
.kiosk-feedback.success { background:#dcfce7; color:#166534; }
.kiosk-feedback.error { background:rgba(254,226,226,.95); color:#991b1b; }

/* Step conferma */
.kiosk-confirm-card {
  background:rgba(255,255,255,.93);
  border-radius:20px;
  padding:28px 24px 24px;
  color:#172033;
  margin-bottom:16px;
}
.kiosk-confirm-kicker {
  font-size:14px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#475569;
  margin-bottom:10px;
}
.kiosk-confirm-kicker.is-checked { color:#166534; font-size:16px; text-transform:none; letter-spacing:0; }
.kiosk-confirm-name {
  font-size:38px;
  font-weight:950;
  line-height:1.04;
  letter-spacing:-.03em;
  margin-bottom:6px;
}
.kiosk-confirm-company {
  font-size:20px;
  font-weight:700;
  color:#475569;
  margin-bottom:10px;
}
.kiosk-confirm-fields {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:14px;
}
.kiosk-confirm-field {
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:5px 10px;
  background:#f1f5f9;
  border:1px solid #e2e8f0;
  color:#334155;
  font-size:15px;
  font-weight:800;
}
.kiosk-confirm-actions { margin-top:16px; }
.kiosk-confirm-yes {
  width:100%;
  background:#15803d !important;
  border-color:#15803d !important;
  color:#fff !important;
  font-size:20px !important;
  font-weight:900 !important;
  padding:18px 20px !important;
  border-radius:14px !important;
  min-height:62px;
  box-shadow:0 6px 18px rgba(21,128,61,.28) !important;
}
.kiosk-confirm-yes:hover,
.kiosk-confirm-yes:focus { background:#166534 !important; }
.kiosk-confirm-yes:disabled { opacity:.55; cursor:not-allowed; }
.kiosk-back-link {
  background:transparent;
  border:0;
  color:rgba(255,255,255,.62);
  font-size:16px;
  font-weight:800;
  cursor:pointer;
  padding:8px 0;
  display:block;
  text-align:center;
}
.kiosk-back-link:hover { color:rgba(255,255,255,.88); }
.kiosk-exit-row { margin-top:auto; padding-top:20px; text-align:center; }
.kiosk-exit-form { display:inline; }
.kiosk-exit-link {
  color:rgba(255,255,255,.35);
  font-size:13px;
  font-weight:700;
  text-decoration:none;
  background:none;
  border:none;
  cursor:pointer;
  padding:0;
  font-family:inherit;
}
.kiosk-exit-link:hover { color:rgba(255,255,255,.65); }

/* Success overlay */
.kiosk-success-overlay {
  position:fixed;
  inset:0;
  background:rgba(21,128,61,.96);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  z-index:100;
  color:#fff;
  text-align:center;
  padding:24px;
  animation:kioskSuccessIn .3s ease-out;
}
.kiosk-success-checkmark { font-size:96px; line-height:1; margin-bottom:12px; }
.kiosk-success-label { font-size:18px; font-weight:900; text-transform:uppercase; letter-spacing:.10em; color:rgba(255,255,255,.80); margin-bottom:8px; }
.kiosk-success-name { font-size:42px; font-weight:950; line-height:1.02; letter-spacing:-.03em; }
.kiosk-success-company { font-size:21px; font-weight:700; color:rgba(255,255,255,.76); margin-top:6px; }
@keyframes kioskSuccessIn {
  from { opacity:0; transform:scale(.94); }
  to { opacity:1; transform:scale(1); }
}

@media (max-width:760px) {
  .kiosk-desk-shell { padding:14px 14px 12px; }
  .kiosk-desk-header { margin-bottom:20px; }
  .kiosk-step-label { font-size:22px; }
  .kiosk-code-input { font-size:26px; padding:14px 16px; }
  .kiosk-find-btn { padding:14px 16px !important; font-size:16px !important; min-height:56px; }
  .kiosk-confirm-name { font-size:32px; }
  .kiosk-confirm-company { font-size:18px; }
  .kiosk-confirm-yes { font-size:18px !important; padding:16px 18px !important; min-height:56px; }
  .kiosk-success-name { font-size:34px; }
  .kiosk-success-checkmark { font-size:80px; }
}

@media (max-width:420px) {
  .kiosk-code-row { grid-template-columns:1fr; }
  .kiosk-find-btn { min-height:52px; }
  .kiosk-confirm-name { font-size:28px; }
}

/* =====================================================
   Assignments — Kiosk PIN section
   ===================================================== */
.kiosk-active-pin {
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:#dcfce7;
  border:1px solid #86efac;
  border-radius:10px;
  padding:8px 12px;
  font-size:14px;
  font-weight:800;
  color:#166534;
  margin-bottom:14px;
}
.kiosk-no-pin {
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:10px;
  padding:8px 12px;
  font-size:14px;
  font-weight:800;
  color:#64748b;
  margin-bottom:14px;
}
.kiosk-pin-generate-form {
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  margin-bottom:14px;
}
.kiosk-pin-generate-form .select { width:auto; margin:0; }
.kiosk-pin-url {
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:10px;
  padding:10px 14px;
  font-size:13px;
  color:#334155;
  font-family:ui-monospace, monospace;
  word-break:break-all;
}
.kiosk-pin-url span {
  color:#64748b;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
  display:block;
  margin-bottom:4px;
  font-family:inherit;
}
@media (max-width:760px) {
  .kiosk-pin-generate-form { flex-direction:column; align-items:flex-start; }
  .kiosk-pin-generate-form .select,
  .kiosk-pin-generate-form label { width:100%; }
  .kiosk-pin-generate-form .btn { width:100%; }
}
