input,
textarea,
select {
    font-family: inherit;
    width: 100%;
}

.bagel-input-error input,
.bagel-input-error button,
.bagel-input-error textarea {
    outline: 1px solid var(--bgl-red);
}

.bagel-input {
    position: relative;
    display: flex;
    flex-direction: column;
    text-align: start;
    margin-bottom: 0.5rem;
    width: 100%;
    color: var(--bgl-text-color);
}

.bagel-input::-webkit-input-placeholder {
    color: var(--bgl-placeholder-color);
}

.bagel-input::-moz-placeholder {
    color: var(--bgl-placeholder-color);
}

.bagel-input:-ms-input-placeholder {
    color: var(--bgl-placeholder-color);
}

.bagel-input::-ms-input-placeholder {
    color: var(--bgl-placeholder-color);
}

.bagel-input::placeholder {
    color: var(--bgl-placeholder-color);
}

.bagel-input {
    --bgl-input-label-color: var(--bgl-label-color);
    --bgl-input-label-active-color: var(--bgl-primary);
}

.bagel-input label,
.bagel-input .label-text,
.bagel-input>.label {
    color: var(--bgl-input-label-color);
}

.bagel-input:focus-within label,
.bagel-input:focus-within .label-text,
.bagel-input.open label,
.bagel-input.open .label-text {
    color: var(--bgl-input-label-active-color);
}

.bagel-input input,
.bagel-input select,
.custom-select .input {
    height: var(--bgl-input-height);
    font-size: var(--bgl-input-font-size);
}

.bagel-input input,
.bagel-input textarea,
.bagel-input select,
.custom-select .input {
    background: var(--bgl-input-bg);
    border: none;
    padding: 0.7rem;
    border-radius: var(--bgl-input-border-radius);
    color: var(--bgl-input-color);
    min-width: calc(var(--bgl-input-height) * 3);
    width: 100%;
}

.bagel-input input[type="radio"],
.bagel-input input[type="checkbox"] {
    min-width: unset;
    width: auto;
    height: auto;
    padding: 0;
    background: none;
    border-radius: 0;
}

/* ─── RadioGroup: frame/outline — transparent item background ────────────── */

.bagel-input.frame .active-list-item,
.bagel-input.bgl-outline .active-list-item {
    background-color: transparent !important;
}

/* ─── Variant: frame ──────────────────────────────────────────────────────── */

.bagel-input.frame input:not([type="radio"]):not([type="checkbox"]):not([type="color"]),
.bagel-input.frame textarea,
.bagel-input.frame select,
.custom-select.frame .input {
    background: transparent;
    outline: 1.5px solid var(--bgl-border-color);
    outline-offset: -1px;
    transition:
        outline-color 0.2s ease,
        box-shadow 0.2s ease;
}

.bagel-input.frame input:not([type="radio"]):not([type="checkbox"]):not([type="color"]):not(.colorInputPick):focus,
.bagel-input.frame textarea:focus,
.bagel-input.frame select:focus {
    outline-color: var(--bgl-input-label-active-color, var(--bgl-primary)) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--bgl-input-label-active-color, var(--bgl-primary)) 12%, transparent) !important;
}

/* tel-input and colorInputPick: focus handled by wrapper — suppress inner focus ring */
.bagel-input.frame .tel-input input:focus,
.bagel-input.frame .colorInputPick:focus,
.bagel-input.frame .colorInputPick:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

/* ─── Variant: underlined — transparent background ───────────────────────── */

.bagel-input.underlined input:not([type="radio"]):not([type="checkbox"]):not([type="color"]),
.bagel-input.underlined textarea,
.bagel-input.underlined select {
    background: transparent;
}

/* ─── Variant: bgl-outline ────────────────────────────────────────────────── */

.bagel-input.bgl-outline input:not([type="radio"]):not([type="checkbox"]):not([type="color"]),
.bagel-input.bgl-outline textarea,
.bagel-input.bgl-outline select,
.custom-select.bgl-outline .input {
    outline: 1.5px solid var(--bgl-border-color);
    outline-offset: -1px;
}

.bagel-input input::-webkit-input-placeholder,
.bagel-input textarea::-webkit-input-placeholder,
.bagel-input select::-webkit-input-placeholder,
.custom-select .input::-webkit-input-placeholder {
    color: var(--bgl-placeholder-color);
}

