/* =====================================================================
   TicketAssist AI - dashboard + staff portal
   Solid night panels, one memorable element (the perforated "server
   pass" / ticket stubs), everything else quiet. Loaded after style.css.
   ===================================================================== */

.dash{
  --night:#070a24;
  --panel:#0d1238;
  --panel-2:#111845;
  --rule:#1f2757;
  --rule-2:#2b3470;
  --ink:#eef1ff;
  --ink-2:#c5cbef;
  --muted:#9aa3cf;
  --signal:#3d5afe;
  --signal-ink:#ffffff;
  --spark:#4de3ff;
  --ok:#3ddc97;
  --bad:#ff6b6e;
  --gold:#ffd166;
  /* chart series, validated (OKLCH band + CVD) against --panel */
  --series-1:#1aa3c9;
  --series-2:#d95926;
  --radius:14px;
  --radius-sm:10px;
  background:var(--night);
  background-image:none;
  font-variant-numeric:tabular-nums;
}
.dash header{background:rgba(7,10,36,.92);border-bottom-color:var(--rule)}
.dash .nav{height:62px}
.dash .brand img{width:32px;height:32px}

/* ---------- utilities kept for staff views ---------- */
.inline{display:inline;margin:0}
.muted{color:var(--muted)}.s{font-size:14px}
.grow{flex:1;min-width:0}
.split{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.btnrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.btnrow form{margin:0}
ul.plain{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:8px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
code{background:rgba(255,255,255,.07);padding:1px 6px;border-radius:6px;font-size:.92em}

/* ---------- shell ---------- */
.dwrap{display:grid;grid-template-columns:232px minmax(0,1fr);gap:36px;padding:28px 0 80px;align-items:start}
.dwrap:not(:has(.side)){grid-template-columns:minmax(0,1fr)}
@media(max-width:880px){.dwrap{grid-template-columns:minmax(0,1fr);gap:18px}}
.side{display:flex;flex-direction:column;gap:2px;position:sticky;top:80px}
@media(max-width:880px){.side{position:static;flex-direction:row;flex-wrap:wrap;gap:6px}.side .sgh{flex-basis:100%}}
.side a{padding:9px 12px;border-radius:var(--radius-sm);color:var(--muted);text-decoration:none;font-size:15px;border:1px solid transparent}
.side a:hover{color:var(--ink);background:var(--panel)}
.side a[aria-current=page]{color:var(--ink);background:var(--panel);border-color:var(--rule)}
.side a.advent-link{color:var(--gold)}
.sgh{display:flex;gap:12px;align-items:center;margin:0 0 14px;padding:0 4px}
.sgh img{border-radius:12px;flex:none}
.sgh b{display:block;line-height:1.25;word-break:break-word}
.sgh small{display:block;color:var(--muted);font-size:12px}
.dmain{min-width:0}

.dh{font-size:28px;line-height:1.15;margin:0 0 6px;letter-spacing:-.6px;font-weight:800}
.dh2{font-size:18px;margin:34px 0 12px;letter-spacing:-.2px;font-weight:750}
.lede{color:var(--muted);margin:0 0 6px;max-width:70ch}

/* ---------- panels ---------- */
.dash .card{background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);padding:20px;box-shadow:none}
.dash .card h3{margin:0 0 6px;font-size:17px}
.cards3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:14px}
.big{font-size:28px;font-weight:800;margin:4px 0;letter-spacing:-.5px}

