.consent-banner{position:fixed;bottom:0;left:0;right:0;z-index:9999;background:#ffffffeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid rgba(229,231,235,.8);box-shadow:0 -4px 24px #0000000f,0 -1px 4px #0000000a;transform:translateY(100%);opacity:0;transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .35s ease-out}.consent-banner--visible{transform:translateY(0);opacity:1}.consent-banner__content{max-width:960px;margin:0 auto;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1rem}@media(min-width:768px){.consent-banner__content{flex-direction:row;align-items:center;justify-content:space-between;padding:1rem 2rem}}.consent-banner__text{flex:1;min-width:0}.consent-banner__title-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.375rem}.consent-banner__icon{flex-shrink:0;color:var(--text-primary, #1f2937);opacity:.7}.consent-banner__title{font-size:1rem;font-weight:600;color:var(--text-primary, #1f2937);margin:0;line-height:1.4}.consent-banner__description{font-size:.8125rem;color:var(--text-secondary, #374151);line-height:1.5;margin:0;max-width:540px}.consent-banner__link{color:var(--primary, #2563eb);text-decoration:underline;text-underline-offset:2px}.consent-banner__link:hover{color:var(--primary-hover, #1d4ed8)}.consent-banner__actions{display:flex;gap:.5rem;flex-wrap:wrap;flex-shrink:0}.consent-btn{padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;border-radius:6px;cursor:pointer;transition:all .15s ease;white-space:nowrap;font-family:inherit;line-height:1.4}.consent-btn--primary{background:var(--primary, #2563eb);color:#fff;border:2px solid var(--primary, #2563eb)}.consent-btn--primary:hover{background:var(--primary-hover, #1d4ed8);border-color:var(--primary-hover, #1d4ed8)}.consent-btn--reject{background:var(--primary, #2563eb);color:#fff;border:2px solid var(--primary, #2563eb)}.consent-btn--reject:hover{background:var(--primary-hover, #1d4ed8);border-color:var(--primary-hover, #1d4ed8)}.consent-btn--secondary{background:transparent;color:var(--primary, #2563eb);border:2px solid var(--primary, #2563eb)}.consent-btn--secondary:hover{background:var(--primary, #2563eb);color:#fff}.consent-btn:focus-visible{outline:2px solid var(--primary, #2563eb);outline-offset:2px;box-shadow:0 0 0 4px #2563eb40}[data-theme=dark] .consent-banner{background:#1e293be0;border-top:1px solid rgba(51,65,85,.6);box-shadow:0 -4px 24px #0003,0 -1px #94a3b814}[data-theme=dark] .consent-banner__icon,[data-theme=dark] .consent-banner__title{color:var(--text-primary, #f1f5f9)}[data-theme=dark] .consent-banner__description{color:var(--text-secondary, #cbd5e1)}[data-theme=dark] .consent-btn:focus-visible{box-shadow:0 0 0 4px #60a5fa4d}[data-theme=dark] .consent-btn--secondary{color:var(--primary-light, #60a5fa);border-color:var(--primary-light, #60a5fa)}[data-theme=dark] .consent-btn--secondary:hover{background:var(--primary-light, #60a5fa);color:#0f172a}.consent-notice{position:fixed;bottom:0;left:0;right:0;z-index:9998;background:var(--bg-secondary, #f9fafb);border-top:1px solid var(--border, #e5e7eb);transform:translateY(100%);opacity:0;transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .35s ease-out}.consent-notice--visible{transform:translateY(0);opacity:1}.consent-notice__content{max-width:960px;margin:0 auto;padding:.75rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.consent-notice__text{font-size:.8125rem;color:var(--text-secondary, #6b7280);margin:0;line-height:1.5}.consent-notice__link{color:var(--primary, #2563eb);text-decoration:underline;text-underline-offset:2px}.consent-notice__link:hover{color:var(--primary-hover, #1d4ed8)}.consent-notice__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.consent-notice__btn{background:none;border:none;cursor:pointer;font-family:inherit;transition:all .15s ease}.consent-notice__btn--link{font-size:.8125rem;font-weight:500;color:var(--primary, #2563eb);padding:.375rem .75rem;border-radius:4px}.consent-notice__btn--link:hover{background:#2563eb1a}.consent-notice__btn--dismiss{padding:.5rem;border-radius:4px;color:var(--text-tertiary, #9ca3af);display:flex;align-items:center;justify-content:center;min-width:32px;min-height:32px}.consent-notice__btn--dismiss:hover{background:var(--bg-tertiary, #f3f4f6);color:var(--text-secondary, #6b7280)}.consent-notice__btn:focus-visible{outline:2px solid var(--primary, #2563eb);outline-offset:2px}[data-theme=dark] .consent-notice{background:var(--bg-secondary, #1f2937);border-top-color:var(--border, #374151)}[data-theme=dark] .consent-notice__text{color:var(--text-secondary, #9ca3af)}[data-theme=dark] .consent-notice__btn--link{color:var(--primary-light, #60a5fa)}[data-theme=dark] .consent-notice__btn--link:hover{background:#60a5fa26}[data-theme=dark] .consent-notice__btn--dismiss{color:var(--text-tertiary, #6b7280)}[data-theme=dark] .consent-notice__btn--dismiss:hover{background:var(--bg-tertiary, #374151);color:var(--text-secondary, #9ca3af)}@media(max-width:640px){.consent-notice__content{padding:.625rem 1rem}.consent-notice__text{font-size:.75rem}}@supports (padding-bottom: env(safe-area-inset-bottom)){@media(max-width:640px){.consent-notice__content{padding-bottom:calc(.625rem + env(safe-area-inset-bottom))}}}@media(prefers-reduced-motion:reduce){.consent-notice{transition:none}}.consent-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}.consent-modal--visible{opacity:1;visibility:visible}.consent-modal__overlay{position:absolute;inset:0;background:#0006;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.consent-modal__content{position:relative;background:var(--bg-card, #ffffff);border-radius:16px;max-width:480px;width:90%;max-height:90vh;overflow:auto;box-shadow:0 16px 48px #0000001f,0 4px 16px #00000014}.consent-modal__header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border, #e5e7eb)}.consent-modal__header h2{font-size:1.25rem;font-weight:600;margin:0;color:var(--text-primary, #1f2937)}.consent-modal__close{background:none;border:none;padding:.75rem;cursor:pointer;color:var(--text-secondary, #6b7280);border-radius:8px;display:flex;align-items:center;justify-content:center;min-width:40px;min-height:40px}.consent-modal__close:hover{background:var(--bg-secondary, #f3f4f6)}.consent-modal__close:focus-visible{outline:2px solid var(--primary, #2563eb);outline-offset:2px}.consent-modal__body{padding:1.5rem}.consent-modal__footer{display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem;border-top:1px solid var(--border, #e5e7eb)}[data-theme=dark] .consent-modal__content{background:var(--bg-card, #1e293b);box-shadow:0 16px 48px #0006,0 0 1px #94a3b833}[data-theme=dark] .consent-modal__overlay{background:#0009}[data-theme=dark] .consent-modal__header{border-bottom-color:var(--border, #334155)}[data-theme=dark] .consent-modal__header h2{color:var(--text-primary, #f1f5f9)}[data-theme=dark] .consent-modal__close{color:var(--text-secondary, #94a3b8)}[data-theme=dark] .consent-modal__close:hover{background:var(--bg-secondary, #334155)}[data-theme=dark] .consent-modal__footer{border-top-color:var(--border, #334155)}.consent-category{padding:1rem 0;border-bottom:1px solid var(--border, #e5e7eb)}.consent-category:last-child{border-bottom:none}.consent-category__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.consent-category__header h3{font-size:1rem;font-weight:600;margin:0;color:var(--text-primary, #1f2937)}.consent-category__description{font-size:.875rem;color:var(--text-secondary, #6b7280);line-height:1.5;margin:0}.consent-category__badge{font-size:.75rem;padding:.25rem .5rem;border-radius:4px;background:var(--bg-secondary, #f3f4f6);color:var(--text-secondary, #6b7280);font-weight:500}.consent-category__badge--required{background:#dcfce7;color:#166534}[data-theme=dark] .consent-category{border-bottom-color:var(--border, #334155)}[data-theme=dark] .consent-category__header h3{color:var(--text-primary, #f1f5f9)}[data-theme=dark] .consent-category__description{color:var(--text-secondary, #94a3b8)}[data-theme=dark] .consent-category__badge{background:var(--bg-secondary, #334155);color:var(--text-secondary, #94a3b8)}[data-theme=dark] .consent-category__badge--required{background:#166534;color:#dcfce7}.consent-toggle{position:relative;display:inline-block;width:48px;height:26px;flex-shrink:0}.consent-toggle input{opacity:0;width:0;height:0;position:absolute}.consent-toggle__slider{position:absolute;cursor:pointer;inset:0;background:#d1d5db;border-radius:26px;transition:background .2s}.consent-toggle__slider:before{content:"";position:absolute;height:20px;width:20px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .2s}.consent-toggle input:checked+.consent-toggle__slider{background:var(--primary, #2563eb)}.consent-toggle input:checked+.consent-toggle__slider:before{transform:translate(22px)}.consent-toggle input:focus-visible+.consent-toggle__slider{outline:2px solid var(--primary, #2563eb);outline-offset:2px}.consent-toggle input:disabled+.consent-toggle__slider{cursor:not-allowed;opacity:.5}[data-theme=dark] .consent-toggle__slider{background:#475569}[data-theme=dark] .consent-toggle input:checked+.consent-toggle__slider{background:var(--primary-light, #60a5fa)}.consent-gpc-notice{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:#fef3c7;border-radius:8px;margin-bottom:1rem}.consent-gpc-notice__icon{flex-shrink:0;color:#d97706}.consent-gpc-notice__text{font-size:.875rem;color:#92400e;line-height:1.5}[data-theme=dark] .consent-gpc-notice{background:#78350f}[data-theme=dark] .consent-gpc-notice__text{color:#fef3c7}[data-theme=dark] .consent-gpc-notice__icon{color:#fbbf24}@media(max-width:768px){html,body{overflow-x:hidden}}@media(max-width:640px){.consent-banner__content{padding:1rem}.consent-banner__description .consent-banner__detail{display:none}.consent-banner__actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.consent-btn{width:100%;justify-content:center;text-align:center;padding:.75rem}.consent-btn--secondary{grid-column:1 / -1}.consent-modal{align-items:flex-end}.consent-modal__content{width:100%;max-width:100%;margin:0;border-radius:16px 16px 0 0;max-height:75vh;max-height:75dvh;display:flex;flex-direction:column}.consent-modal__header{padding:.75rem 1rem;flex-shrink:0;background:var(--bg-card, #ffffff);border-bottom:1px solid var(--border-color, #e2e8f0)}.consent-modal__header h2{font-size:1rem;margin:0}.consent-modal__body{padding:.75rem 1rem;overflow-y:auto;flex:1;min-height:0}.consent-modal__footer{flex-direction:column;padding:.75rem 1rem;flex-shrink:0;background:var(--bg-card, #ffffff);border-top:1px solid var(--border-color, #e2e8f0);gap:.5rem}.consent-modal__footer .consent-btn{width:100%;padding:.625rem 1rem}.consent-category{padding:.625rem 0}.consent-category__description{font-size:.75rem;line-height:1.5;margin-top:.25rem}.consent-category__header{flex-wrap:wrap;gap:.375rem}.consent-category__header h3{font-size:.875rem}}@media(max-width:640px){[data-theme=dark] .consent-modal__header,[data-theme=dark] .consent-modal__footer{background:var(--bg-card, #1e293b)}[data-theme=dark] .consent-modal__header{border-bottom-color:var(--border-color, #334155)}[data-theme=dark] .consent-modal__footer{border-top-color:var(--border-color, #334155)}}@media(max-width:480px){.consent-banner__actions{display:flex;flex-direction:column;gap:.75rem}.consent-banner__actions .consent-btn{width:100%;min-height:44px}.consent-btn--secondary{grid-column:auto}}@supports (padding-bottom: env(safe-area-inset-bottom)){@media(max-width:640px){.consent-banner__content,.consent-modal__footer{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}}}@supports not (backdrop-filter: blur(12px)){.consent-banner{background:var(--bg-card, #ffffff)}[data-theme=dark] .consent-banner{background:var(--bg-card, #1e293b)}}@media(prefers-reduced-motion:reduce){.consent-banner,.consent-modal,.consent-toggle__slider,.consent-toggle__slider:before{transition:none}}.consent-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
