@import"https://fonts.googleapis.com/css2?family=Share+Tech+Mono&display=swap";:root{font-family:Share Tech Mono,Courier New,monospace;color:#d6dfe4;background:#020a15;font-synthesis:none}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{background:#020a15}button{font:inherit;color:inherit}#app{position:fixed;inset:0;contain:layout paint}#scene{position:absolute;inset:0;overflow:hidden}#scene canvas{display:block;width:100%;height:100%}.labels{overflow:hidden;contain:strict}.workflow-panel{position:absolute;top:90px;left:50%;transform:translate(-50%);width:min(450px,40vw);z-index:13;padding:10px 14px;background:#04121ff0;border:1px solid #466a7f;font-size:12px}.workflow-panel button{background:#102a3a;border:1px solid #78909b;padding:5px 8px;cursor:pointer}.workflow-panel .edit-actions{flex-wrap:wrap}#workflow-confirm{border-top:1px solid #bd895a;margin-top:8px}.session-workflow{border-top:1px solid #436175;margin-top:18px}.session-workflow fieldset{border:1px solid #436175;min-width:0}.session-workflow input[type=number]{width:160px}.session-confirm{padding:12px;border:1px solid #d39a67;margin-top:14px}button:disabled{opacity:.4;cursor:default}.player-viewer-open{position:absolute;top:18px;right:150px;z-index:14;padding:7px 10px;border:1px solid #78909b;border-radius:3px;background:#091d2b;font-size:11px;cursor:pointer}.player-viewer-open[hidden]{display:none}#app[data-player-view=true] #manager-open,#app[data-player-view=true] .archive-panel{display:none!important}#app[data-player-view=true] #player-roster-new,#app[data-player-view=true] .player-actions{display:none}#app[data-player-view=true]>.title{max-width:calc(100vw - 230px)}#app[data-shared-snapshot=true] #player-viewer-exit,#app[data-shared-snapshot=true] #player-viewer-open,#app[data-shared-snapshot=true] #manager-open,#app[data-shared-snapshot=true] .manager-tabs,#app[data-shared-snapshot=true] #manager-close,#app[data-shared-snapshot=true] .archive-panel{display:none!important}.manager-open{position:absolute;top:65px;right:5.4vw;z-index:14;background:#071622;border:1px solid #78909b;padding:8px;cursor:pointer}.manager-panel{position:absolute;inset:0;z-index:20;background:radial-gradient(ellipse at top left,#102b3c,#020a15 65%);padding:24px 4vw;overflow-y:auto}#app[data-workspace=manager]>:not(.manager-panel):not(.archive-panel){display:none!important}#app[data-workspace=manager] .archive-panel{z-index:30;top:auto;bottom:16px;right:24px;width:220px}#app[data-workspace=manager] .archive-panel[open]{width:min(340px,calc(100vw - 32px));box-shadow:0 16px 48px #0009}#app[data-workspace=manager] .manager-panel{padding-bottom:70px;font-family:system-ui,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.55}#app[data-workspace=manager] .manager-panel>header{align-items:center;max-width:1440px;margin:auto}#app[data-workspace=manager] .manager-panel>header strong{font-size:21px;letter-spacing:.01em}#app[data-workspace=manager] .manager-panel>header p{margin:4px 0 0}#app[data-workspace=manager] .manager-tabs{max-width:1440px;margin:16px auto 14px;padding-bottom:10px;border-bottom:1px solid #294859}#app[data-workspace=manager] #manager-content{max-width:1440px;margin:auto;border-radius:10px}#app[data-workspace=manager] .manager-tabs button{border:0;border-radius:6px;background:transparent;min-height:40px;padding:8px 16px}#app[data-workspace=manager] .manager-tabs button[aria-pressed=true]{color:#d3f5ff;background:#184156;box-shadow:inset 0 -2px #71d8fa}#app[data-workspace=manager] #manager-status{max-width:1440px;margin:14px auto 0}#app[data-workspace=manager] button:focus-visible,#app[data-workspace=manager] input:focus-visible,#app[data-workspace=manager] select:focus-visible,#app[data-workspace=manager] textarea:focus-visible{outline:2px solid #72d4f8;outline-offset:3px}.manager-panel header strong{font-size:26px;letter-spacing:.05em}.manager-panel header p{color:#8799a5;font-size:13px}.manager-panel header>button{align-self:flex-start}.manager-panel #manager-content{padding:18px 24px;background:#030f1b99;border:1px solid #294859}.manager-home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:20px 0}.manager-home-grid button{min-height:90px;text-align:left;font-size:16px}@media(max-width:650px){.manager-panel{padding:18px}.manager-panel header{flex-direction:column;gap:8px}.manager-panel #manager-content{padding:12px}}.manager-panel[hidden]{display:none}.manager-panel header{display:flex;justify-content:space-between}.manager-tabs,.manager-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.manager-panel button{background:#0b2434;border:1px solid #78909b;padding:7px 10px;cursor:pointer}.manager-panel button[aria-pressed=true]{color:#6cffac;border-color:#6cffac}.manager-panel label{display:flex;align-items:center;gap:16px;margin:8px 0}.manager-panel input,.manager-panel select,.manager-panel textarea{background:#071622;color:#d6dfe4;border:1px solid #78909b;padding:7px}.manager-panel textarea{display:block;width:100%;height:90px}.manager-list{max-height:180px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.manager-list button{text-align:left;overflow-wrap:anywhere}.map-thumbnail{width:96px;height:96px;border:1px solid #4a6678;image-rendering:pixelated;flex-shrink:0}.manager-list .map-thumbnail{width:54px;height:54px}.manager-list .asset-card{display:flex;align-items:center;gap:14px}.manager-unit-table{width:100%;border-collapse:collapse;margin:16px 0;font-size:12px}.manager-unit-table th,.manager-unit-table td{padding:8px;border:1px solid #294859;text-align:left;overflow-wrap:anywhere}.recent-project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin:16px 0}.recent-project-card{padding:16px;border:1px solid #34536a;background:#091a29;min-width:0}.recent-project-card h4{margin:0 0 12px;overflow-wrap:anywhere}.recent-project-card p{font-size:12px;color:#a6baca;overflow-wrap:anywhere}.recent-delete-confirm{border-top:1px solid #bd895a;padding-top:8px}.task-authoring{border-top:1px solid #436175;padding-top:16px}.task-authoring fieldset{min-width:0;border:1px solid #34536a;margin:12px 0;padding:14px}.task-authoring input[type=number]{width:145px}.task-authoring select{max-width:100%}.task-authoring select[multiple]{min-height:90px}.equipment-unit-choice{display:grid;gap:8px;margin-bottom:18px;font-size:12px;color:#a9c3d3}.equipment-unit-choice select{width:100%;min-width:0;padding:10px;border:1px solid #43647a;border-radius:5px;background:#0b2130;color:#d6dfe4;font:inherit}.unit-loadout-editor{min-width:0;font-family:system-ui,Microsoft YaHei,sans-serif;font-size:13px;line-height:1.6}.unit-loadout-editor h3{margin:0 0 8px;font-size:17px}.unit-loadout-editor label{display:grid!important;gap:6px;margin:12px 0!important;color:#a9c3d3;font-size:12px}.unit-loadout-editor select{width:100%!important;max-width:100%!important;min-width:0;min-height:38px;border:1px solid #43647a;border-radius:5px;background:#0b2130;padding:8px;color:#e0ebf1;font:inherit}.unit-loadout-editor .unit-loadout-slot{padding:12px;margin:10px 0;border:1px solid #2b485a;border-radius:7px;background:#0b2130}.unit-loadout-editor .unit-loadout-slot label{margin:0!important}.unit-loadout-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.unit-loadout-chip{display:inline-flex;padding:3px 9px;border-radius:4px;border:1px solid #315369;color:#b8dff3;background:#102a3a;font-size:12px}.unit-loadout-summary{padding:12px;border-left:3px solid #5fc2e6;border-radius:3px;background:#102735;margin:14px 0}.unit-loadout-status{min-height:24px;color:#a9c3d3;overflow-wrap:anywhere}.unit-loadout-status[data-state=dirty],.unit-loadout-status[data-pending=true]{color:#f0c788}.unit-loadout-chip-label{width:100%;color:#91aebf;font-size:12px}.unit-loadout-editor h4{font-size:17px;margin:0 0 10px}.unit-loadout-status[data-state=error],.unit-loadout-status[data-error=true]{color:#ffaca7}.unit-loadout-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:8px;margin-top:12px}.unit-loadout-actions button{flex:1;min-height:40px;padding:8px 14px;border-radius:5px;border:1px solid #47667a;background:#102a3a;color:#d6dfe4;cursor:pointer}.unit-loadout-actions button:first-child{border-color:#459ac0;background:#17475d;color:#e9f9ff}.unit-loadout-editor button:focus-visible,.unit-loadout-editor select:focus-visible{outline:2px solid #71d8fa;outline-offset:2px}#manager-status{color:#9fd4ff;margin-top:18px;font-size:12px}#manager-status:empty,#archive-status:empty,#range-pick-state:empty,#selected-detail:empty,.unit-loadout-status:empty{display:none}body[data-loading=sandbox]:after{content:"LOADING MAP WORKSPACE / 正在加载地图工作区…";position:fixed;inset:0;z-index:40;display:grid;place-items:center;background:#020a15eb;color:#9fd4ff;letter-spacing:.12em}canvas{display:block}.scanlines{position:absolute;inset:0;pointer-events:none;opacity:.18;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 4px);mix-blend-mode:screen}.title{position:absolute;top:34px;left:6.2vw;font-size:clamp(20px,2vw,32px);letter-spacing:.05em;text-shadow:0 0 12px rgba(220,240,255,.35)}.status-panel,.selection-panel{position:absolute;top:92px;width:260px;padding:14px 18px;background:linear-gradient(90deg,#020a15bf,#020a151f);text-shadow:0 0 8px rgba(210,240,255,.25)}.status-panel{left:5.4vw}.selection-panel{right:5.4vw;top:92px;text-align:right;background:linear-gradient(270deg,#020a15bf,#020a151f)}.eyebrow{font-size:12px;color:#8ea1ae;letter-spacing:.18em}.turn-title{margin:5px 0;font-size:22px;color:#eef7fa}.muted{color:#8799a5;font-size:13px;line-height:1.45}.rule{height:1px;margin:12px 0;background:linear-gradient(90deg,#758894,transparent);opacity:.65}.selection-panel .rule{background:linear-gradient(270deg,#758894,transparent)}.stat-row{display:flex;justify-content:space-between;font-size:13px;line-height:1.75;color:#93a5af}.stat-row strong{color:#dce7eb;font-weight:400}.distance{color:#62ffa8;font-size:15px;line-height:1.65}.attitude{color:#9fd4ff;font-size:13px;line-height:1.65;letter-spacing:.04em}.event-panel{position:absolute;top:300px;left:5.4vw;width:260px;padding:14px 18px;background:linear-gradient(90deg,#020a15bf,#020a151f);text-shadow:0 0 8px rgba(210,240,255,.25)}.event-log{color:#cfe0e8;font-size:12px;line-height:1.7;white-space:pre-line;letter-spacing:.03em}#app[data-map-picking=true] .waypoint-label,#app[data-map-picking=true] .editor-tools-labels button{pointer-events:none}.waypoint-labels{position:absolute;inset:0;pointer-events:none}.waypoint-label{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;background:#020a15cc;color:#ffdc68;border:1px solid #8c7b39;padding:2px 4px;font-size:11px;cursor:pointer;white-space:nowrap}.range-panel{position:absolute;top:350px;bottom:190px;left:5.4vw;width:310px;min-height:155px;overflow-y:auto;padding:8px 18px;background:#020a15d9}.range-unit{font-size:11px;color:#9fd4ff;overflow-wrap:anywhere;margin-bottom:4px}.range-candidates{display:flex;flex-direction:column;gap:4px;max-height:120px;overflow-y:auto}.range-candidates[hidden]{display:none}.range-candidates button{text-align:left;font-size:11px}.range-attacker-label{outline:1px solid #62ffa8}.range-target-label{outline:1px solid #fff}.range-key{font-size:10px;margin-top:5px}.range-layer-list{display:flex;flex-direction:column;gap:6px;margin-top:6px}.range-layer-row{border:1px solid #294859;padding:6px;font-size:11px;overflow-wrap:anywhere}.range-layer-row .edit-actions{margin-top:4px}.trail-panel{position:absolute;bottom:105px;left:5.4vw;z-index:4;width:310px;padding:8px 18px;background:#020a15cc}details summary{cursor:pointer;margin-top:12px}.archive-panel{position:absolute;top:18px;right:5.4vw;width:310px;padding:8px 18px;z-index:15;border:1px solid #78909b;background:#020a15f5;max-height:calc(100vh - 120px);overflow-y:auto}.archive-panel summary{margin:0;font-size:12px;color:#9fd4ff}.archive-panel select,.archive-panel input:not([type=checkbox]){min-width:0;max-width:195px;background:#071622;color:#d6dfe4;border:1px solid #78909b}.archive-panel .check-row{font-size:11px;margin-top:10px}.archive-panel [data-error=true]{color:#ff9388}.edit-panel{position:absolute;top:280px;bottom:100px;right:5.4vw;width:310px;padding:14px 18px;overflow-y:auto;scrollbar-width:thin;background:linear-gradient(180deg,#04101ce6,#020a15b8);border:1px solid rgba(120,160,180,.28);text-shadow:0 0 8px rgba(210,240,255,.25)}.edit-actions{display:flex;gap:6px;margin-top:10px}.edit-actions button{flex:1;padding:6px 4px;font-size:11px;letter-spacing:.06em;cursor:pointer;border:1px solid #78909b;background:#030f1bb3;color:#d6dfe4;transition:.15s ease}.edit-actions button:hover:not(:disabled){color:#6cffac;border-color:#6cffac}.edit-actions button:disabled{opacity:.35;cursor:default}.edit-actions button[aria-pressed=true],.tool-actions button[aria-pressed=true],.player-actions button[aria-pressed=true]{border-color:#6cffac;color:#6cffac}.transform-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}.transform-grid label{font-size:10px;display:grid;gap:5px}.transform-grid input{width:100%;min-width:0;padding:4px;font:inherit;color:#dce7eb;background:#03101e;border:1px solid #385261}.transform-grid input:disabled{opacity:.35}.axis-x{color:#ff7272}.axis-y{color:#78ee99}.axis-z{color:#72aaff}[hidden]{display:none!important}.edit-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:7px 0;font-size:11px;color:#93a5af;letter-spacing:.08em}.edit-row input[type=text],.edit-row input[type=number],.edit-row select{width:168px;padding:3px 6px;font:12px Share Tech Mono,monospace;color:#dce7eb;background:#030f1bd9;border:1px solid rgba(120,160,180,.35)}.edit-row input:disabled,.edit-row select:disabled{opacity:.4}.edit-row input[type=checkbox]{width:auto;accent-color:#6cffac}.unit-picker{display:flex;flex-wrap:wrap;gap:4px;max-height:92px;overflow-y:auto;margin-top:8px}.unit-picker button{font:10px Share Tech Mono,monospace;color:#b3c8d4;border:1px solid #385261;background:#03101e;padding:4px 6px;cursor:pointer}.unit-picker button[aria-pressed=true]{color:#6cffac;border-color:#6cffac}.unit-selected{outline:1px solid currentColor;background:#030f1bcc;padding:2px 4px}.selection-box{position:absolute;border:1px solid #6cffac;background:#6cffac1f;pointer-events:none;z-index:5}.edit-hint{margin-top:10px;font-size:10px;color:#7d8f99;letter-spacing:.05em;line-height:1.5}.turn-controls{position:absolute;left:50%;bottom:54px;transform:translate(-50%);display:flex;gap:18px;align-items:center;color:#e5edf0}.turn-controls button{width:38px;height:30px;border:1px solid #78909b;background:#030f1ba6;cursor:pointer;transition:.15s ease}.turn-controls button:hover{color:#6cffac;border-color:#6cffac;box-shadow:0 0 12px #36ff9d66}#turn-indicator{min-width:72px;text-align:center;letter-spacing:.12em}#turn-jump{width:58px;height:30px;box-sizing:border-box;text-align:center;font-size:12px;color:#e5edf0;letter-spacing:.06em;background:#030f1ba6;border:1px solid #78909b;outline:none;transition:.15s ease}#turn-jump:hover,#turn-jump:focus{border-color:#6cffac;box-shadow:0 0 12px #36ff9d66}#turn-jump::placeholder{color:#6f8894;letter-spacing:.04em}.map-compass{position:absolute;left:310px;top:64px;z-index:10;width:82px;text-align:center;pointer-events:none;color:#dbe9eb}.map-compass-dial{position:relative;width:72px;height:72px;margin:auto;border:1px solid #506f7c;border-radius:50%;background:#061422bd}.map-compass-dial span{position:absolute;font-size:13px;font-weight:700}.compass-n{left:50%;top:12%;color:#7fffb0}.compass-e{left:88%;top:50%}.compass-s{left:50%;top:88%}.compass-w{left:12%;top:50%}.map-compass small{display:block;font-size:10px;margin-top:5px}.map-cardinal{position:absolute;transform:translate(-50%,-50%);color:#c7e2e6;font-weight:700;padding:3px 6px;background:#041321bd;border:1px solid #486772;pointer-events:none;z-index:4}[data-workspace=manager] .map-compass,[data-workspace=manager] .map-cardinal{display:none}@media(max-width:600px){.map-compass{top:48px;left:calc(50% - 34px);width:68px}.map-compass-dial{width:56px;height:56px}}@media(max-width:900px){.status-panel,.selection-panel{width:210px;top:80px}.title{left:24px}.status-panel{left:18px}.selection-panel{right:18px}}.ac-notice-host{position:fixed;left:50%;bottom:100px;transform:translate(-50%);z-index:35;display:flex;flex-direction:column;align-items:center;gap:6px;max-width:min(560px,calc(100vw - 32px));pointer-events:none}.ac-notice{pointer-events:auto;cursor:pointer;overflow-wrap:anywhere;padding:7px 14px;border:1px solid #2a3d52;border-left:2px solid #5cc4ff;background:#07101cf0;color:#e8f1f8;font-size:12px;letter-spacing:.04em;line-height:1.5;box-shadow:0 6px 20px #00000073}.ac-notice[data-tone=error]{border-left-color:#e5483b;color:#ffd2c8}.role-library{--role-edge: #28434f;--role-muted: #a5b7c3;--role-accent: #8fd9d1;color:#e7f0f4;max-width:1480px;margin:0 auto;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.5}.role-library *,.role-library *:before,.role-library *:after{box-sizing:border-box}.role-library [hidden]{display:none!important}.role-library h2,.role-library h3,.role-library h4,.role-library p{margin:0}.role-library-header{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:10px 0 22px}.role-library-header h2{font-size:28px;letter-spacing:0;margin:2px 0 7px}.role-library-header p{color:var(--role-muted);max-width:760px}.role-library-header p:first-child{font-size:12px;letter-spacing:.12em;color:var(--role-accent)}.role-library .role-actions{display:flex;flex-wrap:wrap;gap:9px;margin:0;align-items:center}.role-library button{font:inherit;letter-spacing:0;border:1px solid #3e6070;border-radius:7px;padding:9px 14px;background:#112935;color:#e7f0f4;min-height:38px;cursor:pointer}.role-library button:hover:not(:disabled){background:#1d3c49;border-color:#6e9ba9}.role-library button:disabled{cursor:default;opacity:.45}.role-library .role-primary{color:#09252c;background:var(--role-accent);border-color:var(--role-accent);font-weight:650}.role-library .role-primary:hover:not(:disabled){color:#09252c;background:#b2ebe3;border-color:#b2ebe3}.role-library .role-quiet{color:var(--role-muted);background:transparent}.role-library .role-danger{color:#fac4bb;background:transparent}.role-library :is(button,input,select,textarea,summary):focus-visible{outline:2px solid var(--role-accent);outline-offset:3px}.role-library-layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:22px;align-items:start}.role-library-sidebar{background:#091a24;border:1px solid var(--role-edge);border-radius:12px;padding:16px;min-width:0}.role-filters{display:grid;grid-template-columns:1fr 115px;gap:10px}.role-library label{display:flex;flex-direction:column;align-items:stretch;text-align:left;gap:5px;font:inherit;margin:0;min-width:0;color:#c7d6e0}.role-library label>span{font-size:12px;font-weight:500}.role-library input:not([type=checkbox]),.role-library select,.role-library textarea{font:inherit;width:100%;max-width:100%;color:#eef5f7;background:#081720;border:1px solid #375563;border-radius:6px;padding:8px 10px;min-height:38px}.role-library textarea{resize:vertical;min-height:80px;line-height:1.5}.role-library input[type=file]{padding:6px}.role-library input[aria-invalid=true]{border-color:#f7aa98}.role-library .role-count{font-size:12px;color:var(--role-muted);margin:12px 0}.role-card-list{display:flex;flex-direction:column;gap:8px;max-height:clamp(240px,calc(100dvh - 450px),620px);overflow-y:auto;padding:2px 4px 3px 2px}.role-library .role-card{text-align:left;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;width:100%;padding:12px;background:#0d222c;border:1px solid #213f4b;min-height:84px}.role-library .role-card strong{font-size:16px;font-weight:650;overflow-wrap:anywhere}.role-library .role-card>span{font-size:11px;color:var(--role-muted);align-self:center}.role-library .role-card small{grid-column:1 / -1;color:var(--role-muted);white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px}.role-library .role-card[aria-pressed=true]{background:#17353e;border-color:var(--role-accent);box-shadow:inset 3px 0 var(--role-accent)}.role-library-detail{min-width:0;border:1px solid var(--role-edge);border-radius:12px;background:#0b1d27;padding:22px;display:flex;flex-direction:column;gap:17px;max-height:clamp(340px,calc(100dvh - 350px),900px);overflow-y:auto;scroll-padding-bottom:90px}.role-library-detail h3{font-size:24px;line-height:1.2;letter-spacing:0;overflow-wrap:anywhere}.role-library-detail>label{max-width:205px}.role-library-detail h4{font-size:15px;color:#c7d6e0}.role-badges{display:flex;flex-wrap:wrap;gap:7px}.role-badges span{font-size:12px;padding:4px 9px;border-radius:99px;background:#18343f;color:#bde5e4}.role-specs{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}.role-specs>div{padding:9px 0;border-bottom:1px solid #203947;min-width:0}.role-specs dt{font-size:12px;color:var(--role-muted)}.role-specs dd{margin:3px 0 0;overflow-wrap:anywhere}.role-library .role-description{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;font-size:14px;color:#d4e1e8}.role-library details{margin:0;border:1px solid var(--role-edge);border-radius:7px;padding:0;background:#0b1d27}.role-library summary{font:inherit;cursor:pointer;padding:10px 13px;color:#c4dfe7}.role-library details>:not(summary){margin:12px 13px}.role-library details>.role-description{margin:4px 15px 16px}.role-library .role-secondary{font-size:13px}.role-library form{display:flex;flex-direction:column;gap:15px;min-width:0}.role-library fieldset{border:0;padding:0;margin:0;min-width:0}.role-library legend{padding:0 0 9px;font-size:14px;font-weight:650;color:#bad4df;width:100%}.role-library .role-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 16px}.role-form-grid legend{grid-column:1 / -1}.role-form-grid>small{grid-column:1 / -1;color:var(--role-muted);font-size:12px;line-height:1.5}.role-library .role-form-grid label:has(textarea){grid-column:1 / -1}.role-library .role-check{flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;min-height:30px;font-size:13px}.role-library .role-check>input{order:-1;accent-color:var(--role-accent);flex:0 0 auto;width:15px;height:15px;margin:0}.role-check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 10px}.role-library .role-help{color:var(--role-muted);font-size:13px}.role-library .role-editor-footer{position:sticky;bottom:-22px;background:#0b1d27;margin:0 -22px -22px;padding:13px 22px;border-top:1px solid var(--role-edge);justify-content:flex-end;z-index:1}.role-library .role-error{border:1px solid #815045;background:#33252b;color:#ffd2c8;border-radius:6px;padding:10px 12px;font-size:13px}.role-confirm{padding:14px;background:#2b2830;border:1px solid #76626d;border-radius:8px;margin-bottom:15px}.role-confirm .role-actions{margin-top:10px}.role-library-tools{margin-top:20px!important}.role-library-tools>summary{color:var(--role-muted);font-size:13px}.role-library-tools>p{color:var(--role-muted)}.role-library-tools>label{max-width:900px}@media(max-width:950px){.role-library-layout{grid-template-columns:minmax(230px,.75fr) minmax(0,1.4fr);gap:14px}.role-library-detail{padding:16px}.role-library .role-editor-footer{bottom:-16px;margin:0 -16px -16px;padding:12px 16px}.role-filters,.role-specs{grid-template-columns:1fr}.role-check-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.role-library-header{gap:12px;align-items:flex-start}.role-library-header h2{font-size:24px}.role-library-header p:last-child{font-size:12px}.role-library-header .role-actions{flex-shrink:0}.role-library-layout{grid-template-columns:1fr}.role-filters{grid-template-columns:1fr 110px}.role-card-list{max-height:230px}.role-library-detail{max-height:72vh}.role-library .role-form-grid{grid-template-columns:1fr}.role-check-grid,.role-specs{grid-template-columns:repeat(2,minmax(0,1fr))}}#player-roster-panel{position:fixed;left:14px;top:130px;bottom:56px;width:280px;z-index:15;overflow:auto;overscroll-behavior:contain;border:1px solid rgba(143,174,205,.3);border-radius:10px;background:#0e1722f2;box-shadow:0 8px 28px #0003;color:#e6edf5}#player-roster-panel[hidden],.player-roster [hidden],.player-library [hidden]{display:none!important}#app.player-roster-mounted[data-workspace=sandbox]>.status-panel{top:72px;left:14px;width:280px;box-sizing:border-box;padding:6px 10px}#app.player-roster-mounted[data-workspace=sandbox]>.status-panel .rule,#app.player-roster-mounted[data-workspace=sandbox]>.status-panel .stat-row,#app.player-roster-mounted[data-workspace=sandbox]>.status-panel .muted{display:none}#app.player-roster-mounted[data-workspace=sandbox]>.status-panel .eyebrow{font-size:10px}#app.player-roster-mounted[data-workspace=sandbox]>.status-panel .turn-title{font-size:17px;margin:0}#player-roster-panel[data-collapsed=true]{width:220px;bottom:auto}#player-roster-panel[data-collapsed=true] .player-roster>:not(.player-roster-header){display:none}#player-roster-panel[data-collapsed=true] #player-roster-new{display:none}.player-roster,.player-library{font-size:13px;line-height:1.5}.player-roster,.player-library{padding:12px}.player-roster h3,.player-roster h4,.player-library h2,.player-library h3{margin:0}.player-roster p,.player-library p{margin:6px 0 10px}.player-roster-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.player-roster-list{display:grid;gap:10px}.player-card{border:1px solid rgba(143,174,205,.28);border-radius:8px;padding:10px;background:#ffffff06;overflow-wrap:anywhere}.player-card[data-selected=true]{border-color:#8ac0f5;box-shadow:inset 3px 0 #8ac0f5}.player-pending-card{border-style:dashed;border-color:#dfbd76;background:#dfbd760e;margin-bottom:10px}.player-roster button,.player-library button{cursor:pointer;border:1px solid rgba(143,174,205,.35);border-radius:5px;padding:5px 8px;background:#253548;color:inherit;font:inherit}.player-roster button:disabled,.player-library button:disabled{opacity:.45;cursor:default}.player-roster button:hover:not(:disabled),.player-library button:hover:not(:disabled){background:#32495f}.player-roster :focus-visible,.player-library :focus-visible{outline:2px solid #99caff;outline-offset:2px}.player-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.player-form{display:grid;gap:10px;margin:10px 0;padding:10px;border:1px solid rgba(143,174,205,.3);border-radius:8px}.player-form label{display:grid;gap:4px}.player-roster select,.player-library input{box-sizing:border-box;width:100%;min-width:0;color:inherit;font:inherit;background:#172535;border:1px solid #44596e;border-radius:5px;padding:7px}.player-roster select:disabled{opacity:.55}.player-chips{font-size:11px;color:#a7b8ca}.player-slots{display:grid;gap:8px}.player-slot{border-left:2px solid #617f9c;padding-left:8px}.player-weapon-list{display:grid;gap:8px}.player-weapon-row{display:grid;gap:3px;padding-top:8px;border-top:1px solid rgba(143,174,205,.16)}.player-weapon-row span{color:#b6c6d7;font-size:11px}.player-library-layout{display:grid;grid-template-columns:minmax(150px,1fr) minmax(220px,2fr);gap:14px;margin-top:12px}.player-library-list{display:grid;align-content:start;gap:6px}.player-library-item{text-align:left;overflow-wrap:anywhere}.player-library-item[aria-pressed=true]{border-color:#99caff}.player-library-detail{border-left:1px solid rgba(143,174,205,.22);padding-left:14px}.player-library-search{flex:1}.player-confirm{margin-top:10px;padding:10px;border:1px solid #ba9971;border-radius:5px}#player-library-feedback,#player-roster-feedback{color:#e2c38c;overflow-wrap:anywhere}@media(max-width:600px)and (orientation:portrait){#player-roster-panel{max-height:28vh;max-height:28dvh}#player-roster-panel[data-collapsed=true]{max-width:44vw}}@media(pointer:coarse){.player-roster-header button{min-height:44px;min-width:44px;touch-action:manipulation}}@media(max-width:640px){#player-roster-panel{left:6px;top:130px;bottom:52px;width:min(240px,44vw)}.player-roster{padding:8px}.player-library-layout{grid-template-columns:1fr}.player-library-detail{border-left:0;border-top:1px solid rgba(143,174,205,.22);padding:12px 0 0}}.snapshot-library{display:grid;gap:12px;min-width:0;color:#e3edf8}.snapshot-library h2,.snapshot-library h3,.snapshot-library p{margin:0}.snapshot-library h2{font-size:19px}.snapshot-library h3{font-size:16px;overflow-wrap:anywhere}.snapshot-library [hidden]{display:none!important}.snapshot-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.snapshot-actions input[type=search]{flex:1 1 190px;min-width:120px}.snapshot-library input{box-sizing:border-box;min-width:0;padding:8px 10px;color:#e3edf8;background:#101c2c;border:1px solid #526579;border-radius:6px}.snapshot-library button{padding:7px 11px;color:#e3edf8;background:#24384f;border:1px solid #607894;border-radius:6px;cursor:pointer}.snapshot-library button:hover:not(:disabled){background:#344f6d}.snapshot-library button:disabled{opacity:.5;cursor:wait}.snapshot-library :is(button,input,a):focus-visible{outline:2px solid #81caff;outline-offset:3px}.snapshot-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;border:1px solid #526579;border-radius:8px}.snapshot-settings label{display:grid;gap:5px;font-size:13px}.snapshot-settings label:has(input[type=password]),.snapshot-hint{grid-column:1 / -1}.snapshot-hint{color:#bacbdc;font-size:12px;line-height:1.6}.snapshot-library-list{display:grid;gap:10px}.snapshot-card{display:grid;gap:9px;padding:13px;border:1px solid #526579;border-radius:9px;background:#152537}.snapshot-card>p{font-size:12px;color:#bacbdc}.snapshot-inline-form{display:flex;flex-wrap:wrap;align-items:end;gap:7px}.snapshot-inline-form label{display:grid;flex:1 1 180px;gap:5px}.snapshot-confirm{display:flex;flex-wrap:wrap;gap:7px;align-items:center;padding:10px;border:1px solid #c5845d;border-radius:6px}.snapshot-confirm p{flex:1 1 100%;font-size:13px;overflow-wrap:anywhere}.snapshot-link{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.snapshot-link a{color:#90d0ff}.snapshot-link input{flex:1 1 220px;font-size:12px}#snapshot-library-feedback{padding:9px;border-left:3px solid #81caff;background:#1d3046;overflow-wrap:anywhere;font-size:13px}@media(max-width:640px){.snapshot-settings{grid-template-columns:minmax(0,1fr)}.snapshot-link input{flex-basis:100%}.snapshot-card{padding:10px}}#app[data-workspace=manager] #manager-panel{--ace-orange: #ff9a3c;--ace-cyan: #5cc4ff;--ace-cyan-glow: #2f8fe0;--ace-text-primary: #e8f1f8;--ace-text-secondary: #9fb6c8;--ace-text-tertiary: #5e7488;--ace-bg-deep: #07101c;--ace-bg-surface: #0d1b2e;--ace-bg-elevated: #14233a;--ace-line: #2a3d52;--ace-red: #e5483b;--ace-blue: #3fa9f5;font-family:system-ui,Bahnschrift,Microsoft YaHei UI,sans-serif;background:linear-gradient(160deg,transparent calc(68% - 1px),rgba(255,154,60,.22) 68%,transparent calc(68% + 1px)),radial-gradient(ellipse 80% 60% at 50% 40%,#0f1d30,var(--ace-bg-deep));color:var(--ace-text-primary);padding:0;display:grid;grid-template-columns:280px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto;gap:0;max-width:none}#app[data-workspace=manager] #manager-panel>header{grid-column:1 / -1;grid-row:1;display:flex;align-items:center;justify-content:space-between;padding:18px 4vw;border-bottom:1px solid var(--ace-line);background:#07101ccc}#app[data-workspace=manager] #manager-panel>header strong{font-size:16px;font-weight:300;letter-spacing:.15em;text-transform:uppercase;color:var(--ace-text-primary)}#app[data-workspace=manager] #manager-panel>header strong:before,#app[data-workspace=manager] #manager-panel>header strong:after{content:"|";margin:0 .5em;opacity:.6}#app[data-workspace=manager] #manager-panel>header button{background:transparent;border:1px solid var(--ace-line);color:var(--ace-text-secondary);padding:7px 14px;font-size:12px;letter-spacing:.05em;cursor:pointer;transition:all .12s ease}#app[data-workspace=manager] #manager-panel>header button:hover:where(:not(:disabled):not([aria-pressed=true])){border-color:var(--ace-orange);color:var(--ace-orange);box-shadow:0 0 12px #ff9a3c40}#app[data-workspace=manager] #manager-panel .manager-tabs{grid-column:1;grid-row:2;display:flex;flex-direction:column;gap:0;margin:0;padding:24px 0 24px 32px;border:0;border-right:1px solid var(--ace-line);background:#07101c80;position:relative;overflow-y:auto}#app[data-workspace=manager] #manager-panel .manager-tabs:before{content:"";position:absolute;left:8px;top:24px;bottom:24px;width:1px;background:linear-gradient(to bottom,transparent,var(--ace-cyan) 10%,var(--ace-cyan) 90%,transparent);opacity:.4;pointer-events:none}#app[data-workspace=manager] #manager-panel .manager-tabs button{position:relative;background:transparent;border:0;border-radius:0;box-shadow:none;min-height:0;color:var(--ace-text-secondary);text-align:left;padding:10px 16px 10px 24px;font-size:13px;letter-spacing:.03em;cursor:pointer;transition:color .14s ease;counter-increment:menu-item}#app[data-workspace=manager] #manager-panel .manager-tabs button:before{content:"0" counter(menu-item);position:absolute;left:-20px;font-size:11px;font-variant-numeric:tabular-nums;color:var(--ace-text-tertiary)}#app[data-workspace=manager] #manager-panel .manager-tabs button[aria-pressed=true]{color:var(--ace-text-primary);background:transparent;box-shadow:none;text-shadow:0 0 4px var(--ace-cyan),0 0 12px var(--ace-cyan-glow)}#app[data-workspace=manager] #manager-panel .manager-tabs button:hover:where(:not([aria-pressed=true]):not([aria-selected=true])){color:var(--ace-cyan)}#app[data-workspace=manager] #manager-panel .manager-tabs button:focus-visible{outline:2px solid var(--ace-orange);outline-offset:3px}#app[data-workspace=manager] #manager-panel #manager-content{grid-column:2;grid-row:2;padding:32px 4vw;overflow-y:auto;background:transparent;border-style:none;border-radius:0;max-width:1200px;margin:0}#app[data-workspace=manager] #manager-panel #manager-content h2{font-size:20px;font-weight:300;letter-spacing:.12em;text-transform:uppercase;margin:0 0 16px;color:var(--ace-text-primary)}#app[data-workspace=manager] #manager-panel #manager-content h2:before,#app[data-workspace=manager] #manager-panel #manager-content h2:after{content:"|";margin:0 .4em;opacity:.5}#app[data-workspace=manager] #manager-panel #manager-content h3{font-size:10px;font-weight:400;letter-spacing:.15em;text-transform:uppercase;color:var(--ace-text-tertiary);margin:24px 0 12px}#app[data-workspace=manager] #manager-panel #manager-content h3:before{content:"["}#app[data-workspace=manager] #manager-panel #manager-content h3:after{content:"]"}#app[data-workspace=manager] #manager-panel #manager-content p{font-size:13px;line-height:1.6;color:var(--ace-text-secondary);margin:8px 0}#app[data-workspace=manager] #manager-panel #manager-content label{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;font-size:12px;color:var(--ace-text-secondary);margin:10px 0;letter-spacing:.05em}#app[data-workspace=manager] #manager-panel #manager-content input,#app[data-workspace=manager] #manager-panel #manager-content select,#app[data-workspace=manager] #manager-panel #manager-content textarea{background:#14233a99;border-style:none none solid;border-width:0 0 1px;border-color:var(--ace-line);color:var(--ace-text-primary);padding:7px 10px;font:inherit;font-size:13px;transition:border-color .12s ease,box-shadow .12s ease}#app[data-workspace=manager] #manager-panel #manager-content input:focus,#app[data-workspace=manager] #manager-panel #manager-content select:focus,#app[data-workspace=manager] #manager-panel #manager-content textarea:focus{outline:0;border-color:var(--ace-cyan);box-shadow:0 0 8px #5cc4ff4d}#app[data-workspace=manager] #manager-panel #manager-content input[aria-invalid=true]{border-color:#ff9a80}#app[data-workspace=manager] #manager-panel #manager-content button{background:#14233ab3;border-style:none;color:var(--ace-text-primary);padding:8px 14px;font:inherit;font-size:12px;letter-spacing:.04em;cursor:pointer;transition:background-color .14s ease,color .14s ease,box-shadow .14s ease}#app[data-workspace=manager] #manager-panel #manager-content button:hover:where(:not(:disabled):not([aria-pressed=true])){color:var(--ace-cyan);background:#5cc4ff14;box-shadow:inset 2px 0 var(--ace-cyan)}#app[data-workspace=manager] #manager-panel #manager-content button[aria-pressed=true]{color:var(--ace-text-primary);background:#5cc4ff1f;box-shadow:inset 2px 0 var(--ace-orange)}#app[data-workspace=manager] #manager-panel #manager-content button:disabled{opacity:.4;cursor:not-allowed}#app[data-workspace=manager] #manager-panel #manager-content button:focus-visible{outline:2px solid var(--ace-orange);outline-offset:3px}#app[data-workspace=manager] #manager-panel #manager-content .manager-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}#app[data-workspace=manager] #manager-panel #manager-content .manager-section-label{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--ace-text-tertiary);margin:24px 0 8px}#app[data-workspace=manager] #manager-panel #manager-content .manager-section-label:before{content:"["}#app[data-workspace=manager] #manager-panel #manager-content .manager-section-label:after{content:"]"}#app[data-workspace=manager] #manager-panel #manager-content .manager-data-row{display:flex;align-items:baseline;gap:8px;max-width:420px;padding:3px 0 3px 1em;font-size:13px;color:var(--ace-text-secondary)}#app[data-workspace=manager] #manager-panel #manager-content .manager-data-row:after{content:"";order:1;flex:1;border-bottom:1px dotted rgba(94,116,136,.5);transform:translateY(-3px)}#app[data-workspace=manager] #manager-panel #manager-content .manager-data-value{order:2;color:var(--ace-cyan);font-variant-numeric:tabular-nums;text-align:right}#app[data-workspace=manager] #manager-panel #manager-status{grid-column:1 / -1;grid-row:3;padding:12px 4vw;font-size:11px;color:var(--ace-text-secondary);border-top:1px solid var(--ace-line);background:#07101ccc}#app[data-workspace=manager] #manager-panel #manager-status[data-error=true]{color:#ff9a80}#app[data-workspace=manager] #manager-panel .ac-hotkeys,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .ac-hotkeys{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;padding:9px 4vw;border-top:1px solid var(--ace-line);background:#07101ce0}#app[data-workspace=manager] #manager-panel .ac-hotkeys{grid-column:1 / -1;grid-row:4}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar{grid-template-rows:auto minmax(0,1fr) auto}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .ac-hotkeys{grid-column:1 / -1;grid-row:3;padding:8px 11px;gap:3px 12px}#app[data-workspace=manager] #manager-panel .ac-hotkeys button,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .ac-hotkeys button{display:inline-flex;align-items:center;gap:6px;min-height:0;padding:2px 4px;background:transparent;border:0;border-radius:0;box-shadow:none;color:var(--ace-text-secondary);font-size:11px;letter-spacing:.03em;cursor:pointer;transition:color .12s ease}#app[data-workspace=manager] #manager-panel .ac-hotkeys kbd,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .ac-hotkeys kbd{padding:1px 6px;border:1px solid var(--ace-line);color:var(--ace-text-tertiary);font-family:inherit;font-size:10px;letter-spacing:.06em}#app[data-workspace=manager] #manager-panel .ac-hotkeys button:hover:where(:not(:disabled)),#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .ac-hotkeys button:hover:where(:not(:disabled)){color:var(--ace-cyan);background:transparent;border:0;box-shadow:none}#app[data-workspace=manager] #manager-panel .ac-hotkeys button:hover:where(:not(:disabled)) kbd,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .ac-hotkeys button:hover:where(:not(:disabled)) kbd{border-color:var(--ace-cyan);color:var(--ace-cyan)}#app[data-workspace=manager] #manager-panel .ac-hotkeys button:focus-visible,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .ac-hotkeys button:focus-visible{outline:2px solid var(--ace-orange);outline-offset:2px}#app[data-workspace=manager]>#archive-panel{position:fixed;z-index:30;bottom:16px;right:24px;width:220px;background:#0e1b2ef2;border:1px solid var(--ace-line)}#app[data-workspace=manager]>#archive-panel[open]{width:min(340px,calc(100vw - 48px));box-shadow:0 16px 48px #0009}#app[data-workspace=manager]>#archive-panel summary{padding:10px 12px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ace-text-tertiary);cursor:pointer}#app[data-workspace=manager]>#archive-panel summary:before{content:"["}#app[data-workspace=manager]>#archive-panel summary:after{content:"]"}@media(max-width:900px){#app[data-workspace=manager] #manager-panel{grid-template-columns:200px minmax(0,1fr)}#app[data-workspace=manager] #manager-panel .manager-tabs{padding-left:24px}}@media(max-width:640px){#app[data-workspace=manager] #manager-panel{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto auto}#app[data-workspace=manager] #manager-panel>header,#app[data-workspace=manager] #manager-panel .manager-tabs,#app[data-workspace=manager] #manager-panel #manager-content,#app[data-workspace=manager] #manager-panel #manager-status,#app[data-workspace=manager] #manager-panel .ac-hotkeys{grid-column:1}#app[data-workspace=manager] #manager-panel>header{flex-wrap:wrap;gap:10px;padding:14px 16px}#app[data-workspace=manager] #manager-panel .manager-tabs{grid-row:2;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;padding:12px 16px;border-right:0;border-bottom:1px solid var(--ace-line)}#app[data-workspace=manager] #manager-panel .manager-tabs:before{display:none}#app[data-workspace=manager] #manager-panel .manager-tabs button{flex:0 0 auto;white-space:nowrap}#app[data-workspace=manager] #manager-panel .manager-tabs button:before{position:static;margin-right:6px}#app[data-workspace=manager] #manager-panel .manager-tabs button:after{display:none}#app[data-workspace=manager] #manager-panel #manager-content{grid-row:3;padding:20px 16px}#app[data-workspace=manager] #manager-panel #manager-content .role-library-layout{grid-template-columns:minmax(0,1fr)}}#app[data-workspace=sandbox]:not([data-player-view=true]) :is(#edit-panel.editor-sidebar,#player-roster-panel){--ace-orange: #ff9a3c;--ace-cyan: #5cc4ff;--ace-cyan-glow: #2f8fe0;--ace-text-primary: #e8f1f8;--ace-text-secondary: #9fb6c8;--ace-text-tertiary: #5e7488;--ace-line: #2a3d52;--ace-red: #e5483b}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar{background:#07101cf2;border-color:var(--ace-line)}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-header{font-family:system-ui,Bahnschrift,Microsoft YaHei UI,sans-serif;color:var(--ace-text-primary);border-bottom:1px solid var(--ace-line);background:#14233a66;padding:12px 14px}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-title-row strong{font-size:13px;font-weight:300;letter-spacing:.12em;text-transform:uppercase}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-title-row strong:before,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-title-row strong:after{content:"|";margin:0 .4em;opacity:.5}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-state{font-size:9px;letter-spacing:.14em;color:var(--ace-text-tertiary);text-transform:uppercase}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-state:before{content:"["}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-state:after{content:"]"}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-nav{background:#07101c4d;border-right:1px solid var(--ace-line);position:relative}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-nav:before{content:"";position:absolute;left:8px;top:0;bottom:0;width:1px;background:linear-gradient(to bottom,transparent 5%,var(--ace-cyan) 10%,var(--ace-cyan) 90%,transparent 95%);opacity:.3;pointer-events:none}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-nav button{background:transparent;border:0;color:var(--ace-text-secondary);font-size:11px;position:relative;transition:color .12s ease}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-nav button[aria-selected=true]{color:var(--ace-text-primary);text-shadow:0 0 6px var(--ace-cyan-glow)}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-nav button:hover:where(:not([aria-selected=true])){color:var(--ace-cyan)}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-content{color:var(--ace-text-primary)}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-panel-heading,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-submenu>summary{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ace-text-tertiary);border-bottom:1px solid rgba(42,61,82,.5)}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-panel-heading:before,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-submenu>summary:before{content:"["}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-panel-heading:after,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-submenu>summary:after{content:"]"}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar button{background:#14233a80;border:1px solid var(--ace-line);color:var(--ace-text-primary);transition:all .12s ease}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar button:hover:where(:not(:disabled)){border-color:var(--ace-cyan);color:var(--ace-cyan)}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar button:focus-visible{outline:2px solid var(--ace-orange);outline-offset:2px}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar input,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar select,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar textarea{background:#14233a99;border:1px solid var(--ace-line);color:var(--ace-text-primary);transition:border-color .12s ease}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar input:focus,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar select:focus,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar textarea:focus{outline:0;border-color:var(--ace-cyan);box-shadow:0 0 6px #5cc4ff40}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar input[aria-invalid=true]{border-color:var(--ace-red)}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar [data-error=true]{color:#ff9a80}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .edit-row{gap:10px;align-items:center;margin:7px 0}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .edit-row>span{font-size:11px;letter-spacing:.03em;color:var(--ace-text-secondary)}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .edit-row input:not([type=checkbox]),#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .edit-row select{width:128px;max-width:58%;background:transparent;border-style:none none solid;border-width:0 0 1px;border-color:var(--ace-line);border-radius:0;text-align:right;font-size:12px;font-variant-numeric:tabular-nums;color:var(--ace-cyan)}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .edit-row select{text-align-last:right}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .edit-row input[type=checkbox]{width:15px;height:15px;margin:0;accent-color:var(--ace-cyan)}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .transform-grid{gap:6px;margin:9px 0}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .transform-grid input{background:transparent;border-style:none none solid;border-width:0 0 1px;border-color:var(--ace-line);border-radius:0;text-align:right;font-variant-numeric:tabular-nums;color:var(--ace-cyan)}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-submenu{border-bottom-color:#2a3d528c}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-card h3{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--ace-text-tertiary);margin:14px 0 6px}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-card h3:before{content:"["}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-card h3:after{content:"]"}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-card{border-bottom-color:#2a3d528c}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .check-row{font-size:11px;color:var(--ace-text-secondary)}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar input[type=checkbox]{-webkit-appearance:none;appearance:none;flex:0 0 auto;width:14px;height:14px;margin:0;background:transparent;border:1px solid var(--ace-line);border-radius:0}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar input[type=checkbox]:checked{background:var(--ace-cyan);border-color:var(--ace-cyan);box-shadow:inset 0 0 0 2px var(--ace-bg-deep)}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar input[type=checkbox]:focus-visible{outline:2px solid var(--ace-orange);outline-offset:2px}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .eyebrow{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--ace-text-tertiary)}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .eyebrow:before{content:"["}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .eyebrow:after{content:"]"}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .edit-hint,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-bound-list,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar #workflow-state{font-size:11px;color:var(--ace-text-tertiary)}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .unit-picker button{text-align:left;color:var(--ace-text-secondary)}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .unit-picker button[aria-pressed=true]{color:var(--ace-text-primary);background:#5cc4ff1a;border-color:transparent;box-shadow:inset 2px 0 var(--ace-cyan)}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .selection-panel .turn-title{font-size:20px;font-weight:300;letter-spacing:.1em;color:var(--ace-text-primary)}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .selection-panel .distance,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .selection-panel .attitude{color:var(--ace-cyan);font-variant-numeric:tabular-nums}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .event-log{color:var(--ace-text-secondary)}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel{background:#07101cf2;border-color:var(--ace-line);color:var(--ace-text-primary)}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel h3,#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel h4{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ace-text-tertiary)}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel h3:before,#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel h4:before{content:"["}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel h3:after,#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel h4:after{content:"]"}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .player-card{background:#14233a66;border-color:transparent;transition:background-color .14s ease,box-shadow .14s ease}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .player-card[data-selected=true]{background:#5cc4ff14;box-shadow:inset 3px 0 var(--ace-cyan),0 0 12px #5cc4ff33}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .player-card-head{display:grid;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:9px}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .player-card-head h4{font-size:16px;font-weight:400;letter-spacing:.08em;text-transform:none;color:var(--ace-text-primary);overflow-wrap:anywhere}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .player-card-head h4:before,#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .player-card-head h4:after{content:none}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .player-faction-block{width:9px;height:9px;align-self:center;background:var(--ace-text-tertiary)}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .player-faction-block[data-faction=squadron]{background:#20e27e}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .player-faction-block[data-faction=friendly]{background:#2d8cff}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .player-faction-block[data-faction=neutral]{background:#ffd84a}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .player-faction-block[data-faction=enemy]{background:#ff6935}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .player-equipment-count{font-size:11px;font-variant-numeric:tabular-nums;color:var(--ace-text-tertiary);white-space:nowrap}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .player-card{position:relative;border-radius:0;padding:9px 10px;border-bottom:1px solid rgba(42,61,82,.55)}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .player-card:focus-visible{outline:2px solid var(--ace-orange);outline-offset:-2px}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .player-weapon-row span{color:var(--ace-text-tertiary)}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel button{background:#14233a99;border:1px solid var(--ace-line);color:var(--ace-text-primary);transition:border-color .12s ease,color .12s ease}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel button:hover:where(:not(:disabled):not([aria-selected=true])){border-color:var(--ace-cyan);color:var(--ace-cyan)}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel input,#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel select{background:#14233a99;border:1px solid var(--ace-line);color:var(--ace-text-primary)}#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel :focus-visible{outline:2px solid var(--ace-orange);outline-offset:2px}#app[data-workspace=manager] #manager-panel #manager-content .player-library .player-card{background:#14233a66}#app[data-workspace=manager] #manager-panel #manager-content .role-library{max-width:none;margin:0;font-family:inherit;font-size:13px;line-height:1.5;color:var(--ace-text-primary)}#app[data-workspace=manager] #manager-panel #manager-content .role-library-header{align-items:flex-end;padding:0 0 14px;border-bottom:1px solid var(--ace-line)}#app[data-workspace=manager] #manager-panel #manager-content .role-library-header p:first-child{font-size:10px;letter-spacing:.15em;color:var(--ace-text-tertiary)}#app[data-workspace=manager] #manager-panel #manager-content .role-library-header p:first-child:before{content:"["}#app[data-workspace=manager] #manager-panel #manager-content .role-library-header p:first-child:after{content:"]"}#app[data-workspace=manager] #manager-panel #manager-content .role-library-layout{grid-template-columns:minmax(240px,310px) minmax(0,1fr);gap:28px}#app[data-workspace=manager] #manager-panel #manager-content .role-library-sidebar,#app[data-workspace=manager] #manager-panel #manager-content .role-library-detail{background:transparent;border-style:none;border-radius:0;padding:0;min-width:0}#app[data-workspace=manager] #manager-panel #manager-content .role-library-detail{gap:14px;max-height:none;overflow:visible}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-filters{grid-template-columns:minmax(0,1fr) 104px;gap:12px}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-filters label,#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-form-grid label,#app[data-workspace=manager] #manager-panel #manager-content .role-library-tools>label{display:flex;flex-direction:column;align-items:stretch;gap:5px;margin:0}#app[data-workspace=manager] #manager-panel #manager-content .role-library label>span{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ace-text-tertiary)}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-check{display:flex;flex-direction:row;align-items:center;gap:8px;min-height:28px}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-check>input{order:-1;flex:0 0 auto;width:14px;height:14px;margin:0;accent-color:var(--ace-cyan)}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-check>span{text-transform:none;letter-spacing:.02em;font-size:12px;color:var(--ace-text-secondary)}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-form-grid{gap:14px 20px}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-count{font-size:10px;letter-spacing:.15em;font-variant-numeric:tabular-nums;color:var(--ace-text-tertiary);margin:14px 0 4px}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-card-list{gap:0;max-height:none;overflow:visible;padding:0}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-card{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:2px 10px;width:100%;min-height:0;padding:8px 8px 8px 0;text-align:left;background:transparent;border-style:none;border-radius:0;border-bottom:1px solid rgba(42,61,82,.55);border-left:2px solid transparent;transition:background-color .14s ease,border-left-color .14s ease}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-card .role-swatch{width:18px;height:18px;align-self:center;background-color:var(--ace-text-tertiary);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-swatch[data-mark=fighter]{background-color:#07c8ff;-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2018%2018'%20width='18'%20height='18'%20role='presentation'%20focusable='false'%3e%3cpath%20fill='%23ffffff'%20fill-rule='evenodd'%20d='M0%200h18v18h-18zM8%202h2v1h-2zM8%203h2v1h-2zM8%204h2v1h-2zM8%205h2v1h-2zM8%206h2v1h-2zM8%207h2v1h-2zM7%208h4v1h-4zM6%209h6v1h-6zM5%2010h8v1h-8zM4%2011h10v1h-10zM8%2012h2v1h-2zM8%2013h2v1h-2zM7%2014h4v1h-4zM6%2015h6v1h-6z'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2018%2018'%20width='18'%20height='18'%20role='presentation'%20focusable='false'%3e%3cpath%20fill='%23ffffff'%20fill-rule='evenodd'%20d='M0%200h18v18h-18zM8%202h2v1h-2zM8%203h2v1h-2zM8%204h2v1h-2zM8%205h2v1h-2zM8%206h2v1h-2zM8%207h2v1h-2zM7%208h4v1h-4zM6%209h6v1h-6zM5%2010h8v1h-8zM4%2011h10v1h-10zM8%2012h2v1h-2zM8%2013h2v1h-2zM7%2014h4v1h-4zM6%2015h6v1h-6z'/%3e%3c/svg%3e")}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-swatch[data-mark=multirole]{background-color:#bf36ff;-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2018%2018'%20width='18'%20height='18'%20role='presentation'%20focusable='false'%3e%3cpath%20fill='%23ffffff'%20fill-rule='evenodd'%20d='M0%200h18v18h-18zM8%202h2v1h-2zM8%203h2v1h-2zM8%204h2v1h-2zM7%205h4v1h-4zM8%206h2v1h-2zM8%207h2v1h-2zM7%208h4v1h-4zM6%209h6v1h-6zM5%2010h8v1h-8zM4%2011h10v1h-10zM4%2012h10v1h-10zM3%2013h12v1h-12zM3%2014h1v1h-1zM7%2014h4v1h-4zM14%2014h1v1h-1zM8%2015h2v1h-2z'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2018%2018'%20width='18'%20height='18'%20role='presentation'%20focusable='false'%3e%3cpath%20fill='%23ffffff'%20fill-rule='evenodd'%20d='M0%200h18v18h-18zM8%202h2v1h-2zM8%203h2v1h-2zM8%204h2v1h-2zM7%205h4v1h-4zM8%206h2v1h-2zM8%207h2v1h-2zM7%208h4v1h-4zM6%209h6v1h-6zM5%2010h8v1h-8zM4%2011h10v1h-10zM4%2012h10v1h-10zM3%2013h12v1h-12zM3%2014h1v1h-1zM7%2014h4v1h-4zM14%2014h1v1h-1zM8%2015h2v1h-2z'/%3e%3c/svg%3e")}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-swatch[data-mark=attacker]{background-color:#ff4d54;-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2018%2018'%20width='18'%20height='18'%20role='presentation'%20focusable='false'%3e%3cpath%20fill='%23ffffff'%20fill-rule='evenodd'%20d='M0%200h18v18h-18zM8%202h2v1h-2zM8%203h2v1h-2zM8%204h2v1h-2zM8%205h2v1h-2zM8%206h2v1h-2zM8%207h2v1h-2zM6%208h6v1h-6zM2%209h14v1h-14zM2%2010h14v1h-14zM7%2011h4v1h-4zM7%2012h4v1h-4zM8%2013h2v1h-2zM6%2014h6v1h-6zM6%2015h6v1h-6z'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2018%2018'%20width='18'%20height='18'%20role='presentation'%20focusable='false'%3e%3cpath%20fill='%23ffffff'%20fill-rule='evenodd'%20d='M0%200h18v18h-18zM8%202h2v1h-2zM8%203h2v1h-2zM8%204h2v1h-2zM8%205h2v1h-2zM8%206h2v1h-2zM8%207h2v1h-2zM6%208h6v1h-6zM2%209h14v1h-14zM2%2010h14v1h-14zM7%2011h4v1h-4zM7%2012h4v1h-4zM8%2013h2v1h-2zM6%2014h6v1h-6zM6%2015h6v1h-6z'/%3e%3c/svg%3e")}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-swatch[data-mark=ew]{background-color:#25ff3a;-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2018%2018'%20width='18'%20height='18'%20role='presentation'%20focusable='false'%3e%3cpath%20fill='%23ffffff'%20fill-rule='evenodd'%20d='M0%200h18v18h-18zM8%202h2v1h-2zM8%203h2v1h-2zM8%204h2v1h-2zM8%205h2v1h-2zM7%206h4v1h-4zM6%207h6v1h-6zM4%208h10v1h-10zM2%209h14v1h-14zM2%2010h3v1h-3zM8%2010h2v1h-2zM13%2010h3v1h-3zM8%2011h2v1h-2zM8%2012h2v1h-2zM8%2013h2v1h-2zM8%2014h2v1h-2zM6%2015h6v1h-6z'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2018%2018'%20width='18'%20height='18'%20role='presentation'%20focusable='false'%3e%3cpath%20fill='%23ffffff'%20fill-rule='evenodd'%20d='M0%200h18v18h-18zM8%202h2v1h-2zM8%203h2v1h-2zM8%204h2v1h-2zM8%205h2v1h-2zM7%206h4v1h-4zM6%207h6v1h-6zM4%208h10v1h-10zM2%209h14v1h-14zM2%2010h3v1h-3zM8%2010h2v1h-2zM13%2010h3v1h-3zM8%2011h2v1h-2zM8%2012h2v1h-2zM8%2013h2v1h-2zM8%2014h2v1h-2zM6%2015h6v1h-6z'/%3e%3c/svg%3e")}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-swatch[data-mark=missile]{background-color:#07c8ff;-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2019%2019'%20width='19'%20height='19'%20role='presentation'%20focusable='false'%3e%3cpath%20fill='%23ffffff'%20fill-rule='evenodd'%20d='M0%200h19v19h-19zM9%202h1v1h-1zM9%203h1v1h-1zM8%204h3v1h-3zM9%205h1v1h-1zM9%206h1v1h-1zM9%207h1v1h-1zM9%208h1v1h-1zM9%209h1v1h-1zM9%2010h1v1h-1zM9%2011h1v1h-1zM9%2012h1v1h-1zM8%2013h3v1h-3zM8%2014h3v1h-3zM7%2015h5v1h-5zM7%2016h5v1h-5z'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2019%2019'%20width='19'%20height='19'%20role='presentation'%20focusable='false'%3e%3cpath%20fill='%23ffffff'%20fill-rule='evenodd'%20d='M0%200h19v19h-19zM9%202h1v1h-1zM9%203h1v1h-1zM8%204h3v1h-3zM9%205h1v1h-1zM9%206h1v1h-1zM9%207h1v1h-1zM9%208h1v1h-1zM9%209h1v1h-1zM9%2010h1v1h-1zM9%2011h1v1h-1zM9%2012h1v1h-1zM8%2013h3v1h-3zM8%2014h3v1h-3zM7%2015h5v1h-5zM7%2016h5v1h-5z'/%3e%3c/svg%3e")}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-swatch[data-mark=bomb]{background-color:#ff4d54;-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2019%2019'%20width='19'%20height='19'%20role='presentation'%20focusable='false'%3e%3cpath%20fill='%23ffffff'%20fill-rule='evenodd'%20d='M0%200h19v19h-19zM8%202h3v1h-3zM8%203h3v1h-3zM8%204h3v1h-3zM9%205h1v1h-1zM8%206h3v1h-3zM8%207h3v1h-3zM8%208h3v1h-3zM8%209h3v1h-3zM8%2010h3v1h-3zM8%2011h3v1h-3zM8%2012h3v1h-3zM8%2013h3v1h-3zM8%2014h3v1h-3zM8%2015h3v1h-3zM9%2016h1v1h-1zM9%2017h1v1h-1z'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2019%2019'%20width='19'%20height='19'%20role='presentation'%20focusable='false'%3e%3cpath%20fill='%23ffffff'%20fill-rule='evenodd'%20d='M0%200h19v19h-19zM8%202h3v1h-3zM8%203h3v1h-3zM8%204h3v1h-3zM9%205h1v1h-1zM8%206h3v1h-3zM8%207h3v1h-3zM8%208h3v1h-3zM8%209h3v1h-3zM8%2010h3v1h-3zM8%2011h3v1h-3zM8%2012h3v1h-3zM8%2013h3v1h-3zM8%2014h3v1h-3zM8%2015h3v1h-3zM9%2016h1v1h-1zM9%2017h1v1h-1z'/%3e%3c/svg%3e")}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-swatch[data-mark=pod]{background-color:#25ff3a;-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2019%2019'%20width='19'%20height='19'%20role='presentation'%20focusable='false'%3e%3cpath%20fill='%23ffffff'%20fill-rule='evenodd'%20d='M0%200h19v19h-19zM8%207h3v1h-3zM3%208h1v1h-1zM5%208h11v1h-11zM2%209h15v1h-15zM5%2010h11v1h-11zM8%2011h1v1h-1z'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2019%2019'%20width='19'%20height='19'%20role='presentation'%20focusable='false'%3e%3cpath%20fill='%23ffffff'%20fill-rule='evenodd'%20d='M0%200h19v19h-19zM8%207h3v1h-3zM3%208h1v1h-1zM5%208h11v1h-11zM2%209h15v1h-15zM5%2010h11v1h-11zM8%2011h1v1h-1z'/%3e%3c/svg%3e")}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-swatch[data-mark=rules]{background-color:var(--ace-cyan-glow);width:4px;height:14px;justify-self:center}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-card strong{font-size:13px;font-weight:400;letter-spacing:.02em;color:var(--ace-text-primary);overflow-wrap:anywhere}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-card>span:not(.role-swatch){font-size:11px;font-variant-numeric:tabular-nums;color:var(--ace-text-tertiary)}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-card small{grid-column:1 / -1;padding-left:28px;font-size:11px;line-height:1.5;color:var(--ace-text-tertiary);opacity:.9}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-card:hover:where(:not([aria-pressed=true])){background:#5cc4ff0d;border-left-color:#5cc4ff73;color:var(--ace-text-primary);box-shadow:none}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-card[aria-pressed=true]{background:#5cc4ff12;border-left-color:var(--ace-cyan);box-shadow:none}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-card[aria-pressed=true] strong{text-shadow:0 0 6px var(--ace-cyan-glow)}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-card:focus-visible{outline:2px solid var(--ace-orange);outline-offset:-2px}#app[data-workspace=manager] #manager-panel #manager-content .role-library-detail>label{max-width:340px}#app[data-workspace=manager] #manager-panel #manager-content .role-library-detail h3{font-size:22px;font-weight:300;letter-spacing:.1em;text-transform:none;color:var(--ace-text-primary);margin:0;overflow-wrap:anywhere}#app[data-workspace=manager] #manager-panel #manager-content .role-library-detail h3:before,#app[data-workspace=manager] #manager-panel #manager-content .role-library-detail h3:after{content:"|";margin:0 .4em;opacity:.5}#app[data-workspace=manager] #manager-panel #manager-content .role-library-detail h4,#app[data-workspace=manager] #manager-panel #manager-content .role-library legend{font-size:10px;font-weight:400;letter-spacing:.15em;text-transform:uppercase;color:var(--ace-text-tertiary);padding:0;margin:20px 0 6px}#app[data-workspace=manager] #manager-panel #manager-content .role-library-detail h4:before,#app[data-workspace=manager] #manager-panel #manager-content .role-library legend:before{content:"["}#app[data-workspace=manager] #manager-panel #manager-content .role-library-detail h4:after,#app[data-workspace=manager] #manager-panel #manager-content .role-library legend:after{content:"]"}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-badges{gap:0;align-items:baseline}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-badges span{background:none;border-radius:0;padding:0;font-size:11px;letter-spacing:.1em;color:var(--ace-cyan)}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-badges span+span:before{content:"|";margin:0 8px;color:var(--ace-text-tertiary)}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-specs{display:block;margin:0}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-specs>div{display:grid;grid-template-columns:auto minmax(48px,1fr) minmax(76px,auto);align-items:center;gap:4px 12px;max-width:560px;padding:5px 0 5px 12px}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-specs dt{font-size:12px;letter-spacing:.04em;color:var(--ace-text-secondary);min-width:0}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-specs dd{margin:0;text-align:right;font-size:13px;font-variant-numeric:tabular-nums;color:var(--ace-cyan);overflow-wrap:anywhere}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-meter{position:relative;height:3px;background:#5cc4ff24}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-meter[data-empty=true]{height:0;background:none;border-bottom:1px dotted rgba(94,116,136,.45)}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-meter-fill{display:block;height:3px;background:var(--ace-cyan);box-shadow:0 0 6px #5cc4ff8c;transform:scaleX(var(--role-fill, 0));transform-origin:left center}#app[data-workspace=manager] #manager-panel #manager-content .role-library button{min-height:32px;padding:7px 12px;border-style:none;border-radius:0}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-primary{font-weight:400;color:var(--ace-text-primary);background:#5cc4ff2e}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-primary:hover:not(:disabled){color:#f4fbff;background:#5cc4ff4d}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-quiet{color:var(--ace-text-secondary);background:transparent}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-danger{color:#ff9a80;background:transparent}#app[data-workspace=manager] #manager-panel #manager-content .role-library details{background:transparent;border-style:none;border-radius:0;border-bottom:1px solid rgba(42,61,82,.55);padding:0}#app[data-workspace=manager] #manager-panel #manager-content .role-library summary{padding:9px 0;font-size:12px;color:var(--ace-text-secondary);list-style:none}#app[data-workspace=manager] #manager-panel #manager-content .role-library summary::-webkit-details-marker{display:none}#app[data-workspace=manager] #manager-panel #manager-content .role-library details>summary:before{content:"+";margin-right:8px;color:var(--ace-text-tertiary)}#app[data-workspace=manager] #manager-panel #manager-content .role-library details[open]>summary:before{content:"−"}#app[data-workspace=manager] #manager-panel #manager-content .role-library summary:hover,#app[data-workspace=manager] #manager-panel #manager-content .role-library summary:focus-visible{color:var(--ace-cyan)}#app[data-workspace=manager] #manager-panel #manager-content .role-library summary:focus-visible{outline:2px solid var(--ace-orange);outline-offset:2px}#app[data-workspace=manager] #manager-panel #manager-content .role-library details>:not(summary){margin:8px 0 14px}#app[data-workspace=manager] #manager-panel #manager-content .role-library details>.role-description{margin:4px 0 14px}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-confirm,#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-error{background:#e5483b14;border-style:none;border-left:2px solid var(--ace-red);border-radius:0;padding:12px 14px;margin-bottom:14px}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-error{color:#ffd2c8}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-help,#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-description{font-size:12px;line-height:1.8;color:var(--ace-text-secondary)}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-editor-footer{position:sticky;bottom:0;margin:14px 0 0;padding:12px 0;border-top:1px solid var(--ace-line);background:#07101ceb;-webkit-backdrop-filter:none;backdrop-filter:none}@media(max-width:900px){#app[data-workspace=manager] #manager-panel #manager-content .role-library-layout{grid-template-columns:minmax(200px,240px) minmax(0,1fr);gap:20px}}@media(max-width:640px){#app[data-workspace=manager] #manager-panel #manager-content .role-library-layout{grid-template-columns:1fr}#app[data-workspace=manager] #manager-panel #manager-content .role-library .role-specs>div{grid-template-columns:auto minmax(32px,1fr) minmax(64px,auto)}}#app[data-workspace=manager] #manager-panel .ac-select-bars,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .ac-select-bars,#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .ac-select-bars{position:absolute;inset:0;pointer-events:none}#app[data-workspace=manager] #manager-panel .ac-select-bars .ac-bar,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .ac-select-bars .ac-bar,#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .ac-select-bars .ac-bar{position:absolute;left:0;right:0;height:2px;background:var(--ace-cyan);transform:scaleY(0)}#app[data-workspace=manager] #manager-panel .ac-select-bars .ac-bar-top,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .ac-select-bars .ac-bar-top,#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .ac-select-bars .ac-bar-top{top:0}#app[data-workspace=manager] #manager-panel .ac-select-bars .ac-bar-bottom,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .ac-select-bars .ac-bar-bottom,#app[data-workspace=sandbox]:not([data-player-view=true]) #player-roster-panel .ac-select-bars .ac-bar-bottom{bottom:0}#app[data-workspace=manager] #manager-panel .manager-tabs,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-nav{overflow-x:hidden}#app[data-workspace=manager] #manager-panel .manager-tabs .ac-axis,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-nav .ac-axis{position:absolute;inset:0;pointer-events:none}#app[data-workspace=manager] #manager-panel .ac-axis-dot,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .ac-axis-dot{position:absolute;left:12px;top:0;width:6px;height:6px;background:var(--ace-orange);border-radius:50%;box-shadow:0 0 10px var(--ace-orange),0 0 20px #ff9a3c66}#app[data-workspace=manager] #manager-panel .ac-drift{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}#app[data-workspace=manager] #manager-panel .ac-drift-surface{position:absolute;inset:-30%;background:linear-gradient(180deg,rgba(92,196,255,.04),transparent 35%),url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1600'%20height='900'%20viewBox='0%200%201600%20900'%3e%3cdefs%3e%3cpattern%20id='cell'%20width='40'%20height='40'%20patternUnits='userSpaceOnUse'%3e%3cpath%20d='M40%200H0V40'%20fill='none'%20stroke='%239fb8cc'%20stroke-opacity='.07'/%3e%3c/pattern%3e%3cpattern%20id='block'%20width='200'%20height='200'%20patternUnits='userSpaceOnUse'%3e%3cpath%20d='M200%200H0V200'%20fill='none'%20stroke='%23b9cfde'%20stroke-opacity='.16'/%3e%3cpath%20d='M96%20100h8M100%2096v8'%20stroke='%23d6e4ee'%20stroke-opacity='.35'/%3e%3cpath%20d='M8%208h22M8%2013h14M8%2018h18'%20stroke='%23c4d6e2'%20stroke-opacity='.14'/%3e%3c/pattern%3e%3c/defs%3e%3crect%20width='1600'%20height='900'%20fill='url(%23cell)'/%3e%3crect%20width='1600'%20height='900'%20fill='url(%23block)'/%3e%3cg%20fill='none'%20stroke='%23c9dbe7'%20stroke-opacity='.09'%3e%3cpath%20d='M980%20120c140%2030%20260%20120%20300%20250s-40%20260-160%20300-300%2010-380-90-60-260%2040-350%20120-120%20200-110z'/%3e%3cpath%20d='M1010%20180c110%2026%20200%20100%20230%20200s-30%20200-120%20230-230%208-290-70-46-200%2030-270%2090-96%20150-90z'/%3e%3cpath%20d='M1040%20240c80%2020%20140%2076%20160%20150s-22%20150-90%20172-170%206-214-52-34-150%2022-202%2066-72%20122-68z'/%3e%3cpath%20d='M1070%20300c50%2012%2090%2050%20104%20100s-14%2098-58%20112-110%204-138-34-22-98%2014-132%2042-48%2078-46z'/%3e%3c/g%3e%3cg%20stroke='%23dbe8f0'%20stroke-opacity='.22'%20fill='none'%3e%3cpath%20d='M0%20450H1600M800%200V900'%20stroke-opacity='.08'/%3e%3cpath%20d='M1200%200L1440%20900M1360%200L1180%20900'/%3e%3c/g%3e%3c/svg%3e") center / cover}#app[data-workspace=manager] #manager-panel #manager-content .manager-data-value[data-ac-rolling]{position:relative;color:transparent}#app[data-workspace=manager] #manager-panel #manager-content .manager-data-value[data-ac-rolling]:after{content:counter(ac-count);position:absolute;right:0;top:0;color:var(--ace-cyan);font-variant-numeric:tabular-nums}#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar input[data-ac-fill]{background-image:linear-gradient(var(--ace-cyan),var(--ace-cyan));background-repeat:no-repeat;background-position:left bottom;background-size:var(--ac-fill, 0%) 2px}@media(prefers-reduced-motion:reduce){#app[data-workspace=manager] #manager-panel *,#app[data-workspace=sandbox]:not([data-player-view=true]) :is(#edit-panel.editor-sidebar,#player-roster-panel) *{transition:none}}@media(pointer:coarse){#app[data-workspace=manager] #manager-panel .manager-tabs button,#app[data-workspace=sandbox]:not([data-player-view=true]) #edit-panel.editor-sidebar .sidebar-nav button{min-height:44px;min-width:44px}}
