/* QI Core - consentimiento v1; tema QI Industrial (sin dependencias externas) */
.qi-consent-banner[hidden], .qi-consent-overlay[hidden], .qi-consent-reopen[hidden] { display:none !important; }
.qi-consent-banner, .qi-consent-overlay, .qi-consent-reopen { box-sizing:border-box; font-family:Arial,Helvetica,sans-serif; }
.qi-consent-banner *, .qi-consent-overlay * { box-sizing:border-box; }
.qi-consent-banner {
    position:fixed; left:16px; right:16px; bottom:16px; z-index:100000;
    max-width:1040px; margin:0 auto; padding:22px 24px;
    color:#122025; background:#fff; border:1px solid #d9e0db;
    box-shadow:0 14px 55px rgba(18,32,37,.24); border-radius:8px;
    display:flex; align-items:center; justify-content:space-between; gap:24px;
    max-height:calc(100dvh - 32px); overflow-y:auto;
}
.qi-consent-banner-copy { flex:1 1 460px; min-width:0; }
.qi-consent-eyebrow { color:#c95427; font:bold 10px/1.4 ui-monospace,Consolas,monospace; letter-spacing:.09em; margin:0 0 8px; }
.qi-consent-banner h2 { margin:0 0 8px; font-size:20px; line-height:1.2; font-weight:800; }
.qi-consent-banner-copy>p:not(.qi-consent-eyebrow), .qi-consent-dialog>p { font-size:13px; line-height:1.55; margin:0 0 6px; color:#42545a; }
.qi-consent-policy { font-size:12px !important; margin:9px 0 0 !important; }
.qi-consent-policy a { text-decoration:underline; color:#122025; }
.qi-consent-banner-actions { flex:0 0 auto; display:flex; gap:8px; align-items:stretch; flex-wrap:wrap; justify-content:flex-end; max-width:435px; }
.qi-consent-button { appearance:none; border:1px solid #9cadad; border-radius:5px; padding:11px 13px; min-height:44px; background:#fff; color:#122025; font-size:12px; font-weight:800; line-height:1.2; cursor:pointer; white-space:normal; }
.qi-consent-button:hover { border-color:#fc6f38; }
.qi-consent-button:focus-visible, .qi-consent-close:focus-visible, .qi-consent-reopen:focus-visible { outline:3px solid #fc6f38; outline-offset:2px; }
.qi-consent-button-primary { background:#fc6f38; color:#122025; border-color:#fc6f38; }
.qi-consent-button-primary:hover { background:#f58a62; }
.qi-consent-button-muted { background:#f3f6f4; }
.qi-consent-overlay { position:fixed; inset:0; z-index:100001; background:rgba(10,20,24,.69); display:flex; align-items:center; justify-content:center; padding:16px; }
.qi-consent-dialog { background:#fff; color:#122025; width:min(560px,100%); max-height:calc(100dvh - 32px); overflow-y:auto; padding:25px; border-radius:9px; box-shadow:0 22px 80px rgba(0,0,0,.3); }
.qi-consent-dialog-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; margin-bottom:12px; }
.qi-consent-dialog h2 { margin:0; font-size:24px; line-height:1.15; }
.qi-consent-close { flex:none; border:1px solid #becac3; background:#fff; color:#122025; font-size:25px; line-height:1; width:40px; height:40px; border-radius:5px; cursor:pointer; }
.qi-consent-categories { margin:18px 0; border:1px solid #d9e0db; border-radius:5px; }
.qi-consent-category { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:15px; border-bottom:1px solid #e7ebe8; cursor:pointer; }
.qi-consent-category:last-child { border-bottom:0; }
.qi-consent-category strong { display:block; font-size:14px; }
.qi-consent-category small { display:block; color:#596b6e; font-size:12px; margin-top:4px; line-height:1.45; }
.qi-consent-category input { width:19px; height:19px; flex:none; accent-color:#fc6f38; }
.qi-consent-dialog-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.qi-consent-reopen { position:fixed; left:14px; bottom:14px; z-index:99999; padding:9px 13px; font-size:12px; background:#122025; color:#fff; border:1px solid #56716a; border-radius:100px; box-shadow:0 5px 24px rgba(18,32,37,.24); cursor:pointer; }
.qi-consent-reopen:hover { background:#263f46; }
@media(max-width:760px){
  .qi-consent-banner { flex-direction:column; align-items:stretch; padding:18px; gap:14px; left:10px; right:10px; bottom:10px; max-height:calc(100dvh - 20px); }
  .qi-consent-banner-actions { max-width:none; width:100%; flex:none; }
  .qi-consent-banner-actions .qi-consent-button { flex:1 1 100%; }
  .qi-consent-banner h2 { font-size:19px; }
  .qi-consent-dialog { padding:19px; }
  .qi-consent-dialog-actions .qi-consent-button { flex:1 1 100%; }
}
@media(prefers-reduced-motion:reduce){ .qi-consent-banner, .qi-consent-overlay { scroll-behavior:auto; } }

body.qi-consent-dialog-open { overflow: hidden; }
