/* ─────────────────────────────────────────────────────────────
   Global NetSuite-inspired button system
   Applies to all Bootstrap .btn variants app-wide.
   Preserves .btn-sm / .btn-lg sizing — only restyles color/chrome.
   ───────────────────────────────────────────────────────────── */

.btn {
    /* Compact admin density — overrides BS5.3 default 0.375/0.75/1rem
       which reads as oversized against this app's 0.9rem table body font.
       .btn-sm / .btn-lg keep their own variable scales unchanged. */
    --bs-btn-padding-y: 0.3125rem;
    --bs-btn-padding-x: 0.625rem;
    --bs-btn-font-size: 0.8125rem;
    --bs-btn-line-height: 1.4;
    --bs-btn-border-radius: 3px;

    border-radius: 3px;
    font-weight: 600;
    letter-spacing: 0.02em;
    border-width: 1px;
    border-style: solid;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
    transition: background-color .12s ease, border-color .12s ease, color .12s ease, box-shadow .12s ease;
    text-shadow: none;
    background-image: none;
}

.btn-sm {
    --bs-btn-padding-y: 0.2rem;
    --bs-btn-padding-x: 0.5rem;
    --bs-btn-font-size: 0.75rem;
    --bs-btn-line-height: 1.35;
}

.btn-lg {
    --bs-btn-padding-y: 0.45rem;
    --bs-btn-padding-x: 0.95rem;
    --bs-btn-font-size: 0.95rem;
    --bs-btn-line-height: 1.5;
}

.btn:focus,
.btn:focus-visible {
    box-shadow: 0 0 0 2px rgba(20, 84, 143, 0.28);
    outline: none;
}

