/* Shared button presentation. No behavioral or layout hooks are changed. */
.btn {
  --edi-btn-radius: 11px;
  --edi-btn-shadow: 0 7px 18px rgba(15, 23, 42, .16);
  --edi-btn-hover-shadow: 0 11px 25px rgba(15, 23, 42, .22);
  border-radius: var(--edi-btn-radius) !important;
  padding: .62rem 1rem !important;
  font-weight: 650 !important;
  letter-spacing: .005em;
  line-height: 1.25 !important;
  box-shadow: var(--edi-btn-shadow) !important;
  transition:
    transform .15s ease,
    box-shadow .15s ease,
    background-color .15s ease,
    border-color .15s ease,
    color .15s ease !important;
}

.btn-sm {
  padding: .46rem .76rem !important;
  border-radius: 9px !important;
  font-size: .9rem !important;
}

.btn-lg {
  padding: .76rem 1.25rem !important;
  border-radius: 12px !important;
}

.btn:hover:not(:disabled):not(.disabled) {
  transform: translateY(-1px);
  box-shadow: var(--edi-btn-hover-shadow) !important;
}

.btn:active:not(:disabled):not(.disabled),
.btn.active:not(:disabled):not(.disabled),
.btn-check:checked + .btn {
  transform: translateY(0) scale(.98);
  box-shadow: 0 4px 11px rgba(15, 23, 42, .18) !important;
}

.btn:focus-visible {
  outline: 3px solid rgba(96, 165, 250, .62) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 4px rgba(37, 99, 235, .16) !important;
}

.btn-primary {
  color: #fff !important;
  border-color: rgba(30, 64, 175, .72) !important;
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 55%, #1d4ed8 100%) !important;
  box-shadow:
    0 8px 20px rgba(37, 99, 235, .25),
    inset 0 1px 0 rgba(255, 255, 255, .18) !important;
}

.btn-primary:hover:not(:disabled):not(.disabled),
.btn-primary:focus:not(:disabled):not(.disabled) {
  color: #fff !important;
  border-color: rgba(30, 64, 175, .86) !important;
  background: linear-gradient(135deg, #4b8df8 0%, #2563eb 48%, #1e40af 100%) !important;
  box-shadow:
    0 12px 27px rgba(37, 99, 235, .32),
    inset 0 1px 0 rgba(255, 255, 255, .2) !important;
}

.btn-outline-light,
.btn-outline-secondary {
  color: #e8effb !important;
  border-color: rgba(148, 163, 184, .48) !important;
  background: rgba(30, 41, 59, .42) !important;
  box-shadow:
    0 6px 16px rgba(2, 6, 23, .15),
    inset 0 1px 0 rgba(255, 255, 255, .05) !important;
}

.btn-outline-light:hover:not(:disabled):not(.disabled),
.btn-outline-secondary:hover:not(:disabled):not(.disabled) {
  color: #fff !important;
  border-color: rgba(147, 197, 253, .72) !important;
  background: rgba(51, 65, 85, .72) !important;
}

.btn-secondary {
  color: #f8fafc !important;
  border-color: rgba(100, 116, 139, .7) !important;
  background: linear-gradient(135deg, #64748b, #475569) !important;
}

.btn-info {
  color: #ffffff !important;
  border-color: #0e7490 !important;
  background: linear-gradient(135deg, #06b6d4, #0e7490) !important;
  box-shadow:
    0 8px 19px rgba(8, 145, 178, .23),
    inset 0 1px 0 rgba(255, 255, 255, .16) !important;
}

.btn-info:hover:not(:disabled):not(.disabled) {
  color: #ffffff !important;
  border-color: #155e75 !important;
  background: linear-gradient(135deg, #22c1dc, #0e7490) !important;
}

.btn-outline-info {
  color: #67e8f9 !important;
  border-color: rgba(34, 211, 238, .58) !important;
  background: rgba(8, 145, 178, .1) !important;
}

.btn-outline-info:hover:not(:disabled):not(.disabled) {
  color: #ffffff !important;
  border-color: #0891b2 !important;
  background: #0e7490 !important;
}

.btn-danger,
.btn-outline-danger:hover:not(:disabled):not(.disabled) {
  color: #fff !important;
  border-color: #b91c1c !important;
  background: linear-gradient(135deg, #ef4444, #dc2626) !important;
}

.btn-check:checked + .btn-outline-light,
.btn-check:checked + .btn-outline-secondary {
  color: #fff !important;
  border-color: #2563eb !important;
  background: linear-gradient(135deg, #3b82f6, #2563eb) !important;
  box-shadow:
    0 5px 14px rgba(37, 99, 235, .24),
    inset 0 1px 0 rgba(255, 255, 255, .16) !important;
}

.btn:disabled,
.btn.disabled {
  opacity: .52 !important;
  transform: none !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  filter: saturate(.72) !important;
}

html[data-theme="light"] .btn-outline-light,
html[data-theme="light"] .btn-outline-secondary {
  color: #26364d !important;
  border-color: rgba(71, 85, 105, .42) !important;
  background: rgba(255, 255, 255, .82) !important;
  box-shadow:
    0 5px 14px rgba(15, 23, 42, .09),
    inset 0 1px 0 rgba(255, 255, 255, .85) !important;
}

html[data-theme="light"] .btn-outline-light:hover:not(:disabled):not(.disabled),
html[data-theme="light"] .btn-outline-secondary:hover:not(:disabled):not(.disabled) {
  color: #172033 !important;
  border-color: #7b91ad !important;
  background: #edf3fa !important;
  box-shadow: 0 9px 20px rgba(15, 23, 42, .14) !important;
}

html[data-theme="light"] .btn-check:checked + .btn-outline-light,
html[data-theme="light"] .btn-check:checked + .btn-outline-secondary {
  color: #fff !important;
  border-color: #2563eb !important;
  background: linear-gradient(135deg, #3b82f6, #2563eb) !important;
}

html[data-theme="light"] .btn-outline-info {
  color: #0e6478 !important;
  border-color: rgba(14, 116, 144, .5) !important;
  background: rgba(236, 254, 255, .86) !important;
}

html[data-theme="light"] .btn-outline-info:hover:not(:disabled):not(.disabled) {
  color: #ffffff !important;
  border-color: #0e7490 !important;
  background: #0e7490 !important;
}

@media (prefers-reduced-motion: reduce) {
  .btn { transition: none !important; }
  .btn:hover,
  .btn:active,
  .btn.active,
  .btn-check:checked + .btn { transform: none !important; }
}
