/* Shared control rules. Loaded after the contextual panels; map markers keep
   their own scale and geometry. No additional animation or rendering loop. */
:root{
 --ui-font: "Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif;
 --ui-space-1:4px;--ui-space-2:8px;--ui-space-3:12px;--ui-space-4:16px;--ui-space-5:24px;
 --ui-text-xs:11px;--ui-text-sm:12px;--ui-text:13px;--ui-title:16px;
 --ui-control:44px;--ui-control-compact:32px;--ui-radius:4px;--ui-panel-radius:8px;
 --ui-surface:#182a23;--ui-control-bg:#21352d;--ui-control-hover:#2c4438;
 --ui-border:#536b5b;--ui-text-color:#e4eee7;--ui-muted:#b3c5b9;
 --ui-primary-bg:#315741;--ui-primary-border:#8fbea1;--ui-focus:#cfedb9;
 --ui-danger-bg:#4b302c;--ui-danger-border:#c28e7a;
}
body,button,input,select,textarea{font-family:var(--ui-font)}
body{font-size:var(--ui-text);line-height:1.4}
button,input,select,textarea{box-sizing:border-box}
button{font-weight:600;letter-spacing:0;line-height:1.3;border-radius:var(--ui-radius)}
button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
 outline:2px solid var(--ui-focus);outline-offset:2px
}
/* Selection, base and vehicle contexts use the same command components. */
body.rts-active #rtsDock button,
body.rts-active #rtsDock :is(#selectionCard,#vehiclePanel,#productionPanel) button,
body.rts-active #rtsDock #productionPanel #showVehicleService,
body.rts-active #rtsDock :is(.rts-selection-toggle,.rts-vehicle-more>summary,#rtsBuildingToggle){
 min-height:var(--ui-control);padding:var(--ui-space-2) var(--ui-space-3);
 border:1px solid var(--ui-border);border-radius:var(--ui-radius);
 background-color:var(--ui-control-bg);color:var(--ui-text-color);
 font-family:var(--ui-font);font-size:var(--ui-text-sm);font-weight:600;line-height:1.3;
}
body.rts-active #rtsDock button:not(:disabled):hover,
body.rts-active #rtsDock :is(#selectionCard,#vehiclePanel,#productionPanel) button:not(:disabled):hover,
body.rts-active #rtsDock #productionPanel #showVehicleService:not(:disabled):hover,
body.rts-active #rtsDock :is(.rts-selection-toggle,.rts-vehicle-more>summary,#rtsBuildingToggle):hover{
 background-color:var(--ui-control-hover)
}
body.rts-active #rtsDock button.primary,
body.rts-active #rtsDock :is(#selectionCard,#vehiclePanel,#productionPanel) button.primary,
body.rts-active #rtsDock button[aria-pressed="true"],
body.rts-active #rtsDock button[aria-selected="true"],
body.rts-active #rtsDock .rts-vehicle-more[open]>summary{
 background-color:var(--ui-primary-bg);border-color:var(--ui-primary-border);color:#f0fff4
}
body.rts-active #rtsDock button.danger,body.rts-active #rtsDock :is(#selectionCard,#vehiclePanel,#productionPanel) button.danger{background-color:var(--ui-danger-bg);border-color:var(--ui-danger-border)}
body.rts-active #rtsDock button:disabled{opacity:.48;cursor:not-allowed;box-shadow:none}
body.rts-active #rtsDock :is(button,summary):focus-visible{outline:2px solid var(--ui-focus);outline-offset:2px}
body.rts-active #rtsDock :is(.rts-selection-layout,.rts-vehicle-layout){gap:var(--ui-space-4)}
body.rts-active #rtsDock :is(.rts-selection-commands,.rts-vehicle-commands,.row.actions,.recruit-tabs,.control-groups){gap:var(--ui-space-2)}
body.rts-active #rtsDock :is(.rts-selection-detail,.rts-vehicle-detail){padding:var(--ui-space-3);border-radius:var(--ui-panel-radius)}
body.rts-active #rtsDock :is(.rts-selection-detail,.rts-vehicle-detail) p{margin:var(--ui-space-2) 0;line-height:1.4}
body.rts-active #rtsDock :is(#selectionName,#vehicleName,#buildingName){font-size:var(--ui-title);font-weight:600;line-height:1.3}
body.rts-active #rtsDock :is(#selectionState,#selectionEta,#selectionSupply,#vehicleEta,#vehicleSelectionState){font-size:var(--ui-text-sm);line-height:1.4}
body.rts-active #rtsDock :is(#selectionStats,.rts-vehicle-stats){gap:var(--ui-space-2)}
body.rts-active #rtsDock :is(#selectionStats,.rts-vehicle-stats) small{font-size:var(--ui-text-xs);letter-spacing:.4px;color:var(--ui-muted)}
body.rts-active #rtsDock :is(#selectionStats,.rts-vehicle-stats) strong{font-size:var(--ui-text-sm);font-weight:600}
/* Compact navigation is deliberately distinct from a battlefield command. */
body.rts-active #rtsDock #rtsNavigation button,
body.rts-active #rtsDock #productionPanel .rts-base-pager button{
 min-height:var(--ui-control-compact);padding:var(--ui-space-1) var(--ui-space-2);font-size:var(--ui-text-xs)
}
body.rts-active #rtsDock #productionPanel .rts-base-pager button{height:var(--ui-control-compact);width:var(--ui-control-compact);min-width:var(--ui-control-compact)}
body.rts-active #rtsDock #productionPanel #recruitTabs button{font-size:var(--ui-text-sm);font-weight:600;border-radius:var(--ui-radius)}
body.rts-active #rtsDock #productionPanel .recruit-detail-toggle{min-width:var(--ui-control-compact);min-height:var(--ui-control-compact);width:var(--ui-control-compact);height:var(--ui-control-compact);padding:var(--ui-space-1);border-radius:var(--ui-radius);font-size:var(--ui-text-sm)}
/* Managers and dialogs share the control appearance while retaining their
   existing content-dependent row heights and independent scrolling. */
:is(#squadManagerPanel,#fleetPanel,#fleetManagerPanel,#bugReportPanel,#lobby,#webEntry) button{
 min-height:var(--ui-control);padding:var(--ui-space-2) var(--ui-space-3);
 border-radius:var(--ui-radius);font-family:var(--ui-font);font-size:var(--ui-text-sm);font-weight:600;line-height:1.3
}
:is(#squadManagerPanel,#fleetPanel,#fleetManagerPanel,#bugReportPanel,#lobby,#webEntry) :is(input,select,textarea){
 min-height:var(--ui-control);border-radius:var(--ui-radius);font-size:var(--ui-text);padding:var(--ui-space-2)
}
@media(max-width:1000px){
 body.rts-active #rtsDock :is(.rts-selection-layout,.rts-vehicle-layout){gap:var(--ui-space-3)}
 body.rts-active #rtsDock button{padding-inline:var(--ui-space-2)}
}
