/* Feedback stays attached to the world; interface controls retain their own layer. */
#combat-vfx{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:3;contain:strict}#combat-vfx[hidden]{display:none!important}
body .attack-warning{border:1.5px solid #ffc19b;background:radial-gradient(ellipse,transparent 45%,#eb765627 72%,#ff946546 100%);box-shadow:0 0 0 3px #e7683920,inset 0 0 14px #f8733d18;opacity:calc(.48 + var(--charge,0)*.5)}
body .attack-warning::before{content:"";position:absolute;inset:8%;border:1px dashed #ffd8b88c;border-radius:50%;transform:scale(calc(.28 + var(--charge,0)*.72));opacity:calc(.3 + var(--charge,0)*.6)}
body .attack-warning::after{content:"";position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:50%;background:#ffe2ba;box-shadow:0 0 8px #ff925c;transform:translate(-50%,-50%)}
@media(prefers-reduced-motion:reduce){body .attack-warning::before{transform:scale(.92)}body .attack-warning{transition:none}}

/* The combat bars already identify the player; keep the impact area unobstructed. */
body.in-battle #label{display:none!important}
/* Zones des sorts (18/10/2026) : pastille de forme (barre, infobulle, grimoire) */
.rv-zone-ico polygon{fill:#ffffff14;stroke:#ffffff38;stroke-width:.6}
.rv-zone-ico polygon.on{fill:#ffb35c;stroke:#ffe2b0}
.is-ally .rv-zone-ico polygon.on{fill:#6fe0a0;stroke:#d8ffe6}
.is-single .rv-zone-ico polygon.on{fill:#e9d9b0;stroke:#fff}
.spell-slot .spell-zone{position:absolute;left:-5px;top:-6px;z-index:3;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#1a120ae8;border:1px solid #ffb35c;box-shadow:0 1px 3px #000a;pointer-events:auto}:where(html[data-theme="nuit"]) .spell-slot .spell-zone{background:#0c1118e8}
.spell-slot .spell-zone.is-ally{border-color:#6fe0a0}
.rv-zone-block{display:flex;gap:10px;align-items:center;margin:8px 0;padding:8px 10px;border-radius:10px;background:#2a1c0e66;border:1px solid #ffb35c66}:where(html[data-theme="nuit"]) .rv-zone-block{background:#131a2566}
.rv-zone-block.is-ally{border-color:#6fe0a066;background:#0e2a1c55}.rv-zone-block.is-single{border-color:#ffffff22;background:#ffffff08}
.rv-zone-block b{display:block;color:#ffd79a;font-size:13px}.rv-zone-block.is-ally b{color:#9df0c0}.rv-zone-block.is-single b{color:#efe2c4}
.rv-zone-block p{margin:2px 0 0;font-size:12px;line-height:1.35;color:#e8dcc2}
#rv-spell-tip .rv-zone-block{margin:6px 0 4px;padding:6px 8px}
.rv-zone-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 7px 1px 3px;border-radius:999px;border:1px solid #ffb35c88;background:#1a120acc;font-size:11px;color:#ffd79a}:where(html[data-theme="nuit"]) .rv-zone-chip{background:#0c1118cc}
.rv-zone-chip.is-ally{border-color:#6fe0a088;color:#9df0c0}.rv-zone-chip i{font-style:normal;opacity:.8}
.rv-zone-block>svg.rv-zone-ico{width:38px!important;height:38px!important;flex:none}
.spell-slot .spell-zone svg.rv-zone-ico{width:14px!important;height:14px!important}
.rv-zone-chip svg.rv-zone-ico{width:16px!important;height:16px!important}