/* ---------- buttons (refine site buttons inside the dashboard) ---------- */
.dash .btn{border-radius:var(--radius-sm);padding:10px 18px;transition:background .15s,border-color .15s}
.dash .btn:hover{transform:none}
.dash .btn.primary{background:var(--signal);color:var(--signal-ink)}
.dash .btn.primary:hover{background:#5570ff}
.dash .btn.ghost{background:transparent;border-color:var(--rule-2);color:var(--ink)}
.dash .btn.ghost:hover{background:var(--panel-2)}
.dash .btn.gold{background:var(--gold);color:#2a1c00}
.dash .btn.sm{padding:7px 13px;font-size:14px}
button.btn{cursor:pointer;font:inherit;font-weight:700}
button.btn:disabled{opacity:.5;cursor:default}
.dash a:focus-visible,.dash button:focus-visible,.dash input:focus-visible,.dash select:focus-visible,.dash textarea:focus-visible,.dash summary:focus-visible,.dash [tabindex]:focus-visible{outline:2px solid var(--spark);outline-offset:2px}

/* ---------- flashes / notices ---------- */
.flash{margin:0 0 16px;padding:12px 16px;border-radius:var(--radius-sm);border:1px solid var(--rule);background:var(--panel);border-left-width:4px}
.flash.ok{border-left-color:var(--ok)}.flash.error{border-left-color:var(--bad)}.flash.info{border-left-color:var(--spark)}
.notice{border:1px solid var(--rule);border-left:4px solid var(--gold);background:var(--panel);border-radius:var(--radius-sm);padding:12px 16px;margin:14px 0}

/* ---------- THE server pass: a perforated ticket stub ---------- */
.pass{
  --notch:14px;
  position:relative;display:grid;grid-template-columns:1.1fr 1.3fr 1fr;
  background:linear-gradient(135deg,#1a2be0 0%,#2433e8 45%,#1b25b8 100%);
  border-radius:18px;color:#fff;margin-top:18px;
  -webkit-mask:radial-gradient(circle var(--notch) at 0 50%,#0000 98%,#000) left/51% 100% no-repeat,
               radial-gradient(circle var(--notch) at 100% 50%,#0000 98%,#000) right/51% 100% no-repeat;
          mask:radial-gradient(circle var(--notch) at 0 50%,#0000 98%,#000) left/51% 100% no-repeat,
               radial-gradient(circle var(--notch) at 100% 50%,#0000 98%,#000) right/51% 100% no-repeat;
}
.pass>div{padding:22px 26px 20px;min-width:0}
.pass>div+div{background-image:radial-gradient(circle,rgba(255,255,255,.45) 1.4px,transparent 1.6px);background-size:2px 12px;background-repeat:repeat-y;background-position:0 50%}
.pass .lbl{display:block;font-size:13px;color:rgba(255,255,255,.72)}
.pass .val{display:block;font-size:30px;font-weight:800;letter-spacing:-.6px;line-height:1.15;margin:4px 0 6px}
.pass .val small{font-size:15px;font-weight:600;color:rgba(255,255,255,.72);letter-spacing:0}
.pass .meta{font-size:13px;color:rgba(255,255,255,.8)}
.pass a{color:#fff}
.pass .meter{height:6px;border-radius:99px;background:rgba(255,255,255,.18);overflow:hidden;margin:8px 0 6px}
.pass .meter i{display:block;height:100%;background:var(--spark);border-radius:99px}
.pass .meter.hot i{background:var(--gold)}
.pass .spark{position:absolute;right:18px;top:12px;width:18px;height:18px;opacity:.95}
@media(max-width:760px){.pass{grid-template-columns:1fr;-webkit-mask:none;mask:none}.pass>div+div{background-image:linear-gradient(90deg,rgba(255,255,255,.35) 50%,transparent 0);background-size:12px 1.5px;background-repeat:repeat-x;background-position:0 0}}

.planname{display:inline-flex;align-items:center;gap:8px}
.planname i{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--free)}
.planname.starter i{background:var(--starter)}.planname.pro i{background:var(--pro)}.planname.business i{background:var(--biz)}.planname.white i{background:var(--white)}

/* ---------- analytics ---------- */
.anl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
@media(max-width:980px){.anl{grid-template-columns:minmax(0,1fr)}}
.anl .card{padding:18px 18px 12px}
.anl h3{font-size:15px;font-weight:650;color:var(--ink-2);margin:0}
.anl .headline{font-size:24px;font-weight:800;letter-spacing:-.4px;margin:2px 0 8px;color:var(--ink)}
.anl .headline small{font-size:14px;color:var(--muted);font-weight:500;letter-spacing:0}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--ink-2);margin:0 0 6px}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.chartbox{position:relative}
svg.chart{display:block;width:100%;height:auto;overflow:visible}
svg.chart .grid{stroke:var(--rule);stroke-width:1}
svg.chart .base{stroke:var(--rule-2);stroke-width:1}
svg.chart .ax{fill:var(--muted);font-size:11px}
svg.chart .hit{fill:transparent}
svg.chart .col:hover .hit,svg.chart .col:focus .hit{fill:rgba(255,255,255,.05)}
svg.chart .col:focus{outline:none}
.tip{position:absolute;pointer-events:none;background:#050720;border:1px solid var(--rule-2);color:var(--ink);font-size:12px;line-height:1.45;padding:7px 10px;border-radius:8px;white-space:pre;z-index:5;transform:translate(-50%,-110%)}
.tip b{display:block;font-weight:700}
details.tbl{margin-top:6px}
details.tbl summary{cursor:pointer;color:var(--muted);font-size:13px;padding:4px 0}
.datatable{width:100%;border-collapse:collapse;font-size:13px}
.datatable th,.datatable td{padding:5px 8px;border-bottom:1px solid var(--rule);text-align:right}
.datatable th:first-child{text-align:left;font-weight:500;color:var(--ink-2)}
.datatable thead th{color:var(--muted);font-weight:600}
.dash details.tbl .tablewrap{max-height:260px;overflow:auto;border:0;background:none}
.stat-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
@media(max-width:640px){.stat-pair{grid-template-columns:minmax(0,1fr)}}
.stat{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.stat b{font-size:26px;font-weight:800;letter-spacing:-.5px}
.locked{position:relative;overflow:hidden}
.locked .ghostchart{filter:blur(3px) saturate(.6);opacity:.45;pointer-events:none;user-select:none}
.locked .over{position:absolute;inset:0;display:grid;place-content:center;text-align:center;padding:20px;gap:10px;background:linear-gradient(180deg,rgba(13,18,56,.3),rgba(13,18,56,.9))}

/* ---------- gaps list ---------- */
.gaps{list-style:none;margin:0;padding:0}
.gaps li{display:flex;gap:14px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--rule)}
.gaps li:last-child{border-bottom:0}
.gaps .q{flex:1;min-width:0}
.gaps .n{color:var(--muted);font-size:13px;white-space:nowrap}

/* ---------- server list ---------- */
.srvlist{display:grid;gap:8px;margin-top:16px}
.srv{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);padding:12px 16px}
.srv img{border-radius:12px;flex:none}
.srv small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.srv form{margin:0}
.srv.off{background:transparent;border-style:dashed}

/* ---------- forms ---------- */
.sform{display:grid;gap:14px;margin-top:16px}
fieldset.card{margin:0;padding:6px 20px}
fieldset legend{padding:0 6px;font-weight:750;color:var(--ink);font-size:15px;margin-left:-6px;transform:translateY(12px)}
fieldset .fs-note{color:var(--muted);font-size:13px;margin:14px 0 0}
.row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:8px 24px;padding:14px 0;border-bottom:1px solid var(--rule);align-items:start}
.row:last-child{border-bottom:0}
.row.full{grid-template-columns:minmax(0,1fr)}
@media(max-width:700px){.row{grid-template-columns:minmax(0,1fr)}}
.row b{font-weight:650}
.row small{display:block;color:var(--muted);font-weight:400;font-size:13px;margin-top:2px}
.fld input,.fld textarea,.fld select,.dash select,.dash input[type=text],.dash input[type=search],.dash textarea{width:100%;background:#080c2b;border:1px solid var(--rule-2);border-radius:var(--radius-sm);color:var(--ink);padding:10px 12px;font:inherit}
.fld select{appearance:auto}
.fld textarea{resize:vertical;min-height:110px;line-height:1.5}
.fld input:disabled,.fld textarea:disabled,.fld select:disabled,.sw input:disabled{opacity:.45;cursor:not-allowed}
.err{color:#ff9a9c;font-size:13px;margin-top:4px}
.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.inline-form input,.inline-form select{padding:8px 10px;width:auto}
.chk{display:flex;gap:10px;align-items:center;padding:6px 0}

/* switch rows */
.sw{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;cursor:pointer}
.sw input{appearance:none;-webkit-appearance:none;width:44px;height:26px;border-radius:99px;background:var(--rule-2);position:relative;margin:0;cursor:pointer;transition:background .15s;order:2}
.sw input::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s}
.sw input:checked{background:var(--signal)}
.sw input:checked::after{transform:translateX(18px)}
.sw>span{order:1}
.lockpill{display:inline-block;margin-left:8px;font-size:12px;font-weight:700;padding:1px 9px;border-radius:99px;border:1px solid currentColor;text-decoration:none;vertical-align:1px}
.lockpill.starter{color:var(--starter)}.lockpill.pro{color:var(--pro)}.lockpill.business{color:var(--biz)}.lockpill.white{color:var(--white)}

/* role chips */
.chips2{display:flex;flex-wrap:wrap;gap:8px}
.chip2{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--rule-2);border-radius:99px;padding:5px 12px 5px 9px;cursor:pointer;font-size:14px;user-select:none}
.chip2 input{position:absolute;opacity:0;width:1px;height:1px}
.chip2 i{width:10px;height:10px;border-radius:50%;background:var(--muted);flex:none}
.chip2:has(input:checked){background:rgba(61,90,254,.22);border-color:var(--signal)}
.chip2:has(input:focus-visible){outline:2px solid var(--spark);outline-offset:2px}

.sticky{position:sticky;bottom:0;padding:14px 0;background:linear-gradient(0deg,var(--night) 65%,transparent);display:flex;gap:10px;align-items:center;z-index:3}

/* ---------- knowledgebase ---------- */
.kbtools{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.kbtools input{flex:1;min-width:200px}
.kbtools select{width:auto;min-width:160px}
.art{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--rule)}
.art:last-child{border-bottom:0}
.art .t{font-weight:650}
.art small{display:block;color:var(--muted);font-size:13px}
.artlist{background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);margin-top:12px;overflow:hidden}
.artlist form{margin:0}
.usage-line{display:flex;align-items:center;gap:12px;margin-top:6px;color:var(--muted);font-size:14px}
.usage-line .meter{flex:0 0 160px;height:6px;border-radius:99px;background:var(--rule);overflow:hidden}
.usage-line .meter i{display:block;height:100%;background:var(--spark)}
.counter{color:var(--muted);font-size:13px;text-align:right;margin-top:4px}

/* ---------- billing ---------- */
.dash .plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-top:12px}
.dash .plan{background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:8px}
.dash .plan h3{margin:0;font-size:17px}
.dash .plan .price{font-size:24px;font-weight:800}
.dash .plan .price small{font-size:14px;color:var(--muted);font-weight:500}
.dash .plan .d{color:var(--muted);font-size:14px;margin:0;min-height:0}
.dash .plan ul{list-style:none;padding:0;margin:4px 0 8px;font-size:14px;display:grid;gap:4px;flex:1}
.dash .plan ul li{display:flex;justify-content:space-between;gap:8px;color:var(--ink-2)}
.dash .plan.current{border-color:var(--signal);box-shadow:inset 0 0 0 1px var(--signal)}
.dash .plan.want{outline:2px solid var(--spark);outline-offset:2px}
.dash .plan form{margin:0}
.dash .plan .btn{width:100%}
.trialbox{display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap}

/* ---------- tables (staff + activity) ---------- */
.tablewrap{overflow:auto;border:1px solid var(--rule);border-radius:var(--radius);background:var(--panel)}
.tablewrap table{width:100%;border-collapse:collapse}
.tablewrap td,.tablewrap th{padding:10px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--rule)}
.tablewrap tr:last-child td{border-bottom:0}
.tablewrap thead th{color:var(--muted);font-weight:600;font-size:13px}

/* ---------- Advent Calendar ---------- */
.adv-head{display:flex;gap:18px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap}
.doors{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;margin-top:20px}
.door{--notch:8px;position:relative;aspect-ratio:1/1.08;border-radius:12px;padding:12px;display:flex;flex-direction:column;justify-content:space-between;
  background:var(--panel);border:1px solid var(--rule);color:var(--muted);
  -webkit-mask:radial-gradient(circle var(--notch) at 50% 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle var(--notch) at 50% 100%,#0000 98%,#000) bottom/100% 51% no-repeat;
          mask:radial-gradient(circle var(--notch) at 50% 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle var(--notch) at 50% 100%,#0000 98%,#000) bottom/100% 51% no-repeat}
.door .num{font-size:30px;font-weight:800;letter-spacing:-1px;line-height:1;color:var(--ink-2)}
.door .what{font-size:13px;line-height:1.3}
.door.future{opacity:.42}
.door.missed .what{color:var(--muted)}
.door.won{background:#0f1a4a;border-color:#2c3c8f}
.door.won .what{color:var(--ink)}
.door.cash{background:linear-gradient(160deg,#3a2a00,#1d1500);border-color:var(--gold)}
.door.cash .what,.door.cash .num{color:var(--gold)}
.door.today{background:linear-gradient(150deg,#2433e8,#1a25b5);border-color:#5d78ff;color:#fff}
.door.today .num{color:#fff}
.door.today .what{color:rgba(255,255,255,.85)}
.door.today.open-me{box-shadow:0 0 0 0 rgba(77,227,255,.55);animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(77,227,255,.5)}70%{box-shadow:0 0 0 12px rgba(77,227,255,0)}100%{box-shadow:0 0 0 0 rgba(77,227,255,0)}}
@media(prefers-reduced-motion:reduce){.door.today.open-me{animation:none}}
.claimbox{margin-top:18px}
.claimbox .row{grid-template-columns:minmax(0,1fr) auto}
.prize{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.prize .bigprize{font-size:30px;font-weight:800;letter-spacing:-.6px}
.prize.cash .bigprize{color:var(--gold)}
.codebox{font-size:20px;font-weight:800;letter-spacing:1px;background:#050720;border:1px dashed var(--gold);color:var(--gold);border-radius:10px;padding:8px 14px;display:inline-block}
.adv-banner{display:flex;align-items:center;gap:16px;justify-content:space-between;flex-wrap:wrap;margin:16px 0 0;padding:14px 18px;border-radius:var(--radius);background:linear-gradient(120deg,#2433e8,#1a25b5);color:#fff}
.adv-banner p{margin:0}

/* ---------- staff ---------- */
.staffbar{background:#2a1760;color:#e9d5ff;text-align:center;font-size:13px;padding:6px 10px}
.rolepill{font-size:12px;font-weight:800;padding:3px 10px;border-radius:99px;border:1px solid var(--rule)}
.role-support{color:var(--starter);border-color:var(--starter)}.role-developer{color:var(--white);border-color:var(--white)}
.role-management{color:var(--pro);border-color:var(--pro)}.role-owner{color:var(--biz);border-color:var(--biz)}
.lock{display:inline-flex;gap:6px;align-items:center;font-size:12px;font-weight:700;color:var(--biz);border:1px solid var(--biz);border-radius:99px;padding:2px 10px;text-decoration:none}
.lock.open{color:var(--ok);border-color:var(--ok)}
.kv{display:grid;grid-template-columns:170px 1fr;gap:6px 16px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;word-break:break-word}
.msg{padding:8px 0;border-bottom:1px solid var(--rule)}.msg small{color:var(--muted)}.msg p{margin:4px 0 0;white-space:pre-wrap;word-break:break-word}
.t-ai{color:var(--spark)}.t-staff{color:var(--pro)}.t-bot{color:var(--muted)}

/* ---------- overrides for public-site rules that leak into the dashboard ---------- */
.dash details.tbl{background:none;border:0;border-radius:0;padding:0}
.dash details.tbl summary{display:inline-flex;font-weight:500;padding:4px 0;gap:6px;justify-content:flex-start}
.dash details.tbl summary:after{content:"Show";font-size:13px;color:var(--spark);display:none}
.dash details.tbl summary::before{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);display:inline-block;align-self:center;transition:transform .15s}
.dash details.tbl[open] summary::before{transform:rotate(45deg)}
.dash .card p.stat{color:var(--ink)}
.dash .card h3{margin:0 0 6px}
.curplan{font-size:26px;font-weight:800;letter-spacing:-.4px;margin:2px 0 6px}
.curplan .muted{font-weight:500;letter-spacing:0}

/* ---------- Daily Reward wheel ---------- */
.wheel-wrap{display:grid;grid-template-columns:minmax(260px,380px) minmax(0,1fr);gap:28px;align-items:center;margin-top:20px}
@media(max-width:820px){.wheel-wrap{grid-template-columns:minmax(0,1fr);justify-items:center}.wheel-side{width:100%}}
.wheel{position:relative;width:100%;max-width:380px;aspect-ratio:1}
.wheel-rot{width:100%;height:100%;transition:transform 5.2s cubic-bezier(.12,.67,.12,1)}
.wheel-svg{width:100%;height:100%;display:block;filter:drop-shadow(0 10px 30px rgba(36,51,232,.35))}
.wheel-svg .seg-blank.a{fill:#141c52}.wheel-svg .seg-blank.b{fill:#1b2466}
.wheel-svg .seg-blank,.wheel-svg .seg-win{stroke:#070a24;stroke-width:1.5}
.wheel-svg .seg-win{fill:var(--gold)}
.wheel-svg.allwin .seg-win.a{fill:#ffd166}.wheel-svg.allwin .seg-win.b{fill:#f4b942}
.wheel-svg .lbl-blank{fill:#7f89c2;font-size:13px;font-weight:600}
.wheel-svg .lbl-win{fill:#2a1c00;font-size:14px;font-weight:800}
.wheel-svg .lbl-win.narrow{font-size:10px}
.wheel-svg .hub{fill:#2433e8;stroke:#4de3ff;stroke-width:3}
.wheel-svg .hubstar{fill:#4de3ff}
.pointer{position:absolute;left:50%;top:-6px;transform:translateX(-50%);width:0;height:0;border-left:14px solid transparent;border-right:14px solid transparent;border-top:24px solid var(--spark);z-index:2;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}
.spinform{display:grid;gap:10px}
.result .bigprize{font-size:28px;font-weight:800;letter-spacing:-.5px;margin:2px 0 8px}
.result.win{border-color:var(--gold);background:linear-gradient(160deg,#2a2000,#141006)}
.result.win .bigprize{color:var(--gold)}
.wheel-wrap[data-spinning] .result{visibility:hidden}
@media(prefers-reduced-motion:reduce){.wheel-rot{transition:none}}
.dash header .btn{white-space:nowrap}

/* ---------- vote spins ---------- */
.vote-wrap{align-items:start}
.vote-wrap .wheel-rot[hidden]{display:none}
.votesites h3{margin:0 0 8px}
.vsite{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--rule)}
.vsite:last-of-type{border-bottom:0}
.vsite small{display:block;font-size:13px}
.vsite small.ready{color:var(--ok)}
.votepage{--night:transparent;background:none}
.votepage .wheel{max-width:340px;margin:0 auto}

/* ---------- built-in tickets ---------- */
.qrows{display:grid;gap:8px}
.qrow{display:grid;grid-template-columns:24px minmax(0,2fr) minmax(0,1.4fr) 150px auto;gap:8px;align-items:center}
.qrow .qn{color:var(--muted);font-size:13px;text-align:right}
.qrow .chk{white-space:nowrap;font-size:14px;padding:0}
@media(max-width:760px){.qrow{grid-template-columns:24px minmax(0,1fr)}.qrow>*:not(.qn){grid-column:2}}
.dash input[type=number]{width:100%;background:#080c2b;border:1px solid var(--rule-2);border-radius:var(--radius-sm);color:var(--ink);padding:10px 12px;font:inherit}
/* Ticket categories */
.tgroup{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 -4px}
.tpreview{display:grid;gap:8px;max-width:520px}
.tpreview details{border:1px solid var(--rule);border-radius:var(--radius-sm);padding:8px 12px;background:var(--panel-2)}
.tpreview summary{cursor:pointer;color:var(--muted)}
.tpreview ul{margin:8px 0 0;padding-left:18px}
@media (max-width:420px){.dash header .inline .btn{padding-left:9px;padding-right:9px}.dash header .menu{padding-left:10px;padding-right:10px}}
/* Cancel subscription */
.btn.danger{background:transparent;border-color:var(--bad);color:var(--bad)}
.btn.danger:hover{background:var(--bad);color:#fff}
.cancelbox{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-top:14px;flex-wrap:wrap}
.cancelbox>div{flex:1 1 320px}.cancelbox p{margin:4px 0 0}.cancelbox form{margin:0}
/* Knowledgebase import, drafts, gaps */
.importbox{margin-top:16px}.importbox summary{cursor:pointer;list-style:none;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.importbox summary::-webkit-details-marker{display:none}.importbox summary::before{content:"▸";color:var(--muted)}.importbox[open] summary::before{content:"▾"}
.importform{display:grid;gap:10px;margin-top:10px}.imrow{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.imrow input[type=url]{flex:1 1 280px}
.imor{text-align:left}.importform .btn{justify-self:start}
.jobs{list-style:none;margin:14px 0 0;padding:0;border-top:1px solid var(--rule)}
.job{display:flex;gap:12px;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--rule);flex-wrap:wrap}
.job .src{flex:1 1 220px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job .st{flex:1 1 220px}
.job.failed .st{color:var(--bad)}
.gaps li{flex-wrap:wrap}.gapact{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.gapact form{margin:0}
.gapact .lockpill{margin-left:4px}
/* AI channels */
.chgroup{margin:10px 0 14px}.chgroup>span{display:block;margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em;font-size:12px}
.upsell{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:14px}.upsell>div{flex:1 1 300px}.upsell p{margin:4px 0 0}
.howto ul{margin:8px 0 0;padding-left:18px}.howto li{margin:3px 0}
fieldset[disabled]{opacity:.55}
.importbox summary{justify-content:flex-start;padding:2px 0;font-weight:400}.importbox summary b{font-weight:700}
.importbox summary:after,.tpreview summary:after{content:none}
.dash input[type=url]{background:#080c2b;border:1px solid var(--rule-2);border-radius:var(--radius-sm);color:var(--ink);padding:10px 12px;font:inherit}
.dash input[type=file]{color:var(--muted);font:inherit;font-size:14px;max-width:100%}
.dash input[type=file]::file-selector-button{background:transparent;border:1px solid var(--rule-2);border-radius:var(--radius-sm);color:var(--ink);padding:7px 12px;margin-right:10px;font:inherit;cursor:pointer}
.imrow .chk{font-size:14px}
.importbox[open] summary:after,.tpreview details[open] summary:after{content:none}
.dash .billtoggle{border-color:var(--rule-2);background:var(--panel);margin:0 0 6px}
.dash .billtoggle a{color:var(--muted)}.dash .billtoggle a[aria-current]{background:var(--signal);color:var(--signal-ink)}
.dash .billtoggle .save{color:var(--ok)}.dash .billtoggle a[aria-current] .save{color:var(--signal-ink);opacity:.85}
/* Referrals + top-ups */
.refbox label{display:block;margin-bottom:6px}.refrow{display:flex;gap:8px}.refrow input{flex:1;min-width:0}
.refclaim{margin-top:14px;padding-top:14px;border-top:1px solid var(--rule);display:grid;gap:10px}
.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.inline-form select{width:auto;min-width:200px}
.topups{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:10px}
.topup{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0}.topup>div{display:grid;gap:2px}.topup form{margin:0}
/* Transcripts + team stats */
.transcript .tag{font-size:11px;border:1px solid var(--rule-2);border-radius:99px;padding:1px 7px;color:var(--muted);margin-left:2px}
.transcript .tag{background:transparent}.transcript .tag-staff{border-color:var(--ok);color:var(--ok)}.transcript .tag-ai{border-color:var(--series-1,#4de3ff);color:var(--series-1,#4de3ff)}
.transcript mark{background:var(--gold);color:#1a1200;border-radius:3px;padding:0 2px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:14px}
.stat{background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);padding:14px 16px;display:grid;gap:4px}
.stat .k{color:var(--muted);font-size:13px}.stat .v{font-size:26px;font-weight:700}
.dist{display:grid;gap:8px}.drow{display:grid;grid-template-columns:50px 1fr 40px;gap:10px;align-items:center}
.drow .bar{height:10px;background:var(--rule);border-radius:99px;overflow:hidden}.drow .bar i{display:block;height:100%;background:var(--gold);border-radius:99px}
.hours .hrow{display:grid;grid-template-columns:130px 90px 1fr;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--rule)}
.hours .hrow:last-child{border-bottom:0}.hours .hrow input[type=time]{background:#080c2b;border:1px solid var(--rule-2);border-radius:var(--radius-sm);color:var(--ink);padding:7px 9px;font:inherit;color-scheme:dark}
.hours .times{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dash input[type=email]{width:100%;background:#080c2b;border:1px solid var(--rule-2);border-radius:var(--radius-sm);color:var(--ink);padding:10px 12px;font:inherit}
.dash .fld input[type=url]{width:100%}
@media (max-width:560px){.hours .hrow{grid-template-columns:1fr 1fr}.hours .times{grid-column:1/-1}}
/* Data & privacy */
.card.danger{border-color:color-mix(in srgb,var(--bad) 45%,var(--rule));display:grid;gap:4px}
.drow2{display:flex;gap:16px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--rule)}
.drow2:last-child{border-bottom:0}.drow2>div{flex:1 1 320px}.drow2 p{margin:4px 0 10px}.drow2 form{margin:0}
.drow2 .inline-form input[type=text]{flex:1 1 220px;width:auto}

/* Setup guide + getting-started checklist */
.wsteps{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:18px 0 14px;counter-reset:none}
.wsteps li a{display:flex;align-items:center;gap:8px;padding:7px 12px 7px 8px;border:1px solid var(--rule);border-radius:99px;color:var(--muted);text-decoration:none;font-size:14px}
.wsteps .wn{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--rule-2);font-size:12px;font-weight:650}
.wsteps li.past a{color:var(--ink-2)}.wsteps li.past .wn{background:rgba(61,220,151,.18);border-color:var(--ok);color:var(--ok)}
.wsteps li.cur a{color:var(--ink);border-color:var(--signal);background:rgba(61,90,254,.18)}.wsteps li.cur .wn{background:var(--signal);border-color:var(--signal);color:#fff}
.wcard h2{margin:0 0 6px;font-size:22px}.wcard h3{margin:0 0 6px;font-size:16px}
.wcount{margin:0 0 4px;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.06em}
.wcard form.fld{display:grid;gap:10px;margin-top:12px}
.wnav{display:flex;justify-content:space-between;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid var(--rule)}
.wchoices{display:grid;gap:10px;margin-top:12px}
.wchoice{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--rule-2);border-radius:var(--radius-sm);cursor:pointer}
.wchoice input{margin-top:4px;accent-color:var(--signal)}
.wchoice small{display:block;color:var(--muted);font-size:14px;margin-top:2px}
.wchoice:has(input:checked){border-color:var(--signal);background:rgba(61,90,254,.12)}
.wtwo{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:12px}
.wtwo .sub form.fld{margin-top:8px}
.wtwo .sub{border:1px solid var(--rule);border-radius:var(--radius-sm);padding:14px 16px}
.wkb{margin:10px 0 0}.wok{color:var(--ok);margin:10px 0 0}
.winline{grid-template-columns:minmax(0,1fr) auto;align-items:center}
fieldset.bare{border:0;padding:0;margin:0;min-width:0}
.wlist{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:2px}
.wlist li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--rule)}
.wlist li:last-child{border-bottom:0}
.wlist small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.wtick{flex:none;display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:2px solid var(--rule-2);font-size:13px;font-weight:700;margin-top:1px}
.wlist li.wdone .wtick{background:var(--ok);border-color:var(--ok);color:#06210f}
.wlist li.wdone b{color:var(--ink-2);text-decoration:line-through;text-decoration-color:var(--muted)}
.getstarted{margin-top:16px;border-color:var(--signal)}
.gshead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.gshead h2{margin:0;font-size:19px}.gshead p{margin:2px 0 8px}
@media (max-width:560px){.winline{grid-template-columns:1fr}.wsteps li a{font-size:13px}}
.wcard .row:has(+ .wnav){border-bottom:0}