.bagel-input input::-moz-placeholder,
.bagel-input textarea::-moz-placeholder,
.bagel-input select::-moz-placeholder,
.custom-select .input::-moz-placeholder {
    color: var(--bgl-placeholder-color);
}

.bagel-input input:-ms-input-placeholder,
.bagel-input textarea:-ms-input-placeholder,
.bagel-input select:-ms-input-placeholder,
.custom-select .input:-ms-input-placeholder {
    color: var(--bgl-placeholder-color);
}

.bagel-input input::-ms-input-placeholder,
.bagel-input textarea::-ms-input-placeholder,
.bagel-input select::-ms-input-placeholder,
.custom-select .input::-ms-input-placeholder {
    color: var(--bgl-placeholder-color);
}

.bagel-input input::placeholder,
.bagel-input textarea::placeholder,
.bagel-input select::placeholder,
.custom-select .input::placeholder {
    color: var(--bgl-placeholder-color);
}

.bagel-input.search-wrap {
    display: flex;
    flex-direction: row;
    align-items: center;
}

.bagel-input.search-wrap input {
    -webkit-padding-end: 2rem;
    padding-inline-end: 2rem;
}

.bagel-input.search-wrap .bgl_icon-font {
    -webkit-margin-start: -1.75rem;
    margin-inline-start: -1.75rem;
}

.bagel-input select {
    height: var(--bgl-input-height);
}

.bagel-input textarea {
    resize: vertical;
    min-height: calc(var(--bgl-input-height) * 3);
    line-height: 1.5;
}

.bagel-input.wider input {
    min-width: 320px;
}

.bagel-input input[type='radio'] {
    padding: 0;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
}

.bagel-input select.no-edit,
.bagel-input input.no-edit,
.bagel-input textarea.no-edit,
.bagel-input .switch.no-edit {
    pointer-events: none;
    outline: none;
    opacity: 0.7;
}

.bagel-input label.active {
    color: var(--bgl-input-label-active-color);
}

/* ─── Variant: frame (outline) — select, OTP, signature, etc. ─────────────── */

.bagel-input.frame .selectinput-btn {
    background: transparent;
    outline: 1.5px solid var(--bgl-border-color);
    outline-offset: -1px;
    transition:
        outline-color 0.2s ease,
        box-shadow 0.2s ease;
}

.bagel-input.frame:focus-within .selectinput-btn,
.bagel-input.frame.open .selectinput-btn {
    outline-color: var(--bgl-input-label-active-color, var(--bgl-primary)) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--bgl-input-label-active-color, var(--bgl-primary)) 12%, transparent) !important;
}

/* digit-box frame/outline styles live in OTP.vue */

.bagel-input.frame.bgl_input.signature-pad .canvas,
.bagel-input.frame .signature-pad-canvas-wrap .canvas {
    outline: 1.5px solid var(--bgl-border-color);
    outline-offset: -1px;
    border-radius: var(--bgl-input-border-radius);
    transition: outline-color 0.2s ease, box-shadow 0.2s ease;
}

.bagel-input.frame:focus-within.bgl_input.signature-pad .canvas,
.bagel-input.frame:focus-within .signature-pad-canvas-wrap .canvas {
    outline-color: var(--bgl-input-label-active-color, var(--bgl-primary));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--bgl-input-label-active-color, var(--bgl-primary)) 12%, transparent);
}

.bagel-input.bgl-outline.bgl_input.signature-pad .canvas {
    outline: 1.5px solid var(--bgl-border-color);
    outline-offset: -1px;
    border-radius: var(--bgl-input-border-radius);
}

/* colorInputPickWrap variants handled in ColorInput.vue */

.bagel-input.frame .code-editor-grandpa {
    outline: 1.5px solid var(--bgl-border-color);
    outline-offset: -1px;
    border-radius: var(--bgl-input-border-radius);
}

.bagel-input.frame:focus-within .code-editor-grandpa {
    outline-color: var(--bgl-input-label-active-color, var(--bgl-primary));
}

