:root{
  --bg:#050b12;
  --panel:rgba(13,24,38,.88);
  --line:rgba(148,163,184,.18);
  --text:#f8fafc;
  --muted:#9ca3af;
  --blue:#3b82f6;
  --green:#22c55e;
  --amber:#f59e0b;
  --yellow:#eab308;
  --red:#ef4444;
  --purple:#8b5cf6;
  --shadow:0 18px 60px rgba(0,0,0,.45);
  --radius:18px;
}

*{box-sizing:border-box}

html{
  -webkit-text-size-adjust:100%;
  text-rendering:optimizeLegibility;
  color-scheme:dark;
}

body.admin-body{
  margin:0;
  min-height:100vh;
  color:var(--text);
  background:
    radial-gradient(circle at 18% 0%, rgba(59,130,246,.23), transparent 28%),
    radial-gradient(circle at 78% 4%, rgba(34,211,238,.12), transparent 28%),
    linear-gradient(180deg,#08111c 0%,#050b12 58%,#02050a 100%);
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  font-size:14px;
  line-height:1.4;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

a{color:inherit}

.touch-topbar{
  position:sticky;
  top:0;
  z-index:20;
  min-height:68px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:18px;
  padding:12px 20px;
  background:rgba(4,10,18,.88);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
  box-shadow:0 4px 18px rgba(0,0,0,.35);
}

.touch-brand{display:flex;align-items:center;gap:12px;font-size:24px;font-weight:900;letter-spacing:-.035em;white-space:nowrap}
.touch-brand-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;color:#fff;background:linear-gradient(145deg,rgba(59,130,246,.95),rgba(139,92,246,.85));box-shadow:0 0 26px rgba(59,130,246,.5)}
.touch-clock{text-align:center;color:#e5e7eb}
.touch-clock strong{display:block;font-size:24px;line-height:1.05}
.touch-clock span{color:var(--muted);font-size:13px}
.touch-top-actions{display:flex;justify-content:flex-end;gap:10px}
.touch-icon-btn{min-width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.055);color:#fff;text-decoration:none;font-weight:800}

.touch-wrap{width:min(1500px,100%);margin:0 auto;padding:20px}

.touch-tile-nav{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-bottom:18px;
  align-items:stretch;
}

.touch-tile{
  width:260px;
  max-width:100%;
  min-height:104px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.035));
  color:#e5e7eb;
  text-decoration:none;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:-.02em;
  box-shadow:0 10px 24px rgba(0,0,0,.25);
  white-space:nowrap;
}

.touch-tile .tile-icon{font-size:32px;line-height:1}

.touch-tile.active{
  color:#fff;
  border-color:rgba(59,130,246,.85);
  background:
    radial-gradient(circle at 50% 12%,rgba(59,130,246,.45),transparent 42%),
    linear-gradient(180deg,rgba(29,78,216,.7),rgba(15,23,42,.84));
  box-shadow:0 0 0 1px rgba(59,130,246,.35),0 0 34px rgba(59,130,246,.42);
}

.touch-grid{display:grid;grid-template-columns:340px 1fr;gap:18px;align-items:start}

.touch-panel{
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:linear-gradient(180deg,var(--panel),rgba(9,19,31,.84));
  box-shadow:var(--shadow);
  overflow:hidden;
}

.touch-panel-pad{padding:20px}

.touch-panel-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:18px 20px;
  border-bottom:1px solid var(--line);
}

.touch-panel-title{margin:0;font-size:22px;font-weight:900;letter-spacing:-.035em}
.touch-subtitle{margin:4px 0 0;color:var(--muted);font-size:14px}

.event-label{color:#38bdf8;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin:0 0 10px}
.event-name{margin:0;font-size:28px;font-weight:900;letter-spacing:-.04em}
.event-meta{color:#d1d5db;font-size:15px;margin:8px 0 16px}
.event-info{display:grid;gap:12px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.event-info-row{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center}
.event-info-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:rgba(59,130,246,.14);color:#60a5fa}
.event-info-title{color:#dbeafe;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.event-info-value{color:#fff;font-weight:800;margin-top:2px}
.countdown{color:#60a5fa;font-size:22px;font-weight:900;line-height:1}

.stats-list{display:grid;gap:10px;margin-top:18px}
.stat-line{display:grid;grid-template-columns:14px 1fr auto;gap:10px;align-items:center}
.stat-dot{width:9px;height:9px;border-radius:999px}
.stat-dot.pending{background:var(--amber)}
.stat-dot.maybe{background:var(--yellow)}
.stat-dot.played{background:var(--green)}
.stat-dot.duplicate{background:var(--blue)}
.stat-dot.rejected{background:var(--red)}

.touch-btn{
  min-height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:12px 16px;
  border:1px solid var(--line);
  border-radius:14px;
  color:#fff;
  text-decoration:none;
  font-weight:900;
  font-family:inherit;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:-.015em;
  cursor:pointer;
  background:rgba(255,255,255,.07);
}

.touch-btn.blue{border-color:rgba(59,130,246,.55);background:rgba(37,99,235,.16)}
.touch-btn.green{border-color:rgba(34,197,94,.55);background:rgba(22,163,74,.18)}
.touch-btn.purple{border-color:rgba(139,92,246,.55);background:rgba(139,92,246,.16)}
.touch-btn.full{width:100%}

.queue-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:12px;align-items:end;padding:16px 20px;border-bottom:1px solid var(--line)}
.queue-selector label,.sort-selector label{display:block;color:#bfdbfe;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.queue-selector select,.sort-selector select{
  width:100%;
  min-height:52px;
  border:1px solid rgba(147,197,253,.35);
  border-radius:14px;
  background:linear-gradient(180deg,rgba(255,255,255,.11),rgba(255,255,255,.065));
  color:#fff;
  padding:0 14px;
  font-family:inherit;
  font-size:15px;
  font-weight:700;
  outline:none;
}
.queue-selector option,.sort-selector option{color:#111;background:#fff}
.sort-selector{min-width:230px}

.request-list{display:grid;gap:12px;padding:14px}

/* v17 grouped queue card */
.request-card{
  display:grid;
  grid-template-columns:82px minmax(240px,1fr) minmax(260px,1.1fr) 100px 210px;
  gap:14px;
  align-items:center;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.035));
  box-shadow:0 10px 28px rgba(0,0,0,.24);
  overflow:visible;
}

.request-card.status-pending{border-left:4px solid var(--amber)}
.request-card.status-maybe{border-left:4px solid var(--yellow)}
.request-card.status-played{border-left:4px solid var(--green)}
.request-card.status-duplicate{border-left:4px solid var(--blue)}
.request-card.status-rejected{border-left:4px solid var(--red)}

.req-time{color:#f97316;font-size:18px;font-weight:900;line-height:1.05}
.req-time small{display:block;color:#fb923c;font-size:12px;margin-top:3px}

.req-track-title{font-size:20px;font-weight:900;letter-spacing:-.035em}
.req-track-artist{color:#cbd5e1;margin-top:4px}

.group-count{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:8px;
  padding:5px 9px;
  border:1px solid rgba(59,130,246,.45);
  border-radius:999px;
  background:rgba(59,130,246,.14);
  color:#93c5fd;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}

.group-messages{
  display:grid;
  gap:8px;
}

.group-message{
  display:grid;
  grid-template-columns:32px 1fr;
  gap:10px;
  align-items:start;
  padding:8px;
  border:1px solid rgba(148,163,184,.12);
  border-radius:12px;
  background:rgba(255,255,255,.035);
}

.req-person{
  width:32px;
  height:32px;
  border-radius:999px;
  display:grid;
  place-items:center;
  color:#0f172a;
  background:#cbd5e1;
  font-weight:900;
}

.message-person{
  font-weight:900;
  color:#fff;
  line-height:1.15;
}

.message-text{
  color:#e5e7eb;
  margin-top:3px;
}

.message-time{
  color:#93c5fd;
  font-size:11px;
  margin-top:3px;
}

.req-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  min-width:0;
}

.req-action-form{display:block}

.action-tile{
  min-height:58px;
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  border-radius:12px;
  font-family:inherit;
  font-weight:900;
  font-size:10px;
  line-height:1.05;
  text-transform:uppercase;
  cursor:pointer;
  color:#fff;
  background:rgba(255,255,255,.055);
  text-decoration:none;
  text-align:center;
  padding:7px 5px;
  white-space:nowrap;
}

.action-tile .big-icon{font-size:20px;line-height:1}
.action-tile.played{border:1px solid rgba(34,197,94,.65);color:#4ade80}
.action-tile.maybe{border:1px solid rgba(234,179,8,.7);color:#fde047}
.action-tile.duplicate{border:1px solid rgba(59,130,246,.7);color:#60a5fa}
.action-tile.rejected{border:1px solid rgba(239,68,68,.7);color:#f87171}

.status-badge{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:900;text-transform:uppercase}
.status-badge.pending{background:rgba(245,158,11,.16);color:#fbbf24;border:1px solid rgba(245,158,11,.45)}
.status-badge.maybe{background:rgba(234,179,8,.14);color:#fde047;border:1px solid rgba(234,179,8,.45)}
.status-badge.played{background:rgba(34,197,94,.14);color:#4ade80;border:1px solid rgba(34,197,94,.45)}
.status-badge.duplicate{background:rgba(59,130,246,.14);color:#60a5fa;border:1px solid rgba(59,130,246,.45)}
.status-badge.rejected{background:rgba(239,68,68,.13);color:#f87171;border:1px solid rgba(239,68,68,.45)}
.empty-queue{padding:26px;text-align:center;color:var(--muted)}
.last-updated{padding:12px 20px 18px;color:#93c5fd;text-align:center;font-size:13px}

/* retained form support from v16 */
.event-form-shell{display:grid;gap:18px}
.form-section{border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.035));overflow:hidden}
.form-section-header{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.035)}
.form-section-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:rgba(59,130,246,.16);color:#93c5fd;font-size:22px}
.form-section-title{margin:0;font-size:18px;font-weight:900;letter-spacing:-.025em}
.form-section-subtitle{margin:2px 0 0;color:var(--muted);font-size:13px}
.form-section-body{padding:18px}
.form-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.form-field{display:flex;flex-direction:column;gap:7px}
.form-field.span-12{grid-column:span 12}
.form-field.span-8{grid-column:span 8}
.form-field.span-6{grid-column:span 6}
.form-field.span-4{grid-column:span 4}
.form-field.span-3{grid-column:span 3}
.form-field label{color:#dbeafe;font-size:13px;font-weight:900;letter-spacing:.01em}
.form-field small{color:var(--muted);font-size:12px}
.form-field input,.form-field select,.form-field textarea{
  width:100%;
  min-height:56px;
  border:1px solid rgba(148,163,184,.28);
  border-radius:15px;
  background:rgba(255,255,255,.075);
  color:#fff;
  padding:0 15px;
  font-family:inherit;
  font-size:16px;
  outline:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
  color-scheme:dark;
}
.form-field textarea{min-height:112px;padding:14px 15px;resize:vertical}
.form-field select option{color:#111827;background:#fff}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:rgba(59,130,246,.85);box-shadow:0 0 0 3px rgba(59,130,246,.18)}
.form-field input[type="date"],.form-field input[type="time"],.form-field input[type="datetime-local"]{
  background:
    linear-gradient(90deg,rgba(255,255,255,.08) 0%,rgba(255,255,255,.08) calc(100% - 58px),rgba(59,130,246,.22) calc(100% - 58px),rgba(59,130,246,.22) 100%);
  border-color:rgba(147,197,253,.42);
  padding-right:58px;
}
.form-field input[type="date"]::-webkit-calendar-picker-indicator,
.form-field input[type="time"]::-webkit-calendar-picker-indicator,
.form-field input[type="datetime-local"]::-webkit-calendar-picker-indicator{
  filter:invert(1) brightness(2.4) contrast(1.3) drop-shadow(0 0 4px rgba(96,165,250,.8));
  opacity:1;
  cursor:pointer;
  width:22px;
  height:22px;
}
.form-alert{border:1px solid rgba(239,68,68,.45);background:rgba(239,68,68,.12);color:#fecaca;border-radius:15px;padding:14px 16px;font-weight:800}
.form-check-card{display:flex;gap:12px;align-items:center;min-height:64px;padding:13px 15px;border:1px solid rgba(148,163,184,.25);border-radius:15px;background:rgba(255,255,255,.055)}
.form-check-card input{width:22px;height:22px;accent-color:#3b82f6}
.form-check-card strong{display:block;font-size:15px}
.form-check-card span{display:block;color:var(--muted);font-size:12px}
.form-actions{position:sticky;bottom:0;z-index:9;display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;padding:16px 18px;border:1px solid var(--line);border-radius:18px;background:rgba(4,10,18,.9);backdrop-filter:blur(14px);box-shadow:0 -12px 32px rgba(0,0,0,.32)}
.form-actions .touch-btn{min-width:150px}
details.form-advanced{border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.035);overflow:hidden}
details.form-advanced summary{cursor:pointer;padding:16px 18px;font-weight:900;color:#bfdbfe;list-style:none}
details.form-advanced summary::-webkit-details-marker{display:none}
details.form-advanced summary:before{content:"▸";display:inline-block;margin-right:8px}
details.form-advanced[open] summary:before{transform:rotate(90deg)}
.details-body{padding:18px;border-top:1px solid var(--line)}

.touch-login{width:min(440px,100%);margin:80px auto;padding:0 18px}
.touch-login .touch-panel-pad{padding:24px}
.login-title{margin:0 0 6px;font-size:26px;font-weight:900}
.login-subtitle{color:var(--muted);margin:0 0 18px}
.login-input{width:100%;min-height:52px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.08);color:#fff;padding:0 14px;font-family:inherit;font-size:16px}

@media(max-width:1380px){
  .request-card{
    grid-template-columns:82px minmax(210px,1fr) minmax(260px,1.1fr);
  }
  .req-status{grid-column:1/2}
  .req-actions{
    grid-column:2/-1;
  }
}

@media(max-width:980px){
  .touch-grid{grid-template-columns:1fr}
  .touch-topbar{grid-template-columns:1fr auto}
  .touch-clock{display:none}
  .form-field.span-8,.form-field.span-6,.form-field.span-4,.form-field.span-3{grid-column:span 6}
}

@media(max-width:720px){
  .touch-wrap{padding:12px}
  .touch-topbar{position:relative;grid-template-columns:1fr;gap:10px;padding:12px}
  .touch-top-actions{justify-content:stretch}
  .touch-icon-btn{flex:1}
  .touch-brand{font-size:21px}
  .touch-tile-nav{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .touch-tile{width:100%;min-height:88px}
  .queue-toolbar{grid-template-columns:1fr}
  .sort-selector{min-width:0}
  .request-card{grid-template-columns:1fr;gap:10px}
  .req-actions{grid-template-columns:repeat(2,1fr)}
  .action-tile{min-height:58px}
  .form-grid{grid-template-columns:1fr}
  .form-field.span-12,.form-field.span-8,.form-field.span-6,.form-field.span-4,.form-field.span-3{grid-column:span 1}
  .form-section-body{padding:14px}
  .form-actions{position:relative;justify-content:stretch}
  .form-actions .touch-btn{width:100%;min-width:0}
}


/* v18 picker icon alignment/visibility cleanup */
.form-field input[type="date"],
.form-field input[type="time"],
.form-field input[type="datetime-local"]{
  position:relative;
  background:
    linear-gradient(90deg,
      rgba(255,255,255,.08) 0%,
      rgba(255,255,255,.08) calc(100% - 58px),
      rgba(59,130,246,.30) calc(100% - 58px),
      rgba(59,130,246,.30) 100%) !important;
  border-color:rgba(147,197,253,.52) !important;
  padding-right:58px !important;
}

.form-field input[type="date"]::-webkit-calendar-picker-indicator,
.form-field input[type="time"]::-webkit-calendar-picker-indicator,
.form-field input[type="datetime-local"]::-webkit-calendar-picker-indicator{
  position:absolute;
  right:17px;
  top:50%;
  transform:translateY(-50%);
  margin:0;
  padding:0;
  width:24px;
  height:24px;
  opacity:1;
  cursor:pointer;
  filter:invert(1) brightness(3.2) contrast(1.4) drop-shadow(0 0 5px rgba(147,197,253,.95)) !important;
}

.form-field input[type="date"]:hover,
.form-field input[type="time"]:hover,
.form-field input[type="datetime-local"]:hover{
  border-color:rgba(147,197,253,.78) !important;
  box-shadow:0 0 0 2px rgba(59,130,246,.12);
}


/* v19 compact request queue action layout */
.request-card{
  grid-template-columns:82px minmax(220px,1fr) minmax(260px,1.15fr) 96px 300px !important;
  gap:12px !important;
  padding:12px 14px !important;
}

.req-actions{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:6px !important;
  min-width:292px !important;
}

.action-tile{
  min-height:50px !important;
  padding:6px 4px !important;
  font-size:9px !important;
  border-radius:11px !important;
}

.action-tile .big-icon{
  font-size:18px !important;
}

.group-message{
  padding:7px 8px !important;
}

.group-messages{
  gap:6px !important;
}

.req-track-title{
  font-size:19px !important;
}

.group-count{
  margin-top:6px !important;
}

/* v19 dedicated compact event rows */
.event-list{
  display:grid;
  gap:12px;
  padding:14px;
}

.event-row-card{
  display:grid;
  grid-template-columns:120px 170px 1fr 190px 120px 240px;
  gap:14px;
  align-items:center;
  min-height:112px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-left:4px solid var(--green);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.035));
  box-shadow:0 10px 28px rgba(0,0,0,.24);
}

.event-row-card.inactive{
  border-left-color:var(--red);
}

.event-row-date{
  color:#f97316;
  font-size:18px;
  font-weight:900;
  line-height:1.1;
}

.event-row-date small{
  display:block;
  color:#fb923c;
  font-size:12px;
  margin-top:4px;
}

.event-row-type{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:900;
}

.event-row-title strong{
  display:block;
  font-size:20px;
  font-weight:900;
  letter-spacing:-.035em;
}

.event-row-title span,
.event-row-close span{
  display:block;
  color:#cbd5e1;
  margin-top:4px;
}

.event-row-actions{
  display:grid;
  grid-template-columns:repeat(3,70px);
  gap:8px;
  justify-content:end;
}

.event-row-actions .action-tile{
  min-height:58px !important;
  width:70px !important;
  font-size:9px !important;
}

.event-row-actions .big-icon{
  font-size:18px !important;
}

@media(max-width:1380px){
  .request-card{
    grid-template-columns:82px minmax(210px,1fr) minmax(260px,1.1fr) !important;
  }

  .req-status{
    grid-column:1/2;
  }

  .req-actions{
    grid-column:2/-1;
    max-width:360px;
  }

  .event-row-card{
    grid-template-columns:110px 160px 1fr 170px;
  }

  .event-row-status{
    grid-column:1/2;
  }

  .event-row-actions{
    grid-column:2/-1;
    justify-content:start;
  }
}

@media(max-width:900px){
  .event-row-card{
    grid-template-columns:1fr;
    gap:10px;
  }

  .event-row-actions{
    grid-template-columns:repeat(3,70px);
    grid-column:auto;
    justify-content:start;
  }
}

@media(max-width:720px){
  .request-card{
    grid-template-columns:1fr !important;
  }

  .req-actions{
    grid-template-columns:repeat(2,1fr) !important;
    min-width:0 !important;
    max-width:none !important;
  }

  .action-tile{
    min-height:58px !important;
    font-size:10px !important;
  }

  .event-row-actions{
    grid-template-columns:repeat(3,1fr);
  }

  .event-row-actions .action-tile{
    width:100% !important;
  }
}


/* v20 compact request queue header */
.request-queue-compact-header{
  display:grid;
  grid-template-columns:auto minmax(320px,1fr) 230px;
  gap:16px;
  align-items:end;
  padding:16px 20px;
  border-bottom:1px solid var(--line);
}

.request-queue-compact-header .touch-panel-title{
  margin-bottom:8px;
  white-space:nowrap;
}

.request-queue-compact-header .queue-selector,
.request-queue-compact-header .sort-selector{
  min-width:0;
}

.request-queue-compact-header .queue-selector select,
.request-queue-compact-header .sort-selector select{
  min-height:50px;
}

@media(max-width:980px){
  .request-queue-compact-header{
    grid-template-columns:1fr;
  }

  .request-queue-compact-header .touch-panel-title{
    margin-bottom:0;
  }
}


/* v21 compact event rows and active/future/past states */
.event-list{
  display:grid;
  gap:10px;
  padding:12px;
}

.event-row-card{
  display:grid;
  grid-template-columns:118px 155px minmax(260px,1fr) 190px 170px;
  gap:14px;
  align-items:center;
  min-height:96px;
  padding:11px 14px;
  border:1px solid var(--line);
  border-left:4px solid var(--amber);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.035));
  box-shadow:0 10px 28px rgba(0,0,0,.24);
}

.event-row-card.row-current{
  border-left-color:var(--green);
  box-shadow:0 0 0 1px rgba(34,197,94,.14),0 10px 28px rgba(0,0,0,.24);
}

.event-row-card.row-future{
  border-left-color:var(--amber);
}

.event-row-card.row-past{
  border-left-color:var(--red);
  opacity:.82;
}

.event-row-date{
  color:#f97316;
  font-size:18px;
  font-weight:900;
  line-height:1.1;
}

.event-row-date small{
  display:block;
  color:#fb923c;
  font-size:12px;
  margin-top:4px;
}

.event-row-type{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:900;
}

.event-row-title strong{
  display:block;
  font-size:20px;
  font-weight:900;
  letter-spacing:-.035em;
}

.event-row-title span,
.event-row-close span{
  display:block;
  color:#cbd5e1;
  margin-top:4px;
}

.event-row-close strong{
  color:#dbeafe;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.event-row-actions{
  display:grid;
  grid-template-columns:70px 90px;
  gap:8px;
  justify-content:end;
}

.event-row-actions .action-tile{
  min-height:54px !important;
  width:100% !important;
  font-size:9px !important;
  padding:6px 4px !important;
}

.event-row-actions .big-icon{
  font-size:18px !important;
}

.event-row-actions .set-active-btn{
  border:1px solid rgba(34,197,94,.65);
  color:#4ade80;
}

.event-row-actions .current-label{
  min-height:54px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(34,197,94,.45);
  border-radius:12px;
  background:rgba(34,197,94,.12);
  color:#4ade80;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
}

.inline-form{
  margin:0;
}

@media(max-width:1180px){
  .event-row-card{
    grid-template-columns:110px 155px 1fr;
  }

  .event-row-close{
    grid-column:1/2;
  }

  .event-row-actions{
    grid-column:2/-1;
    justify-content:start;
  }
}

@media(max-width:720px){
  .event-row-card{
    grid-template-columns:1fr;
    gap:10px;
  }

  .event-row-actions{
    grid-template-columns:70px 90px;
    justify-content:start;
  }
}


/* v22 event current-state clarity */
.event-row-actions .make-current-btn{
  border:1px solid rgba(34,197,94,.65);
  color:#4ade80;
}

.event-row-actions .current-label{
  border-color:rgba(34,197,94,.55);
  color:#4ade80;
  background:rgba(34,197,94,.12);
}

.event-row-actions .past-label{
  min-height:54px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(239,68,68,.35);
  border-radius:12px;
  background:rgba(239,68,68,.10);
  color:#f87171;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
}


/* v26 event access landing/admin link polish */
.form-field input[readonly]{
  color:#bfdbfe;
  background:rgba(59,130,246,.10);
  border-color:rgba(147,197,253,.35);
}


/* v28 compact header navigation and narrower active panel */
.compact-header-nav{
  display:flex;
  gap:8px;
  align-items:center;
  margin-right:8px;
}

.compact-nav-btn{
  min-width:92px;
  height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 14px;
  border:1px solid rgba(148,163,184,.20);
  border-radius:14px;
  background:rgba(255,255,255,.055);
  color:#e5e7eb;
  text-decoration:none;
  font-weight:900;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:-.015em;
  box-shadow:0 8px 18px rgba(0,0,0,.22);
}

.compact-nav-btn.active{
  color:#fff;
  border-color:rgba(59,130,246,.85);
  background:
    radial-gradient(circle at 50% 12%,rgba(59,130,246,.38),transparent 48%),
    linear-gradient(180deg,rgba(29,78,216,.62),rgba(15,23,42,.84));
  box-shadow:0 0 0 1px rgba(59,130,246,.30),0 0 24px rgba(59,130,246,.32);
}

/* old tile nav should not show in v28 even if an older page still outputs it */
.touch-tile-nav{
  display:none !important;
}

/* rebalance dashboard space: narrower status panel, larger queue */
.touch-grid{
  grid-template-columns:280px minmax(0,1fr) !important;
  gap:14px !important;
}

.touch-panel-pad{
  padding:16px !important;
}

.event-name{
  font-size:24px !important;
}

.event-meta{
  font-size:14px !important;
  margin-bottom:12px !important;
}

.event-info{
  gap:9px !important;
  padding:12px 0 !important;
}

.event-info-row{
  grid-template-columns:30px 1fr !important;
  gap:8px !important;
}

.event-info-icon{
  width:28px !important;
  height:28px !important;
}

.event-info-title{
  font-size:11px !important;
}

.event-info-value{
  font-size:13px !important;
}

.countdown{
  font-size:20px !important;
}

.stats-list{
  gap:7px !important;
  margin-top:14px !important;
}

.stat-line{
  font-size:13px !important;
  gap:8px !important;
}

.request-queue-compact-header{
  padding:13px 16px !important;
  grid-template-columns:auto minmax(260px,1fr) 220px !important;
  gap:12px !important;
}

.request-list{
  padding:12px !important;
}

@media(max-width:1100px){
  .touch-grid{
    grid-template-columns:1fr !important;
  }

  .touch-panel-pad{
    padding:16px !important;
  }
}

@media(max-width:900px){
  .touch-topbar{
    grid-template-columns:1fr !important;
  }

  .touch-clock{
    display:none !important;
  }

  .touch-top-actions{
    justify-content:stretch !important;
    flex-wrap:wrap;
  }

  .compact-header-nav{
    width:100%;
    margin-right:0;
  }

  .compact-nav-btn{
    flex:1;
    min-width:0;
  }
}

@media(max-width:520px){
  .compact-header-nav{
    display:grid;
    grid-template-columns:repeat(3,1fr);
  }

  .compact-nav-btn{
    height:44px;
    font-size:11px;
    padding:0 8px;
  }
}


/* v30 header nav repair */
.touch-top-actions{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
}

.compact-header-nav{
  display:flex !important;
  gap:8px !important;
  align-items:center !important;
  margin-right:8px !important;
}

.compact-nav-btn{
  min-width:104px !important;
  height:48px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 16px !important;
  border:1px solid rgba(148,163,184,.22) !important;
  border-radius:14px !important;
  background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.04)) !important;
  color:#e5e7eb !important;
  text-decoration:none !important;
  font-weight:900 !important;
  font-size:13px !important;
  text-transform:uppercase !important;
  letter-spacing:-.015em !important;
  box-shadow:0 8px 18px rgba(0,0,0,.24) !important;
  white-space:nowrap !important;
}

.compact-nav-btn.active{
  color:#fff !important;
  border-color:rgba(59,130,246,.9) !important;
  background:
    radial-gradient(circle at 50% 12%,rgba(59,130,246,.44),transparent 48%),
    linear-gradient(180deg,rgba(29,78,216,.68),rgba(15,23,42,.88)) !important;
  box-shadow:0 0 0 1px rgba(59,130,246,.36),0 0 24px rgba(59,130,246,.36) !important;
}

/* keep old large tiles hidden */
.touch-tile-nav{
  display:none !important;
}

@media(max-width:980px){
  .touch-topbar{
    grid-template-columns:1fr !important;
  }

  .touch-clock{
    display:none !important;
  }

  .touch-top-actions{
    justify-content:stretch !important;
    flex-wrap:wrap !important;
  }

  .compact-header-nav{
    width:100% !important;
    margin-right:0 !important;
  }

  .compact-nav-btn{
    flex:1 !important;
    min-width:0 !important;
  }
}

@media(max-width:520px){
  .compact-header-nav{
    display:grid !important;
    grid-template-columns:repeat(3,1fr) !important;
  }

  .compact-nav-btn{
    height:46px !important;
    font-size:11px !important;
    padding:0 8px !important;
  }
}


/* v31 fixed overlay header navigation - does not depend on shared header file */
.admin-floating-nav{
  position:fixed;
  top:12px;
  right:122px;
  z-index:1000;
  display:flex;
  align-items:center;
  gap:8px;
}

.admin-floating-nav-btn{
  min-width:104px;
  height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 14px;
  border:1px solid rgba(148,163,184,.24);
  border-radius:14px;
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.045));
  color:#e5e7eb;
  text-decoration:none;
  font-weight:900;
  font-size:13px;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:-.015em;
  box-shadow:0 8px 18px rgba(0,0,0,.24);
  white-space:nowrap;
}

.admin-floating-nav-btn.active{
  color:#fff;
  border-color:rgba(59,130,246,.95);
  background:
    radial-gradient(circle at 50% 12%,rgba(59,130,246,.48),transparent 48%),
    linear-gradient(180deg,rgba(29,78,216,.72),rgba(15,23,42,.9));
  box-shadow:0 0 0 1px rgba(59,130,246,.38),0 0 26px rgba(59,130,246,.38);
}

/* keep old second-row tiles hidden */
.touch-tile-nav{
  display:none !important;
}

/* make space reclaimed from old nav; keep content close to header */
.touch-wrap{
  padding-top:20px !important;
}

@media(max-width:1050px){
  .admin-floating-nav{
    position:static;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    margin:12px 12px 0;
    width:auto;
  }

  .admin-floating-nav-btn{
    min-width:0;
  }
}

@media(max-width:520px){
  .admin-floating-nav-btn{
    height:46px;
    font-size:11px;
    padding:0 8px;
  }
}


/* v32 guaranteed admin floating navigation */
.admin-floating-nav{
  position:fixed;
  top:12px;
  right:122px;
  z-index:99999;
  display:flex !important;
  align-items:center;
  gap:8px;
}

.admin-floating-nav-btn{
  min-width:104px;
  height:48px;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  padding:0 14px;
  border:1px solid rgba(148,163,184,.24);
  border-radius:14px;
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.045));
  color:#e5e7eb !important;
  text-decoration:none !important;
  font-weight:900;
  font-size:13px;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:-.015em;
  box-shadow:0 8px 18px rgba(0,0,0,.24);
  white-space:nowrap;
}

.admin-floating-nav-btn.active{
  color:#fff !important;
  border-color:rgba(59,130,246,.95);
  background:
    radial-gradient(circle at 50% 12%,rgba(59,130,246,.48),transparent 48%),
    linear-gradient(180deg,rgba(29,78,216,.72),rgba(15,23,42,.9));
  box-shadow:0 0 0 1px rgba(59,130,246,.38),0 0 26px rgba(59,130,246,.38);
}

.touch-tile-nav{
  display:none !important;
}

@media(max-width:1050px){
  .admin-floating-nav{
    position:static;
    display:grid !important;
    grid-template-columns:repeat(3,1fr);
    margin:12px 12px 0;
    width:auto;
  }

  .admin-floating-nav-btn{
    min-width:0;
  }
}


/* v33 reliable in-page admin navigation */
.admin-floating-nav{
  display:none !important;
}

.touch-tile-nav{
  display:none !important;
}

.admin-page-nav{
  display:flex;
  gap:10px;
  align-items:center;
  margin:0 0 14px;
}

.admin-page-nav-btn{
  min-width:150px;
  height:56px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 18px;
  border:1px solid rgba(148,163,184,.24);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.045));
  color:#e5e7eb;
  text-decoration:none;
  font-weight:900;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:-.015em;
  box-shadow:0 8px 18px rgba(0,0,0,.24);
  white-space:nowrap;
}

.admin-page-nav-btn.active{
  color:#fff;
  border-color:rgba(59,130,246,.95);
  background:
    radial-gradient(circle at 50% 12%,rgba(59,130,246,.48),transparent 48%),
    linear-gradient(180deg,rgba(29,78,216,.72),rgba(15,23,42,.9));
  box-shadow:0 0 0 1px rgba(59,130,246,.38),0 0 26px rgba(59,130,246,.38);
}

.admin-home-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(220px,1fr));
  gap:16px;
  padding:18px;
}

.admin-home-card{
  min-height:150px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid rgba(148,163,184,.20);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.035));
  color:#fff;
  text-decoration:none;
  text-align:center;
  box-shadow:0 10px 24px rgba(0,0,0,.24);
}

.admin-home-icon{
  font-size:34px;
}

.admin-home-card strong{
  font-size:20px;
  font-weight:950;
}

.admin-home-card span:last-child{
  color:#cbd5e1;
}

@media(max-width:720px){
  .admin-page-nav{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .admin-page-nav-btn{
    min-width:0;
    height:52px;
  }

  .admin-home-grid{
    grid-template-columns:1fr;
  }
}


/* v34 shared header navigation - real top-right header buttons */
.admin-floating-nav,
.admin-page-nav,
.touch-tile-nav{
  display:none !important;
}

.touch-topbar{
  grid-template-columns:auto 1fr auto !important;
}

.touch-top-actions{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
}

.header-admin-nav{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  margin-right:8px !important;
}

.header-admin-nav-btn{
  min-width:104px;
  height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 14px;
  border:1px solid rgba(148,163,184,.24);
  border-radius:14px;
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.045));
  color:#e5e7eb;
  text-decoration:none;
  font-weight:900;
  font-size:13px;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:-.015em;
  box-shadow:0 8px 18px rgba(0,0,0,.24);
  white-space:nowrap;
}

.header-admin-nav-btn.active{
  color:#fff;
  border-color:rgba(59,130,246,.95);
  background:
    radial-gradient(circle at 50% 12%,rgba(59,130,246,.48),transparent 48%),
    linear-gradient(180deg,rgba(29,78,216,.72),rgba(15,23,42,.9));
  box-shadow:0 0 0 1px rgba(59,130,246,.38),0 0 26px rgba(59,130,246,.38);
}

.admin-home-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(220px,1fr));
  gap:16px;
  padding:18px;
}

