body.kvp-floating-menu-open { overflow: hidden; }
.kvp-floating-menu { --kvp-accent:#2563eb; --kvp-title:#0f172a; --kvp-text:#0f172a; --kvp-muted:#64748b; --kvp-panel-bg:#ffffff; --kvp-link-bg:#f8fafc; --kvp-link-text:#0f172a; --kvp-link-border:#dae6f3; --kvp-index-bg:#ffffff; --kvp-index-text:#2563eb; --kvp-overlay:rgba(15, 23, 42, .32); --kvp-toggle-size:58px; --kvp-toggle-icon-size:22px; --kvp-toggle-bottom:18px; --kvp-toggle-right:18px; --kvp-toggle-blend:difference; --kvp-dynamic-bottom-offset:0px; }
.kvp-floating-menu__toggle { position:fixed; right:var(--kvp-toggle-right); bottom:calc(var(--kvp-toggle-bottom) + var(--kvp-dynamic-bottom-offset)); z-index:99998; border:0; border-radius:999px; width:var(--kvp-toggle-size); height:var(--kvp-toggle-size); padding:0; display:inline-flex; align-items:center; justify-content:center; background:#fff; color:#000; box-shadow:0 20px 45px rgba(15, 23, 42, .22); cursor:pointer; mix-blend-mode:var(--kvp-toggle-blend); }
.kvp-floating-menu__toggle:hover,.kvp-floating-menu__toggle:focus-visible { transform: translateY(-1px); }
.kvp-floating-menu__toggle-icon { width:var(--kvp-toggle-icon-size); height:calc(var(--kvp-toggle-icon-size) * 0.82); display:inline-flex; flex-direction:column; align-items:stretch; justify-content:space-between; }
.kvp-floating-menu__toggle-icon span { display:block; width:100%; height:2.5px; border-radius:999px; background:currentColor; }
.kvp-floating-menu__overlay { position:fixed; inset:0; background:var(--kvp-overlay); z-index:99997; backdrop-filter:blur(2px); }
.kvp-floating-menu__panel { position:fixed; right:18px; bottom:calc(88px + var(--kvp-dynamic-bottom-offset)); width:min(430px, calc(100vw - 24px)); max-height:min(84vh, 780px); overflow:auto; z-index:99999; padding:18px 20px 20px; border-radius:28px; background:var(--kvp-panel-bg); color:var(--kvp-text); box-shadow:0 22px 70px rgba(15, 23, 42, .25); }
.kvp-floating-menu__handle { width:56px; height:5px; border-radius:999px; background:rgba(148, 163, 184, .35); margin:2px auto 14px; }
.kvp-floating-menu__head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:16px; }
.kvp-floating-menu__head h2 { margin:2px 0 8px; font-size:28px; line-height:1.05; color:var(--kvp-title); }
.kvp-floating-menu__head p { margin:0; color:var(--kvp-muted); font-size:14px; line-height:1.5; }
.kvp-floating-menu__eyebrow { color:var(--kvp-accent); font-size:11px; font-weight:800; letter-spacing:.12em; }
.kvp-floating-menu__close { border:0; background:var(--kvp-close-bg,#111111); color:var(--kvp-close-color,#ffffff); width:var(--kvp-close-size,38px); height:var(--kvp-close-size,38px); min-width:var(--kvp-close-size,38px); border-radius:50%; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; text-align:center; padding:0; }
.kvp-floating-menu__close span { display:inline-flex; align-items:center; justify-content:center; width:100%; height:100%; font-size:calc(var(--kvp-close-size,38px) * 0.58); line-height:1; }
.kvp-floating-menu__list { list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.kvp-floating-menu__item { margin:0; }
.kvp-floating-menu__link { display:flex; align-items:flex-start; gap:12px; padding:12px 14px; text-decoration:none; color:var(--kvp-link-text); border:1px solid var(--kvp-link-border); border-radius:18px; background:var(--kvp-link-bg); }
.kvp-floating-menu__link:hover,.kvp-floating-menu__link:focus-visible,.kvp-floating-menu__link.is-current { border-color:var(--kvp-accent); box-shadow:0 8px 24px rgba(37, 99, 235, .08); color:var(--kvp-link-text); }
.kvp-floating-menu__index { width:30px; height:30px; border-radius:999px; background:var(--kvp-index-bg); color:var(--kvp-index-text); display:inline-flex; align-items:center; justify-content:center; font-size:13px; font-weight:800; flex:0 0 auto; }
.kvp-floating-menu__content { display:flex; flex-direction:column; gap:4px; min-width:0; }
.kvp-floating-menu__content strong { font-size:14px; line-height:1.2; color:var(--kvp-link-text); }
.kvp-floating-menu__content small { color:var(--kvp-muted); font-size:12px; line-height:1.35; font-weight:500; }
@media (max-width:782px) { .kvp-floating-menu__toggle { right:14px; } .kvp-floating-menu__panel { right:12px; width:calc(100vw - 24px); padding:16px 16px 18px; border-radius:24px; } .kvp-floating-menu__head h2 { font-size:24px; } }
