/* Shared components; surface files own composition, not component skins. */
.ui-root{font-family:var(--ui-font-body);color:var(--ui-text);scrollbar-color:var(--ui-cyan) var(--ui-bg)}
.ui-root .ui-button{display:inline-flex;align-items:center;justify-content:center;position:relative;min-height:var(--ui-target-min);border-radius:var(--ui-control-radius);cursor:pointer;text-decoration:none;touch-action:manipulation}
:where(.ui-root) .ui-panel{border:1px solid var(--ui-border);border-radius:var(--ui-panel-radius);background:var(--ui-panel)}
.ui-root :is(button,a,select,input,canvas):focus-visible{outline:2px solid var(--ui-focus);outline-offset:4px}
.ui-root ::selection{color:var(--ui-bg);background:var(--ui-focus)}
.ui-root .ui-button:disabled{cursor:not-allowed}
.ui-root .ui-button--back{justify-self:start;display:flex;align-items:center;gap:8px;min-height:48px;padding:9px 16px;border:1px solid var(--ui-shade-546a70);border-radius:4px;background:var(--ui-shade-23333a);text-decoration:none;color:var(--ui-shade-d8e2dc);font-size:16px}
.ui-root .ui-button--back svg{width:22px;height:22px}
.ui-root .ui-button--primary{position:relative;display:block;width:100%;min-height:54px;padding:12px 24px;background:var(--ui-focus);border:1px solid var(--ui-shade-ffe7a1);color:var(--ui-shade-1d2526);font:600 25px/1 var(--ui-font-display);text-transform:uppercase;letter-spacing:.02em}
.ui-root .ui-button--primary:disabled{opacity:1;cursor:default}
.ui-root .ui-slot--inventory{position:relative;display:grid;place-items:center;aspect-ratio:1;min-height:44px;padding:12px;border:1px solid var(--ui-shade-445b60);border-radius:5px;background:var(--ui-shade-142126);color:var(--ui-shade-d7d4b4);touch-action:manipulation}
.ui-root .ui-slot--inventory.occupied{background:var(--ui-shade-233438);border-color:var(--ui-shade-6f8584);color:var(--ui-shade-f2d89b)}
.ui-root .ui-slot--inventory[data-kind=ammunition]{color:var(--ui-cyan);border-color:var(--ui-shade-659fa5)}
.ui-root .ui-slot--inventory svg{width:37px;height:37px}
.ui-root .ui-slot__count{position:absolute;right:8px;bottom:7px;font-size:12px;font-weight:600;color:var(--ui-shade-eef0df)}
.ui-root .ui-slot__empty{width:4px;height:4px;background:var(--ui-shade-4d676d);border-radius:50%}
.ui-root .ui-slot--inventory:hover{background:var(--ui-shade-2c4144)}
.ui-root .ui-slot--inventory[aria-pressed=true]{background:var(--ui-shade-3c3b2b);border-color:var(--ui-focus);outline:1px solid var(--ui-focus);outline-offset:-4px}
.ui-root .ui-slot--equipment{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:80px;min-height:88px;padding:10px 4px;border:1px solid var(--ui-shade-609da1);border-radius:5px;background:var(--ui-shade-1d3237);color:var(--ui-cyan);touch-action:manipulation;pointer-events:auto}
.ui-root .ui-slot--equipment:before{content:'';position:absolute;left:-19px;top:50%;width:5px;height:5px;border-radius:50%;background:var(--ui-shade-83abae)}
.ui-root .ui-slot--equipment span{font-size:11px;white-space:nowrap;color:var(--ui-shade-c7d8d0)}
.ui-root .ui-slot--equipment>svg{width:32px;height:32px}
.ui-root .ui-slot--equipment>.rifle-item-image{width:62px;height:34px;object-fit:contain}
.ui-root .ui-slot--equipment small{position:absolute;right:6px;top:5px;font-size:11px;color:var(--ui-focus)}
.ui-root .ui-slot--equipment.two-handed{border-color:var(--ui-shade-c4a565);background:var(--ui-shade-323128);color:var(--ui-shade-efd59c)}
.ui-root .ui-slot--equipment.two-handed span{color:var(--ui-shade-f1dcad)}
.ui-root .ui-slot--equipment:hover{background:var(--ui-shade-324a4d)}
.ui-root .ui-slot--equipment.selected{border-color:var(--ui-focus);outline:1px solid var(--ui-focus);outline-offset:-4px;background:var(--ui-shade-45402c)}
.ui-root .ui-avatar{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;width:84px;min-height:96px;padding:5px 5px 7px;border:1px solid var(--ui-shade-486168);border-radius:4px;background:var(--ui-shade-203136);font-size:12px;color:var(--ui-shade-d9e3da);box-shadow:none}
.ui-root .ui-avatar img{display:block;width:64px;height:64px;object-fit:contain;pointer-events:none}
.ui-root .ui-avatar[aria-pressed=true]{background:var(--ui-shade-3c3b2b);border-color:var(--ui-focus);box-shadow:none}
.ui-root .ui-avatar:hover{background:var(--ui-shade-354a4c)}
.ui-root .ui-stat-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px;font-size:14px;line-height:1.4;padding:6px 0}
.ui-root .ui-stat-row span{color:var(--ui-shade-d0ddd7)}
.ui-root .ui-stat-row strong{font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums}
.ui-root .ui-stat-row em{font-style:normal;font-size:11px;color:var(--ui-shade-b3e4ae)}
.ui-root .ui-health{height:9px;padding:2px;background:var(--ui-shade-13242a);border:1px solid var(--ui-shade-577a7e);border-radius:3px;margin:3px 0 19px}
.ui-root .ui-health i{display:block;width:100%;height:100%;background:var(--ui-shade-82d7c6);border-radius:1px}
.ui-root .ui-stat-table{display:grid;gap:5px}
.ui-root .ui-stat-table .ui-stat-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px;padding:0;min-height:34px}
.ui-root .ui-stat-table .ui-stat-row>span{height:100%;display:flex;align-items:center;padding:7px 10px;background:var(--ui-shade-24363c);border-radius:3px}
.ui-root .ui-stat-table .ui-stat-row>strong{min-width:112px;align-self:stretch;display:flex;align-items:center;justify-content:flex-end;gap:3px;padding:7px 10px;background:var(--ui-shade-38392c);border-radius:3px}
.ui-root .ui-stat-table .ui-stat-row[data-stat=recoil]>strong{background:var(--ui-shade-204247)}
.ui-root .ui-stat-table .ui-stat-row[data-stat=magazine]>strong{background:var(--ui-shade-204247)}
.ui-root .ui-stat-table .ui-stat-row[data-stat=reload]>strong{background:var(--ui-shade-284c39)}
.ui-root .ui-inspector{margin-top:24px;padding:14px;border:1px solid var(--ui-shade-5c7c80);border-radius:6px;background:var(--ui-shade-203238)}
.ui-root .ui-inspector[hidden]{display:none}
.ui-root .ui-inspector__heading{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding-bottom:12px;border-bottom:1px solid var(--ui-shade-405b60)}
.ui-root .ui-inspector__heading>svg{width:38px;height:38px;color:var(--ui-shade-f1d08f);flex-shrink:0}
.ui-root .ui-inspector__heading>.rifle-item-image{width:46px;height:30px;object-fit:contain;flex-shrink:0}
.ui-root .ui-inspector__heading strong{font:600 23px/1.1 var(--ui-font-display);color:var(--ui-shade-eff0dc)}
.ui-root .ui-inspector__heading small{display:block;font-size:11px;color:var(--ui-shade-bdceca);margin-top:4px}
.ui-root .ui-inspector__heading button{margin-left:auto;min-width:44px;min-height:44px;padding:8px;border:0;background:none;color:var(--ui-shade-d0ddd7)}
.ui-root .ui-inspector__heading button svg{width:18px;height:18px}
.ui-root .ui-inspector__copy{margin:0 0 12px;font-size:12px;line-height:1.65;color:var(--ui-shade-d0ddd7)}
.ui-root .ui-inspector .ui-stat-row{padding:7px 0;font-size:12px;border-top:1px solid var(--ui-shade-3c575d)}
.ui-root .ui-inspector .ui-stat-row strong{padding:3px 7px;background:var(--ui-shade-334b3b);border-radius:3px;color:var(--ui-shade-dfefcf)}
.ui-root .ui-inspector__note{font-size:11px;line-height:1.5;margin:12px 0 0;color:var(--ui-shade-bdceca)}
.ui-root .ui-item-actions{margin-top:14px}
.ui-root .ui-item-actions>button{min-height:44px;background:var(--ui-focus);color:var(--ui-shade-172126);border:0;font-weight:600}
@media(min-width:1600px){.ui-root .ui-slot--equipment{min-height:100px}}
@media(max-width:700px){.ui-root .ui-button--back{min-height:44px;padding:7px 10px;font-size:13px}
.ui-root .ui-button--primary{font-size:21px;min-height:44px;padding:10px}
.ui-root .ui-slot--equipment{width:62px;min-height:70px;gap:5px;padding:7px 3px}
.ui-root .ui-slot--equipment>svg{width:26px;height:26px}
.ui-root .ui-slot--equipment>.rifle-item-image{width:48px;height:28px}
.ui-root .ui-slot--equipment span{font-size:11px}
.ui-root .ui-slot--equipment:before{left:-15px}
.ui-root .ui-avatar{width:calc((100% - 12px)/3);min-height:77px;padding:4px;font-size:11px}
.ui-root .ui-avatar img{width:48px;height:48px}
.ui-root .ui-slot--inventory{aspect-ratio:1.15}
.ui-root .ui-stat-table{gap:5px}
.ui-root .ui-inspector{margin-top:16px}
.ui-root .ui-stat-row{font-size:14px}}
.ui-root .ui-button--primary{display:flex;align-items:center;justify-content:center;gap:12px;min-height:60px;background:var(--ui-primary);border-color:var(--ui-primary-border);box-shadow:0 4px 22px var(--ui-shade-fbd24d44);font-size:28px;color:var(--ui-on-primary)}
.ui-root .ui-button--primary:before{content:'';position:absolute;top:7px;bottom:7px;width:9px;border-top:3px solid var(--ui-shade-b99a2c);border-bottom:3px solid var(--ui-shade-b99a2c)}
.ui-root .ui-button--primary:after{content:'';position:absolute;top:7px;bottom:7px;width:9px;border-top:3px solid var(--ui-shade-b99a2c);border-bottom:3px solid var(--ui-shade-b99a2c)}
.ui-root .ui-button--primary:before{left:7px;border-left:3px solid var(--ui-shade-b99a2c)}
.ui-root .ui-button--primary:after{right:7px;border-right:3px solid var(--ui-shade-b99a2c)}
.ui-root .ui-button--primary svg{width:22px;height:22px}
.ui-root .ui-slot--inventory{background:linear-gradient(135deg,var(--ui-shade-1b2b31),var(--ui-shade-111d23));border-color:var(--ui-shade-41575d);box-shadow:inset 0 1px 0 var(--ui-shade-5c777029)}
.ui-root .ui-slot--inventory.occupied{background:radial-gradient(ellipse at center,var(--ui-shade-394238),var(--ui-shade-1c2b31) 85%);color:var(--ui-shade-f6d896)}
.ui-root .ui-slot--inventory[data-kind=ammunition]{background:radial-gradient(ellipse at center,var(--ui-shade-29454a),var(--ui-shade-182c32) 85%);box-shadow:0 3px 14px var(--ui-shade-6cccd221)}
.ui-root .ui-slot--inventory[aria-pressed=true]{background:radial-gradient(ellipse at center,var(--ui-shade-51482e),var(--ui-shade-302c23) 85%);border-color:var(--ui-shade-f5c774);outline:0;box-shadow:0 3px 17px var(--ui-shade-efb95c35),inset 0 0 0 1px var(--ui-shade-c79857)}
.ui-root .ui-slot--inventory.occupied svg{filter:drop-shadow(0 2px 6px var(--ui-shade-e5c37150))}
.ui-root .ui-slot--inventory[data-kind=ammunition] svg{filter:drop-shadow(0 2px 6px var(--ui-shade-7bd6df60))}
.ui-root .ui-slot--equipment{background:radial-gradient(ellipse at center,var(--ui-shade-21414a),var(--ui-shade-192d34) 85%);border-color:var(--ui-shade-71b8c2);box-shadow:0 4px 16px var(--ui-shade-6ccbd51a);min-height:96px}
.ui-root .ui-slot--equipment:after{content:'';position:absolute;inset:6px;pointer-events:none;background:linear-gradient(var(--ui-shade-81bbc0),var(--ui-shade-81bbc0)) left top/8px 1px no-repeat,linear-gradient(var(--ui-shade-81bbc0),var(--ui-shade-81bbc0)) left top/1px 8px no-repeat,linear-gradient(var(--ui-shade-81bbc0),var(--ui-shade-81bbc0)) right bottom/8px 1px no-repeat,linear-gradient(var(--ui-shade-81bbc0),var(--ui-shade-81bbc0)) right bottom/1px 8px no-repeat;opacity:.65}
.ui-root .ui-slot--equipment.two-handed{border-color:var(--ui-shade-e8bb6b);background:radial-gradient(ellipse at center,var(--ui-shade-46412d),var(--ui-shade-292c27) 85%);box-shadow:0 4px 16px var(--ui-shade-d6a94c24)}
.ui-root .ui-slot--equipment.two-handed:after{filter:sepia(1)}
.ui-root .ui-slot--equipment.selected{border-color:var(--ui-shade-ffd78a);box-shadow:0 4px 18px var(--ui-shade-eec26144)}
.ui-root .ui-slot--equipment>svg{filter:drop-shadow(0 2px 6px var(--ui-shade-6ccdd255))}
.ui-root .ui-slot--equipment.two-handed>.rifle-item-image{filter:brightness(1.2) drop-shadow(0 2px 6px var(--ui-shade-dcc26d35))}
.ui-root .ui-health{height:13px;padding:2px;margin:3px 0 20px}
.ui-root .ui-health i{background:linear-gradient(90deg,var(--ui-shade-5c9ca1),var(--ui-shade-87ebcb));box-shadow:0 2px 7px var(--ui-shade-7be7c02b)}
.ui-root .ui-stat-table .ui-stat-row{font-size:16px;min-height:38px}
.ui-root .ui-stat-table .ui-stat-row>span{justify-content:space-between;padding:8px 10px}
.ui-root .ui-stat-icon{width:19px!important;height:19px!important;flex-shrink:0;margin-left:6px;color:var(--ui-shade-b5c8c4)}
.ui-root .ui-stat-table .ui-stat-row>strong{font-weight:600;padding:8px 10px;background:linear-gradient(90deg,var(--ui-shade-38392b),var(--ui-shade-46422b))}
.ui-root .ui-stat-table .ui-stat-row[data-stat=recoil]>strong{background:linear-gradient(90deg,var(--ui-shade-25464a),var(--ui-shade-204249))}
.ui-root .ui-stat-table .ui-stat-row[data-stat=magazine]>strong{background:linear-gradient(90deg,var(--ui-shade-25464a),var(--ui-shade-204249))}
.ui-root .ui-stat-table .ui-stat-row[data-stat=reload]>strong{background:linear-gradient(90deg,var(--ui-shade-2d503b),var(--ui-shade-27563c))}
.ui-root .ui-inspector{background:linear-gradient(135deg,var(--ui-shade-293d43),var(--ui-shade-1a2c32));border-color:var(--ui-shade-66868b);min-height:270px;padding:14px 16px}
.ui-root .ui-inspector__heading strong{font-size:25px}
.ui-root .ui-inspector__copy{font-size:13px}
.ui-root .ui-inspector .ui-stat-row{font-size:14px}
.ui-root .ui-inspector .ui-stat-row strong{font-size:15px}
.ui-root .ui-inspector .ui-stat-row[data-stat=use-time] strong{background:var(--ui-shade-51472e);color:var(--ui-shade-f2dfb9)}
.ui-root .ui-avatar{min-height:104px;width:88px;font-size:13px;background:var(--ui-shade-203238)}
.ui-root .ui-avatar[aria-pressed=true]{border-color:var(--ui-shade-f0c775);background:linear-gradient(135deg,var(--ui-shade-4e4931),var(--ui-shade-323b32));box-shadow:0 3px 14px var(--ui-shade-ddbc7033)}
.ui-root .ui-avatar img{width:68px;height:68px}
@media(min-width:1600px){.ui-root .ui-slot--equipment{min-height:106px}}
@media(min-width:701px) and (max-width:1180px){.ui-root .ui-button--primary{font-size:24px}}
@media(max-width:700px){.ui-root .ui-button--primary{font-size:22px;min-height:46px;gap:8px;padding:10px 14px}
.ui-root .ui-button--primary svg{width:17px;height:17px}
.ui-root .ui-button--primary:before{width:5px;top:5px;bottom:5px;border-width:2px}
.ui-root .ui-button--primary:after{width:5px;top:5px;bottom:5px;border-width:2px}
.ui-root .ui-button--primary:before{left:5px}
.ui-root .ui-button--primary:after{right:5px}
.ui-root .ui-slot--equipment{min-height:73px}
.ui-root .ui-avatar{min-height:80px;width:calc((100% - 12px)/3);font-size:11px}
.ui-root .ui-avatar img{width:48px;height:48px}
.ui-root .ui-inspector{min-height:0}
.ui-root .ui-stat-table .ui-stat-row{font-size:15px}
.ui-root .ui-stat-table .ui-stat-row>strong{min-width:115px}}
.ui-root .ui-slot--inventory[data-kind=ammunition]{color:var(--ui-cyan)}
.ui-root .ui-avatar{flex:0 0 96px;width:96px;min-height:122px;margin-top:-28px;padding:5px 5px 8px;gap:4px;font-size:14px}
.ui-root .ui-avatar img{width:82px;height:82px}
@media(max-width:700px){.ui-root .ui-avatar{flex:0 1 76px;width:76px;min-height:96px;margin-top:-18px;padding:4px 3px 7px;font-size:11px}
.ui-root .ui-avatar img{width:62px;height:62px}}
.ui-root .ui-stat-table{gap:5px}
.ui-root .ui-stat-table .ui-stat-row{grid-template-columns:minmax(0,1.18fr) minmax(0,1fr);min-height:42px;gap:4px}
.ui-root .ui-stat-table .ui-stat-row>span{padding:7px 12px;font:400 23px/1.15 var(--ui-font-display);background:linear-gradient(100deg,var(--ui-shade-293c41),var(--ui-shade-223239))}
.ui-root .ui-stat-table .ui-stat-row>strong{min-width:0;padding:7px 12px;font:600 24px/1.15 var(--ui-font-display);gap:4px;color:var(--ui-shade-f3f0dd)}
.ui-root .ui-stat-table .ui-stat-icon{width:23px!important;height:23px!important;margin-left:8px;color:var(--ui-shade-c1cec7)}
.ui-root .ui-stat-table .ui-stat-row em{font:400 21px/1.15 var(--ui-font-display);color:var(--ui-shade-ace5aa)}
@media(max-width:700px){.ui-root .ui-stat-table .ui-stat-row>span{font-size:22px}
.ui-root .ui-stat-table .ui-stat-row>strong{font-size:23px}
.ui-root .ui-stat-table .ui-stat-row em{font-size:20px}}
.ui-root .ui-stat-table .ui-stat-row>span{font-size:20px}
.ui-root .ui-stat-table .ui-stat-row>strong{font-size:21px}
.ui-root .ui-stat-table .ui-stat-row em{font-size:18px}
@media(max-width:700px){.ui-root .ui-stat-table .ui-stat-row>span{font-size:19px}
.ui-root .ui-stat-table .ui-stat-row>strong{font-size:20px}
.ui-root .ui-stat-table .ui-stat-row em{font-size:17px}}
@media(min-width:1181px){.ui-root .ui-stat-table{gap:4px}
.ui-root .ui-stat-table .ui-stat-row{min-height:37px}
.ui-root .ui-stat-table .ui-stat-row>span{padding-top:5px;padding-bottom:5px}
.ui-root .ui-stat-table .ui-stat-row>strong{padding-top:5px;padding-bottom:5px}}
.ui-root .ui-inspector{position:relative;min-height:330px;margin-top:28px;padding:14px;border-radius:8px;background:linear-gradient(135deg,var(--ui-shade-2b4045),var(--ui-shade-1b2a30) 80%);border:1px solid var(--ui-shade-6b8589)}
.ui-root .ui-inspector:before{content:'';position:absolute;top:-17px;left:0;right:0;height:3px;border-inline:4px solid var(--ui-shade-779498);background:linear-gradient(transparent 1px,var(--ui-shade-405a60) 1px,var(--ui-shade-405a60) 2px,transparent 2px)}
.ui-root .ui-inspector__heading{align-items:flex-start;gap:11px;margin:-14px -14px 0;padding:10px 10px 10px 12px;border-bottom:1px solid var(--ui-shade-526b70);background:var(--ui-shade-2d41462b);border-radius:8px 8px 0 0}
.ui-root .ui-inspector__icon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:50px;background:var(--ui-shade-13262b);border-radius:4px;color:var(--ui-shade-f0cf8d)}
.ui-root .ui-inspector__icon>svg{width:36px;height:36px;filter:drop-shadow(0 2px 5px var(--ui-shade-d9b76344))}
.ui-root .ui-inspector__icon>.rifle-item-image{width:44px;height:30px;object-fit:contain}
.ui-root .ui-inspector__heading>span{padding-top:2px;min-width:0}
.ui-root .ui-inspector__heading strong{font:600 25px/1.1 var(--ui-font-display)}
.ui-root .ui-inspector__heading small{font:400 18px/1.2 var(--ui-font-display);margin-top:4px;color:var(--ui-shade-d0d9ce)}
.ui-root .ui-inspector__heading button{min-width:32px;min-height:32px;padding:6px;margin-left:auto;align-self:flex-start}
.ui-root .ui-inspector__heading button svg{width:18px;height:18px}
.ui-root .ui-inspector__copy{margin:0;padding:11px 0 12px;font:400 20px/1.35 var(--ui-font-display);color:var(--ui-shade-d5dfd6)}
.ui-root .ui-inspector .ui-stat-row{padding:8px 0;min-height:38px;border-top:1px solid var(--ui-shade-4a6369);font:400 20px/1.2 var(--ui-font-display)}
.ui-root .ui-inspector .ui-stat-row strong{padding:4px 7px;font:600 20px/1.1 var(--ui-font-display);background:var(--ui-shade-2b5c3e);color:var(--ui-shade-cfedc8)}
.ui-root .ui-inspector .ui-stat-row[data-stat=use-time] strong{background:var(--ui-shade-605234);color:var(--ui-shade-f1e1b8)}
.ui-root .ui-inspector__note{margin:0;padding-top:12px;border-top:1px solid var(--ui-shade-4a6369);font:400 18px/1.35 var(--ui-font-display);color:var(--ui-shade-d0d9ce)}
.ui-root .ui-inspector .ui-item-actions{padding-top:12px;border-top:1px solid var(--ui-shade-4a6369)}
@media(max-width:700px){.ui-root .ui-inspector{min-height:290px;margin-top:26px}
.ui-root .ui-inspector__heading button{min-width:44px;min-height:44px}
.ui-root .ui-inspector__copy{font-size:20px}
.ui-root .ui-inspector__note{font-size:18px}}
@media(min-width:701px){.ui-root .ui-inspector{min-height:clamp(290px,32vh,330px)}}
.ui-root .ui-button--toggle{min-width:106px;min-height:60px;padding:12px 18px;background:var(--ui-shade-24383e);border:1px solid var(--ui-shade-7d9b9e);color:var(--ui-shade-e1e8dc);font:600 23px/1 var(--ui-font-display);text-transform:uppercase;letter-spacing:.02em}
.ui-root .ui-button--toggle:hover{background:var(--ui-shade-344d52)}
.ui-root .ui-button--toggle[aria-pressed=false]{border-color:var(--ui-shade-bca775);color:var(--ui-shade-f5d898)}
.ui-root .ui-button--primary:disabled{background:var(--ui-disabled-bg);border-color:var(--ui-disabled-border);color:var(--ui-disabled-text);box-shadow:none;cursor:not-allowed}
.ui-root .ui-button--primary:disabled:before{border-color:var(--ui-shade-6c8082)}
.ui-root .ui-button--primary:disabled:after{border-color:var(--ui-shade-6c8082)}
.ui-root .ui-avatar{position:relative}
.ui-root .ui-membership-mark{position:absolute;top:4px;right:4px;display:grid;place-items:center;width:18px;height:18px;border-radius:3px;background:var(--ui-member-mark);color:var(--ui-on-member)}
.ui-root .ui-membership-mark svg{width:14px;height:14px}
.ui-root .ui-avatar.not-deploying img{opacity:.5;filter:saturate(.45)}
.ui-root .ui-avatar.not-deploying[aria-pressed=true] img{opacity:.85}
@media(min-width:701px) and (max-width:1180px){.ui-root .ui-button--toggle{min-height:60px;min-width:92px;padding:10px 12px;font-size:21px}}
@media(max-width:700px){.ui-root .ui-button--toggle{min-width:88px;min-height:46px;padding:10px 8px;font-size:20px}
.ui-root .ui-button--back{gap:6px;padding:7px 8px}
.ui-root .ui-button--back svg{width:18px;height:18px}}
.ui-root .ui-avatar.deploying{background:linear-gradient(135deg,var(--ui-member-start),var(--ui-member-end));border-color:var(--ui-member-border);box-shadow:none}
.ui-root .ui-avatar.deploying[aria-pressed=true]{background:linear-gradient(135deg,var(--ui-shade-3e6b4b),var(--ui-shade-2a5138));border-color:var(--ui-shade-8ac99a);outline:1px solid var(--ui-focus);outline-offset:3px;box-shadow:none}
.ui-root .ui-avatar.not-deploying[aria-pressed=true]{background:var(--ui-surface);border-color:var(--ui-focus);box-shadow:none}
.ui-root .ui-button__count{min-width:26px;padding-left:10px;border-left:1px solid var(--ui-shade-b79939);font-variant-numeric:tabular-nums;text-align:center}
.ui-root .ui-button--primary:disabled .depart-count{border-color:var(--ui-shade-6c8082)}
@media(max-width:700px){.ui-root .ui-button--primary{gap:6px;padding-inline:12px;font-size:21px}
.ui-root .ui-button__count{min-width:22px;padding-left:7px}}
.ui-root .ui-button--back{min-height:60px;padding:12px 18px;gap:10px;background:linear-gradient(135deg,var(--ui-shade-2a3c43),var(--ui-shade-1e2d34));border:1px solid var(--ui-shade-607b82);border-radius:6px;color:var(--ui-shade-d0dcda);font:600 27px/1 var(--ui-font-display);text-transform:uppercase;box-shadow:inset 0 1px 0 var(--ui-shade-9ab1b224)}
.ui-root .ui-button--back svg{width:25px;height:25px}
.ui-root .ui-button--back:hover{background:var(--ui-shade-344c54);border-color:var(--ui-shade-87a4a9)}
@media(max-width:700px){.ui-root .ui-button--back{min-height:46px;padding:9px 10px;gap:6px;font-size:22px}
.ui-root .ui-button--back svg{width:18px;height:18px}}