.admin-home-card{
  min-height:150px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid rgba(148,163,184,.20);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.035));
  color:#fff;
  text-decoration:none;
  text-align:center;
  box-shadow:0 10px 24px rgba(0,0,0,.24);
}

.admin-home-icon{
  font-size:34px;
}

.admin-home-card strong{
  font-size:20px;
  font-weight:950;
}

.admin-home-card span:last-child{
  color:#cbd5e1;
}

@media(max-width:1100px){
  .touch-topbar{
    grid-template-columns:1fr !important;
    gap:10px;
  }

  .touch-clock{
    display:none !important;
  }

  .touch-top-actions{
    justify-content:stretch !important;
    flex-wrap:wrap !important;
  }

  .header-admin-nav{
    flex:1 1 100% !important;
    margin-right:0 !important;
  }

  .header-admin-nav-btn{
    flex:1 !important;
    min-width:0 !important;
  }
}

@media(max-width:620px){
  .header-admin-nav{
    display:grid !important;
    grid-template-columns:repeat(3,1fr);
    width:100%;
  }

  .header-admin-nav-btn{
    height:46px;
    font-size:11px;
    padding:0 8px;
  }

  .admin-home-grid{
    grid-template-columns:1fr;
  }
}


/* v35 request queue update indicator */
.request-update-banner{
  position:sticky;
  top:76px;
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0 0 14px;
  padding:12px 14px;
  border:1px solid rgba(96,165,250,.55);
  border-radius:16px;
  background:
    radial-gradient(circle at 10% 0%,rgba(59,130,246,.34),transparent 34%),
    linear-gradient(180deg,rgba(15,23,42,.96),rgba(15,23,42,.88));
  color:#fff;
  box-shadow:0 16px 38px rgba(0,0,0,.34),0 0 24px rgba(59,130,246,.20);
}

.request-update-banner[hidden]{
  display:none !important;
}

.request-update-banner strong{
  display:block;
  font-size:14px;
  font-weight:950;
}

.request-update-banner span{
  display:block;
  color:#bfdbfe;
  font-size:13px;
  margin-top:2px;
}

.request-update-banner button{
  min-height:44px;
  padding:0 14px;
  border:1px solid rgba(96,165,250,.75);
  border-radius:13px;
  background:rgba(37,99,235,.26);
  color:#fff;
  font-family:inherit;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
}

@media(max-width:720px){
  .request-update-banner{
    align-items:stretch;
    flex-direction:column;
  }

  .request-update-banner button{
    width:100%;
  }
}


/* v38 header timer summary - compact, in header area, not in main page */
.header-event-summary{
  position:fixed;
  top:10px;
  left:50%;
  transform:translateX(-50%);
  z-index:60;
  display:grid;
  grid-template-columns:repeat(4,minmax(92px,1fr));
  gap:6px;
  width:min(520px,42vw);
  pointer-events:none;
}

.header-summary-item{
  min-height:50px;
  padding:7px 9px;
  border:1px solid rgba(148,163,184,.20);
  border-radius:13px;
  background:
    radial-gradient(circle at 12% 0%,rgba(59,130,246,.22),transparent 36%),
    linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.04));
  box-shadow:0 8px 20px rgba(0,0,0,.24);
  text-align:center;
}

.header-summary-item span{
  display:block;
  color:#bfdbfe;
  font-size:9px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.06em;
  line-height:1.05;
  margin-bottom:4px;
}

.header-summary-item strong{
  display:block;
  color:#fff;
  font-size:16px;
  font-weight:950;
  line-height:1.05;
  letter-spacing:-.025em;
  white-space:nowrap;
}

.header-summary-item strong.timer-warning{
  color:#fbbf24;
}

.header-summary-item strong.timer-ended{
  color:#f87171;
}

.header-summary-item strong.timer-live{
  color:#4ade80;
}

/* On the Requests page the event summary replaces the normal centre clock */
body:has(.header-event-summary) .touch-clock{
  visibility:hidden;
}

@media(max-width:1320px){
  .header-event-summary{
    position:static;
    transform:none;
    width:auto;
    margin:10px 12px 0;
    grid-template-columns:repeat(4,minmax(80px,1fr));
  }

  body:has(.header-event-summary) .touch-clock{
    display:none !important;
  }
}

