/* SavonAI consent banner — CD-037 P2 (D-131). Vendored, staged verbatim. Inherits the
   site's own design tokens (sitegen :root custom properties) with hard fallbacks, so the
   banner matches the site's look with zero per-site generation. */
.sv-consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:9999;max-width:440px;
  margin:0 auto 0 0;padding:var(--s5,24px);background:var(--card,#fff);color:var(--ink,#16202b);
  border:1px solid var(--line,#e4eaf1);border-radius:var(--r-l,20px);
  box-shadow:var(--sh3,0 20px 48px rgba(22,32,43,.22));font-size:var(--t-sm,14.5px);line-height:1.55}
.sv-c-title{margin:0 0 4px;font-weight:700;font-size:var(--t-body,16.5px)}
.sv-c-body{margin:0 0 12px;color:var(--mut,#5a6b7b)}
.sv-c-cats{display:flex;gap:16px;margin:0 0 12px;flex-wrap:wrap}
.sv-c-cats label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.sv-c-row{display:flex;gap:10px}
/* equal prominence (GDPR): identical size/weight; only the fill differs */
.sv-c-btn{flex:1 1 0;padding:10px 16px;border-radius:var(--r,14px);font:inherit;font-weight:600;
  cursor:pointer;border:1px solid transparent;transition:filter var(--ease,.18s ease)}
.sv-c-btn:hover{filter:brightness(.94)}
.sv-c-ok{background:var(--c,#0b5cad);color:#fff}
.sv-c-no{background:var(--bg2,#eef3f8);color:var(--ink,#16202b);border-color:var(--line,#e4eaf1)}
.sv-c-settings{display:inline-block;margin-top:8px;padding:0;border:0;background:none;
  color:inherit;font:inherit;font-size:var(--t-sm,14.5px);text-decoration:underline;cursor:pointer;
  opacity:.75}
.sv-c-settings:hover{opacity:1}
@media (prefers-reduced-motion:reduce){.sv-c-btn{transition:none}}

/* ── CD-112 P4 (D-1521): the cookie table, the policy link, and the design variants ──────────
   ⛔ Still ZERO per-site generation: every value below is either the site's own custom property
   or a hard fallback, which is what lets one vendored file match every design pack (§13). */
.sv-c-details{margin:0 0 12px}
.sv-c-summary{cursor:pointer;font-size:var(--t-sm,14.5px);text-decoration:underline;opacity:.8}
.sv-c-summary:hover{opacity:1}
.sv-c-table{width:100%;margin:8px 0 0;border-collapse:collapse;font-size:var(--t-xs,12.5px);
  display:block;max-height:180px;overflow:auto}
.sv-c-table th,.sv-c-table td{text-align:left;padding:4px 8px 4px 0;vertical-align:top;
  border-bottom:1px solid var(--line,#e4eaf1)}
.sv-c-table th{font-weight:600;color:var(--mut,#5a6b7b)}
.sv-c-policy{display:inline-block;margin:0 0 12px;font-size:var(--t-sm,14.5px);color:inherit}

/* variant: a full-width bottom bar */
.sv-consent--bar{max-width:none;left:0;right:0;bottom:0;border-radius:0;border-left:0;
  border-right:0;border-bottom:0;display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.sv-consent--bar .sv-c-body{flex:1 1 320px;margin:0}
.sv-consent--bar .sv-c-row{flex:0 0 auto}

/* variant: a centred modal, with a scrim */
.sv-consent--modal{left:50%;right:auto;top:50%;bottom:auto;transform:translate(-50%,-50%);
  max-width:520px;width:calc(100% - 32px)}
.sv-consent--modal::before{content:"";position:fixed;inset:0;z-index:-1;
  background:rgba(12,22,32,.45)}

/* placement */
.sv-consent--at-bottom{margin:0 auto}
.sv-consent--at-center{margin:0 auto}

/* P6's embed placeholder — a real control, not a grey box */
.sv-embed{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  width:100%;min-height:180px;padding:var(--s5,24px);cursor:pointer;text-align:center;
  background:var(--bg2,#eef3f8);color:var(--ink,#16202b);border:1px dashed var(--line,#e4eaf1);
  border-radius:var(--r,14px);font:inherit;font-size:var(--t-sm,14.5px)}
.sv-embed:hover{filter:brightness(.97)}

@media (max-width:560px){
  .sv-consent{left:8px;right:8px;bottom:8px;max-width:none}
  .sv-c-table{font-size:11.5px}
}
