.kvp{--kvp-bg:#15181b;--kvp-panel:#202428;--kvp-line:#30363c;--kvp-text:#c4cbd3;--kvp-bright:#e6e9ee;--kvp-gold:#f7c95d;font-family:Manrope,system-ui,sans-serif;color:var(--kvp-text)}
.kvp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.kvp-card{background:var(--kvp-panel);border:2px solid var(--kvp-line);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:12px;min-width:0}
.kvp-card.on{border-color:var(--kvp-gold)}
.kvp-card h4{margin:0;color:var(--kvp-bright);font-size:18px}
.kvp-card .row{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
.kvp-btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border-radius:10px;border:1px solid var(--kvp-line);background:transparent;color:var(--kvp-bright);font:600 14px Manrope,system-ui,sans-serif;cursor:pointer;text-decoration:none}
.kvp-btn:hover{border-color:var(--kvp-gold)}
.kvp .kvp-btn.kvp-primary,.kvp .kvp-btn.gold{background:var(--kvp-gold);border-color:var(--kvp-gold);color:#201a0c!important;-webkit-text-fill-color:#201a0c}
.kvp-btn[disabled]{opacity:.6;cursor:default}
.kvp-pv{position:relative;aspect-ratio:16/10;border-radius:10px;overflow:hidden;background:linear-gradient(135deg,#27414a,#16232a);border:1px solid var(--kvp-line)}
.kvp-pv i{position:absolute;display:block;border-radius:4px}
.kvp-pv .t{background:#f2f4f8}.kvp-pv .p{background:rgba(255,255,255,.22)}.kvp-pv .g{background:var(--kvp-gold)}.kvp-pv .d{background:rgba(10,12,14,.7)}.kvp-pv .o{border:1.5px solid var(--kvp-gold);background:none}
.kvp-msg{margin:12px 0 0;font-size:14px;min-height:20px}
.kvp-msg.err{color:#f87171}.kvp-msg.ok{color:#4ade80}
.kvp-ov{position:fixed;inset:0;z-index:2147482000;background:#15181b;overflow:auto;overscroll-behavior:contain;padding:40px 20px}
.kvp-ov .in{max-width:1000px;margin:0 auto}
.kvp-ov h2{margin:0 0 6px;color:var(--kvp-bright);font-size:28px}
.kvp-ov p.lead{margin:0 0 24px}
@media(max-width:800px){.kvp-grid{grid-template-columns:minmax(0,1fr)}.kvp-ov{padding:24px 16px}}

/* до проверки выбора скрываем страницу под оверлеем, чтобы она не мелькала и не прыгала */
html.kvp-wait{background:#15181b}html.kvp-wait body>*:not(#kvp-overlay){visibility:hidden!important}