@media(max-width:720px){
  .header-event-summary{
    grid-template-columns:repeat(2,1fr);
  }
}


/* v39 automatic current event */
.request-queue-compact-header.no-event-selector{
  grid-template-columns:minmax(260px,1fr) 230px !important;
}

.upcoming-label{
  min-height:54px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(245,158,11,.45);
  border-radius:12px;
  background:rgba(245,158,11,.10);
  color:#fbbf24;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
}

@media(max-width:980px){
  .request-queue-compact-header.no-event-selector{
    grid-template-columns:1fr !important;
  }
}


/* v40 header brand + live clock cleanup */
.touch-brand,
.touch-brand:link,
.touch-brand:visited,
.touch-brand:hover,
.touch-brand:active{
  text-decoration:none !important;
  border-bottom:none !important;
}

.touch-brand span,
.touch-brand span:hover{
  text-decoration:none !important;
}

.touch-brand{
  user-select:none;
}

.touch-brand-mark{
  text-decoration:none !important;
}

.touch-clock strong{
  font-variant-numeric:tabular-nums;
}

.touch-clock{
  min-width:120px;
}


/* v41 header seconds + active event countdowns */
.touch-clock strong{
  font-variant-numeric:tabular-nums;
  min-width:86px;
}

.mini-countdown{
  display:block;
  margin-top:4px;
  font-size:11px;
  line-height:1.15;
  font-weight:900;
  color:#93c5fd;
  text-transform:uppercase;
  letter-spacing:.02em;
}

.mini-countdown.mini-live{
  color:#4ade80;
}

.mini-countdown.mini-warning{
  color:#fbbf24;
}

.mini-countdown.mini-ended{
  color:#f87171;
}

.event-info-value .mini-countdown,
.countdown .mini-countdown{
  font-size:11px;
}


/* v43 header clock + all-events list repair */
.touch-clock strong{
  font-variant-numeric:tabular-nums;
  min-width:92px;
}

.event-row-card{
  grid-template-columns:118px 155px minmax(260px,1fr) 190px 130px 70px !important;
}

.event-row-state{
  display:flex;
  justify-content:flex-end;
}

.event-row-actions{
  grid-template-columns:70px !important;
}

.upcoming-label{
  min-height:54px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(245,158,11,.45);
  border-radius:12px;
  background:rgba(245,158,11,.10);
  color:#fbbf24;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
}

@media(max-width:1180px){
  .event-row-card{
    grid-template-columns:110px 155px 1fr !important;
  }

  .event-row-close,
  .event-row-state,
  .event-row-actions{
    grid-column:auto !important;
    justify-content:start;
  }
}

@media(max-width:720px){
  .event-row-card{
    grid-template-columns:1fr !important;
  }
}


/* v44 active event countdown display fix */
.mini-countdown{
  display:block;
  margin-top:4px;
  font-size:11px;
  line-height:1.15;
  font-weight:900;
  color:#93c5fd;
  text-transform:uppercase;
  letter-spacing:.02em;
}

.mini-countdown.mini-live{
  color:#4ade80;
}

.mini-countdown.mini-warning{
  color:#fbbf24;
}

.mini-countdown.mini-ended{
  color:#f87171;
}

.event-info-value .mini-countdown,
.countdown .mini-countdown{
  font-size:11px;
}


/* v46 make Requests Close match Event Time countdown format */
.event-info-value .mini-countdown{
  display:block;
  margin-top:4px;
  font-size:11px;
  line-height:1.15;
  font-weight:900;
  color:#4ade80;
  text-transform:uppercase;
  letter-spacing:.02em;
}

.event-info-value .mini-countdown.mini-warning{
  color:#fbbf24;
}

.event-info-value .mini-countdown.mini-ended{
  color:#f87171;
}


/* v47 forced request close countdown display */
.request-close-mini-countdown,
#requestCloseCountdown{
  display:block !important;
  margin-top:4px !important;
  font-size:11px !important;
  line-height:1.15 !important;
  font-weight:900 !important;
  color:#4ade80 !important;
  text-transform:uppercase !important;
  letter-spacing:.02em !important;
}

#requestCloseCountdown.mini-warning{
  color:#fbbf24 !important;
}

#requestCloseCountdown.mini-ended{
  color:#f87171 !important;
}


/* v48 settings placeholder */
.muted-text{
  color:#cbd5e1;
  font-size:15px;
}


/* v49 countdown formatting cleanup */
.event-info-value.countdown{
  font-size:28px !important;
  line-height:1 !important;
  font-weight:900 !important;
  color:#ffffff !important;
}

.request-close-mini-countdown,
#requestCloseCountdown,
#eventEndCountdown{
  display:block !important;
  margin-top:4px !important;
  font-size:11px !important;
  line-height:1.15 !important;
  font-weight:900 !important;
  color:#4ade80 !important;
  text-transform:uppercase !important;
  letter-spacing:.02em !important;
  font-variant-numeric: tabular-nums;
}

#requestCloseCountdown.mini-warning,
#eventEndCountdown.mini-warning{
  color:#fbbf24 !important;
}

#requestCloseCountdown.mini-ended,
#eventEndCountdown.mini-ended{
  color:#f87171 !important;
}


/* v50 request close font size match */
.event-info-value.countdown{
  font-size:14px !important;
  line-height:1.2 !important;
  font-weight:900 !important;
  color:#ffffff !important;
}

/* v50 queue update prompt */
.request-update-banner{
  position:sticky;
  top:76px;
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0 0 14px;
  padding:12px 14px;
  border:1px solid rgba(96,165,250,.55);
  border-radius:16px;
  background:
    radial-gradient(circle at 10% 0%,rgba(59,130,246,.34),transparent 34%),
    linear-gradient(180deg,rgba(15,23,42,.96),rgba(15,23,42,.88));
  color:#fff;
  box-shadow:0 16px 38px rgba(0,0,0,.34),0 0 24px rgba(59,130,246,.20);
}

.request-update-banner[hidden]{
  display:none !important;
}

.request-update-banner strong{
  display:block;
  font-size:14px;
  font-weight:950;
}

.request-update-banner span{
  display:block;
  color:#bfdbfe;
  font-size:13px;
  margin-top:2px;
}

.request-update-banner button{
  min-height:44px;
  padding:0 14px;
  border:1px solid rgba(96,165,250,.75);
  border-radius:13px;
  background:rgba(37,99,235,.26);
  color:#fff;
  font-family:inherit;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
}

@media(max-width:720px){
  .request-update-banner{
    align-items:stretch;
    flex-direction:column;
  }

  .request-update-banner button{
    width:100%;
  }
}


/* v51 compact active event card */
.touch-eyebrow,
.panel-eyebrow{
  display:none !important;
}

.event-name{
  margin-top:0 !important;
}

/* Put countdown beside the time, not underneath */
.event-info-value,
.event-info-value.countdown{
  display:flex !important;
  align-items:baseline !important;
  gap:8px !important;
  flex-wrap:wrap !important;
}

.event-info-value .mini-countdown,
.event-info-value.countdown .mini-countdown,
.request-close-mini-countdown,
#requestCloseCountdown,
#eventEndCountdown{
  display:inline-flex !important;
  margin-top:0 !important;
  font-size:11px !important;
  line-height:1 !important;
  font-weight:900 !important;
  color:#4ade80 !important;
  text-transform:uppercase !important;
  letter-spacing:.02em !important;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}

#requestCloseCountdown.mini-warning,
#eventEndCountdown.mini-warning{
  color:#fbbf24 !important;
}

#requestCloseCountdown.mini-ended,
#eventEndCountdown.mini-ended{
  color:#f87171 !important;
}

/* Requests close value should match event time value */
.event-info-value.countdown{
  font-size:14px !important;
  line-height:1.2 !important;
  font-weight:900 !important;
  color:#fff !important;
}


/* v52 final removal of Active Event label */
.touch-panel .touch-eyebrow,
.touch-panel .panel-eyebrow,
.touch-panel .eyebrow,
.active-event-label,
.active-label{
  display:none !important;
}

/* If the label is still present as a small heading in the first card, hide the first small uppercase line */
.touch-grid > .touch-panel:first-child > .touch-panel-pad > :first-child:not(.event-name){
  display:none !important;
}

.touch-grid > .touch-panel:first-child .event-name{
  margin-top:0 !important;
}


/* v53 requests layout settings */
.requests-layout-event_right{
  grid-template-columns:minmax(0,1fr) 280px !important;
}

.requests-layout-event_right > .touch-panel:first-child{
  order:2;
}

.requests-layout-event_right > .touch-panel:nth-child(2){
  order:1;
}

.requests-layout-queue_only{
  grid-template-columns:1fr !important;
}

.requests-layout-queue_only > .touch-panel:first-child{
  display:none !important;
}

.requests-layout-queue_only > .touch-panel:nth-child(2){
  grid-column:1 / -1 !important;
}

.settings-form{
  display:block;
}

.settings-section{
  border:1px solid rgba(148,163,184,.18);
  border-radius:18px;
  background:rgba(255,255,255,.035);
  overflow:hidden;
}

.settings-section-header{
  padding:18px;
  border-bottom:1px solid rgba(148,163,184,.16);
}

.settings-section-header h2{
  margin:0;
  color:#fff;
  font-size:22px;
  line-height:1.1;
  letter-spacing:-.04em;
}

.settings-section-header p{
  margin:6px 0 0;
  color:#bfdbfe;
  font-size:14px;
}

.layout-radio-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  padding:18px;
}

.layout-radio-card{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:220px;
  padding:16px;
  border:1px solid rgba(148,163,184,.22);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.03));
  color:#fff;
  cursor:pointer;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.layout-radio-card:hover{
  border-color:rgba(96,165,250,.55);
  box-shadow:0 0 24px rgba(59,130,246,.18);
}

.layout-radio-card.selected{
  border-color:rgba(59,130,246,.95);
  box-shadow:0 0 0 1px rgba(59,130,246,.35),0 0 30px rgba(59,130,246,.22);
}

.layout-radio-card input{
  position:absolute;
  top:14px;
  right:14px;
  width:20px;
  height:20px;
  accent-color:#3b82f6;
}

.layout-radio-card strong{
  font-size:17px;
  font-weight:950;
  line-height:1.15;
}

.layout-radio-card small{
  color:#cbd5e1;
  line-height:1.35;
}

.layout-preview{
  height:86px;
  display:grid;
  gap:8px;
  padding:10px;
  border-radius:16px;
  border:1px solid rgba(148,163,184,.18);
  background:rgba(2,6,23,.55);
}

.layout-preview-left,
.layout-preview-right{
  grid-template-columns:1fr 2.4fr;
}

.layout-preview-right{
  grid-template-columns:2.4fr 1fr;
}

.layout-preview-only{
  grid-template-columns:1fr;
}

.preview-small,
.preview-large{
  display:block;
  border-radius:12px;
  border:1px solid rgba(96,165,250,.38);
  background:
    radial-gradient(circle at 20% 10%,rgba(59,130,246,.35),transparent 38%),
    linear-gradient(180deg,rgba(30,41,59,.98),rgba(15,23,42,.96));
}

.preview-large{
  border-color:rgba(34,197,94,.40);
}

.settings-actions{
  display:flex;
  justify-content:flex-end;
  padding:18px 0 0;
}

.settings-alert{
  margin:0 0 14px;
  padding:12px 14px;
  border-radius:14px;
  font-weight:900;
}

.settings-alert.success{
  color:#bbf7d0;
  border:1px solid rgba(34,197,94,.45);
  background:rgba(34,197,94,.12);
}

.settings-alert.error{
  color:#fecaca;
  border:1px solid rgba(248,113,113,.45);
  background:rgba(248,113,113,.12);
}

@media(max-width:980px){
  .requests-layout-event_right{
    grid-template-columns:1fr !important;
  }

  .requests-layout-event_right > .touch-panel:first-child,
  .requests-layout-event_right > .touch-panel:nth-child(2){
    order:initial;
  }

  .layout-radio-grid{
    grid-template-columns:1fr;
  }
}


/* v54 fixed apply requests layout setting */
.touch-grid.requests-layout-event_left{
  grid-template-columns:280px minmax(0,1fr) !important;
}

.touch-grid.requests-layout-event_left .active-event-panel{
  order:1 !important;
  display:block !important;
}

.touch-grid.requests-layout-event_left .request-queue-panel{
  order:2 !important;
  display:block !important;
}

.touch-grid.requests-layout-event_right{
  grid-template-columns:minmax(0,1fr) 280px !important;
}

.touch-grid.requests-layout-event_right .request-queue-panel{
  order:1 !important;
  display:block !important;
}

.touch-grid.requests-layout-event_right .active-event-panel{
  order:2 !important;
  display:block !important;
  max-width:280px;
}

.touch-grid.requests-layout-queue_only{
  grid-template-columns:1fr !important;
}

.touch-grid.requests-layout-queue_only .active-event-panel{
  display:none !important;
}

.touch-grid.requests-layout-queue_only .request-queue-panel{
  display:block !important;
  grid-column:1 / -1 !important;
  order:1 !important;
}

.request-queue-panel,
.active-event-panel{
  min-width:0 !important;
}

@media(max-width:980px){
  .touch-grid.requests-layout-event_left,
  .touch-grid.requests-layout-event_right,
  .touch-grid.requests-layout-queue_only{
    grid-template-columns:1fr !important;
  }

  .touch-grid.requests-layout-event_right .request-queue-panel,
  .touch-grid.requests-layout-event_right .active-event-panel{
    order:initial !important;
  }

  .touch-grid.requests-layout-event_right .active-event-panel{
    max-width:none;
  }

  .touch-grid.requests-layout-queue_only .active-event-panel{
    display:none !important;
  }
}


/* v55 events sorting and clean row actions */
.event-row-card{
  grid-template-columns:118px 155px minmax(260px,1fr) 190px 70px !important;
}

.event-row-state,
.current-label,
.past-label,
.upcoming-label{
  display:none !important;
}

.event-row-actions-only{
  display:flex !important;
  justify-content:flex-end !important;
}

.event-row-actions-only .action-tile{
  width:70px !important;
  min-width:70px !important;
}

@media(max-width:1180px){
  .event-row-card{
    grid-template-columns:110px 155px 1fr !important;
  }

  .event-row-close,
  .event-row-actions-only{
    grid-column:auto !important;
    justify-content:start !important;
  }
}

@media(max-width:720px){
  .event-row-card{
    grid-template-columns:1fr !important;
  }
}


/* v59 queue update diagnostic line */
.request-update-banner small{
  display:block;
  margin-top:4px;
  color:#93c5fd;
  font-size:11px;
  line-height:1.25;
  font-weight:700;
}


/* v60 index test request tool */
.test-request-panel{
  margin-top:16px;
}

.test-request-form{
  display:block;
}

.test-request-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}

.test-request-grid label{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.test-request-grid span{
  color:#bfdbfe;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.test-request-grid input{
  min-height:48px;
  width:100%;
  padding:0 12px;
  border:1px solid rgba(148,163,184,.28);
  border-radius:13px;
  background:rgba(15,23,42,.84);
  color:#fff;
  font:inherit;
  font-weight:800;
}

.test-request-grid input::placeholder{
  color:#64748b;
}

@media(max-width:980px){
  .test-request-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:620px){
  .test-request-grid{
    grid-template-columns:1fr;
  }
}


/* v61 queue debug page */
.debug-event-form{
  margin-bottom:14px;
}

.debug-event-form label{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.debug-event-form span{
  color:#bfdbfe;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.debug-event-form select{
  min-height:48px;
  padding:0 12px;
  border:1px solid rgba(148,163,184,.28);
  border-radius:13px;
  background:rgba(15,23,42,.84);
  color:#fff;
  font:inherit;
  font-weight:800;
}

.queue-debug-card{
  border:1px dashed rgba(147,197,253,.42);
  border-radius:18px;
  background:rgba(15,23,42,.62);
  padding:14px;
}

.queue-debug-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

.queue-debug-header h2{
  margin:0;
  color:#fff;
  font-size:22px;
  letter-spacing:-.04em;
}

.queue-debug-header button{
  min-height:42px;
  padding:0 14px;
  border:1px solid rgba(96,165,250,.55);
  border-radius:12px;
  background:rgba(37,99,235,.22);
  color:#fff;
  font-weight:900;
  cursor:pointer;
}

.queue-debug-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-bottom:12px;
}

.queue-debug-grid div{
  min-height:58px;
  padding:10px;
  border-radius:14px;
  background:rgba(255,255,255,.045);
}

.queue-debug-grid span{
  display:block;
  color:#93c5fd;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.05em;
  margin-bottom:5px;
}

.queue-debug-grid strong{
  display:block;
  color:#fff;
  font-size:12px;
  line-height:1.25;
  word-break:break-word;
}

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


/* v62 live queue update banner */
.request-update-banner{
  position:sticky;
  top:76px;
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0 0 14px;
  padding:12px 14px;
  border:1px solid rgba(96,165,250,.55);
  border-radius:16px;
  background:
    radial-gradient(circle at 10% 0%,rgba(59,130,246,.34),transparent 34%),
    linear-gradient(180deg,rgba(15,23,42,.96),rgba(15,23,42,.88));
  color:#fff;
  box-shadow:0 16px 38px rgba(0,0,0,.34),0 0 24px rgba(59,130,246,.20);
}

.request-update-banner[hidden]{
  display:none !important;
}

.request-update-banner strong{
  display:block;
  font-size:14px;
  font-weight:950;
}

.request-update-banner span{
  display:block;
  color:#bfdbfe;
  font-size:13px;
  margin-top:2px;
}

.request-update-banner button{
  min-height:44px;
  padding:0 14px;
  border:1px solid rgba(96,165,250,.75);
  border-radius:13px;
  background:rgba(37,99,235,.26);
  color:#fff;
  font-family:inherit;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
}

@media(max-width:720px){
  .request-update-banner{
    align-items:stretch;
    flex-direction:column;
  }

  .request-update-banner button{
    width:100%;
  }
}


/* v65 request queue compact tidy */

/* Hide the SORT label above the dropdown to lift the request queue header */
.sort-selector > label,
.sort-selector label,
.request-queue-compact-header .sort-selector > span,
.request-queue-compact-header .sort-selector > strong,
.request-queue-compact-header .sort-selector .form-label{
  display:none !important;
}

/* Keep the sort dropdown aligned neatly without its label */
.request-queue-compact-header .sort-selector{
  align-self:end !important;
}

/* Standardise left card heading size against Request Queue */
.event-name,
.active-event-panel .event-name,
.touch-grid .active-event-panel h1.event-name{
  font-size:24px !important;
  line-height:1.05 !important;
  letter-spacing:-.045em !important;
  margin-bottom:12px !important;
}

/* Keep Request Queue title consistent too */
.request-queue-panel .touch-panel-title,
.request-queue-compact-header .touch-panel-title{
  font-size:24px !important;
  line-height:1.05 !important;
  letter-spacing:-.045em !important;
}

/* Reduce vertical space around request queue header */
.request-queue-compact-header{
  padding-top:14px !important;
  padding-bottom:14px !important;
  gap:12px !important;
}

.request-queue-panel .touch-subtitle{
  margin-top:5px !important;
}

/* Reduce group/card vertical spacing */
.request-list,
.queue-list,
.grouped-request-list{
  gap:8px !important;
}

.request-group,
.request-row,
.request-card,
.request-item,
.queue-request-card{
  margin-bottom:8px !important;
}

/* Main grouped request card compaction */
.request-group-card,
.grouped-request-card,
.queue-group-card{
  padding-top:12px !important;
  padding-bottom:12px !important;
  min-height:0 !important;
}

/* Common current markup has large group cards with request detail stack */
.request-card-row,
.request-group-row,
.request-song-card{
  padding-top:12px !important;
  padding-bottom:12px !important;
}

/* Reduce inner request/person cards */
.request-detail,
.request-dedication,
.request-person-card,
.request-message-card,
.dedication-card{
  padding-top:8px !important;
  padding-bottom:8px !important;
  min-height:0 !important;
}

/* Reduce per-person entries inside grouped songs */
.request-person-entry,
.group-request-person,
.request-message{
  padding-top:7px !important;
  padding-bottom:7px !important;
}

/* Reduce spacing between person/dedication cards in a group */
.request-people,
.group-requests,
.request-messages,
.dedication-list{
  gap:7px !important;
}

/* Reduce large action buttons slightly but keep touch friendly */
.request-actions .action-tile,
.queue-actions .action-tile,
.request-group-actions .action-tile{
  min-height:50px !important;
  padding-top:8px !important;
  padding-bottom:8px !important;
}

/* The request queue card itself should not waste top/bottom space */
.request-queue-panel .touch-panel-body,
.request-queue-panel .request-list-wrap,
.request-queue-panel .queue-body{
  padding-top:12px !important;
  padding-bottom:12px !important;
}

/* More specific fallbacks for the current generated queue markup */
.request-queue-panel article{
  margin-bottom:8px !important;
}

.request-queue-panel article > div{
  min-height:0 !important;
}

.request-queue-panel article .request-title,
.request-queue-panel article .song-title{
  margin-bottom:4px !important;
}

.request-queue-panel article small{
  line-height:1.15 !important;
}

/* Slightly reduce bottom footer timestamp space */
.request-queue-panel .last-updated,
.last-updated{
  margin-top:10px !important;
  padding-top:6px !important;
}


/* v66 header timers */
.touch-header-timer{
  min-width:108px;
}

.touch-header-timer strong{
  font-variant-numeric:tabular-nums;
}

.touch-header-timer.timer-green strong{
  color:#4ade80 !important;
}

.touch-header-timer.timer-amber strong{
  color:#fbbf24 !important;
}

.touch-header-timer.timer-red strong,
.touch-header-timer.timer-ended strong{
  color:#f87171 !important;
}

/* Settings header timer toggles */
.settings-toggle-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  padding:18px;
}

