.select_singleframe,
.select_multiframe,
.select_tabmframe {
    position: relative;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.select_multidropdown:empty:not(:focus):before {
    font: inherit;
    content: attr(empty-text);
    display: inline-block;
    margin: 6px 6px 4px 0px;
    padding: 0px 5px 3px 6px;
    /*background-color: #ffffff;*/
    color: inherit;
    opacity: 0.8;
    line-height: 13px;
    max-height: 34px;
}

.select_singledropdown:empty:not(:focus):before {
    font: inherit;
    content: attr(empty-text);
    display: inline-block;
    margin: 0px 6px 3px 0px;
    padding: 3px 5px 3px 0px;
    /*background-color: #ffffff;*/
    color: inherit;
    opacity: 0.8;
    line-height: 13px;
    max-height: 34px;
}

.select_taginput:first-child:nth-last-child(3):empty:not(:focus):before {
    content: attr(empty-text);
    display: block;
    /*background-color: #ffffff;*/
    color: inherit;
    opacity: 0.8;
    line-height: 13px;
}

.select_inputframe,
.select_inputs {
    display: inline-block;
    width: 100%;
    min-height: 32px;
    padding: 6px 10px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    background-color: #fff;
    color: #374151;
    font-size: 13px;
    line-height: 1.4;
    cursor: text;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.select_inputframe:hover,
.select_inputs:hover {
    border-color: #9ca3af;
}

.select_inputframe:focus,
.select_inputs:focus {
    outline: none;
    border-color: var(--accent1, #0073aa);
    box-shadow: 0 0 0 2px rgba(0, 115, 170, 0.15);
}


.select_inputframe::-webkit-input-placeholder,
.select_inputs::-webkit-input-placeholder {
    /* Chrome/Opera/Safari */
    color: inherit;
    opacity: 0.8;
}

.select_inputframe::-moz-placeholder,
.select_inputs::-moz-placeholder {
    /* Firefox 19+ */
    color: inherit;
    opacity: 0.8;
}

.select_inputframe:-ms-input-placeholder,
.select_inputs:-ms-input-placeholder {
    /* IE 10+ */
    color: inherit;
    opacity: 0.8;
}

.select_inputframe:-moz-placeholder,
.select_inputs:-moz-placeholder {
    /* Firefox 18- */
    color: inherit;
    opacity: 0.8;
}

.select_inputsframe {
    display: inline-block;
    width: 80px;
    border: 1px solid #aaa !important;
    border-radius: 4px;
    box-shadow: none !important;
    color: #aaa;
    border-color: #aaa;
    border-width: 1px;
    border-style: solid;
    margin: 0px !important;
    padding-left: 10px;
    padding-right: 10px;
    cursor: text;
    min-height: 34px;
    /*vertical-align: middle !important;*/
}

.select_inputsframe::-webkit-input-placeholder,
.select_inputs::-webkit-input-placeholder {
    /* Chrome/Opera/Safari */
    color: inherit;
    opacity: 0.8;
}

.select_inputsframe::-moz-placeholder,
.select_inputs::-moz-placeholder {
    /* Firefox 19+ */
    color: inherit;
    opacity: 0.8;
}

.select_inputsframe:-ms-input-placeholder,
.select_inputs:-ms-input-placeholder {
    /* IE 10+ */
    color: inherit;
    opacity: 0.8;
}

.select_inputsframe:-moz-placeholder,
.select_inputs:-moz-placeholder {
    /* Firefox 18- */
    color: inherit;
    opacity: 0.8;
}


.select_multidropdown {
    display: inline-block;
    position: relative;
    width: 100%;
    min-height: 32px;
    border: 1px solid #d1d5db;
    box-sizing: border-box;
    padding: 5px 28px 5px 10px;
    text-overflow: ellipsis;
    border-radius: 8px;
    background: #fff;
    font-size: 13px;
    color: #333;
    cursor: pointer;
    transition: border-color 0.15s;
}

.select_multidropdown:hover {
    border-color: #9ca3af;
}

.select_multidropdown:after {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    content: "\25bc";
    color: #9ca3af;
    font-size: 10px;
    float: none;
}

.select_emaildropdown {
    display: inline-block;
    /*min-width: 150px;*/
    width: 100%;
    min-height: 32px;
    border-color: #aaa;
    border-width: 1px;
    border-style: solid;
    /*padding:1.9px;*/
    cursor: text;
    /*vertical-align: middle !important;*/
}


.select_count {
    display: none;
}

.clearvertical {
    transform: rotate(-90deg);
    transform-origin: right, top;
    -ms-transform: rotate(-90deg);
    -ms-transform-origin: right, top;
    -webkit-transform: rotate(-90deg);
    -webkit-transform-origin: right, top;
    position: absolute;
    color: #ed217c;
}

.select_clear {
    /*transform: rotate(270deg);
	transform-origin: left top 0;*/
    float: right;
    background-color: var(--accent1);
    color: #ffffff;
    margin: 3px 5px 3px 0px;
    padding: 3px 5px 3px 5px;
    border-color: var(--accent1);
    border-style: solid;
    border-width: 1px;
    border-radius: 3px;
    line-height: 13px;
    cursor: pointer;
}

.select_clear:hover {
    background-color: #f0f0f0;
    color: #000000;
    border-color: #aaa;
}

.select_singleclear {
    display: block;
    background-color: #f0f0f0;
    color: #000000;
    margin: 3px 0px 3px 0px;
    padding: 3px 5px 3px 5px;
    border-color: #aaa;
    border-style: solid;
    border-width: 1px;
    border-radius: 3px;
    line-height: 16px;
    overflow: hidden;
    cursor: pointer;
    -webkit-touch-callout: none;
    /* iOS Safari */
    -webkit-user-select: none;
    /* Safari */
    -khtml-user-select: none;
    /* Konqueror HTML */
    -moz-user-select: none;
    /* Old versions of Firefox */
    -ms-user-select: none;
    /* Internet Explorer/Edge */
    user-select: none;
    /* Non-prefixed version, currently
                                      supported by Chrome, Edge, Opera and Firefox */
}

.select_singleclear:hover {
    background-color: var(--accent1);
    color: #ffffff;
}

.select_tagclear {
    float: right;
    background-color: var(--accent1);
    color: #ffffff;
    margin: 6px 3px 3px 3px;
    padding: 2px 5px 3px 5px;
    border-color: var(--accent1);
    border-style: solid;
    border-width: 1px;
    border-radius: 3px;
    line-height: 13px;
    cursor: pointer;
}

.select_tagclear:hover {
    background-color: #ffffff;
    color: #000000;
    border-color: #aaa;
}


.select_search {
    display: block;
    margin: 3px 0px 3px 0px;
    padding: 3px 5px 3px 5px;
    color: #ffffff;
    background-color: var(--accent1);
    border-style: solid;
    border-width: 1px;
    border-radius: 3px;
    line-height: 13px;
    min-height: 13px;
}

.select_search br {
    display: none;
}

.select_search:focus {
    background-color: var(--accent1);
    color: #ffffff;
    padding-left: 5px;
    padding-right: 5px;
    line-height: 13px;
}

.select_esearch {
    display: inline-block;
    margin: 5px 3px 4px 2px;
    padding: 3px 5px 3px 6px;
    border-color: transparent;
    border-style: solid;
    border-width: 1px;
    border-radius: 3px;
    line-height: 13px;
    max-width: 100%;
}

.select_esearch br {
    display: none;
}

.select_esearch:focus {
    background-color: var(--accent1);
    color: #ffffff;
    padding-left: 5px;
    padding-right: 5px;
    line-height: 13px;
}


.select_dropdowncontent {
    display: inline-block;
    margin: 6px 2px 3px 3px;
    padding: 3px 5px 3px 5px;
    border-color: #aaa;
    border-style: solid;
    border-width: 1px;
    border-radius: 3px;
    background-color: #ffffff;
    color: #333;
    line-height: 13px;
    max-width: 100%;
}

.select_value {
    max-width: 100%;
    display: inline-block;
    word-wrap: break-word;
    user-select: none;
    /* supported by Chrome and Opera */
    -webkit-user-select: none;
    /* Safari */
    -khtml-user-select: none;
    /* Konqueror HTML */
    -moz-user-select: none;
    /* Firefox */
    -ms-user-select: none;
    /* Internet Explorer/Edge */
}

.select_multidelete {
    display: inline-block;
    margin-left: 5px;
    margin-right: 0px;
}

.select_multidelete:hover {
    cursor: pointer;
    color: #000000;
}

.select_dropdown {
    visibility: visible;
    display: block;
    min-height: 40px;
    max-height: 200px;
    overflow-y: auto;
    background-color: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    margin-top: 6px;
    padding: 4px;
    z-index: 28000;
    position: absolute;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
    width: 500px;
}

.select_dropdown::-webkit-scrollbar-track {
    background: #f3f4f6;
    border-radius: 4px;
    margin: 4px 0;
}

.select_dropdown::-webkit-scrollbar {
    width: 8px;
}

.select_dropdown::-webkit-scrollbar-thumb {
    background: #d1d5db;
    border-radius: 4px;
}

.select_dropdown::-webkit-scrollbar-button {
    display: none;
}


.select_dropdownalt {
    position: absolute;
    visibility: visible;
    display: block;
    width: inherit;
    min-height: 40px;
    max-height: 150px;
    overflow-y: auto;
    background-color: #ffffff;
    border-color: #aaa;
    border-width: 0px 1px 1px 1px;
    border-style: solid;
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
    padding: 2px;
    /*float: right;*/
    z-index: 3;
    box-shadow: 0 0 10px 0px rgba(0, 0, 0, 0.4);
    margin-left: auto;
    margin-right: auto;
    width: 500px;
}

.select_dropdownalt::-webkit-scrollbar-track {
    margin-top: 2px;
    margin-bottom: 2px;
    padding: 2px 0;
    border-radius: 10px;
    cursor: pointer;
}

.select_dropdownalt::-webkit-scrollbar {
    width: 15px;
    margin-right: 2px;
}

.select_dropdownalt::-webkit-scrollbar-thumb {
    height: 6px;
    border: 4px solid rgba(0, 0, 0, 0);
    background-clip: padding-box;
    border-radius: 7px;
    -webkit-border-radius: 7px;
    background-color: rgba(0, 0, 0, 0.15);
    -webkit-box-shadow: inset -1px -1px 0px rgba(0, 0, 0, 0.05), inset 1px 1px 0px rgba(0, 0, 0, 0.05);
    box-shadow: inset -1px -1px 0px rgba(0, 0, 0, 0.05), inset 1px 1px 0px rgba(0, 0, 0, 0.05);
}

.select_dropdownalt::-webkit-scrollbar-button {
    display: none;
}

.select_singledropdown:after {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    content: "\25bc";
    color: #9ca3af;
    font-size: 10px;
}

.select_dropdownitem {
    display: block;
    margin: 2px 0;
    padding: 8px 12px;
    border: none;
    border-radius: 6px;
    line-height: 1.4;
    font-size: 13px;
    color: #444;
    cursor: pointer;
    transition: background 0.1s;
}

.select_dropdownitem:hover {
    background-color: #f5f5f5;
    color: #333;
}

.select_dropdownitem_selected {
    display: block;
    margin: 2px 0;
    padding: 8px 12px;
    border: none;
    border-radius: 6px;
    line-height: 1.4;
    font-size: 13px;
    color: #9ca3af;
    font-style: italic;
    pointer-events: none;
}

.select_singledropdown {
    display: inline-block;
    position: relative;
    width: 100%;
    min-height: 34px;
    border: 1px solid #d1d5db;
    box-sizing: border-box;
    padding: 6px 28px 6px 10px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    margin: 0;
    border-radius: 8px;
    background: #fff;
    font-size: 13px;
    color: #333;
    cursor: pointer;
    transition: border-color 0.15s;
}

.select_singledropdown:hover {
    border-color: #9ca3af;
}

.select_filterdropdown:empty:not(:focus):before {
    content: attr(empty-text);
    color: inherit;
    opacity: 0.6;
}

.select_filterdropdown {
    display: inline-block;
    /*width: 50px;*/
    /*min-width: 150px;*/
    width: 200px;
    min-height: 30px;
    border-color: #aaa;
    border-width: 1px;
    border-style: solid;
    background-color: #efefef;
    color: #000000;

    -moz-box-sizing: border-box;
    box-sizing: border-box;
    padding-top: 2px;
    padding-bottom: 2px;
    padding-left: 5px;
    padding-right: 1px;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin: 0px;
    cursor: text;
    border-radius: 3px;
    border-top-left-radius: 0px;
    cursor: pointer;
    overflow: hidden;
}

.select_filterframe>.select_dropdown {
    max-width: 200px;
}

.select_singlesearch {
    display: block;
    margin: 4px 4px 6px 4px;
    padding: 6px 10px;
    color: #333;
    background-color: #f5f5f5;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    line-height: 1.4;
    font-size: 13px;
    min-height: 13px;
    outline: none;
    transition: border-color 0.15s;
}

.select_singlesearch br {
    display: none;
}

.select_singlesearch:focus {
    background-color: #fff;
    color: #333;
    border-color: var(--accent1);
}

.select_tabmcontainer {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    user-select: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    margin-left: 2px;
    margin-right: 2px;
}

.select_tabmdropdown {
    display: inline-block;
    position: relative;
    min-height: 15px;
    line-height: 20px;
    border: 1px solid #e5e7eb;
    box-sizing: border-box;
    padding: 6px 26px 6px 10px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    margin: 0;
    text-align: center;
    border-radius: 8px;
    background: #fff;
    font-size: 14px;
    font-weight: 500;
    color: #333;
    cursor: pointer;
    flex: 1 1 auto;
    min-width: 0;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.select_tabmdropdown:hover {
    border-color: #d1d5db;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.select_tabmdropdown:after {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    content: "\25bc";
    color: #9ca3af;
    font-size: 10px;
}

.select_tagbox {
    display: inline-block;
    width: 100%;
    min-height: 32px;
    border-color: #aaa;
    border-width: 1px;
    border-style: solid;
    cursor: text;
    cursor: text;
    border-radius: 2px;
    /*vertical-align: middle !important;*/
}

.select_clearbox {
    display: none;
    padding: 2px;
}

.select_tagframe:hover .select_clearbox {
    display: inline-block;
}

.select_taginput {
    display: inline-block;
    margin: 5px 3px 4px 2px;
    padding: 3px 5px 3px 6px;
    border-color: transparent;
    border-style: solid;
    border-width: 1px;
    border-radius: 3px;
    line-height: 13px;
    max-width: 100%;
}

.select_taginput br {
    display: none;
}

.select_taginput:focus {
    background-color: var(--accent1);
    color: #ffffff;
    padding-left: 5px;
    padding-right: 5px;
}

.select_tagvalidation {
    display: none;
    margin: 3px 5px 3px 0px;
    padding: 3px 5px 3px 5px;
    background-color: #ffffff;
    color: #ff3300;
    line-height: 13px;
    opacity: 0.1;
    /*transition: opacity 1s; */
}

.select_tagvalidation_fade {
    display: inline-block;
    background-color: #000000;
    opacity: 0;
}

.select_tabmleft {
    flex-shrink: 0;
    color: #9ca3af;
    font-size: 22px;
    cursor: pointer;
    transition: color 0.15s;
    padding: 2px;
}

.select_tabmleft:hover {
    color: var(--accent1);
}

.select_tabmleftalt {
    display: inline-block !important;
    flex-shrink: 0;
    color: #d1d5db;
    font-size: 22px;
    cursor: pointer;
    padding: 2px;
}

.select_tabmright {
    display: inline-block !important;
    flex-shrink: 0;
    color: #9ca3af;
    font-size: 22px;
    cursor: pointer;
    transition: color 0.15s;
    padding: 2px;
}

.select_tabmright:hover {
    color: var(--accent1);
}

.select_tabmrightalt {
    flex-shrink: 0;
    color: #d1d5db;
    font-size: 22px;
    cursor: pointer;
    padding: 2px;
}

.select_calmleft {
    display: inline-block !important;
    flex-shrink: 0;
    color: #9ca3af;
    font-size: 22px;
    cursor: pointer;
    transition: color 0.15s;
    padding: 2px;
}

.select_calmleft:hover {
    color: var(--accent1);
}

.select_calmright {
    display: inline-block !important;
    flex-shrink: 0;
    color: #9ca3af;
    font-size: 22px;
    cursor: pointer;
    transition: color 0.15s;
    padding: 2px;
}

.select_calmright:hover {
    color: var(--accent1);
}

.select_catoption {
    display: inline-block;
    margin: 6px 2px 3px 3px;
    padding: 3px 0px 3px 0px;
    text-align: center;
    border-color: #aaa;
    border-style: solid;
    border-width: 1px;
    border-radius: 2px;
    background-color: #ffffff;
    color: #333;
    line-height: 13px;
    cursor: pointer;
    -webkit-touch-callout: none;
    /* iOS Safari */
    -webkit-user-select: none;
    /* Safari */
    -khtml-user-select: none;
    /* Konqueror HTML */
    -moz-user-select: none;
    /* Old versions of Firefox */
    -ms-user-select: none;
    /* Internet Explorer/Edge */
    user-select: none;
    /* Non-prefixed version, currently
                                      supported by Chrome, Edge, Opera and Firefox */
}

.select_scatoption {
    display: inline-block;
    margin: 6px 2px 3px 3px;
    padding: 3px 0px 3px 0px;
    text-align: center;
    border-color: var(--accent1);
    border-style: solid;
    border-width: 1px;
    border-radius: 2px;
    background-color: var(--accent1);
    color: #ffffff;
    line-height: 13px;
    cursor: pointer;
    -webkit-touch-callout: none;
    /* iOS Safari */
    -webkit-user-select: none;
    /* Safari */
    -khtml-user-select: none;
    /* Konqueror HTML */
    -moz-user-select: none;
    /* Old versions of Firefox */
    -ms-user-select: none;
    /* Internet Explorer/Edge */
    user-select: none;
    /* Non-prefixed version, currently
                                      supported by Chrome, Edge, Opera and Firefox */
}

/*Filter box*/
.select_valuetext {
    display: inline-block;
    max-width: 80%;
    padding-left: 5px;
    overflow-wrap: break-word;
}

.select_vcbtrue,
.select_vcbfalse {
    display: inline-block;
    vertical-align: top;
}

/*Date Box*/
.select_dateframe {
    display: inline-flex !important;
    align-items: center;
    white-space: nowrap;
    position: relative;
}

.select_date {
    display: inline-block;
    position: relative;
    min-width: 100px;
    border: 1px solid #e5e7eb;
    box-sizing: border-box;
    padding: 6px 26px 6px 10px;
    line-height: 20px;
    text-align: center;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    border-radius: 8px;
    background: #fff;
    font-size: 14px;
    font-weight: 500;
    color: #333;
    cursor: pointer;
    flex: 0 1 160px;
    transition: border-color 0.15s, box-shadow 0.15s;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.select_date:hover {
    border-color: #d1d5db;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.select_date::after {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    content: "\25bc";
    color: #9ca3af;
    font-size: 10px;
}

.select_datedropdown {
    display: block;
    width: 250px;
    min-height: 40px;
    max-height: 400px;
    overflow-x: hidden;
    overflow-y: auto;
    box-sizing: border-box;
    background-color: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 10px;
    z-index: 28000;
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 4px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
    user-select: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

.select_months {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
    text-align: center;
    user-select: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

.select_smonth {
    display: block;
    background-color: var(--accent1);
    color: #ffffff;
    border: 1px solid var(--accent1);
    border-radius: 6px;
    padding: 5px 3px;
    text-align: center;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
    transition: opacity 0.15s;
}

.select_smonth:hover {
    opacity: 0.85;
}

.select_month {
    display: block;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 5px 3px;
    text-align: center;
    font-size: 13px;
    cursor: pointer;
    color: #444;
    background: #fff;
    user-select: none;
    -webkit-user-select: none;
    transition: all 0.15s;
}

.select_month:hover {
    background-color: var(--accent1);
    color: #ffffff;
    border-color: var(--accent1);
}

.select_lyear,
.select_ryear {
    font-size: 20px;
    cursor: pointer;
    color: #666;
    transition: color 0.15s;
}

.select_lyear:hover,
.select_ryear:hover {
    color: var(--accent1);
}

.select_years {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 8px 10px;
    user-select: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

.select_year {
    display: inline-block;
    font-size: 18px;
    font-weight: 600;
    color: #333;
}

.select_button {
    grid-column: span 2;
    margin-top: 8px;
    background-color: var(--accent1);
    border: 1px solid var(--accent1);
    color: #ffffff;
    border-radius: 6px;
    padding: 6px 12px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: opacity 0.15s;
}

.select_button:hover {
    opacity: 0.85;
}

/* Day grid for week/day view date picker */
.select_days {
    display: none;
    padding: 6px 0 2px;
    border-top: 1px solid #f0f0f0;
    margin-top: 6px;
}

.select_actions {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 6px;
    padding-top: 6px;
    border-top: 1px solid #f0f0f0;
    margin-top: 6px;
}

.select_actions .select_button {
    grid-column: span 1;
    margin-top: 0;
}

.select_daygrid_header {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
    margin-bottom: 3px;
}

.select_daygrid_headcell {
    text-align: center;
    font-size: 10px;
    font-weight: 600;
    color: #aaa;
    padding: 2px 0;
    text-transform: uppercase;
}

.select_daygrid_row {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
}

.select_daygrid_cell {
    width: 30px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    border-radius: 6px;
    cursor: pointer;
    color: #333;
    background: #fff;
    transition: all 0.12s;
}

.select_daygrid_cell:hover {
    background-color: var(--accent1);
    color: #fff;
}

/* Overflow days from previous/next month */
.select_daygrid_overflow {
    color: #ccc;
}

.select_daygrid_overflow:hover {
    color: #fff;
}

/* Today ring */
.select_daygrid_today {
    font-weight: 700;
    box-shadow: inset 0 0 0 1.5px var(--accent1);
    color: var(--accent1);
}

.select_daygrid_today.select_daygrid_overflow {
    color: var(--accent1);
    opacity: 0.6;
}

/* Active / selected day */
.select_daygrid_active {
    background-color: var(--accent1);
    color: #fff;
}

.select_daygrid_active.select_daygrid_today {
    color: #fff;
    box-shadow: inset 0 0 0 1.5px #fff;
}

/* Week range: connected highlight band */
.select_daygrid_rangestart {
    border-radius: 6px 0 0 6px;
}

.select_daygrid_rangemid {
    border-radius: 0;
}

.select_daygrid_rangeend {
    border-radius: 0 6px 6px 0;
}

/* Overflow days within the active range */
.select_daygrid_overflow.select_daygrid_active {
    background-color: var(--accent1);
    color: #fff;
    opacity: 0.7;
}

/*select colour picker*/
.select_cp_dnav {
    width: 100%;
    text-align: center;
    border-bottom: 1px solid #0000001a;
    margin-bottom: 20px;
}

.select_cp_selframe {
    display: block;
    text-align: center;
    margin-bottom: 20px;
}

.select_cp_dropdown {
    position: absolute;
    left: 0;
    visibility: visible;
    display: block;
    width: inherit;
    min-height: 40px;
    width: 240px;
    overflow-y: auto;
    background-color: #ffffff;
    border-color: rgb(0 0 0 / 40%);
    border-width: 1px 1px 1px 1px;
    border-style: solid;
    border-top-right-radius: 4px;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
    margin-top: 5px;
    padding: 5px;
    /* float: right; */
    z-index: 3;
    position: absolute;
    box-shadow: 0 0 5px 0px rgb(0 0 0 / 40%);
    margin-left: auto;
    margin-right: auto;
    -webkit-touch-callout: none;
    /* iOS Safari */
    -webkit-user-select: none;
    /* Safari */
    -khtml-user-select: none;
    /* Konqueror HTML */
    -moz-user-select: none;
    /* Old versions of Firefox */
    -ms-user-select: none;
    /* Internet Explorer/Edge */
    user-select: none;
    /* Non-prefixed version, currently
                                      supported by Chrome, Edge, Opera and Firefox */
}

.select_cp {
    display: inline-block;
    border-color: rgb(0 0 0 / 40%);
    border-width: 0px;
    border-style: solid;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    padding-top: 0px;
    padding-bottom: 0px;
    padding-right: 0px;
    cursor: text;
    line-height: 10px;
    text-align: center;
    vertical-align: middle;
    text-overflow: ellipsis;
    border-radius: 2px;
    cursor: pointer;
    -webkit-touch-callout: none;
    /* iOS Safari */
    -webkit-user-select: none;
    /* Safari */
    -khtml-user-select: none;
    /* Konqueror HTML */
    -moz-user-select: none;
    /* Old versions of Firefox */
    -ms-user-select: none;
    /* Internet Explorer/Edge */
    user-select: none;
    /* Non-prefixed version, currently
                                      supported by Chrome, Edge, Opera and Firefox */
}

.select_colpicframe {
    position: relative;
    padding: 0px;
    margin: 0px;
}

.select_cp_frame {
    display: inline-block;
    vertical-align: middle;
    padding: 5px;
    border-radius: 3px;
}

.select_cp_frame:hover {
    background-color: #000000;
    color: #ffffff;
}

.select_cp_dframe {
    display: inline-block;
    vertical-align: middle;
    padding: 5px 2px;
    border-radius: 3px;
}

.select_cp_dframe:hover {
    background-color: #000000;
    color: #ffffff;
}

.select_cp_open {
    display: inline-block;
    height: 18px;
    line-height: 18px;
    vertical-align: middle;
    border-radius: 2px;
}


.select_cp_chosencol {
    display: block;
    width: 15px;
    margin-left: 0px;
    height: 5px;
    margin-top: 2px;
}



.select_cp_icon {
    display: block;
    line-height: 13px;
}

.select_cp_selected {
    display: inline-block;
    margin: 0px 0px 0px 0px;
    height: 30px;
    width: 25px;
    padding: 2px 2px;
    background-color: #bbb;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
    /*border-radius: 50%;*/
    vertical-align: middle;
}

.select_cp_selinput {
    display: inline-block;
    width: 170px;
    margin: 0px 0px 0px 0px;
    padding: 2px 2px;
    background-color: #efefef;
    vertical-align: middle;
}

.select_cp_save {
    display: inline-block;
    margin: 0px 0px 0px 0px;
    padding: 2px 5px;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
    background-color: #efefef;
    vertical-align: middle;
    cursor: pointer;
}

.select_cp_save:hover {
    background-color: #0000001a;
    color: #000000;
}

.select_cp_check {
    display: inline-block;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
    margin: 0px 0px 0px 0px;
    padding: 2px 2px;
    background-color: #efefef;
    vertical-align: middle;
}

.select_cpbutton {
    display: inline-block;
    border: 0px solid #0000001a;
    border-top-left-radius: 2px;
    border-top-right-radius: 2px;
    margin: 0px 2px 0px 2px;
    padding: 0px 6px;
    cursor: pointer;
    color: #000000;
    background: 0000001a;
}

.select_cpbutton:hover {
    background-color: #0000001a;
}

.select_scpbutton {
    display: inline-block;
    border: 0px solid #0000001a;
    border-top-left-radius: 2px;
    border-top-right-radius: 2px;
    margin: 0px 2px 0px 2px;
    padding: 0px 6px;
    cursor: pointer;
    background-color: #0000001a;
    color: #000000;
}

.select_cp_buttons {
    margin-top: 20px;
    border-top: 1px solid #efefef;
    margin: 10px 0px 0px 0px;
    padding: 10px 0px 0px 0px;
}

.select_cp_choose {
    display: inline-block;
    border: 0px solid #000000;
    width: 100%;
    border-radius: 2px;
    margin: 0px 2px 0px 2px;
    padding: 0px 4px;
    cursor: pointer;
    text-align: center;
    background-color: #efefef;
}

.select_cp_choose:hover {
    display: inline-block;
    border: 0px solid #efefef;
    border-radius: 2px;
    margin: 0px 2px 0px 2px;
    padding: 0px 4px;
    cursor: pointer;
    background-color: #0000001a;
    color: #000000;
}

.select_cphex {
    display: block;
}

.select_cprgb {
    display: none;
}

.select_cphsl {
    display: none;
    text-align: center;
}

.select_cp_palette_title {
    border-top: 1px solid #efefef;
    margin: 10px 0px 0px 0px;
    padding: 10px;
}

.select_cp_editpalette {
    display: inline-block;
    background-color: transparent;
    border: none;
    cursor: pointer;
}

.select_cp_editpalette:hover {
    background-color: #efefef;
    border-radius: 4px;
}

.select_cp_delete {
    padding-top: 1px;
    background-color: transparent;
    color: #ffffff;
}

.select_cp_primary {
    text-align: center;
}

.select_cp_secondary {
    text-align: center;
}

.select_cp_col {
    margin: 2px;
    height: 25px;
    width: 25px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: top;
    cursor: pointer;
}

.select_cp_recent,
.select_cp_primary,
.select_cp_secondary {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 8px;
}

.select_cp_palette_toggle {
    display: flex;
    align-items: center;
    cursor: pointer;
    user-select: none;
    padding: 4px 0;
}

.select_cp_palette_toggle:hover {
    background-color: rgba(0, 0, 0, 0.05);
}

.select_cp_chevron {
    font-size: 11px;
    color: #888;
    margin-left: 6px;
}

.select_cp_badge {
    font-size: 11px;
    color: #888;
    margin-left: 4px;
}

.select_cp_palette_title .select_cp_editpalette {
    margin-left: 8px;
}

.select_hexgradient {
    background: linear-gradient(to right, rgb(255, 0, 0), rgb(255, 255, 0), rgb(0, 255, 0), rgb(0, 255, 255), rgb(0, 0, 255), rgb(255, 0, 255), rgb(255, 0, 0));
    height: 0.5em;
}

.select_huegradient {
    background: linear-gradient(to right, rgb(255, 0, 0), rgb(255, 255, 0), rgb(0, 255, 0), rgb(0, 255, 255), rgb(0, 0, 255), rgb(255, 0, 255), rgb(255, 0, 0));
    height: 0.5em;
}

.select_satgradient {
    background: linear-gradient(to right, rgb(169, 169, 169), rgb(42, 157, 144, 1));
    height: 0.5em;
}

.select_lightgradient {
    background: linear-gradient(to right, rgb(0, 0, 0), rgb(42, 157, 144, 1), rgb(255, 255, 255));
    height: 0.5em;
}

.select_hextran {
    background: linear-gradient(to right, hsl(251 calc(100 * 1%) calc(50 * 1%) / 0), hsl(251 calc(100 * 1%) calc(50 * 1%) / 1));
    background-image:
        /* tint image */
        linear-gradient(to right, rgba(192, 192, 192, 0.75), rgba(192, 192, 192, 0.75)),
        /* checkered effect */
        linear-gradient(to right, #808080 50%, white 50%),
        linear-gradient(to bottom, #808080 55%, white 45%);
    background-blend-mode: normal, difference, normal;
    background-size: 10px 10px;
    height: 10px;
}

:root {
    --pseudo-hextran-bg: linear-gradient(to right, rgb(42, 157, 144, 0.1), rgb(42, 157, 144, 1));
}

.select_hextran::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--pseudo-hextran-bg);
    border-radius: 10px;
    opacity: .6;
    /* !!! */
    z-index: -1;
}

.select_rgbred {
    background: #D91048;
    height: 0.5em;
}

.select_rgbgreen {
    background: #48D910;
    height: 0.5em;
}

.select_rgbblue {
    background: #1048D9;
    height: 0.5em;
}

.select_rgbslider {
    position: relative;
    z-index: 1;
    appearance: none;
    border-radius: 0.5em;
    width: 90%;
    display: block;
    outline: none;
    margin: 20px auto 20px auto;
    transition: color 0.05s linear;

    &:focus {
        outline: none;
    }

    &:active,
    &:hover:active {
        cursor: grabbing;
        cursor: -webkit-grabbing;
    }

    &::-moz-range-track {
        appearance: none;
        opacity: 0;
        outline: none !important;
    }

    &::-ms-track {
        outline: none !important;
        appearance: none;
        opacity: 0;
    }

    &::-webkit-slider-thumb {
        height: 3em;
        width: 3em;
        border-radius: 2em;
        appearance: none;
        background: #000000 !important;
        background-color: #000000 !important;
        cursor: pointer;
        cursor: move;
        cursor: grab;
        cursor: -webkit-grab;
        border: 0.4em solid currentColor;
        transition: border 0.1s ease-in-out, box-shadow 0.2s ease-in-out, transform 0.1s ease-in-out;
        box-shadow: 0 0.4em 1em rgba(0, 0, 0, 0.15);

        &:active,
        &:hover:active {
            cursor: grabbing;
            cursor: -webkit-grabbing;
            transform: scale(0.975);
            box-shadow: 0 0 1px rgba(0, 0, 0, 0.1);
            border: 1.5em solid currentColor;
        }

        &:hover {
            transform: scale(1.1);
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15);
        }
    }

    &::-moz-range-thumb {
        height: 3em;
        width: 3em;
        border-radius: 2em;
        appearance: none;
        background: white;
        border: 0.4em solid currentColor;
        cursor: pointer;
        cursor: move;
        cursor: grab;
        cursor: -webkit-grab;
        transition: box-shadow 0.2s ease-in-out, transform 0.1s ease-in-out;
        box-shadow: 0 1px 11px rgba(0, 0, 0, 0);

        &:active,
        &:hover:active {
            cursor: grabbing;
            cursor: -webkit-grabbing;
            transform: scale(0.975);
            box-shadow: 0 0 1px rgba(0, 0, 0, 0.1);
        }

        &:hover {
            transform: scale(1.1);
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15);
        }
    }
}

.select_rgbslider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 15px;
    height: 15px;
    border-radius: 15px;
    border: 2px solid black;
    background: #ffffff;
    cursor: pointer;
}

.select_rgbslider::-moz-range-thumb {
    width: 15px;
    height: 15px;
    border-radius: 15px;
    background: #ffffff;
    border: 2px solid black;
    cursor: pointer;
}

/*select colour picker*/

/*Filter Box*/
.select_filter {
    display: inline-block;
    width: 160px;
    border-color: rgb(0 0 0 / 40%);
    border-width: 1px;
    border-style: solid;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    padding-top: 2px;
    padding-bottom: 2px;
    padding-right: 0px;
    cursor: text;
    text-align: center;
    text-overflow: ellipsis;
    border-radius: 2px;
    cursor: pointer;
}

.select_filter::after {
    float: right;
    content: "\25bc";
    color: var(--accent1);
    margin-right: 10px;
}

.select_filterframe>.select_dropdown>.select_dropdownitem_selected:hover {
    cursor: pointer;
    display: block;
    margin: 3px 0px 3px 0px;
    padding: 3px 5px 3px 5px;
    color: #ffffff;
    background-color: var(--accent1);
    border-style: solid;
    border-width: 1px;
    border-radius: 3px;
    line-height: 13px;
}

.select_label {
    position: absolute;
    margin-top: -18px;
    margin-left: auto;
    margin-right: 5px;
    padding-top: 1px;
    padding-bottom: 1px;
    padding-left: 5px;
    padding-right: 5px;
    color: #444445;
    background-color: #efefef;
    font-size: 16px;
    line-height: 16px;
    opacity: 0.2px;
    border-top-right-radius: 3px;
    border-top-left-radius: 3px;
    border: 1px solid #aaa;
    border-bottom: none;
}

/*.select_filterdropdown{
    visibility: visible;
    display: block;
    width: inherit;
    min-height: 40px;
    width: 200px;
    overflow-y: auto;
    background-color: #ffffff;
    border-color: rgb(0 0 0 / 40%);
    border-width: 1px 1px 1px 1px;
    border-style: solid;
    border-top-right-radius: 4px;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
    margin-top: 5px;
    padding: 5px;
    // float: right; 
    z-index: 3;
    position: absolute;
    box-shadow: 0 0 5px 0px rgb(0 0 0 / 40%);
    margin-left: auto;
    margin-right: auto;
    -webkit-touch-callout: none; // iOS Safari 
        -webkit-user-select: none; // Safari
         -khtml-user-select: none; // Konqueror HTML
           -moz-user-select: none; // Old versions of Firefox
            -ms-user-select: none; // Internet Explorer/Edge
                user-select: none; // Non-prefixed version, currently
                                      supported by Chrome, Edge, Opera and Firefox 
}*/

.select_numdropdown {
    visibility: visible;
    display: block;
    width: inherit;
    min-height: 40px;
    max-height: 150px;
    overflow-y: auto;
    background-color: #ffffff;
    border-color: #aaa;
    border-width: 0px 1px 1px 1px;
    border-style: solid;
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
    margin-top: 5px;
    padding: 2px;
    /*float: right;*/
    z-index: 3;
    position: absolute;
    box-shadow: 0 0 10px 0px rgba(0, 0, 0, 0.4);
    margin-left: auto;
    margin-right: auto;
    width: 65px;
}

.select_numdropdown::-webkit-scrollbar-track {
    margin-top: 2px;
    margin-bottom: 2px;
    padding: 2px 0;
    border-radius: 10px;
    cursor: pointer;
}

.select_numdropdown::-webkit-scrollbar {
    width: 15px;
    margin-right: 2px;
}

.select_numdropdown::-webkit-scrollbar-thumb {
    height: 6px;
    border: 4px solid rgba(0, 0, 0, 0);
    background-clip: padding-box;
    border-radius: 7px;
    -webkit-border-radius: 7px;
    background-color: rgba(0, 0, 0, 0.15);
    -webkit-box-shadow: inset -1px -1px 0px rgba(0, 0, 0, 0.05), inset 1px 1px 0px rgba(0, 0, 0, 0.05);
    box-shadow: inset -1px -1px 0px rgba(0, 0, 0, 0.05), inset 1px 1px 0px rgba(0, 0, 0, 0.05);
}

.select_numdropdown::-webkit-scrollbar-button {
    display: none;
}

.select_numberframe {
    display: inline-block;
    background-color: #ffffff;
    border: 1px solid transparent;
    border-radius: 4px;
    padding: 0px 0px 0px 0px;
    height: 18px;
    vertical-align: middle;
}

.select_number:hover {
    border: 1px solid black;
    border-radius: 4px;
}

.select_num_input {
    display: inline-block;
    border: 1px solid black;
    /*background-color: #ffffff !important;*/
    border-radius: 2px;
    width: 28px !important;
    padding: 0px 3px 0px 3px !important;
    font-size: 10px !important;
    line-height: 18px !important;
    height: 18px;
    margin: 0px;
    margin-top: -1px;
    margin-bottom: 0px;
    cursor: pointer;
    text-align: center !important;
    vertical-align: top;
    -khtml-user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.select_num_input:focus {
    outline: none;
    border: none;
}

.select_num_input::-webkit-outer-spin-button,
.select_num_input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.select_num_negative {
    display: inline-block;
    border: 1px solid transparent;
    cursor: pointer;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
    font-size: 10px;
    line-height: 18px !important;
    height: 19px;
    margin: 0px;
    margin-top: -1px;
    margin-left: -1px;
    margin-bottom: 0px;
    padding: 0px 3px 0px 3px;
    vertical-align: top;
    -khtml-user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.select_num_positive {
    display: inline-block;
    border: 1px solid transparent;
    cursor: pointer;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
    font-size: 10px;
    line-height: 18px !important;
    height: 19px;
    margin: 0px;
    margin-top: -1px;
    margin-right: -1px;
    margin-bottom: 0px;
    padding: 0px 3px 0px 3px;
    vertical-align: top;
    -khtml-user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.select_num_negative:hover,
.select_num_positive:hover {
    background-color: #000;
    color: #ffffff;
}

.select_disabled {
    opacity: 0.6;
}

.select_disabled>.select_tagbox>.select_taginput {
    display: none;
}

.select_disabled>.select_tagbox>.select_tagclear {
    display: none;
}

.select_disabled>.swp_dbdelete {
    display: none;
}

@media print {
    .select_calmleft {
        display: none;
    }

    .select_calmright {
        display: none;
    }
}


@media only screen and (max-device-width: 480px) {
    .select_search {
        display: none;
    }

    .select_count {
        display: inline-block;
    }

    .select_dropdown {
        background-color: #ffffff;
        position: fixed;
        top: 0px;
        z-index: 10000;
        max-height: 80%;
        width: 80%;
        margin-top: 5px;
        margin-bottom: 5px;
        margin-left: auto;
        margin-right: auto;
    }

}

/* Mobile compact styles for date picker and tab dropdowns */
@media only screen and (max-width: 600px) {
    .select_tabmcontainer {
        margin-left: 0;
        margin-right: 0;
        gap: 2px;
    }

    .select_dateframe {
        gap: 2px;
    }

    .select_tabmdropdown {
        padding: 5px 22px 5px 8px;
        font-size: 13px;
        border-radius: 6px;
    }

    .select_tabmdropdown:after {
        right: 6px;
    }

    .select_date {
        padding: 5px 22px 5px 8px;
        font-size: 13px;
        min-width: 80px;
        border-radius: 6px;
    }

    .select_date::after {
        right: 6px;
    }

    .select_tabmleft,
    .select_tabmleftalt,
    .select_tabmright,
    .select_tabmrightalt,
    .select_calmleft,
    .select_calmright {
        font-size: 18px;
        padding: 0;
    }

    .select_singledropdown {
        padding: 5px 26px 5px 8px;
        border-radius: 6px;
    }

    .select_multidropdown {
        padding: 5px 26px 5px 8px;
        border-radius: 6px;
    }
}

/* ======================================= */
/* SELECT TOGGLE SWITCHES                  */
/* ======================================= */
/* Usage: <div class="select_toggleframe" id="myToggle" data-size="small" data-style="rounded"></div> */

/* Base container */
.select_toggle_container {
    position: relative;
    display: inline-block;
    vertical-align: middle;
}

/* Hide the default checkbox */
.select_toggle_input {
    display: none;
}

/* The toggle label/track */
.select_toggle_label {
    display: block;
    overflow: hidden;
    cursor: pointer;
    border: 1px solid #ccc;
    margin: 0;
}

/* Inner part with ON/OFF text */
.select_toggle_inner {
    display: block;
    width: 200%;
    margin-left: -100%;
    transition: margin 0.2s ease-in-out;
}

.select_toggle_inner:before,
.select_toggle_inner:after {
    display: block;
    float: left;
    width: 50%;
    padding: 0;
    line-height: inherit;
    font-weight: bold;
    box-sizing: border-box;
    text-align: center;
}

.select_toggle_inner:before {
    content: attr(data-on);
    padding-left: 5px;
    background-color: #4CAF50;
    color: #fff;
}

.select_toggle_inner:after {
    content: attr(data-off);
    padding-right: 5px;
    background-color: #e0e0e0;
    color: #666;
}

/* The switch/knob */
.select_toggle_switch {
    display: block;
    background: #fff;
    position: absolute;
    top: 0;
    bottom: 0;
    border: 1px solid #ccc;
    transition: all 0.2s ease-in-out;
}

/* Checked state */
.select_toggle_input:checked+.select_toggle_label .select_toggle_inner {
    margin-left: 0;
}

/* ==================== */
/* SIZE VARIANTS        */
/* ==================== */

/* Tiny - very compact */
.select_toggle_tiny .select_toggle_label {
    width: 36px;
    height: 16px;
    line-height: 16px;
    font-size: 8px;
}

.select_toggle_tiny .select_toggle_switch {
    width: 12px;
    right: 22px;
}

.select_toggle_tiny .select_toggle_input:checked+.select_toggle_label .select_toggle_switch {
    right: 0;
}

/* Small - compact */
.select_toggle_small .select_toggle_label {
    width: 50px;
    height: 22px;
    line-height: 22px;
    font-size: 10px;
}

.select_toggle_small .select_toggle_switch {
    width: 16px;
    right: 32px;
}

.select_toggle_small .select_toggle_input:checked+.select_toggle_label .select_toggle_switch {
    right: 0;
}

/* Medium - standard */
.select_toggle_medium .select_toggle_label {
    width: 70px;
    height: 28px;
    line-height: 28px;
    font-size: 12px;
}

.select_toggle_medium .select_toggle_switch {
    width: 22px;
    right: 46px;
}

.select_toggle_medium .select_toggle_input:checked+.select_toggle_label .select_toggle_switch {
    right: 0;
}

/* Large */
.select_toggle_large .select_toggle_label {
    width: 90px;
    height: 34px;
    line-height: 34px;
    font-size: 14px;
}

.select_toggle_large .select_toggle_switch {
    width: 28px;
    right: 60px;
}

.select_toggle_large .select_toggle_input:checked+.select_toggle_label .select_toggle_switch {
    right: 0;
}

/* ==================== */
/* STYLE VARIANTS       */
/* ==================== */

/* Rounded style */
.select_toggle_rounded .select_toggle_label {
    border-radius: 20px;
}

.select_toggle_rounded .select_toggle_switch {
    border-radius: 20px;
}

/* Square style */
.select_toggle_square .select_toggle_label {
    border-radius: 3px;
}

.select_toggle_square .select_toggle_switch {
    border-radius: 2px;
}

/* ==================== */
/* SIMPLE TOGGLE        */
/* (no labels, just knob) */
/* ==================== */

.select_toggle_simple .select_toggle_inner:before,
.select_toggle_simple .select_toggle_inner:after {
    content: "";
}

.select_toggle_simple .select_toggle_label {
    background-color: #e0e0e0;
    transition: background-color 0.2s ease-in-out;
}

.select_toggle_simple .select_toggle_input:checked+.select_toggle_label {
    background-color: #4CAF50;
}

/* Simple tiny */
.select_toggle_simple.select_toggle_tiny .select_toggle_label {
    width: 28px;
    height: 14px;
}

.select_toggle_simple.select_toggle_tiny .select_toggle_switch {
    width: 10px;
    height: 10px;
    top: 2px;
    right: 16px;
}

.select_toggle_simple.select_toggle_tiny .select_toggle_input:checked+.select_toggle_label .select_toggle_switch {
    right: 2px;
}

/* Simple small */
.select_toggle_simple.select_toggle_small .select_toggle_label {
    width: 36px;
    height: 18px;
}

.select_toggle_simple.select_toggle_small .select_toggle_switch {
    width: 14px;
    height: 14px;
    top: 2px;
    right: 20px;
}

.select_toggle_simple.select_toggle_small .select_toggle_input:checked+.select_toggle_label .select_toggle_switch {
    right: 2px;
}

/* Simple medium */
.select_toggle_simple.select_toggle_medium .select_toggle_label {
    width: 44px;
    height: 22px;
}

.select_toggle_simple.select_toggle_medium .select_toggle_switch {
    width: 18px;
    height: 18px;
    top: 2px;
    right: 24px;
}

.select_toggle_simple.select_toggle_medium .select_toggle_input:checked+.select_toggle_label .select_toggle_switch {
    right: 2px;
}

/* Disabled state */
.select_toggle_container.select_disabled .select_toggle_label {
    cursor: not-allowed;
    opacity: 0.6;
}

.select_toggle_container.select_disabled .select_toggle_input {
    pointer-events: none;
}

/* ==================== */
/* DATABASE FORM EDITOR */
/* Spacing fixes        */
/* ==================== */

.swp_fillblanks,
.swp_formtext {
    margin-top: 10px;
}

.swp_fbpreview {
    margin-top: 5px;
    padding: 8px;
    background: #f9f9f9;
    border: 1px dashed #ddd;
    border-radius: 4px;
}

.swp_blank_preview {
    display: inline;
    border-bottom: 1px solid #333;
    min-width: 60px;
}

/* Fill blanks input styling */
.select_fillblanks_input {
    display: inline-block;
    min-width: 80px;
    max-width: 200px;
    padding: 4px 8px;
    margin: 0 4px;
    border: none;
    border-bottom: 1px solid #666;
    background: transparent;
    font-size: inherit;
    font-family: inherit;
}

.select_fillblanks_input:focus {
    outline: none;
    border-bottom: 2px solid var(--accent1, #4CAF50);
}

.select_fillblanks_input::placeholder {
    color: #999;
    font-style: italic;
}

/* ======================================= */
/* SWP TOGGLE SWITCHES (Compact)           */
/* ======================================= */
/* Simple inline toggle without Yes/No text */

.swp_toggle_checkbox {
    display: none;
}

.swp_toggle_label {
    display: inline-block;
    position: relative;
    cursor: pointer;
    outline: none;
    user-select: none;
    vertical-align: middle;
}

/* Small toggle (default for database form) */
.swp_toggle_small {
    width: 36px;
    height: 18px;
    background-color: #ccc;
    border-radius: 18px;
    transition: background-color 0.2s ease;
}

.swp_toggle_small .swp_toggle_inner {
    display: none;
}

.swp_toggle_small .swp_toggle_switch {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 14px;
    height: 14px;
    background-color: #fff;
    border-radius: 14px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
    transition: left 0.2s ease;
}

.swp_toggle_checkbox:checked+.swp_toggle_small {
    background-color: var(--accent1, #4CAF50);
}

.swp_toggle_checkbox:checked+.swp_toggle_small .swp_toggle_switch {
    left: 20px;
}

/* Tiny toggle */
.swp_toggle_tiny {
    width: 28px;
    height: 14px;
    background-color: #ccc;
    border-radius: 14px;
    transition: background-color 0.2s ease;
}

.swp_toggle_tiny .swp_toggle_inner {
    display: none;
}

.swp_toggle_tiny .swp_toggle_switch {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 10px;
    height: 10px;
    background-color: #fff;
    border-radius: 10px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    transition: left 0.2s ease;
}

.swp_toggle_checkbox:checked+.swp_toggle_tiny {
    background-color: var(--accent1, #4CAF50);
}

.swp_toggle_checkbox:checked+.swp_toggle_tiny .swp_toggle_switch {
    left: 16px;
}

/* Medium toggle */
.swp_toggle_medium {
    width: 44px;
    height: 22px;
    background-color: #ccc;
    border-radius: 22px;
    transition: background-color 0.2s ease;
}

.swp_toggle_medium .swp_toggle_inner {
    display: none;
}

.swp_toggle_medium .swp_toggle_switch {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 18px;
    height: 18px;
    background-color: #fff;
    border-radius: 18px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
    transition: left 0.2s ease;
}

.swp_toggle_checkbox:checked+.swp_toggle_medium {
    background-color: var(--accent1, #4CAF50);
}

.swp_toggle_checkbox:checked+.swp_toggle_medium .swp_toggle_switch {
    left: 24px;
}

/* Large toggle */
.swp_toggle_large {
    width: 56px;
    height: 28px;
    background-color: #ccc;
    border-radius: 28px;
    transition: background-color 0.2s ease;
}

.swp_toggle_large .swp_toggle_inner {
    display: none;
}

.swp_toggle_large .swp_toggle_switch {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 22px;
    height: 22px;
    background-color: #fff;
    border-radius: 22px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
    transition: left 0.2s ease;
}

.swp_toggle_checkbox:checked+.swp_toggle_large {
    background-color: var(--accent1, #4CAF50);
}

.swp_toggle_checkbox:checked+.swp_toggle_large .swp_toggle_switch {
    left: 31px;
}

/* Jumbo toggle */
.swp_toggle_jumbo {
    width: 70px;
    height: 35px;
    background-color: #ccc;
    border-radius: 35px;
    transition: background-color 0.2s ease;
}

.swp_toggle_jumbo .swp_toggle_inner {
    display: none;
}

.swp_toggle_jumbo .swp_toggle_switch {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 29px;
    height: 29px;
    background-color: #fff;
    border-radius: 29px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    transition: left 0.2s ease;
}

.swp_toggle_checkbox:checked+.swp_toggle_jumbo {
    background-color: var(--accent1, #4CAF50);
}

.swp_toggle_checkbox:checked+.swp_toggle_jumbo .swp_toggle_switch {
    left: 38px;
}

/* Huge toggle */
.swp_toggle_huge {
    width: 90px;
    height: 45px;
    background-color: #ccc;
    border-radius: 45px;
    transition: background-color 0.2s ease;
}

.swp_toggle_huge .swp_toggle_inner {
    display: none;
}

.swp_toggle_huge .swp_toggle_switch {
    position: absolute;
    top: 4px;
    left: 4px;
    width: 37px;
    height: 37px;
    background-color: #fff;
    border-radius: 37px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
    transition: left 0.2s ease;
}

.swp_toggle_checkbox:checked+.swp_toggle_huge {
    background-color: var(--accent1, #4CAF50);
}

.swp_toggle_checkbox:checked+.swp_toggle_huge .swp_toggle_switch {
    left: 49px;
}

/* Square variant */
.swp_toggle_square {
    border-radius: 4px !important;
}

.swp_toggle_square .swp_toggle_switch {
    border-radius: 2px !important;
}

/* ======================================= */
/* TOGGLE WITH LABELS                      */
/* ======================================= */

.swp_toggle_labeled {
    overflow: hidden;
}

.swp_toggle_labeled .swp_toggle_inner {
    display: block;
    width: 200%;
    margin-left: -100%;
    transition: margin 0.2s ease-in-out;
    height: 100%;
}

.swp_toggle_labeled .swp_toggle_inner:before,
.swp_toggle_labeled .swp_toggle_inner:after {
    display: block;
    float: left;
    width: 50%;
    height: 100%;
    padding: 0;
    font-weight: bold;
    box-sizing: border-box;
    text-align: center;
    line-height: inherit;
}

.swp_toggle_labeled .swp_toggle_inner:before {
    content: attr(data-on);
    background-color: var(--accent1, #4CAF50);
    color: #fff;
    padding-right: 30%;
}

.swp_toggle_labeled .swp_toggle_inner:after {
    content: attr(data-off);
    background-color: #ccc;
    color: #666;
    padding-left: 30%;
}

.swp_toggle_checkbox:checked+.swp_toggle_labeled .swp_toggle_inner {
    margin-left: 0;
}

/* Reset switch positioning for labeled toggles */
.swp_toggle_labeled .swp_toggle_switch {
    left: auto;
    right: auto;
}

/* Labeled size variants */
.swp_toggle_labeled.swp_toggle_tiny {
    width: 44px;
    height: 14px;
    line-height: 14px;
}

.swp_toggle_labeled.swp_toggle_tiny .swp_toggle_inner:before,
.swp_toggle_labeled.swp_toggle_tiny .swp_toggle_inner:after {
    font-size: 8px;
    line-height: 14px;
}

.swp_toggle_labeled.swp_toggle_tiny .swp_toggle_switch {
    width: 10px;
    height: 10px;
    top: 2px;
    right: 32px;
}

.swp_toggle_checkbox:checked+.swp_toggle_labeled.swp_toggle_tiny .swp_toggle_switch {
    right: 2px;
    left: auto;
}

.swp_toggle_labeled.swp_toggle_small {
    width: 54px;
    height: 18px;
    line-height: 18px;
}

.swp_toggle_labeled.swp_toggle_small .swp_toggle_inner:before,
.swp_toggle_labeled.swp_toggle_small .swp_toggle_inner:after {
    font-size: 9px;
    line-height: 18px;
}

.swp_toggle_labeled.swp_toggle_small .swp_toggle_switch {
    width: 14px;
    height: 14px;
    top: 2px;
    right: 38px;
}

.swp_toggle_checkbox:checked+.swp_toggle_labeled.swp_toggle_small .swp_toggle_switch {
    right: 2px;
    left: auto;
}

.swp_toggle_labeled.swp_toggle_medium {
    width: 66px;
    height: 22px;
    line-height: 22px;
}

.swp_toggle_labeled.swp_toggle_medium .swp_toggle_inner:before,
.swp_toggle_labeled.swp_toggle_medium .swp_toggle_inner:after {
    font-size: 10px;
    line-height: 22px;
}

.swp_toggle_labeled.swp_toggle_medium .swp_toggle_switch {
    width: 18px;
    height: 18px;
    top: 2px;
    right: 46px;
}

.swp_toggle_checkbox:checked+.swp_toggle_labeled.swp_toggle_medium .swp_toggle_switch {
    right: 2px;
    left: auto;
}

.swp_toggle_labeled.swp_toggle_large {
    width: 80px;
    height: 28px;
    line-height: 28px;
}

.swp_toggle_labeled.swp_toggle_large .swp_toggle_inner:before,
.swp_toggle_labeled.swp_toggle_large .swp_toggle_inner:after {
    font-size: 11px;
    line-height: 28px;
}

.swp_toggle_labeled.swp_toggle_large .swp_toggle_switch {
    width: 22px;
    height: 22px;
    top: 3px;
    right: 55px;
}

.swp_toggle_checkbox:checked+.swp_toggle_labeled.swp_toggle_large .swp_toggle_switch {
    right: 3px;
    left: auto;
}

.swp_toggle_labeled.swp_toggle_jumbo {
    width: 100px;
    height: 35px;
    line-height: 35px;
}

.swp_toggle_labeled.swp_toggle_jumbo .swp_toggle_inner:before,
.swp_toggle_labeled.swp_toggle_jumbo .swp_toggle_inner:after {
    font-size: 12px;
    line-height: 35px;
}

.swp_toggle_labeled.swp_toggle_jumbo .swp_toggle_switch {
    width: 29px;
    height: 29px;
    top: 3px;
    right: 68px;
}

.swp_toggle_checkbox:checked+.swp_toggle_labeled.swp_toggle_jumbo .swp_toggle_switch {
    right: 3px;
    left: auto;
}

.swp_toggle_labeled.swp_toggle_huge {
    width: 130px;
    height: 45px;
    line-height: 45px;
}

.swp_toggle_labeled.swp_toggle_huge .swp_toggle_inner:before,
.swp_toggle_labeled.swp_toggle_huge .swp_toggle_inner:after {
    font-size: 14px;
    line-height: 45px;
}

.swp_toggle_labeled.swp_toggle_huge .swp_toggle_switch {
    width: 37px;
    height: 37px;
    top: 4px;
    right: 89px;
}

.swp_toggle_checkbox:checked+.swp_toggle_labeled.swp_toggle_huge .swp_toggle_switch {
    right: 4px;
    left: auto;
}

/* Hover effects */
.swp_toggle_label:hover {
    opacity: 0.9;
}

/* Disabled state */
.swp_toggle_checkbox:disabled+.swp_toggle_label {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ======================================= */
/* FORM FIELD TOGGLE ALIGNMENT             */
/* ======================================= */

/* Make switch fields display inline with title */
.swp_formfieldline[swp_ftype="switch"] {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
}

.swp_formfieldline[swp_ftype="switch"] .swp_formfieldtitle {
    margin-bottom: 0;
}

.swp_formfieldline[swp_ftype="switch"] .swp_formfield {
    display: inline-flex;
    align-items: center;
}

.swp_formfield .swp_toggle_label {
    margin-top: 0;
    vertical-align: middle;
}

.swp_formfieldline .swp_formfield {
    display: flex;
    align-items: center;
    min-height: 30px;
}

/* General form field line layout - title and field inline */
.swp_formfieldline {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.swp_formfieldline .swp_formfieldtitle {
    min-width: 120px;
    margin-bottom: 0;
}

/* For fields that should stack vertically (like textareas) */
.swp_formfieldline[swp_ftype="textarea"],
.swp_formfieldline[swp_ftype="form text"] {
    flex-direction: column;
    align-items: flex-start;
}

.swp_formfieldline[swp_ftype="textarea"] .swp_formfieldtitle,
.swp_formfieldline[swp_ftype="form text"] .swp_formfieldtitle {
    margin-bottom: 5px;
}

/* ==================== */
/* LIVE VALIDATION STYLES */
/* ==================== */

.select_field_valid {
    border-color: #28a745 !important;
    background-color: #f8fff9 !important;
}

.select_field_invalid {
    border-color: #dc3545 !important;
    background-color: #fff8f8 !important;
}

.select_validation_icon {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 16px;
}

.select_validation_icon.valid {
    color: #28a745;
}

.select_validation_icon.invalid {
    color: #dc3545;
}

.swp_currency_wrapper>.select_field_wrapper {
    width: auto;
}

.select_field_wrapper {
    position: relative;
    display: inline-block;
    width: 100%;
}

.select_field_wrapper input {
    padding-right: 35px;
}

.select_validation_message {
    font-size: 12px;
    margin-top: 4px;
    color: #dc3545;
}

/* Phone field with flag */
.select_phone_wrapper.select_field_wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

.select_phone_flag {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    pointer-events: none;
    line-height: 1;
    display: flex;
    align-items: center;
}

.select_phone_flag img {
    display: block;
    border-radius: 2px;
    box-shadow: 0 0 1px rgba(0, 0, 0, 0.3);
}

.select_phone_wrapper input,
.select_phone_wrapper .select_inputframe,
.select_phone_wrapper .swp_dbinputframe {
    padding-left: 10px;
}

/* When flag is present, add padding */
.select_phone_wrapper.has_flag input,
.select_phone_wrapper.has_flag .select_inputframe,
.select_phone_wrapper.has_flag .swp_dbinputframe {
    padding-left: 40px;
}

/* ==================== */
/* STAR RATING FIELD */
/* ==================== */

.swp_star_rating {
    display: inline-flex;
    flex-direction: row-reverse;
    gap: 2px;
}

.swp_star_rating input {
    display: none;
}

.swp_star_rating label {
    cursor: pointer;
    font-size: 24px;
    color: #ddd;
    transition: color 0.2s;
}

.swp_star_rating label:hover,
.swp_star_rating label:hover~label,
.swp_star_rating input:checked~label {
    color: #ffc107;
}

.swp_star_rating.swp_star_small label {
    font-size: 16px;
}

.swp_star_rating.swp_star_medium label {
    font-size: 24px;
}

.swp_star_rating.swp_star_large label {
    font-size: 32px;
}

.swp_star_rating_value {
    margin-left: 10px;
    font-weight: bold;
    color: #666;
}

/* ==================== */
/* SLIDER FIELD */
/* ==================== */

.swp_slider_container {
    width: 100%;
    padding: 10px 0;
}

.swp_slider_wrapper {
    position: relative;
    width: 100%;
}

.swp_slider_input {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e0e0e0;
    outline: none;
    transition: background 0.3s;
}

.swp_slider_input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--swp-accent-color, #4a90a4);
    cursor: pointer;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    transition: transform 0.2s;
}

.swp_slider_input::-webkit-slider-thumb:hover {
    transform: scale(1.1);
}

.swp_slider_input::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--swp-accent-color, #4a90a4);
    cursor: pointer;
    border: none;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.swp_slider_labels {
    display: flex;
    justify-content: space-between;
    margin-top: 8px;
    font-size: 12px;
    color: #666;
}

.swp_slider_value {
    text-align: center;
    font-weight: bold;
    font-size: 18px;
    color: var(--swp-accent-color, #4a90a4);
    margin-bottom: 8px;
}

/* ==================== */
/* URL FIELD */
/* ==================== */

.select_url_field {
    display: flex;
    align-items: center;
}

.select_url_prefix {
    background: #f0f0f0;
    border: 1px solid #aaa;
    border-right: none;
    padding: 10px 12px;
    border-radius: 4px 0 0 4px;
    color: #666;
    font-size: 14px;
    white-space: nowrap;
    line-height: 1.2;
}

.select_url_field .select_field_wrapper {
    flex: 1;
}

.select_url_field .select_field_wrapper input {
    border-radius: 0 4px 4px 0 !important;
    border-left: none !important;
    font-size: 14px;
}

/* ==================== */
/* CREDIT CARD FIELD */
/* ==================== */

.swp_creditcard_container {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 15px;
    background: #f9f9f9;
    border-radius: 8px;
    border: 1px solid #e0e0e0;
}

.swp_cc_row {
    display: flex;
    gap: 12px;
}

.swp_cc_field {
    flex: 1;
}

.swp_cc_field label {
    display: block;
    font-size: 12px;
    color: #666;
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.swp_cc_field input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 16px;
    font-family: monospace;
}

.swp_cc_number {
    letter-spacing: 2px;
}

.swp_cc_expiry {
    width: 100px !important;
}

.swp_cc_cvv {
    width: 80px !important;
}

.swp_cc_icons {
    display: flex;
    gap: 8px;
    margin-bottom: 8px;
}

.swp_cc_icon {
    width: 40px;
    height: 25px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0.4;
    transition: opacity 0.2s;
}

.swp_cc_icon.active {
    opacity: 1;
    border-color: var(--swp-accent-color, #4a90a4);
}

.swp_cc_icon i {
    font-size: 20px;
}

/* Database table field styles */
.swp_star_db {
    display: inline-flex;
    flex-direction: row-reverse;
    justify-content: flex-end;
    gap: 2px;
}

.swp_star_db input {
    display: none;
}

.swp_star_db label {
    font-size: 16px;
    cursor: pointer;
    color: #ddd;
    transition: color 0.2s;
}

.swp_star_db label:hover,
.swp_star_db label:hover~label,
.swp_star_db input:checked~label {
    color: #ffc107;
}

/* Disabled state for stars */
.swp_star_db input:disabled+label {
    cursor: not-allowed;
    opacity: 0.6;
}

.swp_slider_db {
    display: flex;
    align-items: center;
    gap: 8px;
}

.swp_slider_db .swp_slider_input {
    width: 80px;
    min-width: 60px;
    cursor: pointer;
}

.swp_slider_db .swp_slider_input:disabled {
    cursor: not-allowed;
    opacity: 0.6;
}

.swp_slider_db_value {
    font-size: 12px;
    color: #666;
    min-width: 30px;
}

.swp_cc_db_display {
    font-family: monospace;
    font-size: 12px;
    color: #666;
    padding: 4px;
}

/* Fill blanks in database table */
.swp_fillblanks_db {
    display: block;
    width: 100%;
}

.swp_fillblanks_db .swp_fbrender {
    line-height: 1.8;
}

.swp_fillblanks_db .select_fillblanks_input {
    display: inline-block;
    width: auto;
    min-width: 60px;
    max-width: 150px;
    padding: 2px 6px;
    margin: 0 2px;
    border: 1px solid #ccc;
    border-radius: 3px;
    font-size: inherit;
}

.swp_fillblanks_db .select_fillblanks_input:disabled {
    background-color: #f5f5f5;
    cursor: not-allowed;
}

/* Credit card in database table */
.swp_cc_db {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    align-items: center;
    padding: 5px;
}

.swp_cc_db .swp_cc_icons {
    display: flex;
    gap: 3px;
    margin-right: 5px;
}

.swp_cc_db .swp_cc_icon {
    font-size: 18px;
}

.swp_cc_db .swp_cc_field {
    flex: none;
}

.swp_cc_db .swp_cc_number {
    width: 140px;
}

.swp_cc_db .swp_cc_row {
    display: flex;
    gap: 5px;
}

.swp_cc_db .swp_cc_expiry {
    width: 60px;
}

.swp_cc_db .swp_cc_cvv {
    width: 45px;
}

.swp_cc_db input:disabled {
    background-color: #f5f5f5;
    cursor: not-allowed;
}

/* Validation wrappers in database table cells */
.swp_dtbdata .select_field_wrapper {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

.swp_dtbdata .select_field_wrapper input {
    flex: 1;
    padding-right: 30px;
    width: 100%;
}

.swp_dtbdata .select_validation_icon {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
}

/* ============================================ */
/* NEW FIELD TYPES CSS STYLES                  */
/* ============================================ */

/* ============================================ */
/* 1. COLOUR PICKER FIELD                      */
/* ============================================ */
.swp_formfield .select_colpicframe {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.swp_formfield .select_cp_chosencol {
    width: 20px;
    height: 6px;
    display: block;
    margin-left: 0;
    margin-top: 2px;
}

/* ============================================ */
/* 2. COUNTRY SELECTOR                         */
/* ============================================ */
.select_country_selector {
    min-width: 250px;
}

.select_country_selector .select_singlevalue,
.select_country_selector .select_singledropdown,
.select_country_selector .select_dropdown,
.select_country_selector .select_dropdownitem,
.select_country_selector .select_singlesearch,
.select_country_selector * {
    font-size: 14px !important;
    line-height: 1.4 !important;
}

.select_country_selector .select_dropdownitem {
    padding: 6px 10px !important;
    font-size: 14px !important;
}

.select_country_selector .select_dropdown {
    max-height: 300px;
    overflow-y: auto;
    width: 280px !important;
}

/* Fix WordPress emoji to SVG conversion - flag images */
.select_country_selector img.emoji,
.select_country_selector .select_dropdownitem img,
.select_country_selector .select_singledropdown img,
.select_country_selector img {
    width: 16px !important;
    height: 16px !important;
    max-width: 16px !important;
    max-height: 16px !important;
    vertical-align: middle !important;
    margin-right: 6px !important;
    display: inline !important;
}

/* Also target WordPress emoji globally in dropdowns */
.select_dropdown img.emoji,
.select_singledropdown img.emoji,
.select_dropdownitem img.emoji {
    width: 16px !important;
    height: 16px !important;
    max-width: 16px !important;
    max-height: 16px !important;
}

/* ============================================ */
/* 3. OTP/VERIFICATION CODE FIELD              */
/* ============================================ */
.swp_otp_container {
    display: flex;
    gap: 8px;
    align-items: center;
}

.swp_otp_digit {
    width: 45px;
    height: 50px;
    text-align: center;
    font-size: 24px;
    font-weight: 600;
    border: 2px solid #ddd;
    border-radius: 8px;
    outline: none;
    transition: all 0.2s ease;
}

.swp_otp_digit:focus {
    border-color: var(--accent1, #3b82f6);
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.swp_otp_digit:not(:placeholder-shown) {
    border-color: #38a169;
    background-color: #f0fff4;
}

/* ============================================ */
/* 4. LIKERT SCALE FIELD                       */
/* ============================================ */
.swp_likert_container {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: space-between;
}

.swp_likert_option {
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    padding: 10px 8px;
    border: 2px solid #e5e7eb;
    border-radius: 8px;
    background: #fff;
    transition: all 0.2s ease;
    flex: 1;
    min-width: 80px;
    text-align: center;
}

.swp_likert_option:hover {
    border-color: var(--accent1, #3b82f6);
    background: #f8fafc;
}

.swp_likert_option input[type="radio"] {
    display: none;
}

.swp_likert_option input[type="radio"]:checked+.swp_likert_radio {
    border-color: var(--accent1, #3b82f6);
    background: var(--accent1, #3b82f6);
}

.swp_likert_option input[type="radio"]:checked+.swp_likert_radio::after {
    transform: translate(-50%, -50%) scale(1);
}

.swp_likert_option input[type="radio"]:checked~.swp_likert_label {
    color: var(--accent1, #3b82f6);
    font-weight: 600;
}

.swp_likert_radio {
    width: 20px;
    height: 20px;
    border: 2px solid #d1d5db;
    border-radius: 50%;
    margin-bottom: 8px;
    position: relative;
    transition: all 0.2s ease;
}

.swp_likert_radio::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0);
    width: 8px;
    height: 8px;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.2s ease;
}

.swp_likert_label {
    font-size: 12px;
    color: #6b7280;
    line-height: 1.3;
}

/* ============================================ */
/* 5. NPS (NET PROMOTER SCORE) FIELD           */
/* ============================================ */
.swp_nps_container {
    width: 100%;
}

.swp_nps_labels {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    font-size: 12px;
    color: #6b7280;
}

.swp_nps_scale {
    display: flex;
    gap: 4px;
}

.swp_nps_option {
    flex: 1;
    text-align: center;
    cursor: pointer;
}

.swp_nps_option input[type="radio"] {
    display: none;
}

.swp_nps_number {
    display: block;
    padding: 12px 4px;
    border: 2px solid #e5e7eb;
    border-radius: 6px;
    font-weight: 600;
    font-size: 14px;
    transition: all 0.2s ease;
    background: #fff;
}

.swp_nps_detractor .swp_nps_number {
    border-color: #fecaca;
    color: #991b1b;
}

.swp_nps_detractor:hover .swp_nps_number {
    background: #fef2f2;
}

.swp_nps_passive .swp_nps_number {
    border-color: #fde68a;
    color: #92400e;
}

.swp_nps_passive:hover .swp_nps_number {
    background: #fffbeb;
}

.swp_nps_promoter .swp_nps_number {
    border-color: #bbf7d0;
    color: #166534;
}

.swp_nps_promoter:hover .swp_nps_number {
    background: #f0fdf4;
}

.swp_nps_option input[type="radio"]:checked+.swp_nps_number {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.swp_nps_detractor input[type="radio"]:checked+.swp_nps_number {
    background: #ef4444;
    border-color: #ef4444;
    color: #fff;
}

.swp_nps_passive input[type="radio"]:checked+.swp_nps_number {
    background: #f59e0b;
    border-color: #f59e0b;
    color: #fff;
}

.swp_nps_promoter input[type="radio"]:checked+.swp_nps_number {
    background: #22c55e;
    border-color: #22c55e;
    color: #fff;
}

/* ============================================ */
/* 6. PASSWORD WITH STRENGTH METER             */
/* ============================================ */
.swp_password_strength_wrapper {
    width: 100%;
}

.swp_password_input_container {
    position: relative;
    display: flex;
    align-items: center;
}

.swp_password_strength_input {
    padding-right: 40px !important;
}

.swp_password_toggle {
    position: absolute;
    right: 10px;
    cursor: pointer;
    color: #6b7280;
    font-size: 18px;
    transition: color 0.2s ease;
}

.swp_password_toggle:hover {
    color: #374151;
}

.swp_password_strength_meter {
    margin-top: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.swp_strength_bar {
    flex: 1;
    height: 6px;
    background: #e5e7eb;
    border-radius: 3px;
    overflow: hidden;
}

.swp_strength_fill {
    height: 100%;
    width: 0;
    border-radius: 3px;
    transition: all 0.3s ease;
}

.swp_strength_fill.weak {
    background: #ef4444;
}

.swp_strength_fill.fair {
    background: #f59e0b;
}

.swp_strength_fill.good {
    background: #3b82f6;
}

.swp_strength_fill.strong {
    background: #22c55e;
}

.swp_strength_text {
    font-size: 12px;
    font-weight: 600;
    min-width: 50px;
}

.swp_strength_text.weak {
    color: #ef4444;
}

.swp_strength_text.fair {
    color: #f59e0b;
}

.swp_strength_text.good {
    color: #3b82f6;
}

.swp_strength_text.strong {
    color: #22c55e;
}

.swp_password_requirements {
    margin-top: 12px;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 4px;
}

.swp_password_requirements li {
    font-size: 12px;
    color: #6b7280;
    display: flex;
    align-items: center;
    gap: 6px;
}

.swp_password_requirements li i {
    font-size: 14px;
    color: #ef4444;
}

.swp_password_requirements li.met {
    color: #22c55e;
}

.swp_password_requirements li.met i {
    color: #22c55e;
}

/* ============================================ */
/* 7. CURRENCY/PRICE FIELD                     */
/* ============================================ */
/*.swp_currency_wrapper {
    display: flex;
    align-items: center;
    position: relative;
}*/

.swp_currency_wrapper>.select_field_wrapper {
    width: auto;
}

.swp_currency_wrapper {
    display: inline-flex;
    align-items: stretch;
    width: 100%;
}

.swp_currency_symbol {
    display: inline-flex;
    align-items: center;
    padding: 0 12px;
    background: #f3f4f6;
    border: 1px solid #d1d5db;
    border-right: none;
    border-radius: 6px 0 0 6px;
    font-size: 14px;
    font-weight: 500;
    color: #374151;
    white-space: nowrap;
    box-sizing: border-box;
    line-height: 1;
    margin: 0;
    height: auto;
}

.swp_currency_wrapper .select_field_wrapper {
    flex: 1;
    display: inline-flex;
    align-items: stretch;
}

.swp_currency_wrapper .select_field_wrapper input,
.swp_currency_wrapper .select_inputframe {
    border-radius: 0 6px 6px 0 !important;
    border-left: none !important;
    margin: 0 !important;
}

/* Ensure currency symbol and input borders meet in public form */
#swp_formframe .swp_currency_symbol {
    border-color: #d1d5db;
    min-height: 42px;
}

#swp_formframe .swp_currency_wrapper .select_inputframe {
    border-color: #d1d5db;
    min-height: 42px;
}

.swp_currency_input {
    text-align: right;
}

/* ============================================ */
/* 8. DATE RANGE PICKER                        */
/* ============================================ */
.swp_date_range_container {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.swp_date_range_field {
    flex: 1;
    min-width: 140px;
}

.swp_date_range_label {
    display: block;
    font-size: 12px;
    color: #6b7280;
    margin-bottom: 4px;
}

.swp_date_range_input {
    width: 100%;
}

.swp_date_range_separator {
    padding: 10px 0;
    color: #9ca3af;
}

/* ============================================ */
/* 9. TIME RANGE FIELD                         */
/* ============================================ */
.swp_time_range_container {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.swp_time_range_field {
    flex: 1;
    min-width: 120px;
}

.swp_time_range_label {
    display: block;
    font-size: 12px;
    color: #6b7280;
    margin-bottom: 4px;
}

.swp_time_range_input {
    width: 100%;
}

.swp_time_range_separator {
    padding: 10px 0;
    color: #9ca3af;
}

.swp_time_range_duration {
    font-size: 12px;
    color: #6b7280;
    background: #f3f4f6;
    padding: 4px 10px;
    border-radius: 4px;
    white-space: nowrap;
}

/* ============================================ */
/* 10. SOCIAL MEDIA LINKS FIELD                */
/* ============================================ */
.swp_social_links_container {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.swp_social_link_row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.swp_social_icon {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    font-size: 18px;
    color: #fff;
    flex-shrink: 0;
}

.swp_social_facebook {
    background: #1877f2;
}

.swp_social_twitter {
    background: #1da1f2;
}

.swp_social_instagram {
    background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
}

.swp_social_linkedin {
    background: #0a66c2;
}

.swp_social_youtube {
    background: #ff0000;
}

.swp_social_tiktok {
    background: #000;
}

.swp_social_pinterest {
    background: #e60023;
}

.swp_social_snapchat {
    background: #fffc00;
    color: #000;
}

.swp_social_whatsapp {
    background: #25d366;
}

.swp_social_telegram {
    background: #0088cc;
}

.swp_social_website {
    background: #6b7280;
}

.swp_social_url {
    font-size: 12px;
    color: #9ca3af;
    white-space: nowrap;
}

.swp_social_input {
    flex: 1;
    min-width: 120px;
}

/* ============================================ */
/* 11. FILE UPLOAD FIELD                       */
/* ============================================ */
.swp_file_upload_container {
    width: 100%;
}

.swp_file_dropzone {
    border: 2px dashed #d1d5db;
    border-radius: 12px;
    padding: 30px 20px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
    background: #fafafa;
}

.swp_file_dropzone:hover,
.swp_file_dropzone.dragover {
    border-color: var(--accent1, #3b82f6);
    background: #f0f9ff;
}

.swp_file_icon {
    font-size: 48px;
    color: #9ca3af;
    margin-bottom: 10px;
}

.swp_file_dropzone:hover .swp_file_icon,
.swp_file_dropzone.dragover .swp_file_icon {
    color: var(--accent1, #3b82f6);
}

.swp_file_text {
    font-size: 14px;
    color: #374151;
    margin: 0 0 5px 0;
}

.swp_file_hint {
    font-size: 12px;
    color: #9ca3af;
    margin: 0;
}

.swp_file_preview {
    margin-top: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.swp_file_item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

.swp_file_item i {
    font-size: 24px;
    color: var(--accent1, #3b82f6);
}

.swp_file_name {
    flex: 1;
    font-size: 14px;
    color: #374151;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.swp_file_size {
    font-size: 12px;
    color: #9ca3af;
}

.swp_file_remove {
    background: none;
    border: none;
    color: #ef4444;
    cursor: pointer;
    padding: 4px;
    border-radius: 4px;
    transition: background 0.2s ease;
}

.swp_file_remove:hover {
    background: #fef2f2;
}

/* ============================================ */
/* 12. SIGNATURE FIELD                         */
/* ============================================ */
.swp_signature_container {
    width: 100%;
}

.swp_signature_canvas {
    width: 100%;
    max-width: 400px;
    height: 150px;
    border: 2px dashed #d1d5db;
    border-radius: 8px;
    background: #fafafa url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="30"><text x="10" y="20" fill="%23ccc" font-size="12" font-family="sans-serif">Sign here</text></svg>') no-repeat center center;
    cursor: crosshair;
    touch-action: none;
    display: block;
}

.swp_signature_canvas:hover {
    border-color: #2a9d8f;
    background-color: #fff;
}

.swp_signature_canvas.swp_signature_has_content {
    background-image: none;
    background-color: #fff;
}

.swp_signature_controls {
    margin-top: 10px;
    display: flex;
    gap: 8px;
}

.swp_signature_clear,
.swp_signature_undo {
    padding: 8px 16px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    background: #fff;
    color: #374151;
    cursor: pointer;
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: all 0.2s ease;
}

.swp_signature_clear:hover,
.swp_signature_undo:hover {
    background: #f3f4f6;
    border-color: #9ca3af;
}

/* ============================================ */
/* 13. RICH TEXT EDITOR FIELD                  */
/* ============================================ */
.swp_rich_text_container {
    width: 100%;
}

/* Only apply border when using fallback toolbar (not Spotless Editor) */
.swp_rich_text_container .swp_rich_text_toolbar {
    border: 1px solid #d1d5db;
    border-bottom: none;
    border-radius: 8px 8px 0 0;
}

.swp_rich_text_container .swp_rich_text_editor {
    border: 1px solid #d1d5db;
    border-top: 1px solid #e5e7eb;
    border-radius: 0 0 8px 8px;
}

.swp_seditor_wrapper {
    min-height: 150px;
}

.swp_seditor_wrapper .swp_eeditor {
    min-height: 120px;
}

.swp_rich_text_toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    padding: 8px;
    background: #f9fafb;
}

.swp_rich_text_toolbar button {
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    border-radius: 4px;
    cursor: pointer;
    color: #374151;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

.swp_rich_text_toolbar button:hover {
    background: #e5e7eb;
}

.swp_rich_text_toolbar button:active {
    background: #d1d5db;
}

.swp_toolbar_divider {
    width: 1px;
    height: 24px;
    background: #d1d5db;
    margin: 0 6px;
    align-self: center;
}

.swp_rich_text_editor {
    min-height: 150px;
    padding: 12px;
    outline: none;
    font-size: 14px;
    line-height: 1.6;
}

.swp_rich_text_editor:focus {
    box-shadow: inset 0 0 0 2px rgba(59, 130, 246, 0.2);
}

/* ============================================ */
/* 14. IMAGE SELECTION FIELD                   */
/* ============================================ */
/*.swp_image_select_container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 12px;
}*/

.swp_image_option {
    display: inline-block;
    margin-right: 10px;
    /*position: relative;*/
    border: 3px solid transparent;
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.2s ease;
    background: #f9fafb;
}

.swp_image_option:hover {
    border-color: #d1d5db;
    transform: translateY(-2px);
}

.swp_image_option.selected {
    border-color: var(--accent1, #3b82f6);
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.25);
}

.swp_image_option img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    display: block;
}

.swp_image_label {
    display: block;
    padding: 8px;
    text-align: center;
    font-size: 12px;
    color: #374151;
    background: #fff;
}

.swp_image_check {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 24px;
    height: 24px;
    background: var(--accent1, #3b82f6);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 12px;
    opacity: 0;
    transform: scale(0.5);
    transition: all 0.2s ease;
}

.swp_image_option.selected .swp_image_check {
    opacity: 1;
    transform: scale(1);
}

/* ============================================ */
/* 15. RANKING/ORDERING FIELD                  */
/* ============================================ */
.swp_ranking_container {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.swp_ranking_item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    cursor: grab;
    transition: all 0.2s ease;
    user-select: none;
    -webkit-user-select: none;
}

.swp_ranking_item * {
    pointer-events: none;
}

.swp_ranking_item:hover {
    border-color: var(--accent1, #3b82f6);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.swp_ranking_item:active,
.swp_ranking_item.dragging {
    cursor: grabbing;
    background: #f8fafc;
    opacity: 0.8;
}

.swp_ranking_handle {
    color: #9ca3af;
    font-size: 18px;
}

.swp_ranking_number {
    width: 28px;
    height: 28px;
    background: var(--accent1, #3b82f6);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 14px;
}

.swp_ranking_text {
    flex: 1;
    font-size: 14px;
    color: #374151;
}

/* Database table display styles for new field types */
.swp_ranking_db {
    min-width: 150px;
}

.swp_ranking_db .swp_ranking_item {
    padding: 6px 10px;
    font-size: 12px;
}

.swp_ranking_db .swp_ranking_number {
    width: 20px;
    height: 20px;
    font-size: 11px;
}

.swp_social_links_display {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.swp_social_links_display a {
    color: var(--accent1, #3b82f6);
    font-size: 18px;
    transition: color 0.2s;
}

.swp_social_links_display a:hover {
    color: var(--accent2, #2563eb);
}

.swp_imgselect_display {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
}

.swp_imgselect_thumb {
    width: 40px;
    height: 40px;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid #e5e7eb;
}

.swp_repeater_display {
    min-width: 80px;
}

.swp_repeater_count {
    color: #6b7280;
    font-size: 13px;
}

.swp_calculated_display {
    font-weight: 500;
    color: #374151;
}

.swp_empty {
    color: #9ca3af;
    font-size: 12px;
    font-style: italic;
}

/* Database table display styles for all new field types */
.swp_cp_db {
    display: inline-flex;
    align-items: center;
}

.swp_cp_db .select_colpic_chosen {
    width: 30px;
    height: 30px;
    border-radius: 4px;
    border: 1px solid #e5e7eb;
}

.swp_otp_display,
.swp_likert_display,
.swp_nps_display,
.swp_pwstrength_display,
.swp_daterange_display,
.swp_timerange_display,
.swp_fileupload_display,
.swp_richtext_display,
.swp_currency_display {
    font-size: 13px;
    color: #374151;
}

.swp_nps_score {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: var(--accent1, #3b82f6);
    color: white;
    border-radius: 50%;
    font-weight: 600;
    font-size: 12px;
}

.swp_signature_display {
    min-width: 60px;
}

.swp_sig_thumb {
    max-width: 80px;
    max-height: 40px;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
}

/* ============================================ */
/* 16. REPEATER FIELD                          */
/* ============================================ */
.swp_repeater_container {
    width: 100%;
}

.swp_repeater_items {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 12px;
}

.swp_repeater_item {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
}

.swp_repeater_header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
}

.swp_repeater_handle {
    color: #9ca3af;
    cursor: grab;
}

.swp_repeater_title {
    flex: 1;
    font-weight: 600;
    font-size: 14px;
    color: #374151;
}

.swp_repeater_remove {
    background: none;
    border: none;
    color: #ef4444;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 4px;
    transition: background 0.2s ease;
}

.swp_repeater_remove:hover {
    background: #fef2f2;
}

.swp_repeater_fields {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.swp_repeater_field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.swp_repeater_field label {
    font-size: 13px;
    font-weight: 500;
    color: #374151;
}

.swp_repeater_add {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 12px;
    border: 2px dashed #d1d5db;
    border-radius: 8px;
    background: transparent;
    color: #6b7280;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.swp_repeater_add:hover {
    border-color: var(--accent1, #3b82f6);
    color: var(--accent1, #3b82f6);
    background: #f0f9ff;
}

/* ============================================ */
/* 17. CALCULATED FIELD                        */
/* ============================================ */
.swp_calculated_container {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 10px 16px;
    background: #f3f4f6;
    border-radius: 8px;
    font-size: 18px;
}

.swp_calculated_prefix,
.swp_calculated_suffix {
    color: #6b7280;
}

.swp_calculated_value {
    font-weight: 600;
    color: #374151;
}

/* ============================================ */
/* DATABASE TABLE DISPLAY STYLES               */
/* ============================================ */
.swp_nps_detractor_cell {
    background-color: #fef2f2 !important;
    color: #991b1b;
}

.swp_nps_passive_cell {
    background-color: #fffbeb !important;
    color: #92400e;
}

.swp_nps_promoter_cell {
    background-color: #f0fdf4 !important;
    color: #166534;
}

/* ============================================ */
/* MOBILE RESPONSIVE STYLES                    */
/* ============================================ */
@media screen and (max-width: 767px) {

    /* OTP field */
    .swp_otp_digit {
        width: 40px;
        height: 45px;
        font-size: 20px;
    }

    /* Likert scale - stack vertically */
    .swp_likert_container {
        flex-direction: column;
    }

    .swp_likert_option {
        flex-direction: row;
        justify-content: flex-start;
        padding: 12px 16px;
        min-width: auto;
    }

    .swp_likert_radio {
        margin-bottom: 0;
        margin-right: 12px;
    }

    /* NPS - smaller */
    .swp_nps_number {
        padding: 8px 2px;
        font-size: 12px;
    }

    /* Date/Time range - stack */
    .swp_date_range_container,
    .swp_time_range_container {
        flex-direction: column;
        align-items: stretch;
    }

    .swp_date_range_separator,
    .swp_time_range_separator {
        text-align: center;
        padding: 5px 0;
    }

    /* Social links - hide URL */
    .swp_social_url {
        display: none;
    }

    /* Image select - 2 columns */
    .swp_image_select_container {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Rich text toolbar */
    .swp_rich_text_toolbar button {
        width: 36px;
        height: 36px;
    }

    /* Password requirements - single column */
    .swp_password_requirements {
        grid-template-columns: 1fr;
    }
}

/* ============================================ */
/* NEW FIELD TYPE SETTINGS PANELS              */
/* ============================================ */

/* Social Links Settings */
.swp_socialoptions {
    padding: 10px 0;
}

.swp_social_checkboxes {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.swp_checkbox_label {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
    transition: all 0.2s ease;
}

.swp_checkbox_label:hover {
    background: #f9fafb;
    border-color: #d1d5db;
}

.swp_checkbox_label input[type="checkbox"] {
    width: 16px;
    height: 16px;
    cursor: pointer;
}

.swp_checkbox_label i {
    font-size: 16px;
    color: #6b7280;
}

/* Field Builder Option Styles */
.swp_foption {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
    gap: 10px;
}

.swp_optiontag {
    min-width: 120px;
    font-size: 13px;
    color: #374151;
    font-weight: 500;
}

.swp_itemcnt {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    flex: 1;
}

.swp_itemcnt .swp_checkbox_label {
    margin: 0;
}

.swp_itemcnt input[type="number"],
.swp_itemcnt input[type="text"] {
    max-width: 200px;
}

/* Ticket and RSVP Options Panels */
.swp_ticketoptions,
.swp_rsvpoptions {
    padding: 15px;
    background: #f9fafb;
    border-radius: 8px;
    margin-top: 10px;
}

.swp_ticketoptions .swp_foption,
.swp_rsvpoptions .swp_foption {
    display: flex;
    align-items: flex-start;
    margin-bottom: 12px;
    gap: 10px;
}

.swp_ticketoptions .swp_optiontag,
.swp_rsvpoptions .swp_optiontag {
    min-width: 130px;
    padding-top: 6px;
}

.swp_hint {
    font-size: 11px;
    color: #6b7280;
    margin-left: 8px;
}

/* Image Select Settings */
.swp_imageoptions {
    padding: 10px 0;
}

.swp_imagelist {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 10px;
    min-height: 60px;
    padding: 10px;
    border: 1px dashed #d1d5db;
    border-radius: 8px;
}

.swp_imageitem {
    position: relative;
    width: 80px;
    height: 80px;
    border: 2px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
}

.swp_imageitem img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.swp_imageitem_remove {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #ef4444;
    color: white;
    border: none;
    cursor: pointer;
    font-size: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Ranking Settings */
.swp_rankingoptions {
    padding: 10px 0;
}

/* Repeater Settings */
.swp_repeateroptions {
    padding: 10px 0;
}

/* Calculated Field Settings */
.swp_calculatedoptions {
    padding: 10px 0;
}

/* Likert Settings */
.swp_likertoptions {
    padding: 10px 0;
}

/* OTP Settings */
.swp_otpoptions {
    padding: 10px 0;
}

.swp_currencyoptions {
    padding: 10px 0;
}

/* ============================================ */
/* IMPROVED COLOUR PICKER FIELD                */
/* ============================================ */
.select_colpicframe {
    display: flex;
    align-items: center;
    gap: 10px;
}

.select_colpic_dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1000;
    background: white;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    padding: 10px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.select_colpic_presets {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 6px;
    margin-bottom: 10px;
}

.select_colpic_preset {
    width: 24px;
    height: 24px;
    border-radius: 4px;
    border: 2px solid transparent;
    cursor: pointer;
    transition: transform 0.1s ease;
}

.select_colpic_preset:hover {
    transform: scale(1.15);
}

.select_colpic_preset.selected {
    border-color: #1f2937;
}

.select_colpic_custom {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-top: 10px;
    border-top: 1px solid #e5e7eb;
}

.select_colpic_custom input[type="color"] {
    width: 40px;
    height: 30px;
    padding: 0;
    border: none;
    cursor: pointer;
}

.select_colpic_custom input[type="text"] {
    width: 80px;
    padding: 6px 8px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    font-family: monospace;
    font-size: 12px;
}

/* Empty state messages for fields needing configuration */
.swp_ranking_empty,
.swp_image_select_empty {
    padding: 20px;
    text-align: center;
    color: #9ca3af;
    font-style: italic;
    background: #f9fafb;
    border: 2px dashed #e5e7eb;
    border-radius: 8px;
}

/* Calculated field hint - only visible in admin/settings, hidden on public forms */
.swp_calculated_hint {
    padding: 10px 16px;
    text-align: center;
    color: #9ca3af;
    font-style: italic;
    font-size: 13px;
    background: #f9fafb;
    border: 2px dashed #e5e7eb;
    border-radius: 8px;
    margin-top: 8px;
}

/* Hide empty calculated container when no formula on public forms */
#swp_formframe .swp_calculated_container.swp_no_formula {
    display: none;
}

/* Likert statement */
.swp_likert_statement {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
    margin-bottom: 12px;
}

.swp_likert_options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* ============================================
   Database Table - New Field Types Editable Styles
   ============================================ */

/* Colour picker in database table */
.swp_cp_db_container {
    display: flex;
    align-items: center;
    gap: 8px;
}

.swp_db_colorpicker {
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    cursor: pointer;
}

.swp_cp_label {
    font-family: monospace;
    font-size: 12px;
    color: #6b7280;
}

/* OTP input in database table */
.swp_otp_input {
    font-family: monospace;
    letter-spacing: 2px;
    text-align: center;
}

/* Select dropdowns in database table */
.swp_dbselectframe {
    padding: 4px 8px;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    background: white;
    font-size: 13px;
    min-width: 120px;
}

/* Date/Time range containers */
.swp_daterange_db_container,
.swp_timerange_db_container {
    display: flex;
    align-items: center;
    gap: 4px;
}

.swp_range_sep {
    color: #9ca3af;
    padding: 0 2px;
}

.swp_db_daterange,
.swp_db_timerange {
    width: auto;
    min-width: 100px;
}

/* Currency container */
.swp_currency_db_container {
    display: flex;
    align-items: center;
    gap: 4px;
}

.swp_cur_symbol {
    font-weight: 600;
    color: #6b7280;
}

.swp_cur_input {
    width: 100px;
}

/* Rich text in database table */
.swp_richtext_db_container {
    width: 100%;
}

.swp_db_richtext {
    min-height: 40px;
    padding: 6px 8px;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    background: white;
    font-size: 13px;
    overflow: auto;
    max-height: 100px;
}

.swp_db_richtext:focus {
    outline: none;
    border-color: var(--accent1, #2a9d90);
    box-shadow: 0 0 0 2px rgba(42, 157, 144, 0.1);
}

/* Social links display */
.swp_social_db_container {
    display: flex;
    gap: 8px;
    align-items: center;
}

.swp_social_db_link {
    color: #6b7280;
    font-size: 18px;
    transition: color 0.2s;
}

.swp_social_db_link:hover {
    color: var(--accent1, #2a9d90);
}

/* Image select display */
.swp_imgselect_db_container {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
}

.swp_imgselect_thumb {
    max-width: 40px;
    max-height: 40px;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    object-fit: cover;
}

/* File upload display */
.swp_fileupload_db_container {
    font-size: 13px;
}

.swp_fu_db_list {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.swp_fu_db_item a {
    color: var(--accent1, #2a9d90);
    text-decoration: none;
}

.swp_fu_db_item a:hover {
    text-decoration: underline;
}

/* Signature display */
.swp_signature_db_container {
    display: flex;
    align-items: center;
}

.swp_sig_thumb {
    max-width: 80px;
    max-height: 40px;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
}

/* Empty state styling */
.swp_empty {
    color: #9ca3af;
    font-style: italic;
    font-size: 12px;
}

/* NPS select styling */
.swp_nps_select {
    width: 60px;
    text-align: center;
}

/* ============================================
   Database Table - Enhanced Field Styles
   ============================================ */

/* Colour picker wrapper in database */
.swp_cp_db_wrapper {
    display: inline-block;
}

.swp_db_colpic {
    min-width: 100px;
}

/* Country selector in database */
.swp_db_country {
    min-width: 150px;
}

/* OTP digits in database */
.swp_otp_db_container {
    display: flex;
    gap: 4px;
}

.swp_db_otp_digit {
    width: 28px;
    height: 32px;
    text-align: center;
    font-family: monospace;
    font-size: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    padding: 0;
}

.swp_db_otp_digit:focus {
    border-color: var(--accent1, #2a9d90);
    outline: none;
    box-shadow: 0 0 0 2px rgba(42, 157, 144, 0.1);
}

/* Password with strength meter in database */
.swp_password_db_wrapper {
    width: 100%;
}

.swp_password_db_wrapper .swp_password_input_container {
    position: relative;
    display: flex;
    align-items: center;
}

.swp_password_db_wrapper .swp_password_toggle {
    position: absolute;
    right: 8px;
    cursor: pointer;
    color: #9ca3af;
}

.swp_password_db_wrapper .swp_password_toggle:hover {
    color: #6b7280;
}

.swp_password_db_wrapper .swp_password_strength_input {
    padding-right: 32px;
}

.swp_password_db_wrapper .swp_password_strength_meter {
    margin-top: 4px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.swp_password_db_wrapper .swp_strength_bar {
    flex: 1;
    height: 4px;
    background: #e5e7eb;
    border-radius: 2px;
    overflow: hidden;
}

.swp_password_db_wrapper .swp_strength_fill {
    height: 100%;
    width: 0;
    transition: width 0.3s, background-color 0.3s;
}

.swp_password_db_wrapper .swp_strength_text {
    font-size: 11px;
    white-space: nowrap;
}

/* Signature edit button */
.swp_signature_db_container {
    display: flex;
    align-items: center;
    gap: 8px;
}

.swp_sig_thumb {
    max-width: 80px;
    max-height: 40px;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    object-fit: contain;
}

.swp_sig_edit_btn {
    background: transparent;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    padding: 4px 8px;
    cursor: pointer;
    color: #6b7280;
    transition: all 0.2s;
}

.swp_sig_edit_btn:hover {
    background: #f3f4f6;
    border-color: var(--accent1, #2a9d90);
    color: var(--accent1, #2a9d90);
}

.swp_sig_edit_btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Signature modal */
.swp_sig_modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000;
}

.swp_sig_modal_content {
    background: white;
    border-radius: 8px;
    padding: 24px;
    max-width: 450px;
    width: 90%;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
}

.swp_sig_modal_content h3 {
    margin: 0 0 16px;
    font-size: 18px;
    font-weight: 600;
}

.swp_sig_modal_content .swp_signature_canvas {
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    background: #fafafa;
    cursor: crosshair;
}

.swp_sig_modal_content .swp_signature_controls {
    margin-top: 8px;
}

.swp_sig_modal_buttons {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 16px;
}

.swp_btn_primary {
    background: var(--accent1, #2a9d90);
    color: white;
    border: none;
    padding: 8px 16px;
    border-radius: 4px;
    cursor: pointer;
    font-weight: 500;
}

.swp_btn_primary:hover {
    opacity: 0.9;
}

.swp_btn_secondary {
    background: white;
    color: #374151;
    border: 1px solid #e5e7eb;
    padding: 8px 16px;
    border-radius: 4px;
    cursor: pointer;
}

.swp_btn_secondary:hover {
    background: #f9fafb;
}

/* Image select thumbnails */
.swp_imgselect_db_container {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    align-items: center;
}

.swp_imgselect_thumb {
    width: 40px;
    height: 40px;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    object-fit: cover;
}

/* Ranking in database - enhanced */
.swp_ranking_db {
    padding: 4px;
    background: #f9fafb;
    border-radius: 4px;
    min-width: 150px;
}

.swp_ranking_db .swp_ranking_item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 8px;
    margin: 2px 0;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    cursor: grab;
    transition: all 0.15s;
}

.swp_ranking_db .swp_ranking_item:hover {
    border-color: var(--accent1, #2a9d90);
}

.swp_ranking_db .swp_ranking_item.dragging {
    opacity: 0.5;
    border-style: dashed;
}

.swp_ranking_db.swp_ranking_disabled .swp_ranking_item {
    cursor: default;
    background: #f3f4f6;
}

.swp_ranking_db .swp_ranking_handle {
    color: #9ca3af;
    cursor: grab;
}

.swp_ranking_db .swp_ranking_number {
    background: var(--accent1, #2a9d90);
    color: white;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 600;
}

.swp_ranking_db .swp_ranking_text {
    flex: 1;
    font-size: 13px;
}

/* ============================================
   Social Links - Database Table Edit Mode
   ============================================ */
.swp_social_db_edit_container {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 180px;
}

.swp_social_edit_btn {
    background: transparent;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    padding: 4px 8px;
    cursor: pointer;
    color: #6b7280;
    font-size: 12px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    width: fit-content;
    transition: all 0.2s;
}

.swp_social_edit_btn:hover {
    background: #f3f4f6;
    border-color: var(--accent1, #2a9d90);
    color: var(--accent1, #2a9d90);
}

.swp_social_edit_btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.swp_social_db_preview {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.swp_social_db_inputs {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px;
    background: #f9fafb;
    border-radius: 4px;
    margin-top: 4px;
}

.swp_social_input_row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.swp_social_input_icon {
    width: 20px;
    text-align: center;
    color: #6b7280;
}

.swp_social_db_input {
    flex: 1;
    font-size: 12px;
    padding: 4px 8px;
}

/* ============================================
   Repeater - Database Table Editable
   ============================================ */
.swp_repeater_db_container {
    min-width: 200px;
}

.swp_repeater_db_items {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 8px;
}

.swp_repeater_db_item {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    overflow: hidden;
}

.swp_repeater_db_header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 10px;
    background: #f3f4f6;
    border-bottom: 1px solid #e5e7eb;
}

.swp_repeater_db_title {
    font-weight: 500;
    font-size: 12px;
    color: #374151;
}

.swp_repeater_db_remove {
    background: transparent;
    border: none;
    cursor: pointer;
    color: #9ca3af;
    padding: 2px 6px;
    border-radius: 4px;
    transition: all 0.2s;
}

.swp_repeater_db_remove:hover {
    background: #fee2e2;
    color: #dc2626;
}

.swp_repeater_db_remove:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.swp_repeater_db_content {
    padding: 8px 10px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.swp_repeater_db_field {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.swp_repeater_db_label {
    font-size: 11px;
    color: #6b7280;
    font-weight: 500;
}

.swp_repeater_db_input {
    font-size: 13px;
    padding: 4px 8px;
}

.swp_repeater_db_add {
    display: flex;
    align-items: center;
    gap: 4px;
    background: var(--accent1, #2a9d90);
    color: white;
    border: none;
    padding: 6px 12px;
    border-radius: 4px;
    font-size: 12px;
    cursor: pointer;
    transition: all 0.2s;
}

.swp_repeater_db_add:hover {
    opacity: 0.9;
}

.swp_repeater_db_add:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.swp_repeater_db_empty {
    padding: 12px;
    text-align: center;
    color: #9ca3af;
    font-size: 12px;
    font-style: italic;
}

/* ============================================
   File Upload - Database Table
   ============================================ */
.swp_fileupload_db_container {
    min-width: 150px;
}

.swp_fu_db_list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 8px;
}

.swp_fu_db_item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 8px;
    background: #f3f4f6;
    border-radius: 4px;
    font-size: 12px;
}

.swp_fu_db_link {
    flex: 1;
    color: var(--accent1, #2a9d90);
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.swp_fu_db_link:hover {
    text-decoration: underline;
}

.swp_fu_db_remove {
    background: transparent;
    border: none;
    color: #9ca3af;
    cursor: pointer;
    padding: 2px;
    border-radius: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.swp_fu_db_remove:hover {
    background: #fee2e2;
    color: #dc2626;
}

.swp_fu_db_remove:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.swp_fu_db_upload {
    display: flex;
    align-items: center;
}

.swp_fu_db_input {
    display: none;
}

.swp_fu_db_btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    background: var(--accent1, #2a9d90);
    color: white;
    border-radius: 4px;
    font-size: 12px;
    cursor: pointer;
    transition: all 0.2s;
}

.swp_fu_db_btn:hover {
    opacity: 0.9;
}

.swp_fu_db_btn[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Ensure repeater inputs are editable */
.swp_repeater_db_input {
    width: 100%;
    box-sizing: border-box;
}

.swp_repeater_db_input:not([disabled]) {
    background-color: #fff;
    cursor: text;
}

.swp_repeater_db_input:focus {
    outline: 2px solid var(--accent1, #2a9d90);
    outline-offset: -2px;
}

/* ============================================
   Calculated Field Formula Builder
   ============================================ */
.swp_calc_fields_list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-height: 60px;
    max-height: 180px;
    overflow-y: auto;
    padding: 10px;
    background: #f9fafb;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
}

.swp_calc_fields_hint {
    width: 100%;
    font-size: 12px;
    color: #6b7280;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.swp_calc_fields_hint i {
    color: var(--accent1, #2a9d90);
}

.swp_calc_no_fields {
    width: 100%;
    font-size: 12px;
    color: #9ca3af;
    font-style: italic;
    padding: 12px;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.swp_calc_no_fields i {
    font-size: 16px;
}

.swp_calc_field_btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: white;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s;
    text-align: left;
}

.swp_calc_field_btn:hover {
    border-color: var(--accent1, #2a9d90);
    background: #f0fdfa;
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.swp_calc_field_icon {
    font-size: 16px;
    color: var(--accent1, #2a9d90);
    width: 20px;
    text-align: center;
}

.swp_calc_field_info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.swp_calc_field_name {
    font-size: 12px;
    font-weight: 600;
    color: #374151;
}

.swp_calc_field_id {
    font-size: 10px;
    color: #9ca3af;
    font-family: monospace;
}

.swp_calc_refresh_btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    background: #f3f4f6;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    font-size: 11px;
    color: #4b5563;
    cursor: pointer;
    transition: all 0.2s;
}

.swp_calc_refresh_btn:hover {
    background: #e5e7eb;
}

.swp_calc_operators {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.swp_calc_operators button {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: white;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 18px;
    font-weight: 500;
    color: #374151;
    cursor: pointer;
    transition: all 0.2s;
}

.swp_calc_operators button:hover {
    border-color: var(--accent1, #2a9d90);
    background: #f0fdfa;
    color: var(--accent1, #2a9d90);
}

/* Functions section */
.swp_calc_functions {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.swp_calc_functions button {
    padding: 6px 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: white;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 600;
    color: #374151;
    cursor: pointer;
    transition: all 0.2s;
    font-family: monospace;
}

.swp_calc_functions button:hover {
    border-color: #6366f1;
    background: #eef2ff;
    color: #6366f1;
}

/* Formula wrapper with clear button */
.swp_calc_formula_wrapper {
    display: flex;
    gap: 8px;
    align-items: stretch;
}

.swp_calc_formula_input {
    flex: 1;
    font-family: monospace !important;
    font-size: 13px !important;
}

.swp_calc_clear_btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    background: #fee2e2;
    border: 1px solid #fecaca;
    border-radius: 4px;
    color: #dc2626;
    cursor: pointer;
    transition: all 0.2s;
}

.swp_calc_clear_btn:hover {
    background: #fecaca;
    border-color: #f87171;
}

/* Preview section */
.swp_calc_preview {
    padding: 12px;
    background: #f9fafb;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
    font-size: 14px;
    line-height: 1.6;
    min-height: 20px;
    word-break: break-word;
}

.swp_calc_preview_empty {
    color: #9ca3af;
    font-style: italic;
}

.swp_calc_preview_valid {
    border-color: #86efac;
    background: #f0fdf4;
}

.swp_calc_preview_error {
    border-color: #fecaca;
    background: #fef2f2;
}

.swp_calc_preview_field {
    display: inline-block;
    background: #dbeafe;
    color: #1d4ed8;
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: 500;
    font-size: 13px;
}

.swp_calc_preview_op {
    display: inline-block;
    color: #f97316;
    font-weight: 700;
    font-size: 16px;
    padding: 0 2px;
}

.swp_calc_preview_func {
    display: inline-block;
    background: #f3e8ff;
    color: #7c3aed;
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: 600;
    font-size: 11px;
    font-family: monospace;
}

/* ============================================
   Modal Styles for Form Text and Fill Blanks
   ============================================ */
.swp_modal_overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000;
}

.swp_modal_content {
    background: white;
    border-radius: 8px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3);
    max-width: 600px;
    width: 90%;
    max-height: 90vh;
    overflow: auto;
}

.swp_modal_header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
}

.swp_modal_header h3 {
    margin: 0;
    font-size: 18px;
    color: #111827;
}

.swp_modal_close {
    background: none;
    border: none;
    font-size: 20px;
    cursor: pointer;
    color: #6b7280;
    padding: 4px;
}

.swp_modal_close:hover {
    color: #111827;
}

.swp_modal_body {
    padding: 20px;
}

.swp_modal_hint {
    font-size: 13px;
    color: #6b7280;
    margin-bottom: 12px;
}

.swp_modal_example {
    font-size: 12px;
    color: #9ca3af;
    background: #f9fafb;
    padding: 8px 12px;
    border-radius: 4px;
    margin-bottom: 12px;
}

.swp_modal_example code {
    background: #e5e7eb;
    padding: 2px 6px;
    border-radius: 3px;
    font-family: monospace;
}

.swp_modal_footer {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 16px 20px;
    border-top: 1px solid #e5e7eb;
}

.swp_btn_cancel {
    padding: 8px 16px;
    background: #f3f4f6;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
}

.swp_btn_cancel:hover {
    background: #e5e7eb;
}

.swp_btn_save {
    padding: 8px 16px;
    background: var(--accent1, #2a9d90);
    color: white;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
}

.swp_btn_save:hover {
    opacity: 0.9;
}

/* Form Text Editor */
.swp_ftext_editor {
    min-height: 150px;
    padding: 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    outline: none;
}

.swp_ftext_editor:focus {
    border-color: var(--accent1, #2a9d90);
    box-shadow: 0 0 0 3px rgba(42, 157, 144, 0.1);
}

/* Fill Blanks Editor */
.swp_fillblanks_editor {
    width: 100%;
    padding: 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-family: inherit;
    font-size: 14px;
    resize: vertical;
}

.swp_fillblanks_editor:focus {
    outline: none;
    border-color: var(--accent1, #2a9d90);
    box-shadow: 0 0 0 3px rgba(42, 157, 144, 0.1);
}

.swp_fillblanks_preview_section {
    margin-top: 16px;
}

.swp_fillblanks_preview_section h4 {
    margin: 0 0 8px 0;
    font-size: 14px;
    color: #374151;
}

.swp_fillblanks_preview {
    padding: 12px;
    background: #f9fafb;
    border-radius: 6px;
    min-height: 40px;
    line-height: 2;
}

.swp_fillblanks_input_preview {
    display: inline-block;
    width: 100px;
    padding: 4px 8px;
    border: 1px dashed #d1d5db;
    border-radius: 4px;
    background: white;
    margin: 0 4px;
    text-align: center;
}

/* Image select text fallback */
.swp_imgselect_text {
    display: inline-block;
    padding: 4px 8px;
    background: #f3f4f6;
    border-radius: 4px;
    font-size: 12px;
    color: #6b7280;
    margin: 2px;
}

/* Validation input styles */
.select_valid {
    border-color: #10b981 !important;
}

.select_invalid {
    border-color: #ef4444 !important;
}

/* Short field widths - prevent date, time, color from filling whole row */
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="color"],
input[type="month"],
input[type="week"] {
    max-width: 250px;
}

input[type="color"] {
    max-width: 100px;
    height: 40px;
    padding: 4px;
    cursor: pointer;
}

/* OTP field container */
.swp_otp_container {
    display: flex;
    gap: 8px;
    max-width: 300px;
}

.swp_otp_digit {
    width: 45px !important;
    height: 50px;
    text-align: center;
    font-size: 24px;
    font-weight: bold;
}

/* Currency field in database table - max width constraint */
.swp_dbtdata .swp_currency_wrapper {
    max-width: 200px;
}

.swp_dbtdata .swp_currency_input {
    max-width: 150px;
}

/* Star rating compact */
.swp_star_rating {
    max-width: 300px;
}

/* Slider field */
.swp_slider_container {
    max-width: 400px;
}

/* Validation message styling */
.select_validation_message {
    font-size: 12px;
    color: #ef4444;
    margin-top: 6px;
    padding: 8px 12px;
    background: #fef2f2;
    border-left: 4px solid #ef4444;
    border-radius: 0 4px 4px 0;
    display: none;
}

.select_validation_icon {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
}

/* ============================================
   ADDRESS FIELD STYLES
   ============================================ */

/* Database table address container */
.select_address_db_container {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 32px;
}

.select_address_summary {
    flex: 1;
    font-size: 13px;
    color: #374151;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.select_address_db_buttons {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}

.select_address_edit_btn,
.select_address_map_btn {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    padding: 4px 8px;
    cursor: pointer;
    color: #6b7280;
    font-size: 14px;
    transition: all 0.15s ease;
}

.select_address_edit_btn:hover,
.select_address_map_btn:hover {
    background: #f9fafb;
    border-color: #d1d5db;
    color: #374151;
}

.select_address_edit_btn:disabled,
.select_address_edit_btn.select_disabled,
.select_address_map_btn:disabled,
.select_address_map_btn.select_disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

.select_address_map_btn {
    color: #2a9d90;
}

.select_address_map_btn:hover {
    color: #1f7a6e;
    border-color: #2a9d90;
}

/* Address modal styles */
.select_address_modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000;
}

.select_address_modal_content {
    background: white;
    border-radius: 8px;
    padding: 24px;
    max-width: 500px;
    width: 90%;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
}

.select_address_modal_content h3 {
    margin: 0 0 16px;
    font-size: 18px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
}

.select_address_form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.select_address_field_row {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.select_address_field_row label {
    font-size: 13px;
    font-weight: 500;
    color: #374151;
}

.select_address_input {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    font-size: 14px;
    color: #1f2937;
    transition: border-color 0.15s ease;
    box-sizing: border-box;
}

.select_address_input:focus {
    outline: none;
    border-color: #2a9d90;
    box-shadow: 0 0 0 2px rgba(42, 157, 144, 0.1);
}

.select_address_input::placeholder {
    color: #9ca3af;
}

.select_address_row_split {
    flex-direction: row;
    gap: 12px;
}

.select_address_field_col {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.select_address_modal_buttons {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 16px;
}

.select_btn_primary {
    background: var(--accent1, #2a9d90);
    color: white;
    border: none;
    padding: 8px 16px;
    border-radius: 4px;
    cursor: pointer;
    font-weight: 500;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.select_btn_primary:hover {
    opacity: 0.9;
}

.select_btn_secondary {
    background: white;
    color: #374151;
    border: 1px solid #e5e7eb;
    padding: 8px 16px;
    border-radius: 4px;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.select_btn_secondary:hover {
    background: #f9fafb;
}

/* Map modal styles */
.select_map_modal_content {
    max-width: 600px !important;
}

.select_map_address_display {
    background: #f3f4f6;
    padding: 10px 12px;
    border-radius: 4px;
    font-size: 13px;
    color: #4b5563;
    margin-bottom: 12px;
}

.select_map_container {
    width: 100%;
    height: 300px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    overflow: hidden;
    position: relative;
}

.select_map_iframe {
    width: 100%;
    height: 100%;
    border: none;
}

.select_map_loading {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #6b7280;
    font-size: 14px;
}

.select_map_loading i {
    margin-right: 8px;
}

.select_map_error {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #ef4444;
    font-size: 14px;
    text-align: center;
    padding: 20px;
}

.select_map_error i {
    display: block;
    font-size: 24px;
    margin-bottom: 8px;
}

.select_map_actions {
    display: flex;
    gap: 8px;
    margin-top: 12px;
    flex-wrap: wrap;
}

.select_map_actions a {
    text-decoration: none;
    font-size: 13px;
}

.select_map_actions a i {
    margin-right: 4px;
}

/* Form address field styles */
.select_address_form_container {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.select_address_form_row {
    display: flex;
    gap: 8px;
}

.select_address_form_input {
    flex: 1;
}

.select_address_form_split {
    display: flex;
    gap: 8px;
}

.select_address_form_half {
    flex: 1;
    min-width: 0;
}

.select_address_form_actions {
    margin-top: 4px;
}

.select_address_form_map_btn {
    background: white;
    border: 1px solid #2a9d90;
    border-radius: 4px;
    padding: 6px 12px;
    cursor: pointer;
    color: #2a9d90;
    font-size: 13px;
    transition: all 0.15s ease;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.select_address_form_map_btn:hover {
    background: #2a9d90;
    color: white;
}

.select_address_form_map_btn i {
    font-size: 14px;
}

/* === DATABASE INDEX COLUMN === */
.swp_dbindex_header {
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
}

.swp_dbindex_cell {
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    text-align: center;
    background: #f9fafb;
    font-size: 11px;
    font-weight: 500;
    color: #6b7280;
}

/* ============================================
   TICKET SALES FIELD STYLES
   ============================================ */

/* Form ticket container */
.select_ticket_container {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}

.select_ticket_list {
    padding: 0;
}

.select_ticket_row {
    display: flex;
    align-items: center;
    padding: 12px 16px;
    border-bottom: 1px solid #e5e7eb;
    gap: 12px;
}

.select_ticket_row:last-child {
    border-bottom: none;
}

.select_ticket_info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.select_ticket_name {
    font-weight: 500;
    color: #1f2937;
}

.select_ticket_price {
    font-size: 13px;
    color: #6b7280;
}

.select_ticket_qty {
    display: flex;
    align-items: center;
    gap: 8px;
}

.select_ticket_btn {
    width: 32px;
    height: 32px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    background: #f9fafb;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
}

.select_ticket_btn:hover {
    background: #e5e7eb;
    border-color: #9ca3af;
}

.select_ticket_input {
    width: 50px;
    text-align: center;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    padding: 6px;
    font-size: 14px;
}

.select_ticket_subtotal {
    min-width: 80px;
    text-align: right;
    font-weight: 500;
    color: #374151;
}

.select_ticket_total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px;
    background: #f3f4f6;
    border-top: 2px solid #e5e7eb;
    font-weight: 600;
}

.select_ticket_total_label {
    font-size: 15px;
    color: #374151;
}

.select_ticket_total_value {
    font-size: 18px;
    color: #059669;
}

/* Database table ticket display */
.select_ticket_db_wrapper {
    position: relative;
    padding-right: 45px;
    min-height: 32px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.select_ticket_db_summary {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    flex-wrap: wrap;
}

.select_ticket_db_count {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #4b5563;
}

.select_ticket_db_count i {
    color: #6366f1;
}

.select_ticket_db_total {
    font-weight: 600;
    color: #059669;
}

/* Inline edit button within summary row (replaces absolute positioning for ticket field) */
.swp_db_edit_btn_inline {
    position: static !important;
    transform: none !important;
    margin-left: auto;
    flex-shrink: 0;
}

/* Per-ticket detail table in DB form */
.swp_db_ticket_detail_table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
    margin: 8px 0 4px 0;
}
.swp_db_ticket_detail_table thead th {
    text-align: left;
    padding: 4px 8px;
    color: #64748b;
    font-weight: 600;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border-bottom: 1px solid #e2e8f0;
    white-space: nowrap;
}
.swp_db_ticket_detail_table tbody td {
    padding: 5px 8px;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
}
.swp_db_ticket_detail_table tbody tr:last-child td {
    border-bottom: none;
}
.swp_db_ticket_row_refunded td {
    opacity: 0.6;
    text-decoration: line-through;
}
.swp_db_ticket_row_refunded .swp_tk_status {
    text-decoration: none;
}
.swp_db_ticket_code {
    font-family: monospace;
    font-size: 11px;
    color: #64748b;
    background: #f8fafc;
    padding: 1px 5px;
    border-radius: 3px;
    border: 1px solid #e2e8f0;
}

/* Ticket status badges (shared with tickets page) */
.swp_tk_type_badge {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 12px;
    background: #ede9fe;
    color: #6366f1;
    font-size: 12px;
    font-weight: 600;
}
.swp_tk_status {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 12px;
}
.swp_tk_status_checked {
    background: #dcfce7;
    color: #16a34a;
}
.swp_tk_status_pending {
    background: #f1f5f9;
    color: #94a3b8;
}
.swp_tk_status_refunded {
    background: #fef2f2;
    color: #ef4444;
}

/* Ticket modal styles */
.select_ticket_modal_list {
    margin-bottom: 15px;
}

.select_ticket_modal_row {
    display: flex;
    align-items: center;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    margin-bottom: 8px;
    gap: 12px;
}

.select_ticket_modal_info {
    flex: 1;
}

.select_ticket_modal_name {
    font-weight: 500;
    display: block;
}

.select_ticket_modal_price {
    font-size: 13px;
    color: #6b7280;
}

.select_ticket_modal_qty {
    display: flex;
    align-items: center;
    gap: 6px;
}

.select_ticket_modal_btn {
    width: 28px;
    height: 28px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    background: #f9fafb;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.select_ticket_modal_btn:hover {
    background: #e5e7eb;
}

.select_ticket_modal_input {
    width: 50px;
    text-align: center;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    padding: 4px;
}

.select_ticket_modal_total {
    display: flex;
    justify-content: space-between;
    padding: 12px;
    background: #f3f4f6;
    border-radius: 6px;
    font-weight: 600;
}

.select_ticket_modal_subtotal {
    min-width: 70px;
    text-align: right;
    font-weight: 500;
    color: #374151;
    font-size: 14px;
}

.select_ticket_modal_name_wrap {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.select_ticket_modal_desc {
    font-size: 12px;
    color: #6b7280;
    font-weight: normal;
}

/* Form ticket description */
.select_ticket_name_wrap {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.select_ticket_desc {
    font-size: 12px;
    color: #6b7280;
    font-weight: normal;
}

/* Field options ticket type editor */
.swp_ticket_types_list {
    margin-bottom: 10px;
}

.swp_ticket_type_item {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 10px;
    margin-bottom: 8px;
    transition: opacity 0.2s, box-shadow 0.2s, border-color 0.2s;
}

.swp_ticket_type_item:hover {
    border-color: #d1d5db;
}

.swp_ticket_type_item.swp_ticket_dragging {
    opacity: 0.4;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    border-color: #818cf8;
}

.swp_ticket_type_row {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 8px;
}

.swp_ticket_drag_handle {
    cursor: grab;
    color: #9ca3af;
    font-size: 18px;
    padding: 4px 2px;
    display: flex;
    align-items: center;
    user-select: none;
    border-radius: 3px;
    transition: color 0.15s, background 0.15s;
}

.swp_ticket_drag_handle:hover {
    color: #4b5563;
    background: #e5e7eb;
}

.swp_ticket_drag_handle:active {
    cursor: grabbing;
}

.swp_ticket_reorder_btns {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.swp_ticket_move_btn {
    width: 22px;
    height: 16px;
    border: 1px solid #e5e7eb;
    background: #fff;
    color: #6b7280;
    border-radius: 3px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    padding: 0;
    line-height: 1;
    transition: all 0.15s;
}

.swp_ticket_move_btn:hover {
    background: #f3f4f6;
    border-color: #d1d5db;
    color: #374151;
}

.swp_ticket_type_row .swp_ticket_name {
    flex: 2;
}

.swp_ticket_type_row .swp_ticket_price {
    width: 100px;
}

.swp_ticket_type_item .swp_ticket_desc {
    width: calc(100% - 52px);
    margin-left: 52px;
}

.swp_ticket_remove_btn {
    width: 28px;
    height: 28px;
    border: none;
    background: #fee2e2;
    color: #dc2626;
    border-radius: 4px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    flex-shrink: 0;
}

.swp_ticket_remove_btn:hover {
    background: #fecaca;
}

/* ============================================
   RSVP FIELD STYLES
   ============================================ */

/* Form RSVP container */
.select_rsvp_container {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px;
    background: #fff;
}

.select_rsvp_response {
    margin-bottom: 16px;
}

.select_rsvp_label {
    display: block;
    font-weight: 500;
    margin-bottom: 8px;
    color: #374151;
}

.select_rsvp_options {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.select_rsvp_option {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    border: 2px solid #e5e7eb;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s;
    flex: 1;
    min-width: 120px;
    justify-content: center;
}

.select_rsvp_option:hover {
    border-color: #9ca3af;
}

.select_rsvp_option input {
    display: none;
}

.select_rsvp_yes:has(input:checked) {
    border-color: #10b981;
    background: #ecfdf5;
    color: #059669;
}

.select_rsvp_maybe:has(input:checked) {
    border-color: #f59e0b;
    background: #fffbeb;
    color: #d97706;
}

.select_rsvp_no:has(input:checked) {
    border-color: #ef4444;
    background: #fef2f2;
    color: #dc2626;
}

.select_rsvp_icon {
    font-size: 20px;
}

.select_rsvp_text {
    font-weight: 500;
}

.select_rsvp_guests {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #e5e7eb;
}

.select_rsvp_guest_selector {
    display: flex;
    align-items: center;
    gap: 8px;
}

.select_rsvp_btn {
    width: 32px;
    height: 32px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    background: #f9fafb;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.select_rsvp_btn:hover {
    background: #e5e7eb;
}

.select_rsvp_guest_input {
    width: 60px;
    text-align: center;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    padding: 8px;
    font-size: 16px;
}

.select_rsvp_dietary,
.select_rsvp_comments {
    margin-top: 16px;
}

.select_rsvp_input {
    width: 100%;
    padding: 10px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
}

.select_rsvp_textarea {
    width: 100%;
    padding: 10px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    min-height: 80px;
    resize: vertical;
}

/* Database table RSVP display */
.select_rsvp_db_wrapper {
    position: relative;
    padding-right: 45px;
    min-height: 32px;
    display: flex;
    align-items: center;
}

.select_rsvp_db_status {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    border-radius: 20px;
    font-weight: 500;
    font-size: 13px;
}

.select_rsvp_db_pending {
    background: #f3f4f6;
    color: #6b7280;
}

.select_rsvp_db_yes {
    background: #d1fae5;
    color: #059669;
}

.select_rsvp_db_maybe {
    background: #fef3c7;
    color: #d97706;
}

.select_rsvp_db_no {
    background: #fee2e2;
    color: #dc2626;
}

.select_rsvp_db_guests {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: #e0e7ff;
    color: #4338ca;
    padding: 4px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
    margin-left: 8px;
}

.select_rsvp_db_guests i {
    font-size: 14px;
}

/* RSVP modal styles */
.select_rsvp_modal_form {
    margin-bottom: 15px;
}

.select_rsvp_modal_section {
    margin-bottom: 16px;
}

.select_rsvp_modal_label {
    display: block;
    font-weight: 500;
    margin-bottom: 8px;
    color: #374151;
}

.select_rsvp_modal_options {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.select_rsvp_modal_option {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 16px;
    border: 2px solid #e5e7eb;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s;
}

.select_rsvp_modal_option:hover {
    border-color: #9ca3af;
}

.select_rsvp_modal_option input {
    display: none;
}

.select_rsvp_modal_yes:has(input:checked) {
    border-color: #10b981;
    background: #ecfdf5;
    color: #059669;
}

.select_rsvp_modal_maybe:has(input:checked) {
    border-color: #f59e0b;
    background: #fffbeb;
    color: #d97706;
}

.select_rsvp_modal_no:has(input:checked) {
    border-color: #ef4444;
    background: #fef2f2;
    color: #dc2626;
}

/* ============================================
   MODERNISED SELECT FRAME STYLES
   ============================================ */

/* ===========================================
   FRAME CONTAINERS - Shared base styles
   =========================================== */
.select_singleframe,
.select_multiframe,
.select_tagframe {
    display: inline-block;
    vertical-align: middle;
}

/* ===========================================
   SINGLE DROPDOWN - Modern compact style
   =========================================== */
.select_singledropdown {
    display: inline-block;
    width: 100%;
    min-height: 32px;
    padding: 6px 28px 6px 10px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    background-color: #fff;
    color: #374151;
    font-size: 13px;
    line-height: 1.4;
    cursor: pointer;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s;
    position: relative;
}

.select_singledropdown:hover {
    border-color: #9ca3af;
}

.select_singledropdown:focus {
    outline: none;
    border-color: var(--accent1, #0073aa);
    box-shadow: 0 0 0 2px rgba(0, 115, 170, 0.15);
}

.select_singledropdown:after {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    content: "\25bc";
    color: #9ca3af;
    font-size: 10px;
    float: none;
    margin: 0;
}

.select_singledropdown:empty:not(:focus):before {
    content: attr(empty-text);
    color: #9ca3af;
    opacity: 1;
}

/* ===========================================
   MULTI DROPDOWN - Modern compact style
   =========================================== */
.select_multidropdown {
    display: inline-block;
    width: 100%;
    min-height: 32px;
    padding: 6px 28px 6px 10px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    background-color: #fff;
    color: #374151;
    font-size: 13px;
    line-height: 1.4;
    cursor: pointer;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s;
    position: relative;
}

.select_multidropdown:hover {
    border-color: #9ca3af;
}

.select_multidropdown:focus {
    outline: none;
    border-color: var(--accent1, #0073aa);
    box-shadow: 0 0 0 2px rgba(0, 115, 170, 0.15);
}

.select_multidropdown:after {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    content: "\25bc";
    color: #9ca3af;
    font-size: 10px;
    float: none;
    margin: 0;
}

.select_multidropdown:empty:not(:focus):before {
    content: attr(empty-text);
    color: #9ca3af;
    opacity: 1;
    margin: 0;
    padding: 0;
}

/* ===========================================
   TAG BOX - Modern compact style
   =========================================== */
.select_tagbox {
    display: inline-block;
    width: 100%;
    min-height: 32px;
    padding: 3px 6px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    background-color: #fff;
    cursor: text;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.select_tagbox:hover {
    border-color: #9ca3af;
}

.select_tagbox:focus-within {
    border-color: var(--accent1, #0073aa);
    box-shadow: 0 0 0 2px rgba(0, 115, 170, 0.15);
}

/* ===========================================
   TAG INPUT - Text entry inside tag box
   =========================================== */
.select_taginput {
    display: inline-block;
    margin: 3px 2px;
    padding: 2px 6px;
    border: none;
    border-radius: 3px;
    background: transparent;
    font-size: 13px;
    line-height: 1.4;
    max-width: 100%;
    outline: none;
}

.select_taginput:focus {
    background-color: var(--accent1, #0073aa);
    color: #ffffff;
}

.select_taginput:first-child:nth-last-child(3):empty:not(:focus):before {
    content: attr(empty-text);
    color: #9ca3af;
    opacity: 1;
}

/* ===========================================
   TAG CLEAR - Clear all button in tag box
   =========================================== */
.select_tagclear {
    float: right;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #f3f4f6;
    color: #6b7280;
    margin: 2px 2px;
    padding: 0 6px;
    height: 22px;
    border: 1px solid #e5e7eb;
    border-radius: 3px;
    font-size: 12px;
    line-height: 1;
    cursor: pointer;
    transition: all 0.15s;
    vertical-align: middle;
    box-sizing: border-box;
}

.select_tagclear:hover {
    background-color: #fef2f2;
    color: #ef4444;
    border-color: #fecaca;
}

/* ===========================================
   SINGLE CLEAR - Clear field button
   =========================================== */
.select_singleclear {
    display: block;
    background-color: #f3f4f6;
    color: #374151;
    margin: 2px 0;
    padding: 2px 8px;
    border: 1px solid #e5e7eb;
    border-radius: 3px;
    font-size: 12px;
    line-height: 1.4;
    cursor: pointer;
    transition: all 0.15s;
}

.select_singleclear:hover {
    background-color: var(--accent1, #0073aa);
    color: #ffffff;
    border-color: var(--accent1, #0073aa);
}

/* ===========================================
   SEARCH INPUT - Inside dropdowns
   =========================================== */
.select_search {
    display: block;
    margin: 2px 0 4px 0;
    padding: 4px 8px;
    color: #374151;
    background-color: #f3f4f6;
    border: 1px solid #d1d5db;
    border-radius: 3px;
    font-size: 13px;
    line-height: 1.4;
    min-height: 22px;
    outline: none;
    box-sizing: border-box;
}

.select_search:focus {
    background-color: #fff;
    border-color: var(--accent1, #0073aa);
    color: #374151;
    padding: 4px 8px;
}

.select_search br {
    display: none;
}

.select_singlesearch {
    display: block;
    margin: 2px 0 4px 0;
    padding: 4px 8px;
    color: #374151;
    background-color: #f3f4f6;
    border: 1px solid #d1d5db;
    border-radius: 3px;
    font-size: 13px;
    line-height: 1.4;
    min-height: 22px;
    outline: none;
    box-sizing: border-box;
}

.select_singlesearch:focus {
    background-color: #fff;
    border-color: var(--accent1, #0073aa);
    color: #374151;
    padding: 4px 8px;
}

.select_singlesearch br {
    display: none;
}

/* ===========================================
   MULTI DELETE - X button on selected items
   =========================================== */
.select_multidelete {
    display: inline-block;
    margin-left: 4px;
    color: #9ca3af;
    font-size: 12px;
    cursor: pointer;
    transition: color 0.15s;
}

.select_multidelete:hover {
    color: #ef4444;
}

/* ===========================================
   SELECT VALUE - Selected item text
   =========================================== */
.select_value {
    max-width: 100%;
    display: inline-block;
    word-wrap: break-word;
    font-size: 13px;
    line-height: 1.4;
}

/* ===========================================
   SELECT INPUT - Contenteditable field
   =========================================== */
.select_input {
    display: inline-block;
    min-width: 320px;
    min-height: 24px;
    max-height: 400px;
    padding: 6px 8px;
    margin: 0;
    border: none;
    border-bottom: 2px solid #e5e7eb;
    border-radius: 0;
    background-color: transparent;
    color: #374151;
    font-size: 14px;
    line-height: 1.4;
    vertical-align: middle;
    overflow: auto;
    transition: border-color 0.15s;
}

.select_input:hover {
    border-bottom-color: #9ca3af;
}

.select_input:focus {
    outline: none;
    border-bottom-color: var(--accent1, #0073aa);
}

.select_input[contenteditable] {
    outline: none;
}

.select_input:empty:before {
    content: attr(data-text);
    color: #9ca3af;
}

/* ===========================================
   DROPDOWN MENU - Modern responsive style
   =========================================== */
.select_dropdown {
    visibility: visible;
    display: block;
    min-width: 200px;
    width: 100%;
    max-width: 500px;
    min-height: 40px;
    max-height: 180px;
    overflow-y: auto;
    overflow-x: hidden;
    background-color: #ffffff;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    margin-top: 4px;
    padding: 4px;
    z-index: 3;
    position: absolute;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.select_dropdown::-webkit-scrollbar {
    width: 8px;
}

.select_dropdown::-webkit-scrollbar-track {
    background: #f3f4f6;
    border-radius: 4px;
}

.select_dropdown::-webkit-scrollbar-thumb {
    background: #d1d5db;
    border-radius: 4px;
}

.select_dropdown::-webkit-scrollbar-thumb:hover {
    background: #9ca3af;
}

/* ===========================================
   DROPDOWN ITEMS - Modern style
   =========================================== */
.select_dropdownitem {
    display: block;
    margin: 2px 0;
    padding: 6px 10px;
    color: #374151;
    background-color: transparent;
    border: 1px solid transparent;
    border-radius: 4px;
    font-size: 13px;
    line-height: 1.4;
    word-wrap: break-word;
    cursor: pointer;
    transition: background-color 0.15s, color 0.15s;
}

.select_dropdownitem:hover {
    display: block;
    margin: 2px 0;
    padding: 6px 10px;
    background-color: var(--accent1, #0073aa);
    color: #ffffff;
    border: 1px solid transparent;
    border-radius: 4px;
    font-size: 13px;
    line-height: 1.4;
    cursor: pointer;
}

.select_dropdownitem_selected {
    display: block;
    margin: 2px 0;
    padding: 6px 10px;
    color: #9ca3af;
    background-color: #f3f4f6;
    border: 1px solid transparent;
    border-radius: 4px;
    font-size: 13px;
    line-height: 1.4;
    word-wrap: break-word;
    text-decoration: line-through;
    cursor: default;
}

/* ===========================================
   DROPDOWN CONTENT - Selected item pills
   =========================================== */
.select_dropdowncontent {
    display: inline-flex;
    align-items: center;
    margin: 2px 2px;
    padding: 0 6px;
    height: 22px;
    border: 1px solid #e5e7eb;
    border-radius: 3px;
    background-color: #f3f4f6;
    color: #374151;
    font-size: 12px;
    line-height: 1;
    max-width: 100%;
    vertical-align: middle;
    box-sizing: border-box;
}

/* ===========================================
   CONSISTENT FIELD HEIGHTS & ALIGNMENT
   All form fields standardised to 32px height
   =========================================== */

/* Base field container alignment */
.select_singleframe,
.select_multiframe,
.select_tagframe {
    display: inline-block;
    vertical-align: middle;
    min-height: 32px;
}

/* Ensure all field types have consistent height */
.select_singledropdown,
.select_multidropdown,
.select_tagbox,
.select_inputframe,
.select_inputs,
.swp_input {
    min-height: 32px;
    vertical-align: middle;
    box-sizing: border-box;
}

/* swp_input - Modern styling to match other fields */
.swp_input {
    min-height: 32px;
    padding: 6px 10px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    background-color: #fff;
    color: #374151;
    font-size: 13px;
    line-height: 1.4;
    vertical-align: middle;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.swp_input:hover {
    border-color: #9ca3af;
}

.swp_input:focus {
    outline: none;
    border-color: var(--accent1, #0073aa);
    box-shadow: 0 0 0 2px rgba(0, 115, 170, 0.15);
}

/* Form field title alignment */
.swp_formfieldline .swp_formfieldtitle {
    padding-top: 0;
    margin: 0;
    line-height: 32px;
}

/* Ensure swp_formfield aligns fields properly */
.swp_formfield {
    display: flex;
    align-items: center;
    min-height: 32px;
}

/* ===========================================
   DATE & TIME INPUTS - Native inputs styled to match select fields
   =========================================== */
.select_dateinput,
.select_timeinput {
    display: inline-block;
    min-height: 32px;
    padding: 6px 10px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    background-color: #fff;
    color: #374151;
    font-size: 13px;
    line-height: 1.4;
    vertical-align: middle;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.select_dateinput:hover,
.select_timeinput:hover {
    border-color: #9ca3af;
}

.select_dateinput:focus,
.select_timeinput:focus {
    outline: none;
    border-color: var(--accent1, #0073aa);
    box-shadow: 0 0 0 2px rgba(0, 115, 170, 0.15);
}

/* ============================================
   FIELD STYLES CONSOLIDATED FROM OUTPUT.CSS
   ============================================ */

/* ============================================
   SUBMIT BUTTON
   ============================================ */
.swp_submitframe {
    margin-top: 30px;
    padding: 15px;
    text-align: center;
}

.swp_submit {
    display: inline-block;
    margin-top: 10px;
    padding: 12px 30px;
    background-color: var(--accent1, #3498db);
    color: #ffffff;
    border: solid 1px var(--accent1, #3498db);
    cursor: pointer;
    -moz-user-select: none;
    -webkit-user-select: none;
    user-select: none;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 500;
    transition: all 0.2s ease;
}

.swp_submit:hover {
    background-color: var(--accent1, #2980b9);
    filter: brightness(1.1);
    color: #ffffff;
    border: solid 1px var(--accent1, #2980b9);
}

/* ============================================
   IMAGE SELECT FIELD
   ============================================ */
.swp_image_select_container {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-start;
}

.swp_image_option {
    display: inline-block;
    vertical-align: top;
    position: relative;
    cursor: pointer;
    border: 2px solid #ddd;
    border-radius: 8px;
    padding: 8px;
    transition: border-color 0.2s;
    text-align: center;
}

.swp_image_option:hover {
    border-color: #999;
}

.swp_image_option.selected {
    border-color: var(--accent1, #2a9d8f);
    background: rgba(42, 157, 143, 0.05);
}

.swp_image_option img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 4px;
    display: block;
}

.swp_image_label {
    font-size: 12px;
    margin-top: 6px;
    text-align: center;
}

.swp_image_check {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 28px;
    height: 28px;
    background: var(--accent1, #2a9d8f);
    border-radius: 50%;
    display: none;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 14px;
}

.swp_image_option.selected .swp_image_check {
    display: flex;
}

.swp_imagelist {
    display: block;
}

.swp_imageitem {
    display: inline-block;
    vertical-align: top;
    margin: 4px;
    background: #f5f5f5;
    padding: 5px;
    border-radius: 4px;
}

/* ============================================
   URL / WEBSITE FIELD
   ============================================ */
.select_url_field {
    display: inline-flex;
    align-items: stretch;
    width: 100%;
}

.select_url_prefix {
    display: inline-flex;
    align-items: center;
    padding: 0 12px;
    background: #f3f4f6;
    border: 1px solid #d1d5db;
    border-right: none;
    border-radius: 6px 0 0 6px;
    font-size: 14px;
    color: #6b7280;
    white-space: nowrap;
    box-sizing: border-box;
    line-height: 1;
}

.select_url_field .select_field_wrapper {
    flex: 1;
    display: inline-flex;
    align-items: stretch;
}

.select_url_field .select_field_wrapper input,
.select_url_field .select_inputframe {
    border-radius: 0 6px 6px 0 !important;
    border-left: none !important;
    font-size: 14px;
}

/* ============================================
   RANKING FIELD
   ============================================ */
.swp_ranking_container {
    width: 100%;
}

.swp_ranking_item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    margin-bottom: 6px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    cursor: grab;
    transition: all 0.2s ease;
}

.swp_ranking_item:hover {
    border-color: #d1d5db;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.swp_ranking_item.dragging {
    opacity: 0.5;
    background: #f3f4f6;
    cursor: grabbing;
}

.swp_ranking_handle {
    color: #9ca3af;
    cursor: grab;
}

.swp_ranking_number {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--accent1, #3498db);
    color: #fff;
    border-radius: 50%;
    font-size: 12px;
    font-weight: 600;
}

.swp_ranking_text {
    flex: 1;
}

.swp_ranking_db_wrapper {
    position: relative;
    padding-right: 45px;
}

/* ============================================
   DROPDOWN & SELECT FIXES
   ============================================ */
.swp_dbselect.select_singleframe,
.swp_dbselect.select_multiframe {
    min-width: 180px;
    min-height: 32px;
    max-width: 100%;
}

.select_singleframe,
.select_multiframe {
    min-height: 32px;
}

/* Disabled state */
.select_disabled {
    pointer-events: none;
    opacity: 0.6;
}

.select_singleframe:not(.select_disabled),
.select_multiframe:not(.select_disabled),
.select_tagframe:not(.select_disabled) {
    pointer-events: auto;
    opacity: 1;
}

/* Colour picker disabled */
.select_colpicframe.select_disabled {
    opacity: 1;
    pointer-events: none;
}

.select_colpicframe.select_disabled .select_cp {
    opacity: 0.6;
}

.select_colpicframe.select_disabled .select_cp_dframe {
    pointer-events: none;
}

/* ============================================
   SOCIAL LINKS FIELD
   ============================================ */
.swp_social_wrapper {
    width: 100%;
}

.swp_social_row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.swp_social_icon {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    font-size: 18px;
    color: #fff;
}

.swp_social_icon.facebook {
    background: #1877f2;
}

.swp_social_icon.twitter {
    background: #1da1f2;
}

.swp_social_icon.instagram {
    background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
}

.swp_social_icon.linkedin {
    background: #0a66c2;
}

.swp_social_icon.youtube {
    background: #ff0000;
}

.swp_social_icon.tiktok {
    background: #000;
}

.swp_social_icon.website {
    background: #6b7280;
}

.swp_social_input {
    flex: 1;
}

.swp_social_db_wrapper {
    position: relative;
    padding-right: 45px;
    min-height: 32px;
    display: flex;
    align-items: center;
}

.swp_social_db_link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 4px;
    font-size: 14px;
    color: #fff;
    text-decoration: none;
    transition: transform 0.2s;
    margin-right: 4px;
}

.swp_social_db_link:hover {
    transform: scale(1.1);
}

/* ============================================
   FORM FRAME STYLES FOR PUBLIC PAGES
   ============================================ */
#swp_formframe {
    /*max-width: 700px;*/
    margin: 0 auto;
    padding: 30px 20px;
}

#swp_formframe>div {
    background: #fff;
    padding: 30px;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

#swp_formframe .swp_formtitle {
    font-size: 24px;
    font-weight: 600;
    margin-bottom: 25px;
    padding-bottom: 15px;
    border-bottom: 2px solid #f3f4f6;
    color: #1f2937;
}

#swp_formframe .select_fieldtitle {
    font-weight: 500;
    color: #374151;
    margin-bottom: 8px;
    font-size: 14px;
}

#swp_formframe .select_inputframe {
    border-radius: 6px;
    border-color: #d1d5db;
    padding: 10px 12px;
    font-size: 14px;
    transition: border-color 0.2s, box-shadow 0.2s;
}

#swp_formframe .select_inputframe:focus {
    border-color: var(--accent1, #3498db);
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
    outline: none;
}

#swp_formframe .swp_formfieldline {
    margin-bottom: 20px;
}

/* Mobile responsive for public forms */
@media (max-width: 768px) {
    #swp_formframe {
        padding: 15px 10px;
    }

    #swp_formframe>div {
        padding: 20px 15px;
        border-radius: 8px;
    }

    #swp_formframe .swp_formtitle {
        font-size: 20px;
    }

    .swp_nps_scale {
        flex-wrap: wrap;
    }

    .swp_nps_option {
        flex: 0 0 calc(20% - 4px);
    }

    .select_url_field {
        flex-direction: column;
    }

    .select_url_prefix {
        border-radius: 6px 6px 0 0;
        border-right: 1px solid #d1d5db;
        border-bottom: none;
    }

    .select_url_field .select_field_wrapper input,
    .select_url_field .select_inputframe {
        border-radius: 0 0 6px 6px !important;
        border-left: 1px solid #d1d5db !important;
        border-top: none !important;
    }
}

/* =============================================
   LETTERHEAD FIELD STYLES
   ============================================= */

/* Letterhead container */
.select_letterhead {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 20px 0;
    margin-bottom: 20px;
    gap: 20px;
    width: 100%;
}

/* Letterhead frame - full width */
.select_letterheadframe {
    width: 100%;
}

/* Logo container */
.select_letterhead_logo {
    flex: 0 0 auto;
    max-width: 200px;
}

.select_letterhead_logo img {
    max-width: 100%;
    max-height: 100px;
    height: auto;
    object-fit: contain;
}

/* Address container */
.select_letterhead_address {
    flex: 1;
    font-size: 14px;
    line-height: 1.6;
    color: #4a5568;
    white-space: pre-line;
}

/* Layout: Logo left, address right */
.select_letterhead_logo-left {
    flex-direction: row;
}

.select_letterhead_logo-left .select_letterhead_address {
    text-align: right;
}

/* Layout: Address left, logo right */
.select_letterhead_logo-right {
    flex-direction: row;
}

.select_letterhead_logo-right .select_letterhead_logo {
    order: 2;
}

.select_letterhead_logo-right .select_letterhead_address {
    order: 1;
    text-align: left;
}

/* Field editor preview */
.select_letterhead_logo_preview,
.swp_letterhead_logo_preview {
    margin-bottom: 10px;
    max-width: 150px;
    max-height: 80px;
    border: 1px dashed #d1d5db;
    border-radius: 6px;
    padding: 10px;
    background: #f9fafb;
    display: flex;
    align-items: center;
    justify-content: center;
}

.select_letterhead_logo_preview img,
.swp_letterhead_logo_preview img {
    max-width: 120px;
    max-height: 60px;
    object-fit: contain;
}

.select_letterhead_logo_preview:empty::before,
.swp_letterhead_logo_preview:empty::before {
    content: 'No logo uploaded';
    color: #9ca3af;
    font-size: 12px;
}

/* Letterhead options panel in field editor */
.select_letterheadoptions {
    margin-top: 10px;
}

.select_letterheadoptions textarea {
    min-height: 80px;
    resize: vertical;
}

.swp_radio_label {
    display: block;
    margin-bottom: 8px;
    cursor: pointer;
    font-size: 13px;
}

.swp_radio_label input[type="radio"] {
    margin-right: 8px;
}

/* Mobile responsive */
@media (max-width: 600px) {
    .select_letterhead {
        flex-direction: column !important;
        text-align: center;
    }

    .select_letterhead_logo {
        order: 1 !important;
        margin-bottom: 15px;
    }

    .select_letterhead_address {
        order: 2 !important;
        text-align: center !important;
    }
}

/* =============================================
   SPACING BLOCK LINE STYLES
   ============================================= */

.swp_spacingline {
    border: none;
    border-top-width: 1px;
    width: 100%;
}

.swp_colour_input {
    width: 50px;
    height: 30px;
    padding: 2px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    cursor: pointer;
}

/* =============================================
   FORM TEXT AND FILL BLANKS CONSISTENT STYLING
   ============================================= */

/* Form text display */
.select_formtext {
    font-size: 14px;
    line-height: 1.6;
    color: #374151;
    font-family: inherit;
}

/* Fill blanks render area */
.swp_fbrender {
    font-size: 14px;
    line-height: 1.6;
    color: #374151;
    font-family: inherit;
}

/* Ensure both look the same on forms */
.swp_ftext,
.swp_fillblanks_wrapper {
    font-size: 14px;
    line-height: 1.6;
    color: #374151;
}

/* =============================================
   REQUIRED FIELD VALIDATION STYLES
   ============================================= */

/* Required indicator asterisk */
.swp_required_indicator {
    color: #ef4444;
    font-weight: 600;
    margin-left: 4px;
}

/* Required field error message */
.swp_required {
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    margin-left: 130px;
    /* Align with form field (title min-width 120px + gap 10px) */
    padding: 10px 14px;
    background: linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%);
    border: 1px solid #fecaca;
    border-left: 4px solid #ef4444;
    border-radius: 6px;
    color: #dc2626;
    font-size: 13px;
    font-weight: 500;
    animation: swp_shake 0.4s ease-in-out;
}

/* For stacked fields (textarea, form text, etc), no left margin needed */
.swp_formfieldline[swp_ftype="textarea"] .swp_required,
.swp_formfieldline[swp_ftype="form text"] .swp_required,
.swp_formfieldline[swp_ftype="rich text"] .swp_required,
.swp_formfieldline[swp_ftype="fill blanks"] .swp_required,
.swp_formfieldline[swp_ftype="address"] .swp_required,
.swp_formfieldline[swp_ftype="signature"] .swp_required {
    margin-left: 0;
}

/* When shown via JS (display:block), use flexbox */
.swp_required[style*="display: block"],
.swp_required[style*="display:block"] {
    display: flex !important;
}

.swp_required::before {
    content: '\f071';
    font-family: 'Line Awesome Free';
    font-weight: 900;
    font-size: 14px;
    color: #ef4444;
}

/* Shake animation for error messages */
@keyframes swp_shake {

    0%,
    100% {
        transform: translateX(0);
    }

    10%,
    30%,
    50%,
    70%,
    90% {
        transform: translateX(-4px);
    }

    20%,
    40%,
    60%,
    80% {
        transform: translateX(4px);
    }
}

/* Highlight invalid fields */
.swp_field_invalid,
input.swp_field_invalid,
select.swp_field_invalid,
textarea.swp_field_invalid {
    border-color: #ef4444 !important;
    background-color: #fef2f2 !important;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1) !important;
}

/* =============================================
   IMAGE DISPLAY FIELD STYLES
   ============================================= */

/* Preview in field options */
.swp_imagedisplay_preview {
    width: 100%;
    max-width: 200px;
    min-height: 60px;
    margin-bottom: 10px;
    background: #f9fafb;
    border: 1px dashed #d1d5db;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.swp_imagedisplay_preview img {
    max-width: 100%;
    max-height: 150px;
    border-radius: 4px;
}

/* Container on form */
.swp_imagedisplay_container {
    width: 100%;
    padding: 10px 0;
}

.swp_imagedisplay_container img {
    display: inline-block;
    height: auto;
    border-radius: 4px;
}

/* Signature container required message styling */
.swp_signature_container .swp_required {
    margin-left: 0;
    margin-top: 8px;
}

/* =============================================
   FORM FOOTER STYLES (select.js)
   ============================================= */

/* Preview in database settings */
.swp_formfooter_logo_preview {
    width: 100%;
    max-width: 150px;
    min-height: 50px;
    margin-bottom: 10px;
    background: #f9fafb;
    border: 1px dashed #d1d5db;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.swp_formfooter_logo_preview img {
    max-width: 100%;
    max-height: 100px;
    border-radius: 4px;
}

/* Form footer container - rendered after submit button */
.select_formfooter {
    width: 100%;
    padding: 20px 0;
    margin-top: 20px;
    border-top: 1px solid #e5e7eb;
}

/* Side by side layouts */
.select_formfooter_logo-left,
.select_formfooter_logo-right {
    display: flex;
    align-items: center;
    gap: 20px;
}

.select_formfooter_logo-right {
    flex-direction: row-reverse;
}

/* Centered layout */
.select_formfooter_center {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
}

.select_formfooter_logo {
    flex-shrink: 0;
}

.select_formfooter_logo img {
    display: block;
    height: auto;
}

.select_formfooter_text {
    color: #6b7280;
    font-size: 13px;
    line-height: 1.5;
}

.select_formfooter_logo-left .select_formfooter_text,
.select_formfooter_logo-right .select_formfooter_text {
    flex: 1;
}

/* =============================================
   DELETE SECTION STYLES
   ============================================= */

.swp_delete_section {
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid #e5e7eb;
}

.swp_delete_btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: none;
    border-radius: 6px;
    transition: all 0.2s ease;
}

.swp_btn_danger {
    background-color: #fee2e2;
    color: #dc2626;
    border: 1px solid #fecaca;
}

.swp_btn_danger:hover {
    background-color: #fecaca;
    border-color: #f87171;
}

.swp_delete_warning {
    margin-top: 10px;
    font-size: 12px;
    color: #9ca3af;
    font-style: italic;
}