/* Aviso e preferências de cookies */
.cc-banner {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 200; max-width: 980px; margin: 0 auto;
  display: flex; align-items: center; gap: 20px; padding: 16px 18px; border-radius: 14px;
  background: #14162b; color: #e9e9f3; box-shadow: 0 20px 50px rgba(0, 0, 0, .3);
  font: 14px/1.5 'Inter', system-ui, sans-serif; animation: cc-in .25s ease-out;
}
.cc-banner strong { display: block; color: #fff; font-size: 15px; margin-bottom: 2px; }
.cc-banner p { margin: 0; color: #c7c8d8; }
.cc-banner a { color: #b9b1ff; }
.cc-text { flex: 1; min-width: 0; }
.cc-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.cc-btn {
  height: 38px; padding: 0 16px; border-radius: 9px; border: 1px solid #5b4cf0; background: #5b4cf0; color: #fff;
  font: 600 14px 'Inter', system-ui, sans-serif; cursor: pointer; white-space: nowrap;
}
.cc-btn:hover { background: #7a6dff; border-color: #7a6dff; }
.cc-btn.ghost { background: transparent; border-color: rgba(255, 255, 255, .25); color: inherit; }
.cc-btn.ghost:hover { background: rgba(255, 255, 255, .08); }
.cc-btn:focus-visible { outline: 2px solid #b9b1ff; outline-offset: 2px; }

.cc-modal-back { position: fixed; inset: 0; z-index: 210; background: rgba(15, 18, 30, .55); display: grid; place-items: center; padding: 16px; animation: cc-fade .15s; }
.cc-modal {
  width: min(540px, 100%); max-height: calc(100vh - 32px); overflow-y: auto; background: #fff; color: #14162b; border-radius: 16px;
  padding: 22px 22px 18px; box-shadow: 0 30px 80px rgba(0, 0, 0, .3); font: 14px/1.5 'Inter', system-ui, sans-serif;
}
.cc-modal h2 { margin: 0 0 6px; font-size: 19px; letter-spacing: -.01em; text-align: left; }
.cc-lead { margin: 0 0 14px; color: #5e6378; }
.cc-cat { border: 1px solid #e7e8ef; border-radius: 12px; padding: 12px 14px; margin-bottom: 10px; }
.cc-cat-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.cc-cat label { font-weight: 700; cursor: pointer; }
.cc-cat label small { font-weight: 500; color: #5e6378; }
.cc-cat p { margin: 6px 0 0; color: #5e6378; font-size: 13px; }
.cc-switch { position: relative; width: 42px; height: 24px; flex: none; }
.cc-switch input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; z-index: 1; }
.cc-switch i { position: absolute; inset: 0; border-radius: 99px; background: #d4d6e0; transition: background .15s; }
.cc-switch i::after { content: ''; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .2); transition: transform .15s; }
.cc-switch input:checked + i { background: #5b4cf0; }
.cc-switch input:checked + i::after { transform: translateX(18px); }
.cc-switch input:disabled { cursor: not-allowed; }
.cc-switch input:disabled + i { opacity: .55; }
.cc-switch input:focus-visible + i { outline: 2px solid #5b4cf0; outline-offset: 2px; }
.cc-small { font-size: 12px; color: #5e6378; margin: 12px 0 14px; }
.cc-small a { color: #5b4cf0; }
.cc-modal .cc-btn.ghost { border-color: #d6d9e2; color: #14162b; }
.cc-modal .cc-btn.ghost:hover { background: #f4f5f8; }
@keyframes cc-in { from { transform: translateY(16px); opacity: 0; } }
@keyframes cc-fade { from { opacity: 0; } }
@media (max-width: 720px) {
  .cc-banner { flex-direction: column; align-items: stretch; left: 10px; right: 10px; bottom: 10px; }
  .cc-actions { justify-content: stretch; }
  .cc-actions .cc-btn { flex: 1; }
  body.app .cc-banner { bottom: 72px; }
}
