/* ============================================================
   工作頁淺色版（2026-10-19 使用者定案）：報名／簽到／隊長管理／報名隊伍
   這幾頁是「填表格、看名單」的工作頁，和首頁活動視覺分開：白卡片、深字、藍主色。
   載入順序在 esports.css／broadcast.css／tactical.css 之後，用同樣的選擇器覆蓋。
   站台 header（.site-hd）與 modal 標題列仍是深色，當作活動識別條。
   ============================================================ */
.rg,.sg,.mg,.tm{
  --wp-bg:#f3f4f6; --wp-card:#fff; --wp-line:#e5e7eb; --wp-line2:#f1f3f5;
  --wp-text:#1f2937; --wp-dim:#6b7280; --wp-faint:#9ca3af;
  --wp-brand:#2563eb; --wp-brand-d:#1d4ed8; --wp-brand-bg:#eff6ff; --wp-brand-fg:#1e40af;
  --wp-ok:#16a34a; --wp-ok-bg:#dcfce7; --wp-ok-fg:#166534;
  --wp-warn-bg:#fef3c7; --wp-warn-fg:#92400e;
  --wp-bad:#dc2626; --wp-bad-bg:#fee2e2; --wp-bad-fg:#991b1b;
  background:var(--wp-bg) !important; background-image:none !important; color:var(--wp-text);
  font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif;
}
.rg .ey,.sg .ey,.mg .ey,.tm .ey{ color:var(--wp-brand); }
.rg .h1,.sg .h1,.mg .h1,.tm .h1{ font-family:inherit; color:var(--wp-text); letter-spacing:1px; font-weight:700; }
.rg .lead,.sg .lead,.tm .venue,.tm .cap{ color:var(--wp-dim); }

