/* HIGH TOWER consent UI. Kept separate from route styles and admin layouts. */
#ht-cookie-ui { color-scheme: dark; font-family: inherit; }
#ht-cookie-ui [hidden], .ht-cookie-settings[hidden] { display: none !important; }
#ht-cookie-ui *, #ht-cookie-ui *::before, #ht-cookie-ui *::after { box-sizing: border-box; }
.ht-cookie-banner {
  position: fixed; inset: auto 0 0; z-index: 10000;
  color: #fff; background: #080909; isolation: isolate;
  border-top: 1px solid #ffffff24; box-shadow: 0 -10px 40px #0002;
  padding: 30px max(32px, calc((100vw - 1760px) / 2));
  padding-bottom: max(30px, env(safe-area-inset-bottom));
  animation: ht-cookie-enter .4s ease-out both;
}
.ht-cookie-banner::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  opacity: .42;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1400' height='300' viewBox='0 0 1400 300'%3E%3Cg fill='none' stroke='%23363838' stroke-width='1.3'%3E%3Cpath d='M-100 240C140 360 130-110 430 30S730 340 920 190 1290-90 1500 60'/%3E%3Cpath d='M-100 216C140 336 130-134 430 6S730 316 920 166 1290-114 1500 36'/%3E%3Cpath d='M-100 192C140 312 130-158 430-18S730 292 920 142 1290-138 1500 12'/%3E%3Cpath d='M-100 168C140 288 130-182 430-42S730 268 920 118 1290-162 1500-12'/%3E%3Cpath d='M-100 144C140 264 130-206 430-66S730 244 920 94 1290-186 1500-36'/%3E%3Cpath d='M-100 120C140 240 130-230 430-90S730 220 920 70 1290-210 1500-60'/%3E%3C/g%3E%3C/svg%3E");
  background-size: cover; background-position: center;
}
.ht-cookie-inner { display: flex; align-items: center; justify-content: space-between; gap: 28px 48px; max-width: 1760px; margin: auto; }
.ht-cookie-copy { max-width: 980px; }
#ht-cookie-ui .ht-cookie-title { margin: 0 0 12px; font-size: clamp(22px, 1.7vw, 30px); line-height: 1.3; letter-spacing: -.02em; font-weight: 500; color: #fff; }
#ht-cookie-ui .ht-cookie-description { margin: 0; color: #dedede; font-size: 15px; line-height: 1.8; }
.ht-cookie-actions { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
#ht-cookie-ui .ht-cookie-button {
  appearance: none; margin: 0; min-height: 50px; min-width: 130px; padding: 12px 23px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid #ffffffab; border-radius: 999px; background: transparent;
  color: #fff; font: inherit; font-size: 14px; font-weight: 500; line-height: 1.5;
  text-align: center; text-decoration: none; cursor: pointer;
  transition: background .2s, color .2s, border-color .2s, transform .2s;
}
#ht-cookie-ui .ht-cookie-button:hover { background: #ffffff1a; border-color: #fff; transform: translateY(-1px); }
#ht-cookie-ui .ht-cookie-button--accept { background: #fff; color: #101616; border-color: #fff; }
#ht-cookie-ui .ht-cookie-button--accept:hover { background: #e8efed; border-color: #e8efed; }
#ht-cookie-ui .ht-cookie-button:focus-visible, .ht-cookie-settings:focus-visible, #ht-cookie-ui .ht-cookie-close:focus-visible { outline: 3px solid #61dbe5; outline-offset: 4px; }
.ht-cookie-settings { appearance: none; display: block; background: none; border: 0; color: #b5c4c6; font: inherit; font-size: 12px; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; padding: 12px; margin: 8px auto 0; }
.ht-cookie-settings:hover { color: white; }
.ht-cookie-overlay { position: fixed; inset: 0; z-index: 10001; display: grid; place-items: center; padding: 24px; background: #061416b8; }
.ht-cookie-dialog { width: min(650px, 100%); max-height: calc(100dvh - 48px); overflow-y: auto; overscroll-behavior: contain; padding: 34px; border: 1px solid #ffffff29; border-radius: 18px; background: #111918; box-shadow: 0 24px 90px #0005; color: #fff; }
.ht-cookie-dialog-head { display: flex; gap: 20px; align-items: flex-start; justify-content: space-between; margin-bottom: 12px; }
#ht-cookie-ui .ht-cookie-dialog-title { color: #fff; margin: 0; font-size: 24px; font-weight: 500; line-height: 1.4; }
#ht-cookie-ui .ht-cookie-close { flex-shrink: 0; padding: 0; width: 36px; height: 36px; border-radius: 50%; border: 1px solid #ffffff40; color: #fff; background: transparent; cursor: pointer; font: inherit; font-size: 25px; line-height: 1; }
.ht-cookie-policy { color: #d3ddda; font-size: 14px; line-height: 1.85; }
.ht-cookie-policy p { margin: 0 0 17px; }
.ht-cookie-policy h3 { font-size: 15px; color: #fff; margin: 22px 0 8px; }
.ht-cookie-dialog .ht-cookie-actions { justify-content: flex-end; margin-top: 26px; padding-top: 24px; border-top: 1px solid #ffffff24; flex-wrap: wrap; }
@keyframes ht-cookie-enter { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 1100px) {
  .ht-cookie-inner { flex-direction: column; align-items: flex-start; gap: 22px; }
  .ht-cookie-actions { align-self: flex-end; }
  .ht-cookie-copy { max-width: none; }
}
@media (max-width: 600px) {
  .ht-cookie-banner { padding: 23px 20px max(22px, env(safe-area-inset-bottom)); max-height: 85dvh; overflow-y: auto; }
  #ht-cookie-ui .ht-cookie-title { font-size: 22px; margin-bottom: 10px; }
  #ht-cookie-ui .ht-cookie-description { font-size: 13px; line-height: 1.75; }
  .ht-cookie-actions { align-self: stretch; flex-wrap: wrap; gap: 10px; }
  #ht-cookie-ui .ht-cookie-button { flex: 1 1 40%; min-width: 0; font-size: 13px; padding: 11px 15px; min-height: 46px; }
  .ht-cookie-banner .ht-cookie-button--details { flex-basis: 100% !important; min-height: 34px !important; border-color: transparent !important; padding: 3px 12px !important; text-decoration: underline !important; text-underline-offset: 4px; }
  .ht-cookie-overlay { padding: 16px; }
  .ht-cookie-dialog { padding: 24px; max-height: calc(100dvh - 32px); }
  #ht-cookie-ui .ht-cookie-dialog-title { font-size: 21px; }
}
@media (prefers-reduced-motion: reduce) {
  .ht-cookie-banner { animation: none; }
  #ht-cookie-ui .ht-cookie-button { transition: none; }
}
