@font-face{font-family:Arame;src:url('fonts/Arame.ttf')}@font-face{font-family:Arame;src:url('fonts/Arame-Bold.ttf');font-weight:700}@font-face{font-family:Saira;src:url('fonts/Saira.ttf');font-weight:100 900}
:root{color-scheme:dark;--bg:#0b0b10;--panel:#121218;--border:#22222c;--muted:#85858e;--green:#6fb717;--ink:#f1f1f5;--display:Arame,'Arial Narrow',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:13px Saira,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;color:#b8b8c1;background:linear-gradient(115deg,#202029,#191920);border:1px solid #292932;border-radius:0;padding:10px 13px;transition:background .15s,color .15s}button:hover{color:#fff;background:#2b2b35}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--green);outline-offset:3px}button.active{color:#111908;background:linear-gradient(110deg,#416e0b,#7ac416);border-color:#6fb717}header{height:108px;padding:8px 28px 0;background:linear-gradient(#08080b,#0d0d13);position:relative}header:after{content:'';position:absolute;bottom:0;height:1px;left:4%;right:4%;background:linear-gradient(90deg,transparent,#292932,transparent)}.top-meta{display:flex;justify-content:space-between;color:#44444f;font:10px var(--display);letter-spacing:4px}.top-meta>span:nth-child(2){font-size:9px;color:#666671;letter-spacing:1px}.top-meta b{color:var(--green);font-weight:400}.header-inner{height:76px;display:grid;grid-template-columns:1fr auto 1fr;gap:28px;align-items:center}.header-nav{display:flex;align-items:center;gap:1px}.header-nav button{border:0;font:11px var(--display);padding:15px 25px;clip-path:polygon(14px 0,100% 0,calc(100% - 14px) 50%,100% 100%,14px 100%,0 50%);white-space:nowrap}.header-nav button span{margin-right:10px;font:16px Saira;color:#777780}.header-nav button.active span{color:#17230b}.brand{display:flex;align-items:center;gap:14px;color:#fff;text-decoration:none;text-align:left;position:relative}.brand:after{content:'';position:absolute;width:85%;height:1px;background:linear-gradient(90deg,transparent,var(--green),transparent);bottom:-12px;left:5%;box-shadow:0 0 16px #6fb71788}.brand-mark{width:38px;height:38px;filter:drop-shadow(0 0 10px #ffffff15)}.brand strong{font:700 22px var(--display);letter-spacing:1px}.brand strong span{display:block;font:8px var(--display);color:var(--muted);letter-spacing:1px;margin-top:6px}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:20px}.header-tag{font:9px var(--display);color:#686874;white-space:nowrap}.header-tag i{display:inline-block;width:5px;height:5px;background:var(--green);margin-right:7px;box-shadow:0 0 8px #6fb71766}#share{font:11px var(--display);height:40px;white-space:nowrap;border:0;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));padding:0 20px;background:linear-gradient(115deg,#292932,#1b1b24);color:#e0e0e8}
.map-tabs{display:flex;max-width:1200px;margin:14px auto 18px;justify-content:center;padding:0 20px;gap:2px}.map-tabs button{font:11px var(--display);border:0;flex:1;padding:9px 12px;white-space:nowrap;clip-path:polygon(0 0,100% 0,calc(100% - 10px) 100%,10px 100%)}main{display:grid;grid-template-columns:320px minmax(0,1fr);height:calc(100dvh - 174px);min-height:440px;max-width:1720px;margin:0 auto;padding:0 24px 24px;gap:14px}aside{overflow:auto;scrollbar-width:thin;scrollbar-color:#343440 transparent;padding-right:3px;scroll-behavior:smooth}.planner-intro{padding:22px 22px 0;border:1px solid var(--border);background:radial-gradient(ellipse at 20% 0,#24242f88,transparent 85%),var(--panel)}.eyebrow{font:9px var(--display);color:var(--green);letter-spacing:1px}h1{font:700 31px var(--display);margin:9px 0 8px}.intro{color:var(--muted);font-size:12px;margin:0 0 21px;line-height:1.6}.intro-detail{display:grid;gap:0;border-top:1px solid var(--border)}.intro-detail span{display:flex;justify-content:space-between;font:9px var(--display);color:#6f6f7b;padding:13px 0}.intro-detail span+span{border-top:1px solid #1c1c25}.intro-detail b{color:#d5d5dd;font-weight:400}section{border:1px solid var(--border);padding:18px 20px;margin-top:12px;background:#121218}label{display:flex;align-items:center;gap:10px;color:var(--green);font:10px var(--display);margin-bottom:14px}label span{color:var(--ink);font-size:12px;letter-spacing:0}label output{margin-left:auto;color:var(--green);font-size:11px;letter-spacing:0;white-space:nowrap}select,input:not([type]),textarea{width:100%;background:linear-gradient(120deg,#20202966,#17171f);color:var(--ink);border:1px solid #282832;border-radius:0;padding:10px 11px}select{font:12px var(--display);height:40px;background:#1b1b24}.segmented{display:flex;margin-top:10px;gap:4px}.segmented button{flex:1;padding:9px;font:10px var(--display);border:0;clip-path:polygon(9px 0,100% 0,calc(100% - 9px) 100%,0 100%)}.row{display:flex;gap:7px}.row button{flex:1;font:10px var(--display);padding:10px 7px}.hint{font-size:10px;line-height:1.6;color:var(--muted);margin:11px 0 0}input[type=range]{width:100%;accent-color:var(--green);margin:4px 0 0;height:15px}.range-labels{display:flex;justify-content:space-between;font:8px var(--display);color:#6e6e78;margin:5px 1px 16px}.text-button{border:0;background:none;font:9px var(--display);padding:0;margin-left:auto;color:#747480}#roster{display:grid;gap:7px}.player-row{display:grid;grid-template-columns:28px 1fr 60px;gap:7px;align-items:center;padding:5px;background:linear-gradient(110deg,#1e1e2880,#17171e);border:1px solid #23232c}.player-row button{padding:3px 0;height:27px;border:1px solid color-mix(in srgb,var(--pc) 40%,transparent);color:var(--pc);font:700 12px var(--display);background:color-mix(in srgb,var(--pc) 9%,#121218)}.player-row button.active{background:var(--pc);color:#101412}.player-row input{min-width:0;padding:5px;border:0;background:transparent;font-size:11px}.player-row .status{font:8px var(--display);color:#6d6d78;text-align:right}.player-row .status.placed{color:var(--green)}.check{margin-top:15px;margin-bottom:0;letter-spacing:0;font:10px Saira;color:#9898a2}.check input{accent-color:var(--green);margin:0}.save-section input,.save-section textarea{font-size:11px;margin-bottom:8px}.save-section label{font-size:10px;color:var(--ink)}.primary{background:linear-gradient(110deg,#416e0b,#6fb717);border-color:#548e10;color:#f4ffed;font:11px var(--display)}.primary:hover{background:linear-gradient(110deg,#548b10,#83ce23)}#save{width:100%;font:11px var(--display);padding:13px}.saved-title{display:flex;justify-content:space-between;margin-top:22px;color:#d7d7de;font:10px var(--display)}.saved-title span{color:var(--green)}.saved-item{display:flex;gap:8px;align-items:center;border:1px solid var(--border);padding:8px;margin-top:8px;background:linear-gradient(110deg,#1d1d2688,#14141a)}.saved-item .load{flex:1;text-align:left;font:11px var(--display);background:transparent;border:0;padding:4px 0;color:#dddde5}.saved-item small{display:block;color:var(--muted);font:9px Saira;margin-top:6px}.saved-item .delete{font-size:16px;padding:1px 7px;background:transparent;border:0;color:var(--muted)}.empty{font-size:11px;color:var(--muted);padding:12px 0;margin-bottom:0}
.map-area{position:relative;min-width:0;isolation:isolate;overflow:hidden;background:#111117;border:1px solid var(--border);display:grid;grid-template-rows:78px minmax(0,1fr) 119px}#map{grid-row:2;height:100%;width:100%;background:#16171a}.map-top{grid-row:1;position:absolute;z-index:500;top:0;left:0;right:0;height:78px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 24px;background:linear-gradient(105deg,#1b1b2466,#111117);border-bottom:1px solid var(--border)}.map-title h2{font:700 23px var(--display);text-transform:uppercase;margin:6px 0 0}.map-title .eyebrow{font:9px var(--display);color:#7c7c89}.map-title .eyebrow #side-title{color:var(--green)}.map-style{display:flex;align-items:center;gap:3px;height:36px}.map-style button{font:10px var(--display);border:0;border-bottom:2px solid transparent;background:transparent;padding:10px 15px}.map-style button.active{background:linear-gradient(0deg,#28430788,transparent);border-bottom-color:#5d9914;color:#e0efd5}.north{position:absolute;z-index:500;top:99px;right:24px;display:grid;text-align:center;gap:2px;font:28px var(--display);text-shadow:0 2px 6px #000;color:#eee}.north span{font:9px var(--display)}.map-bottom{position:absolute;z-index:500;bottom:0;left:0;right:0;pointer-events:none;height:119px;background:#111117;border-top:1px solid var(--border);padding:13px 24px}.legend{display:flex;gap:22px;margin:0 0 13px;font-size:10px;color:#8a8a96}.legend span{display:flex;align-items:center;gap:7px}.legend i{width:8px;height:8px;border-radius:0;border:1px solid #ddd}.legend .pull{border-color:var(--green);background:#6fb71733}.legend .spawn{border:0;background:#24b4d1}.legend .enemy{border:0;background:#d64d40}.zone-stat{display:flex;gap:0;max-width:100%;padding:0}.zone-stat span{flex:1;padding:8px 18px;border:1px solid #262631;margin-right:10px;display:block;font:8px var(--display);color:#777783;background:linear-gradient(110deg,#20202980,#14141b)}.zone-stat span:last-child{margin-right:0}.zone-stat b{display:block;margin-top:7px;font:700 19px var(--display);color:var(--ink)}.zone-stat span:nth-child(2) b{color:var(--green)}.leaflet-control-zoom{border:1px solid #353541!important;border-radius:0!important;margin-right:22px!important;margin-top:100px!important;box-shadow:none!important}.leaflet-control-zoom a{background:#15151eea!important;color:var(--ink)!important;border-color:#353541!important;border-radius:0!important}.leaflet-control-attribution{font-size:8px!important;background:#12121ae8!important;color:var(--muted)!important}.leaflet-control-attribution a{color:#9ca58f}.leaflet-tile-pane{filter:saturate(.55) brightness(.75)}.pull-handle{width:28px;height:28px;border:2px solid #b9ef78;border-radius:0;background:var(--green);box-shadow:0 0 0 6px #6fb71722,0 3px 14px #0008;color:#17230b;display:grid;place-items:center;font:20px var(--display);cursor:grab}.player-marker{border:2px solid white;border-radius:0;display:grid;place-items:center;width:28px;height:28px;background:var(--pc);color:#102018;font:700 12px var(--display);box-shadow:0 3px 12px #0008;cursor:grab}.leaflet-tooltip{background:#12121bea;color:var(--ink);border:1px solid #353541;border-radius:0;font:10px var(--display)}.leaflet-tooltip:before{display:none}.spawn-dot{background:var(--sc);border:2px solid white;border-radius:0;box-shadow:0 2px 9px #0008;width:15px;height:15px;transform:rotate(45deg)}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(150px);padding:14px 22px;background:#19250f;color:#c5ef9b;border:1px solid #487314;z-index:2000;box-shadow:0 4px 30px #0007;font-size:12px;transition:transform .2s;max-width:90vw}#toast.visible{transform:translateX(-50%) translateY(0)}dialog{width:min(500px,90vw);background:#121218;color:var(--ink);border:1px solid #30303c;padding:28px}dialog::backdrop{background:#050509cc}dialog h2{font:700 22px var(--display);margin:0}dialog p{line-height:1.7;color:var(--muted);font-size:12px}dialog input{margin:10px 0 18px}#map-error{position:absolute;z-index:600;top:100px;left:24px;max-width:330px;background:#3d2b1e;color:#ffe0b3;padding:13px;font-size:12px}body.placing #map{cursor:crosshair}
@media(min-width:1700px){main{padding-bottom:38px;grid-template-columns:350px minmax(0,1fr);gap:16px}.planner-intro{padding:28px 26px 0}section{padding:22px 26px}h1{font-size:35px}.header-inner{max-width:1840px;margin:auto}}
@media(max-width:1200px){.header-nav button{padding:14px 17px;font-size:10px}.header-nav button span{display:none}.header-inner{gap:14px}.brand strong{font-size:18px}.brand-mark{width:32px}.header-tag{display:none}main{grid-template-columns:295px minmax(0,1fr);padding:0 16px 20px}.map-top{padding:0 18px}.map-style button{padding:10px;font-size:9px}.map-bottom{padding:13px 18px}.legend{gap:12px;font-size:9px}}
@media(max-width:800px){header{height:100px;padding:7px 14px 0}.header-inner{height:78px;grid-template-columns:1fr auto}.brand{grid-column:1;grid-row:1}.header-actions{grid-column:2;grid-row:1}.header-nav{display:none}.top-meta>span:nth-child(2){font-size:8px}.brand strong{font-size:22px}.brand strong span{font-size:7px}.map-tabs{overflow:auto;justify-content:flex-start;margin:10px 0 12px;padding:0 14px;scrollbar-width:thin}.map-tabs button{font-size:10px;padding:10px 17px;min-width:100px}main{height:auto;min-height:0;display:flex;flex-direction:column;padding:0 14px 18px;gap:14px}.map-area{order:-1;height:64dvh;min-height:440px;grid-template-rows:72px minmax(0,1fr) 114px}aside{overflow:visible;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.planner-intro{grid-column:1/-1;padding:18px 20px;position:relative}.planner-intro h1{margin-bottom:0}.intro{margin:6px 0 0}.intro br{display:none}.intro-detail{position:absolute;right:20px;top:20px;width:170px}.intro-detail span{padding:10px 0}section{margin:0;padding:18px}.save-section{grid-column:1/-1}.map-top{height:72px;padding:0 15px}.map-title h2{font-size:20px}.map-style button{padding:10px 9px}.map-bottom{height:114px;padding:12px 15px}.legend{gap:12px;margin-bottom:12px;font-size:8px}.zone-stat span{padding:8px 11px;margin-right:6px;font-size:7px}.zone-stat b{font-size:17px}.north{right:19px;top:89px}.leaflet-control-zoom{margin-top:95px!important;margin-right:16px!important}}
@media(max-width:480px){.brand strong{font-size:18px}.brand strong span{font-size:6px}.brand-mark{width:28px}.brand{gap:8px}#share{padding:0 12px;font-size:9px}.top-meta>span:nth-child(2){font-size:7px}.planner-intro{padding:20px}.intro-detail{display:none}aside{display:block}section{margin-top:12px}.map-title h2{font-size:17px}.map-title .eyebrow{font-size:7px}.map-style button{padding:9px 7px;font-size:8px}.legend{gap:9px;font-size:7px}.zone-stat b{font-size:14px}.zone-stat span{font-size:6px;padding:8px}.map-area{min-height:420px}}

/* Keep the workspace within the available screen and give each sidebar tab its own view. */
@media(min-width:801px){body{height:100dvh;overflow:hidden;display:grid;grid-template-rows:104px 52px minmax(0,1fr)}header{height:104px}.map-tabs{margin:0 auto;padding:8px 20px 12px;align-self:stretch;width:min(1200px,100%)}main{height:100%;min-height:0;width:100%;max-width:1800px;padding:0 clamp(16px,2vw,32px) 22px;grid-template-columns:clamp(280px,22vw,350px) minmax(0,1fr);gap:16px}aside{min-height:0}.map-area{min-height:0;grid-template-rows:76px minmax(0,1fr) 112px}.map-top{height:76px}.map-bottom{height:112px;padding-top:10px}.zone-stat span{padding:7px 15px}.planner-intro{padding:18px 20px}.planner-intro h1{font-size:26px;margin:8px 0 0}.planner-intro .intro{margin:6px 0 0;font-size:11px}.intro br{display:none}.intro-detail{display:none}section{padding:18px 20px}.panel-tabs{display:none}}
aside[data-view=arena] section:not([data-view=arena]),aside[data-view=roster] section:not([data-view=roster]),aside[data-view=saved] section:not([data-view=saved]){display:none}
@media(min-width:801px) and (max-height:760px){body{grid-template-rows:88px 46px minmax(0,1fr)}header{height:88px}.header-inner{height:62px}.header-nav button{padding-top:12px;padding-bottom:12px}.map-tabs{padding-top:6px;padding-bottom:8px}.planner-intro{padding:14px 18px}.planner-intro .intro{display:none}section{padding:15px 18px}.map-area{grid-template-rows:66px minmax(0,1fr) 100px}.map-top{height:66px}.map-bottom{height:100px;padding:9px 18px}.legend{margin-bottom:9px}.zone-stat b{font-size:16px}.zone-stat span{padding:6px 12px}.north{top:83px}.leaflet-control-zoom{margin-top:84px!important}}
@media(max-width:800px){body{height:auto;overflow:auto;display:block}main{width:100%;height:auto;min-height:0}.map-area{height:60dvh;min-height:330px}aside{display:block}.planner-intro{padding:14px 18px}.planner-intro h1{font-size:24px}.planner-intro .intro,.intro-detail{display:none}.panel-tabs{display:flex;gap:4px;margin:0 0 10px}.panel-tabs button{flex:1;font:11px var(--display);padding:12px}.save-section{grid-column:auto}aside section{margin-top:10px}aside[data-view] .planner-intro{margin-bottom:10px}}
/* Full-width workspace and clear, rectangular map tabs. */
.map-tabs{max-width:none;width:100%;margin-left:0;margin-right:0;padding-left:16px;padding-right:16px;gap:6px}
.map-tabs button{clip-path:none;border:1px solid #292932;border-radius:4px;padding:9px 14px;background:#191920}
.map-tabs button.active{background:linear-gradient(110deg,#416e0b,#6fb717);border-color:#6fb717;color:#101908}
@media(min-width:801px){main{max-width:none;width:100%;margin:0;padding-left:16px;padding-right:16px}.map-tabs{width:100%;max-width:none;padding-left:16px;padding-right:16px}.header-inner{max-width:none}}
@media(max-width:800px){.map-tabs{padding-left:14px;padding-right:14px}.map-tabs button{min-width:105px}}
/* Square corners throughout the interface. */
*,*::before,*::after{border-radius:0!important}
/* Matching header actions, with a red logout button. */
#logout,#share{height:40px;padding:0 20px;border:0;font:11px var(--display);white-space:nowrap;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px))}
#logout{background:linear-gradient(115deg,#8e252b,#c13b40);color:#fff}
#logout:hover{background:linear-gradient(115deg,#ab3037,#dd4b50)}
@media(max-width:480px){#logout,#share{padding:0 12px;font-size:9px}.header-actions{gap:8px}}
/* A diamond target for the zone centre; fixed player names. */
.pull-handle{border:0;background:none;box-shadow:none;width:32px;height:32px}
.pull-handle svg{display:block;width:32px;height:32px;filter:drop-shadow(0 2px 4px #0009)}
.player-name{font:11px var(--display);color:#e1e1e8;padding:5px;min-width:0}
/* Player portraits in the roster and on the map. */
.player-row{grid-template-columns:36px 1fr 60px}
.player-row button{width:36px;height:36px;padding:0;overflow:hidden}
.player-row button img,.player-marker img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}
.player-row button.active{outline:2px solid var(--pc);outline-offset:2px}
.player-marker{width:36px;height:36px;padding:0;overflow:hidden;border-color:var(--pc);border-width:3px}
/* Larger portraits with explicit image sizing and permanent name labels. */
.player-marker{display:block;position:relative;width:52px;height:52px;overflow:visible;background:#17171e;box-shadow:0 0 0 2px #111,0 4px 12px #000b}
.player-marker img{width:46px;height:46px;object-fit:cover;display:block;filter:brightness(1.15) contrast(1.05)}
.player-marker .marker-name{position:absolute;top:calc(100% + 5px);left:50%;transform:translateX(-50%);padding:4px 7px;background:#101016f2;border-bottom:2px solid var(--pc);color:white;font:700 10px var(--display);white-space:nowrap;pointer-events:none;text-shadow:0 1px 2px #000}
.player-row button{display:block}
.player-row button img{width:34px;height:34px}
/* Compact map portraits, without name labels. */
.player-marker{width:36px;height:36px;overflow:hidden;display:block}
.player-marker img{width:30px;height:30px;object-fit:cover;display:block;filter:none}
.player-marker .marker-name{display:none}
/* Match the vertical and horizontal gaps between workspace panels. */
@media(min-width:801px){body{grid-template-rows:104px 56px minmax(0,1fr)}.map-tabs{padding-top:8px;padding-bottom:16px}main{gap:16px}}
@media(min-width:801px) and (max-height:760px){body{grid-template-rows:88px 54px minmax(0,1fr)}.map-tabs{padding-top:6px;padding-bottom:16px}}
/* Compact header with straight navigation and a left-aligned identity. */
.app-header{height:76px;padding:0 20px;background:#101016;border-bottom:1px solid #262630}
.app-header:after{display:none}
.app-header .header-inner{height:100%;display:flex;gap:40px;max-width:none;margin:0}
.app-header .brand{gap:10px;flex-shrink:0;text-align:left}
.app-header .brand:after{display:none}
.brand-symbol{font:38px Saira,sans-serif;color:#83c52c;line-height:1}
.app-header .brand strong{font:700 21px var(--display);letter-spacing:.5px}
.app-header .brand strong span{font:8px var(--display);letter-spacing:1px;color:#85858e;margin-top:6px}
.app-header .header-nav{height:100%;display:flex;gap:24px;align-items:stretch}
.app-header .header-nav button{clip-path:none;border:0;border-bottom:2px solid transparent;background:none;color:#9797a3;padding:0 4px;font:12px var(--display)}
.app-header .header-nav button:hover{color:#eee;background:none}
.app-header .header-nav button.active{color:#8ccd38;border-bottom-color:#78b827;background:none}
.app-header .header-actions{margin-left:auto;gap:10px}
.app-header #share,.app-header #logout{clip-path:none;height:36px;padding:0 15px;font:10px var(--display);border:1px solid #34343f}
.app-header #share{background:#21212a;color:#eee}
.app-header #share:hover{background:#30303b}
.app-header #logout{background:#9b2b32;color:#fff;border-color:#b83840}
.app-header #logout:hover{background:#bd343d}
@media(min-width:801px){body{grid-template-rows:76px 56px minmax(0,1fr)}}
@media(min-width:801px) and (max-height:760px){body{grid-template-rows:68px 54px minmax(0,1fr)}.app-header{height:68px}.app-header .header-inner{height:100%}}
@media(max-width:1000px){.app-header .header-inner{gap:24px}.app-header .header-nav{gap:16px}.app-header .header-nav button{font-size:10px}}
@media(max-width:800px){.app-header{height:72px;padding:0 14px}.app-header .header-nav{display:none}.app-header .header-inner{height:100%;gap:12px}.app-header .brand{grid-row:auto;grid-column:auto}.app-header .header-actions{grid-row:auto;grid-column:auto}.app-header .brand strong{font-size:19px}}
@media(max-width:480px){.app-header .brand strong{font-size:16px}.app-header .brand strong span{font-size:6px}.brand-symbol{font-size:30px}.app-header .header-actions{gap:6px}.app-header #share,.app-header #logout{padding:0 9px;font-size:8px;height:34px}}
/* Equal 16px spacing above and below the map navigation. */
@media(min-width:801px){body{grid-template-rows:76px 64px minmax(0,1fr)}.map-tabs{padding-top:16px;padding-bottom:16px}}
@media(min-width:801px) and (max-height:760px){body{grid-template-rows:68px 64px minmax(0,1fr)}.map-tabs{padding-top:16px;padding-bottom:16px}}
.saved-item .edit-setup{font:10px var(--display);padding:7px 9px;border:1px solid #3e502b;background:#243317;color:#b7e284}
#new-copy.editing{display:block;width:100%;padding:12px;margin-top:8px;background:#243c12;border:1px solid #527e27;color:#bcec89;font:11px var(--display)}
#new-copy:disabled{opacity:.45;cursor:default}
.driver-controls{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.float-end{width:20px;height:20px;border:2px solid;background:#11121a;color:white;display:grid;place-items:center;font:9px var(--display);cursor:grab}
.player-row{grid-template-columns:36px minmax(0,1fr) 54px 58px;gap:5px}
.player-row button.player-float{width:auto;height:30px;padding:4px;font:9px var(--display);border:1px solid #3d4d2c;background:#1c2817;color:#abd975;overflow:visible}
.player-row button.player-float:hover,.player-row button.player-float.active{background:#344b20;color:#dbf3bf}
.player-row .status{font-size:7px}

/* Floating is controlled directly beside each player. */
.driver-controls{display:none}

.player-row select.float-mode{grid-column:2/-1;height:28px;padding:4px 7px;font:9px var(--display);background:#171c15;border-color:#303c26;color:#b5ca9d;margin-bottom:3px}
/* Compact player controls. */
#roster{gap:5px}
.player-row{grid-template-columns:28px minmax(0,1fr) 48px 50px;padding:4px;gap:3px 5px}
.player-row>button:first-child{width:28px;height:28px}
.player-row>button:first-child img{width:26px;height:26px;object-fit:cover}
.player-name{font-size:10px;padding:3px}
.player-row button.player-float{height:25px;font-size:8px;padding:3px}
.player-row select.float-mode{grid-column:2/-1;height:22px;min-height:0;padding:2px 5px;font-size:8px;margin:0}
.player-row .status{font-size:6px}
/* Inline loop switch instead of the mode dropdown. */
.player-row{grid-template-columns:28px minmax(0,1fr) 50px 48px 48px}
.player-row .status{display:none}
.player-row .player-float{grid-column:4}
.player-row button.float-loop{grid-column:5;display:flex;align-items:center;justify-content:center;gap:4px;width:48px;height:25px;padding:2px;border:0;background:none;overflow:visible;color:#86868f;font:7px var(--display)}
.float-loop .switch-track{display:block;position:relative;width:21px;height:11px;background:#383842;border:1px solid #555560;flex-shrink:0}
.float-loop .switch-track:after{content:'';position:absolute;width:7px;height:7px;top:1px;left:1px;background:#b7b7c1;transition:transform .15s}
.player-row button.float-loop.enabled{color:#b4df7e}
.float-loop.enabled .switch-track{background:#314c1b;border-color:#6da838}
.float-loop.enabled .switch-track:after{transform:translateX(10px);background:#a6dc69}
.player-row{grid-template-columns:28px minmax(0,1fr) 50px 48px}
.player-row .player-float{grid-column:3}
.player-row button.float-loop{grid-column:4}
.other-player{position:relative;width:36px;height:36px;opacity:.85}
.side-badge{position:absolute;top:-7px;right:-7px;width:15px;height:15px;color:#101018;border:1px solid #101018;font:700 9px var(--display);display:grid;place-items:center;pointer-events:none}
.both-sides-control{color:#b8c3ac}
.legend .spawn{background:#f17c75}.legend .enemy{background:#63c4f7}
[data-side=attacking].active{background:#713036;color:#ffc6c0;border-color:#b95259}
[data-side=defending].active{background:#234d69;color:#bce8ff;border-color:#4582a9}