.settings-toggle-card{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:16px;
  border:1px solid rgba(148,163,184,.22);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.03));
  cursor:pointer;
}

.settings-toggle-card input{
  width:22px;
  height:22px;
  margin-top:2px;
  accent-color:#3b82f6;
}

.settings-toggle-card strong{
  display:block;
  color:#fff;
  font-size:16px;
  font-weight:950;
}

.settings-toggle-card small{
  display:block;
  margin-top:5px;
  color:#cbd5e1;
  line-height:1.35;
}

/* v66 request queue real compaction */
.request-queue-panel .touch-panel-header,
.request-queue-compact-header{
  padding-top:12px !important;
  padding-bottom:12px !important;
}

.request-queue-panel article{
  margin-bottom:6px !important;
  padding-top:10px !important;
  padding-bottom:10px !important;
  min-height:0 !important;
}

.request-queue-panel article [class*="person"],
.request-queue-panel article [class*="message"],
.request-queue-panel article [class*="dedication"]{
  padding-top:7px !important;
  padding-bottom:7px !important;
}

.request-queue-panel article [class*="items"],
.request-queue-panel article [class*="people"],
.request-queue-panel article [class*="messages"]{
  gap:6px !important;
}

.request-queue-panel .request-list,
.request-queue-panel .queue-list,
.request-queue-panel .grouped-request-list,
.request-queue-panel .touch-panel-body{
  gap:6px !important;
}

.request-queue-panel .action-tile{
  min-height:48px !important;
  padding-top:7px !important;
  padding-bottom:7px !important;
}

.request-queue-panel label[for="sort"],
.request-queue-panel .sort-label,
.request-queue-panel .form-label{
  display:none !important;
}

@media(max-width:980px){
  .settings-toggle-grid{
    grid-template-columns:1fr;
  }

  .touch-header-timer{
    min-width:92px;
  }
}


/* v68 safe header timers */
.touch-header-timer{
  min-width:108px;
}

.touch-header-timer[hidden]{
  display:none !important;
}

.touch-header-timer strong{
  font-variant-numeric:tabular-nums;
}

.touch-header-timer.timer-green strong{
  color:#4ade80 !important;
}

.touch-header-timer.timer-amber strong{
  color:#fbbf24 !important;
}

.touch-header-timer.timer-red strong,
.touch-header-timer.timer-ended strong{
  color:#f87171 !important;
}

@media(max-width:980px){
  .touch-header-timer{
    min-width:92px;
  }
}


/* v69 genuine queue density reduction */
.request-queue-panel article{
  padding-top:8px !important;
  padding-bottom:8px !important;
  margin-bottom:6px !important;
  min-height:0 !important;
}

/* The current request rows are large grid cards; reduce the row content height */
.request-queue-panel article > *{
  min-height:0 !important;
}

.request-queue-panel article .action-tile{
  min-height:44px !important;
  height:44px !important;
  padding:5px 8px !important;
}

.request-queue-panel article .big-icon{
  font-size:20px !important;
  line-height:1 !important;
}

.request-queue-panel article form,
.request-queue-panel article .request-actions,
.request-queue-panel article [class*="actions"]{
  gap:6px !important;
}

/* Requester detail cards inside the grouped row */
.request-queue-panel article [class*="requester"],
.request-queue-panel article [class*="person"],
.request-queue-panel article [class*="guest"],
.request-queue-panel article [class*="message"]{
  padding-top:6px !important;
  padding-bottom:6px !important;
  min-height:0 !important;
}

/* Stacked request cards inside a group */
.request-queue-panel article [class*="items"],
.request-queue-panel article [class*="people"],
.request-queue-panel article [class*="messages"],
.request-queue-panel article [class*="stack"]{
  gap:5px !important;
}

/* The specific current visual card appears to use CSS grid; trim internal row spacing */
.request-queue-panel article{
  row-gap:6px !important;
  column-gap:12px !important;
}

/* Reduce title/time block vertical spacing */
.request-queue-panel article h2,
.request-queue-panel article h3,
.request-queue-panel article strong{
  margin-top:0 !important;
  margin-bottom:3px !important;
}

.request-queue-panel article small{
  line-height:1.1 !important;
}

/* More compact request count pill */
.request-queue-panel article [class*="badge"],
.request-queue-panel article [class*="pill"]{
  padding-top:3px !important;
  padding-bottom:3px !important;
}

/* Reduce spacing between cards at panel level */
.request-queue-panel .event-list,
.request-queue-panel .request-list,
.request-queue-panel .queue-list,
.request-queue-panel .touch-panel-pad{
  gap:6px !important;
}

/* Keep the panel footer closer */
.request-queue-panel .last-updated,
.last-updated{
  margin-top:6px !important;
  padding-top:4px !important;
}


/* v70 header timers visible fix */
.header-timer-cluster{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  margin-left:18px;
  margin-right:18px;
}

.touch-header-timer{
  min-width:104px;
}

.touch-header-timer strong{
  font-variant-numeric:tabular-nums;
}

.touch-header-timer.timer-loading strong,
.touch-header-timer.timer-unavailable strong{
  color:#94a3b8 !important;
}

.touch-header-timer.timer-green strong{
  color:#4ade80 !important;
}

.touch-header-timer.timer-amber strong{
  color:#fbbf24 !important;
}

.touch-header-timer.timer-red strong,
.touch-header-timer.timer-ended strong{
  color:#f87171 !important;
}

@media(max-width:1160px){
  .header-timer-cluster{
    gap:10px;
    margin-left:10px;
    margin-right:10px;
  }

  .touch-header-timer{
    min-width:88px;
  }
}

@media(max-width:860px){
  .header-timer-cluster{
    display:none !important;
  }
}


/* v71 reject reason modal */
body.modal-open{
  overflow:hidden;
}

.dj-modal-backdrop{
  position:fixed;
  inset:0;
  z-index:999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(2,6,23,.74);
  backdrop-filter:blur(10px);
}

.dj-modal-backdrop[hidden]{
  display:none !important;
}

.dj-modal-card{
  width:min(720px,96vw);
  border:1px solid rgba(148,163,184,.28);
  border-radius:22px;
  background:
    radial-gradient(circle at 12% 0%,rgba(239,68,68,.20),transparent 34%),
    linear-gradient(180deg,rgba(15,23,42,.98),rgba(15,23,42,.94));
  color:#fff;
  box-shadow:0 28px 80px rgba(0,0,0,.50);
  overflow:hidden;
}

.dj-modal-header{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:20px;
  border-bottom:1px solid rgba(148,163,184,.18);
}

.dj-modal-header h2{
  margin:0;
  font-size:26px;
  line-height:1.05;
  letter-spacing:-.045em;
}

.dj-modal-header p{
  margin:6px 0 0;
  color:#bfdbfe;
  font-size:14px;
}

.dj-modal-close{
  width:42px;
  height:42px;
  border:1px solid rgba(148,163,184,.30);
  border-radius:14px;
  background:rgba(255,255,255,.06);
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}

.reject-reason-form{
  padding:20px;
}

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

.reject-reason-grid button{
  min-height:86px;
  padding:14px;
  border:1px solid rgba(148,163,184,.24);
  border-radius:16px;
  background:rgba(255,255,255,.055);
  color:#fff;
  text-align:left;
  font-family:inherit;
  cursor:pointer;
}

.reject-reason-grid button:hover,
.reject-reason-grid button:focus{
  outline:none;
  border-color:rgba(248,113,113,.75);
  box-shadow:0 0 0 2px rgba(248,113,113,.18);
}

.reject-reason-grid strong{
  display:block;
  font-size:15px;
  font-weight:950;
  margin-bottom:5px;
}

.reject-reason-grid span{
  display:block;
  color:#cbd5e1;
  font-size:12px;
  line-height:1.28;
}

.dj-modal-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:16px;
}

.touch-btn.muted{
  background:rgba(148,163,184,.14) !important;
  color:#e5e7eb !important;
}

@media(max-width:640px){
  .reject-reason-grid{
    grid-template-columns:1fr;
  }
}


/* v72 reject modal markup fix */
body.modal-open{ overflow:hidden; }

.dj-modal-backdrop{
  position:fixed;
  inset:0;
  z-index:999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(2,6,23,.74);
  backdrop-filter:blur(10px);
}

.dj-modal-backdrop[hidden]{ display:none !important; }

.dj-modal-card{
  width:min(720px,96vw);
  border:1px solid rgba(148,163,184,.28);
  border-radius:22px;
  background:
    radial-gradient(circle at 12% 0%,rgba(239,68,68,.20),transparent 34%),
    linear-gradient(180deg,rgba(15,23,42,.98),rgba(15,23,42,.94));
  color:#fff;
  box-shadow:0 28px 80px rgba(0,0,0,.50);
  overflow:hidden;
}

.dj-modal-header{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:20px;
  border-bottom:1px solid rgba(148,163,184,.18);
}

.dj-modal-header h2{
  margin:0;
  font-size:26px;
  line-height:1.05;
  letter-spacing:-.045em;
}

.dj-modal-header p{
  margin:6px 0 0;
  color:#bfdbfe;
  font-size:14px;
}

.dj-modal-close{
  width:42px;
  height:42px;
  border:1px solid rgba(148,163,184,.30);
  border-radius:14px;
  background:rgba(255,255,255,.06);
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}

.reject-reason-form{ padding:20px; }

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

.reject-reason-grid button{
  min-height:86px;
  padding:14px;
  border:1px solid rgba(148,163,184,.24);
  border-radius:16px;
  background:rgba(255,255,255,.055);
  color:#fff;
  text-align:left;
  font-family:inherit;
  cursor:pointer;
}

.reject-reason-grid button:hover,
.reject-reason-grid button:focus{
  outline:none;
  border-color:rgba(248,113,113,.75);
  box-shadow:0 0 0 2px rgba(248,113,113,.18);
}

.reject-reason-grid strong{
  display:block;
  font-size:15px;
  font-weight:950;
  margin-bottom:5px;
}

.reject-reason-grid span{
  display:block;
  color:#cbd5e1;
  font-size:12px;
  line-height:1.28;
}

.dj-modal-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:16px;
}

.touch-btn.muted{
  background:rgba(148,163,184,.14) !important;
  color:#e5e7eb !important;
}

@media(max-width:640px){
  .reject-reason-grid{ grid-template-columns:1fr; }
}

