/* QueueX skin — "GO green": spring green on deep pine ink, teal aurora.
   Layers on the shared strmrx core.css (loaded first). */

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@500;600&display=swap');

:root{
  /* brand vars */
  --go:#34d97b; --go-2:#2dd4bf; --pine:#07100b; --pine-2:#0d1a12;
  /* map onto the --sx-* contract */
  --sx-bg:var(--pine);
  --sx-surface:#101b14; --sx-surface2:#16241b;
  --sx-border:#22362a; --sx-border2:#2f4636;
  --sx-text:#e7f2e9; --sx-muted:#8fa697; --sx-muted2:#a9bfb0; --sx-faint:#5f7568;
  --sx-accent:var(--go); --sx-accent2:var(--go-2);
  --sx-accent-ink:#04130a; --sx-accent-soft:#0e2417; --sx-accent-hover:#4ce48d;
  --sx-glow-1:var(--go); --sx-glow-2:var(--go-2);
}

body{font-family:var(--sx-font)}

/* ── topbar extras ─────────────────────────────────────────────────────────── */
.brand-sub{color:var(--sx-muted);font-size:12px;margin-left:2px}
.top-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.avatar{width:30px;height:30px;border-radius:50%;border:1px solid var(--sx-border2)}

/* ── layout ────────────────────────────────────────────────────────────────── */
.wrap{max-width:var(--sx-page-max);margin:0 auto;padding:0 20px 60px}
.grid{display:grid;grid-template-columns:1.05fr .95fr;gap:18px;align-items:start}
@media (max-width:860px){.grid{grid-template-columns:1fr}}

/* ── queue control card ────────────────────────────────────────────────────── */
.qcard{position:relative;overflow:hidden}
.qcard .halo{position:absolute;inset:-40%;pointer-events:none;opacity:0;
  background:radial-gradient(closest-side,color-mix(in srgb,var(--go) 16%,transparent),transparent 70%);
  transition:opacity var(--sx-dur-slow) var(--sx-ease-out)}
.qcard.open .halo{opacity:1}
.qhead{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.qstatus{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:13px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--sx-muted)}
.qstatus .lamp{width:10px;height:10px;border-radius:50%;background:var(--sx-faint);
  transition:all var(--sx-dur-base) var(--sx-spring)}
.open .qstatus{color:var(--go)}
.open .qstatus .lamp{background:var(--go);box-shadow:0 0 12px var(--go)}
.qgame{font-size:22px;font-weight:700;line-height:1.2}
.qgame small{color:var(--sx-muted);font-weight:500}
.qactions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.btn-open{font-size:15px;padding:12px 22px}

/* mode picker */
.modes{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.mode-chip{cursor:pointer;user-select:none;transition:all var(--sx-dur-fast) var(--sx-spring)}
.mode-chip:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--go) 55%,var(--sx-border))}
.mode-chip.on{background:var(--sx-accent-soft);border-color:color-mix(in srgb,var(--go) 70%,transparent);
  color:var(--go);font-weight:700}
.mode-custom input{width:56px;background:transparent;border:none;color:inherit;font:inherit;
  text-align:center;outline:none;-moz-appearance:textfield}
.mode-custom input::-webkit-outer-spin-button,.mode-custom input::-webkit-inner-spin-button{-webkit-appearance:none}

/* chat connect warning */
.chat-warn{display:flex;align-items:center;gap:10px;margin-top:14px;padding:10px 14px;
  border:1px solid color-mix(in srgb,var(--sx-danger) 45%,transparent);
  background:color-mix(in srgb,var(--sx-danger) 10%,transparent);border-radius:var(--sx-radius-sm);
  font-size:13px}

/* ── lists ─────────────────────────────────────────────────────────────────── */
.sec-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--sx-muted);margin:18px 0 10px}
.sec-title .count{color:var(--go);font-family:var(--sx-mono)}
.row{display:flex;align-items:center;gap:12px;background:var(--sx-surface2);
  border:1px solid var(--sx-border);border-radius:12px;padding:10px 12px;margin-bottom:8px;
  transition:all var(--sx-dur-fast) var(--sx-ease-out)}
