.coop-lock, .coop-lock body { overflow: hidden; }

.coop-overlay {
    --coop-bg: #0e0d1b;
    --coop-card: linear-gradient(165deg, rgba(28, 26, 52, .98), rgba(14, 13, 27, .98));
    --coop-text: #f4f3ff;
    --coop-muted: rgba(234, 232, 255, .66);
    --coop-line: rgba(255, 255, 255, .14);
    --coop-field: rgba(255, 255, 255, .06);
    --coop-accent: #00d9ff;
    --coop-grad: linear-gradient(120deg, #00d9ff, #8b5cff 52%, #ff00ea);
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: grid;
    place-items: center;
    padding: 18px;
    background: rgba(4, 4, 12, .72);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    opacity: 0;
    transition: opacity .2s ease;
    font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    color: var(--coop-text);
    line-height: 1.5;
}
.coop-overlay[hidden] { display: none; }
.coop-overlay.open { opacity: 1; }
.coop-overlay *, .coop-overlay *::before, .coop-overlay *::after { box-sizing: border-box; }

html[data-theme="light"] .coop-overlay,
body[data-theme="light"] .coop-overlay,
html[data-coop-theme="light"] .coop-overlay {
    --coop-card: linear-gradient(165deg, #ffffff, #f7f5ff);
    --coop-text: #17142e;
    --coop-muted: rgba(35, 31, 72, .66);
    --coop-line: rgba(36, 30, 92, .14);
    --coop-field: #f6f5fc;
    --coop-accent: #0a7fc2;
    background: rgba(40, 34, 90, .32);
}

.coop-card {
    position: relative;
    width: min(460px, 100%);
    max-height: calc(100vh - 36px);
    max-height: calc(100dvh - 36px);
    overflow-y: auto;
    padding: 34px 30px 26px;
    border-radius: 26px;
    background: var(--coop-card);
    border: 1px solid var(--coop-line);
    box-shadow: 0 40px 100px rgba(0, 0, 0, .45), 0 0 80px rgba(139, 92, 255, .18);
    transform: translateY(16px) scale(.98);
    transition: transform .25s ease;
    text-align: left;
}
.coop-overlay.open .coop-card { transform: none; }
.coop-card::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(140deg, rgba(0, 217, 255, .6), transparent 40%, transparent 60%, rgba(255, 0, 234, .5));
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}

.coop-x {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    border: 1px solid var(--coop-line);
    background: var(--coop-field);
    color: var(--coop-muted);
    cursor: pointer;
    transition: color .2s, border-color .2s;
}
.coop-x:hover { color: var(--coop-text); border-color: var(--coop-accent); }
.coop-x svg { width: 18px; height: 18px; }

.coop-badge {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 17px;
    background: var(--coop-grad);
    color: #fff;
    box-shadow: 0 12px 30px rgba(139, 92, 255, .4);
    margin-bottom: 18px;
}
.coop-badge svg { width: 28px; height: 28px; }
.coop-kicker {
    font-family: 'Orbitron', 'Unbounded', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .26em;
    text-transform: uppercase;
    color: var(--coop-accent);
}
.coop-title {
    margin: 8px 0 8px;
    font-family: 'Unbounded', 'Inter', sans-serif;
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--coop-text);
}
.coop-lead { margin: 0 0 20px; color: var(--coop-muted); font-size: 14.5px; }

.coop-form { display: grid; gap: 14px; margin: 0; }
.coop-field { display: grid; gap: 7px; font-size: 13px; font-weight: 700; color: var(--coop-muted); }
.coop-field input {
    width: 100%;
    height: 50px;
    padding: 0 16px;
    border-radius: 14px;
    border: 1px solid var(--coop-line);
    background: var(--coop-field);
    color: var(--coop-text);
    font: 500 16px/1 'Inter', system-ui, sans-serif;
    outline: none;
    transition: border-color .2s, box-shadow .2s;
}
.coop-field input::placeholder { color: var(--coop-muted); opacity: .6; }
.coop-field input:focus { border-color: var(--coop-accent); box-shadow: 0 0 0 4px rgba(0, 217, 255, .14); }
.coop-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

