/* ============================================================
   RimAttack 戰術編輯器共用樣式（tactics.css）
   第十棒 B.6:從 site.css 搬出 tac-*/rt-* 樣式(RimTactics.mountEditor + RimTeams 存檔槽
   選擇器 modal 共用),讓 web/tactics.js 成為 web 與 lab 的唯一戰術編輯器來源——lab
   (dist-lab)沒有 site.css,靠本檔自帶 :root 變數 fallback(見下方 .tac-editor/.rt-modal
   範疇宣告)獨立可用;web 兩檔並存時,以下 fallback 值與 site.css 的 :root 逐值相同,
   不改變 web 既有視覺(fallback 只在 site.css 未定義該變數時才實際生效)。
   ============================================================ */

/* 範疇內 CSS 變數 fallback(值與 web/site.css :root 完全相同,見該檔頂部)。
   聲明在 .tac-editor/.rt-modal 這兩個「戰術編輯器所有標記的共同外層容器」上,
   而非全域 :root——避免萬一本檔在 web 頁面內於 site.css **之後**載入時,
   意外覆寫全站設計變數(scoped 到這兩個容器,只在編輯器內部生效,值本身相同故
   web 觀感零變化;lab 沒有 site.css,靠這裡的宣告獨立成立)。 */
.tac-editor,.rt-modal{
  --coal:#0a0c0f;--iron:#14181e;--iron-2:#1a1f27;
  --steel:#2a313b;
  --text:#e9ecf1;--muted:#aab1bb;--muted-2:#7b828d;
  --lava:#ff5a1f;--lava-hot:#ff8a3d;--lava-deep:#a72c0b;
  --lava-glow-soft:rgba(255,90,31,.18);
  --danger:#f85149;
  --panel:rgba(15,18,23,.82);--panel-2:rgba(22,27,34,.9);--line:rgba(255,255,255,.08);
  --font-display:'Oswald','Arial Narrow',system-ui,sans-serif;
  --font-cjk:system-ui,'Microsoft JhengHei','PingFang TC','Noto Sans TC',sans-serif;
}

