:root{--bg:#140d0b;--spot:#5a2218;--panel:#1e1410;--panel2:#281a14;--line:#5c382c;--text:#f6eadc;--muted:#b79a86;--gold:#c9a15c;--green:#42d392;--red:#d46a62;--blue:#69b0ff;--accent:#9c2f24;--on-accent:#f6eadc;--accent-edge:#c45a48;--ink:#120c0a;--ghost:#3a241c;--ghost-text:#f0dcc8;--ember:#9c2f2433;--crest-1:#c45a3a;--crest-2:#6e1c16}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 10% 0,var(--spot),var(--bg) 46%);color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select{font:inherit}button{cursor:pointer}.app{max-width:1560px;margin:auto;padding:22px}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:14px}.brand{display:flex;gap:12px;align-items:center}.crest{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,var(--crest-1),var(--crest-2));display:grid;place-items:center;font-size:24px;color:var(--on-accent);box-shadow:0 8px 18px var(--ember)}.eyebrow{font-size:11px;letter-spacing:.14em;color:var(--gold);font-weight:800}.title{font-size:28px;font-weight:900}.patch,.sub{color:var(--muted);font-size:12px}.tabs{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.tab,.lang{border:1px solid var(--line);background:#111923;color:var(--muted);padding:10px 13px;border-radius:10px;font-weight:800}.tab.active,.lang{background:var(--accent);color:var(--on-accent);border-color:var(--accent-edge);box-shadow:none}.layout{display:grid;grid-template-columns:350px 1fr 390px;gap:14px}.panel{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 18px 44px #0008}h2{font-size:16px;margin:0 0 6px}.toolbar{display:flex;gap:8px;margin:12px 0 9px;flex-wrap:wrap}.search,.input,select{background:#0d141d;color:var(--text);border:1px solid var(--line);border-radius:9px;padding:9px;outline:none}.search{flex:1;min-width:0}.ghost,.primary,.danger{border:0;border-radius:9px;padding:9px 12px;font-weight:800}.ghost{background:var(--ghost);color:var(--ghost-text)}.primary{background:var(--gold);color:#201505}.danger{background:#5b2a35;color:#ffdce0}.role-filter{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px}.chip{border:1px solid var(--line);background:#101721;color:var(--muted);border-radius:999px;padding:6px 9px;font-size:11px}.chip.on{background:#2c4562;color:#fff;border-color:#6c9bd0}.spec-list{height:650px;overflow:auto;padding-right:4px}.spec{display:flex;align-items:center;gap:8px;border:1px solid transparent;border-left:4px solid var(--class);border-radius:10px;margin-bottom:5px;padding:9px;background:linear-gradient(90deg,color-mix(in srgb,var(--class) 12%,#101721),#101721 45%)}.spec.selected{background:linear-gradient(90deg,color-mix(in srgb,var(--class) 28%,#15352b),#15352b 60%);border-color:color-mix(in srgb,var(--class) 65%,transparent)}.spec-main{flex:1;min-width:0}.spec-title{font-weight:800;color:var(--class)}.spec-en{font-size:10px;color:var(--muted)}.role{font-size:10px;padding:4px 6px;border-radius:99px;white-space:nowrap;border:1px solid #fff2}.Tank{color:#ffc36c;background:#3f2a16}.Melee{color:#ff9c9c;background:#421e29}.Ranged{color:#8ec5ff;background:#19354e}.Heal{color:#68e2aa;background:#15382d}.add{background:#22334a;color:#e2efff;border:1px solid #506886;border-radius:8px;padding:6px 8px;font-size:11px}.selected .add{background:#2d805c;color:#041a0e;border-color:#66df9e}.raid-head{display:flex;justify-content:space-between;align-items:start}.size{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.meter{height:9px;border-radius:99px;background:#0a0f15;overflow:hidden;margin:10px 0 14px}.meter i{display:block;height:100%;background:linear-gradient(90deg,#49d59a,var(--gold));transition:.2s}.columns{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.role-column{background:#0e141c;border:1px solid var(--line);border-radius:12px;padding:9px;min-height:360px}.role-title{display:flex;justify-content:space-between;font-weight:850;font-size:12px;margin-bottom:8px}.slot{border-left:4px solid var(--class);background:color-mix(in srgb,var(--class) 17%,#152130);border-radius:8px;padding:8px;margin-bottom:6px;font-size:11px}.slot b{display:block;color:var(--class)}.slot span{color:var(--muted)}.empty{color:#556477;text-align:center;padding:26px 3px;font-size:12px}.warning{margin-top:14px;padding:11px;border-radius:10px;font-size:12px;border:1px solid}.warning.ok{color:#8cf0bb;background:#143529;border-color:#2d8c65}.warning.bad{color:#ffb1b4;background:#3d2028;border-color:#a94957}.status-box{display:grid;gap:7px;margin-top:14px}.status-line{padding:10px 11px;border-radius:10px;font-size:12px;border:1px solid;line-height:1.45}.status-line.info{color:#c5d6ea;background:#152233;border-color:#3a5472}.status-line.ok{color:#8cf0bb;background:#143529;border-color:#2d8c65}.status-line.bad{color:#ffb1b4;background:#3d2028;border-color:#a94957}.counts{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:11px}.count{background:#101721;border:1px solid var(--line);border-radius:9px;padding:8px;text-align:center}.count b{display:block;font-size:18px}.count span{font-size:10px;color:var(--muted)}.synergy{border:1px solid var(--line);border-left:4px solid #58677a;border-radius:10px;background:#0f151e;padding:9px;margin-bottom:7px}.synergy.covered{border-color:color-mix(in srgb,var(--class) 55%,#2a3544);border-left-color:var(--class);background:linear-gradient(135deg,color-mix(in srgb,var(--class) 28%,#101821),color-mix(in srgb,var(--class) 10%,#0f151e) 70%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--class) 25%,transparent)}.syn-head{display:flex;align-items:center;gap:7px}.dot{width:9px;height:9px;border-radius:50%;background:#5c697b;flex:none}.covered .dot{background:var(--green);box-shadow:0 0 0 3px #42d39233}.syn-name{font-weight:850;font-size:12px}.syn-en{font-size:10px;color:var(--muted)}.syn-effect{font-size:10px;color:#b4c2d1;margin:6px 0}.providers{display:flex;flex-wrap:wrap;gap:4px}.provider{font-size:10px;padding:4px 6px;border-radius:6px;border-left:3px solid var(--class);color:var(--class);background:color-mix(in srgb,var(--class) 14%,#101721)}.provider.muted{filter:grayscale(1);opacity:.5}.hidden{display:none}.game-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.hero{min-height:250px;border:1px solid #3c5372;border-radius:14px;background:linear-gradient(135deg,#22314b,#131c28);padding:18px;margin-top:12px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:15px}.stat{border:1px solid var(--line);background:#0f151e;padding:9px;border-radius:9px}.stat b{display:block;font-size:16px}.stat span{font-size:10px;color:var(--muted)}.actions{display:flex;gap:7px;margin-top:13px}.result{padding:11px;border:1px solid var(--line);background:#0e141d;border-radius:9px;font-size:12px;line-height:1.55;margin-top:12px}.success{color:#8cf0bb}.fail{color:#ffb1b4}.form{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:12px}.field label{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.field input{width:100%}.tip{margin-top:12px;padding:10px;border-left:3px solid var(--blue);background:#15263b;color:#aac8ec;font-size:11px;line-height:1.5}.footer{color:#6d7c90;font-size:11px;margin-top:15px}@media(max-width:1180px){.layout{grid-template-columns:1fr 1fr}.layout>.panel:first-child{grid-column:1/-1}.spec-list{height:300px}}@media(max-width:760px){.app{padding:12px}.top{align-items:flex-start;flex-direction:column}.layout,.game-grid{grid-template-columns:1fr}.columns{grid-template-columns:repeat(2,1fr)}.counts{grid-template-columns:repeat(2,1fr)}}

/* v3 compact interaction update */
.spec{cursor:pointer;position:relative;transition:transform .12s,border-color .12s,filter .12s}.spec:hover{transform:translateY(-1px);filter:brightness(1.12)}.spec:focus{outline:2px solid var(--gold);outline-offset:2px}.spec.selected::after{content:'✓';position:absolute;right:8px;top:6px;color:#8cf0bb;font-weight:900;font-size:14px}.spec.selected .spec-title{filter:brightness(1.18)}.spec .role{margin-right:20px}.add{display:none!important}
/* Make the synergy board scan like a dashboard instead of a long list. */
#synergies{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:620px;overflow:auto;padding-right:2px}.synergy{margin:0;min-height:88px;padding:8px;border-left-width:3px;cursor:pointer;transition:transform .12s,filter .12s,opacity .12s}.synergy:hover{transform:translateY(-1px);filter:brightness(1.12)}.synergy.inactive{opacity:1;filter:none;background:#0c1118;border-color:#2a3340;border-left-color:#3d4756;box-shadow:none}.syn-head{justify-content:space-between;align-items:flex-start}.syn-title-wrap{min-width:0}.syn-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.syn-count{font-size:10px;color:#cbd8e7;font-weight:800;white-space:nowrap;background:#26364b;border-radius:99px;padding:3px 6px}.synergy.covered .syn-count{background:#216a4d;color:#baffda}.syn-badge{display:inline-block;font-size:9px;font-weight:900;letter-spacing:.04em;padding:3px 5px;border-radius:5px;background:#3d4653;color:#a9b7c7;margin-top:0;flex:none}.synergy.covered .syn-badge{background:color-mix(in srgb,var(--class) 35%,#1a222c);color:#fff;border:1px solid color-mix(in srgb,var(--class) 45%,transparent)}.synergy.covered .syn-name{color:color-mix(in srgb,var(--class) 70%,#fff)}.synergy.covered .syn-effect{color:#c5d0dc}.syn-effect{font-size:10px;color:#b4c2d1;margin:5px 0 4px;line-height:1.35}.syn-providers{margin-top:6px}.syn-prov-label{display:block;font-size:9px;font-weight:600;letter-spacing:.04em;color:#5c6878;margin-bottom:5px}.providers.need{gap:5px}.provider.need{font-size:11px;font-weight:900;padding:5px 8px;border-radius:7px;border-left-width:4px;color:var(--class);background:color-mix(in srgb,var(--class) 28%,#121820);box-shadow:0 0 0 1px color-mix(in srgb,var(--class) 45%,transparent),0 0 12px color-mix(in srgb,var(--class) 22%,transparent)}.synergy.inactive .syn-name{color:#6f7b8a}.synergy.inactive .syn-en,.synergy.inactive .syn-effect{color:#5a6573}.synergy.inactive .syn-badge{background:#1c232d;color:#6b7685;border:1px solid #2c3542}.syn-detail{display:none;font-size:10px;color:#b9c7d7;line-height:1.35;margin-top:5px}.synergy.expanded .syn-detail{display:block}.synergy.expanded{min-height:96px}.syn-en{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:760px){#synergies{grid-template-columns:1fr;max-height:none}}.headcount{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#0d151f;border:1px solid #48617d;border-radius:10px;padding:10px 12px;margin:9px 0 11px}.headcount-main{font-size:18px;font-weight:900;color:#fff}.headcount-main em{color:var(--gold);font-style:normal}.headcount-roles{color:#b6c5d6;font-size:11px;white-space:nowrap}@media(max-width:760px){.headcount{align-items:flex-start;flex-direction:column}.headcount-roles{white-space:normal}}
.coming-soon{text-align:center;min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 20%,#223755,#111821 65%)}.coming-icon{width:70px;height:70px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(135deg,#f6c05b,#bd5a28);color:#1d1206;font-size:36px;box-shadow:0 10px 30px #c86b2f55;margin-bottom:16px}.coming-soon h2{font-size:28px;color:var(--gold);margin:0 0 8px}.coming-soon .sub{font-size:14px;max-width:520px;line-height:1.6}.coming-line{width:160px;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:22px 0 12px}

/* ===== Recruiting Game ===== */
.g-shell{display:flex;flex-direction:column;gap:14px}
.g-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.g-title{margin:0 0 4px;font-size:20px}
.g-dev-btn{border:1px dashed #8a6a2a;color:var(--gold);background:#2a2112}
.g-speed{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}
.g-bossbar{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.g-bossbar .chip{display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1.2;padding:7px 12px}
.g-boss-chip-sub{font-size:9px;font-weight:700;color:#8ea0b5;margin-top:2px}
.g-bossbar .chip.on .g-boss-chip-sub{color:#d7e6f7}
.g-boss-meta{font-size:11px;color:#9eb0c3;line-height:1.55;padding:8px 10px;background:#0e151e;border:1px solid var(--line);border-radius:10px}
.g-boss-meta b{color:var(--text)}
.g-boss-skills{color:#c5d4e4;margin-top:3px}
.g-boss-bonus{color:var(--gold);margin-top:3px;font-weight:700}
.g-bosshp{color:var(--muted);font-size:11px;margin-left:auto}
.g-layout{display:grid;grid-template-columns:1.05fr 1.15fr .9fr;gap:14px}
.g-col{min-height:420px;display:flex;flex-direction:column}
.g-sec-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px}
.g-rep{font-size:12px;color:var(--muted)}.g-rep b{color:var(--gold);font-size:16px}
.g-apps{display:flex;flex-direction:column;gap:8px;overflow:auto;max-height:560px;padding-right:2px}
.g-card{border:1px solid var(--line);border-left:4px solid var(--class);border-radius:12px;background:linear-gradient(90deg,color-mix(in srgb,var(--class) 14%,#101821),#101821 55%);padding:10px}
.g-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.g-name{font-weight:900;font-size:14px}
.g-badge{display:inline-block;margin-top:4px;font-size:11px;font-weight:800;color:var(--class)}
.g-stats{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0;font-size:11px;color:var(--muted)}
.g-stats b{color:var(--text)}
.g-card-acts{display:flex;gap:6px}
.g-card-acts .primary,.g-card-acts .danger{flex:1}
.g-roster{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;max-height:220px;overflow:auto;margin-bottom:10px}
.g-member{border-left:3px solid var(--class);background:color-mix(in srgb,var(--class) 14%,#0f151e);border-radius:8px;padding:6px 7px;font-size:10px}
.g-member b{display:block;color:var(--class);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g-member span{color:var(--muted)}
.g-ai-list{display:flex;flex-direction:column;gap:8px;overflow:auto;max-height:620px}
.g-ai{background:#0e141c;border:1px solid var(--line);border-radius:10px;padding:8px 9px}
.g-ai-head{display:flex;justify-content:space-between;font-size:12px;font-weight:800;margin-bottom:5px}
.g-ai-meta{font-size:10px;color:var(--muted);margin-top:4px}
.g-race{margin-top:0}
.g-standings{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.g-stand{display:flex;gap:10px;background:#0e141c;border:1px solid var(--line);border-radius:10px;padding:9px}
.g-stand.player{border-color:#c9a24a;background:linear-gradient(90deg,#2a2212,#0e141c 55%)}
.g-stand.won{border-color:#2d8c65}
.g-stand-rank{width:34px;height:34px;border-radius:10px;background:#1c2a3c;display:grid;place-items:center;font-weight:900;color:var(--gold);flex:none}
.g-stand-body{flex:1;min-width:0}
.g-stand-top{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin-bottom:5px}
.g-stand-top span{color:var(--muted);font-size:10px;white-space:nowrap}
.g-stand-foot{font-size:10px;color:var(--muted);margin-top:4px}
.g-hp{height:8px;border-radius:99px;background:#1a1014;overflow:hidden;border:1px solid #4a2a32}
.g-hp i{display:block;height:100%;background:linear-gradient(90deg,#ff6b72,var(--gold) 55%,#42d392);transition:width .15s linear}
.g-hp.tall{height:14px;margin:6px 0}
.g-combat{margin-top:8px;padding:10px;border-radius:10px;border:1px solid #48617d;background:#0d151f}
.g-combat-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.g-timer{font-weight:900;color:var(--gold)}.g-timer.urgent{color:var(--red)}
.g-combat-meta{font-size:11px;color:#b6c5d6;margin-bottom:6px}
.g-log{max-height:140px;overflow:auto;font-size:11px;line-height:1.45}
.g-log-line{color:#9aabbd;border-bottom:1px solid #1a2430;padding:2px 0}
.g-log-line.ok{color:#8cf0bb}.g-log-line.bad{color:#ffb1b4}.g-log-line.warn{color:#f2c56b}
.g-modal-bg{position:fixed;inset:0;background:#000a;display:grid;place-items:center;z-index:40;padding:16px}
.g-modal-bg[hidden]{display:none!important}
.g-modal{width:min(480px,100%);background:linear-gradient(180deg,#1a2636,#111821);border:1px solid #4a6280;border-radius:16px;padding:18px;box-shadow:0 24px 60px #0008}
.g-modal.wide{width:min(720px,100%)}
.g-modal h2{margin:0 0 6px}
.g-transfer-list{display:flex;flex-direction:column;gap:8px;max-height:420px;overflow:auto;margin:12px 0}
.g-transfer-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px;border-radius:10px;border-left:4px solid var(--class);background:color-mix(in srgb,var(--class) 12%,#101821);border:1px solid var(--line);border-left-width:4px}
button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:1180px){.g-layout{grid-template-columns:1fr 1fr}.g-layout>.g-col:last-child{grid-column:1/-1}.g-standings{grid-template-columns:1fr}}
@media(max-width:760px){.g-layout{grid-template-columns:1fr}.g-roster{grid-template-columns:repeat(2,1fr)}.g-bosshp{margin-left:0}}

/* synergy complete celebration */
.syn-complete-banner{margin:10px 0;padding:11px 12px;border-radius:10px;border:1px solid #d4a84a;background:linear-gradient(90deg,#3a2c14,#2a2112 55%,#1c1810);color:#ffd98a;font-weight:900;font-size:13px;text-align:center;letter-spacing:.02em;animation:synPulse 1.6s ease-in-out infinite}
.syn-complete-banner .syn-recommend{margin-top:6px;font-size:12px;font-weight:800;color:#e8d4a8;letter-spacing:0}
.syn-complete-banner.hidden{display:none}
.size{flex-wrap:wrap}
#aiRecBtn,#aiTestBtn{white-space:nowrap}
#aiRecBtn.on{filter:brightness(1.08);box-shadow:inset 0 0 0 2px #fff6}
.ai-apps-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ai-apps-head button{padding:5px 9px;font-size:11px}
.ai-rec-box{margin-top:14px}
.ai-rec-box.hidden{display:none}
.ai-rec{display:grid;gap:8px}
.ai-rec-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.ai-rec-head b{font-size:14px}
.ai-rec-meta{color:var(--muted);font-size:11px;margin-top:4px}
.ai-rank{padding:10px 11px;border-radius:10px;border:1px solid var(--line);background:#101821}
.ai-rank.warn{border-color:#a94957;background:#3d2028}
.ai-rank.warn .ai-rank-h{color:#ffb1b4}
.ai-rank.ok{border-color:#2d8c65;background:#143529}
.ai-rank.ok p{color:#8cf0bb}
.ai-now{font-size:14px;font-weight:800;line-height:1.55;color:#eff5fc}
.ai-rank-h{font-weight:900;font-size:12px;color:var(--gold);margin-bottom:6px}
.ai-rank p{margin:0 0 6px;font-size:12px;line-height:1.5;color:#d5e2f0}
.ai-rank p:last-child{margin-bottom:0}
.ai-chips{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0 8px}
.ai-app-msgs .ai-class-chip{display:inline-block;vertical-align:middle;margin:1px 0;font-weight:900}
.ai-nice{margin-top:8px;padding-top:8px;border-top:1px solid #2a3b50}
.ai-nice-lbl{display:block;font-size:11px;font-weight:800;color:#c5d4e6;margin-bottom:4px}
.ai-note{font-size:11px;color:#9eb1c6;line-height:1.45}
.ai-class-chip{cursor:pointer}
.ai-apps{display:grid;gap:8px;margin-top:4px}
.ai-app-empty{color:var(--muted)!important}
.ai-app{padding:9px 10px;border-radius:9px;border:1px solid var(--line);background:#0c141d}
.ai-app.ok,.ai-app.recommend{border-color:#2d8c65;background:#10291d}
.ai-app.positive{border-color:#3a7bb8;background:#102433}
.ai-app.warn{border-color:#c49a3c;background:#2a2314}
.ai-app.deny{border-color:#a94957;background:#2d161c}
.ai-app-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.ai-app-who{min-width:0}
.ai-app-who b{display:block;color:var(--class,#8ec5ff);font-size:13px}
.ai-app-who span{display:block;margin-top:2px;font-size:11px;color:#9eb1c6}
.ai-app-tag{flex:none;font-size:10px;font-weight:900;letter-spacing:.02em;padding:3px 7px;border-radius:99px;background:#26364b;color:#d5e2f0}
.ai-app.ok .ai-app-tag,.ai-app.recommend .ai-app-tag{background:#216a4d;color:#baffda}
.ai-app.positive .ai-app-tag{background:#215a86;color:#b7e0ff}
.ai-app.warn .ai-app-tag{background:#6a4e16;color:#ffd27a}
.ai-app.deny .ai-app-tag{background:#6a2430;color:#ffb1b4}
.ai-app-kind{margin-top:7px;font-size:10px;font-weight:900;color:var(--gold)}
.ai-app.recommend .ai-app-kind{color:#8cf0bb}
.ai-app.positive .ai-app-kind{color:#9fd4ff}
.ai-app.deny .ai-app-kind{color:#ffb1b4}
.ai-app-msgs p{margin:4px 0 0;font-size:12px;line-height:1.5;color:#d5e2f0}
.ai-app.ok .ai-app-msgs p,.ai-app.recommend .ai-app-msgs p{color:#8cf0bb;font-weight:800}
.ai-app.positive .ai-app-msgs p{color:#b7e0ff;font-weight:800}
.ai-app-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:8px}
.ai-app-actions button{padding:6px 10px;font-size:12px}
.spec.queued{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold) 53%,transparent)}
.ai-class-chip{cursor:pointer}
.ai-apps{display:grid;gap:8px;margin-top:4px}
.ai-app-empty{color:var(--muted)!important}
.ai-app{padding:9px 10px;border-radius:9px;border:1px solid var(--line);background:#0c141d}
.ai-app.ok,.ai-app.recommend{border-color:#2d8c65;background:#10291d}
.ai-app.positive{border-color:#3a7bb8;background:#102433}
.ai-app.warn{border-color:#c49a3c;background:#2a2314}
.ai-app.deny{border-color:#a94957;background:#2d161c}
.ai-app-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.ai-app-who{min-width:0}
.ai-app-who b{display:block;color:var(--class,#8ec5ff);font-size:13px}
.ai-app-who span{display:block;margin-top:2px;font-size:11px;color:#9eb1c6}
.ai-app-tag{flex:none;font-size:10px;font-weight:900;letter-spacing:.02em;padding:3px 7px;border-radius:99px;background:#26364b;color:#d5e2f0}
.ai-app.ok .ai-app-tag,.ai-app.recommend .ai-app-tag{background:#216a4d;color:#baffda}
.ai-app.positive .ai-app-tag{background:#215a86;color:#b7e0ff}
.ai-app.warn .ai-app-tag{background:#6a4e16;color:#ffd27a}
.ai-app.deny .ai-app-tag{background:#6a2430;color:#ffb1b4}
.ai-app-kind{margin-top:7px;font-size:10px;font-weight:900;color:var(--gold)}
.ai-app.recommend .ai-app-kind{color:#8cf0bb}
.ai-app.positive .ai-app-kind{color:#9fd4ff}
.ai-app.deny .ai-app-kind{color:#ffb1b4}
.ai-app-msgs p{margin:4px 0 0;font-size:12px;line-height:1.5;color:#d5e2f0}
.ai-app.ok .ai-app-msgs p,.ai-app.recommend .ai-app-msgs p{color:#8cf0bb;font-weight:800}
.ai-app.positive .ai-app-msgs p{color:#b7e0ff;font-weight:800}
.ai-app-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:8px}
.ai-app-actions button{padding:6px 10px;font-size:12px}
.spec.queued{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold) 53%,transparent)}
.panel.syn-glow{box-shadow:0 0 0 1px color-mix(in srgb,var(--gold) 40%,transparent),0 0 28px color-mix(in srgb,var(--gold) 20%,transparent)}
.celebrate-overlay{position:fixed;inset:0;z-index:80;display:grid;place-items:center;pointer-events:none;background:radial-gradient(circle at 50% 45%,#0006,#0000 55%)}
.celebrate-overlay.hidden{display:none}
.celebrate-overlay.show{animation:celeFade 2.8s ease forwards}
.celebrate-card{position:relative;z-index:2;min-width:280px;max-width:90vw;padding:22px 26px;border-radius:16px;border:1px solid #e0b45a;background:linear-gradient(160deg,#2d2414,#151b24 70%);text-align:center;box-shadow:0 20px 50px #0008,0 0 30px color-mix(in srgb,var(--gold) 20%,transparent);animation:celePop .45s cubic-bezier(.2,1.4,.4,1)}
.celebrate-icon{font-size:34px;margin-bottom:8px}
.celebrate-title{font-size:24px;font-weight:900;color:#ffd27a}
.celebrate-sub{margin-top:6px;font-size:13px;color:#d5c19a;line-height:1.45}
.celebrate-burst{position:absolute;inset:0;pointer-events:none}
.celebrate-burst .spark{position:absolute;left:50%;top:48%;width:var(--s);height:var(--s);border-radius:2px;background:var(--c);box-shadow:0 0 8px var(--c);animation:sparkFly .9s ease-out forwards;animation-delay:var(--delay);opacity:0}
@keyframes sparkFly{0%{transform:translate(-50%,-50%) rotate(var(--a)) translateY(0) scale(.4);opacity:0}20%{opacity:1}100%{transform:translate(-50%,-50%) rotate(var(--a)) translateY(calc(var(--d) * -1)) scale(1);opacity:0}}
@keyframes celePop{0%{transform:scale(.7);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes celeFade{0%,70%{opacity:1}100%{opacity:0}}
@keyframes synPulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.18)}}

.auth-box{display:flex;align-items:center;gap:7px}
.auth-tag{font-size:12px;font-weight:800;color:#ffd174;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.auth-btn{text-decoration:none;display:inline-flex;align-items:center}
a.auth-btn{padding:10px 13px}
.roster-cloud{display:flex;gap:8px;align-items:center;flex:1 1 220px;min-width:180px}
.roster-cloud select{flex:1;min-width:0}
.roster-cloud.hidden{display:none!important}

/* ===== Game v2: Start/Pause, screens, WCL, raid frames ===== */
.g-paused-tag{color:var(--red);font-weight:800}
.g-screen-tabs{display:flex;gap:0;border:1px solid #2a3b50;border-radius:10px;overflow:hidden;width:fit-content;background:#0c121a}
.g-screen-tab{border:0;background:transparent;color:var(--muted);padding:10px 18px;font-weight:800}
.g-screen-tab.on{background:#1b2d44;color:#fff;box-shadow:inset 0 -2px 0 var(--gold)}
.g-screen-tab:disabled{opacity:.35;cursor:not-allowed}
.g-expire{font-size:12px;font-weight:900;color:var(--gold);background:#2a2210;border:1px solid #6a5420;border-radius:8px;padding:4px 8px}
.g-expire.urgent{color:#ffb1b4;background:#3d2028;border-color:#a94957}
.g-roster-names{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;max-height:420px;overflow:auto}
.g-member-name{border-left:3px solid var(--class);background:color-mix(in srgb,var(--class) 12%,#0f151e);border-radius:8px;padding:7px 8px}
.g-member-name b{display:block;color:var(--class);font-size:12px}
.g-member-name span{font-size:10px;color:var(--muted)}

.g-wcl-board{margin-top:0;background:linear-gradient(180deg,#121a24,#0d131b);border-color:#243246}
.g-wcl-kicker{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#7eb6ff;font-weight:800;margin-bottom:4px}
.g-wcl-head{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #243246}
.wcl-table{display:flex;flex-direction:column;gap:2px}
.wcl-row{display:grid;grid-template-columns:36px minmax(90px,1.1fr) minmax(140px,1.6fr) 48px minmax(90px,1fr);gap:8px;align-items:center;padding:8px 10px;border-radius:6px;background:#0f1520;font-size:12px}
.wcl-head-row{background:transparent;color:#7d8fa3;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding-bottom:4px}
.wcl-row.you{background:linear-gradient(90deg,#2a2414,#121820 55%);outline:1px solid #8a6a2a}
.wcl-row.killed{background:linear-gradient(90deg,#143529,#0f1520 60%)}
.wcl-rank{font-weight:900;color:var(--gold)}
.wcl-name{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wcl-prog{display:flex;align-items:center;gap:8px;min-width:0}
.wcl-prog-bar{flex:1;height:10px;border-radius:2px;background:#1a1014;border:1px solid #4a2a32;overflow:hidden}
.wcl-prog-bar i{display:block;height:100%;background:linear-gradient(90deg,#c23b45,#e7a23a 70%,#3cb371)}
.wcl-prog em{font-style:normal;font-size:11px;font-weight:800;color:#d7e2ef;min-width:52px;text-align:right}
.wcl-pulls,.wcl-best{color:#9aabbd;font-size:11px}
.wcl-best{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.g-try-layout{display:grid;grid-template-columns:1.55fr .95fr;gap:14px}
.g-try-main .g-combat-head{margin-bottom:10px}
.g-try-acts{display:flex;align-items:center;gap:10px}
.g-boss-progress{margin-bottom:12px;padding:10px;border-radius:10px;background:#0c121a;border:1px solid #2a3b50}
.g-boss-progress-top{display:flex;justify-content:space-between;font-size:12px;margin-bottom:4px}
.g-hp.wcl-bar{border-radius:2px;height:16px}
.g-try-side .wcl-row{grid-template-columns:28px minmax(70px,1fr) minmax(90px,1.2fr) 36px; }
.g-try-side .wcl-best{display:none}
.g-try-side .wcl-head-row span:last-child{display:none}
.g-log{max-height:160px;margin-top:12px;padding:8px;border-radius:8px;background:#0a0f15;border:1px solid #1e2a38}

.g-raid-frames{display:flex;flex-direction:column;gap:10px}
.rf-group-title{font-size:11px;font-weight:800;color:#8fa3b8;margin-bottom:5px;letter-spacing:.04em}
.rf-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.rf-unit{position:relative;height:58px;border-radius:4px;overflow:hidden;border:1px solid color-mix(in srgb,var(--class) 45%,#222);background:#0a0d12}
.rf-bar{position:absolute;inset:0;background:#151515}
.rf-bar i{display:block;height:100%;width:100%;background:linear-gradient(180deg,color-mix(in srgb,var(--class) 75%,#fff),color-mix(in srgb,var(--class) 55%,#000));transition:width .12s linear}
.rf-name,.rf-sub,.rf-meta{position:relative;z-index:1;padding:0 5px;text-shadow:0 1px 2px #000d}
.rf-name{font-size:11px;font-weight:900;color:#fff;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rf-sub{font-size:9px;color:#e8eef6cc}
.rf-meta{display:flex;justify-content:space-between;gap:4px;font-size:9px;color:#dce6f0;margin-top:2px}
.rf-dt{color:#ffd0a8}
.rf-dead-tag{color:#ff8a90;font-weight:900}
.rf-unit.dead{filter:grayscale(1) brightness(.45)}
.rf-unit.dead .rf-bar i{width:0!important;background:#333}
.rf-unit.hit{box-shadow:inset 0 0 0 2px #ff6b72}
.rf-unit.bursting{box-shadow:0 0 0 1px color-mix(in srgb,var(--class) 75%,#fff),0 0 12px color-mix(in srgb,var(--class) 55%,transparent);animation:rfBurstGlow 1.15s ease-in-out infinite}
.rf-unit.bursting.hit{box-shadow:inset 0 0 0 2px #ff6b72,0 0 12px color-mix(in srgb,var(--class) 55%,transparent)}
.rf-unit.burst-pop{animation:rfBurstPop .48s ease-out,rfBurstGlow 1.15s ease-in-out infinite}
.rf-unit.bursting .rf-bar i{filter:brightness(1.12)}
@keyframes rfBurstGlow{0%,100%{filter:brightness(1.04)}50%{filter:brightness(1.14)}}
@keyframes rfBurstPop{0%{filter:brightness(1.45);box-shadow:0 0 0 2px color-mix(in srgb,var(--class) 85%,#fff),0 0 22px color-mix(in srgb,var(--class) 70%,transparent)}100%{filter:brightness(1.04)}}
.rf-float{position:absolute;right:4px;top:2px;z-index:2;color:#ff9a9e;font-weight:900;font-size:11px;text-shadow:0 0 4px #000;animation:rfPop .45s ease-out}
@keyframes rfPop{from{transform:translateY(6px);opacity:0}to{transform:translateY(0);opacity:1}}

.meter-row.bursting .meter-bar{box-shadow:0 0 8px color-mix(in srgb,var(--class) 55%,transparent);border-color:color-mix(in srgb,var(--class) 55%,#333)}
.meter-row.bursting .meter-bar i{filter:brightness(1.15)}
.meter-row.bursting .meter-name{text-shadow:0 0 8px color-mix(in srgb,var(--class) 45%,transparent)}

@media(max-width:1180px){
  .g-try-layout{grid-template-columns:1fr}
  .rf-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .wcl-row{grid-template-columns:28px minmax(70px,1fr) minmax(100px,1.4fr) 40px minmax(70px,.9fr)}
}
@media(max-width:760px){
  .rf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .g-roster-names{grid-template-columns:1fr}
  .g-screen-tabs{width:100%}
  .g-screen-tab{flex:1}
}

.g-brez-set{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin:8px 0 10px}
.g-brez-set select{flex:1;max-width:240px}
.g-brez-left{font-size:12px;font-weight:800;color:#9ad0ff;background:#152433;border:1px solid #2f4d66;border-radius:8px;padding:6px 8px}
.g-tank-wipe{margin-top:6px;padding:8px;border-radius:8px;background:#3d2028;border:1px solid #a94957;color:#ffb1b4;font-weight:800;font-size:12px}
.rf-unit.brezable{cursor:pointer;outline:1px dashed #7eb6ff;outline-offset:1px}
.rf-unit.brezable:hover{filter:brightness(1.15)}
.rf-unit{cursor:pointer}
.rf-unit.selected{outline:2px solid var(--gold);outline-offset:1px;z-index:2}
.g-inspect{margin-top:10px}
.g-inspect[hidden]{display:none!important}
.g-inspect-card{border:1px solid color-mix(in srgb,var(--class) 45%,#2a3b50);border-left:4px solid var(--class);border-radius:12px;background:linear-gradient(90deg,color-mix(in srgb,var(--class) 14%,#101821),#0c121a 60%);padding:12px}
.g-inspect-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
.g-inspect-name{font-size:16px;font-weight:900;color:var(--class)}
.g-inspect-sub{font-size:12px;color:var(--muted);margin-top:2px}
.g-inspect-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.g-inspect-grid div,.g-inspect-combat div{background:#0a0f15;border:1px solid #1e2a38;border-radius:8px;padding:8px}
.g-inspect-grid span,.g-inspect-combat span{display:block;font-size:10px;color:var(--muted);margin-bottom:3px}
.g-inspect-grid b,.g-inspect-combat b{font-size:13px}
.g-inspect-type{margin-top:8px;font-size:12px;color:#c5d6ea}
.g-inspect-combat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}
.g-inspect-card .primary{margin-top:10px;width:100%}
.meter-hint{color:var(--muted);font-weight:600;font-size:10px}
@media(max-width:760px){
  .g-inspect-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .g-inspect-combat{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.g-meters{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.g-meter-col{background:#0a0f15;border:1px solid #1e2a38;border-radius:10px;padding:8px;min-height:0;display:flex;flex-direction:column}
.g-meter-col h3{margin:0 0 6px;font-size:12px;color:var(--gold);flex:none}
#gDpsMeter,#gHpsMeter{max-height:220px;overflow-y:auto;overscroll-behavior:contain;padding-right:4px}
.meter-row{display:grid;grid-template-columns:72px 1fr 48px 52px;gap:6px;align-items:center;margin-bottom:4px;font-size:10px}
.meter-row.with-oh{grid-template-columns:64px 1fr 44px 48px 48px}
.meter-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--class);font-weight:800}
.meter-bar{height:8px;background:#151515;border-radius:2px;overflow:hidden;border:1px solid #333}
.meter-bar i{display:block;height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--class) 40%,#222),var(--class))}
.meter-val{text-align:right;color:#b6c5d6;font-variant-numeric:tabular-nums}
.meter-total{text-align:right;color:var(--gold);font-variant-numeric:tabular-nums;font-weight:800}
.meter-oh{text-align:right;color:#ff8fa0;font-variant-numeric:tabular-nums;font-weight:700}
@media(max-width:760px){.g-meters{grid-template-columns:1fr}}

/* ===== 구인 Game · 도우미형 구인창 ===== */
.g-helper-layout{margin-top:4px}
.g-helper-layout .apps-col .spec-list,
.g-apps.spec-list{height:auto;max-height:620px;min-height:360px}
.g-apps-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:10px 0}
.g-app-row{cursor:default;padding-right:8px}
.g-app-row:hover{transform:none;filter:brightness(1.08)}
.g-app-row .spec-main{min-width:0;flex:1}
.g-app-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:5px;font-size:10px;color:var(--muted)}
.g-app-stats b{color:var(--text)}
.g-app-acts{display:flex;flex-direction:column;gap:5px;flex:none}
.g-app-acts .primary,.g-app-acts .ghost{padding:6px 10px;font-size:11px;white-space:nowrap}
.g-expire{font-weight:900;color:var(--gold);font-variant-numeric:tabular-nums}
.g-expire.urgent{color:var(--red);animation:g-pulse 1s ease-in-out infinite}
@keyframes g-pulse{50%{opacity:.55}}
.g-helper-layout .role-column{min-height:220px;max-height:360px;overflow:auto}
.g-helper-layout .slot{cursor:grab;transition:filter .12s,transform .12s}
.g-helper-layout .slot:hover{filter:brightness(1.12);transform:translateY(-1px)}
.g-helper-layout .slot.dragging{opacity:.45}
.g-helper-layout .slot.drag-over,
.g-bench.drag-over,
.role-column.drag-over{outline:2px dashed var(--gold);outline-offset:2px;background:#1a2433}
.g-bench-wrap{margin:12px 0 4px;padding:10px;border:1px dashed #48617d;border-radius:12px;background:#0c131c}
.g-bench-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.g-bench-head h3{margin:0;font-size:13px;color:var(--gold)}
.g-bench-hint{margin:4px 0 8px}
.g-bench{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;min-height:64px}
.g-bench .empty{padding:14px 3px}
.g-helper-layout .raid-head{gap:10px;align-items:center}
.g-brez-set{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:12px;color:var(--muted)}
.g-brez-set select{min-width:160px}
.g-syn-summary{display:flex;flex-wrap:wrap;gap:8px 12px;margin:8px 0 10px;padding:8px 10px;background:#0d151f;border:1px solid #48617d;border-radius:10px;font-size:11px;color:#b6c5d6}
.g-syn-summary b{color:#fff;font-variant-numeric:tabular-nums}
.g-synergies{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:520px;overflow:auto;padding-right:2px}
.g-synergies .synergy{margin:0;min-height:88px;padding:8px;cursor:default}
.g-synergies .synergy:hover{transform:none}
.g-school{display:inline-block;font-size:9px;font-weight:900;letter-spacing:.04em;padding:2px 5px;border-radius:4px;vertical-align:middle;margin-left:4px}
.g-school.ad{background:#3a2a12;color:var(--gold)}
.g-school.ap{background:#1a2a44;color:#69b0ff}
.g-school.heal{background:#1a3328;color:#42d392}
.g-wcl-board.compact{margin-top:14px;padding:12px 14px}
.g-wcl-board.compact .wcl-table{max-height:220px;overflow:auto}
@media(max-width:1180px){
  .g-helper-layout{grid-template-columns:1fr 1fr}
  .g-helper-layout>.apps-col{grid-column:1/-1}
  .g-synergies{grid-template-columns:1fr}
}
@media(max-width:760px){
  .g-helper-layout{grid-template-columns:1fr}
  .g-app-acts{flex-direction:row}
  .g-helper-layout .role-column{max-height:none}
}

/* ===== Try FX · boss portraits ===== */
.g-boss-portrait{position:relative;flex:none;border-radius:14px;overflow:hidden;border:2px solid color-mix(in srgb,var(--boss-accent,var(--gold)) 55%,#304157);background:radial-gradient(circle at 35% 25%,var(--boss-bg1,#1b2c45),var(--boss-bg2,#0b1017) 70%);box-shadow:0 0 18px var(--boss-glow,color-mix(in srgb,var(--gold) 27%,transparent)),inset 0 0 20px #0006;display:grid;place-items:center}
.g-boss-portrait.sm{width:36px;height:36px}
.g-boss-portrait.md{width:72px;height:72px}
.g-boss-portrait.lg{width:96px;height:96px}
.g-boss-portrait img{width:100%;height:100%;object-fit:cover;display:block}
.g-boss-glyph{font-size:28px;line-height:1;filter:drop-shadow(0 2px 6px #0008);z-index:1}
.g-boss-portrait.sm .g-boss-glyph{font-size:16px}
.g-boss-ring{position:absolute;inset:4px;border-radius:12px;border:1px solid color-mix(in srgb,var(--boss-accent,var(--gold)) 35%,transparent);pointer-events:none}
.g-bossbar .chip{flex-direction:row;align-items:center;gap:8px;padding:6px 12px 6px 6px}
.g-bossbar .chip .g-boss-chip-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}
.g-try-boss-head{display:flex;align-items:center;gap:12px;min-width:0}
.g-try-boss-head h2{margin:0}
.g-boss-progress.themed{background:linear-gradient(135deg,color-mix(in srgb,var(--boss-bg1,#1b2c45) 55%,#0c121a),#0c121a);border-color:color-mix(in srgb,var(--boss-accent,var(--gold)) 35%,#2a3b50);box-shadow:inset 0 0 24px var(--boss-glow,#0000)}
#gBossHpBar.enraged-pulse{animation:gEnragePulse .7s ease-in-out infinite;background:linear-gradient(90deg,#ff6b72,var(--gold))!important}
@keyframes gEnragePulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.35)}}

.g-fx-flash{position:fixed;inset:0;pointer-events:none;z-index:70;opacity:0;background:radial-gradient(circle at 50% 30%,#fff6,#0000 55%)}
.g-fx-flash.show{opacity:.55;transition:none}
.g-fx-flash.show.fade{opacity:0;transition:opacity .28s ease-out}
.g-fx-flash.buster{background:radial-gradient(circle at 50% 40%,#ff3b3b99,#7a101033 50%,#0000 70%)}
.g-fx-flash.aoe{background:radial-gradient(circle at 50% 45%,#69b0ff77,#0000 60%)}
.g-fx-flash.aoe2{background:radial-gradient(circle at 50% 45%,#a330c988,#0000 60%)}
.g-fx-flash.random{background:radial-gradient(circle at 60% 35%,color-mix(in srgb,var(--gold) 53%,transparent),#0000 55%)}
.g-fx-flash.enrage{background:radial-gradient(circle at 50% 50%,#ff6b72aa,#5a101044 45%,#0000 70%)}
.g-fx-flash.pull{background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--gold) 40%,transparent),#0000 55%)}

.g-fx-shake{animation:gFxShake .35s ease-out}
.g-fx-shake-hard{animation:gFxShakeHard .42s ease-out}
@keyframes gFxShake{0%,100%{transform:translate(0)}20%{transform:translate(-3px,1px)}40%{transform:translate(3px,-1px)}60%{transform:translate(-2px,0)}80%{transform:translate(2px,1px)}}
@keyframes gFxShakeHard{0%,100%{transform:translate(0)}15%{transform:translate(-6px,2px)}30%{transform:translate(6px,-2px)}45%{transform:translate(-4px,1px)}60%{transform:translate(4px,-1px)}75%{transform:translate(-2px,0)}}

.g-fx-result{position:fixed;inset:0;z-index:85;display:grid;place-items:center;pointer-events:none;background:radial-gradient(circle at 50% 45%,#0008,#0000 55%)}
.g-fx-result.hidden{display:none}
.g-fx-result.show{animation:celeFade 1.6s ease forwards}
.g-fx-result-card{min-width:220px;padding:20px 28px;border-radius:16px;text-align:center;border:1px solid #e0b45a;background:linear-gradient(160deg,#2d2414,#151b24 70%);box-shadow:0 20px 50px #0008}
.g-fx-result.wipe .g-fx-result-card{border-color:#a94957;background:linear-gradient(160deg,#3d2028,#151b24 70%)}
.g-fx-result-icon{font-size:36px;margin-bottom:6px}
.g-fx-result-title{font-size:28px;font-weight:900;letter-spacing:.08em;color:#ffd27a}
.g-fx-result.wipe .g-fx-result-title{color:#ffb1b4}
.g-mute-btn.on{color:#ffb1b4;border-color:#a94957}

.g-modal.g-result-modal{width:min(980px,100%);max-height:min(90vh,900px);display:flex;flex-direction:column}
.g-result-body{flex:1;min-height:0;overflow:auto;margin:10px 0 12px;display:flex;flex-direction:column;gap:12px}
.g-res-cause{padding:10px 12px;border-radius:10px;background:#3d2028;border:1px solid #a94957;color:#ffb1b4;display:flex;flex-direction:column;gap:4px}
.g-res-cause span{font-size:11px;opacity:.85}
.g-res-cause b{font-size:16px}
.g-res-mvp{padding:12px 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--class) 55%,#4a6280);background:linear-gradient(120deg,color-mix(in srgb,var(--class) 22%,#1a2636),#111821 70%);display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:center}
.g-res-mvp-tag{grid-row:span 2;font-size:18px;font-weight:900;color:var(--class);letter-spacing:.06em}
.g-res-mvp-name{font-size:16px;font-weight:900;color:#fff}
.g-res-mvp-sub{font-size:12px;color:var(--muted)}
.g-res-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.g-res-side{background:#0a0f15;border:1px solid #1e2a38;border-radius:10px;padding:8px 10px}
.g-res-side h4,.g-res-col h4{margin:0 0 6px;font-size:12px;color:var(--gold)}
.g-res-chip{font-size:11px;padding:5px 7px;margin-bottom:4px;border-radius:6px;border-left:3px solid var(--class);background:#121a24;display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}
.g-res-chip.rez{border-left-color:#42d392}
.g-res-chip-main{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.g-res-chip-main small{font-size:10px;color:#ffb1b4;font-weight:600}
.rf-meta{flex-wrap:wrap;align-items:flex-start}
.rf-death-why{flex:1 1 100%;padding:0;font-size:8px;line-height:1.15;color:#ffb1b4;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px #000d}
.g-res-ranks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-height:220px}
.g-res-col{background:#0a0f15;border:1px solid #1e2a38;border-radius:10px;padding:8px;display:flex;flex-direction:column;min-height:0}
.g-res-col.scroll .g-res-list{max-height:260px;overflow:auto;overscroll-behavior:contain;padding-right:2px}
.g-res-row{display:grid;grid-template-columns:22px minmax(0,1.2fr) minmax(40px,1fr) 48px;gap:4px 6px;align-items:center;margin-bottom:4px;font-size:10px}
.g-res-rank{color:var(--muted);font-weight:800;text-align:right}
.g-res-name{color:var(--class);font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g-res-bar{height:7px;background:#151515;border-radius:2px;overflow:hidden;border:1px solid #333}
.g-res-bar i{display:block;height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--class) 40%,#222),var(--class))}
.g-res-total{text-align:right;color:var(--gold);font-variant-numeric:tabular-nums;font-weight:800}
.g-res-rate,.g-res-oh,.g-res-tankheal{grid-column:2/-1;font-size:9px;color:var(--muted);margin-top:-2px}
.g-res-oh{color:#ff8fa0}
.g-res-tankheal{color:#7eb6ff}
.rf-cd{position:absolute;inset:0;z-index:3;display:none;place-items:center;pointer-events:none;background:transparent}
.rf-cd:not([hidden]){display:grid}
.rf-cd[hidden]{display:none!important}
.rf-cd.active{background:radial-gradient(circle at 50% 45%,#0000,#0005 75%)}
.rf-cd img{width:28px;height:28px;border-radius:6px;border:1px solid color-mix(in srgb,var(--class) 70%,#fff);box-shadow:0 0 12px color-mix(in srgb,var(--class) 55%,transparent),0 2px 6px #000a}
.rf-cd.active img{animation:rfCdPulse 1s ease-in-out infinite;filter:brightness(1.15)}
.rf-cd.cooling{inset:auto;right:3px;top:3px;width:auto;height:auto;place-items:end}
.rf-cd.cooling img{width:16px;height:16px;filter:grayscale(.85) brightness(.65);opacity:.9;box-shadow:none;border-color:#667788;animation:none}
.rf-cd-tag{position:absolute;bottom:3px;left:50%;transform:translateX(-50%);font-size:8px;font-weight:900;letter-spacing:.04em;color:#ffe7a8;text-shadow:0 1px 2px #000e;background:#0008;padding:1px 4px;border-radius:3px;font-variant-numeric:tabular-nums}
.rf-cd.cooling .rf-cd-tag{position:static;transform:none;margin-top:1px;font-size:7px;color:#c5d0dc;background:#000a}
@keyframes rfCdPulse{0%,100%{transform:scale(1);filter:brightness(1.05)}50%{transform:scale(1.08);filter:brightness(1.25)}}
@media(max-width:900px){
  .g-res-ranks{grid-template-columns:1fr}
  .g-res-meta-grid{grid-template-columns:1fr}
  .g-res-col.scroll .g-res-list{max-height:180px}
}

.rf-unit.just-dead{animation:rfDeathPop .5s ease-out;filter:grayscale(1) brightness(.55)}
@keyframes rfDeathPop{0%{transform:scale(1.08);box-shadow:inset 0 0 0 2px #ff6b72}100%{transform:scale(1)}}
.rf-unit.just-rez{animation:rfRezPop .55s ease-out}
@keyframes rfRezPop{0%{box-shadow:inset 0 0 0 2px #42d392;filter:brightness(1.4)}100%{box-shadow:none;filter:none}}

/* ===== Raid Planner ===== */
.tabs{flex-wrap:wrap}
.app.rp-wide{max-width:1760px}
.rp-shell{display:flex;flex-direction:column;gap:12px}
.rp-header{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid #2a3b50;border-radius:14px;background:linear-gradient(180deg,#152033,#101821)}
.rp-header-top{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap}
.rp-header-title{min-width:0;flex:1}
.rp-header-title h2{margin:0 0 2px;font-size:20px;font-weight:900;letter-spacing:-.02em}
.rp-header-title .sub{margin:0;line-height:1.4;max-width:52ch}
.rp-mode-tabs{flex:none}
.rp-mode-tabs .g-screen-tab{min-width:120px;padding:9px 16px;font-size:12px}
.rp-boss-bar{display:flex;align-items:center;gap:10px;padding-top:8px;border-top:1px solid #243246;flex-wrap:wrap}
.rp-boss-bar-label{display:flex;align-items:baseline;gap:8px;min-width:0;flex:none}
.rp-boss-bar-label > span{font-size:10px;font-weight:800;letter-spacing:.06em;color:#7d8fa3}
.rp-boss-name{font-size:12px;font-weight:800;color:#d7e2ef;line-height:1.2;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp-boss-rail{display:flex;flex-wrap:wrap;gap:5px;flex:none;margin-left:auto}
.rp-boss-tile{position:relative;width:34px;height:34px;flex:none;padding:0;border:1px solid #2a3b50;border-radius:8px;background:#0a0f15;overflow:hidden;cursor:pointer}
.rp-boss-tile img,.rp-boss-tile .rp-boss-tile-fallback{display:block;width:100%;height:100%;object-fit:cover}
.rp-boss-tile-fallback{display:grid;place-items:center;font-size:11px;font-weight:900;color:#91a0b3;background:#152033}
.rp-boss-tile-num{position:absolute;right:2px;bottom:2px;z-index:1;min-width:12px;height:12px;padding:0 3px;border-radius:3px;background:#0b1017d0;color:#c9d6e6;font-size:8px;font-weight:800;display:grid;place-items:center;line-height:1}
.rp-boss-tile:hover{border-color:#4a6788}
.rp-boss-tile.on{border-color:var(--gold);box-shadow:0 0 0 1px color-mix(in srgb,var(--gold) 33%,transparent)}
.rp-boss-tile.on .rp-boss-tile-num{color:var(--gold);background:#1a150ad0}
.rp-boss-tile.on::after{display:none}
.rp-boss-select-fallback{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.rp-banner{padding:7px 12px;border-radius:10px;border:1px solid #243246;background:#0e151e;color:#8ea0b5;font-size:11px}
.rp-toolbar{display:none}
.rp-toolbar-right{display:none}
.rp-boss-field,.rp-boss-picker,.rp-boss-chip{display:none}
.rp-field{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:11px}
.rp-field select{min-width:180px}
.rp-banner{padding:8px 12px;border-radius:10px;border:1px solid #3a5472;background:#152233;color:#c5d6ea;font-size:12px}
.rp-cd{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;align-items:start;min-height:640px}
.rp-roster-side{position:sticky;top:12px;align-self:start;max-height:calc(100vh - 120px);display:flex;flex-direction:column;min-width:0}
.rp-roster-side.collapsed{padding:0;background:linear-gradient(180deg,#172230,#111821);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.rp-roster-pop{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:10px;background:#05080caa;backdrop-filter:blur(2px)}
.rp-roster-modal{position:relative;width:min(1280px,98vw);max-height:min(880px,95vh);display:flex;flex-direction:row;padding:0;box-shadow:0 18px 48px #000a;overflow:hidden}
.rp-roster-modal.with-add{width:min(1480px,98vw)}
.rp-roster-modal-main{flex:1;min-width:0;display:flex;flex-direction:column;padding:12px 14px;overflow:hidden}
.rp-roster-side-h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;flex:none}
.rp-roster-side-h h3{margin:0;font-size:16px;color:var(--gold)}
.rp-roster-side-h .sub{font-size:11px;margin-top:2px}
.rp-roster-side-acts{display:flex;gap:6px;flex:none;align-items:center}
.rp-roster-collapse{padding:7px 12px;white-space:nowrap;font-size:12px}
.rp-roster-toggle{width:100%;min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:10px;padding:14px 6px;border:0;background:transparent;color:var(--gold);cursor:pointer}
.rp-roster-toggle:hover{filter:brightness(1.12);background:#1a2433}
.rp-roster-toggle-ico{font-size:16px;font-weight:900}
.rp-roster-toggle-label{writing-mode:vertical-rl;font-size:12px;font-weight:900;letter-spacing:.18em}
.rp-roster-toggle em{font-style:normal;font-size:11px;color:#c5d6ea;background:#1c2a3c;border-radius:99px;padding:2px 7px}
.rp-roster-hc{margin:0 0 6px;flex:none;padding:7px 9px}
.rp-roster-hc .headcount-main{font-size:14px}
.rp-roster-hc .headcount-roles{font-size:10px}
.rp-roster-acts{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;flex:none}
.rp-roster-acts .ghost{padding:6px 10px;font-size:11px}
.rp-roster-columns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex:1;min-height:240px;overflow:auto;padding-right:2px;align-items:stretch}
.rp-role-col{min-height:0;height:auto;max-height:none;overflow:auto;padding:8px;background:#0e141c;border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column}
.rp-role-title{display:flex;justify-content:space-between;align-items:center;font-weight:850;font-size:12px;margin-bottom:8px;flex:none;color:#d7e2ef}
.rp-role-slots{display:flex;flex-direction:column;gap:5px;flex:1;min-height:0}
.rp-role-col.drag-over,.rp-roster-bench.drag-over,.rp-roster-trash.drag-over{outline:2px dashed var(--gold);outline-offset:2px;background:#1a2433}
.rp-roster-slot{cursor:pointer;margin:0;padding:7px 8px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:6px 8px;align-items:center;border-left:3px solid var(--class);background:color-mix(in srgb,var(--class) 14%,#152130);border-radius:8px;position:relative}
.rp-roster-slot.dragging{opacity:.45;cursor:grabbing}
.rp-roster-slot.on{outline:2px solid var(--gold);outline-offset:1px}
.rp-spec-ico-wrap{display:grid;width:28px;height:28px;align-self:center;flex:none}
.rp-spec-ico-wrap>*{grid-area:1/1;width:28px;height:28px;border-radius:6px}
.rp-spec-ico{object-fit:cover;background:#0a0f15;border:1px solid #314457;z-index:1}
.rp-spec-ico.fallback{display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:900;color:#fff;background:color-mix(in srgb,var(--class) 45%,#101821);border:1px solid #314457;z-index:0}
.rp-roster-slot-txt{min-width:0;display:flex;flex-direction:column;gap:1px}
.rp-roster-slot .rp-callsign{min-width:0;color:var(--class);font-size:13px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp-roster-slot em{display:block;font-style:normal;font-size:10px;color:#8fa3b8;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp-slot-acts{display:flex;flex-direction:row;gap:4px;align-items:center;flex:none}
.rp-slot-acts .ghost,.rp-slot-acts .danger{padding:4px 7px;font-size:10px;border-radius:6px;font-weight:800;min-height:24px;white-space:nowrap}
.rp-member-edit-pop{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:16px;background:#05080c99;border-radius:inherit}
.rp-member-edit{width:min(340px,92%);padding:14px;border:1px solid color-mix(in srgb,var(--class) 40%,#3a5472);box-shadow:0 16px 40px #000a}
.rp-member-edit-h{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.rp-member-edit-h b{display:block;font-size:13px;color:var(--class)}
.rp-member-edit-h .rp-spec-ico-wrap{grid-row:auto}
.rp-member-edit-field{display:flex;flex-direction:column;gap:5px;margin-bottom:10px;font-size:11px;color:var(--muted);font-weight:700}
.rp-member-edit-field .rp-nick,.rp-server-edit{width:100%;padding:9px 10px;font-size:13px;border-radius:8px;background:#0d141d;color:var(--text);border:1px solid var(--line)}
.rp-member-edit-field .rp-nick:focus,.rp-server-edit:focus{border-color:var(--gold);outline:none}
.rp-member-edit-acts{display:flex;justify-content:flex-end;gap:6px;margin-top:4px}
.rp-roster-bottom{display:grid;grid-template-columns:1fr 150px;gap:8px;margin-top:8px;flex:none}
.rp-roster-bench{border:1px dashed #48617d;border-radius:10px;background:#0c131c;padding:8px;min-height:72px}
.rp-roster-zone-h{font-size:12px;font-weight:900;color:var(--gold);margin-bottom:6px;display:flex;gap:6px;align-items:center}
.rp-roster-zone-h em{font-style:normal;font-size:10px;color:#c5d6ea;background:#1c2a3c;border-radius:99px;padding:1px 6px}
.rp-roster-bench-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:4px;max-height:96px;overflow:auto}
.rp-roster-bench-grid .rp-role-slots{display:contents}
.rp-roster-trash{border:1px dashed #a94957;border-radius:10px;background:#2a151a;padding:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;min-height:72px}
.rp-roster-trash strong{font-size:12px;color:#ff9aa0}
.rp-roster-trash span{font-size:10px;color:#c48a8e;line-height:1.3}
.rp-roster-add{width:250px;flex:none;border-left:1px solid #243246;background:#0e151e;padding:12px 10px;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.rp-roster-add-h{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.rp-roster-add-h h4{margin:0;font-size:13px;color:var(--gold)}
.rp-roster-add .sub{margin-bottom:8px;font-size:10px}
.rp-roster-add-list{flex:1;min-height:0;overflow:auto;padding-right:2px;display:flex;flex-direction:column;gap:8px}
.rp-add-class-h{font-size:11px;font-weight:900;color:var(--class);margin-bottom:4px}
.rp-add-specs{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.rp-add-spec{display:flex;align-items:center;gap:5px;text-align:left;border:1px solid #314457;background:color-mix(in srgb,var(--class) 12%,#101821);border-left:3px solid var(--class);border-radius:7px;padding:5px 6px;color:var(--text);cursor:pointer;font-size:11px;font-weight:800}
.rp-add-spec:hover{filter:brightness(1.12)}
.rp-add-spec-ico{width:22px;height:22px;border-radius:5px;overflow:hidden;flex:none;display:grid;place-items:center;background:#0a0f15}
.rp-add-spec-ico img{width:100%;height:100%;object-fit:cover}
.rp-add-spec-ico i{font-style:normal;font-size:10px;font-weight:900;color:#fff}
.rp-main{min-width:0}
.rp-board{display:grid;grid-template-columns:280px 1fr 240px;gap:12px;min-height:640px}
.rp-board-side{display:flex;flex-direction:column;min-height:0}
.rp-board-tools{flex:none}
.rp-board-tools h3{margin:0 0 8px;font-size:13px;color:var(--gold)}
.rp-palette-bar{display:flex;align-items:center;gap:6px;margin:4px 0 8px;flex:none;min-width:0}
.rp-palette-tabs{display:flex;gap:4px;margin:0;flex-wrap:wrap;flex:1;min-width:0}
.rp-palette-tabs .g-screen-tab{flex:1;min-width:0;padding:7px 6px;font-size:11px}
.rp-palette-keys{flex:none;font:800 9px/1 ui-monospace,Consolas,monospace;letter-spacing:.06em;color:#9eb0c6;background:#152130;border:1px solid #314457;border-bottom-color:#1e2a38;border-radius:5px;padding:4px 5px;opacity:.85;user-select:none}
.rp-palette{flex:1;min-height:0;max-height:min(46vh,420px);overflow:auto;overscroll-behavior:contain;padding:10px;margin-bottom:10px;border:1px solid #2a3b50;border-radius:12px;background:#0e151e}
.rp-board-side>#rpPaletteHint{flex:none;margin:0 0 6px}
.rp-board-side>.rp-mini-acts{flex:none;margin-top:auto}
.rp-palette-empty{padding:14px 10px;border:1px dashed #314457;border-radius:10px;color:var(--muted);font-size:12px;line-height:1.5;background:#0d141d}
.rp-palette-empty p{margin:0 0 8px}
.rp-palette-empty .sub{margin:0}
.rp-stamp-group{margin-bottom:12px}
.rp-stamp-group-h{font-size:11px;font-weight:800;color:var(--gold);margin:0 0 6px;letter-spacing:.04em}
.rp-stamp-grid{display:grid;gap:6px}
.rp-stamp-grid.roster{grid-template-columns:1fr}
.rp-stamp-grid.elements{grid-template-columns:1fr 1fr}
.rp-stamp-grid.boss{grid-template-columns:1fr}
.rp-stamp{display:flex;align-items:center;gap:8px;text-align:left;border:1px solid var(--line);background:#101821;border-radius:9px;padding:6px 7px;color:var(--text);cursor:pointer;min-width:0}
.rp-stamp.player{border-left:4px solid var(--class);background:color-mix(in srgb,var(--class) 12%,#101821)}
.rp-stamp.boss{border-left:4px solid var(--class)}
.rp-stamp.on{outline:2px solid var(--gold);outline-offset:1px}
.rp-stamp-icon{width:32px;height:32px;border-radius:8px;overflow:hidden;flex:none;display:grid;place-items:center;background:#0a0f15;border:1px solid #243446}
.rp-stamp-icon img{width:100%;height:100%;object-fit:cover;display:block}
.rp-stamp-icon b{font-size:11px;color:#d7e6f7}
.rp-stamp-meta{min-width:0;display:flex;flex-direction:column;gap:1px}
.rp-stamp-meta b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp-stamp-meta em{font-style:normal;font-size:10px;color:var(--muted)}
.rp-stamp.player .rp-stamp-meta b{color:var(--class)}
.rp-marker-chip{width:22px;height:22px;display:block;border-radius:4px;background:var(--c,var(--gold));box-shadow:inset 0 0 0 1px #0008}
.rp-marker-chip[data-style="marker-star"]{clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.rp-marker-chip[data-style="marker-circle"]{border-radius:99px}
.rp-marker-chip[data-style="marker-diamond"]{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);border-radius:0}
.rp-marker-chip[data-style="marker-triangle"]{clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:0}
.rp-marker-chip[data-style="marker-moon"]{border-radius:99px;box-shadow:inset -7px -2px 0 0 #0a0f15,inset 0 0 0 1px #0008}
.rp-marker-chip[data-style="marker-square"]{border-radius:3px}
.rp-marker-chip[data-style="marker-cross"]{background:transparent;box-shadow:none;position:relative}
.rp-marker-chip[data-style="marker-cross"]::before,.rp-marker-chip[data-style="marker-cross"]::after{content:"";position:absolute;inset:3px auto 3px 9px;width:4px;background:var(--c);border-radius:2px;transform:rotate(45deg)}
.rp-marker-chip[data-style="marker-cross"]::after{transform:rotate(-45deg)}
.rp-marker-chip[data-style="marker-skull"]{border-radius:10px 10px 6px 6px}
.rp-marker-sheet{width:100%;height:100%;display:block;background-image:url("../assets/icons/markers/UI-RaidTargetingIcons.png");background-size:400% 200%;background-position:calc(var(--mx) * 33.333%) calc(var(--my) * 100%);background-repeat:no-repeat;image-rendering:auto}
.rp-tool.hidden{display:none!important}
.rp-side h3{margin:0 0 8px;font-size:13px;color:var(--gold)}
.rp-side-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}
.rp-side-head h3{margin:0}
.rp-mini-acts{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.rp-mini-acts .ghost,.rp-mini-acts .danger{padding:6px 8px;font-size:11px}
.rp-roster-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin:4px 0 8px}
.rp-roster-head h3{margin:0;font-size:13px;color:var(--gold)}
.rp-roster-bar{display:flex;gap:8px;overflow:auto;padding-bottom:6px;margin-bottom:12px}
.rp-roster{display:flex;flex-direction:column;gap:5px;max-height:160px;overflow:auto;margin:8px 0 14px}
.rp-roster.compact{max-height:180px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.rp-person{text-align:left;border:1px solid var(--line);border-left:4px solid var(--class);background:color-mix(in srgb,var(--class) 12%,#101821);border-radius:8px;padding:7px 8px;color:var(--text);cursor:pointer;flex:0 0 148px}
.rp-person-meta b{display:block;color:var(--class);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp-person-meta span{font-size:10px;color:var(--muted)}
.rp-person b{display:block;color:var(--class);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp-person span{font-size:10px;color:var(--muted)}
.rp-person.on{outline:2px solid var(--gold);outline-offset:1px}
.rp-nick{width:100%;margin-top:5px;background:#0d141d;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:5px 7px;font-size:11px}
.rp-nick:focus{border-color:var(--gold);outline:none}
.rp-palette-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.rp-palette-head h3{margin:0;font-size:13px;color:var(--gold)}
.rp-cat-row{display:grid;grid-template-columns:88px 1fr;gap:8px;align-items:center;margin-bottom:7px}
.rp-cat-row:last-child{margin-bottom:0}
.rp-cat{margin:10px 0}
.rp-cat-name{font-size:10px;letter-spacing:.06em;color:#8fa3b8;font-weight:800}
.rp-spells{display:flex;flex-wrap:wrap;gap:5px}
.rp-spell{display:inline-flex;align-items:center;gap:6px;text-align:left;border:1px solid var(--line);background:#0f151e;border-radius:9px;padding:5px 8px;color:var(--text);max-width:100%}
.rp-spell i,.rp-spell img{width:24px;height:24px;border-radius:6px;display:grid;place-items:center;background:color-mix(in srgb,var(--class) 40%,#101821);color:#fff;font-style:normal;font-weight:900;flex:none;object-fit:cover;font-size:11px}
.rp-spell span{min-width:0}
.rp-spell b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}
.rp-spell em{display:block;font-style:normal;font-size:9px;color:var(--muted)}
.rp-spell.on{border-color:var(--gold);background:#2a2212;box-shadow:0 0 0 1px color-mix(in srgb,var(--gold) 33%,transparent)}
.rp-main-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.rp-main-acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.rp-zoom-acts{display:inline-flex;align-items:center;gap:4px;padding:2px;border:1px solid var(--line);border-radius:9px;background:#0e151e}
.rp-zoom-acts .ghost{padding:6px 9px;min-width:32px}
.rp-zoom-label{font-size:11px;color:var(--muted);min-width:52px;text-align:center;font-variant-numeric:tabular-nums}
.rp-callsign{color:var(--class)!important;font-weight:900}
.rp-who{color:var(--class)!important;font-weight:800}
.rp-boss-field{display:flex;flex-direction:column;gap:6px;min-width:min(100%,720px)}
.rp-boss-select-fallback{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.rp-boss-picker{display:flex;gap:6px;flex-wrap:wrap;max-width:min(100vw - 48px,920px)}
.rp-boss-chip{display:flex;align-items:center;gap:6px;padding:4px 8px 4px 4px;border:1px solid #2a3b50;border-radius:10px;background:#0e151e;color:#d7e2ef;cursor:pointer;max-width:160px}
.rp-boss-chip img{width:28px;height:28px;border-radius:6px;object-fit:cover;background:#0a0f15;flex:none}
.rp-boss-chip b{width:28px;height:28px;border-radius:6px;display:grid;place-items:center;background:#1a2430;flex:none}
.rp-boss-chip span{font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp-boss-chip.on{border-color:var(--gold);background:#2a2212;box-shadow:0 0 0 1px color-mix(in srgb,var(--gold) 33%,transparent)}
.rp-boss-chip:hover{border-color:#3a5472}
.rp-boss-strip{margin:0 0 12px;padding:10px 12px;border:1px solid #2a3b50;border-radius:12px;background:#0e151e}
.rp-boss-strip-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.rp-boss-strip-title{display:flex;align-items:center;gap:10px;min-width:0}
.rp-boss-strip-title h3{margin:0;font-size:13px;color:var(--gold)}
.rp-boss-strip-title .sub{font-size:11px;color:var(--muted);margin-top:2px}
.rp-boss-portrait{width:40px;height:40px;border-radius:8px;object-fit:cover;border:1px solid #3a5472;background:#0a0f15;flex:none}
.rp-boss-grid-scroll{max-height:none;border-radius:10px;border:1px solid #1e2a38;overflow:auto}
.rp-boss-grid thead th.rp-phase-col,
.rp-grid thead th.rp-phase-col{overflow:visible}
.rp-boss-grid thead th.rp-boss-skill-h,
.rp-boss-grid tbody th.rp-boss-skill{position:sticky;left:0;z-index:3;background:#121a24;text-align:left}
.rp-boss-grid thead th.rp-boss-skill-h{min-width:120px;max-width:160px;width:140px;text-align:center;font-size:10px;color:#7d8fa3;font-weight:700;padding:6px 4px}
.rp-boss-grid tbody th.rp-boss-skill{min-width:120px;max-width:160px;width:140px;padding:5px 8px;font-size:11px;font-weight:800;color:#d7e2ef;vertical-align:middle;white-space:normal;word-break:keep-all;line-height:1.25}
.rp-boss-grid tbody th.rp-boss-skill .rp-wh{margin-right:6px;vertical-align:middle}
.rp-boss-grid tbody th.rp-boss-skill img,
.rp-boss-grid tbody th.rp-boss-skill .rp-wh img{width:20px;height:20px;border-radius:4px;display:inline-block;vertical-align:middle}
.rp-boss-grid tbody th.rp-boss-skill span{vertical-align:middle}
.rp-boss-grid td.rp-boss-hit{text-align:center;vertical-align:middle;background:#152033;box-shadow:inset 0 0 0 1px #2a3b5088;padding:4px}
.rp-boss-grid td.rp-boss-hit img,
.rp-boss-grid td.rp-boss-hit .rp-wh img{width:20px;height:20px;border-radius:4px;display:block;margin:0 auto}
.rp-boss-grid td.rp-boss-hit.damage{background:#2a181c}
.rp-boss-grid td.rp-boss-hit.add{background:#14241c}
.rp-boss-grid td.rp-boss-hit.soak{background:#1a2030}
.rp-boss-grid td.rp-boss-hit.enrage{background:#2a2414}
.rp-boss-grid td.rp-boss-hit.tank{background:#182030}
.rp-boss-grid td.rp-boss-hit.movement{background:#1a2430}
.rp-boss-grid td.rp-boss-empty{background:#0a0f15;min-width:44px}
.rp-boss-grid thead th.rp-grid-ev .rp-ev-name{display:none!important}
.rp-wh{color:inherit;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;line-height:0}
.rp-wh:hover{filter:brightness(1.12)}
.rp-boss-hit .rp-wh img,.rp-boss-skill .rp-wh img{width:22px;height:22px;border-radius:4px;display:block}
.rp-boss-skill .rp-wh{margin-right:6px;vertical-align:middle}
.rp-boss-skill .rp-wh + span,.rp-boss-skill > span{vertical-align:middle}
.rp-phase-rail .rp-wh img,.rp-phase-rail img{width:14px!important;height:14px!important;border-radius:3px}
.rp-grid.compact thead th.rp-grid-ev .rp-wh,
.rp-boss-grid thead th.rp-grid-ev .rp-wh{display:flex;justify-content:center;margin:0 auto 2px;line-height:0}
.rp-grid.compact thead th.rp-grid-ev img,
.rp-grid.compact thead th.rp-grid-ev .rp-wh img,
.rp-boss-grid thead th.rp-grid-ev img,
.rp-boss-grid thead th.rp-grid-ev .rp-wh img,
.rp-grid-ev .rp-wh .rp-ev-ico,
.rp-grid-ev .rp-wh img,
.rp-boss-grid thead .iconsmall,
.rp-boss-grid thead .iconmedium,
.rp-grid.compact thead .iconsmall,
.rp-grid.compact thead .iconmedium{
  width:16px!important;
  height:16px!important;
  max-width:16px!important;
  max-height:16px!important;
  border-radius:3px;
  display:block;
  margin:0 auto;
  object-fit:cover;
  background-size:16px 16px!important;
}
.rp-event .rp-wh img{width:16px;height:16px;border-radius:3px;margin-right:4px}
.rp-assign .rp-wh,.rp-grid-spell-in .rp-wh{display:inline-flex;flex:none}
.rp-assign .rp-wh img,.rp-grid-spell-in .rp-wh img{width:18px;height:18px;border-radius:4px;object-fit:cover}
.rp-phase-col{min-width:18px!important;max-width:24px!important;width:20px;padding:4px 0!important;vertical-align:bottom;background:transparent}
.rp-phase-col.varied{background:transparent}
.rp-phase-rail{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px;min-height:48px;height:100%;position:relative}
.rp-phase-rail > i{position:absolute;top:0;bottom:16px;left:50%;width:2px;transform:translateX(-50%);background:#69b0ff;border-radius:1px}
.rp-phase-col.varied .rp-phase-rail > i{background:var(--gold);width:3px}
.rp-phase-rail .rp-phase-name{display:none!important}
.rp-phase-rail b{font-size:8px;color:#9ec1ff;font-variant-numeric:tabular-nums;position:relative;z-index:1;writing-mode:horizontal-tb;transform:none;white-space:nowrap}
.rp-phase-range{font-style:normal;font-size:8px;font-weight:800;color:var(--gold);line-height:1.1;text-align:center;max-width:22px;overflow:hidden;position:relative;z-index:1}
.rp-phase-cell{width:20px;min-width:18px;padding:0!important;position:relative;background:linear-gradient(90deg,transparent 44%,#69b0ff 44%,#69b0ff 56%,transparent 56%);box-shadow:none}
.rp-phase-cell.varied{background:linear-gradient(90deg,color-mix(in srgb,var(--gold) 9%,transparent) 0%,color-mix(in srgb,var(--gold) 9%,transparent) 100%),linear-gradient(90deg,transparent 44%,var(--gold) 44%,var(--gold) 56%,transparent 56%)}
.rp-phase-cell i{display:none}
.rp-phase-layer{position:absolute;inset:0;pointer-events:none;z-index:2}
.rp-phase-vline{position:absolute;top:0;bottom:0;width:2px;background:#69b0ff;transform:translateX(-50%);z-index:2;pointer-events:none}
.rp-phase-vline.varied{background:var(--gold);width:3px}
.rp-phase-vline span,.rp-phase-vline b,.rp-phase-vline em{display:none}
.rp-phase-vline.lane{top:0;bottom:0;opacity:.9}
.rp-phase-vline.lane span,.rp-phase-vline.lane b,.rp-phase-vline.lane em{display:none}
.rp-phase-band{position:absolute;top:0;bottom:0;background:color-mix(in srgb,var(--gold) 13%,transparent);border-left:1px dashed color-mix(in srgb,var(--gold) 53%,transparent);border-right:1px dashed color-mix(in srgb,var(--gold) 53%,transparent);z-index:1;pointer-events:none}
.rp-phase-band.lane{opacity:.55}
.rp-event img{width:16px;height:16px;border-radius:3px;vertical-align:middle;margin-right:4px}
.rp-cell{position:relative;min-height:40px;min-width:72px;padding:2px;display:flex;flex-wrap:wrap;gap:2px;cursor:pointer;align-items:center;justify-content:center;overflow:hidden}
.rp-cell:hover{background:#141c28}
.rp-cell.blocked{cursor:not-allowed;background:transparent;box-shadow:none}
.rp-cell.blocked.band{min-height:40px;background:repeating-linear-gradient(-45deg,#2a1a2088,#2a1a2088 4px,#1a121688 4px,#1a121688 8px);box-shadow:inset 0 0 0 1px #5a303866}
.rp-cell.blocked.band:hover{filter:brightness(1.06)}
.rp-cd-span{padding:0!important;vertical-align:middle}
.rp-cd-band-label{font-size:9px;font-weight:800;color:#9a7a80;letter-spacing:.02em;opacity:.85;pointer-events:none}
.rp-cd-fill{display:none}
.rp-cell.partial{cursor:pointer;background:#101821;box-shadow:inset 0 0 0 1px #3a547255;min-height:40px;overflow:hidden;position:relative}
.rp-partial-lock,.rp-fine-lock{position:absolute;top:0;bottom:0;pointer-events:none;z-index:1}
.rp-fine-lock.left,.rp-partial-lock{left:0;background:linear-gradient(90deg,#ff3b4566,#ff6b7288);box-shadow:inset -2px 0 0 #ff6b72}
.rp-fine-lock.right{right:0;background:linear-gradient(90deg,#ff6b7288,#ff3b4566);box-shadow:inset 2px 0 0 #ff6b72}
.rp-partial-free{position:absolute;top:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;z-index:2;min-width:24%}
.rp-partial-free .rp-plus{color:#6a9a78;font-size:12px;margin:0}
.rp-partial-free em{font-style:normal;font-size:8px;font-weight:800;color:#8fa3b8;font-variant-numeric:tabular-nums}
.rp-cell.filled{cursor:default;background:#121820;box-shadow:inset 0 0 0 1px #2a3a4a66;min-height:44px;overflow:hidden;position:relative}
.rp-cell.filled.has-lock{
  --lock-l:0%;
  --lock-r:0%;
  background:
    linear-gradient(90deg,#ff3b4577,#ff6b7299) left top / var(--lock-l) 100% no-repeat,
    linear-gradient(90deg,#ff6b7299,#ff3b4577) right top / var(--lock-r) 100% no-repeat,
    #121820 !important;
  box-shadow:inset 0 0 0 1px #7a404866;
}
.rp-cell.filled .rp-fine-lock{z-index:1}
.rp-cell.filled.fine-bad{box-shadow:inset 0 0 0 1px #ff6b72}
.rp-fine-track{position:absolute;inset:0;pointer-events:none;opacity:.35;overflow:hidden;border-radius:inherit;z-index:0}
.rp-fine-track i{position:absolute;top:0;bottom:0;width:1px;background:#3a5472}
.rp-fine-track i.strong{width:1px;background:#5a7a9a;opacity:.8}
.rp-fine-mid{position:absolute;top:0;bottom:0;width:1px;background:color-mix(in srgb,var(--gold) 40%,transparent);pointer-events:none;transform:translateX(-50%);z-index:1}
.rp-assign.fine{position:absolute;top:50%;left:0;--fine-chip:26px;--fine-t:0.5;transform:translateY(-50%);z-index:3;cursor:ew-resize;touch-action:none;margin:0}
.rp-assign.fine.dragging{outline:2px solid #fff;outline-offset:0;z-index:4}
.rp-fine-time{position:absolute;left:50%;bottom:2px;transform:translateX(-50%);font-size:8px;font-weight:800;color:#c9b27a;pointer-events:none;font-variant-numeric:tabular-nums;z-index:2}
.rp-plus{color:#3a5472;font-weight:900;margin:auto;font-size:13px}
.rp-hint{font-size:11px;color:var(--muted);margin-bottom:8px}
.rp-wcl-bar{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.rp-wcl-note{font-size:11px;color:var(--muted)}
.rp-wcl-panel{margin-bottom:12px;padding:12px;border:1px solid #2a3b50;background:#0e151e}
.rp-wcl-panel-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
.rp-wcl-panel-h h3{margin:0;font-size:14px}
.rp-wcl-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-bottom:10px}
.rp-wcl-controls label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#8fa3b8;font-weight:700}
.rp-wcl-controls select,.rp-wcl-controls input{min-width:160px;background:#0d141d;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:7px 8px}
.rp-wcl-warn,.rp-wcl-err{font-size:12px;padding:8px 10px;border-radius:8px;margin-bottom:8px}
.rp-wcl-warn{background:#2a2212;color:var(--gold);border:1px solid #6a5420}
.rp-wcl-err{background:#3d2028;color:#ff9aa0;border:1px solid #a94957}
.rp-wcl-ok{font-size:12px;color:#68e2aa;margin-bottom:8px}
.rp-phase-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:10px;padding:8px 10px;border:1px solid #2a3b50;border-radius:10px;background:#0c121a}
.rp-phase-bar>b{font-size:12px;color:var(--gold)}
.rp-phase-bar.empty{padding:6px 10px}
.rp-phase-items{display:flex;flex-wrap:wrap;gap:6px 10px}
.rp-phase-item{display:flex;align-items:center;gap:4px;padding:3px 6px;border:1px solid #243246;border-radius:8px;background:#0e151e}
.rp-phase-item.changed{border-color:color-mix(in srgb,var(--gold) 55%,#243246)}
.rp-phase-name{font-size:11px;font-weight:800;color:#c9d6e3;min-width:44px}
.rp-phase-item input{width:52px;text-align:center;background:#0d141d;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:4px 2px;font-variant-numeric:tabular-nums;font-weight:700}
.rp-phase-item button{padding:3px 6px;font-size:11px;min-width:0}
.rp-phase-item em{font-style:normal;font-size:10px;color:var(--muted);white-space:nowrap}
.rp-phase-acts{display:flex;gap:6px}
.rp-phase-note{flex-basis:100%;font-size:11px;color:var(--muted);line-height:1.5}
.rp-phase-bar .rp-wcl-err{flex-basis:100%;margin:0}
.rp-wcl-all{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--gold) 35%,#243246);border-radius:10px;background:color-mix(in srgb,var(--gold) 6%,#0c121a)}
.rp-wcl-all-btn{align-self:flex-start;font-weight:800}
.rp-wcl-all-note{font-size:11px;line-height:1.5;color:#9fb0c3}
.rp-wcl-progress{display:flex;flex-direction:column;gap:6px}
.rp-wcl-progress-bar{height:6px;border-radius:99px;background:#1c2a3c;overflow:hidden}
.rp-wcl-progress-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),#68e2aa);transition:width .3s}
.rp-wcl-progress-now{font-size:11px;color:var(--gold)}
.rp-wcl-progress-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:3px 12px;font-size:11px}
.rp-wcl-progress-list li{display:flex;gap:6px;align-items:baseline;min-width:0}
.rp-wcl-progress-list li b{flex:none;color:#d7e2ef}
.rp-wcl-progress-list li span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#8fa3b8}
.rp-wcl-progress-list li.ok b::before{content:"✓ ";color:#68e2aa}
.rp-wcl-progress-list li.bad b::before{content:"✕ ";color:#ff6b72}
.rp-wcl-progress-list li.bad span{color:#ff9aa0}
.rp-wcl-table-wrap{overflow:auto;max-height:220px;border:1px solid #243246;border-radius:8px}
.rp-wcl-table{width:100%;border-collapse:collapse;font-size:12px}
.rp-wcl-table th,.rp-wcl-table td{padding:7px 8px;border-bottom:1px solid #1e2a38;text-align:left;vertical-align:middle}
.rp-wcl-table th{background:#121a24;color:#8fa3b8;font-size:10px;position:sticky;top:0}
.rp-wcl-table td em{display:block;font-style:normal;font-size:10px;color:#8fa3b8}
.rp-wcl-rank{font-weight:900;color:var(--gold);width:36px}
.rp-wcl-dur{font-variant-numeric:tabular-nums;color:#c5d0dc}
.rp-wcl-phase{font-variant-numeric:tabular-nums;color:#c5d0dc;white-space:nowrap}
.rp-wcl-phase.early{color:#ff9aa0}
.rp-wcl-phase.late{color:#8ec5ff}
.rp-wcl-phase.none{color:var(--muted)}
.rp-wcl-link{color:var(--blue);font-weight:800;text-decoration:none}
.rp-wcl-link:hover{text-decoration:underline}
.rp-wcl-table .empty{text-align:center;color:var(--muted);padding:16px}
.rp-wcl-mini{flex:none;padding:1px 5px;border-radius:4px;border:1px solid #33465e;background:#16212e;color:#8ec5ff;font-size:9px;font-weight:900;letter-spacing:.3px;line-height:14px;cursor:pointer}
.rp-wcl-mini:hover,.rp-wcl-mini.on{background:#1f3550;border-color:#5b8fc9;color:#fff}
.rp-wcl-pop{position:fixed;z-index:1000;max-height:min(460px,calc(100vh - 16px));display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid #33465e;border-top:2px solid color-mix(in srgb,var(--class) 70%,#33465e);border-radius:10px;background:#0e151e;box-shadow:0 12px 32px #000a}
.rp-wcl-pop-h{display:flex;align-items:center;gap:8px}
.rp-wcl-pop-h .rp-spec-ico-wrap,.rp-wcl-pop-h .rp-spec-ico{width:22px;height:22px;border-radius:5px;flex:none}
.rp-wcl-pop-title{display:flex;flex-direction:column;flex:1;min-width:0}
.rp-wcl-pop-title b{font-size:13px;color:color-mix(in srgb,var(--class) 70%,#dfe7ef)}
.rp-wcl-pop-title span{font-size:10px;color:#8fa3b8}
.rp-wcl-pop-x{padding:2px 8px;font-size:12px}
.rp-wcl-pop-scroll{overflow:auto;min-height:0;flex:1;border:1px solid #243246;border-radius:8px}
.rp-wcl-pop-empty{padding:18px;text-align:center;color:var(--muted);font-size:12px}
.rp-wcl-pop-note{font-size:10px;color:#7d8fa3}
.rp-wcl-table.compact{font-size:11px}
.rp-wcl-table.compact th,.rp-wcl-table.compact td{padding:4px 6px}
.rp-wcl-table.compact tr.on td{background:#1a2b1f}
.rp-wcl-who{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp-wcl-who .rp-wcl-link{margin-left:6px;font-size:10px}
.rp-wcl-note-box{padding:8px 10px;border:1px solid #2c4058;border-radius:8px;background:#121c28;color:#b9c8d8;font-size:12px}
.rp-modal-back{position:fixed;inset:0;z-index:1001;background:#0008}
.rp-nsrt-modal{position:fixed;z-index:1002;left:50%;top:50%;transform:translate(-50%,-50%);width:min(640px,calc(100vw - 24px));max-height:calc(100vh - 24px);display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid #33465e;border-top:2px solid var(--gold);border-radius:10px;background:#0e151e;box-shadow:0 16px 40px #000c}
.rp-nsrt-text{width:100%;min-height:260px;flex:1;resize:vertical;box-sizing:border-box;padding:8px;border:1px solid #243246;border-radius:8px;background:#080d13;color:#cfe0f0;font:11px/1.5 ui-monospace,Consolas,monospace;white-space:pre;overflow:auto}
.rp-nsrt-acts{display:flex;align-items:center;gap:10px;justify-content:space-between}
.rp-wcl-mini-apply{padding:2px 8px;font-size:10px;min-width:40px}
.rp-grid-scroll,.rp-time-scroll{overflow:auto;max-height:none;border:1px solid var(--line);border-radius:12px;background:#0c121a}
.rp-grid-stack{display:flex;flex-direction:column;gap:14px}
.rp-grid-block{border-radius:12px;overflow:hidden;border:1px solid #243246;background:#0c121a}
.rp-grid-block-h{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:12px;font-weight:900;letter-spacing:.04em;color:var(--gold);background:#121a24;border:0;border-bottom:1px solid #243246;cursor:pointer;text-align:left}
.rp-grid-block-h:hover{filter:brightness(1.08)}
.rp-grid-block-h em{font-style:normal;font-size:10px;color:#8fa3b8;background:#1c2a3c;border-radius:99px;padding:2px 7px}
.rp-cat-chevron{width:14px;color:#8fa3b8;flex:none}
.rp-cat-title{flex:1;min-width:0}
.rp-cat-toggle-label{font-size:10px;font-weight:800;color:#8fa3b8;background:#1c2a3c;border-radius:99px;padding:2px 8px}
.rp-grid-block.collapsed .rp-grid-scroll{display:none}
.rp-grid-block.collapsed .rp-grid-block-h{border-bottom:0}
.rp-track-group-h{display:flex;align-items:center;gap:8px;width:100%;margin:0 0 6px;padding:6px 8px;font-size:11px;font-weight:900;color:var(--gold);letter-spacing:.04em;background:#121a24;border:1px solid #243246;border-radius:8px;cursor:pointer;text-align:left}
.rp-track-group-h em{font-style:normal;font-size:10px;color:#8fa3b8;background:#1c2a3c;border-radius:99px;padding:2px 7px}
.rp-track-group.collapsed .rp-track-group-body{display:none}
.rp-track-group.collapsed .rp-track-group-h{margin-bottom:8px}
.rp-grid-block[data-cat="raidHeal"]{border-color:#1e5a42}
.rp-grid-block[data-cat="raidHeal"] .rp-grid-block-h{color:#68e2aa}
.rp-grid-block[data-cat="raidDef"]{border-color:#6a5420}
.rp-grid-block[data-cat="raidDef"] .rp-grid-block-h{color:var(--gold)}
.rp-grid-block[data-cat="external"]{border-color:#2a4a72}
.rp-grid-block[data-cat="external"] .rp-grid-block-h{color:#8ec5ff}
.rp-grid-block[data-cat="mobility"]{border-color:#4a2a72}
.rp-grid-block[data-cat="mobility"] .rp-grid-block-h{color:#d4a0ff}
.rp-grid-block .rp-grid-scroll{max-height:none;border:0;border-radius:0}
.rp-grid{border-collapse:separate;border-spacing:0;min-width:100%;font-size:11px}
.rp-grid th,.rp-grid td{border-bottom:1px solid #1e2a38;border-right:1px solid #1e2a38;padding:0;vertical-align:middle}
.rp-grid thead th{position:sticky;top:0;z-index:2;background:#121a24;padding:7px 4px;text-align:center;min-width:92px}
.rp-grid thead th small{display:block;color:var(--gold);font-weight:800}
.rp-grid tbody th{position:sticky;left:0;z-index:1;background:#101821;padding:8px;text-align:left;min-width:130px;white-space:nowrap}
.rp-grid.compact thead th{min-width:44px;max-width:52px;padding:6px 2px;font-size:10px}
.rp-grid.compact thead th b{color:var(--gold);font-size:10px}
.rp-grid.compact thead th.rp-grid-ev{min-width:76px;max-width:110px;padding:6px 4px;vertical-align:bottom}
.rp-grid.compact thead th.rp-grid-ev .rp-ev-name{display:block;color:#d7e2ef;font-size:10px;font-weight:800;line-height:1.25;white-space:normal;word-break:keep-all;margin:3px 0 2px;max-height:none;overflow:visible}
.rp-grid.compact thead th.rp-grid-ev b{font-size:10px}
.rp-grid.compact tbody th.rp-grid-spell,.rp-grid.compact thead th.rp-grid-spell{min-width:100px;max-width:118px;width:100px;padding:3px 5px}
.rp-grid.person-grouped thead th.rp-grid-who,
.rp-grid.person-grouped tbody th.rp-pgroup-who{position:sticky;left:0;z-index:3;min-width:56px;max-width:64px;width:58px;padding:0;vertical-align:middle;background:#0e141c}
.rp-grid.person-grouped thead th.rp-grid-spell,
.rp-grid.person-grouped tbody th.rp-grid-spell{position:sticky;left:58px;z-index:2;background:#101821}
.rp-grid.person-grouped thead th.rp-grid-who{z-index:4;background:#121a24;text-align:center;font-size:9px;color:#7d8fa3;font-weight:700}
.rp-pgroup{--band:#0e141c}
.rp-pgroup td,.rp-pgroup th.rp-grid-spell{background:var(--band);border-right-color:#1a2430;box-shadow:inset 2px 0 0 color-mix(in srgb,var(--class) 55%,#243246)}
.rp-pgroup td .rp-cell{width:100%;min-height:44px;box-sizing:border-box}
.rp-pgroup.start td,.rp-pgroup.start th.rp-grid-spell{border-top:1px solid color-mix(in srgb,var(--class) 40%,#243246);box-shadow:inset 2px 0 0 color-mix(in srgb,var(--class) 55%,#243246)}
.rp-pgroup.end td,.rp-pgroup.end th.rp-grid-spell{border-bottom:1px solid color-mix(in srgb,var(--class) 40%,#243246)}
.rp-pgroup.mid td,.rp-pgroup.mid th.rp-grid-spell{border-bottom-color:#16202c}
.rp-pgroup-who{border-right:1px solid #243246!important;border-top:1px solid color-mix(in srgb,var(--class) 40%,#243246)!important;border-bottom:1px solid color-mix(in srgb,var(--class) 40%,#243246)!important;border-left:2px solid color-mix(in srgb,var(--class) 70%,#243246)!important;background:#0e141c!important;box-shadow:none!important}
.rp-pgroup-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 3px;min-height:100%;text-align:center}
.rp-pgroup-card .rp-spec-ico-wrap{width:18px;height:18px}
.rp-pgroup-card .rp-spec-ico{width:18px;height:18px;border-radius:4px;box-shadow:none;border-color:#314457}
.rp-pgroup-card b{display:block;font-size:9px;font-weight:800;color:color-mix(in srgb,var(--class) 75%,#c8d4e0);letter-spacing:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}
.rp-grid-spell-in{display:flex;align-items:center;gap:5px;min-width:0}
.rp-grid-spell-in i,.rp-grid-spell-in img{width:18px;height:18px;border-radius:4px;display:grid;place-items:center;background:color-mix(in srgb,var(--class) 28%,#101821);color:#fff;font-style:normal;font-weight:900;flex:none;object-fit:cover;font-size:10px}
.rp-grid-spell-in span{min-width:0}
.rp-grid-spell-in b{display:block;font-size:10px;font-weight:700;color:#c5d0dc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:78px}
.rp-grid-spell-in em,.rp-grid-spell-in em.rp-who{display:none}
.rp-track-name em.rp-who{color:var(--class);font-weight:800}
.rp-person-bundle{margin:0 0 8px;border:1px solid #243246;border-left:2px solid color-mix(in srgb,var(--class) 65%,#243246);border-radius:8px;background:#0c121a;overflow:hidden;box-shadow:none}
.rp-person-bundle-h{display:flex;align-items:center;gap:6px;padding:4px 8px;background:#121a24;border-bottom:1px solid #1e2a38}
.rp-person-bundle-h .rp-spec-ico-wrap{width:18px;height:18px;flex:none}
.rp-person-bundle-h .rp-spec-ico{width:18px;height:18px;border-radius:4px}
.rp-person-bundle-h .rp-pgroup-text{display:flex;flex-direction:column;align-items:flex-start;gap:0;flex:1;min-width:0}
.rp-person-bundle-h .rp-pgroup-text b{font-size:11px;font-weight:800;color:color-mix(in srgb,var(--class) 70%,#c8d4e0)}
.rp-person-bundle-h .rp-pgroup-text span{font-size:9px;color:#7d8fa3}
.rp-person-bundle-h em{font-style:normal;font-size:9px;font-weight:800;color:#7d8fa3;background:#1c2a3c;border-radius:99px;padding:1px 6px;flex:none}
.rp-person-bundle-body{padding:4px 6px 6px}
.rp-person-bundle-body .rp-track{grid-template-columns:calc(var(--label,128px) - 8px) var(--w)}
.rp-person-bundle .rp-track{margin-bottom:4px}
.rp-person-bundle .rp-track:last-child{margin-bottom:0}
.rp-track-spell-ico{display:inline-flex;flex:none}
.rp-track-spell-ico img,.rp-track-spell-ico i{width:18px;height:18px;border-radius:4px;object-fit:cover;display:inline-grid;place-items:center;font-style:normal;font-size:10px;font-weight:900;background:#1c2a3c;color:#fff}
.rp-assign{display:flex;align-items:center;border-left:3px solid var(--class);background:color-mix(in srgb,var(--class) 22%,#101821);border-radius:6px;padding:5px 7px;min-width:64px;cursor:pointer}
.rp-assign b{font-size:11px;color:var(--class);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp-assign.on{outline:2px solid var(--gold)}
.rp-assign.icon-only{min-width:26px;width:26px;height:26px;padding:0;border-left:0;justify-content:center;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--class) 55%,transparent)}
.rp-assign.icon-only i,.rp-assign.icon-only img{width:22px;height:22px;border-radius:5px;display:grid;place-items:center;background:color-mix(in srgb,var(--class) 40%,#101821);color:#fff;font-style:normal;font-weight:900;font-size:11px;object-fit:cover}
.rp-time{position:relative;width:max-content;min-width:calc(var(--label,128px) + var(--w) + 48px);padding:8px 12px 16px}
.rp-time-head,.rp-track{display:grid;grid-template-columns:var(--label,128px) var(--w);gap:8px;align-items:stretch;margin-bottom:6px}
.rp-time-corner{font-size:11px;font-weight:800;color:#8fa3b8;padding-top:4px}
.rp-time-plot{position:relative;min-width:var(--w);width:var(--w)}
.rp-time-axis{position:relative;height:22px;margin-bottom:8px}
.rp-time-axis span{position:absolute;top:0;color:#7d8fa3;font-size:10px;transform:translateX(-50%);white-space:nowrap}
.rp-time-axis span.start{color:var(--gold);font-weight:800}
.rp-time-axis span.end{color:#8fa3b8}
.rp-time-events{position:relative;height:54px;margin-bottom:4px;border-bottom:1px solid #243246}
.rp-event{position:absolute;top:0;transform:translateX(-50%);background:#1b2d44;border:1px solid #3a5472;border-radius:8px;color:#fff;padding:6px 8px;min-width:72px;pointer-events:none;z-index:1}
.rp-event b{display:block;font-size:11px}
.rp-event i{font-style:normal;font-size:10px;color:var(--gold)}
.rp-event.damage{border-color:#a94957;background:#3d2028}
.rp-event.enrage{border-color:#c9a24a;background:#2a2212}
.rp-track-group{margin-bottom:12px}
.rp-time-corner{display:flex;align-items:center;gap:6px;min-width:0}
.rp-time-corner span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#d7e2ef}
.rp-time-boss-portrait{width:24px;height:24px;border-radius:6px;object-fit:cover;flex:none;box-shadow:0 0 0 1px #3a5472}
.rp-boss-tracks{margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid #243246}
.rp-time-corner,.rp-track-name{position:sticky;left:0;z-index:6;background:#0c121a}
.rp-time-split{display:flex;flex-direction:column;max-height:calc(100vh - 16px);border:1px solid var(--line);border-radius:12px;background:#0c121a;overflow:hidden}
.rp-time-split .rp-time-scroll{border:0;border-radius:0;background:transparent;scrollbar-gutter:stable}
.rp-time-top{flex:none;max-height:var(--boss-h,42vh);overflow-x:hidden!important;overflow-y:auto}
.rp-time-top .rp-time{padding-bottom:6px}
.rp-time-top .rp-time-head{position:sticky;top:0;z-index:8;margin:-8px 0 6px;padding-top:8px;background:#0c121a}
.rp-time-top .rp-boss-tracks{margin-bottom:0;padding-bottom:0;border-bottom:0}
.rp-time-bottom{flex:1 1 auto;min-height:0}
.rp-time-bottom .rp-time{padding-top:10px}
.rp-time-splitter{flex:none;height:10px;position:relative;cursor:row-resize;background:#101822;border-top:1px solid #243246;border-bottom:1px solid #243246;touch-action:none;z-index:9}
.rp-time-splitter span{position:absolute;left:50%;top:50%;width:44px;height:4px;transform:translate(-50%,-50%);border-radius:99px;background:#3a5472}
.rp-time-splitter:hover,.rp-time-split.dragging .rp-time-splitter{background:#16263a}
.rp-time-splitter:hover span,.rp-time-split.dragging .rp-time-splitter span{background:#69b0ff}
.rp-time-split.dragging{user-select:none;cursor:row-resize}
.rp-board-wrap{position:relative}
.rp-boss-rows-btns{display:flex;gap:3px;flex:0 0 100%;padding-left:30px}
.rp-time-top .rp-time-corner{flex-wrap:wrap;row-gap:3px;align-content:flex-start}
.rp-time-top .rp-time-corner span{flex:1}
.rp-skill-filter{position:absolute;left:8px;top:68px;z-index:40;width:290px;max-height:min(70vh,560px);display:flex;flex-direction:column;background:#101822f7;border:1px solid #2e4058;border-radius:10px;box-shadow:0 10px 28px #000c;font-size:12px;color:#d7e2ef}
.rp-skill-filter-h{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid #243246}
.rp-skill-filter-h b{font-size:12px}
.rp-skill-filter-h em{font-style:normal;font-size:10px;color:#8fa3b8;font-variant-numeric:tabular-nums}
.rp-skill-filter-x{margin-left:auto;width:22px;height:22px;border:0;border-radius:6px;background:transparent;color:#8fa3b8;font-size:16px;line-height:1;cursor:pointer}
.rp-skill-filter-x:hover{background:#1c2a3c;color:#fff}
.rp-skill-filter-acts,.rp-skill-filter-foot{display:flex;flex-wrap:wrap;gap:4px;padding:6px 10px}
.rp-skill-filter-acts{border-bottom:1px solid #1e2a38}
.rp-skill-filter-foot{border-top:1px solid #1e2a38}
.rp-skill-filter-acts button,.rp-skill-filter-foot button{padding:3px 8px;border-radius:6px;border:1px solid #2e4058;background:#142030;color:#b9c7d6;font-size:10px;font-weight:700;cursor:pointer}
.rp-skill-filter-acts button:hover,.rp-skill-filter-foot button:hover{background:#1c2c42;color:#fff}
.rp-skill-filter-list{overflow-y:auto;padding:4px 4px 6px}
.rp-skill-filter-list label{display:flex;align-items:center;gap:7px;padding:4px 6px;border-radius:6px;cursor:pointer}
.rp-skill-filter-list label:hover{background:#18243a}
.rp-skill-filter-list input{margin:0;accent-color:#e0a24a;flex:none}
.rp-skill-filter-list img,.rp-skill-filter-list i{width:18px;height:18px;border-radius:4px;object-fit:cover;flex:none;background:#1c2a3c}
.rp-skill-filter-list span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp-skill-filter-list em{font-style:normal;font-size:10px;color:#5f7288;font-variant-numeric:tabular-nums}
.rp-skill-filter-list label.major span{color:#ffcf7a;font-weight:700}
.rp-boss-rows-toggle{flex:none;padding:2px 7px;border-radius:99px;border:1px solid #3a5472;background:#142030;color:#9ec1ff;font-size:10px;font-weight:800;cursor:pointer;white-space:nowrap}
.rp-boss-rows-toggle:hover{background:#1c2c42}
.rp-boss-rows-toggle.on{border-color:#e0a24a;background:#2a1f10;color:#ffcf7a}
.rp-boss-tracks.compact .rp-boss-track{margin-bottom:1px}
.rp-boss-tracks.compact .rp-boss-track .rp-track-name,.rp-boss-tracks.compact .rp-boss-lane{height:27px}
.rp-boss-tracks.compact .rp-track-name .rp-track-spell-ico img{width:16px;height:16px}
.rp-boss-tracks.compact .rp-boss-mark{top:2px}
.rp-boss-tracks.compact .rp-boss-mark img,.rp-boss-tracks.compact .rp-boss-mark i{width:15px!important;height:15px!important;max-width:15px!important;max-height:15px!important;border-radius:3px}
.rp-boss-tracks.compact .rp-boss-mark em{font-size:8px;line-height:9px}
.rp-time .rp-person-bundle{overflow:clip}
.rp-time .rp-track-group-h,.rp-time .rp-person-bundle-h{position:sticky;left:0;z-index:7;width:fit-content;min-width:var(--label,128px)}
.rp-time .rp-person-bundle-h{border-bottom-right-radius:6px}
.rp-boss-track{margin-bottom:2px}
.rp-boss-track .rp-track-name{padding-top:0;height:26px}
.rp-boss-track .rp-track-name b{flex:1;font-weight:600;color:#b9c7d6}
.rp-boss-track .rp-track-name em{flex:none;font-size:9px;color:#5f7288}
.rp-boss-track.major .rp-track-name b{color:#ffcf7a;font-weight:800}
.rp-boss-lane{height:26px;cursor:default;border-radius:5px;background:#0c1219;box-shadow:inset 0 0 0 1px #18222e}
.rp-boss-track:nth-child(even) .rp-boss-lane{background:#0e151e}
.rp-boss-track.major .rp-boss-lane{background:#1a1310;box-shadow:inset 0 0 0 1px #4a3420,inset 3px 0 0 #e0a24a}
.rp-boss-mark{position:absolute;top:50%;transform:translate(-50%,-50%);z-index:3;line-height:0}
.rp-boss-mark .rp-wh,.rp-boss-mark > span{display:block;line-height:0}
.rp-boss-mark img,.rp-boss-mark i{width:20px!important;height:20px!important;max-width:20px!important;max-height:20px!important;border-radius:4px;object-fit:cover;display:block;box-shadow:0 0 0 1px #000a,0 1px 3px #000c;background:#1c2a3c}
.rp-boss-track.major .rp-boss-mark img{box-shadow:0 0 0 1px #e0a24a,0 1px 3px #000c}
.rp-boss-mark:hover{z-index:5;filter:brightness(1.25)}
.rp-boss-track .rp-track-name{height:34px}
.rp-boss-lane{height:34px}
.rp-boss-mark{top:3px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:1px}
.rp-boss-mark em{font-style:normal;font-size:9px;line-height:10px;color:#7d8fa3;font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none}
.rp-boss-track.major .rp-boss-mark em{color:#d9b067}
.rp-boss-mark.hit img{box-shadow:0 0 0 2px #ff6b72,0 0 8px #ff6b72aa!important}
.rp-boss-mark.hit em{color:#ff9aa0;font-weight:800}
.rp-tl-time{position:relative;z-index:1;margin-left:3px;font-size:9px;font-weight:700;color:#c9d6e4;font-variant-numeric:tabular-nums;white-space:nowrap;text-shadow:0 1px 2px #000;pointer-events:none}
.rp-lane-ghost{position:absolute;top:4px;bottom:4px;--gc:#69b0ff;background:linear-gradient(90deg,transparent calc(var(--cursor,0px) - 1px),var(--gc) calc(var(--cursor,0px) - 1px),var(--gc) calc(var(--cursor,0px) + 1px),transparent calc(var(--cursor,0px) + 1px)),color-mix(in srgb,var(--gc) 13%,transparent);border-left:1px dashed color-mix(in srgb,var(--gc) 55%,transparent);border-right:1px dashed color-mix(in srgb,var(--gc) 55%,transparent);border-radius:4px;pointer-events:none;z-index:1}
.rp-lane-ghost.hit{--gc:#ff6b72}
.rp-lane-tip{position:fixed;z-index:9999;transform:translate(-50%,-100%);display:none;align-items:center;gap:8px;width:max-content;max-width:min(640px,94vw);padding:4px 8px;border-radius:7px;background:#101822f2;border:1px solid #2e4058;box-shadow:0 4px 14px #000a;font-size:11px;color:#d7e2ef;pointer-events:none;white-space:nowrap}
.rp-lane-tip.on{display:flex}
.rp-lane-tip{flex-direction:column;align-items:stretch;gap:4px;padding:5px 8px 6px;min-width:150px}
.rp-lane-tip-head{display:flex;align-items:baseline;gap:4px;flex:none;padding-bottom:4px;border-bottom:1px solid #2e4058}
.rp-lane-tip-head b{color:var(--gold);font-variant-numeric:tabular-nums}
.rp-lane-tip-head em{font-style:normal;color:#8fa3b8;font-size:10px;font-variant-numeric:tabular-nums}
.rp-lane-tip-list{display:flex;flex-direction:column;align-items:stretch;gap:3px}
.rp-lane-tip-list span{display:flex;align-items:center;gap:5px}
.rp-lane-tip-list span i{margin-left:auto;padding-left:12px}
.rp-lane-tip-list img{width:16px;height:16px;border-radius:3px;object-fit:cover}
.rp-lane-tip-list i{font-style:normal;font-size:10px;color:#8fa3b8;font-variant-numeric:tabular-nums}
.rp-lane-tip-list span.major{color:#ffcf7a;font-weight:700}
.rp-lane-tip-list .none{color:#7d8fa3}
.rp-lane-tip-list .next{color:#8fa3b8;gap:6px}
.rp-lane-tip-list .more{color:#8fa3b8;font-size:10px}
.rp-track-name{display:flex;align-items:center;gap:6px;font-size:11px;color:#8fa3b8;padding-top:4px;min-width:0}
.rp-track-name b{display:block;color:#d7e2ef;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.rp-track-name em{display:block;font-style:normal;font-size:10px;color:#8fa3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp-track-lane{position:relative;height:36px;width:var(--w);min-width:var(--w);background:#0a0f15;border-radius:8px;cursor:crosshair;overflow:hidden;box-shadow:inset 0 0 0 1px #1e2a38,inset 2px 0 0 #3a5472}
.rp-cd-band{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(-45deg,#5a202866,#5a202866 6px,#3a181e88 6px,#3a181e88 12px);border-left:2px solid #ff6b72;pointer-events:none;z-index:0}
.rp-cd-zone{position:absolute;top:0;bottom:0;pointer-events:none;z-index:0}
.rp-cd-zone.left{background:linear-gradient(90deg,#ff6b7214,#ff6b7255);box-shadow:inset -2px 0 0 #ff6b72cc}
.rp-cd-zone.right{background:linear-gradient(90deg,#ff6b7255,#ff6b7214);box-shadow:inset 2px 0 0 #ff6b72cc}
.rp-tl-mark{position:absolute;top:50%;transform:translateY(-50%);z-index:2;display:flex;align-items:center}
.rp-cd-overlap{position:absolute;top:1px;bottom:1px;z-index:1;pointer-events:auto;border-radius:3px;background:repeating-linear-gradient(135deg,#ff3b4a99 0 5px,#ff3b4a33 5px 10px);box-shadow:inset 0 0 0 1px #ff5a66}
.rp-tl-mark.clash .rp-assign{outline:2px solid #ff4b57;outline-offset:1px;filter:saturate(.6) brightness(.85)}
.rp-tl-mark.clash .rp-tl-time{color:#ff9aa0}
.rp-tl-mark.ghost{z-index:1;opacity:.55;filter:grayscale(1);cursor:help}
.rp-tl-mark.ghost .rp-assign{outline:1px dashed #8a97a6;outline-offset:1px;cursor:help}
.rp-tl-mark.ghost .rp-tl-time{color:#8a97a6;text-decoration:line-through}
.rp-tl-ghost{position:relative;z-index:1;margin-left:4px;padding:0 4px;border-radius:4px;background:#4a5563;color:#e3e9ef;font-size:9px;font-weight:800;line-height:14px;white-space:nowrap;pointer-events:none}
.rp-tl-clash{position:relative;z-index:1;margin-left:4px;padding:0 4px;border-radius:4px;background:#c7303d;color:#fff;font-size:9px;font-weight:800;line-height:14px;white-space:nowrap;pointer-events:none}
.rp-clash-badge{display:inline-flex;align-items:center;padding:6px 10px;border-radius:8px;background:#3d2028;border:1px solid #a94957;color:#ff9aa0;font-size:12px;font-weight:800;white-space:nowrap}
.rp-hidden-badge{display:inline-flex;align-items:center;padding:6px 10px;border-radius:8px;background:#1a222c;border:1px dashed #4a5a6c;color:var(--muted);font-size:12px;font-weight:800;white-space:nowrap}
.rp-tl-mark.on .rp-assign{outline:2px solid var(--gold);outline-offset:1px}
.rp-tl-dur{position:absolute;left:0;top:50%;height:10px;transform:translateY(-50%);border-radius:4px;background:color-mix(in srgb,var(--class, #69b0ff) 28%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--class, #69b0ff) 45%,transparent);pointer-events:none;z-index:0}
.rp-tl-mark .rp-assign{position:relative;z-index:1}
.rp-block{position:absolute;top:4px;height:36px;min-width:70px;z-index:1}
.rp-block .rp-assign{width:100%;height:100%}
.rp-tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}
.rp-tool-btn{border:1px solid var(--line);background:#101821;color:var(--muted);border-radius:8px;padding:8px 6px;font-size:11px;font-weight:800}
.rp-tool-btn.on{background:#1b2d44;color:#fff;border-color:var(--gold)}
.rp-colors{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.rp-color{width:22px;height:22px;border-radius:99px;border:2px solid #0000}
.rp-color.on{border-color:#fff}
.rp-canvas-panel{padding:10px}
.rp-map-variants{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.rp-map-variants.hidden{display:none!important}
.rp-map-btn{border:1px solid var(--line);background:#101821;color:var(--muted);border-radius:8px;padding:6px 10px;font-size:11px;font-weight:800}
.rp-map-btn.on{background:#1b2d44;color:#fff;border-color:var(--gold)}
.rp-canvas-wrap{height:min(70vh,720px);background:#0a0f15;border:1px solid #1e2a38;border-radius:12px;overflow:hidden}
.rp-canvas-wrap canvas{display:block;width:100%;height:100%;touch-action:none;cursor:default}
.rp-step{position:relative;display:flex;gap:6px;align-items:center;margin-bottom:6px;padding:6px;border:1px solid var(--line);border-radius:8px;background:#0f151e}
.rp-step.on{border-color:var(--gold);background:#2a2212}
.rp-step-pick{width:14px;height:14px;border-radius:99px;border:1px solid var(--line);background:#1c2a3c;flex:none;padding:0}
.rp-step.on .rp-step-pick{background:var(--gold);border-color:var(--gold)}
.rp-step input{flex:1;min-width:0;background:#0d141d;color:var(--text);border:1px solid var(--line);border-radius:7px;padding:6px}
.rp-notes{width:100%;resize:vertical;background:#0d141d;color:var(--text);border:1px solid var(--line);border-radius:9px;padding:9px;min-height:140px}

/* 오더 그림판: 한 화면에 맞추고 좌/우 패널만 내부 스크롤 */
.app.rp-fit-board{max-width:1760px;height:100dvh;overflow:hidden;display:flex;flex-direction:column;padding-top:12px;padding-bottom:12px;box-sizing:border-box}
.app.rp-fit-board .top{flex:none;margin-bottom:10px}
.app.rp-fit-board .footer{display:none}
.app.rp-fit-board #plannerView{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.app.rp-fit-board .rp-shell{flex:1;min-height:0;gap:8px;overflow:hidden;display:flex;flex-direction:column}
.app.rp-fit-board .rp-header{flex:none;padding:8px 10px;gap:8px}
.app.rp-fit-board .rp-header-title h2{font-size:17px}
.app.rp-fit-board .rp-header-title .sub{display:none}
.app.rp-fit-board .rp-mode-tabs .g-screen-tab{min-width:0;padding:7px 12px;font-size:11px}
.app.rp-fit-board .rp-boss-bar{padding-top:6px;gap:8px}
.app.rp-fit-board .rp-boss-bar-label{min-width:0}
.app.rp-fit-board .rp-boss-name{font-size:12px;max-width:160px}
.app.rp-fit-board .rp-boss-rail{gap:4px}
.app.rp-fit-board .rp-boss-tile{width:30px;height:30px;border-radius:7px}
.app.rp-fit-board .rp-banner{display:none}
.app.rp-fit-board .rp-toolbar{display:none}
.app.rp-fit-board #rpBoard{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}
.app.rp-fit-board .rp-board{flex:1;min-height:0;height:100%;overflow:hidden;align-items:stretch}
.app.rp-fit-board .rp-board-side{height:100%;max-height:100%;overflow:hidden;padding:10px}
.app.rp-fit-board .rp-board-tools{flex:none;max-height:38%;overflow:auto;overscroll-behavior:contain;padding-right:2px;margin-bottom:6px}
.app.rp-fit-board .rp-tool-grid{gap:4px;margin-bottom:6px}
.app.rp-fit-board .rp-tool-btn{padding:6px 4px;font-size:10px}
.app.rp-fit-board .rp-colors{margin-bottom:6px}
.app.rp-fit-board .rp-palette{flex:1;min-height:0;max-height:none;margin-bottom:8px;overscroll-behavior:contain}
.app.rp-fit-board .rp-canvas-panel{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:8px}
.app.rp-fit-board .rp-canvas-wrap{flex:1;height:auto;min-height:0}
.app.rp-fit-board .rp-board-meta{height:100%;max-height:100%;overflow:hidden;display:flex;flex-direction:column;padding:10px;min-height:0}
.app.rp-fit-board .rp-steps-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;margin-bottom:8px}
.app.rp-fit-board .rp-notes{flex:none;min-height:88px;max-height:28%;resize:none;overscroll-behavior:contain}

@media(max-width:1180px){
  .rp-board{grid-template-columns:1fr}
  .rp-board>.rp-canvas-panel{order:-1}
  .rp-board>.rp-side:last-child{order:3}
  .rp-cat-row{grid-template-columns:1fr}
  .rp-cd{grid-template-columns:1fr}
  .rp-roster-side{position:relative;top:0;max-height:none}
  .rp-roster-side.collapsed{min-height:0}
  .rp-roster-toggle{min-height:0;flex-direction:row;padding:10px 12px;justify-content:flex-start}
  .rp-roster-toggle-label{writing-mode:horizontal-tb;transform:none}
  .rp-roster-columns{grid-template-columns:1fr 1fr}
  .rp-roster-modal,.rp-roster-modal.with-add{width:min(920px,97vw);max-height:92vh;flex-direction:column}
  .rp-roster-add{width:100%;border-left:0;border-top:1px solid #243246;max-height:200px}
  .rp-roster-bottom{grid-template-columns:1fr}
  .app.rp-fit-board{height:auto;overflow:auto}
  .app.rp-fit-board .rp-board{min-height:auto;height:auto;overflow:visible}
  .app.rp-fit-board .rp-canvas-wrap{height:min(52vh,480px)}
  .app.rp-fit-board .rp-board-side,.app.rp-fit-board .rp-board-meta{height:auto;max-height:none}
  .app.rp-fit-board .rp-board-tools{max-height:none}
  .app.rp-fit-board .rp-palette{max-height:280px}
}
@media(max-width:760px){
  .rp-roster.compact,.rp-tool-grid,.rp-roster-columns{grid-template-columns:1fr}
  .rp-canvas-wrap{height:420px}
  .rp-time{--label:112px!important;padding:6px 8px 12px}
  .rp-boss-rail{margin-left:0}
  .rp-boss-bar-label{width:100%}
  .rp-boss-name{max-width:100%}
  .rp-mode-tabs{width:100%}
  .rp-mode-tabs .g-screen-tab{flex:1;min-width:0}
  .rp-header-top{align-items:stretch}
  .rp-boss-picker{max-width:100%}
  .rp-boss-chip span{max-width:72px}
  .rp-person{flex-basis:132px}
  .rp-roster-pop{padding:12px;align-items:stretch}
  .rp-roster-modal{max-height:96vh}
}

/* ===== Faction command rooms ===== */
html[data-theme="horde"]{
  --bg:#140d0b;
  --spot:#5a2218;
  --panel:#1e1410;
  --panel2:#281a14;
  --line:#5c382c;
  --text:#f6eadc;
  --muted:#b79a86;
  --gold:#c9a15c;
  --green:#42d392;
  --red:#d46a62;
  --blue:#69b0ff;
  --accent:#9c2f24;
  --on-accent:#f6eadc;
  --accent-edge:#c45a48;
  --ink:#120c0a;
  --ghost:#3a241c;
  --ghost-text:#f0dcc8;
  --ember:#9c2f2433;
  --crest-1:#c45a3a;
  --crest-2:#6e1c16;
  --chip-on:#5a241c;
  --chip-edge:#c45a48;
  --mark-main:url("../assets/factions/horde-crest.png");
  --mark-side:url("../assets/factions/horde-axes.svg");
}
html[data-theme="alliance"]{
  --bg:#0b1017;
  --spot:#1b2c45;
  --panel:#151e2a;
  --panel2:#1c2938;
  --line:#304157;
  --text:#eff5fc;
  --muted:#91a0b3;
  --gold:#e7ad49;
  --green:#42d392;
  --red:#ff6b72;
  --blue:#69b0ff;
  --accent:#e7ad49;
  --on-accent:#1d1306;
  --accent-edge:#ffd174;
  --ink:#0d141d;
  --ghost:#26364b;
  --ghost-text:#dbeaff;
  --ember:#e7ad4944;
  --crest-1:#f6c05b;
  --crest-2:#bd5a28;
  --chip-on:#2c4562;
  --chip-edge:#6c9bd0;
  --mark-main:url("../assets/factions/alliance-crest.png");
  --mark-side:url("../assets/factions/alliance-shield.svg");
}

.tab,.lang,.faction-btn{
  background:var(--ink);
  border-color:var(--line);
  color:var(--muted);
}
.tab.active,.lang{
  background:var(--accent);
  color:var(--on-accent);
  border-color:var(--accent-edge);
}
.primary{background:var(--accent);color:var(--on-accent)}
.search,.input,select,textarea{background:var(--ink);border-color:var(--line);color:var(--text)}
.chip{background:var(--ink);border-color:var(--line)}
.chip.on{background:var(--chip-on);color:#fff;border-color:var(--chip-edge)}
.role-column,.count{background:var(--ink);border-color:var(--line)}
.headcount,.g-syn-summary{background:color-mix(in srgb,var(--accent) 12%,var(--ink));border-color:var(--line)}
.coming-soon{background:radial-gradient(circle at 50% 20%,var(--spot),var(--panel) 65%)}
.coming-icon{background:linear-gradient(135deg,var(--crest-1),var(--crest-2));color:var(--on-accent);box-shadow:0 10px 30px var(--ember)}
.g-dev-btn{border-color:var(--accent-edge);color:var(--gold);background:color-mix(in srgb,var(--accent) 18%,var(--ink))}
.g-stand.player{border-color:var(--accent-edge);background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 22%,var(--ink)),var(--ink) 55%)}
.syn-complete-banner{border-color:var(--accent-edge);background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 28%,var(--ink)),var(--panel) 55%,var(--ink));color:var(--gold)}
.syn-complete-banner .syn-recommend{color:var(--text)}
.panel.syn-glow{box-shadow:0 0 0 1px color-mix(in srgb,var(--gold) 40%,transparent),0 0 28px var(--ember)}
.celebrate-card,.g-fx-result-card{border-color:var(--accent-edge);background:linear-gradient(160deg,var(--panel2),var(--ink) 70%);box-shadow:0 20px 50px #0008,0 0 24px var(--ember)}
.celebrate-title,.g-fx-result-title{color:var(--gold)}
.auth-tag{color:var(--gold)}
.g-screen-tabs{background:var(--ink);border-color:var(--line)}
.g-screen-tab.on{background:color-mix(in srgb,var(--accent) 22%,var(--ink));color:var(--text);box-shadow:inset 0 -2px 0 var(--gold)}
.g-wcl-board{background:linear-gradient(180deg,var(--panel),var(--ink));border-color:var(--line)}
.wcl-row.you{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 22%,var(--ink)),var(--panel) 55%);outline-color:var(--accent-edge)}
.rp-step.on,.rp-spell.on,.rp-boss-chip.on,.rp-boss-tile.on{background:color-mix(in srgb,var(--accent) 16%,var(--ink))}
.rp-event.enrage,.rp-wcl-warn{border-color:var(--accent-edge);background:color-mix(in srgb,var(--accent) 16%,var(--ink))}
.g-school.ad{background:color-mix(in srgb,var(--gold) 18%,var(--ink));color:var(--gold)}
.meter i{background:linear-gradient(90deg,var(--green),var(--gold))}

.faction-switch{display:inline-flex;gap:4px;align-items:center}
.faction-btn{border:1px solid var(--line);padding:10px 12px;border-radius:10px;font-weight:800}
.faction-btn.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent-edge)}

body::before,
body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
}
body::before{
  opacity:.28;
  background-image:var(--mark-main),var(--mark-side);
  background-repeat:no-repeat,no-repeat;
  background-position:right 2% top 6%, left -5% bottom -4%;
  background-size:min(520px,46vw) auto, min(340px,36vw);
  filter:saturate(1.15);
  mix-blend-mode:screen;
}
body::after{
  background:
    radial-gradient(ellipse at 92% 0, color-mix(in srgb,var(--accent) 28%,transparent), transparent 46%),
    radial-gradient(ellipse at 0 100%, color-mix(in srgb,var(--gold) 14%,transparent), transparent 40%);
}
.app{position:relative;z-index:1}
.crest{
  width:52px;
  height:56px;
  border-radius:12px;
  background:var(--mark-main) center/contain no-repeat,#000;
  border:1px solid var(--accent-edge);
  box-shadow:0 8px 18px var(--ember),inset 0 0 12px #000;
  color:transparent;
  overflow:hidden;
}
html[data-theme="alliance"] .crest{
  background:var(--mark-main) center/contain no-repeat,#000;
}
.faction-btn{display:inline-flex;align-items:center;gap:6px}
.faction-btn::before{content:"";width:18px;height:20px;flex:none;background:center/contain no-repeat;border-radius:3px}
.faction-btn[data-theme-set="horde"]::before{background-image:url("../assets/factions/horde-crest.png")}
.faction-btn[data-theme-set="alliance"]::before{background-image:url("../assets/factions/alliance-crest.png")}
.faction-btn:not(.on)::before{filter:grayscale(.6) brightness(.8)}

#brandHome{
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  padding:0;
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  cursor:default;
}
.app:not(.is-home) #brandHome{cursor:pointer}
.brand-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0;text-align:left}
.back-btn{
  width:32px;
  height:32px;
  border-radius:8px;
  display:grid;
  place-items:center;
  background:var(--ink);
  border:1px solid var(--line);
  color:var(--text);
  font-size:16px;
  flex:none;
}
.app.is-home .back-btn,
.back-btn.hidden{display:none}

.top-utils{margin-left:auto;position:relative;display:flex;align-items:center}
.settings-wrap{position:relative}
.settings-btn{
  width:40px;
  height:40px;
  border-radius:10px;
  border:1px solid var(--line);
  background:var(--ink);
  color:var(--muted);
  font-size:18px;
}
.settings-btn:hover,
.settings-btn[aria-expanded="true"]{color:var(--text);border-color:var(--accent-edge)}
.settings-panel{
  position:absolute;
  right:0;
  top:calc(100% + 8px);
  min-width:248px;
  z-index:50;
  padding:12px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:12px;
  box-shadow:0 16px 40px #0008;
  display:none;
  gap:10px;
}
.settings-panel:not(.hidden){display:grid}
.settings-label{font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--gold)}
.settings-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;color:var(--muted)}
.settings-row .ghost{padding:7px 10px}
.settings-row.auth-row{justify-content:flex-end}
.hub{max-width:1040px;margin:28px auto 0}
.hub-lead{font-size:16px;color:var(--muted);margin:0 0 22px}
.hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.hub-card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  text-align:left;
  min-height:220px;
  padding:20px 18px 16px;
  border:1px solid var(--line);
  border-radius:16px;
  background:linear-gradient(180deg,var(--panel2),var(--panel));
  color:var(--text);
  box-shadow:0 18px 44px #0006;
  transition:transform .15s,border-color .15s;
}
.hub-card:hover{transform:translateY(-3px);border-color:var(--accent-edge)}
.hub-kicker{font-size:11px;letter-spacing:.14em;color:var(--gold);font-weight:800}
.hub-card strong{font-size:22px;font-weight:900}
.hub-desc{color:var(--muted);font-size:13px;line-height:1.5;flex:1}
.hub-go{
  margin-top:8px;
  font-size:12px;font-weight:800;
  color:var(--on-accent);
  background:var(--accent);
  padding:8px 12px;
  border-radius:8px;
}
.app.is-home{max-width:1200px}
.app:not(.is-home) .title{font-size:22px}
@media(max-width:760px){
  .hub-grid{grid-template-columns:1fr}
  .hub{margin-top:12px}
}