/* Compact gameplay controls retain the shared state and focus grammar. */
.ui-root .ui-button--secondary{padding:10px 16px;border:1px solid var(--ui-border);background:var(--ui-panel);color:var(--ui-text);font:600 16px/1.2 var(--ui-font-display);gap:8px}
.ui-root .ui-button--secondary:hover{background:var(--ui-surface);border-color:var(--ui-cyan)}
.ui-root .ui-button--secondary[aria-pressed=true]{border-color:var(--ui-focus);color:var(--ui-focus)}
.ui-root .ui-button--secondary:disabled{background:var(--ui-disabled-bg);border-color:var(--ui-disabled-border);color:var(--ui-disabled-text);cursor:not-allowed}
.ui-root .ui-panel--hud{background:color-mix(in srgb,var(--ui-panel) 94%,transparent);border-radius:var(--ui-control-radius)}
.ui-root .ui-button--compact{width:auto;min-height:44px;font-size:18px;padding:10px 20px;box-shadow:none}

/* Square outlined item art stays legible in compact gear and supply slots. */
.ui-root .ui-slot--equipment>.inventory-item-image{width:42px;height:42px;object-fit:contain}
.ui-root .ui-inspector__icon>.inventory-item-image{width:44px;height:44px;object-fit:contain}

/* Diagonal rifle art uses the square canvas without cropping the silhouette. */
.ui-root .ui-slot--equipment>img.rifle-item-image--diagonal{width:42px;height:42px;object-fit:contain}
.ui-root .ui-inspector__icon>img.rifle-item-image--diagonal{width:44px;height:44px;object-fit:contain}

