.cft-v2-root,
.cft-v2-root * { box-sizing: border-box; }
.cft-v2-root { color: #252525; font-family: inherit; }
.cft-v2-footer-control { display: none; margin-left: 1em; font: inherit; color: inherit; }
.l-footer .row-copyrights .cft-v2-footer-control { display: inline; }
.cft-v2-footer-link { padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; font: inherit; text-decoration: none; }
.cft-v2-footer-link:hover { color: var(--color-footer-link-hover, var(--color-content-primary, #C1001E)); }
.cft-v2-footer-link:focus-visible { outline: 2px solid var(--color-content-primary, var(--color-red, #C1001E)); outline-offset: 3px; }
.cft-v2-banner,
.cft-v2-panel { position: fixed; z-index: 100000; left: 1rem; right: 1rem; bottom: 1rem; max-width: 720px; margin: auto; padding: 1.25rem; background: #fff; border: 2px solid var(--color-content-primary, var(--color-red, #C1001E)); border-radius: 0.35rem; box-shadow: 0 0.5rem 2rem rgba(0,0,0,.22); }
.cft-v2-panel {
    top: auto;
    left: 50%;
    right: auto;
    width: min(860px, calc(100vw - 2rem));
    max-width: none;
    max-height: 90vh;
    height: auto;
    overflow-y: auto;
    transform: translateX(-50%);
}
.cft-v2-root h2 { margin: 0 0 .75rem; font-size: 1.35rem; }
.cft-v2-root p { margin: 0 0 1rem; line-height: 1.5; }
.cft-v2-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1rem; }
.cft-v2-button { min-height: 2.75rem; padding: .65rem 1rem; border: 2px solid var(--color-content-primary, var(--color-red, #C1001E)); border-radius: .25rem; background: #fff; color: #252525; cursor: pointer; font: inherit; font-weight: 600; }
.cft-v2-button-primary { background: var(--color-content-primary, var(--color-red, #C1001E)); color: #fff; }
.cft-v2-button-primary:hover { background: var(--color-content-link-hover, var(--color-content-primary, #C1001E)); }
.cft-v2-button-primary:focus-visible,
.cft-v2-footer-link:focus-visible { outline: 3px solid var(--color-content-primary, var(--color-red, #C1001E)); outline-offset: 3px; }
.cft-v2-button:focus-visible,
.cft-v2-root input:focus-visible { outline: 3px solid #1b5e9e; outline-offset: 2px; }
.cft-v2-category { margin: 0 0 .55rem; padding: .7rem .85rem; border: 1px solid #d6d9dd; border-radius: .3rem; }
.cft-v2-category-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-height: 1.7rem; }
.cft-v2-category-title { color: #252525; cursor: pointer; font-weight: 700; }
.cft-v2-category-control { display: inline-flex; align-items: center; gap: .55rem; flex-shrink: 0; }
.cft-v2-switch { position: relative; display: inline-flex; width: 2.85rem; height: 1.55rem; cursor: pointer; }
.cft-v2-switch-input { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.cft-v2-switch-track { position: absolute; inset: 0; display: block; border-radius: 999px; background: #c5cbd1; color: #26313a; font-size: .55rem; font-weight: 700; line-height: 1.55rem; text-align: right; padding-right: .28rem; transition: background .15s ease; }
.cft-v2-switch-track::before { content: 'OFF'; }
.cft-v2-switch-track::after { position: absolute; top: .2rem; left: .2rem; width: 1.15rem; height: 1.15rem; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.28); content: ''; transition: transform .15s ease; }
.cft-v2-switch-input:checked + .cft-v2-switch-track { background: var(--color-content-primary, var(--color-red, #C1001E)); color: #fff; text-align: left; padding-left: .28rem; padding-right: 0; }
.cft-v2-switch-input:checked + .cft-v2-switch-track::before { content: 'ON'; }
.cft-v2-switch-input:checked + .cft-v2-switch-track::after { transform: translateX(1.3rem); }
.cft-v2-switch-input:focus-visible + .cft-v2-switch-track { outline: 3px solid var(--color-content-primary, var(--color-red, #C1001E)); outline-offset: 3px; }
.cft-v2-switch-input:disabled + .cft-v2-switch-track { cursor: not-allowed; opacity: .58; }
.cft-v2-required { color: #59636d; font-size: .75rem; font-weight: 600; white-space: nowrap; }
.cft-v2-category-description { margin: .2rem 0 0 !important; font-size: .86rem; line-height: 1.35; }
@media (max-width: 600px) {
    .cft-v2-banner, .cft-v2-panel { left: .5rem; right: .5rem; width: auto; bottom: .5rem; padding: 1rem; }
    .cft-v2-panel { max-height: calc(100vh - 1rem); }
    .cft-v2-actions { flex-direction: column; }
    .cft-v2-button { width: 100%; }
}
