/* TicketFan privacy controls. Loaded sitewide only when the native consent manager is enabled. */
.tf-consent[hidden],.tf-consent [hidden]{display:none!important}
.tf-consent{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:flex-end;justify-content:center;padding:clamp(12px,2.5vw,28px);background:rgba(3,12,26,.48);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.tf-consent__panel{width:min(920px,100%);max-height:min(760px,calc(100vh - 24px));overflow:auto;border:1px solid rgba(255,255,255,.12);border-radius:22px;background:#fff;color:#0c1729;box-shadow:0 28px 90px rgba(2,12,27,.32);padding:clamp(20px,3vw,32px)}
.tf-consent__copy{display:grid;grid-template-columns:48px minmax(0,1fr);gap:16px;align-items:start}
.tf-consent__icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#e5f3f7;color:#007da8}
.tf-consent__icon svg{width:24px;height:24px}
.tf-consent h2{margin:0 0 7px;font-size:clamp(21px,2.5vw,29px);line-height:1.15;color:#0c1729}
.tf-consent p{margin:0;color:#556176;line-height:1.6;font-size:15px}
.tf-consent__preferences{display:grid;gap:10px;margin-top:20px;padding-top:18px;border-top:1px solid #e5e9ef}
.tf-consent__preferences label{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:14px 16px;border:1px solid #dfe5ed;border-radius:14px;background:#f8fafc;cursor:pointer}
.tf-consent__preferences label:has(input:disabled){cursor:default}
.tf-consent__preferences span{display:grid;gap:4px}
.tf-consent__preferences strong{font-size:14px;color:#0c1729}
.tf-consent__preferences small{font-size:12px;line-height:1.4;color:#68758a}
.tf-consent__preferences input{appearance:none;width:44px;height:24px;margin:0;border-radius:999px;background:#cbd3df;position:relative;transition:.18s ease;cursor:pointer}
.tf-consent__preferences input::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.2);transition:.18s ease}
.tf-consent__preferences input:checked{background:#007da8}
.tf-consent__preferences input:checked::after{transform:translateX(20px)}
.tf-consent__preferences input:disabled{opacity:.72;cursor:not-allowed}
.tf-consent__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:22px}
.tf-consent__button{min-height:44px;padding:11px 17px;border:1px solid #d7dee8;border-radius:12px;background:#fff;color:#152238;font:inherit;font-size:14px;font-weight:750;cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease}
.tf-consent__button:hover{transform:translateY(-1px);border-color:#aeb9c8}
.tf-consent__button:focus-visible{outline:3px solid #007da8;outline-offset:2px}
.tf-consent__button--primary{border-color:#102b40;background:#102b40;color:#fff}
.tf-consent__button--primary:hover{border-color:#18516b;background:#18516b}
.tf-consent__button--text{margin-left:auto;border-color:transparent;background:transparent;color:#4e5b70;text-decoration:underline;text-underline-offset:3px}
html.tf-consent-open{overflow:hidden}
@media(max-width:640px){.tf-consent{align-items:flex-end;padding:0;background:rgba(3,12,26,.58)}.tf-consent__panel{max-height:88vh;border-radius:22px 22px 0 0;padding:20px 18px}.tf-consent__copy{grid-template-columns:40px minmax(0,1fr);gap:12px}.tf-consent__icon{width:40px;height:40px}.tf-consent__actions{display:grid;grid-template-columns:1fr 1fr}.tf-consent__button{width:100%}.tf-consent__button--text{grid-column:1/-1;margin:0}.tf-consent__preferences label{padding:12px}}
@media(prefers-reduced-motion:reduce){.tf-consent *{scroll-behavior:auto!important;transition:none!important}}

/* Crisp support launcher. It remains visible until the official chatbox is ready. */
.tf-crisp-launcher[hidden]{display:none!important}
.tf-crisp-launcher{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:2147481900;display:inline-flex;align-items:center;gap:10px;min-height:54px;padding:12px 17px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:#102b40;color:#fff;box-shadow:0 16px 42px rgba(8,22,43,.28);font:inherit;font-size:14px;font-weight:800;line-height:1;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}
.tf-crisp-launcher:hover{transform:translateY(-2px);box-shadow:0 20px 50px rgba(8,22,43,.34)}
.tf-crisp-launcher:focus-visible{outline:3px solid #007da8;outline-offset:3px}
.tf-crisp-launcher__icon{display:grid;place-items:center;width:26px;height:26px;flex:0 0 26px}
.tf-crisp-launcher__icon svg{width:25px;height:25px;stroke-width:2}
.tf-crisp-launcher__label{white-space:nowrap}
.tf-crisp-launcher.is-loading{cursor:progress;opacity:.82}
.tf-crisp-launcher.is-loading .tf-crisp-launcher__icon{animation:tf-crisp-pulse 1s ease-in-out infinite alternate}
html.tf-consent-open .tf-crisp-launcher{opacity:0;pointer-events:none}
@keyframes tf-crisp-pulse{from{transform:scale(.92)}to{transform:scale(1.08)}}
@media(max-width:640px){.tf-crisp-launcher{right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));width:56px;height:56px;min-height:56px;padding:0;justify-content:center}.tf-crisp-launcher__label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}
@media(prefers-reduced-motion:reduce){.tf-crisp-launcher,.tf-crisp-launcher__icon{animation:none!important;transition:none!important}}
/* Explicit support permission. The native dialog traps focus while open. */
.tt-chat-dialog:not([open]){display:none}
.tt-chat-dialog{width:min(480px,calc(100% - 36px));max-height:85dvh;overflow:auto;border:1px solid #c6d6dd;border-radius:14px;padding:28px;color:#102b40;background:#fff;box-shadow:0 25px 100px #081c3c40;z-index:2147482500;font:inherit}
.tt-chat-dialog::backdrop{background:#0b263ab3}
.tt-chat-dialog h2{font-size:23px;line-height:1.3;margin:0 0 15px;color:#102b40}
.tt-chat-dialog p{font-size:14px;line-height:1.8;color:#3c596b}
.tt-chat-dialog-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.tt-chat-dialog-actions button{border:1px solid #102b40;border-radius:6px;background:#102b40;color:#fff;padding:12px 16px;font:inherit;font-size:13px;min-height:44px;cursor:pointer}
.tt-chat-dialog-actions [data-tf-chat-cancel]{background:#fff;color:#102b40}
.tt-chat-dialog button:focus-visible{outline:3px solid #008bb0;outline-offset:3px}
.tt-chat-error[hidden]{display:none!important}
.tt-chat-error{position:fixed;right:18px;bottom:88px;width:min(310px,calc(100% - 36px));padding:16px;border:1px solid #c8d8df;border-radius:10px;background:#fff;color:#102b40;box-shadow:0 12px 35px #102b4020;z-index:2147481901;font-size:13px;line-height:1.6}
.tt-chat-error p{margin:0 0 8px}.tt-chat-error a{color:#075978;text-decoration:underline}

.tf-consent__preferences input:focus-visible{outline:3px solid #007da8;outline-offset:3px}.tf-consent__panel{overscroll-behavior:contain;max-height:calc(100dvh - 24px)}