/* Reference-led carriage preparation variant; no global palette replacement. */
.ui-preparation--sage{--ui-panel:var(--ui-prep-panel);--ui-bg:var(--ui-prep-panel);--ui-text:var(--ui-prep-ink);--ui-muted:var(--ui-prep-muted);--ui-heading:var(--ui-prep-ink);--ui-border:var(--ui-prep-frame);--ui-surface:var(--ui-prep-cell-hover);color:var(--ui-text);scrollbar-color:var(--ui-prep-header) var(--ui-prep-panel)}
.ui-preparation--sage .ui-panel{background:var(--ui-panel);border:3px solid var(--ui-border);border-radius:2px}
.ui-preparation--sage :is(.ui-slot--inventory,.ui-slot--equipment){border:2px solid var(--ui-prep-frame);border-radius:1px;background:var(--ui-prep-cell);color:var(--ui-prep-ink);box-shadow:none}
.ui-preparation--sage :is(.ui-slot--inventory,.ui-slot--equipment).occupied{background:var(--ui-prep-cell);border-color:var(--ui-prep-frame);color:var(--ui-prep-ink)}
.ui-preparation--sage :is(.ui-slot--inventory,.ui-slot--equipment):hover{background:var(--ui-prep-cell-hover)}
.ui-preparation--sage :is(.ui-slot--inventory,.ui-slot--equipment)[aria-pressed=true]{border-color:var(--ui-prep-ink);outline:3px solid var(--ui-prep-selected);outline-offset:-5px;background:var(--ui-prep-cell-hover)}
.ui-preparation--sage .ui-slot__count{color:var(--ui-prep-ink);background:var(--ui-prep-panel);padding:2px 4px;font:600 18px/1 var(--ui-font-display)}
.ui-preparation--sage .ui-slot__empty{background:var(--ui-prep-muted)}
.ui-preparation--sage .ui-stat-row{color:var(--ui-prep-ink);border-color:var(--ui-prep-cell)}
.ui-preparation--sage .ui-stat-table .ui-stat-row :is(span,strong){background:none;color:var(--ui-prep-ink)}
.ui-preparation--sage .ui-stat-table .stat-difference--better{color:var(--ui-prep-better)}
.ui-preparation--sage .ui-stat-table .stat-difference--worse{color:var(--ui-prep-worse)}
.ui-preparation--sage .ui-inspector{color:var(--ui-prep-ink);background:var(--ui-prep-panel);box-shadow:none}
.ui-preparation--sage .ui-inspector__heading :is(strong,small){color:var(--ui-prep-ink)}
.ui-preparation--sage .ui-inspector__heading button{color:var(--ui-prep-ink)}

