.bes-form-shell {
    --bes-form-bg: var(--bs-body-bg, #fff);
    --bes-form-text: var(--bs-body-color, #212529);
    --bes-form-title: var(--bs-heading-color, var(--bs-body-color, #212529));
    --bes-form-description: var(--bs-secondary-color, #6c757d);
    --bes-form-border: var(--bs-border-color, #dee2e6);
    --bes-form-label: var(--bs-body-color, #212529);
    --bes-form-help: var(--bs-secondary-color, #6c757d);
    --bes-form-input-bg: var(--bs-body-bg, #fff);
    --bes-form-input-text: var(--bs-body-color, #212529);
    --bes-form-input-border: var(--bs-border-color, #dee2e6);
    --bes-form-input-focus: var(--bs-primary, #0d6efd);
    --bes-form-error: var(--bs-danger, #dc3545);
    --bes-form-success: var(--bs-success, #198754);
    --bes-form-file-button-bg: var(--bs-secondary-bg, #f8f9fa);
    --bes-form-file-button-text: var(--bs-body-color, #212529);
    --bes-form-file-button-border: var(--bes-form-input-border);
    --bes-form-file-button-hover: var(--bs-tertiary-bg, #e9ecef);
    --bes-form-submit-bg: var(--bs-primary, #0d6efd);
    --bes-form-submit-text: #fff;
    --bes-form-submit-hover: color-mix(in srgb, var(--bes-form-submit-bg), #000 14%);
    --bes-form-progress-active: var(--bs-primary, #0d6efd);
    --bes-form-progress-inactive: var(--bs-secondary-bg, #e9ecef);
    width: 100%;
    color: var(--bes-form-text);
    background: var(--bes-form-bg);
    border-color: var(--bes-form-border);
    border-style: var(--bes-form-border-style, solid);
    border-width: var(--bes-form-border-width, 1px);
    border-radius: var(--bes-form-radius, 12px);
    padding: var(--bes-form-padding, 24px);
    overflow-wrap: anywhere;
    overflow-x: clip;
}
.bes-form-shell * { min-width: 0; }
.bes-form-shell :is(button,.btn,.page-link,[role="button"]) { min-height: 44px; }
.bes-form-pagination :is(.page-link,.btn) { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.bes-form-shell .form-check { min-height: 44px; display: flex; align-items: flex-start; gap: .5rem; }
.bes-form-shell .form-check-input { flex: 0 0 auto; margin-inline-start: 0; }
.bes-form-shell :is(a,button,input,select,textarea,[tabindex]):focus-visible {
    outline: 3px solid var(--bes-form-input-focus);
    outline-offset: 2px;
}
.bes-form-width-narrow { max-width: 520px; }
.bes-form-width-medium { max-width: 720px; }
.bes-form-width-wide { max-width: 960px; }
.bes-form-width-full { max-width: none; }
.bes-form-align-start { margin-inline-start: 0; margin-inline-end: auto; }
.bes-form-align-center { margin-inline: auto; }
.bes-form-align-end { margin-inline-start: auto; margin-inline-end: 0; }
.bes-form-preset-card { box-shadow: 0 .75rem 2rem rgba(15, 23, 42, .09); }
.bes-form-preset-flat { background: transparent; border: 0; box-shadow: none; padding-inline: 0; }
.bes-form-embed--flat .bes-form-shell { background: transparent !important; border: 0 !important; box-shadow: none !important; padding-inline: 0 !important; max-width: none; }
.bes-form-preset-compact .form-render-section { padding: .85rem !important; }
.bes-form-title { margin-bottom: .5rem; color: var(--bes-form-title); }
.bes-form-description { margin-bottom: 1.5rem; color: var(--bes-form-description) !important; }
.bes-form-title-start :is(.bes-form-title,.bes-form-description) { text-align: start; }
.bes-form-title-center :is(.bes-form-title,.bes-form-description) { text-align: center; }
.bes-form-title-end :is(.bes-form-title,.bes-form-description) { text-align: end; }
.bes-form-title-size-small .bes-form-title { font-size: clamp(1.2rem, 2vw, 1.5rem); }
.bes-form-title-size-medium .bes-form-title { font-size: clamp(1.5rem, 2.6vw, 2rem); }
.bes-form-title-size-large .bes-form-title { font-size: clamp(1.8rem, 3.2vw, 2.6rem); }
.bes-form-shell .row { --bs-gutter-y: var(--bes-form-field-gap, 16px); }
.bes-form-layout-row { row-gap: var(--bes-form-field-gap, 16px); }
.bes-form-row-gap-compact { --bes-form-field-gap: 8px; }
.bes-form-row-gap-comfortable { --bes-form-field-gap: 24px; }
.bes-form-layout-container { margin-bottom: var(--bes-form-field-gap, 16px); }
.bes-form-container-card { padding: 1rem; border: 1px solid var(--bes-form-border); border-radius: var(--bes-form-radius, 12px); background: color-mix(in srgb, var(--bes-form-bg), var(--bes-form-border) 5%); }
.bes-form-container-title { margin-bottom: .75rem; color: var(--bes-form-title); font-weight: 600; }
.bes-form-container-tab[hidden] { display: none !important; }
.bes-form-shell [data-form-layout-tab-button] { color: var(--bes-form-text); }
.bes-form-shell [data-form-layout-tab-button].active { color: var(--bes-form-input-focus); font-weight: 600; }
.bes-form-layout-item { order: var(--bes-item-order-mobile, 1); align-self: stretch; min-width: 0; }
.bes-form-item-align-start { align-self: flex-start; }
.bes-form-item-align-center { align-self: center; }
.bes-form-item-align-end { align-self: flex-end; }
.bes-form-label-inline { display: grid; grid-template-columns: minmax(7rem, .45fr) minmax(0, 1fr); column-gap: .75rem; align-items: center; }
.bes-form-label-inline > :is(.form-text,.invalid-feedback) { grid-column: 2; }
.bes-form-label-inside { position: relative; }
.bes-form-label-inside .form-label { position: absolute; z-index: 2; inset-block-start: .45rem; inset-inline-start: calc(var(--bs-gutter-x, 1.5rem) * .5 + .75rem); margin: 0; max-width: calc(100% - 2rem); color: var(--bes-form-help) !important; font-size: .75rem; pointer-events: none; }
.bes-form-label-inside :is(.form-control,.form-select) { padding-top: 1.25rem; }
.bes-form-label-hidden :is(.form-label,.form-check-label) { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.bes-form-text-center { text-align: center; }
.bes-form-text-end { text-align: end; }
.bes-form-control-small :is(.form-control,.form-select) { min-height: 44px; font-size: .875rem; }
.bes-form-control-large :is(.form-control,.form-select) { min-height: 52px; font-size: 1.05rem; }
.bes-form-font-small :is(.form-control,.form-select,.form-label,.form-check-label) { font-size: .875rem; }
.bes-form-font-large :is(.form-control,.form-select,.form-label,.form-check-label) { font-size: 1.125rem; }
.bes-form-font-style-italic :is(.form-control,.form-select,.form-label,.form-check-label) { font-style: italic; }
.bes-form-font-weight-medium :is(.form-control,.form-select,.form-label,.form-check-label) { font-weight: 500; }
.bes-form-font-weight-bold :is(.form-control,.form-select,.form-label,.form-check-label) { font-weight: 700; }
.bes-form-item-custom {
    color: var(--bes-item-text, inherit);
    border: var(--bes-item-border-width, 0) var(--bes-item-border-style, solid) var(--bes-item-border, transparent);
    border-radius: var(--bes-item-radius, 0);
    padding: var(--bes-item-padding-y, 0) var(--bes-item-padding-x, calc(var(--bs-gutter-x, 1.5rem) * .5));
    margin-block: var(--bes-item-margin-y, 0);
    min-height: var(--bes-item-min-height, auto);
}
.bes-form-item-custom[data-layout-content] { background-color: var(--bes-item-bg, transparent); }
.bes-form-item-custom :is(.form-label,.form-check-label) { color: var(--bes-item-label, var(--bes-item-text, var(--bes-form-label))) !important; }
.bes-form-item-custom .form-text { color: var(--bes-item-help, var(--bes-form-help)) !important; }
.bes-form-item-custom[data-layout-field] :is(.form-control,.form-select,.form-check-input),
.bes-form-item-custom[data-layout-action] .btn {
    min-height: var(--bes-item-min-height, 44px);
    color: var(--bes-item-text, var(--bes-form-input-text)) !important;
    background-color: var(--bes-item-bg, var(--bes-form-input-bg)) !important;
    border-color: var(--bes-item-border, var(--bes-form-input-border)) !important;
    border-width: var(--bes-item-border-width, 1px) !important;
    border-style: var(--bes-item-border-style, solid) !important;
    border-radius: var(--bes-item-radius, var(--bes-form-input-radius, 8px)) !important;
}
.bes-form-item-custom[data-layout-field] :is(.form-control,.form-select,.form-check-input):hover,
.bes-form-item-custom[data-layout-action] .btn:hover {
    color: var(--bes-item-hover-text, var(--bes-item-text, var(--bes-form-input-text))) !important;
    background-color: var(--bes-item-hover-bg, var(--bes-item-bg, var(--bes-form-input-bg))) !important;
    border-color: var(--bes-item-hover-border, var(--bes-item-border, var(--bes-form-input-border))) !important;
}
.bes-form-item-custom[data-layout-field] :is(.form-control,.form-select,.form-check-input):focus,
.bes-form-item-custom[data-layout-field] :is(.form-control,.form-select,.form-check-input).is-preview-focus,
.bes-form-item-custom[data-layout-action] .btn:focus-visible,
.bes-form-item-custom[data-layout-action] .btn.is-preview-focus {
    border-color: var(--bes-item-focus-border, var(--bes-item-border, var(--bes-form-input-focus))) !important;
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--bes-item-focus-ring, var(--bes-item-focus-border, var(--bes-form-input-focus))), transparent 72%) !important;
    outline: 2px solid var(--bes-item-focus-ring, var(--bes-item-focus-border, var(--bes-form-input-focus)));
    outline-offset: 2px;
}
.bes-form-item-custom[data-layout-field] :is(.form-control,.form-select,.form-check-input):disabled,
.bes-form-item-custom[data-layout-action] .btn:disabled {
    color: var(--bes-item-disabled-text, var(--bes-item-text, var(--bes-form-input-text))) !important;
    background-color: var(--bes-item-disabled-bg, var(--bes-item-bg, var(--bs-secondary-bg))) !important;
    border-color: var(--bes-item-disabled-border, var(--bes-item-border, var(--bes-form-input-border))) !important;
    opacity: var(--bes-item-disabled-opacity, .65);
}
.bes-form-item-custom[data-layout-field] :is(.form-control,.form-select,.form-check-input).is-invalid {
    color: var(--bes-item-error-text, var(--bes-item-text, var(--bes-form-input-text))) !important;
    background-color: var(--bes-item-error-bg, var(--bes-item-bg, var(--bes-form-input-bg))) !important;
    border-color: var(--bes-item-error-border, var(--bes-form-error)) !important;
}
.bes-form-item-custom[data-layout-field] :is(.form-control,.form-select,.form-check-input).is-valid {
    color: var(--bes-item-success-text, var(--bes-item-text, var(--bes-form-input-text))) !important;
    background-color: var(--bes-item-success-bg, var(--bes-item-bg, var(--bes-form-input-bg))) !important;
    border-color: var(--bes-item-success-border, var(--bes-form-success)) !important;
}
.bes-form-shell :is(.form-label,.form-check-label) .site-menu-link-icon { display: inline-flex; width: 1em; height: 1em; margin-inline: .3em; vertical-align: -.12em; }
.bes-form-shell :is(.form-label,.form-check-label) .site-menu-link-icon svg { width: 100%; height: 100%; fill: currentColor; }
@media (max-width: 767.98px) { .bes-form-layout-item.bes-form-hidden-mobile { display: none !important; } }
@media (min-width: 768px) and (max-width: 991.98px) { .bes-form-layout-item.bes-form-hidden-tablet { display: none !important; } }
@media (min-width: 992px) { .bes-form-layout-item.bes-form-hidden-desktop { display: none !important; } }
@media (min-width: 768px) { .bes-form-layout-item { order: var(--bes-item-order-tablet, var(--bes-item-order-mobile, 1)); } }
@media (min-width: 992px) { .bes-form-layout-item { order: var(--bes-item-order-desktop, var(--bes-item-order-tablet, 1)); } }
.bes-form-shell .form-render-section {
    color: var(--bes-form-text);
    border-color: var(--bes-form-border) !important;
    border-radius: var(--bes-form-radius, 12px) !important;
}
.bes-form-section-card .form-render-section { background: color-mix(in srgb, var(--bes-form-bg), var(--bes-form-border) 9%); box-shadow: 0 .35rem 1rem rgba(15, 23, 42, .06); }
.bes-form-section-plain .form-render-section { border: 0 !important; border-radius: 0 !important; padding-inline: 0 !important; }
.bes-form-section-divider .form-render-section { border: 0 !important; border-top: var(--bes-form-border-width, 1px) var(--bes-form-border-style, solid) var(--bes-form-border) !important; border-radius: 0 !important; padding-inline: 0 !important; }
.bes-form-shell .form-label,.bes-form-shell .form-check-label,.bes-form-shell legend { color: var(--bes-form-label); }
.bes-form-shell .form-text { color: var(--bes-form-help) !important; }
.bes-form-shell :is(.form-control,.form-select) {
    min-height: var(--bes-form-input-height, 44px);
    color: var(--bes-form-input-text);
    background-color: var(--bes-form-input-bg);
    border-color: var(--bes-form-input-border);
    border-radius: var(--bes-form-input-radius, 8px);
}
.bes-form-shell textarea.form-control { min-height: calc(var(--bes-form-input-height, 44px) * 2.5); }
.bes-form-shell input.form-control[type="file"]::file-selector-button {
    min-height: calc(var(--bes-form-input-height, 44px) - 2px);
    color: var(--bes-form-file-button-text);
    background-color: var(--bes-form-file-button-bg);
    border: 0;
    border-inline-end: 1px solid var(--bes-form-file-button-border);
    transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out;
}
.bes-form-shell input.form-control[type="file"]:hover::file-selector-button,
.bes-form-shell input.form-control[type="file"]:focus::file-selector-button {
    color: var(--bes-form-file-button-text);
    background-color: var(--bes-form-file-button-hover);
}
.bes-form-shell :is(.form-control,.form-select):focus {
    border-color: var(--bes-form-input-focus);
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--bes-form-input-focus), transparent 78%);
}
.bes-form-shell :is(.is-invalid,.invalid-feedback,.text-danger) { color: var(--bes-form-error) !important; }
.bes-form-shell .is-invalid { border-color: var(--bes-form-error) !important; }
.bes-form-shell .alert-success { color: var(--bes-form-success); border-color: color-mix(in srgb, var(--bes-form-success), transparent 55%); }
.bes-form-submit-row { display: flex; margin-top: var(--bes-form-field-gap, 16px); }
.bes-form-submit-start .bes-form-submit-row { justify-content: flex-start; }
.bes-form-submit-center .bes-form-submit-row { justify-content: center; }
.bes-form-submit-end .bes-form-submit-row { justify-content: flex-end; }
.bes-form-submit-full .bes-form-submit-row,.bes-form-submit-full .bes-form-submit { width: 100%; }
.bes-form-submit {
    color: var(--bes-form-submit-text) !important;
    background: var(--bes-form-submit-bg) !important;
    border-color: var(--bes-form-submit-bg) !important;
    border-radius: var(--bes-form-submit-radius, 8px) !important;
    min-height: 44px;
}
.bes-form-submit:hover,.bes-form-submit:focus { background: var(--bes-form-submit-hover) !important; border-color: var(--bes-form-submit-hover) !important; }
.bes-form-shell .form-step-progress [data-step-indicator] { color: var(--bes-form-text); background: var(--bes-form-progress-inactive); border-color: var(--bes-form-border) !important; }
.bes-form-shell .form-step-progress [aria-current="step"] { color: #fff; background: var(--bes-form-progress-active); border-color: var(--bes-form-progress-active) !important; }
.bes-form-progress-line .form-step-progress > div { position: relative; justify-content: space-between; }
.bes-form-progress-line .form-step-progress > div::before { content: ""; position: absolute; inset-inline: 1rem; top: 50%; border-top: 2px solid var(--bes-form-progress-inactive); z-index: 0; }
.bes-form-progress-line .form-step-progress [data-step-indicator] { position: relative; z-index: 1; border-radius: 999px; }
.bes-form-progress-numbers .form-step-progress [data-step-indicator] { width: 2.25rem; height: 2.25rem; padding: 0; display: inline-grid; place-items: center; border-radius: 50%; font-size: 0; }
.bes-form-progress-numbers .form-step-progress [data-step-indicator]::first-letter { font-size: .85rem; }
.bes-form-shell :is(input,select,textarea,.input-group,.form-render-section) { max-width: 100%; }
@media (max-width: 575.98px) {
    .bes-form-shell { padding: var(--bes-form-mobile-padding, 16px); border-radius: min(var(--bes-form-radius, 12px), 16px); }
    .bes-form-shell .row { --bs-gutter-y: var(--bes-form-mobile-field-gap, 12px); }
    .bes-form-mobile-submit-full .bes-form-submit-row,.bes-form-mobile-submit-full .bes-form-submit { width: 100%; }
    .bes-form-label-inline { grid-template-columns: 1fr; }
    .bes-form-label-inline > :is(.form-text,.invalid-feedback) { grid-column: 1; }
}
.form-visual-preview-frame[data-device="mobile"] .bes-form-shell { padding: var(--bes-form-mobile-padding, 16px); }
.form-visual-preview-frame[data-device="mobile"] .bes-form-shell .row { --bs-gutter-y: var(--bes-form-mobile-field-gap, 12px); }
.form-visual-preview-frame[data-device="mobile"] .bes-form-mobile-submit-full :is(.bes-form-submit-row,.bes-form-submit) { width: 100%; }
.form-visual-preview-frame[data-device="mobile"] .bes-form-layout-item {
    flex: 0 0 calc(var(--bes-item-span-mobile, 12) / 12 * 100%);
    max-width: calc(var(--bes-item-span-mobile, 12) / 12 * 100%);
    order: var(--bes-item-order-mobile, 1);
}
.form-visual-preview-frame[data-device="tablet"] .bes-form-layout-item {
    flex: 0 0 calc(var(--bes-item-span-tablet, 12) / 12 * 100%);
    max-width: calc(var(--bes-item-span-tablet, 12) / 12 * 100%);
    order: var(--bes-item-order-tablet, 1);
}
.form-visual-preview-frame[data-device="desktop"] .bes-form-layout-item {
    flex: 0 0 calc(var(--bes-item-span-desktop, 12) / 12 * 100%);
    max-width: calc(var(--bes-item-span-desktop, 12) / 12 * 100%);
    order: var(--bes-item-order-desktop, 1);
}
.form-designer-live-preview[data-device="mobile"] .bes-form-hidden-mobile,.form-visual-preview-frame[data-device="mobile"] .bes-form-hidden-mobile { display: none !important; }
.form-designer-live-preview[data-device="tablet"] .bes-form-hidden-tablet,.form-visual-preview-frame[data-device="tablet"] .bes-form-hidden-tablet { display: none !important; }
.form-designer-live-preview[data-device="desktop"] .bes-form-hidden-desktop,.form-visual-preview-frame[data-device="desktop"] .bes-form-hidden-desktop { display: none !important; }
@media (prefers-reduced-motion: reduce) {
    .bes-form-shell *, .bes-form-review-backdrop * { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
@media (forced-colors: active) {
    .bes-form-shell :is(a,button,input,select,textarea,[tabindex]):focus-visible { outline: 3px solid Highlight; }
    .bes-form-shell :is(.form-control,.form-select,.form-check-input,.btn) { forced-color-adjust: auto; }
}
.bes-form-review-backdrop{position:fixed;inset:0;z-index:2147483000;background:rgba(15,23,42,.72);display:flex;align-items:center;justify-content:center;padding:20px}.bes-form-review-backdrop[hidden]{display:none}.bes-form-review-dialog{width:min(760px,100%);max-height:min(86vh,900px);display:flex;flex-direction:column;background:#fff;color:#172033;border:1px solid #dbe2ea;border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.32);overflow:hidden}.bes-form-review-header{padding:22px 24px 14px;border-bottom:1px solid #e5e7eb}.bes-form-review-title{margin:0;font-size:1.4rem}.bes-form-review-message{margin:8px 0 0;color:#64748b}.bes-form-review-body{padding:12px 24px 20px;overflow:auto}.bes-form-review-section-title{margin:18px 0 6px;font-size:1rem;color:#334155}.bes-form-review-row{display:grid;grid-template-columns:minmax(140px,35%) 1fr;gap:16px;padding:11px 0;border-bottom:1px solid #edf0f3}.bes-form-review-label{font-weight:600;color:#475569}.bes-form-review-value{white-space:pre-wrap;overflow-wrap:anywhere}.bes-form-review-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid #e5e7eb;background:#f8fafc}@media(max-width:575.98px){.bes-form-review-backdrop{padding:8px;align-items:flex-end}.bes-form-review-dialog{max-height:92vh;border-radius:14px 14px 0 0}.bes-form-review-row{grid-template-columns:1fr;gap:4px}.bes-form-review-actions{position:sticky;bottom:0}.bes-form-review-actions .btn{flex:1;min-height:44px}}
