/* =============================================================
   Buttons
   ============================================================= */

/* ── Base ──────────────────────────────────────────────────── */
@import "variables.css";
.cb-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    font-family: var(--font-family-base);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    line-height: 1;
    border-radius: var(--radius-md);
    border: 1.5px solid transparent;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    transition:
        background var(--transition-fast),
        border-color var(--transition-fast),
        color var(--transition-fast),
        box-shadow var(--transition-fast),
        transform var(--transition-fast);
    user-select: none;
}

.cb-btn:active {
    transform: translateY(1px);
}
.cb-btn:disabled,
.cb-btn[disabled] {
    opacity: 0.55;
    cursor: not-allowed;
    pointer-events: none;
}

/* ── Sizes ──────────────────────────────────────────────────── */
.cb-btn-sm {
    padding: var(--space-1) var(--space-3);
    font-size: var(--font-size-xs);
    border-radius: var(--radius-sm);
}

.cb-btn-base {
    padding: var(--space-2) var(--space-4);
    font-size: var(--font-size-sm);
}

.cb-btn-lg {
    padding: var(--space-3) var(--space-6);
    font-size: var(--font-size-base);
}

.cb-btn-icon {
    padding: var(--space-2);
    width: 36px;
    height: 36px;
}

.cb-btn-icon.cb-btn-sm {
    width: 28px;
    height: 28px;
    padding: var(--space-1);
}

.cb-btn-icon.cb-btn-base {
    width: 38px;
    height: 38px;
    padding: var(--space-2);
}

.cb-btn-icon.cb-btn-lg {
    width: 44px;
    height: 44px;
    padding: var(--space-3);
}

/* ── Variants ───────────────────────────────────────────────── */

/* Primary */
.cb-btn-primary {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}
.cb-btn-primary:hover {
    background: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    box-shadow: 0 4px 12px rgba(46, 125, 50, 0.3);
}

/* success */
.cb-btn-success {
    background: var(--color-success);
    border-color: var(--color-success);
    color: #fff;
}
.cb-btn-success:hover {
    background: var(--color-primary-100);
    border-color: var(--color-success);
    color: var(--color-primary);
}

/* Outline */
.cb-btn-outline {
    background: var(--color-bg);
    /* border-color: var(--color-sidebar); */
    color: var(--color-primary);
}
.cb-btn-outline:hover {
    background: var(--color-primary-50);
    border-color: var(--color-primary-100);
    box-shadow: 0 2px 8px rgba(46, 125, 50, 0.15);
}

/* Ghost / Text */
.cb-btn-text {
    background: transparent;
    border-color: transparent;
    color: var(--color-primary);
    border: 1.5px solid var(--color-border);
    padding-left: var(--space-2);
    padding-right: var(--space-2);
}
.cb-btn-text:hover {
    background: var(--color-primary-50);
}

/* Danger */
.cb-btn-danger {
    background: var(--color-danger);
    border-color: var(--color-danger);
    color: #fff;
}
.cb-btn-danger:hover {
    background: #b71c1c;
    border-color: #b71c1c;
}

/* Warning */
.cb-btn-warning {
    background: var(--color-warning);
    border-color: var(--color-warning);
    color: #fff;
}
.cb-btn-warning:hover {
    filter: brightness(0.92);
}

/* Secondary / Neutral */
.cb-btn-secondary {
    background: #fff;
    border-color: var(--color-border);
    color: var(--color-text);
}
.cb-btn-secondary:hover {
    background: var(--color-bg);
    border-color: #b0bec5;
}

/* ── POS Quick-action buttons (large icon+label) ─────────────── */
.cb-btn-quick {
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-4) var(--space-6);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    border-radius: var(--radius-lg);
    min-width: 130px;
}

.cb-btn-quick svg,
.cb-btn-quick .icon {
    font-size: 1.4rem;
}

/* ── POS Footer action buttons (Hold / Print / Pay) ─────────── */
.cb-btn-hold {
    background: #e65100;
    border-color: #e65100;
    color: #fff;
}
.cb-btn-print {
    background: #546e7a;
    border-color: #546e7a;
    color: #fff;
}
.cb-btn-pay {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}
.cb-btn-clear {
    background: #fff;
    border-color: var(--color-border);
    color: var(--color-text);
}

.cb-btn-hold:hover {
    filter: brightness(0.9);
}
.cb-btn-print:hover {
    filter: brightness(0.9);
}
.cb-btn-pay:hover {
    background: var(--color-primary-dark);
}
.cb-btn-clear:hover {
    background: var(--color-bg);
}