.ui-root.ui-preparation--sage .prep-kit .ui-slot--equipment{border-color:var(--ui-prep-frame);background:var(--ui-prep-cell);color:var(--ui-prep-ink)}
.ui-root.ui-preparation--sage .prep-kit .ui-slot--equipment[aria-pressed=true]{border-color:var(--ui-prep-ink);background:var(--ui-prep-cell-hover)}
.ui-root.ui-preparation--sage .prep-kit .ui-slot--equipment::before,.ui-root.ui-preparation--sage .prep-kit .ui-slot--equipment::after{display:none}
.ui-root.ui-preparation--sage .supply-slots .ui-slot__count{color:var(--ui-prep-ink);background:var(--ui-prep-panel)}
.ui-preparation--sage .ui-inspector .ui-stat-row strong{background:var(--ui-prep-cell-hover);color:var(--ui-prep-ink)}

/* Reference Frames 4/5: complete rectangular head-and-shoulder portraits. */
.ui-root.ui-preparation--sage .prep-roster .roster-card{border:4px solid var(--ui-prep-frame);border-radius:1px;background:var(--ui-prep-cell);box-shadow:none}
.ui-root.ui-preparation--sage .prep-roster .roster-card.viewed{border-color:var(--ui-focus);background:var(--ui-prep-cell-hover);box-shadow:none}
.ui-root.ui-preparation--sage .prep-roster .roster-card.expedition-selected:not(.viewed){border-color:var(--ui-prep-frame);background:var(--ui-prep-cell)}
.ui-root.ui-preparation--sage .prep-roster .roster-card .ui-avatar{padding:0;gap:0;min-height:126px;color:var(--ui-prep-ink)}
.ui-root.ui-preparation--sage .prep-roster .roster-card .ui-avatar img{width:100%;max-width:none;height:100px;object-fit:cover}
.ui-root.ui-preparation--sage .prep-roster .roster-card .ui-avatar>span{width:100%;font-size:16px;line-height:24px;background:var(--ui-prep-panel);color:var(--ui-prep-ink)}
.ui-root.ui-preparation--sage .prep-roster .roster-checkbox{top:0;right:0}

