html.hcm-lock, html.hcm-lock body { overflow: hidden !important; }
.hcm-overlay[hidden], .hcm-revisit[hidden] { display:none !important; }

.hcm-overlay {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483000 !important;
    background: rgba(0,0,0,.45) !important;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 24px !important;
    box-sizing: border-box !important;
}

.hcm-modal {
    width: min(100%, 960px) !important;
    max-height: calc(100vh - 48px) !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    background: #fff !important;
    color: #111 !important;
    border: 1px solid #e5e5e5 !important;
    border-radius: 16px !important;
    box-shadow: 0 28px 90px rgba(0,0,0,.28) !important;
    font-family: inherit !important;
}

.hcm-header {
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:20px !important;
    padding:20px 28px !important;
    border-bottom:1px solid #e5e5e5 !important;
    background:#fff !important;
}

.hcm-title-wrap { display:flex !important; align-items:center !important; gap:14px !important; min-width:0 !important; }

.hcm-header h2 {
    margin:0 !important;
    color:#111 !important;
    font:600 clamp(22px,2.4vw,32px)/1.2 inherit !important;
}

.hcm-close {
    flex:0 0 auto !important;
    border:1px solid #111 !important;
    background:#fff !important;
    color:#111 !important;
    width:42px !important;
    height:42px !important;
    border-radius:10px !important;
    font-size:26px !important;
    line-height:1 !important;
    padding:0 !important;
    cursor:pointer !important;
    box-shadow:none !important;
}

.hcm-body { padding:22px 28px !important; overflow:auto !important; overscroll-behavior:contain !important; background:#fff !important; }
.hcm-intro { margin:0 0 14px !important; color:#111 !important; font-size:16px !important; line-height:1.65 !important; }

.hcm-policy-links { display:flex !important; flex-wrap:wrap !important; gap:14px !important; margin:0 0 20px !important; }
.hcm-policy-links a { color:#111 !important; text-decoration:underline !important; text-underline-offset:2px !important; font-size:14px !important; font-weight:500 !important; }

.hcm-categories { display:grid !important; gap:12px !important; }
.hcm-category {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    gap:20px !important;
    align-items:center !important;
    border:1px solid #e5e5e5 !important;
    border-radius:10px !important;
    padding:18px 20px !important;
    background:#fff !important;
}

.hcm-category-title { font-weight:600 !important; font-size:19px !important; line-height:1.25 !important; margin-bottom:6px !important; color:#111 !important; }
.hcm-category-desc { color:#555 !important; font-size:14px !important; line-height:1.55 !important; }

.hcm-always {
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    white-space:nowrap !important;
    color:#111 !important;
    background:#f2f2f2 !important;
    border-radius:999px !important;
    padding:7px 12px !important;
    font-size:13px !important;
    line-height:1 !important;
}

.hcm-switch { position:relative !important; display:inline-flex !important; align-items:center !important; cursor:pointer !important; }
.hcm-switch input { position:absolute !important; opacity:0 !important; pointer-events:none !important; }
.hcm-switch-ui {
    position:relative !important;
    display:block !important;
    width:52px !important;
    height:30px !important;
    border-radius:999px !important;
    background:#d1d5db !important;
    transition:.18s ease !important;
}
.hcm-switch-ui:after {
    content:"" !important;
    position:absolute !important;
    width:24px !important;
    height:24px !important;
    left:3px !important;
    top:3px !important;
    border-radius:50% !important;
    background:#fff !important;
    box-shadow:0 1px 3px rgba(0,0,0,.3) !important;
    transition:.18s ease !important;
}
.hcm-switch input:checked + .hcm-switch-ui { background:#111 !important; }
.hcm-switch input:checked + .hcm-switch-ui:after { transform:translateX(22px) !important; }

.hcm-actions {
    display:grid !important;
    grid-template-columns:1fr 1fr 1fr !important;
    gap:12px !important;
    padding:18px 28px 22px !important;
    border-top:1px solid #e5e5e5 !important;
    background:#fff !important;
}

.hcm-btn {
    min-height:50px !important;
    padding:12px 18px !important;
    border-radius:10px !important;
    font:600 15px/1.2 inherit !important;
    cursor:pointer !important;
    appearance:none !important;
    -webkit-appearance:none !important;
    text-transform:none !important;
    letter-spacing:normal !important;
    box-shadow:none !important;
}

.hcm-btn-outline {
    color:#111 !important;
    background:#fff !important;
    border:1px solid #111 !important;
}
.hcm-btn-primary {
    color:#fff !important;
    background:#111 !important;
    border:1px solid #111 !important;
}

.hcm-btn:hover { opacity:.9 !important; }

.hcm-revisit {
    position:fixed !important;
    z-index:2147482999 !important;
    width:var(--hcm-revisit-size) !important;
    height:var(--hcm-revisit-size) !important;
    min-width:var(--hcm-revisit-size) !important;
    min-height:var(--hcm-revisit-size) !important;
    border-radius:50% !important;
    border:1px solid #111 !important;
    background:#fff !important;
    color:#111 !important;
    box-shadow:0 8px 26px rgba(0,0,0,.22), 0 0 0 1px rgba(0,0,0,.04) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:0 !important;
    cursor:pointer !important;
    appearance:none !important;
    -webkit-appearance:none !important;
}
.hcm-revisit svg { width:68% !important; height:68% !important; display:block !important; }

.hcm-switch input:focus-visible + .hcm-switch-ui,
.hcm-btn:focus-visible,
.hcm-close:focus-visible,
.hcm-revisit:focus-visible { outline:3px solid #555 !important; outline-offset:3px !important; }

@media (max-width: 767px) {
    .hcm-overlay { padding:12px !important; align-items:flex-end !important; }
    .hcm-modal { max-height:calc(100dvh - 24px) !important; border-radius:16px !important; }
    .hcm-header { padding:16px 18px !important; gap:12px !important; }
    .hcm-title-wrap { align-items:flex-start !important; }
    .hcm-header h2 { font-size:21px !important; }
    .hcm-body { padding:16px 18px !important; }
    .hcm-intro { font-size:14px !important; line-height:1.55 !important; margin-bottom:12px !important; }
    .hcm-category { grid-template-columns:1fr auto !important; gap:12px !important; padding:14px !important; }
    .hcm-category-title { font-size:16px !important; margin-bottom:4px !important; }
    .hcm-category-desc { font-size:13px !important; line-height:1.45 !important; }
    .hcm-always { font-size:11px !important; padding:6px 8px !important; }
    .hcm-switch-ui { width:46px !important; height:26px !important; }
    .hcm-switch-ui:after { width:20px !important; height:20px !important; }
    .hcm-switch input:checked + .hcm-switch-ui:after { transform:translateX(20px) !important; }
    .hcm-actions { grid-template-columns:1fr !important; padding:14px 18px 18px !important; }
    .hcm-btn { width:100% !important; min-height:46px !important; }
    .hcm-revisit { max-width:64px !important; max-height:64px !important; }
}

@media (max-width: 420px) {
    .hcm-category-desc { display:none !important; }
    .hcm-category { min-height:58px !important; }
    .hcm-header h2 { font-size:19px !important; }
}


/* v0.2.6: revisit position is intentionally fixed */
.hcm-revisit {
    left: 20px !important;
    right: auto !important;
    bottom: 20px !important;
    top: auto !important;
}
