/* tcv2 / 40 forms + modals (archetypes FORM, MODAL-HEAVY). Design only; every rule starts with body.tcv2 inside @media screen. body.tcv2 + (.content-wrapper|.modal) + element beats the page-private ".xx-wrap .form-control{...!important}" blocks; tokens come from tc-admin-theme.css. */
@media screen{

/* - 1. inputs: 2px ink outline, 12px radius, 40px, labels above ---------------- */
body.tcv2 :is(.content-wrapper,.modal) :is(.form-control,.custom-select):not(.form-control-sm,.custom-select-sm,[type=checkbox],[type=radio],[type=range],[type=color],[type=file],.tagify__input){border:2px solid var(--tc2-outline)!important;border-radius:var(--tc2-r-ctl)!important;min-height:var(--tc2-ctl-h);height:auto!important;padding:9px 12px!important;font-size:13px!important;font-weight:700!important;line-height:1.4!important;color:var(--tc2-ink)!important;background-color:var(--tc2-surface);box-shadow:none!important}
body.tcv2 :is(.content-wrapper,.modal) :is(.form-control-sm,.custom-select-sm){border:1.5px solid var(--tc2-outline)!important;border-radius:10px!important;min-height:34px;height:auto!important;padding:6px 10px!important;font-size:12.5px!important;font-weight:700!important;box-shadow:none!important}
body.tcv2 :is(.content-wrapper,.modal) :is(select.form-control,select.custom-select):not([multiple],[size]){padding-right:34px!important}
body.tcv2 :is(.content-wrapper,.modal) textarea.form-control{min-height:84px;resize:vertical}
body.tcv2 :is(.content-wrapper,.modal) input[type=file].form-control{padding:6px 10px!important;min-height:var(--tc2-ctl-h)}
body.tcv2 :is(.content-wrapper,.modal) :is(.form-control,.custom-select):focus{border-color:var(--tc2-brand)!important;outline:2px solid var(--tc2-focus);outline-offset:1px;box-shadow:none!important}
body.tcv2 :is(.content-wrapper,.modal) .form-control::placeholder{color:var(--tc2-mut);font-weight:600;opacity:1}
body.tcv2 :is(.content-wrapper,.modal) :is(.form-control,.custom-select):is(:disabled,[readonly]){background-color:var(--tc2-surface-2)!important;border-color:#CBD5E1!important;color:var(--tc2-text-2)!important}
body.tcv2 :is(.content-wrapper,.modal) :is(.form-control,.custom-select):is(.is-invalid,.error,.has-error){border-color:var(--tc2-danger)!important;background-color:#FFFBFB;outline:0}
body.tcv2 :is(.content-wrapper,.modal) :is(.form-control,.custom-select):user-invalid{border-color:var(--tc2-danger)!important;background-color:#FFFBFB}
body.tcv2 :is(.content-wrapper,.modal) :is(.form-control,.custom-select).is-valid{border-color:var(--tc2-ok)!important}
body.tcv2 :is(.content-wrapper,.modal) .form-group.has-error :is(.form-control,.select2-selection),body.tcv2 :is(.content-wrapper,.modal) .select2-container.is-invalid .select2-selection{border-color:var(--tc2-danger)!important}
body.tcv2 :is(.content-wrapper,.modal) input:is([type=date],[type=time],[type=datetime-local],[type=month],[type=week]).form-control{min-height:var(--tc2-ctl-h)}
body.tcv2 :is(.content-wrapper,.modal) input[type=number].form-control{font-variant-numeric:tabular-nums}
body.tcv2 :is(.content-wrapper,.modal) input[type=color]{width:46px;height:40px;padding:3px;border:2px solid var(--tc2-outline);border-radius:var(--tc2-r-ctl);background:var(--tc2-surface);cursor:pointer}

/* labels: sentence case, 12px / 800 ink (beats the page's uppercase grey 0.72rem labels) */
body.tcv2 :is(.content-wrapper,.modal) :is(label,.col-form-label):not(.badge,.btn,.type-chip,.custom-control-label,.custom-file-label,.form-check-label,.tcv2-keep,[class*=icheck] label,.bootstrap-switch-label){font-size:12px!important;font-weight:800!important;text-transform:none!important;letter-spacing:0!important;color:var(--tc2-ink)!important;margin-bottom:6px;line-height:1.4}
body.tcv2 :is(.content-wrapper,.modal) :is(label,.col-form-label) :is(.text-danger,.text-sm,.required){color:var(--tc2-danger)!important;font-size:12px!important;font-weight:800;margin-left:2px}
body.tcv2 :is(.content-wrapper,.modal) label :is(small,.text-muted,.helper){font-weight:600;color:var(--tc2-mut)!important;text-transform:none;letter-spacing:0}
body.tcv2 :is(.content-wrapper,.modal) :is(.helper,.form-text,.help-block,small.text-muted,.text-muted.d-block){font-size:12px!important;font-weight:600!important;color:var(--tc2-mut)!important;text-transform:none;letter-spacing:0;line-height:1.5}
body.tcv2 :is(.content-wrapper,.modal) :is(.invalid-feedback,label.error,span.error,div.error:not(.form-control),.text-danger.error,p.error){display:block;color:var(--tc2-danger)!important;font-size:12px!important;font-weight:700!important;margin-top:5px;text-transform:none;letter-spacing:0}
body.tcv2 :is(.content-wrapper,.modal) .form-group{margin-bottom:16px}
body.tcv2 .content-wrapper .form-group.row>label.col-form-label{padding-top:calc(9px + 2px);margin-bottom:0}
body.tcv2 .content-wrapper .callout{background:var(--tc2-surface-2)}
body.tcv2 .content-wrapper form.form-horizontal .card-body>.form-group.row:has(>label[class*=col-]){max-width:920px}
body.tcv2 .content-wrapper form :is(h3,h4):not(.card-title,.modal-title){font-size:16px;font-weight:800;color:var(--tc2-ink);margin:18px 0 12px}
body.tcv2 .prod-wrap :is(h3.card-title,.card-header.border-0,.card-header.bg-white){color:var(--tc2-brand)!important;font-size:14px!important;font-weight:800!important;border:0!important;border-left:4px solid var(--tc2-brand)!important;border-radius:0!important;padding:2px 0 2px 10px!important;margin:0 0 14px!important;background:transparent!important}

/* input groups (unit inputs: N, %, min, km ...) */
body.tcv2 :is(.content-wrapper,.modal) .input-group{flex-wrap:nowrap}
body.tcv2 :is(.content-wrapper,.modal) .input-group-text{background:#F3F4F6!important;border:2px solid var(--tc2-outline)!important;color:var(--tc2-text-2)!important;font-size:12.5px!important;font-weight:800!important;padding:0 13px!important;border-radius:var(--tc2-r-ctl)!important}
body.tcv2 :is(.content-wrapper,.modal) .input-group>:is(.form-control,.custom-select,.select2-container):not(:last-child),body.tcv2 :is(.content-wrapper,.modal) .input-group-prepend :is(.input-group-text,.btn){border-top-right-radius:0!important;border-bottom-right-radius:0!important}
body.tcv2 :is(.content-wrapper,.modal) .input-group>:is(.form-control,.custom-select,.select2-container):not(:first-child),body.tcv2 :is(.content-wrapper,.modal) .input-group-append :is(.input-group-text,.btn){border-top-left-radius:0!important;border-bottom-left-radius:0!important}
body.tcv2 :is(.content-wrapper,.modal) .input-group-prepend+.form-control,body.tcv2 :is(.content-wrapper,.modal) .input-group>.form-control+.input-group-append{margin-left:-2px}
body.tcv2 :is(.content-wrapper,.modal) .input-group-append .btn,body.tcv2 :is(.content-wrapper,.modal) .input-group-prepend .btn{border:2px solid var(--tc2-outline)!important;min-height:var(--tc2-ctl-h)}

/* - 2. form cards, sections, grouped boxes -------------------------- */
body.tcv2 .content-wrapper .card:has(>form),body.tcv2 .content-wrapper .card:has(.card-body form){border:1px solid var(--tc2-line)!important;border-radius:var(--tc2-r-card)!important;box-shadow:none!important}
body.tcv2 .content-wrapper .card:has(.form-group>#submit_btn){overflow:visible}
body.tcv2 .content-wrapper .card:has(.form-group>#submit_btn)>.card-header:first-child{border-top-left-radius:calc(var(--tc2-r-card) - 1px);border-top-right-radius:calc(var(--tc2-r-card) - 1px)}
body.tcv2 .content-wrapper .card-body{padding:18px 20px!important}
body.tcv2 .content-wrapper .card-header:not(.p-0){background:var(--tc2-surface)!important;border-bottom:1px solid var(--tc2-line)!important;padding:13px 20px!important;color:var(--tc2-ink)!important;font-size:14px!important;font-weight:800!important}
body.tcv2 .content-wrapper :is(.card-info,.card-primary,.card-success):not(.card-outline)>.card-header{background:var(--tc2-header-grad)!important;color:#fff!important;border-bottom:0!important}
body.tcv2 .content-wrapper :is(.card-info,.card-primary,.card-success):not(.card-outline)>.card-header :is(.card-title,h3,h4,h5,i){color:#fff!important}
body.tcv2 .content-wrapper .card-header :is(.card-title,h3.card-title){color:inherit!important;font-size:14px!important;font-weight:800!important;margin:0!important;border:0!important;padding:0!important}
/* section heading inside a card body (private ".section-title", "legend", h5 with border-left ...) */
body.tcv2 .content-wrapper form :is(h5,h6,legend):not(.modal-title,.card-title){font-size:13px;font-weight:800;color:var(--tc2-ink);letter-spacing:0;text-transform:none}
body.tcv2 .content-wrapper form :is(.section-title,.sec-title,.form-section-title,.sh,.pay-title){font-size:13.5px!important;font-weight:800!important;color:var(--tc2-brand)!important;letter-spacing:0!important;text-transform:none!important;border-left:4px solid var(--tc2-brand)!important;padding:2px 0 2px 10px!important;margin:22px 0 14px!important;border-bottom:0!important}
body.tcv2 .content-wrapper :is(.rules-box,.settings-box,.sub-card,.box-group,.well,.bg-light:not(.btn,.badge)){background:var(--tc2-surface-2)!important;border:1.5px solid var(--tc2-line)!important;border-radius:14px!important}
body.tcv2 .content-wrapper hr{border-top:1px solid var(--tc2-line)}
body.tcv2 .content-wrapper .card-footer{background:var(--tc2-surface-2)!important;border-top:1px solid var(--tc2-line)!important}

/* - 3. actions: sticky action bar, buttons -------------------------- */
body.tcv2 .content-wrapper .card-body:has(.form-group>#submit_btn){padding-bottom:0!important}
body.tcv2 .content-wrapper .form-group:has(>#submit_btn):not(.prod-wrap *){position:sticky;bottom:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;margin:22px -20px 0!important;padding:12px 20px;background:var(--tc2-surface);border-top:2px solid var(--tc2-outline);border-radius:0 0 calc(var(--tc2-r-card) - 1px) calc(var(--tc2-r-card) - 1px)}
body.tcv2 .content-wrapper .row>.form-group:has(>#submit_btn):not(.prod-wrap *){flex:0 0 100%;max-width:100%;margin:18px 0 0!important;border-radius:var(--tc2-r-ctl);border:2px solid var(--tc2-outline);padding:12px 16px}
body.tcv2 .content-wrapper .form-group:has(>#submit_btn) .btn{margin:0!important}
body.tcv2 .content-wrapper .form-group:has(>#submit_btn)>[type=reset]{margin-right:auto!important}
body.tcv2 .content-wrapper :is(#submit_btn,.btn-success[type=submit],button.save-settings){background:var(--tc2-brand)!important;background-image:none!important;border:1.5px solid var(--tc2-brand)!important;color:#fff!important;border-radius:var(--tc2-r-btn)!important;font-size:13px!important;font-weight:800!important;padding:9px 20px!important;box-shadow:none!important;transform:none!important}
body.tcv2 .content-wrapper :is(#submit_btn,.btn-success[type=submit],button.save-settings):hover{background:var(--tc2-brand-hover)!important}
body.tcv2 .content-wrapper :is(#submit_btn,.btn):focus-visible{outline:2px solid var(--tc2-focus);outline-offset:2px}
body.tcv2 .content-wrapper form :is([type=reset],.btn-warning:not(.btn-xs,.btn-sm)){background:var(--tc2-neutral-btn)!important;background-image:none!important;border:1.5px solid var(--tc2-line)!important;color:var(--tc2-neutral-fg)!important;border-radius:var(--tc2-r-btn)!important;font-size:13px!important;font-weight:800!important;padding:9px 18px!important;box-shadow:none!important}
body.tcv2 .content-wrapper form :is([type=reset],.btn-warning:not(.btn-xs,.btn-sm)):hover{background:var(--tc2-neutral-btn-h)!important}
/* page-owned buttons in the shared blocks (gradient btn-info / btn-primary / btn-danger): one flat family */
body.tcv2 .content-wrapper form :is(.btn-info,.btn-primary):not(#submit_btn,.uploadFile,.btn-xs,.btn-sm,.btn-outline-info,.btn-outline-primary){background:var(--tc2-brand)!important;background-image:none!important;border:1.5px solid var(--tc2-brand)!important;color:#fff!important;border-radius:var(--tc2-r-btn)!important;box-shadow:none!important}
body.tcv2 .content-wrapper form .btn-danger:not(.btn-xs,.btn-sm){background:var(--tc2-danger-bg)!important;color:var(--tc2-danger)!important;border:1.5px solid var(--tc2-danger-bd)!important;border-radius:var(--tc2-r-btn)!important;font-weight:800!important}
body.tcv2 .content-wrapper form :is(.btn-xs,.btn-sm){border-radius:10px!important;font-size:12px!important;font-weight:800!important}
/* product page: its own sticky save bar (inline-styled children) */
body.tcv2 .prod-save-bar{background:var(--tc2-surface)!important;border-top:2px solid var(--tc2-outline)!important;border-radius:14px 14px 0 0!important;box-shadow:none!important;margin:0!important;padding:12px 20px!important;z-index:30}
body.tcv2 .prod-save-bar>div:first-child{font-size:13px!important;font-weight:700!important;color:var(--tc2-text-2)!important}
body.tcv2 .prod-save-bar>div:first-child strong{color:var(--tc2-brand)!important}
body.tcv2 .prod-save-bar a{background:var(--tc2-neutral-btn)!important;border:1.5px solid var(--tc2-line)!important;color:var(--tc2-neutral-fg)!important;border-radius:var(--tc2-r-btn)!important;font-size:13px!important;font-weight:800!important;padding:9px 18px!important}
body.tcv2 .prod-save-bar button{background:var(--tc2-brand)!important;background-image:none!important;border:1.5px solid var(--tc2-brand)!important;color:#fff!important;border-radius:var(--tc2-r-btn)!important;font-size:13px!important;font-weight:800!important;padding:9px 22px!important;box-shadow:none!important}

/* - 4. choice controls: switches, radios as segments, checkboxes --------------- */
body.tcv2 .content-wrapper .bootstrap-switch{border:1.5px solid var(--tc2-outline)!important;border-radius:var(--tc2-r-pill)!important;overflow:hidden;box-shadow:none;vertical-align:middle}
body.tcv2 .content-wrapper .bootstrap-switch :is(.bootstrap-switch-handle-on,.bootstrap-switch-handle-off,.bootstrap-switch-label){font-size:11px!important;font-weight:800!important;padding-top:5px!important;padding-bottom:5px!important;border-radius:0!important}
body.tcv2 .content-wrapper .bootstrap-switch .bootstrap-switch-handle-on{background:var(--tc2-brand)!important;color:#fff!important}
body.tcv2 .content-wrapper .bootstrap-switch .bootstrap-switch-handle-off{background:#E5E7EB!important;color:var(--tc2-text-2)!important}
body.tcv2 .content-wrapper .bootstrap-switch .bootstrap-switch-label{background:var(--tc2-surface)!important;border-left:1.5px solid var(--tc2-outline);border-right:1.5px solid var(--tc2-outline)}
body.tcv2 .content-wrapper .bootstrap-switch.bootstrap-switch-focused{border-color:var(--tc2-brand)!important;outline:2px solid var(--tc2-focus);outline-offset:2px;box-shadow:none}
/* radios and checkbox groups as segmented controls: pill chips (".type-chip" in the campaign page, label>input[radio], icheck inline) */
body.tcv2 .content-wrapper :is(.type-chip,.tcv2-seg>label,.btn-group-toggle>.btn){display:inline-flex;align-items:center;gap:7px;background:var(--tc2-surface)!important;color:var(--tc2-ink)!important;border:2px solid var(--tc2-outline)!important;border-radius:var(--tc2-r-ctl)!important;padding:7px 14px!important;font-size:12.5px!important;font-weight:800!important;text-transform:none!important;letter-spacing:0!important;cursor:pointer;margin:0 6px 6px 0;line-height:1.3;box-shadow:none}
body.tcv2 .content-wrapper :is(.type-chip,.tcv2-seg>label):hover{background:var(--tc2-mint-soft)!important}
body.tcv2 .content-wrapper :is(.type-chip.active,.tcv2-seg>label.active,.btn-group-toggle>.btn.active,.tcv2-seg>label:has(>input:checked)){background:var(--tc2-brand)!important;border-color:var(--tc2-brand)!important;color:#fff!important}
body.tcv2 .content-wrapper .type-chip:focus-within{outline:2px solid var(--tc2-focus);outline-offset:2px}
/* radio button groups ("Active / Deactive", return status): one joined segmented control */
body.tcv2 :is(.content-wrapper,.modal) .btn-group:has(>label.btn>input[type=radio]){display:inline-flex;flex-wrap:nowrap;border:2px solid var(--tc2-outline);border-radius:var(--tc2-r-ctl);overflow:hidden;background:var(--tc2-surface)}
body.tcv2 :is(.content-wrapper,.modal) .btn-group>label.btn:has(>input[type=radio]){margin:0!important;border:0!important;border-radius:0!important;background:var(--tc2-surface)!important;background-image:none!important;color:var(--tc2-ink)!important;font-size:12.5px!important;font-weight:800!important;padding:8px 16px!important;box-shadow:none!important;position:relative}
body.tcv2 :is(.content-wrapper,.modal) .btn-group>label.btn:has(>input[type=radio])+label.btn{border-left:2px solid var(--tc2-outline)!important}
body.tcv2 :is(.content-wrapper,.modal) .btn-group>label.btn:has(>input[type=radio]:checked),body.tcv2 :is(.content-wrapper,.modal) .btn-group>label.btn.active:has(>input[type=radio]){background:var(--tc2-brand)!important;color:#fff!important}
body.tcv2 :is(.content-wrapper,.modal) .btn-group>label.btn>input[type=radio]{position:absolute;opacity:0;pointer-events:none}
body.tcv2 :is(.content-wrapper,.modal) .btn-group>label.btn:has(>input[type=radio]:focus-visible){outline:2px solid var(--tc2-focus);outline-offset:-4px}
body.tcv2 .content-wrapper :is(.custom-control-inline,.form-check-inline){margin-right:18px}
body.tcv2 .content-wrapper .form-check-input{accent-color:var(--tc2-brand)}
body.tcv2 .content-wrapper .form-check-label{font-weight:700;font-size:13px;color:var(--tc2-ink)}
body.tcv2 .content-wrapper input[type=checkbox]:not(.custom-control-input,[data-bootstrap-switch]),body.tcv2 .modal input[type=checkbox]:not(.custom-control-input,[data-bootstrap-switch]){width:16px;height:16px;vertical-align:middle;cursor:pointer}
body.tcv2 :is(.content-wrapper,.modal) .custom-switch .custom-control-label::before{border:0!important;background:#9CA3AF}
body.tcv2 :is(.content-wrapper,.modal) .custom-switch .custom-control-input:checked~.custom-control-label::before{background:var(--tc2-brand)!important}
body.tcv2 :is(.content-wrapper,.modal) .custom-switch .custom-control-input:focus-visible~.custom-control-label::before{outline:2px solid var(--tc2-focus);outline-offset:2px}

/* - 5. uploads: media-library button, previews, dropzone, custom-file ------------ */
body.tcv2 .content-wrapper :is(.uploadFile,a.uploadFile.btn,.uploadFile.img){display:inline-flex;align-items:center;gap:7px;background:var(--tc2-mint-soft)!important;background-image:none!important;border:2px dashed var(--tc2-brand)!important;color:var(--tc2-brand)!important;border-radius:var(--tc2-r-ctl)!important;padding:10px 18px!important;font-size:12.5px!important;font-weight:800!important;box-shadow:none!important;cursor:pointer;text-decoration:none}
body.tcv2 .content-wrapper :is(.uploadFile,a.uploadFile.btn):hover{background:var(--tc2-mint)!important;color:var(--tc2-brand)!important}
body.tcv2 .content-wrapper .image-upload-section .image{border:1.5px solid var(--tc2-line)!important;border-radius:14px!important;box-shadow:none!important;background:var(--tc2-surface)!important;padding:10px!important}
body.tcv2 .content-wrapper .image-upload-section img{border-radius:10px!important;border:1.5px solid var(--tc2-line)}
body.tcv2 .content-wrapper .image-upload-section .shadow{box-shadow:none!important}
body.tcv2 .content-wrapper .image-upload-section :is(.btn-danger,.remove-image,.delete-img){border-radius:10px!important}
body.tcv2 .content-wrapper .dropzone{border:2px dashed #94A3B8!important;border-radius:14px!important;background:var(--tc2-surface-2)!important;min-height:130px}
body.tcv2 .content-wrapper .dropzone .dz-message{font-size:13px;font-weight:800;color:var(--tc2-text-2)}
body.tcv2 .content-wrapper .dropzone:is(:hover,.dz-drag-hover){border-color:var(--tc2-brand)!important;background:var(--tc2-mint-soft)!important}
body.tcv2 :is(.content-wrapper,.modal) .custom-file{height:var(--tc2-ctl-h)}
body.tcv2 :is(.content-wrapper,.modal) .custom-file-label{border:2px solid var(--tc2-outline)!important;border-radius:var(--tc2-r-ctl)!important;height:auto!important;min-height:var(--tc2-ctl-h);line-height:1.4;font-weight:700;color:var(--tc2-text-2)}
body.tcv2 :is(.content-wrapper,.modal) .custom-file-label::after{height:auto!important;font-weight:800;background:#F3F4F6;color:var(--tc2-ink);border-left:2px solid var(--tc2-outline)!important}
body.tcv2 :is(.content-wrapper,.modal) .custom-file-input:focus~.custom-file-label{border-color:var(--tc2-brand)!important;box-shadow:none;outline:2px solid var(--tc2-focus);outline-offset:1px}

/* - 6. select2, tagify, date pickers, rich text ----------------------- */
body.tcv2 :is(.content-wrapper,.modal) .select2-container .select2-selection{border:2px solid var(--tc2-outline)!important;border-radius:var(--tc2-r-ctl)!important;min-height:var(--tc2-ctl-h)!important;height:auto!important;box-shadow:none!important;background:var(--tc2-surface)}
body.tcv2 :is(.content-wrapper,.modal) .select2-container--bootstrap4 .select2-selection--single{height:auto!important;min-height:var(--tc2-ctl-h)!important;display:flex;align-items:center}
body.tcv2 :is(.content-wrapper,.modal) .select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered{line-height:1.4!important;color:var(--tc2-ink)!important;padding-left:12px;font-weight:700}
body.tcv2 :is(.content-wrapper,.modal) .select2-container--bootstrap4 .select2-selection--single .select2-selection__arrow{height:100%!important;top:0;right:6px}
body.tcv2 :is(.content-wrapper,.modal) .select2-container :is(.select2-selection__placeholder,.select2-search__field::placeholder){color:var(--tc2-mut)!important;font-weight:600}
body.tcv2 :is(.content-wrapper,.modal) .select2-container--bootstrap4.select2-container--focus .select2-selection,body.tcv2 :is(.content-wrapper,.modal) .select2-container--bootstrap4.select2-container--open .select2-selection{border-color:var(--tc2-brand)!important;box-shadow:none!important;outline:2px solid var(--tc2-focus);outline-offset:1px}
body.tcv2 :is(.content-wrapper,.modal) .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice{background:var(--tc2-mint)!important;border:0!important;color:var(--tc2-brand)!important;border-radius:8px!important;padding:3px 8px!important;font-size:12px!important;font-weight:800!important}
body.tcv2 :is(.content-wrapper,.modal) .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice__remove{color:var(--tc2-brand)!important;margin-right:5px;float:none}
body.tcv2 .select2-container--bootstrap4 .select2-dropdown,body.tcv2 .select2-container--default .select2-dropdown{border:2px solid var(--tc2-outline)!important;border-radius:var(--tc2-r-ctl)!important;overflow:hidden;box-shadow:var(--tc2-shadow-menu)}
body.tcv2 .select2-container--open{z-index:2000}
body.tcv2 :is(.content-wrapper,.modal) .tagify{border:2px solid var(--tc2-outline)!important;border-radius:var(--tc2-r-ctl)!important;padding:4px 8px!important;min-height:var(--tc2-ctl-h);font-size:13px;font-weight:700;--tag-bg:var(--tc2-mint);--tag-hover:var(--tc2-mint);--tag-text-color:var(--tc2-brand);--tag-border-radius:8px}
body.tcv2 :is(.content-wrapper,.modal) .tagify:focus-within{border-color:var(--tc2-brand)!important;outline:2px solid var(--tc2-focus);outline-offset:1px;box-shadow:none!important}
body.tcv2 :is(.content-wrapper,.modal) .tagify__tag{background:var(--tc2-mint)!important;border-radius:8px!important}
body.tcv2 :is(.content-wrapper,.modal) .tagify__tag>div{color:var(--tc2-brand)!important}
body.tcv2 .content-wrapper :is(.note-editor.note-frame,.note-editor.note-airframe){border:2px solid var(--tc2-outline)!important;border-radius:var(--tc2-r-ctl)!important;overflow:hidden;box-shadow:none}
body.tcv2 .content-wrapper .note-editor .note-toolbar{background:var(--tc2-surface-2)!important;border-bottom:1.5px solid var(--tc2-line)!important;padding:6px 8px}
body.tcv2 .content-wrapper .note-editor .note-btn-group .note-btn{border:1.5px solid var(--tc2-line);background:var(--tc2-surface);border-radius:8px;color:var(--tc2-text-2);font-weight:800;margin:2px}
body.tcv2 .content-wrapper .note-editor .note-editing-area .note-editable{background:var(--tc2-surface);color:var(--tc2-ink);font-weight:600;font-size:13.5px;line-height:1.6;min-height:200px}
body.tcv2 .content-wrapper .note-editor .note-statusbar{background:var(--tc2-surface-2)}
body.tcv2 .content-wrapper .note-editor:focus-within{border-color:var(--tc2-brand)!important}
body.tcv2 :is(.content-wrapper,.modal) :is(.datetimepicker-input,.daterange,.date-picker,[data-toggle=datetimepicker]):not(.input-group-text){cursor:pointer}

/* - 7. tabs and sections inside forms ---------------------------- */
body.tcv2 .content-wrapper form .nav-tabs{border-bottom:2px solid var(--tc2-line)!important;gap:2px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;white-space:nowrap}
body.tcv2 .content-wrapper form .nav-tabs .nav-link{border:0!important;border-bottom:3px solid transparent!important;border-radius:0!important;padding:9px 16px!important;font-size:12.5px!important;font-weight:800!important;color:var(--tc2-mut)!important;margin-bottom:-2px;background:transparent!important}
body.tcv2 .content-wrapper form .nav-tabs .nav-link:hover{color:var(--tc2-brand)!important}
body.tcv2 .content-wrapper form .nav-tabs .nav-link.active{color:var(--tc2-brand)!important;border-bottom-color:var(--tc2-brand)!important}
body.tcv2 .content-wrapper form .tab-content{padding:16px 0 0!important}
body.tcv2 .content-wrapper .product-variant-selectbox{border:1.5px solid var(--tc2-line)!important;border-radius:14px!important;background:var(--tc2-surface-2)}
body.tcv2 .content-wrapper .alert{border-radius:12px!important;font-size:12.5px!important;font-weight:700!important}

/* - 8. modals: header / body / footer, sizes, scrolling, phone ---------------- */
body.tcv2 .modal .modal-header{background:var(--tc2-surface)!important;border-bottom:2px solid var(--tc2-outline)!important}
body.tcv2 .modal .modal-header :is(.modal-title,h4,h5){color:var(--tc2-ink)!important;font-size:17px!important;font-weight:800!important;line-height:1.3;margin:0}
body.tcv2 .modal .modal-header :is(.modal-title,h4,h5) :is(i,.fa,.fas){color:var(--tc2-brand)!important}
body.tcv2 .modal .modal-header .close{color:var(--tc2-mut)!important;opacity:1!important;text-shadow:none!important;font-size:24px;line-height:1;width:34px;height:34px;padding:0!important;margin:-4px -6px -4px auto!important;border-radius:10px;display:inline-flex;align-items:center;justify-content:center}
body.tcv2 .modal .modal-header .close:hover{background:var(--tc2-line-soft);color:var(--tc2-ink)!important}
body.tcv2 .modal .modal-header .close:focus-visible{outline:2px solid var(--tc2-focus);outline-offset:1px}
/* page-private modal headers (".mp-modal-hdr", ".cm-modal-hdr", ".tc-modal-hdr", inline gradient / tone-coloured divs): one light header with 2px rule; tone stays on the buttons and icons */
body.tcv2 .modal-content :is([class*=modal-hdr],[class*=modal-header]:not(.modal-header),.modal-head):not([class*=dc-]),body.tcv2 .modal-content>div:first-child[style*="background"]:not(.modal-body,.modal-header,[class*=dc-]){background:var(--tc2-surface)!important;background-image:none!important;color:var(--tc2-ink)!important;border:0!important;border-bottom:2px solid var(--tc2-outline)!important;border-radius:0!important;padding:16px 20px!important;display:flex!important;align-items:center;justify-content:space-between;gap:10px;box-shadow:none!important}
body.tcv2 .modal-content :is([class*=modal-hdr],[class*=modal-header]:not(.modal-header),.modal-head,div[style*="background"]:first-child):not([class*=dc-]) :is(h1,h2,h3,h4,h5,h6,span,p,small,strong,div,.text-white,.modal-title){color:var(--tc2-ink)!important;font-size:17px;font-weight:800;line-height:1.3;margin:0}
body.tcv2 .modal-content :is([class*=modal-hdr],[class*=modal-header]:not(.modal-header),.modal-head):not([class*=dc-]) :is(small,p,.text-white-50,[class*=sub]){font-size:12px;font-weight:600;color:var(--tc2-mut)!important}
body.tcv2 .modal-content :is([class*=modal-hdr],[class*=modal-header]:not(.modal-header),.modal-head):not([class*=dc-]) :is(i,.fa,.fas,.far){color:var(--tc2-brand)!important}
body.tcv2 .modal-content :is([class*=modal-hdr],[class*=modal-header]:not(.modal-header),.modal-head,div[style*="background"]:first-child):not([class*=dc-]) :is(.close,button){color:var(--tc2-mut)!important;background:transparent!important;border:0;opacity:1!important;text-shadow:none;font-size:24px;line-height:1;width:34px;height:34px;padding:0;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;margin-left:auto}
body.tcv2 .modal-content :is([class*=modal-hdr],.modal-head,div[style*="background"]:first-child) :is(.close,button):hover{background:var(--tc2-line-soft)!important;color:var(--tc2-ink)!important}
body.tcv2 .modal-content :is([class*=modal-hdr]) :is([class*=avatar],[class*=icon]){background:var(--tc2-mint)!important;color:var(--tc2-brand)!important}
body.tcv2 .modal .modal-footer .btn:is([style*="background:var(--g"],[style*="background:#0D523F"],[style*="background: var(--g"],[style*="background:#0d523f"]){background:var(--tc2-brand)!important;border:1.5px solid var(--tc2-brand)!important;color:#fff!important}
body.tcv2 .modal .modal-body{padding:18px 20px!important;max-height:calc(100vh - 220px);overflow-y:auto;overflow-x:hidden}
body.tcv2 .modal .modal-dialog-scrollable .modal-body{max-height:none}
body.tcv2 .modal .modal-footer{background:var(--tc2-surface-2)!important;border-top:2px solid var(--tc2-outline)!important;padding:12px 20px!important;flex-wrap:wrap;justify-content:flex-end}
body.tcv2 .modal .modal-footer :is(.btn,button){margin:0!important;border-radius:var(--tc2-r-btn)!important;font-size:13px!important;font-weight:800!important;padding:9px 18px!important;box-shadow:none!important}
body.tcv2 .modal .modal-footer :is(.btn-primary,.btn-success,.btn-info,[type=submit]):not(.btn-danger,.btn-warning,.btn-outline-secondary){background:var(--tc2-brand)!important;background-image:none!important;border:1.5px solid var(--tc2-brand)!important;color:#fff!important}
body.tcv2 .modal .modal-footer :is(.btn-primary,.btn-success,.btn-info,[type=submit]):not(.btn-danger,.btn-warning):hover{background:var(--tc2-brand-hover)!important}
body.tcv2 .modal .modal-footer :is(.btn-secondary,.btn-default,.btn-light,.btn-outline-secondary,[data-dismiss=modal]):not(.btn-primary,.btn-success,.btn-danger){background:var(--tc2-neutral-btn)!important;background-image:none!important;border:1.5px solid var(--tc2-line)!important;color:var(--tc2-neutral-fg)!important}
body.tcv2 .modal .modal-footer .btn-danger{background:var(--tc2-danger)!important;background-image:none!important;border:1.5px solid var(--tc2-danger-dark)!important;color:#fff!important}
body.tcv2 .modal .modal-footer .btn-warning{background:var(--tc2-warn-bg)!important;border:1.5px solid var(--tc2-warn-bd)!important;color:var(--tc2-warn)!important}
body.tcv2 .modal .modal-body .row{margin-left:-8px;margin-right:-8px}
body.tcv2 .modal .modal-body .row>[class*=col-]{padding-left:8px;padding-right:8px}
body.tcv2 .modal .modal-body :is(.table-responsive,.fixed-table-container,.bootstrap-table){max-width:100%}
body.tcv2 .modal .modal-body .table{font-size:12.5px}
body.tcv2 .modal .modal-body .table thead th{background:var(--tc2-surface-2);font-size:11px;font-weight:800;color:var(--tc2-mut);text-transform:uppercase;letter-spacing:.04em;border-bottom:1.5px solid var(--tc2-line)}
body.tcv2 .modal .modal-body :is(img,video,canvas){max-width:100%}
body.tcv2 .modal .modal-body :is(pre,code):not(.hljs){white-space:pre-wrap;word-break:break-word}
body.tcv2 .modal-open .modal{overflow-y:auto}
body.tcv2 .modal-dialog:not(.modal-dialog-scrollable){max-width:calc(100vw - 1rem)}
body.tcv2 .modal-dialog.modal-sm{max-width:min(300px,calc(100vw - 1rem))}
body.tcv2 .modal-dialog.modal-lg,body.tcv2 .modal-dialog.modal-xl{max-width:min(800px,calc(100vw - 1rem))}
body.tcv2 .modal-dialog.modal-xl{max-width:min(1140px,calc(100vw - 1rem))}
body.tcv2 .modal-dialog:not(.modal-sm):not(.modal-lg):not(.modal-xl){max-width:min(500px,calc(100vw - 1rem))}
body.tcv2 .modal .modal-content :is(.alert,.callout){font-size:12.5px}
/* page-private dialog families (".dc-modal-*" lives on the dispatch board and is owned by that pass) */
body.tcv2 .content-wrapper .modal.fade.show{background:rgba(17,24,39,.35)}

/* page-private dialog families (menu-deals, flash-deals, free-delivery, deal-popups, popup manager, notification presets, POS, home sections): same dialog + control language */
body.tcv2 :is(.md-modal,.fld-modal,.fd-modal,.pm-modal,.np-modal,.pos-modal,.hs-modal,.reason-modal){border:2px solid var(--tc2-outline);border-radius:var(--tc2-r-dialog)!important;box-shadow:var(--tc2-shadow-pop)!important;background:var(--tc2-surface);color:var(--tc2-ink);max-width:min(var(--tcv2-dlg-w,540px),calc(100vw - 1rem))}
body.tcv2 :is(.md-modal,.fld-modal,.fd-modal,.pm-modal) h2{font-size:17px!important;font-weight:800!important;color:var(--tc2-ink);margin:0 0 16px!important;padding-bottom:12px;border-bottom:2px solid var(--tc2-outline)}
body.tcv2 .np-modal .np-modal-hdr{background:var(--tc2-surface)!important;color:var(--tc2-ink)!important;border-bottom:2px solid var(--tc2-outline);border-radius:0!important}
body.tcv2 .np-modal .np-modal-hdr :is(span,h2,button,i){color:var(--tc2-ink)!important;font-size:17px;font-weight:800}
body.tcv2 .pm-modal .pm-modal-hdr{border-bottom:2px solid var(--tc2-outline)}
body.tcv2 .pm-modal .pm-modal-ftr{border-top:2px solid var(--tc2-outline);background:var(--tc2-surface-2)}
body.tcv2 :is(.md-modal,.fld-modal,.fd-modal,.pm-modal,.np-modal,.pos-modal,.hs-modal,.reason-modal) :is(input:not([type=checkbox],[type=radio],[type=file],[type=range],[type=color],[type=hidden],[type=submit],[type=button]),select,textarea){border:2px solid var(--tc2-outline)!important;border-radius:var(--tc2-r-ctl)!important;min-height:var(--tc2-ctl-h);padding:9px 12px!important;font-size:13px!important;font-weight:700!important;color:var(--tc2-ink)!important;background-color:var(--tc2-surface);box-shadow:none!important;max-width:100%}
body.tcv2 :is(.md-modal,.fld-modal,.fd-modal,.pm-modal,.np-modal,.pos-modal,.hs-modal,.reason-modal) :is(input,select,textarea):focus{border-color:var(--tc2-brand)!important;outline:2px solid var(--tc2-focus);outline-offset:1px}
body.tcv2 :is(.md-modal,.fld-modal,.fd-modal,.pm-modal,.np-modal,.pos-modal,.hs-modal,.reason-modal) label:not(.type-chip,.custom-control-label,.switch,.sw){font-size:12px!important;font-weight:800!important;text-transform:none!important;letter-spacing:0!important;color:var(--tc2-ink)!important}
body.tcv2 :is(.md-modal,.fld-modal,.fd-modal,.pm-modal,.np-modal,.pos-modal,.hs-modal,.reason-modal) :is(input[type=checkbox],input[type=radio]){accent-color:var(--tc2-brand)}
body.tcv2 :is(.md-modal,.fld-modal,.fd-modal,.pm-modal,.np-modal,.pos-modal,.hs-modal,.reason-modal) :is(button,.btn):not(.close,.btn-link){border-radius:var(--tc2-r-btn)!important;font-size:13px!important;font-weight:800!important}
body.tcv2 :is(.md-modal,.fld-modal,.fd-modal,.pm-modal,.np-modal,.pos-modal,.hs-modal,.reason-modal) :is(.btn-save,.btn-primary,.btn-success,button[type=submit]){background:var(--tc2-brand)!important;background-image:none!important;border:1.5px solid var(--tc2-brand)!important;color:#fff!important;box-shadow:none!important}
body.tcv2 :is(.md-modal-bg,.fld-modal-bg,.fd-modal-bg,.pm-modal-bg,.np-modal-overlay){background:var(--tc2-dim)!important}
@media (max-width:575.98px){body.tcv2 :is(.md-modal,.fld-modal,.fd-modal,.pm-modal,.np-modal,.pos-modal,.hs-modal){padding-left:14px!important;padding-right:14px!important;max-height:calc(100vh - 1rem)}body.tcv2 :is(.md-modal,.fld-modal,.fd-modal,.pm-modal,.np-modal) :is(.row,[style*="grid"],[class*=-row],.two-col){grid-template-columns:1fr!important;flex-wrap:wrap}}

/* SweetAlert2: confirm / prompt dialogs opened from the form and list pages */
body.tcv2 .swal2-popup{max-width:min(32em,calc(100vw - 1rem))}
body.tcv2 .swal2-popup .swal2-icon{margin-top:.4em}
body.tcv2 .swal2-popup .swal2-html-container{overflow-wrap:anywhere}
body.tcv2 .swal2-popup .swal2-actions{flex-wrap:wrap;gap:8px}
body.tcv2 .swal2-popup .swal2-validation-message{background:var(--tc2-danger-bg)!important;color:var(--tc2-danger)!important;font-size:12.5px;font-weight:700}
body.tcv2 .swal2-popup .swal2-input:focus,body.tcv2 .swal2-popup .swal2-textarea:focus,body.tcv2 .swal2-popup .swal2-select:focus{border-color:var(--tc2-brand)!important}
body.tcv2 .swal2-popup .swal2-checkbox,body.tcv2 .swal2-popup .swal2-radio{font-size:13px;font-weight:700}

/* - 9. phone: single column, no clipped controls, full-width actions ------------- */
@media (max-width:767.98px){
body.tcv2 .content-wrapper :is(.fg-row,.fg-row2,.fg-row3){grid-template-columns:minmax(0,1fr)!important}
body.tcv2 .content-wrapper .card-body .fixed-table-body{overflow-x:auto}
body.tcv2 .content-wrapper .form-group.row>[class*=col-]{flex:0 0 100%;max-width:100%}
body.tcv2 .content-wrapper .form-group.row>label.col-form-label{padding-top:0;margin-bottom:6px}
body.tcv2 .content-wrapper .card-body{padding:14px!important}
body.tcv2 .content-wrapper .card-body:has(.form-group>#submit_btn){padding-bottom:0!important}
body.tcv2 .content-wrapper .form-group:has(>#submit_btn):not(.prod-wrap *){margin:18px -14px 0!important;padding:10px 14px;gap:8px}
body.tcv2 .content-wrapper .form-group:has(>#submit_btn)>.btn{flex:1 1 40%}
body.tcv2 .content-wrapper .input-group{flex-wrap:nowrap}
body.tcv2 .prod-save-bar{padding:10px 14px!important;gap:8px!important}
body.tcv2 .prod-save-bar>div:last-child{width:100%}
body.tcv2 .prod-save-bar>div:last-child>*{flex:1 1 auto;justify-content:center}
body.tcv2 .content-wrapper form .nav-tabs{margin-left:-14px;margin-right:-14px;padding:0 14px}
body.tcv2 .modal .modal-body{padding:14px!important;max-height:calc(100vh - 200px)}
body.tcv2 .modal .modal-header{padding:12px 14px!important}
body.tcv2 .modal .modal-footer{padding:10px 14px!important}
body.tcv2 .modal .modal-footer>.btn,body.tcv2 .modal .modal-footer>button{flex:1 1 40%}
body.tcv2 .modal .modal-body :is(.row>[class*=col-md],.row>[class*=col-lg],.row>[class*=col-sm]){flex:0 0 100%;max-width:100%}
body.tcv2 .modal .modal-body .table-responsive,body.tcv2 .modal .modal-body .fixed-table-body{overflow-x:auto}
body.tcv2 .swal2-popup .swal2-actions>button{flex:1 1 40%}
}
}
