/* Compliance additions are isolated so the existing Vite-built layout is untouched. */
.kqw-cookie-banner {
    position: fixed;
    z-index: 90;
    right: 20px;
    bottom: 20px;
    width: min(340px, calc(100vw - 32px));
    padding: 16px 16px 14px;
    border: 1px solid rgba(239, 242, 255, .16);
    border-radius: 14px;
    color: #e7ebff;
    background: rgba(24, 29, 92, .97);
    box-shadow: 0 18px 48px rgba(10, 14, 50, .32);
}
.kqw-cookie-banner[hidden] { display: none !important; }
.kqw-cookie-banner__inner { display: block; }
.kqw-cookie-banner__copy { min-width: 0; font-size: 12px; line-height: 1.6; }
.kqw-cookie-banner__copy strong { display: block; color: #fff; font-size: 14px; font-weight: 500; }
.kqw-cookie-banner__copy p { margin: 4px 0 0; }
.kqw-cookie-banner__copy a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.kqw-cookie-banner__actions { display: flex; gap: 6px; margin-top: 10px; flex-wrap: nowrap; }
.kqw-cookie-banner__actions .kqw-cookie-banner__primary { order: 3; flex: 1.3 1 0; }
.kqw-cookie-dialog__actions { display: flex; gap: 8px; flex: 0 0 auto; flex-wrap: wrap; }
.kqw-cookie-banner button, .kqw-cookie-dialog button { min-height: 36px; border-radius: 999px; padding: 7px 13px; font-size: 12.5px; line-height: 1.2; cursor: pointer; transition: background-color .2s, color .2s, border-color .2s; }
.kqw-cookie-banner__actions .kqw-cookie-banner__secondary { flex: 1 1 0; white-space: nowrap; padding-left: 8px; padding-right: 8px; }
.kqw-cookie-banner__primary { border: 1px solid #fff; color: #212773; background: #fff; }
.kqw-cookie-banner__primary:hover { color: #fff; background: #092eb8; border-color: #092eb8; }
.kqw-cookie-banner__secondary { border: 1px solid rgba(239, 242, 255, .55); color: #eff2ff; background: transparent; }
.kqw-cookie-banner__secondary:hover { color: #fff; background: rgba(255,255,255,.12); }
.kqw-cookie-banner button:focus-visible, .kqw-cookie-dialog button:focus-visible, .kqw-cookie-dialog input:focus-visible { outline: 2px solid #ff6a00; outline-offset: 2px; }
.kqw-cookie-dialog { width: min(480px, calc(100vw - 32px)); max-width: 480px; border: 0; border-radius: 14px; padding: 0; color: #333; box-shadow: 0 20px 60px rgba(17,22,70,.28); }
.kqw-cookie-dialog::backdrop { background: rgba(17,22,70,.58); }
.kqw-cookie-dialog__panel { position: relative; padding: 28px; margin: 0; }
.kqw-cookie-dialog__panel h2 { margin: 0 34px 18px 0; color: #212773; font-size: 20px; line-height: 1.4; font-weight: 500; }
.kqw-cookie-dialog__close { position: absolute; top: 14px; right: 14px; display: inline-flex; align-items: center; justify-content: center; width: 34px; padding: 0 !important; border: 0; color: #212773; background: #eff2ff; font-size: 22px !important; }
.kqw-cookie-dialog__service { display: flex; gap: 10px; align-items: flex-start; padding: 14px; border: 1px solid #d1dbff; border-radius: 10px; background: #f8f9fc; cursor: pointer; }
.kqw-cookie-dialog__service input { margin-top: 4px; accent-color: #212773; }
.kqw-cookie-dialog__service strong, .kqw-cookie-dialog__service small { display: block; }
.kqw-cookie-dialog__service strong { color: #212773; font-size: 14px; font-weight: 500; }
.kqw-cookie-dialog__service small { margin-top: 4px; color: #667085; font-size: 12px; line-height: 1.65; }
.kqw-cookie-dialog__actions { margin-top: 18px; justify-content: flex-end; }
.kqw-cookie-dialog .kqw-cookie-banner__primary { color: #fff; border-color: #212773; background: #212773; }
.kqw-cookie-dialog .kqw-cookie-banner__primary:hover { background: #092eb8; border-color: #092eb8; }
@media (max-width: 640px) {
    .kqw-cookie-banner { right: 12px; left: 12px; width: auto; bottom: calc(76px + env(safe-area-inset-bottom, 0px)); padding: 14px; }
    .kqw-cookie-dialog__panel { padding: 24px 20px; }
}

/* 桌面端：单行紧凑条（约 64px 高），只占右下角，不遮挡首屏查找器的按钮与常用地区 */
@media (min-width: 1024px) {
    .kqw-cookie-banner { width: auto; max-width: 600px; padding: 10px 12px 10px 16px; right: 16px; bottom: 16px; }
    .kqw-cookie-banner__inner { display: flex; align-items: center; gap: 14px; }
    .kqw-cookie-banner__copy strong { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .kqw-cookie-banner__copy p { margin: 0; }
    .kqw-cookie-banner__actions { flex: none; margin-top: 0; }
    .kqw-cookie-banner__actions .kqw-cookie-banner__primary { flex: none; }
    .kqw-cookie-banner__actions button { padding-top: 7px; padding-bottom: 7px; }
}
