/* ==========================================================================
   Aviso e preferências de cookies. Usa as variáveis do tema (claro/escuro/alto contraste).
   ========================================================================== */

.ck{
  position:fixed; z-index:9995; left:0; right:0; bottom:0; display:flex; justify-content:flex-end; padding:16px; pointer-events:none;
}
.ck[hidden]{ display:none; }
.ck-card{
  pointer-events:auto; width:min(100%, 520px); max-height:calc(100vh - 32px); overflow:auto;
  padding:22px 22px 18px; color:var(--text); background:var(--surface); border:1px solid var(--line-strong); border-radius:20px;
  box-shadow:0 30px 70px rgba(0,0,0,.35);
  animation:ck-in .3s ease both;
}
[data-theme="light"] .ck-card{ box-shadow:0 30px 70px rgba(26,16,48,.22); }
@keyframes ck-in{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
.ck-view[hidden]{ display:none; }

/* 2.ª camada: janela centrada, com fundo */
.ck--modal{ inset:0; align-items:center; justify-content:center; background:rgba(9,5,15,.55); pointer-events:auto; }
.ck--modal .ck-card{ width:min(100%, 580px); }

.ck-title{ margin:0 0 8px; font-size:1.2rem; }
.ck-title:focus{ outline:none; }
.ck-text{ margin:0 0 16px; font-size:.93rem; line-height:1.6; }
.ck-text a{ color:var(--pink); text-decoration:underline; text-underline-offset:3px; white-space:nowrap; }

.ck-actions{ display:grid; grid-template-columns:1fr 1fr; gap:10px; align-items:center; }
.ck-view[data-view="prefs"] .ck-actions{ grid-template-columns:repeat(3, 1fr); }
/* "Rejeitar" e "Aceitar" são iguais de propósito: mesmo tamanho, cor e peso visual */
.ck-btn{
  min-height:46px; padding:0 18px; cursor:pointer; font-size:.95rem; font-weight:700; line-height:1.2;
  color:var(--bg); background:var(--text); border:2px solid var(--text); border-radius:999px;
  transition:opacity .15s, transform .15s;
}
.ck-btn:hover{ opacity:.88; transform:translateY(-1px); }
.ck-link{
  grid-column:1 / -1; justify-self:center; min-height:44px; padding:0 12px; cursor:pointer; background:none; border:0;
  font-size:.92rem; font-weight:600; color:var(--text); text-decoration:underline; text-underline-offset:3px;
}
.ck-back{ display:block; margin:10px auto 0; }
.ck button:focus-visible, .ck a:focus-visible, .ck input:focus-visible + span{ outline:3px solid var(--pink); outline-offset:3px; }

/* categorias (2.ª camada) */
.ck-cats{ list-style:none; margin:0 0 16px; padding:0; display:grid; gap:10px; }
.ck-cat{ padding:14px; border:1px solid var(--line); border-radius:14px; background:var(--fill); }
.ck-cat-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.ck-cat strong{ font-size:.95rem; }
.ck-cat p{ margin:4px 0 0; font-size:.85rem; line-height:1.5; }
.ck-cat .ck-tools{ margin-top:6px; font-size:.8rem; color:var(--text); opacity:.85; }

/* interruptor */
.ck-switch{ position:relative; flex:none; display:inline-block; width:50px; height:30px; margin-top:2px; cursor:pointer; }
.ck-switch input{ position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; z-index:1; }
.ck-switch input:disabled{ cursor:not-allowed; }
.ck-switch span{
  position:absolute; inset:0; border-radius:999px; background:var(--line-strong); border:1px solid var(--line-strong);
  transition:background .2s;
}
.ck-switch span::after{
  content:''; position:absolute; top:3px; left:3px; width:22px; height:22px; border-radius:50%; background:var(--surface); border:1px solid var(--line-strong);
  transition:transform .2s;
}
.ck-switch input:checked + span{ background:var(--grad-text); border-color:transparent; }
.ck-switch input:checked + span::after{ transform:translateX(20px); background:#fff; border-color:transparent; }
.ck-switch input:disabled:checked + span{ opacity:.6; }

.ck-sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* telemóvel: o aviso ocupa a largura toda em baixo; o botão de acessibilidade sobe para continuar visível */
@media (max-width:640px){
  .ck{ padding:10px; }
  .ck-card{ width:100%; padding:18px 16px 14px; }
  .ck-view[data-view="prefs"] .ck-actions{ grid-template-columns:1fr; }
  html.ck-open .a11y-launch{ bottom:calc(var(--ck-h, 0px) + 22px); }
  html.ck-open .a11y-panel{ bottom:calc(var(--ck-h, 0px) + 86px); }
}

/* nomes de cookies e de ferramentas nas tabelas das páginas legais não quebram no hífen */
.legal-table td:first-child strong{ white-space:nowrap; }

/* ligação de rodapé que abre as preferências */
.footer-link-btn{
  padding:0; margin:0; background:none; border:0; cursor:pointer; text-align:left;
  font:inherit; font-size:.95rem; color:rgba(255,255,255,.82); transition:color .2s;
}
[data-theme="light"] .footer-link-btn{ color:var(--muted); }
.footer-link-btn:hover{ color:var(--pink); }
html:not(.js) .js-only{ display:none; }

@media print{ .ck{ display:none !important; } }
