/* Monolithic solid buttons — shared web + admin */

/* Matte press — no lift, brightness only (calib-mode-cycle, new chat, send) */
.sw-btn-matte-press {
  border: none !important;
  background: var(--sw-btn-bg) !important;
  color: var(--sw-btn-text) !important;
  box-shadow: none !important;
  transform: none !important;
  animation: none !important;
  transition:
    background var(--sw-motion-base) var(--sw-motion-soft),
    filter var(--sw-motion-base) var(--sw-motion-soft),
    opacity var(--sw-motion-base) var(--sw-motion-soft) !important;
}

.sw-btn-matte-press:hover:not(:disabled) {
  background: var(--sw-btn-bg) !important;
  transform: none !important;
  filter: brightness(1.06);
  box-shadow: none !important;
}

.sw-btn-matte-press:active:not(:disabled) {
  background: var(--sw-btn-bg) !important;
  transform: none !important;
  filter: brightness(0.94);
  box-shadow: none !important;
  transition-duration: var(--sw-motion-fast) !important;
}

.sw-btn-matte-press:disabled {
  opacity: 0.45;
  cursor: wait;
}

.new-chat-btn {
  width: 100%;
  padding: 10px 14px;
  font-weight: 600;
}

/* ── Base primary (solid orange) ── */
.btn-primary,
button.primary-block,
#login-screen #login-btn,
.docs-upload-btn {
  border: none !important;
  border-radius: var(--sw-btn-radius) !important;
  background: var(--sw-btn-bg) !important;
  color: var(--sw-btn-text) !important;
  box-shadow: none !important;
  text-shadow: none !important;
  font-weight: 600;
  transition:
    background var(--sw-btn-dur) var(--sw-motion-soft),
    filter var(--sw-btn-dur) var(--sw-motion-soft),
    transform var(--sw-btn-dur) var(--sw-motion-spring),
    opacity var(--sw-btn-dur) var(--sw-motion-soft) !important;
}

.btn-primary:hover:not(:disabled),
button.primary-block:hover:not(:disabled),
#login-screen #login-btn:hover:not(:disabled),
.docs-upload-btn:hover:not(:disabled) {
  background: var(--sw-btn-bg-hover) !important;
  filter: brightness(1.05);
  transform: none !important;
  box-shadow: none !important;
}

.btn-primary:active:not(:disabled),
button.primary-block:active:not(:disabled),
#login-screen #login-btn:active:not(:disabled),
.docs-upload-btn:active:not(:disabled) {
  background: var(--sw-btn-bg-active) !important;
  filter: brightness(0.94);
  transform: scale(0.985) !important;
}

/* ── Secondary (solid gray → orange on hover) ── */
.btn-ghost,
button.ghost,
.link-btn {
  border: none !important;
  border-radius: var(--sw-btn-radius) !important;
  background: var(--sw-btn-secondary-bg) !important;
  color: var(--sw-btn-text) !important;
  box-shadow: none !important;
  transition:
    background var(--sw-btn-dur) var(--sw-motion-soft),
    filter var(--sw-btn-dur) var(--sw-motion-soft),
    transform var(--sw-btn-dur) var(--sw-motion-spring),
    opacity var(--sw-btn-dur) var(--sw-motion-soft) !important;
}

.btn-ghost:hover:not(:disabled),
button.ghost:hover:not(:disabled),
.link-btn:hover {
  background: var(--sw-btn-secondary-hover) !important;
  color: var(--sw-btn-text) !important;
  filter: brightness(1.05);
  transform: none !important;
}

.btn-ghost:active:not(:disabled),
button.ghost:active:not(:disabled),
.link-btn:active {
  background: var(--sw-btn-bg-active) !important;
  filter: brightness(0.94);
  transform: scale(0.985) !important;
}

.header-right .btn-ghost {
  background: var(--sw-btn-secondary-bg) !important;
  border: none !important;
  color: var(--sw-btn-text) !important;
}

.header-right .btn-ghost:hover {
  background: var(--sw-btn-secondary-hover) !important;
}

/* ── Small icon buttons ── */
.btn-small {
  border: none !important;
  background: var(--sw-btn-bg) !important;
  color: var(--sw-btn-text) !important;
  transition:
    background var(--sw-btn-dur) var(--sw-motion-soft),
    filter var(--sw-btn-dur) var(--sw-motion-soft),
    transform var(--sw-btn-dur) var(--sw-motion-spring) !important;
}

.btn-small:hover {
  background: var(--sw-btn-bg-hover) !important;
  filter: brightness(1.05);
  transform: none !important;
}

.btn-small:active {
  background: var(--sw-btn-bg-active) !important;
  filter: brightness(0.94);
  transform: scale(0.985) !important;
}

/* ── Hub / FX toolbar buttons ── */
.hub-tool-btn,
.hub-back-btn,
#fx-screen .hub-back-btn,
#fx-screen .fx-sync-btn {
  border: none !important;
  border-radius: var(--sw-btn-radius) !important;
  background: var(--sw-btn-bg) !important;
  color: var(--sw-btn-text) !important;
  min-height: 40px;
  transition:
    background var(--sw-btn-dur) var(--sw-motion-soft),
    filter var(--sw-btn-dur) var(--sw-motion-soft),
    transform var(--sw-btn-dur) var(--sw-motion-spring),
    opacity var(--sw-btn-dur) var(--sw-motion-soft) !important;
}