/* v73 stable grouping modal fix */
body.modal-open{ overflow:hidden; }
.dj-modal-backdrop{ position:fixed; inset:0; z-index:999; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(2,6,23,.74); backdrop-filter:blur(10px); }
.dj-modal-backdrop[hidden]{ display:none !important; }
.dj-modal-card{ width:min(720px,96vw); border:1px solid rgba(148,163,184,.28); border-radius:22px; background:radial-gradient(circle at 12% 0%,rgba(239,68,68,.20),transparent 34%),linear-gradient(180deg,rgba(15,23,42,.98),rgba(15,23,42,.94)); color:#fff; box-shadow:0 28px 80px rgba(0,0,0,.50); overflow:hidden; }
.dj-modal-header{ display:flex; justify-content:space-between; gap:16px; padding:20px; border-bottom:1px solid rgba(148,163,184,.18); }
.dj-modal-header h2{ margin:0; font-size:26px; line-height:1.05; letter-spacing:-.045em; }
.dj-modal-header p{ margin:6px 0 0; color:#bfdbfe; font-size:14px; }
.dj-modal-close{ width:42px; height:42px; border:1px solid rgba(148,163,184,.30); border-radius:14px; background:rgba(255,255,255,.06); color:#fff; font-size:28px; line-height:1; cursor:pointer; }
.reject-reason-form{ padding:20px; }
.reject-reason-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.reject-reason-grid button{ min-height:86px; padding:14px; border:1px solid rgba(148,163,184,.24); border-radius:16px; background:rgba(255,255,255,.055); color:#fff; text-align:left; font-family:inherit; cursor:pointer; }
.reject-reason-grid button:hover,.reject-reason-grid button:focus{ outline:none; border-color:rgba(248,113,113,.75); box-shadow:0 0 0 2px rgba(248,113,113,.18); }
.reject-reason-grid strong{ display:block; font-size:15px; font-weight:950; margin-bottom:5px; }
.reject-reason-grid span{ display:block; color:#cbd5e1; font-size:12px; line-height:1.28; }
.dj-modal-actions{ display:flex; justify-content:flex-end; margin-top:16px; }
.touch-btn.muted{ background:rgba(148,163,184,.14) !important; color:#e5e7eb !important; }
@media(max-width:640px){ .reject-reason-grid{ grid-template-columns:1fr; } }


/* v74 merge modal */
.merge-modal-card{
  width:min(780px,96vw);
}

.merge-request-form{
  padding:20px;
}

.merge-target-list{
  display:grid;
  gap:10px;
  max-height:52vh;
  overflow:auto;
  padding-right:4px;
}

.merge-target-card{
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px;
  border:1px solid rgba(148,163,184,.24);
  border-radius:16px;
  background:rgba(255,255,255,.055);
  color:#fff;
  cursor:pointer;
}

.merge-target-card:hover,
.merge-target-card:focus-within{
  border-color:rgba(96,165,250,.75);
  box-shadow:0 0 0 2px rgba(96,165,250,.16);
}

.merge-target-card input{
  width:22px;
  height:22px;
  accent-color:#3b82f6;
}

.merge-target-card strong{
  display:block;
  font-size:16px;
  font-weight:950;
  margin-bottom:3px;
}

.merge-target-card small{
  display:block;
  color:#cbd5e1;
  font-size:12px;
  line-height:1.25;
}

.merge-empty{
  padding:18px;
  border:1px dashed rgba(148,163,184,.32);
  border-radius:16px;
  color:#cbd5e1;
  text-align:center;
}

#mergeRequestSubmit:disabled{
  opacity:.45;
  cursor:not-allowed;
}


/* v76 inline queue status badge */


/* Pull actions left now that the separate status column is gone */
.request-card{
  column-gap:12px !important;
}

.req-actions{
  margin-left:0 !important;
}

/* Keep count and status together */
.request-count + 


/* v77 inline status restore */


.request-count + 

.song-meta,
.req-song-meta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
}


/* v79 restore queue and safe merge candidates */
#mergeCandidateTemplates{
  display:none !important;
}




/* v81 status pill beside request count */


.request-count + .inline-status,
.count-pill + .inline-status,
.request-pill + .inline-status,
.request-badge + .inline-status,
.badge + 

/* Let the song meta area wrap cleanly when the request-count and status pills sit together */
.req-song,
.song-info,
.request-song,
.request-title,
.req-title{
  min-width:0;
}

/* If the old status column still exists on any older markup, keep it out of the action area */
.req-status:empty{
  display:none !important;
}


/* v82 actual status pill placement */
.status-badge.inline-status{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin-left:8px !important;
  vertical-align:middle !important;
  font-size:11px !important;
  line-height:1 !important;
  padding:4px 9px !important;
  min-height:22px !important;
  white-space:nowrap !important;
}

/* Allow request count and status to sit neatly beside each other */
.req-song .status-badge.inline-status,
.song-info .status-badge.inline-status,
.request-song .status-badge.inline-status,
.request-title .status-badge.inline-status,
.req-title .status-badge.inline-status{
  margin-top:6px !important;
}

/* Keep old status column hidden only when it is genuinely empty/removed */
.req-status:empty{
  display:none !important;
}


/* v83 separate request count and status pills */
.group-count-pill-row{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  flex-wrap:wrap !important;
  margin-top:8px !important;
}

.group-count-pill-row .group-count{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
}

.group-count-pill-row .inline-status{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin-left:0 !important;
  vertical-align:middle !important;
  font-size:11px !important;
  line-height:1 !important;
  padding:4px 9px !important;
  min-height:22px !important;
  white-space:nowrap !important;
}


/* v84 uniform request/status pills */
.group-count-pill-row{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:8px;
}

.group-count-pill-row .group-count,
.group-count-pill-row .inline-status{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;

  min-height:28px !important;
  padding:0 12px !important;

  font-size:11px !important;
  font-weight:700 !important;
  line-height:1 !important;

  border-radius:999px !important;
  box-sizing:border-box;
  white-space:nowrap;
}


/* v85 force uniform request/status pill sizing */
.group-count-pill-row{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  flex-wrap:wrap !important;
  margin-top:8px !important;
}

.group-count-pill-row > .group-count,
.group-count-pill-row > .status-badge,
.group-count-pill-row > .status-badge.inline-status,
.group-count-pill-row > .status-badge.pending,
.group-count-pill-row > .status-badge.maybe,
.group-count-pill-row > .status-badge.duplicate,
.group-count-pill-row > .status-badge.played,
.group-count-pill-row > .status-badge.rejected{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  height:28px !important;
  min-height:28px !important;
  max-height:28px !important;
  padding:0 12px !important;
  margin:0 !important;
  font-size:11px !important;
  font-weight:800 !important;
  line-height:28px !important;
  border-radius:999px !important;
  box-sizing:border-box !important;
  white-space:nowrap !important;
  vertical-align:middle !important;
}

/* Ensure text inside both pills cannot shrink the badge height differently */
.group-count-pill-row > .group-count *,
.group-count-pill-row > .status-badge *{
  line-height:28px !important;
}


/* v86 shared header timers */
.header-timer-cluster{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:22px !important;
  margin-left:22px !important;
  margin-right:22px !important;
}

.touch-header-timer{
  min-width:118px !important;
  text-align:center !important;
}

.touch-header-timer strong{
  display:block !important;
  font-variant-numeric:tabular-nums !important;
}

.touch-header-timer span{
  display:block !important;
}

.touch-header-timer.timer-loading strong,
.touch-header-timer.timer-unavailable strong{
  color:#94a3b8 !important;
}

.touch-header-timer.timer-green strong{
  color:#4ade80 !important;
}

.touch-header-timer.timer-amber strong{
  color:#fbbf24 !important;
}

.touch-header-timer.timer-red strong,
.touch-header-timer.timer-ended strong{
  color:#f87171 !important;
}

@media(max-width:1200px){
  .header-timer-cluster{
    gap:12px !important;
    margin-left:12px !important;
    margin-right:12px !important;
  }

  .touch-header-timer{
    min-width:96px !important;
  }
}

@media(max-width:900px){
  .header-timer-cluster{
    display:none !important;
  }
}


/* v87 compact queue with right-side 2x2 action grid */
.request-queue-panel .compact-queue-card{
  display:grid !important;
  grid-template-columns:82px minmax(220px, 300px) minmax(300px, 1fr) 170px !important;
  grid-template-areas:"time track messages actions" !important;
  align-items:center !important;
  column-gap:16px !important;
  row-gap:8px !important;
  padding-top:12px !important;
  padding-bottom:12px !important;
  min-height:0 !important;
}

.request-queue-panel .compact-queue-card > :nth-child(1){
  grid-area:time !important;
}

.request-queue-panel .compact-queue-card > :nth-child(2){
  grid-area:track !important;
  min-width:0 !important;
}

.request-queue-panel .compact-queue-card .group-messages{
  grid-area:messages !important;
  display:flex !important;
  flex-direction:column !important;
  gap:7px !important;
  min-width:0 !important;
}

.request-queue-panel .compact-queue-card .req-actions{
  grid-area:actions !important;
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:7px !important;
  align-self:center !important;
  justify-self:end !important;
  width:160px !important;
  margin:0 !important;
}

.request-queue-panel .compact-queue-card .req-action-form{
  margin:0 !important;
}

.request-queue-panel .compact-queue-card .action-tile{
  width:100% !important;
  min-width:0 !important;
  height:42px !important;
  min-height:42px !important;
  padding:4px 6px !important;
  border-radius:11px !important;
}

.request-queue-panel .compact-queue-card .action-tile .big-icon{
  font-size:18px !important;
  line-height:1 !important;
}

.request-queue-panel .compact-queue-card .action-tile span:last-child{
  font-size:10px !important;
  line-height:1 !important;
}

.request-queue-panel .compact-queue-card .group-message{
  min-height:0 !important;
  padding-top:8px !important;
  padding-bottom:8px !important;
}

.request-queue-panel .compact-queue-card .req-person{
  width:30px !important;
  height:30px !important;
  min-width:30px !important;
}

/* Tablet width: keep actions on the right as requested, just tighten columns */
@media(max-width:1180px){
  .request-queue-panel .compact-queue-card{
    grid-template-columns:76px minmax(190px, 260px) minmax(280px, 1fr) 156px !important;
    column-gap:12px !important;
    padding-top:10px !important;
    padding-bottom:10px !important;
  }

  .request-queue-panel .compact-queue-card .req-actions{
    width:150px !important;
    gap:6px !important;
  }

  .request-queue-panel .compact-queue-card .action-tile{
    height:40px !important;
    min-height:40px !important;
  }
}

/* Narrow screens can stack, but landscape/tablet keeps the right action grid */
@media(max-width:820px){
  .request-queue-panel .compact-queue-card{
    grid-template-columns:70px 1fr !important;
    grid-template-areas:
      "time track"
      "messages messages"
      "actions actions" !important;
  }

  .request-queue-panel .compact-queue-card .req-actions{
    justify-self:start !important;
    width:220px !important;
  }
}


/* v88 square right actions and no overlap */
.request-queue-panel .compact-queue-card{
  grid-template-columns:82px minmax(220px, 300px) minmax(300px, 1fr) 116px !important;
  grid-template-areas:"time track messages actions" !important;
  column-gap:18px !important;
  align-items:center !important;
  overflow:hidden !important;
}

.request-queue-panel .compact-queue-card .group-messages{
  grid-area:messages !important;
  max-width:100% !important;
  width:100% !important;
  overflow:hidden !important;
  padding-right:0 !important;
  margin-right:0 !important;
}

.request-queue-panel .compact-queue-card .group-message{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}

.request-queue-panel .compact-queue-card .req-actions{
  grid-area:actions !important;
  display:grid !important;
  grid-template-columns:52px 52px !important;
  grid-auto-rows:52px !important;
  gap:7px !important;
  width:111px !important;
  min-width:111px !important;
  max-width:111px !important;
  justify-self:end !important;
  align-self:center !important;
  margin:0 !important;
  z-index:2 !important;
}

.request-queue-panel .compact-queue-card .req-action-form{
  width:52px !important;
  height:52px !important;
  margin:0 !important;
  padding:0 !important;
}

.request-queue-panel .compact-queue-card .action-tile{
  width:52px !important;
  min-width:52px !important;
  max-width:52px !important;
  height:52px !important;
  min-height:52px !important;
  max-height:52px !important;
  padding:3px !important;
  border-radius:11px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:2px !important;
  box-sizing:border-box !important;
}

.request-queue-panel .compact-queue-card .action-tile .big-icon{
  font-size:18px !important;
  line-height:1 !important;
}

.request-queue-panel .compact-queue-card .action-tile span:last-child{
  font-size:8px !important;
  line-height:1 !important;
  white-space:nowrap !important;
}

@media(max-width:1180px){
  .request-queue-panel .compact-queue-card{
    grid-template-columns:76px minmax(190px, 260px) minmax(260px, 1fr) 108px !important;
    column-gap:12px !important;
  }

  .request-queue-panel .compact-queue-card .req-actions{
    grid-template-columns:50px 50px !important;
    grid-auto-rows:50px !important;
    width:106px !important;
    min-width:106px !important;
    max-width:106px !important;
    gap:6px !important;
  }

  .request-queue-panel .compact-queue-card .req-action-form,
  .request-queue-panel .compact-queue-card .action-tile{
    width:50px !important;
    min-width:50px !important;
    max-width:50px !important;
    height:50px !important;
    min-height:50px !important;
    max-height:50px !important;
  }
}

@media(max-width:940px){
  .request-queue-panel .compact-queue-card{
    grid-template-columns:70px minmax(170px, 240px) minmax(220px, 1fr) 104px !important;
    column-gap:10px !important;
  }

  .request-queue-panel .compact-queue-card .req-actions{
    grid-template-columns:48px 48px !important;
    grid-auto-rows:48px !important;
    width:102px !important;
    min-width:102px !important;
    max-width:102px !important;
  }

  .request-queue-panel .compact-queue-card .req-action-form,
  .request-queue-panel .compact-queue-card .action-tile{
    width:48px !important;
    min-width:48px !important;
    max-width:48px !important;
    height:48px !important;
    min-height:48px !important;
    max-height:48px !important;
  }
}


/* v89 three-zone header layout */
.touch-topbar{
  display:grid !important;
  grid-template-columns:minmax(190px, 1fr) auto minmax(430px, 1fr) !important;
  align-items:center !important;
  gap:16px !important;
  min-height:72px !important;
  padding-top:8px !important;
  padding-bottom:8px !important;
}

.touch-brand{
  grid-column:1 !important;
  justify-self:start !important;
}

.touch-header-centre{
  grid-column:2 !important;
  justify-self:center !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:18px !important;
  min-width:0 !important;
}

.touch-header-centre > .touch-clock:first-child{
  min-width:104px !important;
}

.header-timer-cluster{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:12px !important;
  margin:0 !important;
}

.touch-header-timer{
  min-width:96px !important;
  text-align:center !important;
}

.touch-header-timer strong,
.touch-header-centre > .touch-clock strong{
  font-variant-numeric:tabular-nums !important;
}

.touch-header-timer span,
.touch-header-centre > .touch-clock span{
  white-space:nowrap !important;
}

.touch-top-actions{
  grid-column:3 !important;
  justify-self:end !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
  min-width:0 !important;
}

.header-admin-nav{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
}

.header-admin-nav-btn{
  min-height:48px !important;
  padding:0 22px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}

.touch-icon-btn{
  width:48px !important;
  height:48px !important;
  min-width:48px !important;
}

/* Timer colours */
.touch-header-timer.timer-loading strong,
.touch-header-timer.timer-unavailable strong{
  color:#94a3b8 !important;
}

.touch-header-timer.timer-green strong{
  color:#4ade80 !important;
}

.touch-header-timer.timer-amber strong{
  color:#fbbf24 !important;
}

.touch-header-timer.timer-red strong,
.touch-header-timer.timer-ended strong{
  color:#f87171 !important;
}

/* Medium screens: keep three zones but tighten buttons */
@media(max-width:1280px){
  .touch-topbar{
    grid-template-columns:minmax(160px, .8fr) auto minmax(390px, 1fr) !important;
    gap:10px !important;
  }

  .touch-header-centre{
    gap:12px !important;
  }

  .header-timer-cluster{
    gap:8px !important;
  }

  .touch-header-timer{
    min-width:88px !important;
  }

  .header-admin-nav-btn{
    padding:0 16px !important;
  }
}

/* If the screen is narrower, use compact nav text spacing before resorting to wrapping */
@media(max-width:1080px){
  .touch-topbar{
    grid-template-columns:minmax(140px, .7fr) auto minmax(330px, 1fr) !important;
  }

  .touch-brand span:last-child{
    font-size:22px !important;
  }

  .header-admin-nav-btn{
    min-height:44px !important;
    padding:0 12px !important;
    font-size:12px !important;
  }

  .touch-icon-btn{
    width:44px !important;
    height:44px !important;
    min-width:44px !important;
  }

  .touch-header-timer{
    min-width:82px !important;
  }
}

/* Small/mobile: hide header timers rather than increasing top bar height */
@media(max-width:900px){
  .header-timer-cluster{
    display:none !important;
  }

  .touch-topbar{
    grid-template-columns:1fr auto 1fr !important;
  }
}


/* v90 compact dedication cards */
.request-queue-panel .compact-queue-card .group-messages{
  gap:6px !important;
}

.request-queue-panel .compact-queue-card .compact-dedication-card{
  display:grid !important;
  grid-template-columns:38px minmax(0, 1fr) !important;
  align-items:start !important;
  column-gap:10px !important;
  min-height:0 !important;
  padding:7px 10px !important;
}

.compact-dedication-card .dedication-side{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:4px !important;
  min-width:0 !important;
}

.compact-dedication-card .req-person{
  width:30px !important;
  height:30px !important;
  min-width:30px !important;
  font-size:14px !important;
  line-height:30px !important;
}

.compact-dedication-card .message-time{
  font-size:10px !important;
  line-height:1 !important;
  margin:0 !important;
  color:#7dd3fc !important;
  text-align:center !important;
}

.compact-dedication-card .dedication-main{
  min-width:0 !important;
  padding-top:1px !important;
}

.compact-dedication-card .message-person{
  font-size:14px !important;
  line-height:1.1 !important;
  margin:0 0 4px 0 !important;
}

.compact-dedication-card .message-text{
  font-size:13px !important;
  line-height:1.25 !important;
  margin:0 !important;
}

/* Slightly reduce row vertical bulk now the message cards are denser */
.request-queue-panel .compact-queue-card{
  padding-top:10px !important;
  padding-bottom:10px !important;
}


/* v91 ultra compact dedication cards */
.request-queue-panel .compact-queue-card .group-messages{
  gap:5px !important;
}

.request-queue-panel .compact-queue-card .compact-dedication-card{
  grid-template-columns:30px minmax(0, 1fr) !important;
  column-gap:8px !important;
  padding:5px 8px !important;
  border-radius:12px !important;
  min-height:0 !important;
}

.compact-dedication-card .dedication-side{
  gap:3px !important;
}

.compact-dedication-card .req-person{
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  min-height:24px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:12px !important;
  line-height:1 !important;
  padding:0 !important;
}

.compact-dedication-card .message-time{
  font-size:9px !important;
  line-height:1 !important;
  margin:0 !important;
}

.compact-dedication-card .dedication-main{
  padding-top:0 !important;
}

.compact-dedication-card .message-person{
  font-size:13px !important;
  line-height:1.05 !important;
  margin:0 0 3px 0 !important;
}

.compact-dedication-card .message-text{
  font-size:12px !important;
  line-height:1.18 !important;
  margin:0 !important;
}

/* Trim the queue row a little more now the message cards are smaller */
.request-queue-panel .compact-queue-card{
  padding-top:8px !important;
  padding-bottom:8px !important;
}


/* v92 event image upload */
.event-image-field input[type="file"]{
  width:100%;
  padding:12px;
  border:1px solid rgba(148,163,184,.24);
  border-radius:14px;
  background:rgba(255,255,255,.055);
  color:#e5e7eb;
}

.event-image-field small{
  display:block;
  margin-top:6px;
  color:#94a3b8;
}

.event-image-preview{
  margin:8px 0 10px;
  width:160px;
  max-width:100%;
  border:1px solid rgba(148,163,184,.22);
  border-radius:14px;
  overflow:hidden;
  background:rgba(15,23,42,.7);
}

.event-image-preview img{
  display:block;
  width:100%;
  height:auto;
}

.event-card-flyer{
  width:92px;
  height:92px;
  border-radius:14px;
  overflow:hidden;
  border:1px solid rgba(148,163,184,.22);
  background:rgba(15,23,42,.7);
  margin-bottom:10px;
}

.event-card-flyer img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}


/* v96 event image upload form fix */
.event-image-field input[type="file"]{
  width:100%;
  padding:12px;
  border:1px solid rgba(148,163,184,.24);
  border-radius:14px;
  background:rgba(255,255,255,.055);
  color:#e5e7eb;
  box-sizing:border-box;
}

.event-image-field small{
  display:block;
  margin-top:6px;
  color:#94a3b8;
}

.event-image-preview{
  margin:8px 0 10px;
  width:180px;
  max-width:100%;
  border:1px solid rgba(148,163,184,.22);
  border-radius:14px;
  overflow:hidden;
  background:rgba(15,23,42,.7);
}

.event-image-preview img{
  display:block;
  width:100%;
  height:auto;
}

.event-row-image{
  width:70px;
  height:70px;
  border-radius:12px;
  overflow:hidden;
  border:1px solid rgba(148,163,184,.22);
  background:rgba(15,23,42,.7);
}

.event-row-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}


/* v97 explicit header columns */
.touch-topbar{
  display:grid !important;
  grid-template-columns:minmax(220px, 1fr) auto minmax(520px, 1fr) !important;
  align-items:center !important;
  gap:16px !important;
  min-height:72px !important;
  padding:8px 24px !important;
  box-sizing:border-box !important;
  width:100% !important;
  position:relative !important;
}

.topbar-left{
  grid-column:1 !important;
  justify-self:start !important;
  min-width:0 !important;
}

.topbar-centre{
  grid-column:2 !important;
  justify-self:center !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:12px !important;
  white-space:nowrap !important;
  min-width:0 !important;
}

.topbar-right{
  grid-column:3 !important;
  justify-self:end !important;
  min-width:0 !important;
}

.touch-brand{
  position:static !important;
  transform:none !important;
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
}

.touch-top-actions{
  position:static !important;
  transform:none !important;
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
}

.header-admin-nav{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
}

.header-admin-nav-btn{
  min-height:48px !important;
  padding:0 20px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}

.touch-icon-btn{
  width:48px !important;
  height:48px !important;
  min-width:48px !important;
}

.header-timer-cluster{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  margin:0 !important;
}

.touch-header-timer{
  min-width:88px !important;
  text-align:center !important;
}

.touch-header-timer strong{
  font-variant-numeric:tabular-nums !important;
}

@media(max-width:1240px){
  .touch-topbar{
    grid-template-columns:minmax(180px, .8fr) auto minmax(430px, 1fr) !important;
    gap:10px !important;
    padding-left:16px !important;
    padding-right:16px !important;
  }

  .header-admin-nav-btn{
    padding:0 14px !important;
  }

  .touch-top-actions{
    gap:8px !important;
  }
}

@media(max-width:1080px){
  .header-timer-cluster{
    display:none !important;
  }

  .touch-topbar{
    grid-template-columns:minmax(160px, 1fr) auto minmax(390px, 1fr) !important;
  }
}

@media(max-width:900px){
  .header-admin-nav-btn{
    min-height:42px !important;
    padding:0 10px !important;
    font-size:11px !important;
  }

  .touch-icon-btn{
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
  }

  .touch-brand span:last-child{
    font-size:20px !important;
  }
}


/* v98 event image upload visible */
.event-image-preview{
  width:240px;
  max-width:100%;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(148,163,184,.22);
  margin-bottom:16px;
}

.event-image-preview img{
  display:block;
  width:100%;
  height:auto;
}

.event-image-upload-input{
  width:100%;
  padding:14px;
  border-radius:14px;
  border:1px solid rgba(148,163,184,.24);
  background:rgba(255,255,255,.05);
  color:#fff;
  box-sizing:border-box;
}

.settings-help-text{
  margin-top:10px;
  color:#94a3b8;
  font-size:13px;
}


/* v99 corrected event image upload */
.event-image-upload-card{
  border-color:rgba(96,165,250,.22) !important;
}

.event-image-upload-body{
  padding:18px !important;
}

.event-image-upload-label{
  display:block;
  width:100%;
}

.event-image-upload-label > span{
  display:block;
  font-weight:900;
  margin-bottom:8px;
  color:#e5e7eb;
}

.event-image-upload-label input[type="file"]{
  display:block;
  width:100%;
  padding:14px;
  border-radius:14px;
  border:1px solid rgba(148,163,184,.28);
  background:rgba(255,255,255,.06);
  color:#fff;
  box-sizing:border-box;
}

.event-image-preview{
  width:240px;
  max-width:100%;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(148,163,184,.25);
  background:rgba(15,23,42,.72);
  margin:0 0 14px 0;
}

.event-image-preview img{
  display:block;
  width:100%;
  height:auto;
}

.settings-help-text{
  margin-top:10px;
  color:#94a3b8;
  font-size:13px;
}


/* v100 event edit page image upload */
.event-edit-form{
  padding:18px;
}

.event-edit-form .settings-card{
  margin-bottom:18px;
}

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

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

.settings-grid label,
.event-image-upload-label{
  display:block;
}

.settings-grid span,
.event-image-upload-label > span{
  display:block;
  font-weight:900;
  margin-bottom:8px;
  color:#e5e7eb;
}

.settings-grid input,
.settings-grid select,
.settings-grid textarea,
.event-image-upload-label input[type="file"]{
  width:100%;
  padding:14px;
  border-radius:14px;
  border:1px solid rgba(148,163,184,.28);
  background:rgba(255,255,255,.06);
  color:#fff;
  box-sizing:border-box;
}

.settings-grid textarea{
  min-height:96px;
}

.event-image-upload-body{
  padding:18px;
}

.event-image-preview{
  width:240px;
  max-width:100%;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(148,163,184,.25);
  background:rgba(15,23,42,.72);
  margin:0 0 14px 0;
}

.event-image-preview img{
  display:block;
  width:100%;
  height:auto;
}

.settings-help-text{
  margin-top:10px;
  color:#94a3b8;
  font-size:13px;
}

.settings-check{
  display:flex !important;
  align-items:center;
  gap:10px;
  padding:14px;
  border-radius:14px;
  border:1px solid rgba(148,163,184,.18);
  background:rgba(255,255,255,.04);
}

.settings-check input{
  width:22px !important;
  height:22px;
}

@media(max-width:900px){
  .settings-grid,
  .settings-grid.four{
    grid-template-columns:1fr;
  }
}


/* v101 restore event edit layout */
.restored-event-form{
  padding:16px !important;
}

.restored-event-form .settings-card{
  border:1px solid rgba(148,163,184,.22) !important;
  border-radius:18px !important;
  overflow:hidden !important;
  background:linear-gradient(180deg, rgba(30,41,59,.78), rgba(15,23,42,.78)) !important;
  box-shadow:0 16px 30px rgba(0,0,0,.18) !important;
  margin-bottom:18px !important;
}

.restored-event-form .settings-card-header{
  display:flex !important;
  align-items:center !important;
  gap:14px !important;
  padding:18px !important;
  border-bottom:1px solid rgba(148,163,184,.16) !important;
  background:linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.02)) !important;
}