/* Sage preparation controls: flat, framed surfaces shared with the pale inventory. */
.ui-root.ui-preparation--sage .ui-button{min-height:44px;border:2px solid var(--ui-prep-frame);border-radius:1px;background:var(--ui-prep-cell);color:var(--ui-prep-ink);box-shadow:none;font:600 20px/1.1 var(--ui-font-display);letter-spacing:.015em;text-transform:none;padding:10px 14px;gap:8px}
.ui-root.ui-preparation--sage .ui-button::before,.ui-root.ui-preparation--sage .ui-button::after{display:none}
.ui-root.ui-preparation--sage .ui-button:hover:not(:disabled){background:var(--ui-prep-cell-hover);border-color:var(--ui-prep-ink)}
.ui-root.ui-preparation--sage .ui-button--primary,.ui-root.ui-preparation--sage .ui-button--secondary{background:var(--ui-prep-header);color:var(--ui-prep-frame);border-color:var(--ui-prep-frame)}
.ui-root.ui-preparation--sage .ui-button--primary:hover:not(:disabled),.ui-root.ui-preparation--sage .ui-button--secondary:hover:not(:disabled){background:var(--ui-prep-muted);color:var(--ui-prep-frame);border-color:var(--ui-prep-selected)}
.ui-root.ui-preparation--sage .ui-button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
.ui-root.ui-preparation--sage .ui-button__count{background:transparent;border:0;border-left:1px solid var(--ui-prep-cell-hover);border-radius:0;color:inherit;box-shadow:none;padding-left:12px}
.ui-root.ui-preparation--sage .ui-button:focus-visible{outline:3px solid var(--ui-prep-selected);outline-offset:2px}
.ui-root.ui-preparation--sage .roster-arrow{background:var(--ui-prep-panel);border:2px solid var(--ui-prep-frame);border-radius:1px;color:var(--ui-prep-ink);box-shadow:none}
.ui-root .ui-button--sage{min-height:44px;padding:10px 16px;background:var(--ui-prep-header);color:var(--ui-prep-frame);border:2px solid var(--ui-prep-frame);border-radius:1px;box-shadow:none;font:600 20px/1 var(--ui-font-display);text-transform:none}
.ui-root .ui-button--sage::before,.ui-root .ui-button--sage::after{display:none}
.ui-root .ui-button--sage:hover{background:var(--ui-prep-muted);color:var(--ui-prep-frame);border-color:var(--ui-prep-selected)}

