/* ============================================================================
   Cookie consent banner — vanilla port of shadcn-cookie-consent's "small"
   variant, styled with our tokens.

   Lives in its own sheet (not site.css) because the banner is included by three
   template families: the marketing base, the OAuth consent screen and the public
   profile page. The latter two deliberately do NOT load site.css — the profile
   mimics Google's look — so the token fallbacks below are load-bearing, not
   defensive noise.
   ========================================================================== */

.cc-wrap{position:fixed;z-index:50;bottom:0;left:0;right:0;width:100%;
  transform:translateY(100%);opacity:0;transition:transform .7s ease,opacity .7s ease}
.cc-wrap.cc-show{transform:translateY(0);opacity:1}
@media(min-width:640px){.cc-wrap{left:1rem;right:auto;bottom:1rem;max-width:28rem}}

.cc-card{margin:.75rem;background:#fff;border:1px solid var(--border,#e4e4e7);
  border-radius:var(--radius,14px);box-shadow:0 10px 30px -10px rgba(0,0,0,.25);padding:16px}
.cc-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cc-title{font-size:15px;font-weight:600;color:var(--fg,#09090b);margin:0;line-height:1.3}
.cc-icon{width:16px;height:16px;color:var(--muted,#71717a);flex:0 0 auto}
.cc-desc{font-size:13px;line-height:1.55;color:var(--muted,#71717a);margin:8px 0 14px}
.cc-desc a{color:var(--accent-fg,#047857);text-decoration:underline}

.cc-foot{display:flex;gap:8px}
.cc-btn{flex:1;height:34px;border-radius:999px;font:inherit;font-size:13px;font-weight:600;
  cursor:pointer;border:1px solid transparent;transition:background .15s,border-color .15s}
.cc-btn-secondary{background:var(--bg-soft,#fafafa);border-color:var(--border,#e4e4e7);
  color:var(--fg,#09090b)}
.cc-btn-secondary:hover{background:#f4f4f5}
.cc-btn-primary{background:var(--fg,#09090b);color:#fff}
.cc-btn-primary:hover{opacity:.9}