.restored-event-form .settings-card-icon{
  width:42px !important;
  height:42px !important;
  min-width:42px !important;
  border-radius:13px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#7dd3fc !important;
  background:rgba(37,99,235,.25) !important;
  border:1px solid rgba(59,130,246,.18) !important;
  font-size:18px !important;
  line-height:1 !important;
  box-sizing:border-box !important;
}

.restored-event-form .settings-card-header h3{
  margin:0 !important;
  color:#fff !important;
  font-size:20px !important;
  line-height:1.15 !important;
  font-weight:950 !important;
}

.restored-event-form .settings-card-header p{
  margin:5px 0 0 !important;
  color:#b6c9de !important;
  font-size:13px !important;
}

.restored-event-form .settings-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:16px !important;
  padding:18px !important;
}

.restored-event-form .settings-grid.four{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}

.restored-event-form label span,
.restored-event-form .event-image-upload-label > span{
  display:block !important;
  font-size:13px !important;
  font-weight:950 !important;
  color:#e5f2ff !important;
  margin-bottom:8px !important;
}

.restored-event-form input,
.restored-event-form select,
.restored-event-form textarea,
.restored-event-form .event-image-upload-label input[type="file"]{
  width:100% !important;
  border:1px solid rgba(148,163,184,.28) !important;
  border-radius:15px !important;
  background:rgba(30,41,59,.86) !important;
  color:#fff !important;
  padding:14px 16px !important;
  font-size:16px !important;
  box-sizing:border-box !important;
  outline:none !important;
}

.restored-event-form input:focus,
.restored-event-form select:focus,
.restored-event-form textarea:focus{
  border-color:rgba(96,165,250,.8) !important;
  box-shadow:0 0 0 3px rgba(59,130,246,.18) !important;
}

.restored-event-form textarea{
  min-height:112px !important;
  resize:vertical !important;
}

.restored-event-form small{
  display:block !important;
  margin-top:7px !important;
  color:#9fb4cb !important;
  font-size:12px !important;
  line-height:1.35 !important;
}

.restored-event-form .event-image-upload-card{
  border-color:rgba(96,165,250,.22) !important;
}

.restored-event-form .event-image-upload-body{
  padding:18px !important;
}

.restored-event-form .event-image-preview{
  width:220px !important;
  max-width:100% !important;
  border-radius:16px !important;
  overflow:hidden !important;
  border:1px solid rgba(148,163,184,.25) !important;
  background:rgba(15,23,42,.72) !important;
  margin:0 0 14px 0 !important;
}

.restored-event-form .event-image-preview img{
  display:block !important;
  width:100% !important;
  height:auto !important;
}

.restored-event-form .settings-help-text{
  margin-top:10px !important;
  color:#94a3b8 !important;
  font-size:13px !important;
}

.restored-event-form .settings-alert.warning{
  border:1px solid rgba(251,191,36,.28) !important;
  background:rgba(251,191,36,.10) !important;
  color:#fde68a !important;
  padding:12px 14px !important;
  border-radius:14px !important;
  margin-bottom:14px !important;
}

.restored-event-form .settings-check{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  padding:16px !important;
  border-radius:15px !important;
  border:1px solid rgba(148,163,184,.20) !important;
  background:rgba(30,41,59,.55) !important;
}

.restored-event-form .settings-check input{
  width:22px !important;
  height:22px !important;
  flex:0 0 auto !important;
}

.restored-event-form .settings-check span{
  margin:0 !important;
  font-size:16px !important;
  color:#dbeafe !important;
}

.restored-event-form .form-actions{
  display:flex !important;
  justify-content:flex-end !important;
  gap:12px !important;
  padding:4px 0 0 !important;
}

@media(max-width:1100px){
  .restored-event-form .settings-grid.four{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:760px){
  .restored-event-form .settings-grid,
  .restored-event-form .settings-grid.four{
    grid-template-columns:1fr !important;
  }
}


/* v102 event image preview beside edit button */
.event-row-card{
  display:grid !important;
  grid-template-columns:120px 150px minmax(260px, 1fr) 210px 170px !important;
  align-items:center !important;
  gap:18px !important;
}

.event-row-actions.event-row-actions-only{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:12px !important;
  min-width:150px !important;
}

.event-row-image-actions{
  width:58px !important;
  height:58px !important;
  min-width:58px !important;
  border-radius:12px !important;
  overflow:hidden !important;
  border:1px solid rgba(148,163,184,.28) !important;
  background:rgba(15,23,42,.75) !important;
  margin:0 !important;
  flex:0 0 auto !important;
}

.event-row-image-actions img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
}

.event-row-card > .event-row-image:not(.event-row-image-actions){
  display:none !important;
}

@media(max-width:1100px){
  .event-row-card{
    grid-template-columns:105px 130px minmax(220px, 1fr) 180px 150px !important;
    gap:12px !important;
  }

  .event-row-image-actions{
    width:52px !important;
    height:52px !important;
    min-width:52px !important;
  }
}

@media(max-width:850px){
  .event-row-card{
    grid-template-columns:1fr !important;
    gap:10px !important;
  }

  .event-row-actions.event-row-actions-only{
    justify-content:flex-start !important;
  }
}


/* v106 event QR code access */
.event-qr-card{
  border-color:rgba(96,165,250,.24) !important;
}

.event-qr-body{
  padding:18px !important;
  display:grid !important;
  grid-template-columns:minmax(260px,1fr) auto auto !important;
  gap:18px !important;
  align-items:center !important;
}

.event-code-panel{
  border:1px solid rgba(148,163,184,.22);
  background:rgba(15,23,42,.58);
  border-radius:16px;
  padding:16px;
  min-width:0;
}

.event-code-panel span{
  display:block;
  color:#93c5fd;
  font-weight:900;
  text-transform:uppercase;
  font-size:12px;
  letter-spacing:.04em;
  margin-bottom:6px;
}

.event-code-panel strong{
  display:block;
  font-size:34px;
  line-height:1;
  color:#fff;
  font-weight:950;
  letter-spacing:.04em;
}

.event-code-panel small{
  display:block;
  margin-top:10px;
  color:#b6c9de;
  word-break:break-all;
}

.event-qr-preview{
  width:122px;
  height:122px;
  border-radius:16px;
  overflow:hidden;
  background:#fff;
  padding:8px;
  box-sizing:border-box;
  border:1px solid rgba(148,163,184,.28);
}

.event-qr-preview.large{
  width:380px;
  height:380px;
  padding:10px;
  margin:auto;
}

.event-qr-image{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

.event-qr-actions{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.event-qr-actions .touch-btn{
  justify-content:center;
  white-space:nowrap;
}

.event-row-actions .event-qr-link{
  flex:0 0 auto;
}

.event-qr-standalone{
  grid-template-columns:1fr;
  justify-items:center;
  text-align:center;
}

.event-qr-standalone .event-code-panel{
  width:min(680px, 100%);
}

.event-qr-standalone .event-qr-actions{
  flex-direction:row;
  justify-content:center;
  flex-wrap:wrap;
}

@media(max-width:950px){
  .event-qr-body{
    grid-template-columns:1fr;
    justify-items:start;
  }

  .event-qr-actions{
    flex-direction:row;
    flex-wrap:wrap;
  }
}


/* v107 always-visible QR access */
.event-qr-card{
  border-color:rgba(96,165,250,.34) !important;
}

.event-qr-missing{
  display:block !important;
}

.event-row-actions.event-row-actions-only{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
}

.event-row-actions .event-qr-link{
  border-color:rgba(59,130,246,.75) !important;
  color:#60a5fa !important;
}


/* v109 venue social/details */
.venue-social-card{
  border-color:rgba(34,197,94,.20) !important;
}

.venue-social-card .settings-card-icon{
  color:#86efac !important;
  background:rgba(22,163,74,.20) !important;
  border-color:rgba(34,197,94,.18) !important;
}

.venue-social-card small a{
  color:#7dd3fc !important;
  text-decoration:none !important;
  font-weight:800 !important;
}

.venue-social-card small a:hover{
  text-decoration:underline !important;
}


/* v113 venue database selection */
.venue-select-field{
  grid-column:1 / -1;
}

.venue-select-field select{
  border-color:rgba(34,197,94,.34) !important;
  background:rgba(15,23,42,.92) !important;
}

.venue-select-field small{
  color:#a7f3d0 !important;
}


/* v114 event edit section order and venue placement */
.restored-event-form .settings-card.venue-social-card .settings-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}

.restored-event-form .venue-select-field{
  grid-column:1 / -1 !important;
}

.restored-event-form .event-details-card .settings-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}


/* v115 event/venue cleanup */
.restored-event-form .event-details-card .settings-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}

.restored-event-form .event-details-card textarea{
  min-height:132px !important;
}

.restored-event-form .event-details-card label:has(textarea){
  grid-row:span 2;
}

.restored-event-form .venue-social-card .settings-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}

.restored-event-form .venue-select-field{
  grid-column:1 / -1 !important;
}

@supports not selector(:has(*)){
  .restored-event-form .event-details-card textarea{
    min-height:150px !important;
  }
}


/* v116 simplified event code management */
.event-code-note{
  display:block;
  margin-top:8px;
  color:#94a3b8;
  font-size:12px;
  line-height:1.35;
  font-style:normal;
}


/* v117 event edit cleanup */
.restored-event-form .event-details-card .settings-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}

.restored-event-form .event-details-card .event-notes-field{
  grid-row:span 2 !important;
}

.restored-event-form .event-details-card .event-notes-field textarea{
  min-height:152px !important;
}

.restored-event-form .event-details-card label:not(.event-notes-field){
  align-self:start !important;
}


/* v119 venue maintenance page */
.venue-maintenance-layout{
  display:grid;
  grid-template-columns:minmax(360px, 1fr);
  gap:18px;
  padding:18px;
}

.venue-maintenance-form{
  padding:18px;
}

.venue-maintenance-form .settings-grid{
  padding:0 !important;
}

.venue-address-wide{
  grid-column:1 / -1;
}

.venue-list{
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.venue-row{
  display:grid;
  grid-template-columns:minmax(260px, 1fr) auto auto;
  align-items:center;
  gap:16px;
  border:1px solid rgba(148,163,184,.18);
  border-radius:16px;
  background:rgba(15,23,42,.55);
  padding:14px;
}

.venue-row h4{
  margin:0 0 4px;
  color:#fff;
  font-size:18px;
}

.venue-row p{
  margin:0;
  color:#b6c9de;
}

.venue-row span{
  display:inline-block;
  margin-top:6px;
  color:#93c5fd;
  font-size:12px;
  font-weight:900;
}

.venue-row-links{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.venue-row-links a{
  color:#7dd3fc;
  text-decoration:none;
  font-weight:900;
  font-size:12px;
  border:1px solid rgba(125,211,252,.25);
  border-radius:999px;
  padding:6px 9px;
}

.venue-row-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}

.venue-row-actions form{
  margin:0;
}

.touch-btn.danger{
  border-color:rgba(248,113,113,.45) !important;
  color:#fecaca !important;
}

.touch-btn.danger:disabled{
  opacity:.35;
  cursor:not-allowed;
}

.empty-state{
  border:1px dashed rgba(148,163,184,.28);
  border-radius:16px;
  padding:18px;
  color:#94a3b8;
  text-align:center;
}

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

  .venue-row-links,
  .venue-row-actions{
    justify-content:flex-start;
  }
}


/* v120 restore event name field */
.restored-event-form .event-details-card .settings-grid{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  align-items:start !important;
}

.restored-event-form .event-details-card .event-name-field{
  grid-column:1 !important;
}

.restored-event-form .event-details-card .event-type-field{
  grid-column:1 !important;
}

.restored-event-form .event-details-card .event-notes-field{
  grid-column:2 !important;
  grid-row:1 / span 2 !important;
}

.restored-event-form .event-details-card .event-notes-field textarea{
  min-height:152px !important;
}


/* v121 split venue list and edit */
.venue-list{
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.venue-row{
  display:grid;
  grid-template-columns:minmax(280px, 1fr) auto auto;
  align-items:center;
  gap:16px;
  border:1px solid rgba(148,163,184,.18);
  border-radius:16px;
  background:rgba(15,23,42,.55);
  padding:14px;
}

.venue-row h4{
  margin:0 0 4px;
  color:#fff;
  font-size:18px;
}

.venue-row p{
  margin:0;
  color:#b6c9de;
}

.venue-row span{
  display:inline-block;
  margin-top:6px;
  color:#93c5fd;
  font-size:12px;
  font-weight:900;
}

.venue-row-links{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.venue-row-links a{
  color:#7dd3fc;
  text-decoration:none;
  font-weight:900;
  font-size:12px;
  border:1px solid rgba(125,211,252,.25);
  border-radius:999px;
  padding:6px 9px;
}

.venue-row-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}

.venue-row-actions form{
  margin:0;
}

.venue-edit-form{
  padding:18px;
}

.venue-edit-form .settings-card{
  margin-bottom:18px;
}

.venue-edit-form .settings-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  padding:18px;
}

.venue-edit-form label span{
  display:block;
  font-size:13px;
  font-weight:950;
  color:#e5f2ff;
  margin-bottom:8px;
}

.venue-edit-form input{
  width:100%;
  border:1px solid rgba(148,163,184,.28);
  border-radius:15px;
  background:rgba(30,41,59,.86);
  color:#fff;
  padding:14px 16px;
  font-size:16px;
  box-sizing:border-box;
}

.venue-address-wide{
  grid-column:1 / -1;
}

button.action-tile:disabled{
  opacity:.35;
  cursor:not-allowed;
}

.empty-state{
  border:1px dashed rgba(148,163,184,.28);
  border-radius:16px;
  padding:18px;
  color:#94a3b8;
  text-align:center;
}

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

  .venue-row-links,
  .venue-row-actions{
    justify-content:flex-start;
  }

  .venue-edit-form .settings-grid{
    grid-template-columns:1fr;
  }
}


/* v122 venue page cleanup */
.venue-row{
  min-height:96px;
}

.venue-row-links a{
  width:42px;
  height:42px;
  padding:0 !important;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:12px !important;
  font-size:16px !important;
  font-weight:900;
}

.venue-square-action{
  width:56px !important;
  min-width:56px !important;
  height:56px !important;
  padding:0 !important;
  display:flex !important;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  border-radius:14px !important;
}

.venue-square-action .big-icon{
  font-size:18px;
  line-height:1;
}

.venue-square-action span:last-child{
  font-size:11px;
  line-height:1;
  margin-top:3px;
}


/* v123 simplify venue edit layout */
.venue-edit-simple-card{
  margin-top:0 !important;
}

.venue-edit-simple-card > .settings-grid{
  padding-top:18px !important;
}

.venue-edit-form{
  padding-top:14px !important;
}

.venue-edit-form .venue-edit-simple-card .settings-card-header{
  display:none !important;
}