/* ── Primary (deep navy) ───────────────────────────────────── */
.btn-primary {
    background: linear-gradient(180deg, #1a6db3 0%, #14548f 100%);
    border-color: #0b3560;
    color: #fff;
    box-shadow: 0 1px 0 rgba(255,255,255,0.15) inset, 0 1px 2px rgba(11,53,96,0.35);
}
.btn-primary:hover,
.btn-primary:focus {
    background: linear-gradient(180deg, #14548f 0%, #0f3f6e 100%);
    border-color: #072544;
    color: #fff;
}
.btn-primary:active,
.btn-primary.active,
.show > .btn-primary.dropdown-toggle {
    background: #0f3f6e !important;
    border-color: #072544 !important;
    color: #fff !important;
}
.btn-primary:disabled,
.btn-primary.disabled {
    background: #6f8bae !important;
    border-color: #587294 !important;
    color: #eef2f8 !important;
    opacity: 1;
}
.btn-primary .badge.bg-light,
.btn-primary .badge.bg-white {
    background: #fff !important;
    color: #14548f !important;
    border-radius: 3px;
    font-weight: 700;
}

/* ── Success (forest green) ────────────────────────────────── */
.btn-success {
    background: linear-gradient(180deg, #3d8a25 0%, #2f6f1c 100%);
    border-color: #1c4a10;
    color: #fff;
    box-shadow: 0 1px 0 rgba(255,255,255,0.18) inset, 0 1px 2px rgba(18,51,9,0.35);
}
.btn-success:hover,
.btn-success:focus {
    background: linear-gradient(180deg, #2f6f1c 0%, #245615 100%);
    border-color: #123309;
    color: #fff;
}
.btn-success:active,
.btn-success.active {
    background: #245615 !important;
    border-color: #123309 !important;
    color: #fff !important;
}
.btn-success:disabled,
.btn-success.disabled {
    background: #8fa87f !important;
    border-color: #6f8862 !important;
    color: #f5f8f2 !important;
    opacity: 1;
}
.btn-success .badge.bg-white {
    background: #fff !important;
    color: #2f6f1c !important;
    border-radius: 3px;
    font-weight: 700;
}

/* ── Warning (dark amber) ──────────────────────────────────── */
.btn-warning {
    background: linear-gradient(180deg, #d98720 0%, #c9791a 100%);
    border-color: #8a4f0d;
    color: #fff;
    box-shadow: 0 1px 0 rgba(255,255,255,0.22) inset, 0 1px 2px rgba(107,61,10,0.35);
}
.btn-warning:hover,
.btn-warning:focus {
    background: linear-gradient(180deg, #c9791a 0%, #a86213 100%);
    border-color: #6b3d0a;
    color: #fff;
}
.btn-warning:active,
.btn-warning.active {
    background: #a86213 !important;
    border-color: #6b3d0a !important;
    color: #fff !important;
}

/* ── Danger (deep red) ─────────────────────────────────────── */
.btn-danger {
    background: linear-gradient(180deg, #b83543 0%, #a11e2a 100%);
    border-color: #6d1219;
    color: #fff;
    box-shadow: 0 1px 0 rgba(255,255,255,0.18) inset, 0 1px 2px rgba(109,18,25,0.35);
}
.btn-danger:hover,
.btn-danger:focus {
    background: linear-gradient(180deg, #a11e2a 0%, #841521 100%);
    border-color: #4a0b11;
    color: #fff;
}
.btn-danger:active,
.btn-danger.active {
    background: #841521 !important;
    border-color: #4a0b11 !important;
    color: #fff !important;
}

/* ── Info (teal-blue) ──────────────────────────────────────── */
.btn-info {
    background: linear-gradient(180deg, #1793a3 0%, #0f7684 100%);
    border-color: #0a5560;
    color: #fff;
    box-shadow: 0 1px 0 rgba(255,255,255,0.18) inset, 0 1px 2px rgba(10,85,96,0.35);
}
.btn-info:hover,
.btn-info:focus {
    background: linear-gradient(180deg, #0f7684 0%, #0b5f6b 100%);
    border-color: #073d46;
    color: #fff;
}

/* ── Secondary (slate) ─────────────────────────────────────── */
.btn-secondary {
    background: linear-gradient(180deg, #5b6b80 0%, #465468 100%);
    border-color: #2f3a49;
    color: #fff;
    box-shadow: 0 1px 0 rgba(255,255,255,0.15) inset, 0 1px 2px rgba(47,58,73,0.35);
}
.btn-secondary:hover,
.btn-secondary:focus {
    background: linear-gradient(180deg, #465468 0%, #364152 100%);
    border-color: #212a36;
    color: #fff;
}

/* ── Light / Neutral chip ──────────────────────────────────── */
.btn-light {
    background: #dfe4ec;
    color: #0f2f5c;
    border-color: #8b98ab;
}
.btn-light:hover,
.btn-light:focus {
    background: #c8d1de;
    border-color: #6a7a90;
    color: #071d3d;
}
.btn-light.text-danger {
    color: #7d1520 !important;
    background: #f5d3d7;
    border-color: #c88189;
}
.btn-light.text-danger:hover {
    background: #eab3b9;
    border-color: #a5545e;
    color: #4f0b13 !important;
}

/* ── Outline variants ──────────────────────────────────────── */
.btn-outline-primary {
    background: transparent;
    color: #14548f;
    border-color: #14548f;
}
.btn-outline-primary:hover {
    background: #14548f;
    color: #fff;
    border-color: #0b3560;
}

.btn-outline-success {
    background: transparent;
    color: #2f6f1c;
    border-color: #2f6f1c;
}
.btn-outline-success:hover {
    background: #2f6f1c;
    color: #fff;
    border-color: #1c4a10;
}

.btn-outline-danger {
    background: transparent;
    color: #a11e2a;
    border-color: #a11e2a;
}
.btn-outline-danger:hover {
    background: #a11e2a;
    color: #fff;
    border-color: #6d1219;
}

.btn-outline-warning {
    background: transparent;
    color: #c9791a;
    border-color: #c9791a;
}
.btn-outline-warning:hover {
    background: #c9791a;
    color: #fff;
    border-color: #8a4f0d;
}

.btn-outline-info {
    background: transparent;
    color: #0f7684;
    border-color: #0f7684;
}
.btn-outline-info:hover {
    background: #0f7684;
    color: #fff;
    border-color: #0a5560;
}

.btn-outline-secondary {
    background: transparent;
    color: #465468;
    border-color: #465468;
}
.btn-outline-secondary:hover {
    background: #465468;
    color: #fff;
    border-color: #2f3a49;
}

/* ── Dark mode adjustments ─────────────────────────────────── */
[data-theme="dark"] .btn-light {
    background: #2a3648;
    color: #d5e0f0;
    border-color: #45556c;
}
[data-theme="dark"] .btn-light:hover {
    background: #35435a;
    border-color: #5a6c86;
    color: #ffffff;
}