/* stepper */
.rg .stp .num,.sg .stp .num{ border-color:#d1d5db; color:var(--wp-faint); font-family:inherit; background:#fff; }
.rg .stp .tx,.sg .stp .tx{ color:var(--wp-dim); }
.sg .stp.done .num,.rg .stp.done .num{ border-color:var(--wp-brand); color:var(--wp-brand); }
.rg .stp.on .num,.sg .stp.on .num{ background:var(--wp-brand); border-color:var(--wp-brand); color:#fff; }
.rg .stp.on .tx,.sg .stp.on .tx{ color:var(--wp-text); }
.rg .stp .bar,.sg .stp .bar,.rg .bar,.sg .bar{ background:#d1d5db; }

/* card / fields */
.rg .card,.sg .card,.mg .card{ background:var(--wp-card); border:1px solid var(--wp-line); border-radius:10px; box-shadow:0 1px 2px rgba(16,24,40,.04); }
.rg .fl label,.sg .fl label,.mg .fl label{ color:var(--wp-text); font-weight:500; letter-spacing:0; }
.rg .fl label em,.sg .fl label em,.mg .fl label em{ color:var(--wp-faint); }
.rg .inp,.sg .inp,.mg .inp{ background:#fff; border:1px solid #d1d5db; border-radius:8px; color:var(--wp-text); height:46px; }
.rg .inp:focus,.sg .inp:focus,.mg .inp:focus{ border-color:var(--wp-brand); box-shadow:0 0 0 3px rgba(37,99,235,.14); }
.rg .inp::placeholder,.sg .inp::placeholder,.mg .inp::placeholder{ color:var(--wp-faint); }
.rg select.inp,.sg select.inp,.mg select.inp{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'><path d='M2 5l5 5 5-5' stroke='%236b7280' stroke-width='1.6' fill='none'/></svg>"); }
.rg .inp.fixed,.sg .inp.fixed,.mg .inp.fixed{ background:var(--wp-bg); border-color:var(--wp-line); color:#374151; }
.mg .inp.val{ color:var(--wp-text); }
.rg .ph,.sg .ph,.mg .ph{ color:var(--wp-faint); }

/* 名單列 */
.rg .rlab .t,.mg .rlab .t{ font-family:inherit; color:var(--wp-text); font-size:16px; }
.rg .rlab .h,.mg .rlab .h{ color:var(--wp-dim); }
.rg .mrow .tag,.mg .mrow .tag{ color:var(--wp-dim); }
.rg .mrow .tag.sub,.mg .mrow .tag.sub{ color:var(--wp-faint); }
.mg .rm{ border:1px solid var(--wp-line); border-radius:8px; background:#fff; color:var(--wp-bad); }
.mg .rm:hover{ background:var(--wp-bad-bg); border-color:#fecaca; }
.mg .rm svg path{ stroke:var(--wp-bad); }

/* 按鈕 */
.rg .btn-g,.sg .btn-g,.mg .btn-g{ font-family:inherit; background:var(--wp-brand); color:#fff; border-radius:8px; letter-spacing:2px; padding:13px 32px; font-size:16px; }
.sg .btn-g,.mg .btn-g{ letter-spacing:2px; padding:13px 36px; }
.rg .btn-g:hover,.sg .btn-g:hover,.mg .btn-g:hover{ background:var(--wp-brand-d); filter:none; }
.rg .btn-o,.mg .btn-o,.sg .btn-o{ font-family:inherit; color:var(--wp-dim); letter-spacing:1px; text-transform:none; font-size:15px; }
.rg .btn-o:hover,.mg .btn-o:hover{ color:var(--wp-text); }
.sg .otp .send{ border:1px solid var(--wp-brand); color:var(--wp-brand); border-radius:8px; font-family:inherit; letter-spacing:1px; height:46px; background:#fff; }
.sg .otp .send:hover{ background:var(--wp-brand-bg); color:var(--wp-brand-fg); }

/* note / warn / alert */
.rg .note,.sg .note{ color:var(--wp-dim); border-left:2px solid var(--wp-line); }
.rg .note b,.sg .note b{ color:var(--wp-text); }
.sg .note a,.rg .note a{ color:var(--wp-brand); }
.mg .warn{ background:var(--wp-warn-bg); border:1px solid #fde68a; border-radius:8px; }
.mg .warn .t{ color:var(--wp-warn-fg); }
.mg .warn .t b{ color:var(--wp-warn-fg); }
.mg .warn svg path{ stroke:var(--wp-warn-fg); }
.es-alert{ border-radius:8px; }
.es-alert.err{ background:var(--wp-bad-bg); border:1px solid #fecaca; color:var(--wp-bad-fg); }
.es-alert.ok{ background:var(--wp-ok-bg); border:1px solid #bbf7d0; color:var(--wp-ok-fg); }

/* 側欄 */
.rg .side .st,.mg .side .st{ color:var(--wp-brand); font-family:inherit; letter-spacing:2px; }
.rg .side h3,.mg .side h3,.sg .side .st .team{ font-family:inherit; color:var(--wp-text); }
.rg .side li{ color:var(--wp-text); border-bottom:1px solid var(--wp-line2); }
.rg .side li::before{ color:var(--wp-brand); }
.rg .side .when{ color:var(--wp-dim); } .rg .side .when b{ color:var(--wp-text); }
.sg .side .venue{ color:var(--wp-dim); }
.sg .edit{ color:var(--wp-dim); } .sg .edit b{ color:var(--wp-text); }
.sg .reset{ color:var(--wp-bad-fg); border-left:2px solid #fecaca; } .sg .reset b{ color:var(--wp-bad-fg); }
.sg .ctx-chip{ color:var(--wp-text); border:1px solid var(--wp-line); background:#fff; border-radius:8px; }
.sg .ctx-chip b{ color:var(--wp-brand); }
.mg .side .kv{ border-bottom:1px solid var(--wp-line2); }
.mg .side .kv .k{ color:var(--wp-dim); } .mg .side .kv .v{ color:var(--wp-text); }
.mg .side .kv .v.g{ color:var(--wp-ok); }
.mg .side .memo{ color:var(--wp-dim); } .mg .side .memo b{ color:var(--wp-text); }

/* 標籤 */
.bdg{ font-weight:500; border:0; }
.bdg.ok{ background:var(--wp-ok-bg); color:var(--wp-ok-fg); }
.bdg.no{ background:#e5e7eb; color:#6b7280; }
.bdg.me{ background:var(--wp-brand-bg); color:var(--wp-brand-fg); }

/* 報名隊伍列表 */
.tm .wrap > table,.tm table{ background:#fff; border:1px solid var(--wp-line); border-radius:10px; overflow:hidden; border-collapse:separate; border-spacing:0; }
.tm th{ background:#fafafa; color:var(--wp-dim); font-family:inherit; letter-spacing:0; text-transform:none; font-size:13px; padding:12px 14px; border-bottom:1px solid var(--wp-line); }
.tm td{ color:var(--wp-text); border-bottom:1px solid var(--wp-line2); padding:13px 14px; font-size:15px; }
.tm tr:last-child td{ border-bottom:0; }
.tm td.team{ font-family:inherit; color:var(--wp-text); font-weight:700; }
.tm td.n,.tm .ts{ color:var(--wp-dim); }
.tm .status{ border:0; font-weight:500; }
.tm .status.ok{ background:var(--wp-ok); color:#fff; }
.tm .status.wait{ background:#e5e7eb; color:#4b5563; }
.tm .tm-note{ color:var(--wp-dim); } .tm .tm-note b{ color:var(--wp-text); }
.tm .seat.in{ background:var(--wp-ok-bg); color:var(--wp-ok-fg); }
.tm .seat.wait{ background:var(--wp-warn-bg); color:var(--wp-warn-fg); }
.tm .empty{ color:var(--wp-faint); }
.tm .back a,.tm .back{ color:var(--wp-brand); }
.tm h2,.tm .h2{ color:var(--wp-text); font-family:inherit; }

/* 整頁底：工作頁所在的 body 也轉淺色（錯誤提示列在 header 與內容之間，不能卡在深色帶上） */
body:has(.rg),body:has(.sg),body:has(.mg),body:has(.tm){ background:var(--wp-bg, #f3f4f6); }
body .es-alert{ border-radius:8px; }
body .es-alert.err{ background:#fee2e2 !important; border:1px solid #fecaca !important; color:#991b1b !important; }
body .es-alert.ok{ background:#dcfce7 !important; border:1px solid #bbf7d0 !important; color:#166534 !important; }

/* 內嵌 modal：內容區也淺色 */
.es-embed{ background:var(--wp-bg); }
.es-embed .rg,.es-embed .sg,.es-embed .mg,.es-embed .tm{ background:var(--wp-bg) !important; }

/* 隊長管理在首頁 modal 內（?embed=1；2026-10-21 使用者：modal 裡編輯區太小）：
   比照報名／簽到——大標由 modal 標題列取代、卡片與間距縮緊。站台頁首在 modal 裡不顯示，
   登出改放內容最上面（照舊平台 TeamManage：登出鈕在頁內第一顆）。 */
.es-embed .mg .ey, .es-embed .mg .h1{ display:none; }
.es-embed .mg .wrap{ padding:12px 0 22px; }
.es-embed .mg .mg-who{ display:flex; justify-content:flex-end; align-items:center; gap:6px; font-size:13.5px; color:var(--wp-dim); margin:0 0 10px; }
.es-embed .mg .mg-who b{ color:var(--wp-text); }
.es-embed .mg .mg-who a{ color:var(--wp-brand); }
.es-embed .mg .warn{ margin:0 0 16px; padding:10px 14px; }
.es-embed .mg .warn .t{ font-size:13.5px; line-height:1.6; }
.es-embed .mg .grid{ gap:22px; }
.es-embed .mg .card{ padding:20px 24px; }
.es-embed .mg .fl{ margin-bottom:13px; }
.es-embed .mg .inp{ height:42px; font-size:15px; }
.es-embed .mg .cta{ margin-top:16px; }
.es-embed .mg .btn-g{ padding:12px 34px; }