/* Spotify request search */
.spotify-search-box { margin-top: 14px; }
.spotify-search-status { display: block; margin: 8px 0; color: rgba(255,255,255,.72); font-size: .9rem; }
.spotify-results { display: grid; gap: 8px; margin: 10px 0 14px; }
.spotify-result { width: 100%; display: flex; align-items: center; gap: 10px; padding: 10px; border: 1px solid rgba(255,255,255,.14); border-radius: 14px; background: rgba(255,255,255,.06); color: #fff; text-align: left; cursor: pointer; }
.spotify-result:hover { background: rgba(59,130,246,.18); border-color: rgba(96,165,250,.65); }
.spotify-result img, .spotify-art-placeholder { width: 42px; height: 42px; border-radius: 10px; flex: 0 0 42px; object-fit: cover; display: inline-flex; align-items: center; justify-content: center; background: rgba(255,255,255,.12); }
.spotify-result strong { display: block; line-height: 1.15; }
.spotify-result small { display: block; color: rgba(255,255,255,.68); margin-top: 3px; }
.spotify-selected { margin-top: 8px; padding: 9px 11px; border-radius: 12px; background: rgba(34,197,94,.14); border: 1px solid rgba(34,197,94,.35); color: #dcfce7; }
.req-track-block { min-width: 0; }
.req-spotify-art { width: 46px; height: 46px; border-radius: 12px; object-fit: cover; float: left; margin: 0 12px 8px 0; box-shadow: 0 0 0 1px rgba(255,255,255,.15); }
.spotify-open-link { display: inline-block; margin-top: 6px; font-size: .78rem; font-weight: 800; color: #86efac; text-decoration: none; }
.spotify-open-link:hover { text-decoration: underline; }
.spotify-open-link-static { color: #93c5fd; }

/* Spotify queue experiment */
.action-tile.spotify-queue {
  border-color: #1DB954;
  color: #1DB954;
  background: rgba(29, 185, 84, 0.08);
}
.spotify-queue-notice,
.notice {
  margin: 12px 0;
  padding: 12px 14px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 14px;
  background: rgba(255,255,255,.06);
}
.notice.error { border-color: rgba(255, 80, 80, .45); }
.settings-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
  margin-top: 16px;
}
.setting-card {
  padding: 18px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  background: rgba(255,255,255,.04);
}
.touch-button.primary {
  display: inline-block;
  padding: 12px 16px;
  border-radius: 14px;
  border: 1px solid rgba(29,185,84,.7);
  color: #fff;
  background: rgba(29,185,84,.22);
  text-decoration: none;
  font-weight: 800;
}


/* v91 Spotify-aware compact request actions */
.status-badge.spotify{
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
  border:1px solid rgba(29,185,84,.82) !important;
  background:rgba(29,185,84,.10) !important;
  color:#86efac !important;
  box-shadow:inset 0 0 0 1px rgba(29,185,84,.16), 0 0 13px rgba(29,185,84,.10) !important;
}
.status-badge.spotify .spotify-badge-mark{
  width:17px !important;
  height:17px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  background:#1DB954 !important;
  color:#06140a !important;
  font-size:11px !important;
  font-weight:1000 !important;
  line-height:1 !important;
}
.request-queue-panel .compact-queue-card .action-tile.spotify-queue{
  border-color:#1DB954 !important;
  color:#86efac !important;
  background:rgba(29,185,84,.09) !important;
}
.request-queue-panel .compact-queue-card .action-tile.spotify-queue .big-icon{
  color:#1DB954 !important;
}
.request-queue-panel .compact-queue-card.spotify-queued-card{
  border-left-color:#f59e0b !important;
  background:linear-gradient(90deg, rgba(245,158,11,.10), rgba(15,23,42,.94) 22%, rgba(15,23,42,.94)) !important;
}

/* v102 compact icon admin topbar */
.touch-topbar{
  grid-template-columns:minmax(180px, 1fr) minmax(300px, auto) auto !important;
  gap:14px !important;
  min-height:72px !important;
}

.topbar-centre{
  max-width:560px !important;
  overflow:hidden !important;
}

.touch-top-actions{
  gap:8px !important;
}

.header-admin-nav{
  gap:8px !important;
}

.header-admin-nav-btn{
  width:58px !important;
  min-width:58px !important;
  height:58px !important;
  min-height:58px !important;
  padding:0 !important;
  border-radius:18px !important;
  font-size:0 !important;
  line-height:1 !important;
  position:relative !important;
  display:inline-grid !important;
  place-items:center !important;
}

.admin-nav-icon{
  display:grid !important;
  place-items:center !important;
  width:100% !important;
  height:100% !important;
  font-size:26px !important;
  line-height:1 !important;
  font-weight:900 !important;
  text-shadow:0 0 14px rgba(96,165,250,.55) !important;
  filter:drop-shadow(0 0 5px rgba(96,165,250,.35)) !important;
}

.admin-nav-label{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  white-space:nowrap !important;
}

.header-admin-nav-btn.active .admin-nav-icon{
  text-shadow:0 0 18px rgba(255,255,255,.8), 0 0 20px rgba(59,130,246,.75) !important;
  filter:drop-shadow(0 0 7px rgba(96,165,250,.65)) !important;
}

.touch-icon-btn{
  width:58px !important;
  min-width:58px !important;
  height:58px !important;
  min-height:58px !important;
  border-radius:18px !important;
  font-size:24px !important;
  font-weight:900 !important;
  line-height:1 !important;
  text-shadow:0 0 14px rgba(255,255,255,.35) !important;
}

.touch-clock strong,
.touch-header-timer strong{
  font-size:24px !important;
  line-height:1.05 !important;
}

.header-timer-cluster{
  gap:10px !important;
}

.touch-header-timer{
  min-width:104px !important;
}

@media(max-width:1180px){
  .touch-topbar{
    grid-template-columns:minmax(120px, .75fr) minmax(250px, auto) auto !important;
    gap:8px !important;
    padding-left:12px !important;
    padding-right:12px !important;
  }

  .header-admin-nav-btn,
  .touch-icon-btn{
    width:52px !important;
    min-width:52px !important;
    height:52px !important;
    min-height:52px !important;
    border-radius:16px !important;
  }

  .admin-nav-icon{
    font-size:24px !important;
  }

  .touch-brand span:last-child{
    font-size:20px !important;
  }
}

@media(max-width:980px){
  .touch-brand span:last-child{
    display:none !important;
  }

  .touch-topbar{
    grid-template-columns:auto 1fr auto !important;
  }

  .topbar-centre{
    justify-self:center !important;
  }
}

/* v110 compact request queue: title spans above dedication without adding row height */
.request-queue-panel .compact-queue-card{
  display:grid !important;
  grid-template-columns:76px 54px minmax(210px, 0.82fr) minmax(320px, 1fr) 116px !important;
  grid-template-rows:auto auto !important;
  grid-template-areas:
    "time art title title actions"
    "time art track messages actions" !important;
  column-gap:12px !important;
  row-gap:4px !important;
  align-items:center !important;
  padding:10px 12px !important;
  min-height:0 !important;
  overflow:hidden !important;
}

.request-queue-panel .compact-queue-card .req-time{
  grid-area:time !important;
  align-self:center !important;
}

.request-queue-panel .compact-queue-card .req-art-col{
  grid-area:art !important;
  align-self:center !important;
  width:54px !important;
  min-width:54px !important;
}

.request-queue-panel .compact-queue-card .req-spotify-art{
  float:none !important;
  display:block !important;
  width:46px !important;
  height:46px !important;
  margin:0 !important;
  border-radius:10px !important;
  object-fit:cover !important;
  box-shadow:0 0 0 1px rgba(255,255,255,.15) !important;
}

.request-queue-panel .compact-queue-card .req-title-row{
  grid-area:title !important;
  min-width:0 !important;
  align-self:end !important;
  font-size:1.05rem !important;
  line-height:1.08 !important;
  font-weight:900 !important;
  color:#fff !important;
  text-shadow:0 1px 0 rgba(0,0,0,.4) !important;
  white-space:normal !important;
  overflow-wrap:anywhere !important;
  padding-right:8px !important;
}

.request-queue-panel .compact-queue-card .req-track-block{
  grid-area:track !important;
  min-width:0 !important;
  align-self:start !important;
  display:flex !important;
  flex-direction:column !important;
  gap:6px !important;
}

.request-queue-panel .compact-queue-card .req-track-title{
  display:none !important;
}

.request-queue-panel .compact-queue-card .req-track-artist{
  font-size:.86rem !important;
  line-height:1.1 !important;
  margin:0 !important;
  color:rgba(255,255,255,.9) !important;
}

.request-queue-panel .compact-queue-card .spotify-open-link{
  display:none !important;
}

.request-queue-panel .compact-queue-card .group-count-pill-row{
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
  flex-wrap:wrap !important;
  margin:0 !important;
}

.request-queue-panel .compact-queue-card .group-count,
.request-queue-panel .compact-queue-card .status-badge.inline-status{
  min-height:26px !important;
  height:26px !important;
  padding:0 10px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  line-height:1 !important;
  font-size:10px !important;
  font-weight:900 !important;
  text-decoration:none !important;
  white-space:nowrap !important;
}

.request-queue-panel .compact-queue-card .spotify-pill-link:hover{
  text-decoration:none !important;
  filter:brightness(1.12) !important;
}

.request-queue-panel .compact-queue-card .group-messages{
  grid-area:messages !important;
  align-self:center !important;
  display:flex !important;
  flex-direction:column !important;
  gap:5px !important;
  min-width:0 !important;
  width:100% !important;
  max-width:100% !important;
  overflow:hidden !important;
  padding:0 !important;
  margin:0 !important;
}

.request-queue-panel .compact-queue-card .compact-dedication-card{
  display:grid !important;
  grid-template-columns:28px minmax(0, 1fr) !important;
  column-gap:8px !important;
  align-items:start !important;
  padding:6px 9px !important;
  border-radius:12px !important;
  min-height:0 !important;
  width:100% !important;
  box-sizing:border-box !important;
}

.request-queue-panel .compact-queue-card .compact-dedication-card .dedication-side{
  gap:3px !important;
}

.request-queue-panel .compact-queue-card .compact-dedication-card .req-person{
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  min-height:24px !important;
  font-size:12px !important;
  line-height:1 !important;
}

.request-queue-panel .compact-queue-card .compact-dedication-card .message-time{
  font-size:9px !important;
  line-height:1 !important;
}

.request-queue-panel .compact-queue-card .compact-dedication-card .message-person{
  font-size:13px !important;
  line-height:1.05 !important;
  margin:0 0 3px 0 !important;
}

.request-queue-panel .compact-queue-card .compact-dedication-card .message-text{
  font-size:12px !important;
  line-height:1.18 !important;
}

.request-queue-panel .compact-queue-card .req-actions{
  grid-area:actions !important;
  align-self:center !important;
  justify-self:end !important;
  display:grid !important;
  grid-template-columns:52px 52px !important;
  grid-auto-rows:52px !important;
  width:111px !important;
  min-width:111px !important;
  gap:7px !important;
  margin:0 !important;
}

@media(max-width:1180px){
  .request-queue-panel .compact-queue-card{
    grid-template-columns:72px 50px minmax(190px, .75fr) minmax(260px, 1fr) 108px !important;
    column-gap:10px !important;
    padding:9px 10px !important;
  }
  .request-queue-panel .compact-queue-card .req-actions{
    grid-template-columns:50px 50px !important;
    grid-auto-rows:50px !important;
    width:106px !important;
    min-width:106px !important;
    gap:6px !important;
  }
}

@media(max-width:860px){
  .request-queue-panel .compact-queue-card{
    grid-template-columns:68px 48px minmax(0,1fr) 104px !important;
    grid-template-areas:
      "time art title actions"
      "time art track actions"
      "messages messages messages messages" !important;
  }
  .request-queue-panel .compact-queue-card .group-messages{
    margin-top:6px !important;
  }
}

/* v120 queue action compression + true centred admin header */
.touch-topbar{
  display:grid !important;
  grid-template-columns:minmax(210px, 1fr) auto minmax(210px, 1fr) !important;
  align-items:center !important;
  gap:14px !important;
}
.touch-topbar .topbar-left{justify-self:start !important; min-width:0 !important;}
.touch-topbar .topbar-centre{justify-self:center !important; min-width:0 !important;}
.touch-topbar .topbar-right{justify-self:end !important; min-width:0 !important;}
.touch-top-actions{justify-content:flex-end !important;}
.header-timer-cluster{justify-content:center !important;}

/* Keep request rows compact, but give artwork a more useful size */
.request-queue-panel .compact-queue-card{
  grid-template-columns:76px 68px minmax(210px, .86fr) minmax(300px, 1fr) auto !important;
  column-gap:10px !important;
  padding:9px 10px !important;
}
.request-queue-panel .compact-queue-card .req-art-col{
  width:68px !important;
  min-width:68px !important;
}
.request-queue-panel .compact-queue-card .req-spotify-art{
  width:58px !important;
  height:58px !important;
  border-radius:11px !important;
}

/* Default / non-Spotify action grid: keep the old-style 2x2 square block */
.request-queue-panel .compact-queue-card .req-actions{
  grid-template-columns:50px 50px !important;
  grid-auto-rows:50px !important;
  width:106px !important;
  min-width:106px !important;
  gap:6px !important;
  align-content:center !important;
  justify-content:end !important;
}
.request-queue-panel .compact-queue-card .req-actions .action-tile,
.request-queue-panel .compact-queue-card .req-actions .req-action-form{
  width:50px !important;
  height:50px !important;
  min-width:50px !important;
  min-height:50px !important;
}
.request-queue-panel .compact-queue-card .req-actions .action-tile{
  padding:4px 3px !important;
  border-radius:12px !important;
  gap:2px !important;
}
.request-queue-panel .compact-queue-card .req-actions .action-tile .big-icon{
  font-size:20px !important;
  line-height:1 !important;
}
.request-queue-panel .compact-queue-card .req-actions .action-tile span:last-child{
  font-size:8px !important;
  line-height:1 !important;
  letter-spacing:.01em !important;
}

/* Spotify-available rows: compact 3 + 2 grid so five actions do not become three rows */
.request-queue-panel .compact-queue-card .req-actions:has(.spotify-queue){
  grid-template-columns:46px 46px 46px !important;
  grid-auto-rows:46px !important;
  width:150px !important;
  min-width:150px !important;
  gap:5px !important;
}
.request-queue-panel .compact-queue-card .req-actions:has(.spotify-queue) .action-tile,
.request-queue-panel .compact-queue-card .req-actions:has(.spotify-queue) .req-action-form{
  width:46px !important;
  height:46px !important;
  min-width:46px !important;
  min-height:46px !important;
}
.request-queue-panel .compact-queue-card .req-actions:has(.spotify-queue) .action-tile{
  padding:3px 2px !important;
  border-radius:11px !important;
}
.request-queue-panel .compact-queue-card .req-actions:has(.spotify-queue) .action-tile .big-icon{
  font-size:20px !important;
}
.request-queue-panel .compact-queue-card .req-actions:has(.spotify-queue) .action-tile span:last-child{
  font-size:7.5px !important;
}

/* Put the high-priority actions first, secondary actions below */
.request-queue-panel .compact-queue-card .req-actions:has(.spotify-queue) .played{order:1 !important;}
.request-queue-panel .compact-queue-card .req-actions:has(.spotify-queue) .spotify-queue{order:2 !important;}
.request-queue-panel .compact-queue-card .req-actions:has(.spotify-queue) .duplicate{order:3 !important;}
.request-queue-panel .compact-queue-card .req-actions:has(.spotify-queue) .maybe{order:4 !important;}
.request-queue-panel .compact-queue-card .req-actions:has(.spotify-queue) .rejected{order:5 !important;}

/* Queued Spotify rows only need Played + Merge; keep them tiny and centred */
.request-queue-panel .compact-queue-card.spotify-queued-card .req-actions:not(:has(.spotify-queue)){
  grid-template-columns:50px 50px !important;
  grid-auto-rows:50px !important;
  width:106px !important;
  min-width:106px !important;
}

@media(max-width:1180px){
  .touch-topbar{
    grid-template-columns:minmax(120px, 1fr) auto minmax(120px, 1fr) !important;
    gap:8px !important;
  }
  .request-queue-panel .compact-queue-card{
    grid-template-columns:70px 62px minmax(180px, .82fr) minmax(240px, 1fr) auto !important;
    column-gap:8px !important;
  }
  .request-queue-panel .compact-queue-card .req-art-col{width:62px !important; min-width:62px !important;}
  .request-queue-panel .compact-queue-card .req-spotify-art{width:54px !important; height:54px !important;}
  .request-queue-panel .compact-queue-card .req-actions:has(.spotify-queue){
    grid-template-columns:44px 44px 44px !important;
    grid-auto-rows:44px !important;
    width:142px !important;
    min-width:142px !important;
    gap:5px !important;
  }
  .request-queue-panel .compact-queue-card .req-actions:has(.spotify-queue) .action-tile,
  .request-queue-panel .compact-queue-card .req-actions:has(.spotify-queue) .req-action-form{
    width:44px !important;
    height:44px !important;
    min-width:44px !important;
    min-height:44px !important;
  }
}

@media(max-width:900px){
  .touch-topbar{
    grid-template-columns:auto 1fr auto !important;
  }
  .touch-topbar .topbar-centre{
    justify-self:center !important;
  }
}

/* v105 Spotify settings form polish restored after queue/topbar layout patches */
.spotify-settings-section .spotify-settings-body{
  padding:20px !important;
  gap:18px !important;
}
.spotify-settings-section .spotify-settings-grid{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:16px !important;
  align-items:stretch !important;
  width:100% !important;
}
.spotify-settings-section .spotify-field-card{
  display:flex !important;
  flex-direction:column !important;
  gap:9px !important;
  padding:16px !important;
  border:1px solid rgba(59,130,246,.26) !important;
  border-radius:18px !important;
  background:linear-gradient(180deg, rgba(30,41,59,.74), rgba(15,23,42,.72)) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04) !important;
  min-width:0 !important;
}
.spotify-settings-section .spotify-field-card label{
  display:block !important;
  margin:0 !important;
  color:#bfdbfe !important;
  font-size:12px !important;
  line-height:1.2 !important;
  font-weight:950 !important;
  text-transform:uppercase !important;
  letter-spacing:.055em !important;
}
.spotify-settings-section .spotify-settings-input{
  appearance:none !important;
  -webkit-appearance:none !important;
  width:100% !important;
  min-height:54px !important;
  box-sizing:border-box !important;
  border:1px solid rgba(96,165,250,.38) !important;
  border-radius:15px !important;
  background:rgba(8,13,26,.76) !important;
  color:#fff !important;
  padding:0 15px !important;
  font-family:inherit !important;
  font-size:15px !important;
  font-weight:850 !important;
  letter-spacing:.01em !important;
  outline:none !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03) !important;
}
.spotify-settings-section .spotify-settings-input::placeholder{
  color:rgba(226,232,240,.48) !important;
  font-weight:750 !important;
}
.spotify-settings-section .spotify-settings-input:focus{
  border-color:rgba(29,185,84,.82) !important;
  box-shadow:0 0 0 4px rgba(29,185,84,.14), inset 0 0 0 1px rgba(255,255,255,.04) !important;
}
.spotify-settings-section .spotify-field-card small{
  display:block !important;
  margin:0 !important;
  color:rgba(219,234,254,.76) !important;
  font-size:12px !important;
  line-height:1.35 !important;
  font-weight:700 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
}
@media (max-width: 820px){
  .spotify-settings-section .spotify-settings-grid{
    grid-template-columns:1fr !important;
  }
}

/* Spotify multi-account planning / Duo deck assignment */
.spotify-account-planner{
  margin-top:16px;
  padding:16px;
  border:1px solid rgba(96,165,250,.24);
  border-radius:22px;
  background:linear-gradient(135deg,rgba(15,23,42,.92),rgba(30,41,59,.72));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.settings-section-header.compact{margin-bottom:12px;}
.settings-section-header.compact h3{
  margin:0 0 4px;
  color:#e5f2ff;
  font-size:1.02rem;
  letter-spacing:.01em;
}
.settings-section-header.compact p{margin:0;color:#9fb3c8;font-size:.9rem;line-height:1.45;}
.spotify-account-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:14px;
}
.spotify-account-card{
  border:1px solid rgba(148,163,184,.22);
  border-radius:20px;
  padding:14px;
  background:rgba(2,6,23,.34);
}
.spotify-account-card.primary{border-color:rgba(56,189,248,.28);}
.spotify-account-card.secondary{border-color:rgba(251,191,36,.26);}
.spotify-account-card-head{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
  color:#f8fafc;
}
.spotify-account-badge{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  background:rgba(59,130,246,.18);
  color:#bfdbfe;
  border:1px solid rgba(96,165,250,.35);
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.spotify-account-badge.amber{
  background:rgba(245,158,11,.16);
  color:#fde68a;
  border-color:rgba(245,158,11,.42);
}
.compact-toggle{margin-bottom:12px;}
.spotify-deck-map-card{
  margin-top:14px;
  padding:14px;
  border:1px solid rgba(34,211,238,.22);
  border-radius:18px;
  background:rgba(8,47,73,.18);
}
.spotify-deck-map-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.spotify-deck-map{
  display:flex;
  flex-direction:column;
  gap:8px;
  border:1px solid rgba(148,163,184,.18);
  border-radius:16px;
  padding:12px;
  background:rgba(15,23,42,.55);
}
.spotify-deck-map strong{color:#f8fafc;font-size:.96rem;}
.spotify-deck-map label{
  display:flex;
  align-items:center;
  gap:8px;
  color:#cbd5e1;
  font-weight:700;
  font-size:.9rem;
}
.spotify-deck-map input{accent-color:#38bdf8;}
.spotify-settings-section select.spotify-settings-input{
  appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,#93c5fd 50%),linear-gradient(135deg,#93c5fd 50%,transparent 50%);
  background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%;
  background-size:6px 6px,6px 6px;
  background-repeat:no-repeat;
}
@media (max-width:900px){
  .spotify-account-grid,.spotify-deck-map-grid{grid-template-columns:1fr;}
}

/* Photo moderation v12 */
.admin-nav-badge{
  display:inline-grid;
  place-items:center;
  min-width:20px;
  height:20px;
  padding:0 6px;
  margin-left:6px;
  border-radius:999px;
  background:rgba(239,68,68,.95);
  color:#fff;
  font-size:12px;
  font-weight:900;
  line-height:1;
  box-shadow:0 0 0 1px rgba(255,255,255,.16),0 0 16px rgba(239,68,68,.35);
}

.photo-moderation-wrap{gap:18px;}
.photo-moderation-hero{overflow:hidden;}
.photo-moderation-summary{
  display:grid;
  place-items:center;
  min-width:92px;
  padding:12px 16px;
  border:1px solid rgba(250,204,21,.42);
  border-radius:18px;
  background:rgba(250,204,21,.08);
  color:#fef3c7;
  text-align:center;
}
.photo-moderation-summary strong{font-size:28px;line-height:1;font-weight:950;color:#facc15;}
.photo-moderation-summary span{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:900;}
.photo-moderation-controls{
  display:grid;
  grid-template-columns:minmax(240px,1fr) minmax(180px,260px) auto;
  gap:14px;
  align-items:end;
  padding:18px;
  border-top:1px solid rgba(148,163,184,.16);
}
.photo-moderation-controls label{display:grid;gap:7px;color:#cbd5e1;font-weight:800;font-size:13px;}
.photo-moderation-controls select,
.photo-note-field input{
  width:100%;
  min-height:44px;
  border-radius:14px;
  border:1px solid rgba(148,163,184,.28);
  background:rgba(15,23,42,.72);
  color:#fff;
  padding:10px 12px;
  font:inherit;
}
.photo-filter-pills{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.photo-filter-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:1px solid rgba(59,130,246,.42);
  border-radius:999px;
  background:rgba(15,23,42,.75);
  color:#dbeafe;
  padding:9px 13px;
  text-decoration:none;
  font-weight:900;
}
.photo-filter-pill span{
  display:inline-grid;
  place-items:center;
  min-width:22px;
  height:22px;
  padding:0 7px;
  border-radius:999px;
  background:rgba(59,130,246,.2);
  color:#93c5fd;
}
.photo-filter-pill.active{
  border-color:rgba(250,204,21,.65);
  color:#fef3c7;
  background:rgba(250,204,21,.11);
}
.photo-moderation-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:18px;
}
.photo-review-card{
  border:1px solid rgba(148,163,184,.18);
  border-radius:22px;
  background:linear-gradient(180deg,rgba(15,23,42,.96),rgba(8,13,24,.96));
  overflow:hidden;
  box-shadow:0 16px 40px rgba(0,0,0,.24);
}
.photo-review-card.status-approved{border-color:rgba(34,197,94,.35);}
.photo-review-card.status-rejected{border-color:rgba(239,68,68,.35);opacity:.92;}
.photo-review-image-link{display:block;background:rgba(2,6,23,.85);}
.photo-review-image{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
.photo-review-body{padding:15px;display:grid;gap:11px;}
.photo-review-topline{display:flex;justify-content:space-between;gap:10px;align-items:center;}
.photo-review-topline small{color:#93a4b8;font-weight:800;}
.photo-status-badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:5px 9px;
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.05em;
  border:1px solid rgba(250,204,21,.42);
  color:#facc15;
  background:rgba(250,204,21,.1);
}
.photo-status-badge.status-approved{border-color:rgba(34,197,94,.45);color:#86efac;background:rgba(34,197,94,.12);}
.photo-status-badge.status-rejected{border-color:rgba(239,68,68,.48);color:#fecaca;background:rgba(239,68,68,.12);}
.photo-review-body h2{margin:0;font-size:18px;font-weight:950;color:#fff;}
.photo-filename,.photo-note{margin:0;color:#cbd5e1;font-size:13px;line-height:1.45;word-break:break-word;}
.photo-review-actions{display:grid;gap:11px;}
.photo-note-field{display:grid;gap:6px;color:#cbd5e1;font-size:12px;font-weight:900;}
.photo-action-row{display:flex;flex-wrap:wrap;gap:8px;}
.photo-action-row .touch-btn{min-width:0;padding:10px 12px;font-size:13px;}
.photo-empty-state h2{margin:0 0 8px;font-size:22px;}
.photo-empty-state p{margin:0;color:#cbd5e1;}

@media (max-width: 760px){
  .photo-moderation-controls{grid-template-columns:1fr;}
  .photo-moderation-summary{min-width:74px;padding:10px 12px;}
  .photo-moderation-grid{grid-template-columns:1fr;}
  .photo-action-row .touch-btn{flex:1 1 130px;}
}

/* Photo moderation compact card layout */
.photo-moderation-page { max-width: 1500px; }
.photo-moderation-header { align-items: flex-end; }
.photo-filter-form { display:grid; grid-template-columns: 130px minmax(320px, 1fr) auto; gap:12px; align-items:end; min-width:min(720px, 100%); }
.photo-filter-form label span { display:block; color:#bfdbfe; font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:.05em; margin-bottom:6px; }
.photo-filter-form select,
.photo-note-label input { width:100%; min-height:36px; border-radius:9px; border:1px solid rgba(148,163,184,.32); background:#111827; color:#fff; padding:7px 10px; font:inherit; font-weight:800; }
.touch-btn.compact { min-height:42px; padding:9px 12px; border-radius:12px; font-size:13px; }
.touch-btn.red { border-color:rgba(239,68,68,.55); background:rgba(185,28,28,.2); }
.touch-btn.danger { border-color:rgba(248,113,113,.75); background:rgba(127,29,29,.36); color:#fecaca; }
.photo-selected-event { display:grid; gap:8px; margin:0 0 18px; padding:16px 18px; border:1px solid rgba(148,163,184,.22); border-radius:16px; background:rgba(15,23,42,.58); }
.photo-selected-event span { font-size:12px; font-weight:900; color:#bfdbfe; text-transform:uppercase; }
.photo-selected-event strong { color:#fff; }
.photo-status-tabs { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 16px; }
.photo-status-tab { display:inline-flex; gap:10px; align-items:center; justify-content:center; min-height:40px; padding:8px 14px; border-radius:999px; border:1px solid rgba(59,130,246,.55); background:rgba(37,99,235,.12); text-decoration:none; font-weight:900; color:#fff; }
.photo-status-tab span { min-width:22px; height:22px; display:grid; place-items:center; padding:0 6px; border-radius:999px; background:rgba(59,130,246,.42); }
.photo-status-tab.active { border-color:#60a5fa; box-shadow:0 0 0 1px rgba(96,165,250,.25); }
.photo-status-tab.active.rejected { border-color:#facc15; background:rgba(113,63,18,.22); }
.photo-card-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 280px)); gap:18px; align-items:start; }
.photo-moderation-card { width:280px; overflow:hidden; border:1px solid rgba(59,130,246,.28); border-radius:18px; background:linear-gradient(180deg, rgba(15,23,42,.96), rgba(5,11,18,.98)); box-shadow:0 18px 42px rgba(0,0,0,.28); }
.photo-moderation-card.status-rejected { border-color:rgba(239,68,68,.5); }
.photo-moderation-card.status-approved { border-color:rgba(34,197,94,.5); }
.photo-card-image { display:block; height:200px; background:#020617; overflow:hidden; }
.photo-card-image img { width:100%; height:100%; object-fit:cover; display:block; }
.photo-card-body { padding:13px 14px 14px; }
.photo-card-row { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.photo-status-pill { display:inline-flex; align-items:center; min-height:28px; padding:5px 10px; border-radius:999px; font-size:12px; font-weight:950; border:1px solid currentColor; }
.photo-status-pill.pending { color:#fbbf24; background:rgba(245,158,11,.12); }
.photo-status-pill.approved { color:#86efac; background:rgba(22,163,74,.12); }
.photo-status-pill.rejected { color:#fca5a5; background:rgba(185,28,28,.14); }
.photo-card-time { color:#94a3b8; font-size:12px; font-weight:900; }
.photo-card-body h2 { margin:0 0 10px; font-size:19px; line-height:1.1; letter-spacing:-.04em; }
.photo-file-name { margin:0 0 12px; color:#cbd5e1; font-size:12px; overflow-wrap:anywhere; }
.photo-note-label { display:block; margin-bottom:12px; }
.photo-note-label span { display:block; margin-bottom:6px; color:#cbd5e1; font-size:12px; font-weight:900; }
.photo-note-label input:disabled { opacity:.78; }
.photo-actions { display:flex; flex-wrap:wrap; gap:8px; }
.photo-actions form { margin:0; }
@media (max-width: 920px) {
  .photo-moderation-header { align-items:stretch; }
  .photo-filter-form { grid-template-columns:1fr; min-width:0; }
  .photo-card-grid { grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); }
  .photo-moderation-card { width:100%; }
}

/* v20260531 compact Spotify mixer request rows + photo alert hook */
.spotify-mixer .playlist-row .workflow-row,
.spotify-mixer .playlist-row .playlist-request-summary,
.spotify-mixer .request-row .request-detail,
.spotify-mixer .request-row .request-source{
  display:none !important;
}
.spotify-mixer .playlist-row,
.spotify-mixer .request-row.compact-public-request-row{
  align-items:center;
  gap:14px;
}
.spotify-mixer .playlist-row .mixer-request-note-list,
.spotify-mixer .compact-public-request-row .mixer-request-note-list{
  margin-top:8px;
}
.header-admin-nav-btn.photo-alert-pulse{border-color:rgba(255,70,85,.9)!important;box-shadow:0 0 0 1px rgba(255,70,85,.4),0 0 22px rgba(255,70,85,.72)!important;animation:dttdRequestPulse 1.05s ease-in-out infinite;}
.header-admin-nav-btn.photo-alert-pulse .admin-nav-icon{color:#ff6b75!important;}
.header-admin-nav-btn.photo-alert-pulse::after{content:'NEW';position:absolute;right:-6px;top:-6px;border-radius:999px;background:#ff3346;color:#fff;font-size:10px;font-weight:1000;line-height:1;padding:4px 6px;border:1px solid rgba(255,255,255,.36);box-shadow:0 0 16px rgba(255,51,70,.8);}


/* v-global-select-dark-hard-fix
   Force native dropdowns to remain readable on dark DTTD themes.
   This is intentionally broad because select styling is used across public and admin suites. */
html,
body {
  color-scheme: dark;
}

select,
select option,
select optgroup {
  background-color: #230033 !important;
  color: #ffffff !important;
}

select {
  color-scheme: dark !important;
  border-color: rgba(255, 79, 216, 0.50) !important;
}

select:focus,
select:active {
  background-color: #230033 !important;
  color: #ffffff !important;
  border-color: rgba(255, 213, 74, 0.85) !important;
  outline: none !important;
}

select option:checked,
select option:hover,
select option:focus {
  background-color: #7c2bd6 !important;
  color: #ffffff !important;
}

/* Public gallery/filter-specific reinforcement */
.public-filter-grid select,
.public-filter-grid select option,
.public-gallery-page select,
.public-gallery-page select option,
.public-page select,
.public-page select option,
.gallery-filters select,
.gallery-filters select option,
.photo-filters select,
.photo-filters select option,
.find-photos select,
.find-photos select option {
  background-color: #230033 !important;
  color: #ffffff !important;
  color-scheme: dark !important;
}

/* Admin form/filter-specific reinforcement */
.admin-form select,
.admin-form select option,
.admin-card select,
.admin-card select option,
.touch-panel select,
.touch-panel select option,
.touch-wrap select,
.touch-wrap select option,
.settings-card select,
.settings-card select option {
  background-color: #1e293b !important;
  color: #ffffff !important;
  color-scheme: dark !important;
}


/* Live display slide settings admin page */
.display-slides-admin .touch-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
}

.display-slides-admin .touch-kicker{
  margin:0 0 .35rem;
  color:#44e6ff;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-weight:900;
  font-size:.78rem;
}

.display-slides-admin .touch-muted{
  margin:.35rem 0 0;
  color:rgba(255,255,255,.72);
  max-width:70ch;
}

.touch-alert{
  border-radius:16px;
  padding:.9rem 1rem;
  margin:1rem 0;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);
  font-weight:800;
}

.touch-alert.success{
  border-color:rgba(66,255,168,.35);
  background:rgba(66,255,168,.10);
  color:#baffdc;
}

.touch-alert.warning{
  border-color:rgba(255,216,106,.35);
  background:rgba(255,216,106,.10);
  color:#ffe9a6;
}

.touch-alert.danger{
  border-color:rgba(255,92,132,.35);
  background:rgba(255,92,132,.10);
  color:#ffc2d0;
}

.display-slide-settings-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:1rem;
}

.display-slide-setting-card{
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.055);
  border-radius:22px;
  padding:1rem;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}

.display-slide-setting-main{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:.9rem;
  align-items:flex-start;
}

.display-slide-setting-main h2{
  margin:0;
  color:#fff;
  font-size:1.18rem;
}

.display-slide-setting-main p{
  margin:.35rem 0 .6rem;
  color:rgba(255,255,255,.72);
  line-height:1.35;
}

.display-slide-setting-main code{
  display:inline-flex;
  border-radius:999px;
  padding:.2rem .55rem;
  color:#44e6ff;
  background:rgba(68,230,255,.10);
  border:1px solid rgba(68,230,255,.22);
  font-weight:900;
}

.display-slide-toggle{
  position:relative;
  display:inline-flex;
  width:58px;
  height:34px;
  cursor:pointer;
}

.display-slide-toggle input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.display-slide-toggle span{
  width:100%;
  height:100%;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  transition:.15s ease;
}

.display-slide-toggle span:after{
  content:'';
  position:absolute;
  width:26px;
  height:26px;
  left:4px;
  top:4px;
  border-radius:50%;
  background:rgba(255,255,255,.88);
  transition:.15s ease;
}

.display-slide-toggle input:checked + span{
  background:rgba(68,230,255,.22);
  border-color:rgba(68,230,255,.42);
}

.display-slide-toggle input:checked + span:after{
  transform:translateX(24px);
  background:#44e6ff;
}

.display-slide-setting-controls{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.8rem;
  margin-top:1rem;
}

.display-slide-setting-controls label span{
  display:block;
  margin:0 0 .3rem;
  color:rgba(255,255,255,.72);
  font-size:.82rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.display-slide-setting-controls select{
  width:100%;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.18);
  background:#101529;
  color:#fff;
  padding:.75rem .85rem;
  font-weight:900;
}

.display-slide-actions{
  margin-top:1rem;
  display:flex;
  justify-content:flex-end;
}

.display-slide-actions .touch-btn[disabled]{
  opacity:.45;
  cursor:not-allowed;
}


/* Final stretch controls on Live Display Slides page */
.display-final-stretch-panel{
  margin-top:1.25rem;
  border:1px solid rgba(68,230,255,.18);
  background:
    radial-gradient(circle at top left, rgba(68,230,255,.10), transparent 38%),
    rgba(255,255,255,.045);
  border-radius:24px;
  padding:1.1rem;
}

.display-final-stretch-panel h2{
  margin:0;
  color:#fff;
  font-size:1.35rem;
}

.display-final-stretch-panel p{
  margin:.35rem 0 0;
  color:rgba(255,255,255,.72);
  max-width:76ch;
  line-height:1.4;
}

.display-final-stretch-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:.9rem;
  margin-top:1rem;
  align-items:end;
}

.display-final-stretch-grid label span:not(.display-final-toggle span){
  display:block;
  margin:0 0 .3rem;
  color:rgba(255,255,255,.72);
  font-size:.82rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.display-final-stretch-grid select{
  width:100%;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.18);
  background:#101529;
  color:#fff;
  padding:.75rem .85rem;
  font-weight:900;
}

.display-final-toggle{
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  gap:.75rem;
  align-items:center;
  min-height:48px;
}

.display-final-toggle input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.display-final-toggle > span{
  position:relative;
  display:block;
  width:58px;
  height:34px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  transition:.15s ease;
}

.display-final-toggle > span:after{
  content:'';
  position:absolute;
  width:26px;
  height:26px;
  left:4px;
  top:4px;
  border-radius:50%;
  background:rgba(255,255,255,.88);
  transition:.15s ease;
}

.display-final-toggle input:checked + span{
  background:rgba(68,230,255,.22);
  border-color:rgba(68,230,255,.42);
}

.display-final-toggle input:checked + span:after{
  transform:translateX(24px);
  background:#44e6ff;
}

.display-final-toggle strong{
  color:#fff;
}


/* Event deletion confirmation summary */
.event-delete-summary{
  margin-top:1rem;
  padding:1.1rem;
  border:1px solid rgba(148,163,184,.24);
  border-radius:18px;
  background:rgba(15,23,42,.58);
}

.event-delete-summary h2{
  margin:0 0 .85rem;
  font-size:1.1rem;
}

.event-delete-summary ul{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:.55rem;
}

.event-delete-summary li{
  display:grid;
  grid-template-columns:minmax(180px,1fr) auto;
  gap:.35rem 1rem;
  align-items:center;
  padding:.75rem .85rem;
  border:1px solid rgba(148,163,184,.18);
  border-radius:14px;
  background:rgba(2,6,23,.38);
}

.event-delete-summary li span{
  justify-self:end;
  padding:.25rem .55rem;
  border-radius:999px;
  background:rgba(56,189,248,.12);
  border:1px solid rgba(56,189,248,.28);
  color:#bfdbfe;
  font-weight:800;
  white-space:nowrap;
}

.event-delete-summary li small{
  grid-column:1 / -1;
  color:#94a3b8;
}

.event-delete-confirm{
  margin-top:1.25rem;
  max-width:720px;
}

@media (max-width:720px){
  .event-delete-summary li{
    grid-template-columns:1fr;
  }
  .event-delete-summary li span{
    justify-self:start;
  }
}


/* Admin events list: request-close column removed, give actions/image more room */
.event-row-card .event-row-actions-only{
  margin-left:auto;
  justify-content:flex-end;
}

.event-row-card .event-row-title{
  min-width:0;
}

.event-row-card .event-row-image-actions{
  margin-right:.35rem;
}


/* Admin events list: keep event actions pinned to the right after removing request-close column */
.event-row-card{
  grid-template-columns:120px 150px minmax(260px, 1fr) minmax(300px, auto) !important;
}

.event-row-actions.event-row-actions-only{
  grid-column:4 !important;
  justify-self:end !important;
  margin-left:auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  width:max-content !important;
  min-width:0 !important;
}

.event-row-card .event-row-title{
  min-width:0 !important;
}

@media(max-width:1100px){
  .event-row-card{
    grid-template-columns:105px 130px minmax(220px, 1fr) minmax(280px, auto) !important;
  }
}

@media(max-width:850px){
  .event-row-card{
    grid-template-columns:1fr !important;
  }

  .event-row-actions.event-row-actions-only{
    grid-column:auto !important;
    justify-self:start !important;
    margin-left:0 !important;
    justify-content:flex-start !important;
    width:auto !important;
  }
}