.hub-tool-btn:hover:not(:disabled),
.hub-back-btn:hover,
#fx-screen .hub-back-btn:hover,
#fx-screen .fx-sync-btn:hover:not(:disabled) {
  background: var(--sw-btn-bg-hover) !important;
  color: var(--sw-btn-text) !important;
  filter: brightness(1.05);
  transform: none !important;
}

.hub-tool-btn:active:not(:disabled),
.hub-back-btn:active,
#fx-screen .hub-back-btn:active,
#fx-screen .fx-sync-btn:active:not(:disabled) {
  background: var(--sw-btn-bg-active) !important;
  filter: brightness(0.94);
  transform: scale(0.985) !important;
}

.hub-tool-btn--exit {
  background: var(--sw-btn-danger-bg) !important;
}

.hub-tool-btn--exit:hover:not(:disabled) {
  background: var(--sw-btn-danger-hover) !important;
  color: var(--sw-btn-text) !important;
}

/* Composer send → composer-send.css */

.composer-photo {
  border: none !important;
  border-radius: 50% !important;
  background: var(--sw-btn-secondary-bg) !important;
  color: var(--sw-btn-text) !important;
  transition:
    background var(--sw-btn-dur) var(--sw-motion-soft),
    filter var(--sw-btn-dur) var(--sw-motion-soft),
    transform var(--sw-btn-dur) var(--sw-motion-spring) !important;
}

.composer-photo:hover:not(:disabled) {
  background: var(--sw-btn-secondary-hover) !important;
  filter: brightness(1.05);
}

.composer-photo:active:not(:disabled) {
  background: var(--sw-btn-bg-active) !important;
  filter: brightness(0.94);
  transform: scale(0.985) !important;
}

/* ── Calibration mode controls (cycle: no lift) ── */
.calib-mode-seg {
  border: none !important;
  border-radius: 8px !important;
  background: var(--sw-btn-secondary-bg) !important;
}

html[data-agent-mode="analysis"] .calib-mode-seg[data-mode="analysis"],
html[data-agent-mode="planning"] .calib-mode-seg[data-mode="planning"],
html[data-agent-mode="brainstorm"] .calib-mode-seg[data-mode="brainstorm"],
html[data-agent-mode="decision"] .calib-mode-seg[data-mode="decision"] {
  background: var(--sw-btn-bg) !important;
  animation: none !important;
}

.calib-mode-cycle {
  border: none !important;
  border-radius: var(--sw-btn-radius) !important;
  background: var(--sw-btn-bg) !important;
  color: var(--sw-btn-text) !important;
}

.calib-mode-cycle-label,
.calib-mode-cycle-next {
  color: var(--sw-btn-text) !important;
}

.calib-mode-cycle-next {
  opacity: 0.72;
  transition: opacity var(--sw-motion-base) var(--sw-motion-soft);
}

.calib-mode-cycle:hover .calib-mode-cycle-next {
  opacity: 0.9;
}

/* ── Danger ── */
button.danger-block,
.command-row .btn-remove,
.catalog-site-row .btn-remove {
  border: none !important;
  border-radius: var(--sw-btn-radius) !important;
  background: var(--sw-btn-danger-bg) !important;
  color: var(--sw-btn-text) !important;
  text-shadow: none !important;
  box-shadow: none !important;
  transition:
    background var(--sw-btn-dur) var(--sw-motion-soft),
    filter var(--sw-btn-dur) var(--sw-motion-soft),
    transform var(--sw-btn-dur) var(--sw-motion-spring) !important;
}

button.danger-block:hover:not(:disabled),
.command-row .btn-remove:hover,
.catalog-site-row .btn-remove:hover {
  background: var(--sw-btn-danger-hover) !important;
  filter: brightness(1.06);
  transform: none !important;
}

button.danger-block:active:not(:disabled),
.command-row .btn-remove:active,
.catalog-site-row .btn-remove:active {
  filter: brightness(0.92);
  transform: scale(0.985) !important;
}

/* ── Modal close (compact solid) ── */
.btn-modal-close {
  border: none !important;
  background: var(--sw-btn-secondary-bg) !important;
  color: var(--sw-btn-text) !important;
  transition:
    background var(--sw-btn-dur) var(--sw-motion-soft),
    filter var(--sw-btn-dur) var(--sw-motion-soft),
    transform var(--sw-btn-dur) var(--sw-motion-spring) !important;
}

.btn-modal-close:hover {
  background: var(--sw-btn-secondary-hover) !important;
  filter: brightness(1.05);
  border: none !important;
}

.btn-modal-close:active {
  filter: brightness(0.94);
  transform: scale(0.96) !important;
}

/* ── Toggle switches (solid track) ── */
.calib-toggle-track {
  border: none !important;
  background: var(--sw-btn-secondary-bg) !important;
}

.calib-toggle.is-on .calib-toggle-track {
  background: var(--sw-btn-bg) !important;
  box-shadow: none !important;
}

.calib-toggle-thumb {
  background: var(--sw-btn-text) !important;
  box-shadow: none !important;
}

.calib-toggle.is-on .calib-toggle-thumb {
  background: var(--sw-btn-text) !important;
}

.calib-toggle-row {
  border: none !important;
  background: transparent !important;
}

.calib-toggle-row:hover {
  background: rgba(255, 255, 255, 0.03) !important;
}

@media (prefers-reduced-motion: reduce) {
  .btn-primary,
  .btn-ghost,
  button.primary-block,
  #login-screen #login-btn,
  .hub-tool-btn,
  .calib-mode-cycle,
  .composer-photo,
  .sw-btn-matte-press {
    transition: none !important;
    filter: none !important;
    transform: none !important;
  }
}