/* 存檔槽選擇器 modal（RimTeams,build/challenge/league 共用） */
.rt-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;}
.rt-modal[hidden]{display:none;}
.rt-backdrop{position:absolute;inset:0;background:rgba(4,6,9,.72);backdrop-filter:blur(3px);}
.rt-dialog{position:relative;z-index:1;width:min(480px,92vw);max-height:86vh;overflow:auto;background:var(--panel-2);border:1px solid var(--steel);border-radius:16px;padding:1.4rem;box-shadow:0 30px 80px rgba(0,0,0,.7);}
.rt-title{margin:0 0 .3rem;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;font-size:1.15rem;color:#fff;}
.rt-sub{margin:0 0 1rem;font-size:.88rem;}
.rt-slots{display:flex;flex-direction:column;gap:.6rem;}
.rt-slot{display:flex;align-items:center;gap:.7rem;padding:.7rem .8rem;border-radius:10px;border:1px solid var(--line);background:var(--iron);}
.rt-slot.filled{border-color:var(--lava-deep);background:linear-gradient(180deg,rgba(58,33,21,.35),var(--iron));}
.rt-slot-no{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:.85rem;color:#0a0c0f;background:linear-gradient(180deg,var(--lava-hot),var(--lava));}
.rt-slot.empty .rt-slot-no{background:var(--steel);color:var(--muted);}
.rt-slot-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem;}
.rt-slot-name{font-size:.98rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rt-slot-meta{font-size:.76rem;color:var(--muted);font-variant-numeric:tabular-nums;}
.rt-slot-act{flex:0 0 auto;display:flex;gap:.4rem;}
.rt-slot-act .btn{font-size:.82rem;padding:.35rem .8rem;}
.rt-foot{margin-top:1.2rem;display:flex;justify-content:flex-end;gap:.6rem;}
/* 貼碼視窗(openCodePrompt):與 rt-dialog 同語彙的等寬碼輸入區 + 視窗內錯誤列 */
.rt-code-input{width:100%;margin:.2rem 0 0;padding:.65rem .75rem;background:rgba(10,12,15,.72);border:1px solid var(--steel);
  border-radius:10px;color:var(--text);font:400 .78rem/1.55 ui-monospace,Consolas,"Courier New",monospace;
  resize:vertical;min-height:6.4rem;word-break:break-all;}
.rt-code-input:focus{outline:none;border-color:#ff7a3d80;box-shadow:0 0 0 3px var(--lava-glow-soft);}
.rt-code-err{color:#ff8a7a;font-size:.85rem;margin:.55rem 0 0;}
@media (max-width:420px){
  .rt-slot{flex-wrap:wrap;}
  .rt-slot-act{width:100%;justify-content:flex-end;}
}

/* ---------------- 戰術編輯器（tactics.js，RimTactics.mountEditor） ---------------- */
.tac-editor{display:flex;flex-direction:column;gap:1.1rem;}
.tac-name-fld{max-width:280px;}
.tac-toggle-row{display:flex;flex-wrap:wrap;gap:.6rem;}
.tac-order{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem;max-width:360px;}
.tac-order-item{display:flex;align-items:center;gap:.7rem;padding:.5rem .7rem;border-radius:8px;border:1px solid var(--line);background:var(--iron);}
.tac-order-rank{flex:0 0 auto;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:.78rem;color:#0a0c0f;background:linear-gradient(180deg,var(--lava-hot),var(--lava));}
.tac-order-pos{flex:1;font-family:var(--font-display);letter-spacing:.05em;color:var(--text);}
.tac-order-act{flex:0 0 auto;display:flex;gap:.3rem;}
.tac-order-act .btn{font-size:.8rem;padding:.25rem .6rem;}
.tac-matrix-details{margin-top:.2rem;border:1px solid var(--steel);border-radius:10px;padding:.3rem 1rem 1rem;background:var(--iron);}
.tac-matrix-details > summary{cursor:pointer;list-style:none;padding:.7rem 0;font-family:var(--font-display);letter-spacing:.05em;color:var(--muted);}
.tac-matrix-details > summary::-webkit-details-marker{display:none;}
.tac-matrix-details[open] > summary{color:var(--lava-hot);}
.tac-matrix{font-size:.82rem;white-space:nowrap;}
.tac-matrix th,.tac-matrix td{padding:.3rem .5rem;text-align:center;border-bottom:1px solid var(--line);}
.tac-matrix thead th{color:var(--lava-hot);font-family:var(--font-display);font-weight:600;font-size:.78rem;position:sticky;top:0;background:var(--panel);}
.tac-matrix td.nm{text-align:left;color:var(--text);}
.tac-cat-row td{text-align:left;font-family:var(--font-display);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);background:var(--iron-2);border-bottom:none;padding-top:.6rem;}
.tac-wsel{font-family:var(--font-cjk);font-size:.85rem;color:var(--text);background:var(--iron-2);border:1px solid var(--steel);border-radius:6px;padding:.2rem .4rem;cursor:pointer;}
.tac-subsec-title{margin-top:.3rem;font-size:1.05rem;}
.tac-rules-help li{margin-bottom:.15rem;}
.tac-rule{border:1px solid var(--steel);border-radius:10px;padding:.7rem .8rem;background:var(--iron);margin-bottom:.6rem;}
.tac-rule-rank{font-family:var(--font-display);font-weight:700;color:var(--lava-hot);}
.tac-rule-name{max-width:180px;}
.tac-cf{font-family:var(--font-cjk);font-size:.85rem;color:var(--text);background:var(--iron-2);border:1px solid var(--steel);border-radius:6px;padding:.2rem .4rem;}
.tac-cond{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;padding:.4rem .5rem;border-radius:8px;background:var(--iron-2);margin-bottom:.35rem;font-size:.85rem;}
.tac-cond-time input{width:3.4em;}
.tac-cond-locked{border:1px dashed var(--steel);background:transparent;color:var(--muted);}

/* 效果欄位(第十棒 B.7:規則展開該標籤的 TACTIC_EFFECTS;web 唯讀、lab 可編輯覆寫)。 */
.tac-effects-details{margin-top:.4rem;border:1px solid var(--line);border-radius:8px;padding:.2rem .7rem .5rem;background:var(--iron-2);}
.tac-effects-details > summary{cursor:pointer;list-style:none;padding:.5rem 0;font-size:.82rem;color:var(--muted);font-family:var(--font-display);letter-spacing:.03em;}
.tac-effects-details > summary::-webkit-details-marker{display:none;}
.tac-effects-details[open] > summary{color:var(--lava-hot);}
.tac-effect-custom-mark{color:var(--lava-hot);font-size:.76rem;}
.tac-effects{display:flex;flex-direction:column;gap:.3rem;}
.tac-effect-row{display:flex;align-items:center;gap:.5rem;font-size:.82rem;padding:.15rem 0;}
.tac-effect-desc{flex:1;color:var(--muted);}
.tac-effect-val{width:4.6em;}
.tac-effect-val-ro{font-variant-numeric:tabular-nums;color:var(--text);min-width:3em;text-align:right;}
.tac-effect-default{font-size:.74rem;}
.tac-effect-empty{font-size:.8rem;margin:.3rem 0 0;}
.tac-effect-reset{margin-top:.3rem;font-size:.78rem;padding:.25rem .6rem;}

/* 編輯器 select 彈出清單深色化(2026-07-15 User 指正):Chromium 對含 <optgroup> 的
   select 不再拿控制項背景色畫彈出清單、退回 UA 預設彈窗(底色跟頁面 color-scheme=normal
   → 白),但文字仍繼承我們的淺色 → 白底淺字不可讀;「戰術標籤」下拉是全站唯一用
   optgroup 的(互斥組分組),故只有它出事。雙保險修法:①select 宣告 color-scheme:dark
   讓 UA 彈窗改走深色;②option/optgroup 給明確深色背景。scoped 在 .tac-editor,
   web/lab 共用同檔(變數 fallback 見檔頂 .tac-editor 宣告)。 */
.tac-editor select{color-scheme:dark;}
.tac-editor select option,.tac-editor select optgroup{background:var(--iron-2,#1a1f27);color:var(--text,#e9ecf1);}