.bagel-input.frame .rich-text-editor {
    outline: 1.5px solid var(--bgl-border-color);
    outline-offset: -1px;
    border: none;
    border-radius: var(--bgl-input-border-radius);
    transition: outline-color 0.2s ease, box-shadow 0.2s ease;
}

.bagel-input.frame:focus-within .rich-text-editor {
    outline-color: var(--bgl-input-label-active-color, var(--bgl-primary));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--bgl-input-label-active-color, var(--bgl-primary)) 12%, transparent);
}


.inline-80 {
    display: inline-block;
    width: 80%;
}

.inline-20 {
    display: inline-block;
    width: 20%;
}

.inline-10 {
    display: inline-block;
    width: 20%;
}

.inline-50 {
    display: inline-block;
    width: 49%;
    margin: 0 0.5%;
}

.bg-input {
    background: var(--bgl-input-bg);
}

/* .custom-select .input styles consolidated with .bagel-input rules above (lines 62–80) */

.input-height {
    height: var(--bgl-input-height);
}

.input-size {
    height: var(--bgl-input-height);
    min-width: calc(var(--bgl-input-height) * 3);
    margin-bottom: 0.5rem;
    padding: 0.7rem;
}

/* [dir='rtl'] .bagel-input input[type='email'],
[dir='rtl'] .tel-input input[type='tel'] {
    direction: ltr;
    text-align: right;
} */

.input.active .bagel-input input:focus-visible,
.bagel-input select:focus-visible,
.bagel-input textarea:focus-visible,
.bagel-input button:focus-visible,
.bgl_btn:focus-visible {
    outline-color: var(--bgl-input-label-active-color, var(--bgl-primary-tint));
    box-shadow: inset 0 0 10px #00000012;
}

.bagel-input input:not([type="radio"]):not([type="checkbox"]):focus,
.bagel-input select:focus,
.bagel-input textarea:focus {
    outline-color: rgba(0, 0, 0, 0.05);
    box-shadow: inset 0 0 8px #00000018;
    outline-color: var(--bgl-input-bg);
}


.bagel-input .bgl_btn:focus,
.bagel-input button:focus {
    outline-color: rgba(0, 0, 0, 0.05);
    outline-color: var(--bgl-input-bg);
}

/* ─── Variant: light-input ────────────────────────────────────────────────── */

.bagel-input.light-input input,
.bagel-input.light-input textarea,
.bagel-input.light-input select,
.bagel-input.num-input.light-input .input-icon-wrap,
.custom-select.light-input .input,
.light-input .selectinput-btn {
    background: var(--bgl-popup-bg) !important;
    box-shadow:
        0 1px 5px 0 rgba(0, 0, 0, 0.1),
        0 1px 2px -1px rgba(0, 0, 0, 0.1) !important;
    outline: 1px solid var(--bgl-border-color) !important;
    transition:
        box-shadow 0.2s ease,
        outline-color 0.2s ease;
}

/* NumberInput wraps its <input> in .input-icon-wrap which carries the background,
   so the transparent inner input must not re-apply the light-input styles. */
.bagel-input.num-input.light-input .input-icon-wrap input {
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
}

.input.active.light-input,
.bagel-input.light-input input:focus-visible,
.bagel-input.light-input select:focus-visible,
.bagel-input.light-input textarea:focus-visible,
.bagel-input.num-input.light-input .input-icon-wrap:focus-within {
    box-shadow:
        0 2px 8px 0 rgba(0, 0, 0, 0.15),
        0 0 0 3px color-mix(in srgb, var(--bgl-input-label-active-color, var(--bgl-primary)) 15%, transparent) !important;
    outline-color: var(--bgl-input-label-active-color, var(--bgl-primary)) !important;
}

.bagel-input input[type='number']::-webkit-inner-spin-button,
.bagel-input input[type='number']::-webkit-outer-spin-button {
    -webkit-appearance: none;
}

.label-count-0 label {
    display: none;
}

.label-count-0 button.bgl_btn.bgl_flatBtn {
    margin-right: 5px;
}

.label-count-0 button.bgl_btn.bgl_flatBtn:hover {
    background: var(--bgl-hover-filter);
}

.bagel-input input[type='color'] {
    padding: 0;
    display: block;
    border: none;
    appearance: none;
    cursor: pointer;
    height: calc(var(--bgl-input-height) - 0.5rem);
    width: calc(var(--bgl-input-height) - 0.5em);
    min-width: calc(var(--bgl-input-height) - 0.5rem);
}

