.fme-rsn {
    --fme-rsn-bg: #fafafa;
    --fme-rsn-border: #e8e8e8;
    --fme-rsn-text: #333;
    --fme-rsn-link: #00507a;
    --fme-rsn-hover: #02007a;
    position: fixed;
    z-index: 10000;
    box-sizing: border-box;
    width: 340px;
    max-width: calc(100vw - 20px);
    color: var(--fme-rsn-text);
    font-size: 13px;
    line-height: 1.4;
    text-align: left;
    background: var(--fme-rsn-bg);
    border: 2px solid var(--fme-rsn-border);
    border-radius: 6px;
    box-shadow: 0 4px 18px rgba(0, 0, 0, .18);
    opacity: 0;
    transition: opacity .4s ease;
}
.fme-rsn[hidden] { display: none; }
.fme-rsn.is-visible { opacity: 1; }
.fme-rsn--top-left { top: 10px; left: 10px; }
.fme-rsn--top-right { top: 10px; right: 10px; }
.fme-rsn--bottom-left { bottom: 10px; left: 10px; }
.fme-rsn--bottom-right { bottom: 10px; right: 10px; }
.fme-rsn--default { display: flex; align-items: center; }
.fme-rsn--default .fme-rsn-image { flex: 0 0 auto; display: block; padding: 8px; background: #fff; border-radius: 4px 0 0 4px; }
.fme-rsn--default .fme-rsn-image img { display: block; width: 82px; height: 82px; object-fit: contain; }
.fme-rsn-body { position: relative; flex: 1 1 auto; min-width: 0; padding: 8px 26px 8px 10px; }
.fme-rsn-text { margin: 0 0 6px; color: var(--fme-rsn-text); }
.fme-rsn-text a, .fme-rsn-text a:visited { color: var(--fme-rsn-link); font-weight: 700; text-decoration: none; }
.fme-rsn-text a:hover, .fme-rsn-text a:focus { color: var(--fme-rsn-hover); text-decoration: underline; }
.fme-rsn-optout { display: flex; align-items: center; gap: 5px; margin: 0; font-size: 12px; font-weight: 400; color: var(--fme-rsn-text); cursor: pointer; }
.fme-rsn-optout input { position: static; width: auto; height: auto; margin: 0; opacity: 1; }
.fme-rsn .fme-rsn-close,
.fme-rsn .fme-rsn-close:hover,
.fme-rsn .fme-rsn-close:focus {
    position: absolute;
    top: 2px;
    right: 4px;
    padding: 0 4px;
    color: #888;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.1;
    background: none;
    border: 0;
    box-shadow: none;
    cursor: pointer;
}
.fme-rsn .fme-rsn-close:hover, .fme-rsn .fme-rsn-close:focus { color: #000; }
@media (max-width: 480px) {
    .fme-rsn--default .fme-rsn-image img { width: 64px; height: 64px; }
    .fme-rsn { font-size: 12px; }
}
