/* Панель подбора цветов: на ПК выезжает справа, на телефоне — низкой шторкой снизу. Язычок всегда на правом краю */
.kp-tp-toggle { position: fixed; right: 0; top: 50%; translate: 0 -50%; z-index: 45; width: 2.75rem; height: 3rem; border-radius: 1rem 0 0 1rem;
    display: flex; align-items: center; justify-content: center; font-size: 1.25rem; cursor: pointer; -webkit-tap-highlight-color: transparent;
    background: var(--c-secondary); color: var(--c-secondary-contrast); box-shadow: 0 6px 18px color-mix(in srgb, var(--c-secondary) 25%, transparent);
    transition: width .2s; }
.kp-tp-body { position: fixed; z-index: 46; padding: 1rem; background: var(--c-bg); color: var(--c-text);
    box-shadow: 0 16px 40px color-mix(in srgb, var(--c-secondary) 22%, transparent); visibility: hidden;
    transition: transform .35s cubic-bezier(.2,.8,.2,1), visibility .35s; }
.kp-tp.is-open .kp-tp-body { transform: none; visibility: visible; }
.kp-tp-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .75rem; font-weight: 700; color: var(--c-secondary); }
.kp-tp-close { width: 2.25rem; height: 2.25rem; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
    background: var(--c-light); color: var(--c-secondary); }
.kp-tp-list { display: grid; gap: .5rem; }
.kp-tp-item { display: flex; align-items: center; gap: .75rem; cursor: pointer; }
.kp-tp-item input { flex: none; width: 2.75rem; height: 2.75rem; padding: 0; border: 0; border-radius: .875rem; overflow: hidden; cursor: pointer; background: none;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c-text) 15%, transparent); }
.kp-tp-item input::-webkit-color-swatch-wrapper { padding: 0; }
.kp-tp-item input::-webkit-color-swatch { border: 0; border-radius: .875rem; }
.kp-tp-item input::-moz-color-swatch { border: 0; border-radius: .875rem; }
.kp-tp-actions { display: flex; gap: .5rem; margin-top: 1rem; }
.kp-tp-actions .kp-btn { flex: 1; padding-inline: .75rem; }
@media (min-width: 768px) {
    .kp-tp-body { top: 50%; right: 0; width: 17rem; border-radius: 1.5rem 0 0 1.5rem; transform: translate(100%, -50%); }
    .kp-tp.is-open .kp-tp-body { transform: translateY(-50%); }
}
/* Телефон: три образца в ряд, подписи под ними — шторка занимает низ экрана, страница над ней видна */
@media (max-width: 767px) {
    .kp-tp-body { left: 0; right: 0; bottom: 0; border-radius: 1.5rem 1.5rem 0 0; padding-bottom: calc(1rem + env(safe-area-inset-bottom)); transform: translateY(100%); }
    .kp-tp-head { margin-bottom: .5rem; }
    .kp-tp-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .25rem; }
    .kp-tp-item { flex-direction: column; gap: .25rem; text-align: center; line-height: 1.2; }
    .kp-tp-actions { margin-top: .75rem; }
}
@media (hover: hover) {
    .kp-tp-toggle:hover { width: 3.25rem; }
    .kp-tp-close:hover { background: var(--c-primary); color: var(--c-primary-contrast); }
}
