#spcm-root,
#spcm-root * { box-sizing: border-box; }
#spcm-root { --spcm-primary:#172d61; --spcm-secondary:#041335; --spcm-bg:#fff; --spcm-text:#172033; --spcm-button-text:#fff; font-family:inherit; }
.spcm-banner[hidden], .spcm-modal[hidden], .spcm-floating[hidden] { display:none !important; }
.spcm-banner {
    position:fixed; left:24px; right:24px; bottom:24px; z-index:999999;
    display:grid; grid-template-columns:auto minmax(0,1fr) minmax(190px,auto); gap:18px; align-items:center;
    max-width:1180px; margin:0 auto; padding:22px; border:1px solid rgba(23,45,97,.14); border-radius:18px;
    background:var(--spcm-bg); color:var(--spcm-text); box-shadow:0 24px 80px rgba(4,19,53,.28);
    opacity:0; transform:translateY(24px); transition:opacity .22s ease, transform .22s ease;
}
.spcm-banner.is-visible { opacity:1; transform:translateY(0); }
#spcm-root[data-position="top"] .spcm-banner { top:24px; bottom:auto; transform:translateY(-24px); }
#spcm-root[data-position="top"] .spcm-banner.is-visible { transform:translateY(0); }
#spcm-root[data-position="center"] .spcm-banner { top:50%; bottom:auto; max-width:760px; transform:translateY(calc(-50% + 24px)); grid-template-columns:auto 1fr; }
#spcm-root[data-position="center"] .spcm-banner.is-visible { transform:translateY(-50%); }
#spcm-root[data-position="center"] .spcm-banner__actions { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.spcm-banner__icon { width:46px; height:46px; display:grid; place-items:center; border-radius:14px; background:linear-gradient(135deg,var(--spcm-primary),var(--spcm-secondary)); color:#fff; font-weight:800; font-size:21px; }
.spcm-banner h2, .spcm-modal h2 { margin:0 0 7px; color:var(--spcm-secondary); font-size:22px; line-height:1.2; }
.spcm-banner p, .spcm-modal p { margin:0; line-height:1.55; font-size:14px; }
.spcm-links { display:flex; flex-wrap:wrap; gap:12px; margin-top:8px; }
.spcm-links a { color:var(--spcm-primary); font-size:13px; font-weight:700; text-decoration:underline; }
.spcm-banner__actions { display:flex; flex-direction:column; gap:8px; min-width:210px; }
.spcm-btn, .spcm-inline-button {
    appearance:none; border:0; border-radius:10px; padding:11px 15px; cursor:pointer; font:inherit; font-size:14px; font-weight:750; line-height:1.2; text-align:center;
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.spcm-btn:hover, .spcm-inline-button:hover { transform:translateY(-1px); }
.spcm-btn:focus-visible, .spcm-inline-button:focus-visible, .spcm-floating:focus-visible, .spcm-modal__close:focus-visible { outline:3px solid rgba(23,45,97,.32); outline-offset:2px; }
.spcm-btn--primary, .spcm-inline-button { background:linear-gradient(135deg,var(--spcm-primary),var(--spcm-secondary)); color:var(--spcm-button-text); box-shadow:0 8px 22px rgba(23,45,97,.18); }
.spcm-btn--secondary { background:#edf1f8; color:var(--spcm-secondary); }
.spcm-btn--link { background:transparent; color:var(--spcm-primary); text-decoration:underline; }
.spcm-modal { position:fixed; inset:0; z-index:1000001; display:grid; place-items:center; padding:20px; opacity:0; transition:opacity .18s ease; }
.spcm-modal.is-visible { opacity:1; }
.spcm-modal__backdrop { position:absolute; inset:0; background:rgba(4,19,53,.68); backdrop-filter:blur(4px); }
.spcm-modal__dialog { position:relative; width:min(680px,100%); max-height:min(86vh,820px); overflow:auto; padding:28px; border-radius:20px; background:var(--spcm-bg); color:var(--spcm-text); box-shadow:0 32px 100px rgba(0,0,0,.36); transform:scale(.97); transition:transform .18s ease; }
.spcm-modal.is-visible .spcm-modal__dialog { transform:scale(1); }
.spcm-modal__close { position:absolute; top:14px; right:14px; width:38px; height:38px; border:0; border-radius:50%; background:#edf1f8; color:var(--spcm-secondary); font-size:24px; cursor:pointer; }
.spcm-category { display:flex; justify-content:space-between; gap:18px; align-items:center; padding:17px 0; border-bottom:1px solid #e7ebf2; }
.spcm-category:first-of-type { margin-top:18px; border-top:1px solid #e7ebf2; }
.spcm-category strong { display:block; margin-bottom:4px; color:var(--spcm-secondary); }
.spcm-category span { display:block; font-size:13px; line-height:1.45; color:#59657a; }
.spcm-switch { display:grid; grid-template-columns:44px auto; gap:9px; align-items:center; min-width:112px; cursor:pointer; }
.spcm-switch input { position:absolute; opacity:0; pointer-events:none; }
.spcm-switch > span { position:relative; width:44px; height:24px; border-radius:999px; background:#bbc4d3; transition:background .2s ease; }
.spcm-switch > span::after { content:""; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 2px 5px rgba(0,0,0,.24); transition:transform .2s ease; }
.spcm-switch input:checked + span { background:var(--spcm-primary); }
.spcm-switch input:checked + span::after { transform:translateX(20px); }
.spcm-switch input:focus-visible + span { outline:3px solid rgba(23,45,97,.25); outline-offset:2px; }
.spcm-switch em { font-style:normal; font-size:12px; color:#59657a; }
.spcm-modal__actions { display:flex; justify-content:flex-end; gap:10px; margin-top:22px; }
.spcm-gpc-note { margin-top:12px !important; padding:12px 14px; border-left:4px solid var(--spcm-primary); background:#eef3fb; border-radius:8px; }
.spcm-floating {
    position:fixed; right:18px; bottom:18px; z-index:999990; width:46px; max-width:min(220px,calc(100vw - 28px)); height:46px;
    display:flex; align-items:center; justify-content:flex-start; gap:0; overflow:hidden; border:0; border-radius:999px; padding:0;
    background:var(--spcm-secondary); color:#fff; box-shadow:0 10px 28px rgba(4,19,53,.28); font:inherit; font-size:12px; font-weight:800;
    white-space:nowrap; cursor:pointer; transition:width .22s ease, transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}
.spcm-floating:hover, .spcm-floating:focus-visible { width:176px; transform:translateY(-1px); box-shadow:0 14px 34px rgba(4,19,53,.34); }
.spcm-floating__icon { flex:0 0 46px; width:46px; height:46px; display:grid; place-items:center; }
.spcm-floating__icon svg { width:23px; height:23px; fill:currentColor; }
.spcm-floating__label { display:block; padding:0 16px 0 2px; opacity:0; transform:translateX(8px); transition:opacity .16s ease, transform .2s ease; }
.spcm-floating:hover .spcm-floating__label, .spcm-floating:focus-visible .spcm-floating__label { opacity:1; transform:translateX(0); }
.spcm-floating.is-panel-open { opacity:0; pointer-events:none; }
#spcm-root[data-floating-position="bottom_left"] .spcm-floating { right:auto; left:18px; bottom:18px; }
#spcm-root[data-floating-position="middle_right"] .spcm-floating { right:18px; bottom:auto; top:50%; transform:translateY(-50%); }
#spcm-root[data-floating-position="middle_right"] .spcm-floating:hover,
#spcm-root[data-floating-position="middle_right"] .spcm-floating:focus-visible { transform:translateY(calc(-50% - 1px)); }
#spcm-root[data-floating-position="middle_left"] .spcm-floating { right:auto; left:18px; bottom:auto; top:50%; transform:translateY(-50%); }
#spcm-root[data-floating-position="middle_left"] .spcm-floating:hover,
#spcm-root[data-floating-position="middle_left"] .spcm-floating:focus-visible { transform:translateY(calc(-50% - 1px)); }
#spcm-root[data-floating-position="top_right"] .spcm-floating { right:18px; bottom:auto; top:18px; }
#spcm-root[data-floating-position="top_left"] .spcm-floating { right:auto; left:18px; bottom:auto; top:18px; }
#spcm-root[data-floating-position$="_right"] .spcm-floating { flex-direction:row-reverse; }
#spcm-root[data-floating-position$="_right"] .spcm-floating__label { padding:0 2px 0 16px; transform:translateX(-8px); }
#spcm-root[data-floating-position$="_right"] .spcm-floating:hover .spcm-floating__label,
#spcm-root[data-floating-position$="_right"] .spcm-floating:focus-visible .spcm-floating__label { transform:translateX(0); }
.spcm-content-blocker { width:100%; min-height:260px; display:grid; place-items:center; padding:28px; border:1px dashed rgba(23,45,97,.38); border-radius:14px; background:linear-gradient(135deg,#f5f7fb,#e9eef8); color:var(--spcm-text); text-align:center; }
.spcm-content-blocker strong { display:block; margin-bottom:8px; color:var(--spcm-secondary); font-size:18px; }
.spcm-content-blocker p { margin:0 0 14px; }
.spcm-legal { max-width:1000px; margin:0 auto; line-height:1.68; }
.spcm-legal h1, .spcm-legal h2, .spcm-legal h3 { color:#041335; }
.spcm-legal h2 { margin-top:1.5em; }
.spcm-legal-note { margin-top:28px; padding:16px 18px; border-left:4px solid #172d61; background:#f2f5fa; }
.spcm-table-wrap { overflow-x:auto; }
.spcm-legal-table { width:100%; border-collapse:collapse; font-size:14px; }
.spcm-legal-table th, .spcm-legal-table td { padding:12px; border:1px solid #dfe5ef; text-align:left; vertical-align:top; }
.spcm-legal-table th { background:#f3f6fa; color:#041335; }
html.spcm-modal-open { overflow:hidden; }
@media (max-width:900px) {
    .spcm-banner { grid-template-columns:auto 1fr; }
    .spcm-banner__actions { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:640px) {
    .spcm-banner { left:10px; right:10px; bottom:10px; padding:17px; border-radius:14px; grid-template-columns:1fr; max-height:calc(100vh - 20px); overflow:auto; }
    .spcm-banner__icon { display:none; }
    .spcm-banner__actions, #spcm-root[data-position="center"] .spcm-banner__actions { grid-column:auto; display:flex; flex-direction:column; }
    .spcm-modal { padding:10px; }
    .spcm-modal__dialog { padding:24px 18px 20px; border-radius:15px; }
    .spcm-category { align-items:flex-start; flex-direction:column; }
    .spcm-modal__actions { flex-direction:column-reverse; }
    .spcm-modal__actions .spcm-btn { width:100%; }
}
@media (hover:none), (max-width:640px) {
    .spcm-floating:hover, .spcm-floating:focus-visible { width:46px; }
    .spcm-floating__label { display:none; }
    #spcm-root[data-floating-position="bottom_left"] .spcm-floating,
    #spcm-root[data-floating-position="middle_left"] .spcm-floating,
    #spcm-root[data-floating-position="top_left"] .spcm-floating { left:10px; }
    #spcm-root[data-floating-position="bottom_right"] .spcm-floating,
    #spcm-root[data-floating-position="middle_right"] .spcm-floating,
    #spcm-root[data-floating-position="top_right"] .spcm-floating { right:10px; }
}
@media (prefers-reduced-motion:reduce) {
    .spcm-banner, .spcm-modal, .spcm-modal__dialog, .spcm-btn, .spcm-switch > span, .spcm-switch > span::after { transition:none !important; }
}
.spcm-noscript { position:fixed; left:16px; right:16px; bottom:16px; z-index:1000002; max-width:760px; margin:0 auto; padding:14px 16px; border:1px solid rgba(23,45,97,.18); border-radius:12px; background:#fff; color:#172033; box-shadow:0 18px 55px rgba(4,19,53,.24); font-size:14px; line-height:1.5; }
.spcm-banner__close { position:absolute; top:9px; right:9px; width:34px; height:34px; display:grid; place-items:center; border:0; border-radius:50%; background:transparent; color:var(--spcm-secondary); font-size:24px; line-height:1; cursor:pointer; }
.spcm-banner__close:hover { background:#edf1f8; }
.spcm-banner__close:focus-visible { outline:3px solid rgba(23,45,97,.32); outline-offset:2px; }
.spcm-btn--secondary { border:1px solid rgba(23,45,97,.35); box-shadow:0 5px 14px rgba(23,45,97,.08); }
