:root {
  --labourworks-button-height: 44px;
  --labourworks-button-radius: 12px;
  --labourworks-button-font-size: 12px;
  --labourworks-button-font-weight: 750;
  --labourworks-compact-button-height: 34px;
  --labourworks-compact-button-radius: 10px;
  --labourworks-icon-control-size: 40px;
  --labourworks-icon-control-compact-size: 32px;
  --labourworks-control-border: rgba(255, 255, 255, .12);
  --labourworks-control-background: #242426;
  --labourworks-control-background-active: #303033;
  --labourworks-control-text: #f4f1ec;
  --labourworks-control-focus: rgba(255, 202, 40, .38);
}

html[data-labourworks-theme="light"] {
  --labourworks-control-border: rgba(20, 20, 22, .14);
  --labourworks-control-background: #f1f1f2;
  --labourworks-control-background-active: #e4e4e6;
  --labourworks-control-text: #141416;
  --labourworks-control-focus: rgba(178, 130, 0, .34);
}

/* Shared action-button foundation. Screens own layout; the control system owns
   size, shape, typography and interaction states. */
.ui-button {
  min-height: var(--labourworks-button-height);
  padding: 0 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid transparent;
  border-radius: var(--labourworks-button-radius);
  font-size: var(--labourworks-button-font-size);
  font-weight: var(--labourworks-button-font-weight);
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.ui-button--compact {
  min-height: var(--labourworks-compact-button-height);
  border-radius: var(--labourworks-compact-button-radius);
}

.ui-button:focus-visible,
.ui-icon-control:focus-visible,
.ui-close-control:focus-visible,
.smart-select-popup .navbar .popup-close:focus-visible,
.photo-browser .navbar-photo-browser .popup-close:focus-visible {
  outline: 3px solid var(--labourworks-control-focus) !important;
  outline-offset: 2px;
}

.ui-button:disabled,
.ui-icon-control:disabled,
.ui-close-control:disabled,
.ui-button[aria-disabled="true"],
.ui-icon-control[aria-disabled="true"],
.ui-close-control[aria-disabled="true"] {
  opacity: .5;
  cursor: default;
  pointer-events: none;
}

/* Shared circular icon controls. Close/dismiss controls remain a semantic
   alias so routed navigation and modal chrome use the same visual system. */
:where(button, a).ui-icon-control,
:where(button, a).ui-close-control,
.smart-select-popup .navbar .popup-close,
.photo-browser .navbar-photo-browser .popup-close {
  appearance: none;
  box-sizing: border-box;
  width: var(--labourworks-icon-control-size) !important;
  min-width: var(--labourworks-icon-control-size) !important;
  max-width: var(--labourworks-icon-control-size) !important;
  height: var(--labourworks-icon-control-size) !important;
  min-height: var(--labourworks-icon-control-size) !important;
  max-height: var(--labourworks-icon-control-size) !important;
  flex: 0 0 var(--labourworks-icon-control-size) !important;
  margin: 0;
  padding: 0 !important;
  display: grid !important;
  place-items: center;
  border: 1px solid var(--labourworks-control-border) !important;
  border-radius: 50% !important;
  background: var(--labourworks-control-background) !important;
  color: var(--labourworks-control-text) !important;
  box-shadow: none !important;
  text-decoration: none;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

:where(button, a).ui-icon-control.ui-icon-control--compact,
:where(button, a).ui-close-control.ui-close-control--compact {
  width: var(--labourworks-icon-control-compact-size) !important;
  min-width: var(--labourworks-icon-control-compact-size) !important;
  max-width: var(--labourworks-icon-control-compact-size) !important;
  height: var(--labourworks-icon-control-compact-size) !important;
  min-height: var(--labourworks-icon-control-compact-size) !important;
  max-height: var(--labourworks-icon-control-compact-size) !important;
  flex-basis: var(--labourworks-icon-control-compact-size) !important;
}

.ui-icon-control > i,
.ui-close-control > i,
.smart-select-popup .navbar .popup-close > i,
.photo-browser .navbar-photo-browser .popup-close > i {
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  color: currentColor !important;
  font-size: 19px !important;
  line-height: 20px;
  pointer-events: none;
}

.ui-icon-control--compact > i,
.ui-close-control--compact > i { font-size: 15px !important; }

.ui-icon-control:active,
.ui-close-control:active,
.smart-select-popup .navbar .popup-close:active,
.photo-browser .navbar-photo-browser .popup-close:active {
  background: var(--labourworks-control-background-active) !important;
  transform: scale(.96);
}

/* Immersive creation and story surfaces stay dark even when the app theme is
   light, so their shared controls inherit the correct contrast automatically. */
.create-route-page,
.story-viewer-popup,
.creator-dark-sheet {
  --labourworks-control-border: rgba(255, 255, 255, .12);
  --labourworks-control-background: rgba(28, 30, 33, .88);
  --labourworks-control-background-active: rgba(45, 47, 51, .94);
  --labourworks-control-text: #f4f1ec;
  --labourworks-control-focus: rgba(255, 202, 40, .42);
}

@media (hover: hover) {
  .ui-icon-control:hover,
  .ui-close-control:hover,
  .smart-select-popup .navbar .popup-close:hover,
  .photo-browser .navbar-photo-browser .popup-close:hover {
    background: var(--labourworks-control-background-active) !important;
  }
}
