/* tcv2 SETTINGS archetype: general / payment / email / sms / notification / firebase / auth / language / app version / icons / flags /
   roles-users / sliders-banners / backups ... Hook: .content-wrapper.tcv2-settings (added to each view); the generic form / card / button rules also serve .tcv2-maps pages. Every rule body.tcv2; page <style>
   blocks (.st-wrap .ws-wrap ...) use !important, so colour / shape / type rules here are !important at a higher specificity. */
@media screen{
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps){background:var(--tc2-bg)!important;--tc2-sbar-l:250px}
body.tcv2.sidebar-collapse .content-wrapper:is(.tcv2-settings,.tcv2-maps){--tc2-sbar-l:4.6rem}

/* ── page header ───────────────────────────────────────────────────────── */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .content-header :is(h1,h2,h3,h4){font-size:var(--tc2-fs-h)!important;font-weight:800!important;color:var(--tc2-ink)!important;line-height:1.2!important;margin:0!important;padding:0!important;border:0!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .content-header .breadcrumb{background:transparent!important;font-size:11.5px!important;padding:0!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.st-page-hdr,.page-title){padding:14px 0 8px}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .content>.container-fluid{padding-top:8px!important;padding-bottom:24px}

/* ── cards = settings groups ───────────────────────────────────────────── */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card{background:var(--tc2-surface)!important;border:1px solid var(--tc2-line)!important;border-top:1px solid var(--tc2-line)!important;border-radius:var(--tc2-r-card)!important;box-shadow:none!important;overflow:visible;margin-bottom:16px}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card>.card-header:first-child{border-radius:calc(var(--tc2-r-card) - 1px) calc(var(--tc2-r-card) - 1px) 0 0!important;background:var(--tc2-surface)!important;color:var(--tc2-ink)!important;border-bottom:1px solid var(--tc2-line)!important;padding:13px 18px!important;font-size:14px!important;font-weight:800!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card:is(.card-info,.card-primary,.card-success,.card-secondary,.card-dark):not(.card-outline)>.card-header:first-child{background:var(--tc2-header-grad)!important;color:#fff!important;border-bottom:0!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card>.card-header .card-title{font-size:14px!important;font-weight:800!important;color:inherit!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card>.card-body{padding:18px!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card .card .card-body{padding:6px 0!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card>.card-footer:last-child{border-radius:0 0 calc(var(--tc2-r-card) - 1px) calc(var(--tc2-r-card) - 1px)}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card-body .card{box-shadow:none!important;border-radius:14px!important}
/* group titles inside a card: h4 = group title with its rule, h5 = sub-group with the brand bar */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card-body h4:not(.card-title):not(.modal-title){font-size:14px!important;font-weight:800!important;color:var(--tc2-ink)!important;margin:0 0 14px!important;padding:0 0 11px!important;border-bottom:1px solid var(--tc2-line)!important;line-height:1.4}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card-body h5{font-size:13px!important;font-weight:800!important;color:var(--tc2-ink)!important;margin:22px 0 12px!important;display:flex;align-items:center;gap:9px}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card-body h5::before{content:"";width:4px;height:16px;background:var(--tc2-brand)!important;border-radius:2px;flex:none}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card-body>h5:first-child,body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card-body>.row:first-child h5:first-child{margin-top:0!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card-body p.text-muted,body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card-body>p:first-child{font-size:12.5px;font-weight:600;color:var(--tc2-mut)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card-body h4:not(.card-title)+hr{display:none}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card-body hr{border-top:1px solid var(--tc2-line);margin:16px 0}

/* ── rows: label + help on the left, control on the right (desktop) ────── */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .form-group{margin-bottom:14px}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .form-group.row{align-items:flex-start;margin-bottom:0;padding:13px 0;border-bottom:1px solid var(--tc2-line-soft)}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .form-group.row:last-child{border-bottom:0}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .form-group.row{margin-left:0;margin-right:0}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .form-group.row>[class*=col-]{padding-left:0;padding-right:0}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .form-group.row>[class*=col-]~[class*=col-]{padding-left:16px}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .form-group.row>label:not([class*=col-]){padding:0}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .form-group.row>:is(label,.col-form-label){padding-top:9px;margin-bottom:0}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(label,.col-form-label):not(.tc-cityops *){font-size:12px!important;font-weight:800!important;text-transform:none!important;letter-spacing:0!important;line-height:1.45}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) label:not(.text-danger):not(.text-muted):not(.text-success):not(.custom-control-label):not(.badge):not(.btn):not(.bootstrap-switch-label):not(.tc-cityops *){color:var(--tc2-ink)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) label.text-danger{font-weight:700!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(small,.form-text,.help-block,.text-xs):not(.text-danger){font-weight:600;color:var(--tc2-mut)}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .text-danger.text-xs{color:var(--tc2-danger)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .form-group.row>:is(.col-sm-9,.col-sm-10,.col-md-8,.col-md-9,.col-md-10)>:is(small,.form-text){display:block;margin-top:6px}

/* ── controls ──────────────────────────────────────────────────────────── */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.form-control,.custom-select,.custom-file-label):not(.form-control-sm):not(.custom-select-sm){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;color:var(--tc2-ink)!important;box-shadow:none!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.form-control,.custom-select,.custom-file-label):not(:is(:disabled,[readonly])){background-color:var(--tc2-surface)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.form-control,.custom-select):not(.form-control-sm):not(.custom-select-sm):focus{border-color:var(--tc2-brand)!important;outline:2px solid var(--tc2-focus);outline-offset:1px}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) textarea.form-control{min-height:84px;resize:vertical}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.form-control,.custom-select)::placeholder{color:var(--tc2-mut2);font-weight:600}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.form-control,.custom-select):is(:disabled,[readonly]){background-color:var(--tc2-surface-2)!important;border-color:#D1D5DB!important;color:var(--tc2-text-2)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) select.form-control:not([multiple]){padding-right:34px!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.input-group-text){border:2px solid var(--tc2-outline)!important;background:#F3F4F6!important;font-size:12.5px!important;font-weight:800!important;color:var(--tc2-text-2)!important;border-radius:var(--tc2-r-ctl)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .input-group-prepend .input-group-text{border-top-right-radius:0!important;border-bottom-right-radius:0!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .input-group-append .input-group-text{border-top-left-radius:0!important;border-bottom-left-radius:0!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .input-group>:is(.form-control,.custom-select):not(:last-child){border-top-right-radius:0!important;border-bottom-right-radius:0!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .input-group>:is(.form-control,.custom-select):not(:first-child){border-top-left-radius:0!important;border-bottom-left-radius:0!important}
/* generated / copy-only values (webhook, cron and notification URLs): read-only chip look */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(input,textarea)[readonly].form-control{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;font-size:12px!important;font-weight:600!important;letter-spacing:0}
/* keys and secrets: masked until the field is focused (display only, the value is untouched) */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) input.form-control:is([name*="secret" i],[name*="salt_key" i],[name*="encryption_key" i],[name*="server_key" i],[name*="auth_token" i],[name*="anthropic_key" i],[name*="private_key" i],[name="password"],[name*="smtp_password" i]):not(:focus):not([readonly]){-webkit-text-security:disc;letter-spacing:.12em}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) input.form-control:is([name*="secret" i],[name*="salt_key" i],[name*="encryption_key" i],[name*="server_key" i],[name*="auth_token" i],[name*="anthropic_key" i],[name*="private_key" i],[name="password"]):not([readonly]):not(:placeholder-shown){font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) input.form-control:is([name*="_key" i],[name*="key_id" i],[name*="api_key" i],[name*="token" i],[name*="app_id" i],[name*="merchant" i]):not([readonly]):not(:placeholder-shown){font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;font-size:12.5px!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .select2-container .select2-selection{border:2px solid var(--tc2-outline)!important;border-radius:var(--tc2-r-ctl)!important;min-height:var(--tc2-ctl-h)}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .select2-container--focus .select2-selection{border-color:var(--tc2-brand)!important;box-shadow:none!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .select2-container{max-width:100%}

/* ── switches, checks, radios ──────────────────────────────────────────── */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .bootstrap-switch{border:2px solid var(--tc2-outline)!important;border-radius:var(--tc2-r-pill)!important;overflow:hidden;box-shadow:none!important;background:var(--tc2-surface)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .bootstrap-switch.bootstrap-switch-on .bootstrap-switch-handle-on,body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .bootstrap-switch .bootstrap-switch-handle-on{background:var(--tc2-brand)!important;color:#fff!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .bootstrap-switch .bootstrap-switch-handle-off{background:#E5E7EB!important;color:var(--tc2-text-2)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger{background:var(--tc2-danger)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .bootstrap-switch :is(.bootstrap-switch-handle-on,.bootstrap-switch-handle-off,.bootstrap-switch-label){font-size:11.5px!important;font-weight:800!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.icheck-info,.icheck-primary,.icheck-success)>input:first-child:checked+label::before{background-color:var(--tc2-brand)!important;border-color:var(--tc2-brand)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.icheck-info,.icheck-primary,.icheck-success,.icheck-secondary,.icheck-danger)>label{font-size:13px!important;font-weight:700!important;color:var(--tc2-ink)!important;text-transform:none!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .custom-control-input:checked~.custom-control-label::before{background:var(--tc2-brand)!important;border-color:var(--tc2-brand)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .custom-control-label{text-transform:none!important;font-size:13px!important}

/* ── buttons ───────────────────────────────────────────────────────────── */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.btn,button[type=submit],button[type=reset],input[type=submit]){font-size:13px!important;font-weight:800!important;border-radius:var(--tc2-r-btn)!important;border-width:1.5px!important;border-style:solid!important;box-shadow:none!important;transform:none!important;text-transform:none!important;letter-spacing:0!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.btn-sm,.btn-xs){font-size:12px!important;border-radius:var(--tc2-r-sm)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.btn-success,.btn-info,.btn-primary,button[type=submit].btn){border-color:var(--tc2-brand)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.btn-danger){border-color:var(--tc2-danger-dark)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.btn-warning,.btn-secondary,.btn-default,button[type=reset]){border-color:var(--tc2-line)!important;background:var(--tc2-neutral-btn)!important;color:var(--tc2-neutral-fg)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.btn-outline-info,.btn-outline-primary,.btn-outline-success){border-width:2px!important;border-color:var(--tc2-brand)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.btn-outline-danger){border-width:2px!important;border-color:var(--tc2-danger)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .uploadFile.btn{padding:7px 13px!important}
/* test / verify buttons sit beside their inputs */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.btn-test-key,.btn-test,[id*="test_" i].btn,[class*="test-btn" i]){--b:var(--tc2-surface);--bd:var(--tc2-brand);--fg:var(--tc2-brand);--bh:var(--tc2-mint-soft)}

/* ── save bar: sticky at the bottom of the viewport while the form is on screen ── */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .form-group:has(>button[type=submit]):has(>button[type=reset]){position:sticky;bottom:12px;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:10px;margin:18px 0 0!important;padding:10px 14px!important;background:var(--tc2-surface);border:1px solid var(--tc2-line);border-radius:var(--tc2-r-ctl);box-shadow:0 8px 24px -10px rgba(17,24,39,.28)}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card-body>.form-group:has(>button[type=submit]):has(>button[type=reset]){bottom:0;margin:18px -18px -18px!important;padding:12px 18px!important;border:0;border-top:1px solid var(--tc2-line);border-radius:0 0 calc(var(--tc2-r-card) - 1px) calc(var(--tc2-r-card) - 1px);box-shadow:0 -8px 18px -12px rgba(17,24,39,.18)}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .form-group:has(>button[type=submit]):has(>button[type=reset])>.btn{margin:0!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .form-group:has(>button[type=submit])>button[type=submit]{order:1}
/* private fixed save bars (flags, loyalty, ride settings) must not slide under the sidebar */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .save-bar{left:var(--tc2-sbar-l)!important;background:var(--tc2-surface)!important;border-top:1px solid var(--tc2-line)!important;box-shadow:0 -8px 18px -12px rgba(17,24,39,.18);z-index:900!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .save-bar .btn-save{background:var(--tc2-brand)!important;border:1.5px solid var(--tc2-brand)!important;border-radius:var(--tc2-r-btn)!important;font-size:13px!important;font-weight:800!important;padding:9px 22px!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .save-bar .btn-save:hover{background:var(--tc2-brand-hover)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .save-bar-left{font-size:12.5px!important;font-weight:700!important;color:var(--tc2-mut)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) #save-toast{border-radius:var(--tc2-r-sm)!important;font-weight:800!important;border-color:var(--tc2-ok-bd)!important;background:var(--tc2-mint-soft)!important;color:var(--tc2-ok)!important}

/* ── tabs ──────────────────────────────────────────────────────────────── */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .nav-tabs{border-bottom:1px solid var(--tc2-line)!important;margin-bottom:14px}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .nav-tabs .nav-link{font-size:13px!important;font-weight:800!important;color:var(--tc2-mut)!important;border:0!important;border-bottom:3px solid transparent!important;border-radius:0!important;padding:10px 14px!important;background:transparent!important;margin-bottom:-1px}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .nav-tabs .nav-link:hover{color:var(--tc2-ink)!important;border-bottom-color:var(--tc2-line)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .nav-tabs .nav-link.active{color:var(--tc2-brand)!important;border-bottom-color:var(--tc2-brand)!important;background:transparent!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card-header:not(:is(.bg-info)) .nav-tabs .nav-link{color:inherit}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .nav-pills .nav-link{font-size:12.5px!important;font-weight:800!important;border-radius:10px!important;color:var(--tc2-text-2)!important;padding:8px 14px}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .nav-pills .nav-link.active{background:var(--tc2-mint)!important;color:var(--tc2-brand)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .tab-content{padding-top:2px}

/* ── status chips, callouts, notices ───────────────────────────────────── */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .badge{font-size:11.5px!important;font-weight:800!important;border-radius:var(--tc2-r-pill)!important;padding:4px 10px}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.alert,.callout){border-radius:var(--tc2-r-ctl)!important;font-size:12.5px;font-weight:700}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .callout{border-width:1.5px!important;border-left-width:5px!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) code{background:var(--tc2-surface-2);border:1px solid var(--tc2-line);border-radius:6px;padding:1px 6px;color:var(--tc2-danger-dark);font-size:11.5px}
/* red helper paragraphs the legacy pages use for setup notes */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(p,div,span).text-danger:not(.invalid-feedback):not(.text-xs){font-weight:700}

/* ── tables inside settings pages ──────────────────────────────────────── */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .table-responsive{border:1px solid var(--tc2-line);border-radius:var(--tc2-r-ctl);background:var(--tc2-surface)}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .bootstrap-table .fixed-table-container{border-radius:var(--tc2-r-ctl)}

/* ── media / upload sections ───────────────────────────────────────────── */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .image-upload-section{margin:8px 0 0!important;padding:0!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .image-upload-section>.image{box-shadow:none!important;border:1px solid var(--tc2-line);border-radius:14px!important;background:var(--tc2-surface-2)!important;margin:6px 0 0!important;padding:12px!important;width:auto;max-width:180px;flex:0 0 auto}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .image-upload-section img{max-height:120px;object-fit:contain;border-radius:8px}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .form-group>.col-sm-10:has(>.col-md-3>.uploadFile){padding-left:0;max-width:100%;flex:none;width:100%}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .form-group>.col-sm-10>.col-md-3:has(>.uploadFile){padding-left:0;max-width:none;flex:none;width:auto}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .form-group>.col-sm-10>label.text-danger{display:block;margin:8px 0 0!important;font-size:11.5px!important}

/* ── editors (summernote) ──────────────────────────────────────────────── */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .note-editor.note-frame{border:2px solid var(--tc2-outline)!important;border-radius:var(--tc2-r-ctl)!important;overflow:hidden}

/* ── private design systems: hero, cards, rows, fields ─────────────────── */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.ff-hero,.av-hero,.ai-hero,.rh-hero){background:var(--tc2-header-grad)!important;border-radius:var(--tc2-r-card)!important;box-shadow:none!important;color:#fff}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.ff-hero h1,.av-hero h1,.ai-hero h1,.rh-hero h1){font-size:21px!important;font-weight:800!important;color:#fff!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.ff-hero p,.av-hero p,.ai-hero p,.rh-hero p){font-size:12.5px!important;font-weight:600!important;color:rgba(255,255,255,.94)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .ff-hero-stats .count{color:#FCD34D!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .ff-hero-stats small{color:rgba(255,255,255,.94)!important;font-weight:700}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.ff-wrap,.av-wrap,.ai-wrap,.rh-wrap,.ls){font-family:var(--tc2-font)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.phase-card,.av-card,.ai-card,.rh-card,.ls-card,.ai-section-card,.ai-stat-card){background:var(--tc2-surface)!important;border:1px solid var(--tc2-line)!important;border-radius:var(--tc2-r-card)!important;box-shadow:none!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.phase-hdr,.av-card-hdr,.ai-card-hdr){background:var(--tc2-surface)!important;border-bottom:1px solid var(--tc2-line)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.phase-hdr h2,.av-card-hdr h2,.ai-card-hdr h2,.ls-card-title,.rh-section-title){font-size:14px!important;font-weight:800!important;color:var(--tc2-ink)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .phase-hdr:hover{background:var(--tc2-surface-2)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.flag-row,.rh-row,.tog-row,.tier-row,.force-toggle){border-color:var(--tc2-line-soft)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.flag-row,.rh-row):hover{background:var(--tc2-surface-2)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.flag-info strong,.rh-info strong,.tog-label strong,.force-info strong,.tier-info strong){font-size:13px!important;font-weight:800!important;color:var(--tc2-ink)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.flag-info span,.rh-info span,.tog-label span,.force-info span,.tier-info small,.ai-help,.ai-sub){font-size:12px!important;font-weight:600!important;color:var(--tc2-mut)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.flag-key,.rh-key){background:var(--tc2-line-soft)!important;color:var(--tc2-text-2)!important;border-radius:6px!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.flag-scope,.phase-badge,.rh-badge-global,.rh-badge-tier,.ai-pill,.tier-badge,.ai-status-badge){border-radius:var(--tc2-r-pill)!important;font-weight:800!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.field-group label,.fg label,.ai-field label,.rh-add-field label){font-size:12px!important;font-weight:800!important;color:var(--tc2-ink)!important;text-transform:none!important;letter-spacing:0!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.field-group input,.field-group textarea,.field-group select,.fg input,.fg select,.ai-field input,.ai-field select,.tier-input,.rh-num,.rh-add-field select,.rh-add-field input){border:2px solid var(--tc2-outline)!important;border-radius:var(--tc2-r-ctl)!important;font-size:13px!important;font-weight:700!important;color:var(--tc2-ink)!important;background:var(--tc2-surface);box-shadow:none!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.field-group input,.field-group textarea,.field-group select,.fg input,.fg select,.ai-field input,.ai-field select,.tier-input,.rh-num,.rh-add-field select,.rh-add-field input):focus{border-color:var(--tc2-brand)!important;outline:2px solid var(--tc2-focus);outline-offset:1px}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.field-group small,.fg small){font-size:12px!important;font-weight:600!important;color:var(--tc2-mut)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .tog-sl,body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .tslider,body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .toggle-slider{background-color:#D1D5DB}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.tog-wrap input:checked+.tog-sl,.toggle-wrap input:checked+.tslider,.toggle-switch input:checked+.toggle-slider){background-color:var(--tc2-brand)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.ai-btn,.btn-test-key,.rh-row-save){border-radius:var(--tc2-r-btn)!important;font-size:13px!important;font-weight:800!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.ai-table,.rh-table) th{font-size:10.5px!important;font-weight:800!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:var(--tc2-mut)!important;background:var(--tc2-surface-2)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.ai-table,.rh-table) td{font-size:12.5px!important;font-weight:600!important;border-color:var(--tc2-line-soft)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.warn-box,.ai-note,.rh-readonly-note){border-radius:var(--tc2-r-ctl)!important;font-weight:700!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.ai-err,.ai-msg.bad,.test-err){border-radius:var(--tc2-r-ctl)!important}

/* assorted page-private headers and inline-styled buttons */
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.pm-hdr h1,.rs-page-hdr h1,.rs-page-hdr h2,.rs-page-hdr .rs-ttl){font-size:var(--tc2-fs-h)!important;font-weight:800!important;color:var(--tc2-ink)!important;line-height:1.2}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.pm-hdr p,.rs-page-hdr p,.rs-page-hdr .sub){font-size:12.5px!important;font-weight:600!important;color:var(--tc2-mut)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .btn-test-key{background:var(--tc2-surface)!important;color:var(--tc2-brand)!important;border:1.5px solid var(--tc2-brand)!important;padding:6px 13px!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .btn-test-key:hover{background:var(--tc2-mint-soft)!important;color:var(--tc2-brand)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .ai-section-card button[type=button][style]{border-radius:var(--tc2-r-btn)!important;font-size:13px!important;font-weight:800!important;padding:8px 16px!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .rl-hdr{background:var(--tc2-header-grad)!important}

/* ── phone ─────────────────────────────────────────────────────────────── */
@media (max-width:767.98px){
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps){--tc2-sbar-l:0px}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card>.card-body{padding:14px!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .form-group.row{padding:12px 0}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .form-group.row>:is(label,.col-form-label){padding-top:0;margin-bottom:6px}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .card-body>.form-group:has(>button[type=submit]):has(>button[type=reset]){margin:14px -14px -14px!important;padding:10px 14px!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .form-group:has(>button[type=submit]):has(>button[type=reset])>.btn{flex:1 1 auto}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .save-bar{padding:10px 14px!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.fg-row,.fg-row2){grid-template-columns:minmax(0,1fr)!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.fg,.field-group) :is(input,select,textarea){min-width:0;max-width:100%}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) :is(.ff-hero,.av-hero,.ai-hero,.rh-hero){padding:16px!important;gap:12px!important;flex-wrap:wrap}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .ff-hero-stats{margin-left:0!important;text-align:left!important}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .phase-hdr{flex-wrap:wrap}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .phase-hdr>div:not([class]){flex:1 1 150px;min-width:0}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .phase-hdr :is(.phase-badge,.phase-toggle){margin-left:0}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .bootstrap-switch{max-width:100%}
body.tcv2 .content-wrapper:is(.tcv2-settings,.tcv2-maps) .content>.container-fluid{padding-left:12px!important;padding-right:12px!important}
}
}