.coop-check { display: grid; grid-template-columns: 24px 1fr; gap: 12px; align-items: start; font-size: 13.5px; color: var(--coop-muted); cursor: pointer; }
.coop-check input { position: absolute; opacity: 0; pointer-events: none; }
.coop-check i {
    width: 24px;
    height: 24px;
    border-radius: 8px;
    border: 1.5px solid var(--coop-line);
    background: var(--coop-field);
    display: grid;
    place-items: center;
    transition: background .2s, border-color .2s;
}
.coop-check i::after {
    content: '';
    width: 6px;
    height: 11px;
    border: solid #fff;
    border-width: 0 2.4px 2.4px 0;
    transform: rotate(45deg) scale(0);
    margin-top: -2px;
    transition: transform .2s;
}
.coop-check input:checked + i { background: var(--coop-grad); border-color: transparent; }
.coop-check input:checked + i::after { transform: rotate(45deg) scale(1); }
.coop-check input:focus-visible + i { box-shadow: 0 0 0 4px rgba(0, 217, 255, .2); }
.coop-link {
    padding: 0;
    border: 0;
    background: none;
    color: var(--coop-accent);
    font: inherit;
    font-weight: 700;
    text-align: left;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.coop-pdn {
    max-height: 210px;
    overflow-y: auto;
    padding: 14px 16px;
    border-radius: 14px;
    border: 1px solid var(--coop-line);
    background: var(--coop-field);
    font-size: 12.5px;
    color: var(--coop-muted);
}
.coop-pdn[hidden] { display: none; }
.coop-pdn b { display: block; margin-bottom: 8px; color: var(--coop-text); font-size: 13px; }
.coop-pdn p { margin: 0 0 8px; }
.coop-pdn p:last-child { margin: 0; }

.coop-error { min-height: 0; color: #ff5f8f; font-size: 13.5px; font-weight: 600; }
.coop-error:empty { display: none; }

.coop-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 54px;
    padding: 0 24px;
    border: 0;
    border-radius: 999px;
    background: var(--coop-grad);
    color: #fff;
    font: 800 15.5px/1 'Inter', system-ui, sans-serif;
    cursor: pointer;
    box-shadow: 0 14px 34px rgba(139, 92, 255, .38);
    transition: transform .2s, box-shadow .2s, opacity .2s;
}
.coop-submit:hover { transform: translateY(-2px); box-shadow: 0 18px 40px rgba(0, 217, 255, .4); }
.coop-submit:disabled { opacity: .65; cursor: progress; transform: none; }
.coop-submit svg { width: 20px; height: 20px; }

.coop-tg { justify-self: center; color: var(--coop-muted); font-size: 13.5px; text-decoration: none; }
.coop-tg b { color: var(--coop-accent); }
.coop-tg:hover b { text-decoration: underline; }

.coop-done-step { text-align: center; padding: 10px 0 4px; }
.coop-done-step[hidden], .coop-form-step[hidden] { display: none; }
.coop-done-step .coop-lead { margin-bottom: 24px; }
.coop-done-ico { width: 92px; height: 92px; margin: 6px auto 20px; border-radius: 50%; background: radial-gradient(circle, rgba(0, 255, 204, .22), transparent 70%); }
.coop-done-ico svg { width: 92px; height: 92px; }
.coop-done-ico circle { stroke: #00ffcc; stroke-width: 2.5; stroke-dasharray: 151; stroke-dashoffset: 151; animation: coop-draw .6s ease forwards; }
.coop-done-ico path { stroke: #00ffcc; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 40; stroke-dashoffset: 40; animation: coop-draw .4s .45s ease forwards; }
html[data-theme="light"] .coop-done-ico circle, html[data-theme="light"] .coop-done-ico path,
body[data-theme="light"] .coop-done-ico circle, body[data-theme="light"] .coop-done-ico path,
html[data-coop-theme="light"] .coop-done-ico circle, html[data-coop-theme="light"] .coop-done-ico path { stroke: #10b98a; }
@keyframes coop-draw { to { stroke-dashoffset: 0; } }

@media (max-width: 640px) {
    .coop-header-label { display: none; }
}
@media (max-width: 520px) {
    .coop-overlay { align-items: end; padding: 0; }
    .coop-card { width: 100%; border-radius: 26px 26px 0 0; padding: 30px 20px calc(22px + env(safe-area-inset-bottom)); max-height: 92vh; max-height: 92dvh; }
    .coop-title { font-size: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
    .coop-overlay, .coop-card { transition: none; }
    .coop-done-ico circle, .coop-done-ico path { animation: none; stroke-dashoffset: 0; }
}