/* Short character speech; consumers own projection and collision avoidance. */
.ui-speech{box-sizing:border-box;position:fixed;width:max-content;max-width:min(272px,calc(100vw - 24px));padding:12px 42px 12px 14px;background:var(--ui-text);color:var(--ui-bg);border:2px solid var(--ui-prep-header);border-radius:6px;font:400 19px/1.25 var(--ui-font-display);text-align:left;pointer-events:auto}
.ui-speech[hidden]{display:none}
.ui-speech::after{content:'';position:absolute;top:100%;left:var(--ui-bubble-tail-x);transform:translateX(-50%);border:8px solid transparent;border-top-color:var(--ui-text);border-bottom:0}
.ui-speech strong{display:block;font-weight:600;font-size:16px;color:var(--ui-prep-muted)}
.ui-speech p{margin:4px 0 0}
.ui-speech__dismiss{position:absolute;right:0;top:0;width:44px;height:44px;border:0;background:transparent;color:var(--ui-bg);font:600 24px/1 var(--ui-font-display);cursor:pointer}
.ui-speech__dismiss:focus-visible{outline:3px solid var(--ui-focus);outline-offset:-4px}
.ui-speech[data-side="right"]::after{top:12px;left:0;transform:translateX(-100%);border:8px solid transparent;border-right-color:var(--ui-text);border-left:0}
.ui-speech[data-side="left"]::after{top:12px;left:100%;transform:none;border:8px solid transparent;border-left-color:var(--ui-text);border-right:0}
.ui-speech[data-side="below"]::after{top:0;transform:translate(-50%,-100%);border:8px solid transparent;border-bottom-color:var(--ui-text);border-top:0}

