.stacklar-field--acceptance .stacklar-acceptance-field { display: flex; flex-direction: column; gap: 8px; } .stacklar-acceptance-box { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; color: #0f172a; } .stacklar-acceptance-box input[type="checkbox"] { margin-top: 2px; } .stacklar-acceptance-text a { color: #111111; text-decoration: underline; } .stacklar-acceptance-instructions { margin: 0; font-size: 13px; color: #475569; } .stacklar-field--color .stacklar-color-field { display: flex; flex-direction: column; gap: 8px; } .stacklar-color-picker { display: flex; align-items: center; gap: 12px; } .stacklar-color-picker input[type="color"] { width: 48px; height: 32px; border: 1px solid #cbd5e1; border-radius: 6px; padding: 0; background: #ffffff; } .stacklar-color-picker .stacklar-color-value { width: 120px; border: 1px solid #cbd5e1; border-radius: 6px; padding: 6px 8px; font-size: 13px; background: #f8fafc; color: #0f172a; } .stacklar-color-instructions { margin: 0; font-size: 13px; color: #475569; } .stacklar-field--address-autocomplete .stacklar-address-field { display: flex; flex-direction: column; gap: 8px; } .stacklar-address-input-wrap { position: relative; } .stacklar-address-map { display: none; width: 100%; height: 220px; margin-top: 8px; border: 1px solid #cbd5e1; border-radius: 8px; overflow: hidden; background: #e2e8f0; } .stacklar-address-map.is-visible { display: block; } .stacklar-address-input-wrap input[type="text"] { width: 100%; padding: 8px 12px; border: 1px solid #cbd5e1; border-radius: 6px; background: #fff; } .stacklar-address-suggestions { position: absolute; z-index: 25; inset: auto 0 auto 0; margin-top: 4px; background: #ffffff; border: 1px solid #cbd5e1; border-radius: 6px; box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08); max-height: 220px; overflow-y: auto; display: none; bottom:-50px; } .stacklar-address-suggestions.is-open { display: block; } .stacklar-address-suggestion { padding: 8px 12px; cursor: pointer; } .stacklar-address-suggestion:hover, .stacklar-address-suggestion.is-active { background: #ededed; color: #0f172a; } .stacklar-address-instructions { margin: 0; font-size: 13px; color: #475569; } .stacklar-field--select-autocomplete .stacklar-autocomplete-field { display: flex; flex-direction: column; gap: 8px; } .stacklar-field--select-autocomplete .stacklar-autocomplete-instructions { margin: 0; font-size: 13px; color: #475569; } .stacklar-field--select-autocomplete .choices { width: 100%; } .stacklar-field--select-autocomplete .choices__inner { min-height: 36px; border-radius: 6px; border: 1px solid #cbd5e1; background-color: #fff; padding: 6px 8px; } .stacklar-field--select-autocomplete .choices__input { margin: 0; padding: 0; border: none; box-shadow: none; } .stacklar-field--select-autocomplete .choices__list--dropdown { z-index: 20; border-radius: 6px; border: 1px solid #cbd5e1; box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08); } .stacklar-field--select-autocomplete .choices__list--dropdown .choices__item--selectable.is-highlighted { background: #ededed; color: #0f172a; } .stacklar-field--select-autocomplete .choices__item--choice { border-bottom: 1px solid #f1f5f9; } .stacklar-field--select-autocomplete .choices__item--choice:last-child { border-bottom: none; } .stacklar-field--select-autocomplete .choices.is-disabled .choices__inner { background: #e2e8f0; cursor: not-allowed; } .stacklar-field--select-autocomplete .choices__button { border: none; background: transparent; color: #dc2626; } .stacklar-field--select-autocomplete .choices__placeholder { opacity: .7; } .stacklar-field--rating .stacklar-rating-field { display: flex; flex-direction: column; gap: 8px; } .stacklar-rating-stars { --stacklar-rating-size: 28px; --stacklar-rating-gap: 4px; --stacklar-rating-color: #cbd5e1; --stacklar-rating-hover: #525252; --stacklar-rating-active: #111111; --stacklar-rating-focus: #111111; display: inline-flex; flex-direction: row-reverse; align-items: center; gap: var(--stacklar-rating-gap); justify-content: flex-end; } .stacklar-rating-stars input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; } .stacklar-rating-stars label { cursor: pointer; font-size: var(--stacklar-rating-size); color: var(--stacklar-rating-color); transition: color .15s ease; line-height: 1; display: inline-flex; } .stacklar-rating-stars label span { display: inline-flex; line-height: 1; } .stacklar-rating-stars label i { display: inline-flex; font-size: inherit; line-height: 1; color: inherit; } .stacklar-rating-stars label:hover, .stacklar-rating-stars label:hover ~ label { color: var(--stacklar-rating-hover); } .stacklar-rating-stars input[type="radio"]:focus-visible + label { outline: 2px solid var(--stacklar-rating-focus); outline-offset: 2px; } .stacklar-rating-stars input[type="radio"]:checked + label, .stacklar-rating-stars input[type="radio"]:checked + label ~ label { color: var(--stacklar-rating-active); } .stacklar-rating-instructions { margin: 0; font-size: 13px; color: #475569; } .stacklar-field--nps .stacklar-nps-field, .stacklar-nps-preview .stacklar-nps-field { display: flex; flex-direction: column; gap: 8px; } .stacklar-nps-scale { display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); gap: 6px; width: 100%; } .stacklar-nps-option { display: inline-flex; align-items: center; justify-content: center; min-width: 0; } .stacklar-nps-option input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; } .stacklar-nps-option label { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 34px; border: 1px solid var(--stacklar-nps-option-border, #cbd5e1); border-radius: 6px; background: var(--stacklar-nps-option-bg, #fff); color: var(--stacklar-nps-option-color, #0f172a); cursor: pointer; font-size: 13px; font-weight: 600; line-height: 1; transition: border-color .15s ease, background-color .15s ease, color .15s ease; } .stacklar-nps-option label:hover { border-color: var(--stacklar-nps-option-hover-border, #64748b); background: var(--stacklar-nps-option-hover-bg, #f8fafc); } .stacklar-nps-option input[type="radio"]:checked + label { border-color: var(--stacklar-nps-selected-border, var(--stacklar-nps-selected-bg, currentColor)); background: var(--stacklar-nps-selected-bg, currentColor); color: var(--stacklar-nps-selected-color, #fff); } .stacklar-nps-option input[type="radio"]:focus-visible + label { outline: 2px solid currentColor; outline-offset: 2px; } .stacklar-nps-labels { display: flex; justify-content: space-between; gap: 12px; color: #64748b; font-size: 12px; line-height: 1.35; } @media (max-width: 640px) { .stacklar-nps-scale { grid-template-columns: repeat(6, minmax(0, 1fr)); } } .screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } .stacklar-field--signature .stacklar-signature-field { display: flex; flex-direction: column; gap: 8px; } .stacklar-signature-canvas-wrap { display: flex; flex-direction: column; gap: 8px; } .stacklar-signature-pad { border: 1px dashed #cbd5e1; border-radius: 6px; background: #ffffff; overflow: hidden; position: relative; } .stacklar-signature-pad canvas { display: block; width: 100%; cursor: crosshair; } .stacklar-signature-actions { display: flex; justify-content: flex-end; gap: 8px; } .stacklar-signature-clear { border: 1px solid #94a3b8; background: #e2e8f0; color: #0f172a; border-radius: 4px; padding: 4px 10px; font-size: 13px; cursor: pointer; transition: background-color .2s ease, border-color .2s ease; } .stacklar-signature-clear:hover { background: #cbd5e1; border-color: #94a3b8; } .stacklar-signature-clear:focus-visible { outline: 2px solid #111111; outline-offset: 2px; } .stacklar-signature-message { font-size: 12px; color: #dc2626; min-height: 16px; } .stacklar-field--signature.is-invalid .stacklar-signature-pad { border-color: #dc2626; box-shadow: 0 0 0 1px rgba(220,38,38,0.2); } .stacklar-field--signature .stacklar-signature-instructions { margin: 0; font-size: 13px; color: #475569; } .stacklar-inline .stacklar-input-wrap, .stacklar__inline .stacklar-input-wrap, .stacklar-inline .stacklar__input-wrap, .stacklar__inline .stacklar__input-wrap { flex: 1 1 auto; } .stacklar-message, .stacklar__message { margin-top: 8px; padding: 10px 14px; color: #0f172a; font-size: 14px; line-height: 1.5; transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease; } .stacklar[data-stacklar-paypal="1"] .stacklar-submit, .stacklar[data-stacklar-stripe="1"] .stacklar-submit { display: none; } .stacklar-paypal-buttons, .stacklar-stripe-payment { margin-top: 8px; } .stacklar-stripe-payment { display: grid; gap: 10px; } .stacklar-stripe-payment__element { min-height: 0; } .stacklar-stripe-payment__button { display: inline-flex; align-items: center; justify-content: center; width: fit-content; padding: 10px 16px; border: 1px solid #111827; border-radius: 6px; background: #111827; color: #ffffff; font-size: 14px; font-weight: 600; line-height: 1.2; cursor: pointer; } .stacklar-stripe-payment__button:disabled { cursor: not-allowed; opacity: .65; } .stacklar-stripe-payment__error { color: #b91c1c; font-size: 13px; line-height: 1.4; } .stacklar-message.is-success, .stacklar__message.is-success { color: #0f172a; } .stacklar-message.is-error, .stacklar__message.is-error { color: #b91c1c; } body.stacklar-modal-open { overflow: hidden; } .stacklar-popup-host { display: block; } .stacklar-popup-trigger { align-items: center; border: 1px solid #111111; border-radius: 6px; background: #111111; color: #fff; cursor: pointer; display: inline-flex; font-size: 14px; line-height: 1.2; padding: 10px 16px; text-decoration: none; } .stacklar-popup-trigger:hover { opacity: 0.92; } .stacklar-popup-trigger--link { background: transparent; border: none; color: #111111; padding: 0; text-decoration: underline; } .stacklar-modal[hidden] { display: none !important; } .stacklar-modal { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 20px; pointer-events: none; } .stacklar-modal__overlay { position: absolute; inset: 0; background: rgba(15, 23, 42, 0.62); opacity: 0; --stacklar-overlay-opacity: 0.62; transition: opacity 280ms ease; } .stacklar-modal__dialog { position: relative; z-index: 1; width: min(720px, calc(100vw - 40px)); max-height: calc(100vh - 40px); overflow: auto; background: #fff; border-radius: 14px; box-shadow: 0 18px 40px rgba(15, 23, 42, 0.28); padding: 24px 20px 20px; opacity: 0; transform: translateY(24px); transition: opacity 280ms ease, transform 280ms ease; } .stacklar-modal__dialog:focus { outline: 2px solid #111111; outline-offset: 2px; } .stacklar-modal.is-open, .stacklar-modal.is-closing { pointer-events: auto; } .stacklar-modal[data-stacklar-overlay-pass-through="1"].is-open, .stacklar-modal[data-stacklar-overlay-pass-through="1"].is-closing { pointer-events: none; } .stacklar-modal[data-stacklar-overlay-pass-through="1"] .stacklar-modal__overlay { pointer-events: none; } .stacklar-modal[data-stacklar-overlay-pass-through="1"] .stacklar-modal__dialog { pointer-events: auto; } .stacklar-modal.is-open .stacklar-modal__overlay { opacity: var(--stacklar-overlay-opacity, 1); } .stacklar-modal.is-open .stacklar-modal__dialog { opacity: 1; } .stacklar-modal.is-open .stacklar-modal__dialog { transform: none; } .stacklar-modal:not(.is-open):not(.is-closing)[data-stacklar-appear-effect="none"] .stacklar-modal__dialog, .stacklar-modal.is-closing[data-stacklar-hide-effect="none"] .stacklar-modal__dialog, .stacklar-modal:not(.is-open):not(.is-closing)[data-stacklar-appear-effect="fade"] .stacklar-modal__dialog, .stacklar-modal.is-closing[data-stacklar-hide-effect="fade"] .stacklar-modal__dialog { transform: none; } .stacklar-modal:not(.is-open):not(.is-closing)[data-stacklar-appear-effect="zoom"] .stacklar-modal__dialog, .stacklar-modal.is-closing[data-stacklar-hide-effect="zoom"] .stacklar-modal__dialog { transform: scale(0.92); } .stacklar-modal:not(.is-open):not(.is-closing)[data-stacklar-appear-effect="slide_up"] .stacklar-modal__dialog, .stacklar-modal.is-closing[data-stacklar-hide-effect="slide_up"] .stacklar-modal__dialog { transform: translateY(24px); } .stacklar-modal:not(.is-open):not(.is-closing)[data-stacklar-appear-effect="slide_down"] .stacklar-modal__dialog, .stacklar-modal.is-closing[data-stacklar-hide-effect="slide_down"] .stacklar-modal__dialog { transform: translateY(-24px); } .stacklar-modal__close { position: absolute; top: 8px; right: 8px; width: 30px; height: 30px; border: 1px solid #cbd5e1; border-radius: 999px; background: #fff; color: #334155; cursor: pointer; font-size: 18px; line-height: 1; } .stacklar-modal__close:hover { background: #f8fafc; } .stacklar-modal__title { margin: 0 36px 12px 0; font-size: 21px; line-height: 1.3; color: #0f172a; } .stacklar-modal__content .stacklar-wrapper { margin: 0; } @media (max-width: 767px) { .stacklar-modal { padding: 12px; } .stacklar-modal__dialog { width: calc(100vw - 24px); max-height: calc(100vh - 24px); border-radius: 12px; padding: 18px 14px 14px; } } .stacklar-input-prefix, .stacklar-input-suffix, .stacklar__input-prefix, .stacklar__input-suffix { display: inline-flex; align-items: center; background: #f1f5f9; border: 1px solid #e2e8f0; color: #334155; padding: 0 8px; border-radius: 4px; font-size: 12px; height: 32px; line-height: 32px; } .stacklar-help, .stacklar__help { display: block; margin-top: 4px; color: #64748b; font-size: 12px; } .stacklar-intl-error { display: block; margin-top: 4px; font-size: 12px; color: #dc2626; } .stacklar-intl-invalid { border-color: #dc2626 !important; box-shadow: 0 0 0 1px rgba(220,38,38,0.2); } .stacklar-field--checkbox label { margin: 0; } .stacklar-field--checkbox input[type="checkbox"] { outline: none; box-shadow: none; } .stacklar-field--checkbox input[type="checkbox"]:focus-visible { outline: 2px solid #111111; outline-offset: 2px; } .stacklar-submit { appearance: none; align-items: center; box-shadow: none; box-sizing: border-box; display: inline-block; font-family: inherit; font-size: 16px; font-weight: 400; line-height: 1.2; margin: 0; padding: 8px 12px; border: 1px solid #111111; background: #111111; color: #fff; border-radius: 6px; cursor: pointer; text-align: center; text-decoration: none; } .stacklar-submit:hover { opacity: .9; } .stacklar-field--toggle .stacklar-inline { display: inline-flex; align-items: center; gap: 8px; } .stacklar-switch { position: relative; width: 42px; height: 24px; flex: 0 0 42px; display: inline-block; } .stacklar-switch > input[type="checkbox"] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; z-index: 1; } .stacklar-switch > .stacklar-switch-ui { position: absolute; inset: 0; border-radius: 999px; background: #cbd5e1; transition: background-color .2s ease; z-index: 0; pointer-events: none; } .stacklar-switch > .stacklar-switch-ui::after { content: ''; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #ffffff; box-shadow: 0 1px 2px rgba(0,0,0,.25); transition: left .2s ease; pointer-events: none; } .stacklar-switch > input[type="checkbox"]:checked + .stacklar-switch-ui { background: var(--stacklar-switch-on, #111111); } .stacklar-switch > input[type="checkbox"]:checked + .stacklar-switch-ui::after { left: 21px; } .stacklar-field--range .stacklar-range-wrap { gap: 10px; } /* Scope native CSS so Ion styles stay isolated (editor remains native) */ .stacklar-field--range input[type="range"]:not([data-ion="1"]) { width: 100%; --stacklar-range-bg: #e5e7eb; --stacklar-range-color: #111111; --stacklar-range-fill: 0%; appearance: none; -webkit-appearance: none; height: 6px; border-radius: 999px; background: linear-gradient(var(--stacklar-range-color), var(--stacklar-range-color)) no-repeat, var(--stacklar-range-bg); background-size: var(--stacklar-range-fill) 100%; outline: none; } /* When Ion is used, the slider lives in .irs; ensure it fills the input column */ .stacklar-field--range .stacklar-range-wrap .irs { flex: 1 1 auto; width: 100%; min-width: 0; } .stacklar-field--range input[type="range"]:not([data-ion="1"])::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; border-radius: 50%; background: var(--stacklar-range-color); border: 2px solid #fff; box-shadow: 0 1px 2px rgba(0,0,0,.25); cursor: pointer; margin-top: -6px; } .stacklar-field--range input[type="range"]:not([data-ion="1"])::-webkit-slider-runnable-track { background: transparent; height: 6px; border-radius: 999px; } .stacklar-field--range input[type="range"]:not([data-ion="1"])::-moz-range-track { background: var(--stacklar-range-bg); height: 6px; border-radius: 999px; } .stacklar-field--range input[type="range"]:not([data-ion="1"])::-moz-range-progress { background: var(--stacklar-range-color); height: 6px; border-radius: 999px; } .stacklar-field--range input[type="range"]:not([data-ion="1"])::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: var(--stacklar-range-color); border: 2px solid #fff; box-shadow: 0 1px 2px rgba(0,0,0,.25); cursor: pointer; } .stacklar-field--range .stacklar-range-value { min-width: 60px; text-align: right; color: #334155; font-size: 12px; } .stacklar-field--image-select .stacklar-image-select-wrap .image_picker_image { border-radius: 6px; } .stacklar-field--image-select .stacklar-image-select-wrap ul.thumbnails.image_picker_selector { display: flex; flex-wrap: wrap; } /* Repeater group */ .stacklar-repeater { border: 1px solid #e5e7eb; border-radius: 8px; padding: 12px; background: #fff; margin-bottom: 12px; --stacklar-repeater-add-bg: #ededed; --stacklar-repeater-add-color: #111111; --stacklar-repeater-add-border: #cfcfcf; --stacklar-repeater-add-border-width: 1px; --stacklar-repeater-add-border-style: solid; --stacklar-repeater-add-radius: 6px; --stacklar-repeater-add-padding: 8px 12px; --stacklar-repeater-remove-bg: #fff1f2; --stacklar-repeater-remove-color: #b91c1c; --stacklar-repeater-remove-border: #fecaca; --stacklar-repeater-remove-border-width: 1px; --stacklar-repeater-remove-border-style: solid; --stacklar-repeater-remove-radius: 6px; --stacklar-repeater-remove-padding: 6px 10px; } .stacklar-repeater-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; .stacklar-repeater-title { font-weight: 600; color: #334155; } } .stacklar-repeater-list { display: grid; gap: 10px; } .stacklar-repeater-row { border: 1px dashed #cbd5e1; border-radius: 6px; padding: 10px; background: #f8fafc; position: relative; } .stacklar-repeater-row.is-dragging { opacity: .75; border-style: solid; } .stacklar-repeater-row-handle { position: absolute; left: 6px; top: 6px; width: 18px; height: 18px; display: inline-flex; align-items: center; justify-content: center; cursor: grab; color: #64748b; user-select: none; } .stacklar-repeater-row-actions { display: flex; gap: 8px; margin-top: 8px; justify-content: flex-end; .stacklar-btn { appearance: none; border-width: 1px; border-style: solid; border-color: #cbd5e1; border-radius: 6px; background: #fff; color: #0f172a; padding: 6px 10px; font-size: 13px; cursor: pointer; &:hover { background: #f1f5f9; } &:disabled { opacity: .6; cursor: not-allowed; } } .stacklar-btn--remove { color: var(--stacklar-repeater-remove-color, #b91c1c); border-color: var(--stacklar-repeater-remove-border, #fecaca); border-width: var(--stacklar-repeater-remove-border-width, 1px); border-style: var(--stacklar-repeater-remove-border-style, solid); border-radius: var(--stacklar-repeater-remove-radius, 6px); background: var(--stacklar-repeater-remove-bg, #fff1f2); padding: var(--stacklar-repeater-remove-padding, 6px 10px); &:hover { background: #ffe4e6; } } } .stacklar-repeater-row-actions--left { justify-content: flex-start; } .stacklar-repeater-row-actions--center { justify-content: center; } .stacklar-repeater-row-actions--right { justify-content: flex-end; } .stacklar-repeater-row-actions--top-left, .stacklar-repeater-row-actions--top-right { position: absolute; top: 8px; margin-top: 0; } .stacklar-repeater-row-actions--top-left { left: 8px; } .stacklar-repeater-row-actions--top-right { right: 8px; } .stacklar-repeater-footer { margin-top: 10px; display: flex; justify-content: flex-end; .stacklar-btn { appearance: none; border-color: var(--stacklar-repeater-add-border, #cfcfcf); border-width: var(--stacklar-repeater-add-border-width, 1px); border-style: var(--stacklar-repeater-add-border-style, solid); border-radius: var(--stacklar-repeater-add-radius, 6px); background: var(--stacklar-repeater-add-bg, #ededed); color: var(--stacklar-repeater-add-color, #111111); padding: var(--stacklar-repeater-add-padding, 8px 12px); font-size: 13px; cursor: pointer; &:hover { background: #cfcfcf; } &:disabled { opacity: .6; cursor: not-allowed; } } } .stacklar-repeater-footer--left { justify-content: flex-start; } .stacklar-repeater-footer--center { justify-content: center; } .stacklar-repeater-footer--right { justify-content: flex-end; } .stacklar-repeater-footer--full .stacklar-btn { width: 100%; } .stacklar-repeater-footer--top { margin-top: 0; margin-bottom: 10px; } .stacklar-repeater-row--preview { margin-top: 8px; min-height: 40px; } /* Editor hint */ .stacklar-repeater--editor .stacklar-repeater-template-editor-note { margin-bottom: 8px; font-size: 12px; color: #475569; } // Image Upload styles /* Frontend: hide all steps and show only the active one */ body:not(.block-editor-page) .stacklar.is-multistep .stacklar-step { display: none; } body:not(.block-editor-page) .stacklar.is-multistep .stacklar-step.is-active { display: block; } /* Editor: always show steps for drag-and-drop */ .block-editor-page .stacklar.is-multistep .stacklar-step { display: block; } /* Hide the default submit button for multi-step forms */ body:not(.block-editor-page) .stacklar.is-multistep .stacklar-submit-wrap { display: none !important; } .stacklar-progress { --stacklar-progress-bg: #e2e8f0; --stacklar-progress-color: #111111; --stacklar-progress-height: 6px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; position: relative; width: 100%; background: transparent; margin-bottom: 16px; &::before { content: ""; grid-column: 1; grid-row: 1; width: 100%; height: var(--stacklar-progress-height); background: var(--stacklar-progress-bg); border-radius: 9999px; } &__bar { grid-column: 1; grid-row: 1; z-index: 1; height: var(--stacklar-progress-height); width: 0%; background: var(--stacklar-progress-color); border-radius: 9999px; transition: width .25s ease; } &__percent { grid-column: 2; grid-row: 1; min-width: 3ch; color: #475569; font-size: 12px; line-height: 1; text-align: right; white-space: nowrap; } } .stacklar-field-error { outline: 2px solid #ef4444; outline-offset: 1px; } .stacklar-field--image-upload { .stacklar-input-wrap { width: 100%; } .stacklar-image-upload-area { width: 100%; box-sizing: border-box; } .stacklar-image-upload-dropzone { width: 100%; box-sizing: border-box; border: 2px dashed #ccc; border-radius: 8px; padding: 40px 20px; text-align: center; background-color: #fafafa; cursor: pointer; min-height: 120px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; transition: all 0.3s ease; &:hover { background-color: #ededed; border-color: #111111; } &.drag-active { background-color: #d6d6d6; border-color: #111111; border-style: solid; } } .stacklar-upload-icon { font-size: 48px; opacity: 0.5; font-weight: bold; line-height: 1; color: #666; } .stacklar-upload-text { font-size: 16px; font-weight: 500; margin: 0; color: #333; } .stacklar-upload-info { font-size: 14px; opacity: 0.7; margin: 0; color: #666; } .stacklar-upload-button { margin-top: 8px; padding: 8px 16px; background-color: #111111; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 14px; transition: background-color 0.2s ease; &:hover { background-color: #000000; } &:disabled { opacity: 0.6; cursor: not-allowed; } } .stacklar-image-preview-container { margin-top: 15px; display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 10px; } .stacklar-image-preview-item { position: relative; background-color: #f0f0f0; border-radius: 8px; overflow: hidden; aspect-ratio: 1/1; transition: transform 0.2s ease, box-shadow 0.2s ease; img { width: 100%; height: 100%; object-fit: cover; transition: opacity 0.2s ease; } .stacklar-remove-image { position: absolute; padding:4px; background: black; border: none; border-radius: 50%; color: #fff; cursor: pointer; font-size: 12px; font-weight: 700; height: 25px; opacity: 1; right: 5px; top: 5px; transition: all .2s ease; width: 25px; &:before { content: '\00d7'; font-size: 14px; } } .stacklar-image-name { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(transparent, rgba(0, 0, 0, 0.8)); color: white; padding: 8px 4px 4px; font-size: 10px; font-weight: 500; text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } } // Responsive adjustments @media (max-width: 768px) { .stacklar-image-preview-container { grid-template-columns: repeat(auto-fill, minmax(80px, 1fr)); gap: 8px; } .stacklar-image-preview-item { .stacklar-remove-image { opacity: 1; top: 2px; right: 2px; width: 18px; height: 18px; &:before { font-size: 12px; } } .stacklar-image-name { font-size: 9px; padding: 6px 2px 2px; } } } } /* Base button styles for prev/next/submit inside steps */ .stacklar-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; font: inherit; line-height: 1.2; cursor: pointer; border: 1px solid transparent; border-radius: 6px; padding: 8px 12px; text-decoration: none; transition: background-color .15s ease, color .15s ease, border-color .15s ease, opacity .15s ease; } /* Default CSS variables (override via form submit settings to align colours) */ :root { --stacklar-btn-bg: #111111; --stacklar-btn-color: #ffffff; --stacklar-btn-border: #111111; --stacklar-btn-bg-hover: #111111; --stacklar-btn-color-hover: #ffffff; --stacklar-btn-border-hover: #111111; } .stacklar-btn--primary { background: var(--stacklar-btn-bg); color: var(--stacklar-btn-color); border-color: var(--stacklar-btn-border); } .stacklar-btn--primary:hover { background: var(--stacklar-btn-bg-hover); color: var(--stacklar-btn-color-hover); border-color: var(--stacklar-btn-border-hover); } .stacklar-btn--ghost { background: transparent; color: var(--stacklar-btn-bg); border-color: var(--stacklar-btn-border); } .stacklar-btn--ghost:hover { background: rgba(17, 17, 17, 0.06); } /* Hide the default submit button when multistep is enabled */ body:not(.block-editor-page) .stacklar.is-multistep .stacklar-submit-wrap { display: none !important; } /* Multistep renders only the active step on the frontend */ body:not(.block-editor-page) .stacklar.is-multistep .stacklar-step { display: none; } body:not(.block-editor-page) .stacklar.is-multistep .stacklar-step.is-active { display: block; } /* Editor always shows every step */ .block-editor-page .stacklar.is-multistep .stacklar-step { display: block; }