.row:hover{border-color:var(--sx-border2)}
.row .pos{font-family:var(--sx-mono);font-weight:600;color:var(--sx-muted);width:30px;flex:none;text-align:center}
.row .who{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.row .tname{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .gid{font-family:var(--sx-mono);font-size:12px;color:var(--go-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .lane{flex:none;font-size:10px;font-weight:800;letter-spacing:.08em;padding:3px 8px;
  border-radius:999px;background:color-mix(in srgb,#f2c14e 16%,transparent);color:#f2c14e}
.row .tools{display:flex;gap:6px;flex:none;opacity:0;transition:opacity var(--sx-dur-fast) var(--sx-ease-out)}
.row:hover .tools{opacity:1}
.tool{background:none;border:1px solid var(--sx-border);border-radius:8px;color:var(--sx-muted);
  width:28px;height:28px;cursor:pointer;font-size:13px;display:grid;place-items:center;
  transition:all var(--sx-dur-fast) var(--sx-ease-out)}
.tool:hover{color:var(--sx-text);border-color:var(--sx-border2)}
.tool.danger:hover{color:var(--sx-danger);border-color:color-mix(in srgb,var(--sx-danger) 50%,transparent)}

/* called rows: the loud moment */
.row.called{border-color:color-mix(in srgb,var(--go) 60%,transparent);
  background:color-mix(in srgb,var(--go) 8%,var(--sx-surface2));
  animation:qx-pop var(--sx-dur-slow) var(--sx-spring)}
.row.called .timer{font-family:var(--sx-mono);font-weight:600;color:var(--go);flex:none;font-size:13px}
.row.playing{border-color:color-mix(in srgb,var(--go-2) 45%,transparent)}
.row.playing .pos{color:var(--go-2)}
@keyframes qx-pop{0%{transform:scale(.97);opacity:.4}60%{transform:scale(1.015)}100%{transform:scale(1)}}

.empty{color:var(--sx-muted);font-size:13px;padding:14px;text-align:center;
  border:1px dashed var(--sx-border);border-radius:12px}

/* ── settings modal fields ─────────────────────────────────────────────────── */
.field{margin-bottom:14px}
.field label{display:block;font-size:12px;font-weight:600;letter-spacing:.04em;
  color:var(--sx-muted2);margin-bottom:6px}
.field input[type=text],.field input[type=number],.field textarea,.field select{
  width:100%;background:var(--sx-surface2);border:1px solid var(--sx-border);
  border-radius:10px;color:var(--sx-text);font:inherit;padding:9px 12px;outline:none;
  transition:border-color var(--sx-dur-fast) var(--sx-ease-out)}
.field input:focus,.field textarea:focus,.field select:focus{border-color:color-mix(in srgb,var(--go) 55%,var(--sx-border))}
.field .hint{font-size:11px;color:var(--sx-faint);margin-top:4px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 0;border-bottom:1px solid var(--sx-border)}
.switch-row .lbl{font-size:14px}
.switch-row .sub{font-size:12px;color:var(--sx-muted);margin-top:2px}
.sw{position:relative;width:42px;height:24px;flex:none;cursor:pointer}
.sw input{opacity:0;width:0;height:0}
.sw i{position:absolute;inset:0;border-radius:999px;background:var(--sx-surface2);
  border:1px solid var(--sx-border2);transition:all var(--sx-dur-fast) var(--sx-ease-out)}
.sw i::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;
  background:var(--sx-muted);transition:all var(--sx-dur-base) var(--sx-spring)}
.sw input:checked + i{background:var(--sx-accent-soft);border-color:color-mix(in srgb,var(--go) 60%,transparent)}
.sw input:checked + i::after{left:20px;background:var(--go)}

/* modal shell */
.modal-back{position:fixed;inset:0;background:rgba(2,8,4,.66);backdrop-filter:blur(4px);
  display:none;place-items:center;z-index:60;padding:20px}
.modal-back.show{display:grid;animation:qx-fade var(--sx-dur-base) var(--sx-ease-out)}
.modal{background:var(--sx-surface);border:1px solid var(--sx-border2);border-radius:var(--sx-radius);
  box-shadow:var(--sx-shadow);width:min(560px,100%);max-height:86vh;overflow-y:auto;padding:22px;
  animation:qx-rise var(--sx-dur-slow) var(--sx-spring)}
.modal h3{margin:0 0 16px;font-size:17px}
.modal .mfoot{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
@keyframes qx-fade{from{opacity:0}}
@keyframes qx-rise{from{opacity:0;transform:translateY(14px) scale(.97)}}

/* game profile mode rows */
.mrow{display:flex;gap:8px;margin-bottom:8px;align-items:center}
.mrow input.mlabel{flex:1}
.mrow input.msize{width:80px}

/* ── landing (signed out) ──────────────────────────────────────────────────── */
.hero{text-align:center;padding:64px 16px 40px}
.hero h1{font-size:clamp(30px,6vw,52px);line-height:1.08;margin:0 0 14px}
.hero h1 em{font-style:normal;color:var(--go)}
.hero p{color:var(--sx-muted2);font-size:17px;max-width:560px;margin:0 auto 26px;line-height:1.55}
.hero-badges{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:34px}

/* by StrmrX credit */
.by-strmrx{display:block;text-align:center;margin:44px 0 8px;color:var(--sx-faint);
  font-size:12px;text-decoration:none}
.by-strmrx b{color:#ff7828}
.by-strmrx:hover{color:var(--sx-muted)}
