/* override form style */
.form-container {
    background-color: white;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    margin: 0 auto;
    max-width: 460px;
    padding: 6px;
}

.form-group {
    margin-bottom: 3px;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* insert "*" for required fields */
.form-group:has(input[required])>label.label-checkout::before,
.form-group:has(select[required])>label.label-checkout::before {
    content: "* ";
    color: red;
    font-weight: bold;
}

/* applies flexbox only to direct children of element
    with classes form-group and checkbox-group */
.form-group.checkbox-group .inner {
    display: flex;
    align-items: center;
    gap: 6px;
}

/* only shows if card number is invalid */
.error {
    color: red;
    font-size: 0.9em;
    display: none;
}

/* label style */
.label-checkout {
    font-weight: bold;
    font-size: 14px;
    width: 35%;
    margin: 0;
    color: #333;
    text-align: right;
    flex-shrink: 0;
}

/* input and select style */
input,
select {
    width: 100%;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
    flex: 1;
    padding: 1px 4px;
    font-size: 14px;
}

/* input button style */
.btn-green {
    background-color: #4CAF50;
    color: white;
    transition: background 0.3s ease-in-out;
}

.btn-green:hover {
    background-color: #1b7013;
    color: white;
}

/* button green-outline */
.btn-outline-green {
    background-color: white;
    color: #4CAF50;
    border: 1px solid #4CAF50;
    border-radius: 4px;
    transition: all 0.2s ease-in-out;
}

.btn-outline-green-.inline {
    height: 25px;
    align-items: center;
    justify-content: center;
}

.btn-outline-green:hover {
    background-color: #4CAF50;
    color: white;
    border-color: #4CAF50;
}

/* btn capture, void */
.capture {
    color: green;
    border-color: green;
}

.capture:hover {
    background-color: darkgreen;
    color: white;
    border-color: darkgreen;
}

.void {
    color: red;
    border-color: red;
}

.void:hover {
    background-color: darkred;
    color: white;
    border-color: darkred;
}

/* Remove arrows from number input fields */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* popover override width with custom class */
.popover-wide {
    max-width: none !important;
}

.popover.popover-wide .popover-body {
    max-height: 700px;
    overflow-y: auto;
}

/* status colors */
.ongoing {
    color: green !important;
}

.canceled {
    color: red !important;
}

.expired {
    color: orange !important;
}