.bagel-input input[type='color']::-webkit-color-swatch {
    border-radius: var(--bgl-input-border-radius);
    border: none;
    transition: box-shadow 200ms ease;
}

.bagel-input input[type='color']::-webkit-color-swatch-wrapper {
    padding: 0 !important;
}

.bagel-input input[type='color']::-moz-color-swatch {
    border-radius: var(--bgl-input-border-radius);
    border: none;
    transition: box-shadow 200ms ease;
}

.bagel-input input[type='color']::-webkit-color-swatch:hover {
    box-shadow: inset 0 0 10px #00000050;
}

.bagel-input input[type='color']::-moz-color-swatch:hover {
    box-shadow: inset 0 0 10px #00000050;
}

.grid-form {
    display: grid;
    column-gap: 1rem;
    grid-template-columns: repeat(12, 1fr);
    row-gap: 0.5rem;
}

.grid-form.thin .bagel-input,
.grid-form.dense .bagel-input {
    margin-bottom: 0;
}

.grid-form>* {
    grid-column: 1 / -1;
}

.col-1\/12 {
    grid-column: span 1 !important;
}

.col-1\/6,
.col-2\/12 {
    grid-column: span 2 !important;
}

.col-1\/4,
.col-3\/12 {
    grid-column: span 3 !important;
}

.col-1\/3,
.col-4\/12 {
    grid-column: span 4 !important;
}

.col-5\/12 {
    grid-column: span 5 !important;
}

.col-1\/2,
.col-6\/12 {
    grid-column: span 6 !important;
}

.col-7\/12 {
    grid-column: span 7 !important;
}

.col-2\/3,
.col-8\/12 {
    grid-column: span 8 !important;
}

.col-3\/4,
.col-9\/12 {
    grid-column: span 9 !important;
}

.col-5\/6,
.col-10\/12 {
    grid-column: span 10 !important;
}

.col-11\/12 {
    grid-column: span 11 !important;
}

.col-full,
.col-12\/12 {
    grid-column: span 12 !important;
}

.pixel {
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    outline: none !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 50% !important;
    min-width: 0 !important;
}

.error-message {
    color: var(--bgl-red);
    font-size: 10px;
    position: absolute;
    inset-inline-end: 0;
    bottom: -0.9rem;
    margin-top: 0.25rem;
}

@media screen and (max-width: 910px) {
    .bagel-input.wider input {
        min-width: 120px;
    }

    .col-1\/12,
    .col-1\/6,
    .col-2\/12,
    .col-1\/4,
    .col-3\/12,
    .col-1\/3,
    .col-4\/12,
    .col-5\/12,
    .col-1\/2,
    .col-6\/12,
    .col-7\/12,
    .col-2\/3,
    .col-8\/12,
    .col-3\/4,
    .col-9\/12,
    .col-5\/6,
    .col-10\/12,
    .col-11\/12,
    .col-full,
    .col-12\/12 {
        grid-column: 1 / -1 !important;
    }

    .m_col-1\/12 {
        grid-column: span 1 !important;
    }

    .m_col-1\/6,
    .m_col-2\/12 {
        grid-column: span 2 !important;
    }

    .m_col-1\/4,
    .m_col-3\/12 {
        grid-column: span 3 !important;
    }

    .m_col-1\/3,
    .m_col-4\/12 {
        grid-column: span 4 !important;
    }

    .m_col-5\/12 {
        grid-column: span 5 !important;
    }

    .m_col-1\/2,
    .m_col-6\/12 {
        grid-column: span 6 !important;
    }

    .m_col-7\/12 {
        grid-column: span 7 !important;
    }

    .m_col-2\/3,
    .m_col-8\/12 {
        grid-column: span 8 !important;
    }

    .m_col-3\/4,
    .m_col-9\/12 {
        grid-column: span 9 !important;
    }

    .m_col-5\/6,
    .m_col-10\/12 {
        grid-column: span 10 !important;
    }

    .m_col-11\/12 {
        grid-column: span 11 !important;
    }

    .m_col-full,
    .m_col-12\/12 {
        grid-column: span 12 !important;
    }
}