/* Official Heroicons v2.2.0 (MIT). Sprite and source/license: assets/icons/heroicons/. */
.ui-icon{display:inline-block;width:1.15em;height:1.15em;flex:none;vertical-align:-.18em;fill:none;stroke:currentColor;stroke-width:1.5;pointer-events:none}
.ui-icon use{pointer-events:none}
body.sanya-site #deployment-modal.deployment-modal .room-seat.empty{display:grid;place-items:center}
body .room-seat.empty>.ui-icon{width:78%;height:78%;color:#93b99a80}
body .room-join>.ui-icon{width:20px;height:20px}
body .mode-symbol>.ui-icon{width:1em;height:1em}
body .modal-close .ui-icon,body .close-button .ui-icon{width:1em;height:1em}
body .lobby-empty-mark>.ui-icon{width:42px;height:42px}
body #settings-button,body #deployment-settings{display:inline-flex;align-items:center;justify-content:center;gap:6px}
body #combat-menu-button>.ui-icon,body #gear-toggle>.ui-icon{width:22px;height:22px}
body .gear-glyph::before{display:none}
body .tower-action-icons .ui-icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5}
body #upgrade-toggle .ui-icon{width:18px;height:18px}
body #upgrade-toggle[aria-expanded=false] .ui-icon{transform:rotate(180deg)}
body .rank-play .ui-icon{margin-left:6px}
/* CSS decorations remain stable when their button label updates. */
body #reroll-button::before{content:'';display:inline-block;width:1em;height:1em;vertical-align:-.12em;margin-right:5px;background:currentColor;mask:var(--ui-arrow-path) center/contain no-repeat}
body.playing .tactical-summary::before{content:'';width:24px;height:24px;min-width:24px;border:0;border-radius:0;background:currentColor;mask:var(--ui-map) center/contain no-repeat}
body.playing #tactical-details[open] .tactical-summary::before{content:'';mask-image:var(--ui-x-mark)}
body.playing .build-guide summary::before,body.playing .build-guide summary::after{content:'';display:inline-block;width:18px;height:18px;flex:none;font-size:inherit;background:currentColor;mask:var(--ui-sparkles) center/contain no-repeat}
body.playing .build-guide summary::after{mask-image:var(--ui-plus)}
body.playing .build-guide[open] summary::after{content:'';mask-image:var(--ui-x-mark)}
body.playing .kill-counter strong::before{content:'';display:inline-block;width:1em;height:1em;margin-right:4px;background:currentColor;mask:var(--ui-shield-check) center/contain no-repeat}
/* Evasion training reuses the light-boots atlas cell with a readable stopwatch badge. */
.skill-art.skill-evasion,.ranking-skill-art.evasion{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2028%2028%22%3E%3Cg%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%203v4m8%201%202-2%22%20fill%3D%22none%22%20stroke%3D%22%23102a2d%22%20stroke-width%3D%225%22%2F%3E%3Cpath%20d%3D%22M14%203v4m8%201%202-2%22%20fill%3D%22none%22%20stroke%3D%22%23e2c383%22%20stroke-width%3D%222.5%22%2F%3E%3Cpath%20d%3D%22M11%202h6%22%20stroke%3D%22%23e2c383%22%20stroke-width%3D%223%22%2F%3E%3Ccircle%20cx%3D%2214%22%20cy%3D%2216%22%20r%3D%2210%22%20fill%3D%22%23102a2d%22%20stroke%3D%22%23081618%22%20stroke-width%3D%224%22%2F%3E%3Ccircle%20cx%3D%2214%22%20cy%3D%2216%22%20r%3D%2210%22%20fill%3D%22%23102a2d%22%20stroke%3D%22%23e2c383%22%20stroke-width%3D%222%22%2F%3E%3Cpath%20d%3D%22M14%209v7l4%203%22%20fill%3D%22none%22%20stroke%3D%22%23d4faff%22%20stroke-width%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%2214%22%20cy%3D%2216%22%20r%3D%221.5%22%20fill%3D%22%23d4faff%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"),url('/assets/web/art-skills.1e3bf71c00291966.webp');background-size:48% 48%,600% 300%;background-position:96% 96%,80% 100%!important;background-repeat:no-repeat}
/* Selection and combat share the same role artwork and atlas cell. */
:is(#ability-button,#selected-ability-icon){--ability-image:url('/assets/web/art-combat-controls.056bb2274523665d.webp');--ability-size:200% 200%;--ability-position:100% 0}
:is(#ability-button,#selected-ability-icon)[data-role=scout]{--ability-position:0 100%}
:is(#ability-button,#selected-ability-icon)[data-role=engineer]{--ability-position:100% 100%}
:is(#ability-button,#selected-ability-icon)[data-role=firefighter]{--ability-image:url('/assets/web/art-water-controls.3f963c5302cbed43.webp');--ability-size:200% 100%}
:is(#ability-button,#selected-ability-icon)[data-role=medic]{--ability-image:url('/assets/web/art-rescue-controls.a3a8a6f62d99be72.webp');--ability-size:200% 100%}
.sanya-site :is(#ability-button,#selected-ability-icon)[data-role] .action-art{background-image:var(--ability-image);background-size:var(--ability-size);background-position:var(--ability-position);background-repeat:no-repeat}
/* Generated Heroicons masks. */
:root{
--ui-arrow-path:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%0A%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M16.023%209.348h4.992v-.001M2.985%2019.644v-4.992m0%200h4.992m-4.993%200%203.181%203.183a8.25%208.25%200%200%200%2013.803-3.7M4.031%209.865a8.25%208.25%200%200%201%2013.803-3.7l3.181%203.182m0-4.991v4.99%22%2F%3E%0A%3C%2Fsvg%3E%0A");
--ui-map:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%0A%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9%206.75V15m6-6v8.25m.503%203.498%204.875-2.437c.381-.19.622-.58.622-1.006V4.82c0-.836-.88-1.38-1.628-1.006l-3.869%201.934c-.317.159-.69.159-1.006%200L9.503%203.252a1.125%201.125%200%200%200-1.006%200L3.622%205.689C3.24%205.88%203%206.27%203%206.695V19.18c0%20.836.88%201.38%201.628%201.006l3.869-1.934c.317-.159.69-.159%201.006%200l4.994%202.497c.317.158.69.158%201.006%200Z%22%2F%3E%0A%3C%2Fsvg%3E%0A");
--ui-x-mark:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%0A%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M6%2018%2018%206M6%206l12%2012%22%2F%3E%0A%3C%2Fsvg%3E%0A");
--ui-sparkles:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%0A%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9.813%2015.904%209%2018.75l-.813-2.846a4.5%204.5%200%200%200-3.09-3.09L2.25%2012l2.846-.813a4.5%204.5%200%200%200%203.09-3.09L9%205.25l.813%202.846a4.5%204.5%200%200%200%203.09%203.09L15.75%2012l-2.846.813a4.5%204.5%200%200%200-3.09%203.09ZM18.259%208.715%2018%209.75l-.259-1.035a3.375%203.375%200%200%200-2.455-2.456L14.25%206l1.036-.259a3.375%203.375%200%200%200%202.455-2.456L18%202.25l.259%201.035a3.375%203.375%200%200%200%202.456%202.456L21.75%206l-1.035.259a3.375%203.375%200%200%200-2.456%202.456ZM16.894%2020.567%2016.5%2021.75l-.394-1.183a2.25%202.25%200%200%200-1.423-1.423L13.5%2018.75l1.183-.394a2.25%202.25%200%200%200%201.423-1.423l.394-1.183.394%201.183a2.25%202.25%200%200%200%201.423%201.423l1.183.394-1.183.394a2.25%202.25%200%200%200-1.423%201.423Z%22%2F%3E%0A%3C%2Fsvg%3E%0A");
--ui-plus:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%0A%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M12%204.5v15m7.5-7.5h-15%22%2F%3E%0A%3C%2Fsvg%3E%0A");
--ui-shield-check:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%0A%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9%2012.75%2011.25%2015%2015%209.75m-3-7.036A11.959%2011.959%200%200%201%203.598%206%2011.99%2011.99%200%200%200%203%209.749c0%205.592%203.824%2010.29%209%2011.623%205.176-1.332%209-6.03%209-11.622%200-1.31-.21-2.571-.598-3.751h-.152c-3.196%200-6.1-1.248-8.25-3.285Z%22%2F%3E%0A%3C%2Fsvg%3E%0A");
}