/* Inventory-derived station theme. Finale retains its established presentation. */
.ui-root.ui-station-theme:not(.demo-finale-active):where(:not(:has(#overlay.squad-preparing:not([hidden])))){--ui-text:var(--ui-prep-ink);--ui-heading:var(--ui-prep-ink);--ui-muted:var(--ui-prep-muted);--ui-panel:var(--ui-prep-panel);--ui-border:var(--ui-prep-frame);--ui-surface:var(--ui-prep-cell);--ui-cyan:var(--ui-prep-header);color:var(--ui-prep-ink);color-scheme:light}
.ui-root.ui-station-theme:not(.demo-finale-active):where(:not(:has(#overlay.squad-preparing:not([hidden])))) .ui-panel{background:var(--ui-prep-panel);border:2px solid var(--ui-prep-frame);border-radius:2px;color:var(--ui-prep-ink);box-shadow:none}
.ui-root.ui-station-theme:not(.demo-finale-active):where(:not(:has(#overlay.squad-preparing:not([hidden])))) .ui-button{background:var(--ui-prep-header);border:2px solid var(--ui-prep-frame);border-radius:2px;color:var(--ui-prep-frame);font-family:var(--ui-font-display);font-weight:600;box-shadow:none}
.ui-root.ui-station-theme:not(.demo-finale-active):where(:not(:has(#overlay.squad-preparing:not([hidden])))) .ui-button:hover{background:var(--ui-prep-muted)}
.ui-root.ui-station-theme:not(.demo-finale-active):where(:not(:has(#overlay.squad-preparing:not([hidden])))) .ui-button:disabled{background:var(--ui-prep-cell);color:var(--ui-prep-muted)}
.ui-root .ui-member-card{display:grid;grid-template-columns:38px minmax(0,1fr);gap:7px;flex:0 1 188px;width:188px;min-width:0;padding:5px;border:1px solid var(--ui-prep-frame);border-radius:2px;background:var(--ui-prep-panel);color:var(--ui-prep-ink);font-family:var(--ui-font-display);font-variant-numeric:tabular-nums}
.ui-root .ui-member-card[data-controlled=true]{border-color:var(--ui-prep-selected)}
.ui-member-card .member-portrait{width:100%;height:49px;object-fit:contain;object-position:center bottom;background:var(--ui-prep-cell);image-rendering:pixelated}
.ui-member-card .member-heading{display:flex;align-items:center;justify-content:space-between;gap:4px;line-height:1}
.ui-member-card .member-heading>strong{font-size:13px;font-weight:600;text-transform:uppercase}
.ui-member-card .member-controlled{font-size:11px;color:var(--ui-prep-ink)}
.ui-member-card .member-health{display:flex;align-items:center;gap:5px;margin:4px 0}
.ui-root .ui-member-card .ui-health{flex:1;height:4px;min-width:12px;margin:0;padding:0;border:0;border-radius:0;background:var(--ui-prep-cell)}
.ui-root .ui-member-card .ui-health i{background:var(--ui-prep-header);border-radius:0;box-shadow:none}
.ui-member-card .member-hp{font-size:11px;white-space:nowrap}
.ui-member-card .member-weapon{display:flex;align-items:center;gap:4px;height:19px;line-height:1;white-space:nowrap}
.ui-member-card .member-weapon-icon{width:23px;height:16px;flex:none;display:grid;place-items:center}
.ui-member-card .member-weapon-icon :is(img,svg){width:100%;height:100%;object-fit:contain}
.ui-member-card .member-weapon-name{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.ui-member-card .member-condition{display:block;height:12px;line-height:12px;font-size:11px;color:var(--ui-prep-worse);font-weight:600;white-space:nowrap}
.ui-member-card .member-ammo{display:inline-flex;align-items:baseline;font-size:18px;line-height:1;white-space:nowrap}
.ui-member-card .member-ammo strong{font-size:inherit;font-weight:600;line-height:inherit}
.ui-member-card.is-down{border-color:var(--ui-prep-worse)}
.ui-member-card.is-down .member-portrait{filter:grayscale(1);opacity:.5}
.ui-member-card.is-low .member-hp,.ui-member-card.is-down .member-hp{color:var(--ui-prep-worse)}
.ui-root .ui-member-card:is(.is-low,.is-down) .ui-health i{background:var(--ui-prep-worse)}

.ui-root.ui-station-theme:not(.demo-finale-active):where(:not(:has(#overlay.squad-preparing:not([hidden])))) .ui-button--primary::before,.ui-root.ui-station-theme:not(.demo-finale-active):where(:not(:has(#overlay.squad-preparing:not([hidden])))) .ui-button--primary::after{display:none}
