/* Прототипы раздела «Партии» — визуальный мир темы ulpan-politika:
   крупные акцентные заголовки капсом, радиус 24, мягкие тени, воздух. */
:root {
    --up-accent: #3855cf;
    --up-accent-dark: #2b43ad;
    --up-bg: #f5f6ff;
    --up-surface: #eef0fe;
    --up-card: #ffffff;
    --up-ink: #000000;
    --up-line: rgba(23, 23, 60, 0.14);
    --up-radius: 24px;
    --up-radius-sm: 16px;
    --up-shadow-card: 0 10px 34px rgba(45, 55, 130, 0.08);
    --up-shadow-deep: 0 18px 48px rgba(30, 38, 100, 0.22);
    --up-container: 1296px;
    --up-pad: 24px;
    --up-font: Arial, "Helvetica Neue", Helvetica, sans-serif;
    /* Вторичный текст — из индиговой гаммы, не серый; контраст ≥ 4.5:1 */
    --pp-soft: rgba(23, 23, 60, 0.7);
    --pp-mute: rgba(23, 23, 60, 0.56);
    --pp-faint: rgba(23, 23, 60, 0.34); /* только декор: тире, грипы */
    --pp-alert: #b3261e;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
html.pp-no-overscroll, body.page-partii { overscroll-behavior-y: none; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
    margin: 0;
    font-family: var(--up-font);
    font-size: 16px;
    line-height: 1.55;
    color: var(--up-ink);
    background: var(--up-bg);
}
a { color: var(--up-accent); text-decoration: none; }
a:hover { color: var(--up-accent-dark); }
button { font-family: inherit; font-size: inherit; color: inherit; }
h1, h2, h3 { line-height: 1.15; margin: 0; }
svg { display: block; }

.pp-container {
    max-width: calc(var(--up-container) + var(--up-pad) * 2);
    margin-inline: auto;
    padding-inline: var(--up-pad);
}

:focus-visible { outline: 2px solid var(--up-accent); outline-offset: 2px; border-radius: 4px; }

/* ---------- Шапка ---------- */
.pp-masthead { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; padding: 22px 0 0; }
.pp-logo { font-size: 23px; font-weight: bold; color: var(--up-accent); letter-spacing: 0.2px; }
.pp-logo b { color: var(--up-ink); }
.pp-tagline { color: var(--pp-mute); font-size: 14px; }
.pp-proto-badge {
    margin-left: auto;
    font-size: 12.5px;
    color: var(--pp-mute);
    border: 1px dashed var(--up-line);
    border-radius: 999px;
    padding: 3px 11px;
}
.pp-nav { display: flex; gap: 26px; margin-top: 16px; border-bottom: 1px solid var(--up-line); }
.pp-nav a {
    font-size: 15px;
    padding: 0 1px 11px;
    color: var(--up-accent);
    white-space: nowrap;
}
.pp-nav a:hover { color: var(--up-accent-dark); }
.pp-nav a.is-here {
    color: var(--up-ink);
    font-weight: bold;
    box-shadow: inset 0 -3px 0 var(--up-accent);
}
@media (max-width: 759px) {
    .pp-proto-badge { display: none; }
    .pp-nav { gap: 20px; overflow-x: auto; scrollbar-width: none; margin-inline: calc(-1 * var(--up-pad)); padding-inline: var(--up-pad); }
    .pp-nav::-webkit-scrollbar { display: none; }
}

/* ---------- Заголовок страницы ---------- */
.pp-title {
    font-size: 38px;
    text-transform: uppercase;
    color: var(--up-accent);
    letter-spacing: 0.5px;
    margin: 30px 0 12px;
}
.pp-lead { color: var(--pp-soft); font-size: 16px; max-width: 640px; margin: 0 0 6px; }
@media (max-width: 759px) {
    .pp-title { font-size: 27px; margin-top: 22px; }
    .pp-lead { font-size: 15px; }
}

/* ---------- Управление: рубрики, партии, поиск ---------- */
.pp-controls { margin: 20px 0 22px; }
.pp-tabs { display: flex; gap: 24px; border-bottom: 1px solid var(--up-line); }
.pp-tab {
    border: 0; background: none; cursor: pointer;
    font-size: 15px; color: var(--up-accent);
    padding: 6px 1px 11px; white-space: nowrap;
}
.pp-tab:hover { color: var(--up-accent-dark); }
.pp-tab.is-on { color: var(--up-ink); font-weight: bold; box-shadow: inset 0 -3px 0 var(--up-accent); }
@media (max-width: 899px) {
    .pp-tabs {
        gap: 20px; overflow-x: auto; scrollbar-width: none;
        margin-inline: calc(-1 * var(--up-pad)); padding-inline: var(--up-pad);
        -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent);
        mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent);
    }
    .pp-tabs::-webkit-scrollbar { display: none; }
}

.pp-toolbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 16px; }
.pp-partybtn {
    display: inline-flex; align-items: center; gap: 8px;
    border: 1px solid var(--up-line); background: var(--up-card);
    border-radius: 999px; padding: 9px 16px;
    font-size: 14.5px; cursor: pointer;
}
.pp-partybtn:hover { border-color: var(--up-accent); color: var(--up-accent-dark); }
.pp-partybtn svg { width: 15px; height: 15px; color: var(--up-accent); }
.pp-partybtn[aria-expanded="true"] { border-color: var(--up-accent); }

.pp-tokens { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pp-token {
    display: inline-flex; align-items: center; gap: 4px;
    background: rgba(56, 85, 207, 0.1); color: var(--up-accent-dark);
    border-radius: 999px; padding: 6px 6px 6px 13px;
    font-size: 14px; font-weight: bold;
}
.pp-token button {
    border: 0; background: none; cursor: pointer; color: inherit;
    padding: 3px; border-radius: 50%; display: inline-flex;
}
.pp-token button:hover { background: rgba(56, 85, 207, 0.16); }
.pp-token button svg { width: 13px; height: 13px; }

.pp-search { position: relative; flex: 0 1 300px; min-width: 200px; }
.pp-search svg.lens {
    position: absolute; left: 13px; top: 50%; transform: translateY(-50%);
    width: 15px; height: 15px; color: var(--pp-mute); pointer-events: none;
}
.pp-search input {
    width: 100%;
    padding: 9px 34px 9px 36px;
    border: 1px solid var(--up-line);
    border-radius: 999px;
    font-size: 14.5px;
    font-family: inherit;
    background: var(--up-card);
    color: var(--up-ink);
}
.pp-search input::placeholder { color: var(--pp-mute); }
.pp-search input:focus { outline: 2px solid var(--up-accent); outline-offset: 0; }
.pp-search .clr {
    position: absolute; right: 5px; top: 50%; transform: translateY(-50%);
    border: 0; background: none; color: var(--pp-soft); cursor: pointer;
    padding: 7px; border-radius: 50%; display: inline-flex;
}
.pp-search .clr:hover { color: var(--up-ink); }
.pp-search .clr svg { width: 13px; height: 13px; }

.pp-result { font-size: 14px; color: var(--pp-mute); margin-left: auto; }
@media (max-width: 899px) {
    .pp-search { flex: 1 1 100%; order: 5; }
    .pp-result { margin-left: 0; flex-basis: 100%; }
}

/* ---------- Панель выбора партий ---------- */
.pp-panel {
    position: fixed; z-index: 60;
    width: min(360px, calc(100vw - 32px));
    max-height: min(64vh, 560px);
    display: flex; flex-direction: column;
    background: var(--up-card);
    border: 1px solid var(--up-line);
    border-radius: var(--up-radius-sm);
    box-shadow: var(--up-shadow-deep);
}
.pp-panel-list { overflow: auto; padding: 8px; overscroll-behavior: contain; }
.pp-panel-row {
    display: flex; align-items: center; gap: 11px;
    padding: 10px 12px; border-radius: 10px; cursor: pointer;
    font-size: 14.5px;
}
.pp-panel-row:hover { background: var(--up-surface); }
.pp-panel-row input { accent-color: var(--up-accent); width: 16px; height: 16px; margin: 0; flex: 0 0 auto; }
.pp-panel-row .nm { flex: 1; }
.pp-panel-row .cnt { font-size: 13px; color: var(--pp-mute); }
.pp-panel-row.is-off { cursor: default; color: var(--pp-mute); }
.pp-panel-row.is-off:hover { background: none; }
.pp-panel-note { font-size: 13.5px; color: var(--pp-alert); padding: 4px 20px 10px; }
.pp-panel-foot {
    display: flex; justify-content: space-between; align-items: center;
    border-top: 1px solid var(--up-line); padding: 10px 12px;
}
.pp-panel-foot button {
    border: 0; background: none; cursor: pointer;
    color: var(--up-accent); font-size: 14px; padding: 6px 8px; border-radius: 8px;
}
.pp-panel-foot button:hover { color: var(--up-accent-dark); background: var(--up-surface); }
@media (max-width: 759px) {
    .pp-panel.is-sheet {
        left: 0 !important; right: 0; bottom: 0; top: auto !important;
        width: 100%; max-height: 76vh;
        border-radius: 20px 20px 0 0; border: 0;
    }
}

/* ---------- Матрица ---------- */
.pp-matrix-zone { position: relative; }
.pp-matrix-wrap {
    background: var(--up-card);
    border-radius: var(--up-radius);
    box-shadow: var(--up-shadow-card);
    overflow-x: auto;
    overflow-y: visible;
    cursor: grab; /* прокрутка «захватом» — нажал и потянул */
}
.pp-matrix-wrap.is-grabbing { cursor: grabbing; }
.pp-matrix-wrap button { cursor: pointer; }
.pp-matrix-wrap.is-grabbing button { cursor: grabbing; }
table.pp-matrix { border-collapse: separate; border-spacing: 0; table-layout: fixed; width: max-content; }
.pp-matrix th, .pp-matrix td {
    border-bottom: 1px solid var(--up-line);
    border-right: 1px solid rgba(23, 23, 60, 0.06);
    padding: 0;
    vertical-align: top;
    text-align: left;
}
.pp-matrix thead th {
    position: sticky; top: 0; z-index: 2;
    background: var(--up-card);
    box-shadow: 0 1px 0 var(--up-line);
    width: 256px;
    padding: 13px 16px 11px;
    font-size: 15px;
}
.pp-matrix thead th .cnt { display: block; font-weight: normal; font-size: 12.5px; color: var(--pp-mute); margin-top: 2px; }
.pp-col-rm {
    float: right; border: 0; background: none; cursor: pointer;
    color: var(--pp-mute); padding: 4px; margin: -2px -6px 0 6px; border-radius: 50%;
    display: inline-flex;
}
.pp-col-rm:hover { color: var(--pp-alert); background: var(--up-surface); }
.pp-col-rm svg { width: 13px; height: 13px; }
.pp-col-add {
    border: 0; background: none; cursor: pointer;
    display: inline-flex; align-items: center; gap: 7px;
    color: var(--up-accent); font-size: 14.5px; font-weight: bold;
    padding: 4px 2px; white-space: nowrap;
}
.pp-col-add:hover { color: var(--up-accent-dark); }
.pp-col-add svg { width: 15px; height: 15px; }
.pp-matrix thead th.is-add { width: 148px; background: var(--up-card); }

.pp-matrix .pp-q {
    position: sticky; left: 0; z-index: 1;
    background: var(--up-card);
    width: 296px;
    font-weight: normal;
    box-shadow: 1px 0 0 var(--up-line);
    padding: 0;
}
.pp-matrix thead .pp-q { z-index: 3; font-weight: bold; padding: 13px 16px 11px; }
.pp-q-btn { display: block; width: 100%; border: 0; background: none; text-align: left; padding: 14px 16px; cursor: pointer; }
.pp-q-topic { font-weight: bold; font-size: 15px; display: block; }
.pp-q-btn:hover .pp-q-topic { color: var(--up-accent-dark); }
.pp-q-text {
    font-size: 13px; line-height: 1.45; color: var(--pp-soft); margin-top: 4px;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
}

.pp-blockrow th, .pp-blockrow td { background: var(--up-surface); }
.pp-blockrow th {
    position: sticky; left: 0; z-index: 1;
    font-size: 13px; letter-spacing: 1px; text-transform: uppercase;
    color: var(--up-accent-dark);
    padding: 9px 16px; box-shadow: 1px 0 0 var(--up-line);
}

.pp-cell-btn {
    display: block; width: 100%; height: 100%;
    border: 0; background: none; cursor: pointer; text-align: left;
    padding: 14px 16px;
}
.pp-cell-txt {
    font-size: 14px; line-height: 1.5; color: var(--up-ink);
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5; overflow: hidden;
}
.pp-cell-txt .r { color: var(--pp-soft); }
.pp-cell-btn .more {
    display: none; align-items: center; gap: 3px;
    color: var(--up-accent); font-size: 13px; margin-top: 6px;
}
.pp-cell-btn .more svg { width: 12px; height: 12px; }
.pp-cell-btn.is-clamped .more { display: inline-flex; }
.pp-cell-btn:hover { background: rgba(56, 85, 207, 0.05); }
.pp-cell-btn:hover .more { color: var(--up-accent-dark); }
.pp-matrix tbody tr:hover > * { background-color: #fafbff; }
.pp-matrix tbody tr:hover .pp-cell-btn:hover { background: rgba(56, 85, 207, 0.07); }
/* ---------- Чипы-категории ---------- */
.pp-chip {
    display: inline-block;
    border-radius: 999px;
    padding: 3px 11px;
    font-size: 12.5px;
    font-weight: bold;
    line-height: 1.4;
    white-space: nowrap;
}
/* Цвет — категория ответа внутри вопроса; валентности нет, это просто различие */
.pp-chip.v-c0 { background: #e8edfb; color: #2b43ad; }
.pp-chip.v-c1 { background: #e2f2ee; color: #0f6b5c; }
.pp-chip.v-c2 { background: #f6efdc; color: #7a4f00; }
.pp-chip.v-c3 { background: #f0e9f7; color: #5b3a8c; }
.pp-chip.v-c4 { background: #fdeee2; color: #8a4b13; }
.pp-chip.v-cx { background: #eeeff3; color: #3c4257; }

/* Список категорий в тултипе вопроса */
.pp-cats { margin-top: 12px; display: grid; gap: 8px; }
.pp-cats-head { font-size: 12.5px; color: var(--pp-mute); letter-spacing: 0.3px; }
.pp-cat-row { display: grid; gap: 5px; }
.pp-cat-row .pp-chip { justify-self: start; }
.pp-cat-hint { font-size: 13px; line-height: 1.5; color: var(--pp-soft); }

/* Кнопка «категории ответа» в карточке ленты */
.pp-cats-btn {
    border: 0; background: none; cursor: pointer;
    display: inline-flex; align-items: center; gap: 3px;
    color: var(--up-accent); font-size: 13.5px; font-weight: bold;
    padding: 2px 0 8px; margin-top: 2px;
}
.pp-cats-btn:hover { color: var(--up-accent-dark); }
.pp-cats-btn svg { width: 12px; height: 12px; }

/* Подпись в ячейке вопроса матрицы */
.pp-q-cats {
    display: block;
    font-size: 11.5px; font-weight: bold;
    color: var(--up-accent);
    margin-top: 5px;
}

.pp-legend {
    display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
    font-size: 13px; color: var(--pp-mute);
    margin: 0 0 12px;
}

/* Ячейка матрицы с категорией */
.pp-cell-chip {
    display: block; width: 100%; height: 100%;
    border: 0; background: none; text-align: left; cursor: pointer;
    padding: 12px 14px;
}
.pp-cell-chip:hover { background: rgba(56, 85, 207, 0.05); }
.pp-cell-chip .pp-chip { font-size: 12px; white-space: normal; }
.pp-matrix tbody tr:hover .pp-cell-chip:hover { background: rgba(56, 85, 207, 0.07); }

/* Категория в строке ленты и в поповере */
.pp-pos-text .pp-chip { margin-right: 8px; }
.pp-posrow .pp-chip { margin-top: 1px; }
.pp-pop-title .pp-chip { font-size: 12px; margin-left: 8px; vertical-align: 1px; white-space: normal; }
.pp-cmp-party .pp-chip { margin-left: 7px; }

.pp-hint-after { font-size: 13px; color: var(--pp-mute); margin: 10px 2px 0; }

/* ---------- Лента вопросов ---------- */
.pp-flow { max-width: 820px; margin-inline: auto; }
.pp-qsection { margin: 36px 0 8px; }
.pp-qsection > h2 {
    font-size: 17px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--up-accent);
    display: flex; align-items: center; gap: 14px; margin-bottom: 16px;
}
.pp-qsection > h2::after { content: ""; flex: 1; height: 1px; background: var(--up-line); }
.pp-qcard {
    background: var(--up-card);
    border-radius: var(--up-radius);
    box-shadow: var(--up-shadow-card);
    padding: 22px 26px 16px;
    margin-bottom: 16px;
}
.pp-qcard h3 { font-size: 18px; }
.pp-q-sub { font-size: 14px; line-height: 1.5; color: var(--pp-soft); margin: 5px 0 8px; }
.pp-posrow {
    display: grid; grid-template-columns: 152px 1fr 20px; gap: 14px; align-items: start;
    width: 100%; border: 0; background: none; text-align: left; cursor: pointer;
    padding: 12px 2px; border-top: 1px solid var(--up-line);
    min-height: 44px;
}
.pp-posrow:hover .pp-pos-party { color: var(--up-accent-dark); }
.pp-pos-party { font-weight: bold; font-size: 14.5px; padding-top: 1px; }
.pp-pos-text {
    font-size: 14.5px; line-height: 1.5; color: var(--up-ink);
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
}
.pp-pos-text .r { color: var(--pp-soft); }
.pp-pos-chev { color: var(--up-accent); padding-top: 3px; visibility: hidden; }
.pp-pos-chev svg { width: 14px; height: 14px; }
.pp-posrow.is-clamped .pp-pos-chev { visibility: visible; }
.pp-morebtn {
    border: 0; background: none; color: var(--up-accent); cursor: pointer;
    display: inline-flex; align-items: center; gap: 7px;
    font-size: 14px; padding: 12px 2px 8px; border-top: 1px solid var(--up-line); width: 100%; text-align: left;
}
.pp-morebtn:hover { color: var(--up-accent-dark); }
.pp-morebtn svg { width: 14px; height: 14px; }
.pp-nopos { font-size: 13px; color: var(--pp-mute); border-top: 1px solid var(--up-line); padding: 11px 2px 4px; margin: 0; }
@media (max-width: 759px) {
    .pp-qcard { padding: 18px 18px 12px; margin-inline: -8px; }
    .pp-qcard h3 { font-size: 16.5px; }
    .pp-posrow { grid-template-columns: 1fr 20px; gap: 3px 10px; }
    .pp-pos-party { grid-column: 1; }
    .pp-pos-chev { grid-column: 2; grid-row: 1; }
    .pp-pos-text { grid-column: 1 / -1; font-size: 14px; }
    .pp-posrow-wrap {
        padding: 18px 2px 16px;
        border-top: 1px solid var(--up-line);
    }
    .pp-mobile-answer > .pp-pos-party {
        display: inline-block;
        padding: 0;
        color: var(--up-accent);
        font-size: 14px;
        line-height: 20px;
        letter-spacing: -0.02em;
        text-transform: uppercase;
    }
    .pp-posrow.pp-mobile-answer {
        grid-template-columns: minmax(0, 1fr) 20px;
        gap: 10px;
        min-height: 0;
        padding: 10px 0 0;
        border-top: 0;
    }
    .pp-mobile-answer .pp-pos-text { grid-column: 1; font-weight: 700; line-height: 16px; }
    .pp-mobile-answer .pp-pos-chev { grid-column: 2; grid-row: 1; visibility: visible; }
}

/* ---------- Сравнение ---------- */
.pp-cmp-pick { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 18px 0 4px; }
.pp-cmp-pick .pp-token { font-size: 14.5px; padding: 8px 8px 8px 15px; }
.pp-flash { font-size: 13.5px; color: var(--pp-alert); flex-basis: 100%; margin: 2px 0 0; }
.pp-cmp-q { max-width: 1080px; margin-bottom: 18px; }
.pp-cmp-card {
    background: var(--up-card); border-radius: var(--up-radius);
    box-shadow: var(--up-shadow-card); overflow: hidden;
}
.pp-cmp-qhead { padding: 18px 24px 13px; border-bottom: 1px solid var(--up-line); }
.pp-cmp-qhead h3 { font-size: 17px; }
.pp-cmp-qhead .pp-q-sub { margin-bottom: 0; }
.pp-cmp-cols { display: grid; }
.pp-cmp-cols[data-n="2"] { grid-template-columns: 1fr 1fr; }
.pp-cmp-cols[data-n="3"] { grid-template-columns: 1fr 1fr 1fr; }
.pp-cmp-col { padding: 15px 24px 18px; min-width: 0; }
.pp-cmp-col + .pp-cmp-col { border-left: 1px solid var(--up-line); }
.pp-cmp-party { font-size: 13.5px; font-weight: bold; color: var(--up-accent-dark); margin-bottom: 6px; }
.pp-cmp-text { font-size: 14.5px; line-height: 1.55; }
.pp-cmp-text .t { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 7; overflow: hidden; }
.pp-cmp-text .t .r { color: var(--pp-soft); }
.pp-cmp-text.is-open .t { display: block; -webkit-line-clamp: unset; }
.pp-cmp-empty { color: var(--pp-mute); font-size: 13.5px; margin: 0; }
.pp-expand {
    border: 0; background: none; color: var(--up-accent); cursor: pointer;
    font-size: 13.5px; padding: 6px 0 0; display: none;
}
.pp-cmp-text.is-clamped + .pp-expand, .pp-cmp-text.is-open + .pp-expand { display: inline-block; }
.pp-expand:hover { color: var(--up-accent-dark); }
.pp-skipnote { font-size: 14px; color: var(--pp-mute); margin: 20px 0; }
.pp-skipnote button {
    border: 0; background: none; cursor: pointer;
    color: var(--up-accent); font-size: 14px; padding: 0;
}
.pp-skipnote button:hover { color: var(--up-accent-dark); }
@media (max-width: 759px) {
    .pp-cmp-qhead { padding: 15px 18px 11px; }
    .pp-cmp-qhead h3 { font-size: 15.5px; }
    .pp-cmp-cols[data-n="3"] { grid-template-columns: 1fr; }
    .pp-cmp-cols[data-n="3"] .pp-cmp-col + .pp-cmp-col { border-left: 0; border-top: 1px solid var(--up-line); }
    .pp-cmp-col { padding: 12px 18px 14px; }
    .pp-cmp-text { font-size: 14px; }
    .pp-cmp-text .t { -webkit-line-clamp: 9; }
}
@media (max-width: 419px) {
    .pp-cmp-cols[data-n="2"] { grid-template-columns: 1fr; }
    .pp-cmp-cols[data-n="2"] .pp-cmp-col + .pp-cmp-col { border-left: 0; border-top: 1px solid var(--up-line); }
}

/* ---------- Поповер (десктоп) ---------- */
.pp-pop {
    position: fixed; z-index: 50;
    width: min(480px, calc(100vw - 32px));
    max-height: min(64vh, 560px);
    overflow: auto; overscroll-behavior: contain;
    background: var(--up-card);
    border-radius: var(--up-radius-sm);
    box-shadow: var(--up-shadow-deep);
    border: 1px solid var(--up-line);
    padding: 18px 20px 16px;
}
.pp-pop-title { font-size: 16px; font-weight: bold; padding-right: 26px; }
.pp-pop-q { font-size: 13.5px; line-height: 1.5; color: var(--pp-soft); margin: 7px 0 0; }
.pp-pop-text { font-size: 15px; line-height: 1.6; margin-top: 12px; white-space: pre-line; }
.pp-pop-meta { font-size: 12.5px; color: var(--pp-mute); margin-top: 14px; }
.pp-pop-src { font-size: 13px; margin-top: 10px; color: var(--pp-soft); }
.pp-pop-src a { color: var(--up-accent); text-decoration: underline; text-underline-offset: 2px; }
.pp-pop-close {
    position: absolute; top: 10px; right: 10px;
    border: 0; background: none; cursor: pointer; color: var(--pp-soft);
    padding: 7px; border-radius: 50%; display: inline-flex;
}
.pp-pop-close:hover { color: var(--up-ink); background: var(--up-surface); }
.pp-pop-close svg { width: 15px; height: 15px; }

/* ---------- Шторка (телефон) ---------- */
.pp-backdrop {
    position: fixed; inset: 0; z-index: 40;
    background: rgba(20, 22, 50, 0.45);
}
html.pp-sheet-open,
html.pp-sheet-open body {
    overscroll-behavior: none;
}
.pp-sheet {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
    background: var(--up-card);
    border-radius: 20px 20px 0 0;
    box-shadow: 0 -12px 40px rgba(30, 38, 100, 0.3);
    max-height: 82vh;
    display: flex; flex-direction: column;
    padding: 0 20px;
}
.pp-sheet-drag-area {
    display: flex;
    min-height: 44px;
    flex: 0 0 44px;
    align-items: flex-start;
    justify-content: center;
    margin-inline: -20px;
    cursor: grab;
    touch-action: none;
}
.pp-sheet-grip { width: 40px; height: 4px; border-radius: 2px; background: var(--pp-faint); margin-top: 12px; }
.pp-sheet-body { overflow: auto; padding-bottom: 26px; overscroll-behavior: contain; }
.pp-sheet .pp-pop-text { font-size: 15.5px; }
.pp-sheet-close {
    position: absolute; top: 12px; right: 12px;
    border: 0; background: var(--up-surface); cursor: pointer; color: var(--up-ink);
    padding: 10px; border-radius: 50%; display: inline-flex;
}
.pp-sheet-close svg { width: 15px; height: 15px; }
@media (prefers-reduced-motion: no-preference) {
    .pp-sheet { animation: pp-up 0.22s ease-out; }
    .pp-backdrop { animation: pp-fade 0.22s ease-out; }
    @keyframes pp-up { from { transform: translateY(30%); opacity: 0.6; } to { transform: none; opacity: 1; } }
    @keyframes pp-fade { from { opacity: 0; } to { opacity: 1; } }
}

/* ---------- Статьи по партиям ---------- */
.pp-articles { margin: 52px 0 30px; }
.pp-articles > h2 {
    font-size: 20px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--up-accent);
    display: flex; align-items: center; gap: 14px; margin-bottom: 6px;
}
.pp-articles > h2::after { content: ""; flex: 1; height: 1px; background: var(--up-line); }
.pp-articles .sub { color: var(--pp-mute); font-size: 13.5px; margin: 0 0 8px; }
.pp-artgroup { margin-top: 20px; }
.pp-artgroup h3 { font-size: 16px; margin-bottom: 12px; }
.pp-artrow { display: grid; grid-auto-flow: column; grid-auto-columns: 300px; gap: 16px; overflow-x: auto; padding-bottom: 10px; }
.pp-artcard {
    background: var(--up-card); border-radius: var(--up-radius); box-shadow: var(--up-shadow-card);
    overflow: hidden; display: flex; flex-direction: column;
}
.pp-artcard img { width: 100%; height: 150px; object-fit: cover; display: block; background: var(--up-surface); }
.pp-artcard .b { padding: 13px 16px 16px; }
.pp-artcard .tag { font-size: 12px; color: var(--up-accent); font-weight: bold; }
.pp-artcard .ttl { font-size: 14.5px; font-weight: bold; line-height: 1.35; margin-top: 5px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; color: var(--up-ink); }
.pp-artcard:hover .ttl { color: var(--up-accent-dark); }
@media (max-width: 759px) {
    .pp-artrow { grid-auto-columns: 78vw; margin-inline: calc(-1 * var(--up-pad)); padding-inline: var(--up-pad); }
}

/* ---------- Обзор ---------- */
.pp-index-cards { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); margin: 24px 0; }
.pp-index-card {
    background: var(--up-card); border-radius: var(--up-radius); box-shadow: var(--up-shadow-card);
    padding: 24px 26px; display: block; color: var(--up-ink);
}
.pp-index-card:hover { outline: 2px solid var(--up-accent); color: var(--up-ink); }
.pp-index-card h2 { font-size: 20px; color: var(--up-accent-dark); }
.pp-index-card h2 span { color: var(--pp-mute); font-weight: normal; }
.pp-index-card p { font-size: 14px; color: var(--pp-soft); margin: 10px 0 0; }
.pp-checklist {
    background: var(--up-surface); border-radius: var(--up-radius);
    padding: 20px 24px; max-width: 780px; font-size: 14.5px;
}
.pp-checklist h2 { font-size: 16px; margin-bottom: 10px; }
.pp-checklist li { margin-bottom: 6px; }
.pp-note { font-size: 13.5px; color: var(--pp-mute); max-width: 780px; }

.pp-footer { margin: 44px 0 26px; color: var(--pp-mute); font-size: 12.5px; }

.pp-emptymsg { font-size: 15px; color: var(--pp-soft); padding: 26px 4px; }

/* ---------- Чистовая страница «Позиции партий» ---------- */
.pp-clean {
    --up-bg: #ecf1ff;
    --up-surface: #ecf1ff;
    --up-card: #fff;
    --up-line: #d9d9d9;
    background: #ecf1ff;
}
.pp-clean ::selection { background: #3855cf; color: #fff; }
.pp-clean .pp-container { max-width: none; padding: 0; }
.pp-clean .pp-masthead {
    min-height: 112px;
    padding: 24px max(38px, calc((100vw - 1364px) / 2));
    align-items: center;
    justify-content: space-between;
    background: #fff;
}
.pp-clean .pp-brand { display: flex; align-items: flex-end; gap: 18px; }
.pp-clean .pp-logo {
    display: flex;
    flex-direction: column;
    font-size: 25px;
    line-height: 0.9;
    text-transform: uppercase;
    color: #000;
}
.pp-clean .pp-logo b { font-size: 29px; line-height: 1; }
.pp-clean .pp-tagline { font-size: 10px; line-height: 1; letter-spacing: 0.04em; text-transform: uppercase; color: #000; }
.pp-mast-actions { display: flex; align-items: center; gap: 24px; color: #3855cf; }
.pp-about { font-size: 12px; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; }
.pp-icon-btn, .pp-page-share {
    display: inline-flex; align-items: center; justify-content: center;
    border: 0; background: none; color: #3855cf; cursor: pointer; padding: 7px;
}
.pp-icon-btn svg { width: 20px; height: 20px; stroke-width: 1.5; }
.pp-clean-surface {
    width: calc(100% - 76px);
    max-width: 1364px;
    margin: 32px auto 0;
    overflow: visible;
    border-radius: 40px 40px 0 0;
    background: #fff;
}
.pp-intro { position: relative; min-height: 356px; padding: 88px 190px 46px; border-radius: 40px 40px 0 0; }
.pp-data-date { position: absolute; top: 30px; left: 28px; margin: 0; color: #3855cf; font-size: 12px; line-height: 18px; letter-spacing: 0.02em; }
.pp-data-date b { display: block; font-weight: 700; }
.pp-page-share { position: absolute; top: 24px; right: 28px; }
.pp-page-share svg { width: 24px; height: 24px; stroke-width: 1.8; }
.pp-clean .pp-title {
    max-width: 926px;
    margin: 0 auto;
    color: #3855cf;
    font-size: 37px;
    line-height: 40px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-align: center;
    text-transform: uppercase;
    text-wrap: balance;
}
.pp-intro-copy {
    max-width: 886px;
    margin: 24px auto 0;
    font-size: 18px;
    line-height: 23px;
    letter-spacing: 0.02em;
    text-align: center;
}
.pp-intro-break { display: none; }
.pp-intro-copy > .kg-toggle-card { display: none; }
.pp-controls.is-clean {
    position: sticky;
    top: 0;
    z-index: 25;
    margin: 0;
    padding: 0 20px 15px;
    border-bottom: 1px solid transparent;
    background: #fff;
}
.pp-controls.is-clean.is-stuck { border-bottom-color: #d9d9d9; }
.pp-controls.is-clean .pp-tabs {
    min-height: 40px;
    align-items: center;
    gap: 21px;
    overflow-x: auto;
    border: 0;
    scrollbar-width: none;
}
.pp-controls.is-clean .pp-tabs::-webkit-scrollbar { display: none; }
.pp-tabs-filter { flex: 0 0 auto; display: inline-flex; border: 0; background: none; color: #3855cf; padding: 4px; cursor: pointer; }
.pp-tabs-filter svg { width: 17px; height: 17px; stroke-width: 1.5; }
.pp-controls.is-clean .pp-tab {
    flex: 0 0 auto;
    padding: 8px 0;
    color: #3855cf;
    font-size: 12px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}
.pp-controls.is-clean .pp-tab.is-on { color: #253d9f; box-shadow: inset 0 -2px 0 #3855cf; }
.pp-controls.is-clean .pp-tab.is-empty { color: rgba(56, 85, 207, 0.38); cursor: default; box-shadow: none; }
.pp-clean .pp-matrix-zone { padding: 0; }
.pp-clean .pp-matrix-zone::after {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 6;
    width: 52px;
    background: linear-gradient(90deg, rgba(245, 246, 255, 0), rgba(245, 246, 255, 0.88));
    content: "";
    opacity: 0;
    pointer-events: none;
    transition: opacity 120ms ease-out;
}
.pp-clean .pp-matrix-zone.has-r::after { opacity: 1; }
.pp-clean .pp-matrix-wrap {
    border-radius: 0;
    box-shadow: none;
    overscroll-behavior-x: none;
    scrollbar-color: #3855cf #ecf1ff;
    scrollbar-width: thin;
}
.pp-clean .pp-matrix-wrap::-webkit-scrollbar { width: 10px; height: 10px; }
.pp-clean .pp-matrix-wrap::-webkit-scrollbar-track { background: #ecf1ff; }
.pp-clean .pp-matrix-wrap::-webkit-scrollbar-thumb { background: #3855cf; border: 2px solid #ecf1ff; border-radius: 5px; }
.pp-clean .pp-matrix th, .pp-clean .pp-matrix td { border-color: rgba(56, 85, 207, 0.16); }
.pp-clean .pp-matrix thead th {
    top: 0;
    width: 228px;
    height: 58px;
    padding: 5px 12px;
    vertical-align: middle;
    font-size: 14px;
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    background: #fff;
    box-shadow: none;
    will-change: transform;
}
.pp-clean .pp-matrix.is-head-stuck thead th { z-index: 12; display: flex; align-items: center; box-shadow: none; border-bottom-color: #d9d9d9; }
.pp-clean .pp-matrix.is-head-stuck thead .pp-q { z-index: 13; }
.pp-clean .pp-matrix thead .pp-q { width: 254px; padding: 5px 18px; }
.pp-party-head { display: flex; align-items: center; gap: 12px; width: 100%; white-space: nowrap; }
.pp-party-name { display: block; white-space: nowrap; }
.pp-party-actions { display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; margin-inline-start: auto; }
.pp-info, .pp-col-rm, .pp-q-rm {
    position: relative;
    border: 0;
    background: none;
    color: #3855cf;
    cursor: pointer;
}
.pp-info {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border-radius: 50%;
    vertical-align: middle;
    text-decoration: none;
}
.pp-info svg { width: 15px; height: 15px; stroke-width: 1.5; }
.pp-icon-tip .pp-tip {
    position: absolute;
    bottom: calc(100% + 9px);
    left: -8px;
    z-index: 5;
    width: max-content;
    max-width: 220px;
    padding: 6px 10px;
    border-radius: 6px;
    background: #3855cf;
    color: #fff;
    font-size: 12px;
    line-height: 1.3;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-transform: none;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.12s;
}
.pp-icon-tip .pp-tip::after {
    content: "";
    position: absolute;
    top: 100%; left: 13px;
    border: 5px solid transparent;
    border-top-color: #3855cf;
}
.pp-icon-tip:hover .pp-tip, .pp-icon-tip:focus-visible .pp-tip { opacity: 1; }
.pp-info:hover { color: #253d9f; background: #ecf1ff; }
.pp-info:focus-visible { outline: 3px solid rgba(56, 85, 207, 0.3); outline-offset: 2px; }
.pp-posrow-wrap { position: relative; }
.pp-clean .pp-col-rm { float: none; display: inline-flex; margin: 0; padding: 3px; vertical-align: middle; }
.pp-clean .pp-col-rm:hover, .pp-q-rm:hover { color: #253d9f; background: #ecf1ff; }
.pp-clean .pp-col-rm svg, .pp-q-rm svg { width: 14px; height: 14px; stroke-width: 1.5; }
.pp-clean .pp-matrix thead th.is-add { width: 136px; }
.pp-clean .pp-col-add { font-size: 12px; letter-spacing: 0.02em; text-transform: uppercase; }
.pp-clean .pp-blockrow th, .pp-clean .pp-blockrow td { height: 36px; background: #fff; }
.pp-clean .pp-blockrow th { padding: 0 18px; vertical-align: middle; color: #3855cf; font-size: 12px; line-height: 1; letter-spacing: 0.02em; }
.pp-clean .pp-blockrow td { padding: 0; }
.pp-overflow-cue {
    position: sticky;
    z-index: 7;
    display: inline-flex;
    height: 35px;
    align-items: center;
    gap: 7px;
    padding: 0 0 0 14px;
    background: #fff;
    color: #3855cf;
    font-size: 10px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    white-space: nowrap;
    border: 0;
    font-family: inherit;
    cursor: pointer;
    pointer-events: auto;
}
.pp-overflow-cue:focus-visible { outline: 2px solid #3855cf; outline-offset: -2px; }
.pp-overflow-cue.is-right { right: 18px; float: right; }
.pp-overflow-cue.is-left {
    left: 272px;
    float: left;
    padding-right: 14px;
    padding-left: 0;
}
.pp-overflow-cue.is-left svg { transform: rotate(180deg); }
.pp-overflow-cue svg { width: 14px; height: 14px; stroke-width: 1.8; }
.pp-overflow-cue[hidden] { display: none; }
.pp-block-pin {
    position: fixed;
    z-index: 11;
    display: none;
    height: 36px;
    align-items: center;
    justify-content: space-between;
    padding: 0 18px;
    border-bottom: 1px solid rgba(56, 85, 207, 0.16);
    background: #fff;
    color: #3855cf;
    font-size: 12px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    pointer-events: auto;
}
.pp-block-pin .pp-overflow-cue { position: absolute; float: none; }
.pp-block-pin .pp-overflow-cue.is-left { left: 272px; }
.pp-block-pin .pp-overflow-cue.is-right { right: 18px; }
.pp-block-pin.is-visible { display: flex; }
.pp-clean .pp-matrix.is-block-pinned .pp-blockrow > * { visibility: hidden; }
.pp-clean .pp-question-row > * { background: #fff; }
.pp-clean .pp-question-row > td { height: 1px; vertical-align: middle; }
.pp-clean .pp-question-row.is-alt > * { background: #ecf1ff; }
.pp-clean .pp-question-row:hover > * { background: #f7f9ff; }
.pp-clean .pp-question-row.is-alt:hover > * { background: #e2e9ff; }
.pp-clean .pp-matrix .pp-q { width: 254px; }
.pp-clean .pp-q-btn { padding: 13px 32px 13px 18px; }
.pp-clean .pp-q-topic { color: #3855cf; font-size: 14px; line-height: 1.15; font-weight: 700; }
.pp-clean .pp-q-text { margin-top: 5px; color: #000; font-size: 12px; line-height: 13px; letter-spacing: -0.02em; -webkit-line-clamp: unset; }
.pp-q-rm { position: absolute; top: 8px; right: 7px; display: inline-flex; padding: 4px; }
.pp-clean .pp-cell-btn { display: flex; align-items: center; height: 100%; min-height: 74px; padding: 14px 16px; font-weight: 700; }
.pp-clean .pp-cell-content { display: block; width: 100%; }
.pp-clean .pp-answer-code {
    margin-right: 7px;
    color: #3855cf;
    font-size: 12px;
    line-height: 14px;
    font-weight: 700;
    letter-spacing: 0.02em;
    white-space: nowrap;
}
.pp-clean .pp-cell-txt { display: inline; color: #000; font-size: 12px; line-height: 14px; font-weight: 700; letter-spacing: 0.02em; }
.pp-clean .pp-empty-cell {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    min-height: 74px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}
.pp-clean .pp-empty-cell::after {
    box-sizing: border-box;
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    width: 105px;
    height: 23px;
    align-items: center;
    justify-content: center;
    border: 1px solid #ccd1ff;
    background: #ecf1ff;
    color: #3855cf;
    content: "нет данных";
    font-size: 12px;
    line-height: 1;
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, -50%);
    transition: opacity 80ms ease-out;
}
.pp-clean .pp-empty-cell.is-revealed::after { opacity: 1; }
.pp-clean .pp-panel { background: #fcfdff; border-color: #d9d9d9; border-radius: 0; }
.pp-clean .pp-panel-row input { width: 17px; height: 17px; border-radius: 4px; accent-color: #3855cf; }

/* Единый clean-фильтр партий и вопросов */
.pp-filter-backdrop { position: fixed; inset: 0; z-index: 198; background: transparent; }
.pp-filter-panel {
    position: fixed;
    z-index: 200;
    width: min(860px, calc(100vw - 32px));
    overflow: auto;
    overscroll-behavior: contain;
    background: #fcfdff;
    border: 1px solid #d9d9d9;
    border-radius: 12px;
    box-shadow: 0 18px 48px rgba(30, 38, 100, 0.2);
    scrollbar-color: #3855cf #ecf1ff;
}
.pp-filter-close {
    position: absolute; top: 10px; right: 10px; z-index: 2;
    display: inline-flex; border: 0; background: none; color: #3855cf; padding: 7px; cursor: pointer;
}
.pp-filter-close svg { width: 15px; height: 15px; stroke-width: 1.5; }
.pp-filter-compare { display: none; }
.pp-filter-columns { display: grid; grid-template-columns: minmax(250px, 0.8fr) minmax(380px, 1.2fr); }
.pp-filter-column { min-width: 0; padding: 28px 28px 24px; }
.pp-filter-column + .pp-filter-column { border-left: 1px solid #d9d9d9; }
.pp-filter-column h2 {
    margin: 0;
    color: #3855cf;
    font-size: 16px;
    line-height: 18px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}
.pp-filter-master { display: flex; align-items: flex-start; gap: 11px; margin: 0 0 18px; cursor: pointer; }
.pp-filter-mobile-head { display: none; }
.pp-filter-mobile-section { display: none; }
.pp-filter-party, .pp-filter-question, .pp-filter-block-label {
    display: flex; align-items: flex-start; gap: 11px; cursor: pointer;
}
.pp-filter-party { padding: 7px 0; color: #000; font-size: 14px; line-height: 17px; font-weight: 700; }
.pp-filter-panel input[type="checkbox"] {
    width: 17px; height: 17px; flex: 0 0 17px; margin: 0;
    border-radius: 4px;
    accent-color: #3855cf;
    cursor: pointer;
}
.pp-filter-block { border-top: 1px solid rgba(56, 85, 207, 0.14); }
.pp-filter-block:first-child { border-top: 0; }
.pp-filter-block-head { display: grid; grid-template-columns: 1fr 30px; gap: 8px; align-items: center; padding: 10px 0; }
.pp-filter-block-label { min-width: 0; }
.pp-filter-block-text { display: grid; gap: 4px; min-width: 0; }
.pp-filter-block-text b { color: #000; font-size: 12px; line-height: 14px; letter-spacing: 0.02em; text-transform: uppercase; }
.pp-filter-block-text small { color: #3855cf; font-size: 11px; line-height: 12px; font-weight: 400; }
.pp-filter-expand { display: inline-flex; justify-content: center; border: 0; background: none; color: #3855cf; padding: 6px; cursor: pointer; }
.pp-filter-expand svg { width: 15px; height: 15px; }
.pp-filter-question-list { display: grid; gap: 2px; padding: 2px 0 12px 28px; }
.pp-filter-question { padding: 5px 0; }
.pp-filter-question span { color: #3855cf; font-size: 12px; line-height: 14px; font-weight: 700; }
.pp-matrix .pp-selection-empty {
    min-width: min(900px, calc(100vw - 76px));
    height: 100px;
    padding: 28px 18px;
    color: rgba(0, 0, 0, 0.52);
    font-size: 12px;
    line-height: 16px;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-align: left;
}

.pp-pop.is-clean {
    width: min(404px, calc(100vw - 32px));
    padding: 11px 19px 20px;
    border: 0;
    border-radius: 4px;
}
.pp-pop.is-clean .pp-pop-title, .pp-sheet.is-clean .pp-pop-title {
    padding-right: 40px;
    color: #000;
    font-size: 14px;
    line-height: 49px;
    font-weight: 700;
    letter-spacing: -0.02em;
    text-transform: uppercase;
}
.pp-pop-verdict { margin: 0 0 16px; font-size: 14px; line-height: 1.2; font-weight: 700; letter-spacing: 0.02em; }
.pp-pop.is-clean .pp-pop-q, .pp-sheet.is-clean .pp-pop-q { margin: 0 0 12px; color: #000; font-size: 12px; line-height: 1.45; letter-spacing: 0.02em; }
.pp-pop.is-clean .pp-pop-text, .pp-sheet.is-clean .pp-pop-text { margin: 0 0 18px; font-size: 12px; line-height: 1.45; letter-spacing: 0.02em; }
.pp-pop.is-clean .pp-pop-src, .pp-sheet.is-clean .pp-pop-src { display: flex; align-items: center; gap: 7px; margin: 0 0 14px; color: #000; font-size: 12px; line-height: 1; font-weight: 700; letter-spacing: 0.02em; }
.pp-icon-tip { position: relative; display: inline-flex; flex: 0 0 auto; outline: none; cursor: help; }
.pp-icon-tip svg { width: 15px; height: 15px; color: #3855cf; stroke-width: 1.8; }
.pp-source-icon { display: inline-flex; flex: 0 0 auto; }
.pp-source-icon svg.pp-party-source-icon { width: 17px; height: 17px; color: #3855cf; stroke-width: 1; }
.pp-pop.is-clean .pp-pop-src a, .pp-sheet.is-clean .pp-pop-src a { color: #3855cf; text-decoration: none; }
.pp-sheet.is-clean .pp-pop-party-link { color: #3855cf; text-decoration: underline; text-underline-offset: 3px; }
.pp-sheet.is-clean .pp-pop-party-link:hover { color: #253d9f; }
.pp-sheet.is-clean .pp-pop-party-link:focus-visible { outline: 2px solid #3855cf; outline-offset: 3px; }
.pp-pop-edit {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 40px;
    margin: 0 0 14px;
    padding: 8px 12px;
    border: 1px solid #3855cf;
    border-radius: 7px;
    color: #3855cf;
    font-size: 12px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-decoration: none;
}
.pp-pop-edit:hover { background: #ecf1ff; color: #253d9f; }
.pp-pop-edit:focus-visible { outline: 3px solid rgba(56, 85, 207, 0.3); outline-offset: 2px; }
.pp-pop-edit svg { width: 15px; height: 15px; flex: 0 0 auto; }
.pp-pop.is-clean .pp-pop-meta, .pp-sheet.is-clean .pp-pop-meta { margin: 0; color: #3855cf; font-size: 12px; line-height: 1; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; }
.pp-pop.is-clean .pp-pop-meta span, .pp-sheet.is-clean .pp-pop-meta span { text-transform: none; }
.pp-pop.is-clean .pp-pop-close { top: 16px; right: 14px; color: #3855cf; }
.pp-pop.is-clean .pp-pop-close:hover { color: #253d9f; background: #ecf1ff; }
.pp-sheet.is-clean .pp-sheet-close { top: 16px; background: none; color: #3855cf; }

.pp-confirm-backdrop { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 16px; background: rgba(20, 22, 50, 0.38); }
.pp-confirm { position: relative; width: 316px; min-height: 157px; padding: 53px 18px 18px; background: #fff; box-shadow: 0 18px 48px rgba(30, 38, 100, 0.22); text-align: center; }
.pp-confirm-close { position: absolute; top: 10px; right: 10px; display: inline-flex; border: 0; background: none; color: #3855cf; padding: 6px; cursor: pointer; }
.pp-confirm-close svg { width: 12px; height: 12px; stroke-width: 1.5; }
.pp-confirm-title, .pp-confirm-copy { margin: 0; color: #3855cf; font-size: 12px; line-height: 14px; font-weight: 700; letter-spacing: 0.02em; }
.pp-confirm-actions { display: flex; justify-content: center; gap: 28px; margin-top: 22px; }
.pp-confirm-actions button { border: 0; background: none; color: #3855cf; padding: 5px; font-size: 12px; line-height: 11px; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; cursor: pointer; }
.pp-confirm-actions button:hover { color: #253d9f; text-decoration: underline; text-underline-offset: 3px; }
.pp-toast { position: fixed; right: 24px; bottom: 24px; z-index: 100; padding: 10px 15px; border-radius: 6px; background: #3855cf; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: 0.02em; box-shadow: 0 10px 34px rgba(45, 55, 130, 0.22); }

.pp-site-footer { min-height: 100px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px max(38px, calc((100vw - 1364px) / 2)); background: #4c5be7; color: #fff; }
.pp-socials { display: flex; align-items: center; gap: 18px; font-size: 12px; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; }
.pp-social-link { display: inline-flex; color: #fff; padding: 4px; }
.pp-social-link:hover { color: #fff; opacity: 0.78; }
.pp-social-link svg { width: 19px; height: 19px; }
.pp-copyright { font-size: 12px; font-weight: 700; letter-spacing: 0.02em; }

@media (max-width: 759px) {
    html.pp-filter-open,
    html.pp-filter-open body { overflow: hidden; }
    .pp-clean { background: #fff; }
    .pp-clean .pp-masthead { min-height: 82px; padding: 16px; flex-wrap: nowrap; }
    .pp-clean .pp-brand { gap: 9px; }
    .pp-clean .pp-logo { font-size: 17px; }
    .pp-clean .pp-logo b { font-size: 20px; }
    .pp-clean .pp-tagline { max-width: 74px; font-size: 8px; line-height: 1.15; }
    .pp-about { display: none; }
    .pp-mast-actions { gap: 5px; }
    .pp-clean-surface { width: 100%; margin: 0; border-radius: 0; overflow: visible; }
    .pp-intro { min-height: 0; padding: 66px 17px 34px; }
    .pp-data-date { top: 22px; left: 17px; }
    .pp-page-share { top: 17px; right: 14px; }
    .pp-clean .pp-title { font-size: 27px; line-height: 29px; text-align: left; text-wrap: pretty; }
    .pp-intro-copy { margin-top: 20px; font-size: 15px; line-height: 19px; text-align: left; letter-spacing: 0; }
    .pp-controls.is-clean { padding: 0 17px 18px; }
    .pp-controls.is-clean .pp-tabs { min-height: 36px; gap: 0; overflow: visible; }
    .pp-controls.is-clean .pp-tabs { margin-inline: 0; padding-inline: 0; -webkit-mask-image: none; mask-image: none; }
    .pp-controls.is-clean .pp-tab { display: none; }
    .pp-tabs-filter { display: inline-flex; padding: 8px; border: 1px solid #3855cf; border-radius: 4px; }
    .pp-filter-panel {
        width: 100%;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }
    .pp-filter-close {
        top: max(9px, env(safe-area-inset-top));
        right: max(27px, env(safe-area-inset-right));
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        padding: 0;
    }
    .pp-filter-close svg { width: 30px; height: 30px; stroke-width: 1.5; }
    .pp-filter-compare {
        position: absolute;
        top: max(5px, env(safe-area-inset-top));
        left: max(7px, env(safe-area-inset-left));
        z-index: 2;
        display: block;
        width: 104px;
        height: 44px;
        padding: 0;
        border: 0;
        background: none;
        color: #3855cf;
        cursor: pointer;
    }
    .pp-filter-compare svg {
        position: absolute;
        top: 15.5px;
        left: 12px;
        width: 20px;
        height: 17px;
        transform: rotate(180deg);
    }
    .pp-filter-compare span {
        position: absolute;
        top: 18px;
        left: 33px;
        display: flex;
        width: 57px;
        height: 12px;
        align-items: center;
        justify-content: center;
        font-family: Arial, sans-serif;
        font-size: 10px;
        line-height: 1;
        font-weight: 700;
        font-style: normal;
        letter-spacing: 0;
        text-align: center;
        vertical-align: middle;
        text-transform: uppercase;
    }
    .pp-filter-columns { display: block; min-height: 100%; padding: calc(64px + env(safe-area-inset-top)) 0 32px; }
    .pp-filter-column { padding: 0 53px; }
    .pp-filter-column + .pp-filter-column { margin-top: 26px; border: 0; }
    .pp-filter-master { display: none; }
    .pp-filter-mobile-head { display: grid; grid-template-columns: 17px minmax(0, 1fr); gap: 18px; align-items: start; }
    .pp-filter-mobile-head > input { margin-top: 1px; }
    .pp-filter-mobile-section {
        position: relative;
        display: grid;
        grid-template-columns: minmax(0, 1fr) 35px;
        grid-template-rows: auto auto;
        column-gap: 10px;
        align-items: center;
        width: 100%;
        border: 0;
        background: none;
        color: #3855cf;
        padding: 0;
        text-align: left;
        text-transform: uppercase;
        cursor: pointer;
    }
    .pp-filter-mobile-section:focus,
    .pp-filter-mobile-section:focus-visible {
        outline: none !important;
        -webkit-tap-highlight-color: transparent;
    }
    html.pp-keyboard-focus .pp-filter-mobile-section:focus,
    html.pp-keyboard-focus .pp-filter-mobile-section:focus-visible {
        outline: 2px solid #3855cf !important;
        outline-offset: 2px;
    }
    .pp-filter-mobile-section b {
        grid-column: 1;
        align-self: center;
        font-family: Arial, sans-serif;
        font-size: 16px;
        line-height: 11px;
        font-weight: 700;
        letter-spacing: 0.02em;
        vertical-align: middle;
    }
    .pp-filter-mobile-section span { grid-column: 1; font-size: 10px; line-height: 11px; font-weight: 400; letter-spacing: 0.02em; }
    .pp-filter-mobile-section svg {
        position: absolute;
        top: -9px;
        right: -21.5px;
        width: 35px;
        height: 30px;
        stroke-width: 2;
    }
    .pp-filter-section-content { display: none; padding-top: 10px; }
    .pp-filter-section-content.is-open { display: block; }
    .pp-filter-panel.is-questions-only .pp-filter-questions { margin-top: 0; }
    .pp-filter-panel.is-questions-only .pp-filter-mobile-head { display: none; }
    .pp-filter-panel.is-questions-only .pp-filter-section-content { padding-top: 0; }
    .pp-filter-party { min-height: 36px; padding: 9px 0 10px; }
    .pp-filter-question-list { padding-left: 20px; }
    .pp-sheet.is-clean .pp-pop-q { margin-bottom: 16px; font-size: 14px; line-height: 19px; }
    .pp-sheet.is-clean .pp-pop-verdict { font-size: 15px; line-height: 19px; }
    .pp-sheet.is-clean .pp-pop-text { font-size: 15px; line-height: 21px; }
    .pp-clean .pp-qsection { margin: 0; padding: 22px 13px 1px; background: #fff; }
    .pp-clean .pp-qsection > h2 { margin: 0 4px 15px; font-size: 18px; color: #3855cf; }
    .pp-clean .pp-qsection > h2::after { display: none; }
    .pp-clean .pp-qcard { margin: 0 0 16px; padding: 24px 20px 16px; border-radius: 28px; background: #ecf1ff; box-shadow: none; }
    .pp-clean .pp-qcard h3 { color: #3855cf; font-size: 18px; line-height: 1; }
    .pp-clean .pp-q-sub { margin: 8px 0 18px; color: #000; font-size: 16px; line-height: 18px; }
    .pp-clean .pp-posrow { grid-template-columns: 1fr; gap: 2px; padding: 12px 0; border-color: rgba(56, 85, 207, 0.2); }
    .pp-clean .pp-pos-party { color: #3855cf; font-size: 14px; line-height: 1.2; letter-spacing: -0.02em; text-transform: uppercase; }
    .pp-clean .pp-pos-text { grid-column: 1; color: #000; font-size: 14px; line-height: 16px; font-weight: 700; letter-spacing: 0.02em; }
    .pp-clean .pp-pos-chev { display: none; }
    .pp-clean .pp-answer-code { color: #253d9f; }
    .pp-site-footer { min-height: 150px; align-items: flex-start; flex-direction: column; padding: 30px 20px; }
    .pp-socials { flex-wrap: wrap; gap: 14px; }
    .pp-socials > span { flex-basis: 100%; }
    .pp-confirm { width: min(316px, calc(100vw - 32px)); }
}

/* Ghost page shell: the theme already supplies the masthead and footer. */
.pp-page {
    width: calc(100% - 76px);
    max-width: 1364px;
    margin: 32px auto 0;
    border-radius: 40px 40px 0 0;
    background: #fff;
}
.pp-page-hero {
    position: relative;
    min-height: 356px;
    padding: 88px 190px 46px;
    border-radius: 40px 40px 0 0;
}
@media (min-width: 760px) {
    .page-partii .pp-page-hero {
        min-height: 0;
        padding: 30px clamp(32px, 8vw, 190px) 24px;
    }
    .page-partii .pp-title {
        max-width: 926px;
        font-size: clamp(20px, 2.6vw, 34px);
        line-height: 1.08;
    }
    .page-partii .pp-title-line { display: block; white-space: nowrap; }
    .page-partii .pp-page-share { top: 22px; }
}
@media (min-width: 1100px) {
    .page-partii .pp-intro-break { display: block; }
}
.pp-page .pp-intro-copy > :first-child { margin-top: 0; }
.pp-page .pp-intro-copy > :last-child { margin-bottom: 0; }
.pp-page .pp-app { min-width: 0; }
.pp-page .pp-matrix-zone { padding-block-end: 72px; }
.pp-page .pp-source-data { display: none !important; }

@media (max-width: 759px) {
    .pp-page { width: 100%; margin: 0; border-radius: 0; }
    .pp-page-hero { min-height: 0; padding: 66px 17px 34px; border-radius: 0; }
}

@media (max-width: 759px) {
    .page-partii.pp-clean { background: #f5f6ff; }
    .page-partii .up-header {
        box-sizing: border-box;
        min-height: 159px;
        padding-top: 61px;
    }
    .page-partii .up-header .up-container {
        padding-inline: 33px 42px;
    }
    .page-partii .up-logo img { height: 70px; }
    .page-partii .up-header-actions { gap: 4px; padding-top: 40px; }
    .page-partii .pp-page { background: transparent; }
    .page-partii .pp-page-hero {
        width: calc(100% - 32px);
        min-height: 609px;
        margin-inline: auto;
        padding: 105px 22px 64px;
        border-radius: 40px 40px 20px 20px;
        background: #fff;
    }
    .page-partii .pp-data-date { top: 34px; left: 22px; }
    .page-partii .pp-page-share {
        top: 24px;
        right: 18px;
        width: 40px;
        height: 40px;
        padding: 0;
    }
    .page-partii .pp-page-share svg { width: 24px; height: 24px; stroke-width: 1.8; }
    .page-partii .pp-title {
        max-width: none;
        margin: 0;
        font-size: 28px;
        line-height: 1.14;
        text-wrap: wrap;
    }
    .page-partii .pp-intro-copy {
        max-width: none;
        margin: 22px 0 0;
        font-size: 16px;
        line-height: 1.65;
        letter-spacing: normal;
    }
    .page-partii .pp-app { position: relative; }
    .page-partii .pp-controls.is-clean {
        position: sticky;
        top: 0;
        z-index: 20;
        width: 100%;
        height: 0;
        padding: 0;
        border: 0;
        background: transparent;
        pointer-events: none;
    }
    .page-partii .pp-controls.is-clean.is-empty-selection { display: none; }
    .page-partii .pp-controls.is-clean .pp-tabs {
        position: absolute;
        top: 41px;
        right: 35px;
        min-height: 24px;
        pointer-events: auto;
    }
    .page-partii .pp-tabs-filter {
        width: 28px;
        height: 26px;
        padding: 0;
        border: 0;
        border-radius: 0;
    }
    .page-partii .pp-tabs-filter svg { width: 28px; height: 26px; stroke-width: 1.5; }
    .page-partii .pp-qsection { padding: 0 17px 1px 9px; background: transparent; }
    .page-partii .pp-qsection > h2 {
        position: sticky;
        top: 0;
        z-index: 18;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 4px;
        min-height: 108px;
        margin-inline: -9px -17px;
        margin-bottom: 0;
        padding: 23px 64px 23px 28px;
        background: #f5f6ff;
    }
    .page-partii .pp-qsection > h2.has-filter-action { padding: 0; }
    .page-partii .pp-qsection-name { font-size: 18px; line-height: 21px; }
    .page-partii .pp-qsection-count {
        font-family: Arial, sans-serif;
        font-size: 12px;
        line-height: 11px;
        font-weight: 700;
        letter-spacing: 0.02em;
        vertical-align: middle;
        text-transform: uppercase;
    }
    .page-partii .pp-qsection-filter {
        display: flex;
        width: 100%;
        min-height: 108px;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 4px;
        padding: 23px 64px 23px 28px;
        border: 0;
        background: none;
        color: #3855cf;
        text-align: left;
        cursor: pointer;
    }
    .page-partii .pp-qsection-filter:focus,
    .page-partii .pp-qsection-filter:focus-visible { outline: none !important; }
    html.pp-keyboard-focus .page-partii .pp-qsection-filter:focus,
    html.pp-keyboard-focus .page-partii .pp-qsection-filter:focus-visible {
        outline: 2px solid #3855cf !important;
        outline-offset: -2px;
    }
    .page-partii .pp-qsection-filter-meta {
        display: inline-flex;
        min-height: 18px;
        align-items: center;
        gap: 4px;
    }
    .page-partii .pp-qsection-filter-meta svg {
        width: 21px;
        height: 18px;
        stroke-width: 1.8;
        transform: translateY(-1.25px);
    }
    .page-partii .pp-qcard {
        padding: 27px 42px 43px 28px;
    }
    .page-partii .pp-qcard:nth-of-type(odd) { background: #ecf1ff; }
    .page-partii .pp-qcard:nth-of-type(even) { background: #fff; }
    .page-partii .pp-qcard h3 { line-height: 17px; }
    .page-partii .pp-qcard h3 { display: flex; min-height: 34px; align-items: center; }
    .page-partii .pp-q-sub { margin: 7px 0 24px; }
    .page-partii .pp-posrow-wrap {
        width: 100%;
        margin: 0 0 18px;
        padding: 0 0 11px;
        border-top: 0;
        border-bottom: 2px solid #fff;
    }
    .page-partii .pp-posrow-wrap.is-last {
        margin-bottom: 0;
        padding-bottom: 16px;
        border-bottom: 0;
    }
    .page-partii .pp-qcard:nth-of-type(even) .pp-posrow-wrap {
        border-bottom-color: #ecf1ff;
    }
    .page-partii .pp-mobile-answer > .pp-pos-party {
        display: block;
        position: relative;
        grid-column: 1;
        grid-row: 1;
        width: calc(100% - 28px);
        padding: 0;
        color: #3855cf;
        font-size: 14px;
        line-height: 20px;
        letter-spacing: -0.02em;
        text-transform: uppercase;
    }
    .page-partii .pp-posrow.pp-mobile-answer {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        position: relative;
        width: 100%;
        min-height: 0;
        padding: 0 28px 16px 0;
        border-radius: 8px;
        transition: background-color 120ms ease-out, box-shadow 120ms ease-out;
    }
    .page-partii .pp-posrow.pp-mobile-answer:hover,
    .page-partii .pp-posrow.pp-mobile-answer:focus-visible {
        background: rgba(56, 85, 207, 0.07);
        box-shadow: 0 0 0 6px rgba(56, 85, 207, 0.07);
    }
    .page-partii .pp-posrow.pp-mobile-answer:active {
        background: rgba(56, 85, 207, 0.12);
        box-shadow: 0 0 0 6px rgba(56, 85, 207, 0.12);
    }
    .page-partii .pp-posrow.pp-mobile-answer:focus-visible { outline: 2px solid #3855cf; outline-offset: 4px; }
    .page-partii .pp-posrow.pp-mobile-answer.is-empty { cursor: default; }
    .page-partii .pp-mobile-answer.is-empty .pp-pos-text { color: rgba(0, 0, 0, 0.52); font-weight: 400; }
    .page-partii .pp-mobile-answer .pp-pos-text {
        grid-column: 1;
        grid-row: 2;
        max-width: calc(100% - 28px);
        margin-top: 17px;
        line-height: 16px;
        letter-spacing: 0.02em;
    }
    .page-partii .pp-mobile-answer .pp-pos-chev {
        position: absolute;
        top: 8px;
        right: 5px;
        display: block;
        padding: 0;
        visibility: visible;
    }
    .page-partii .pp-mobile-answer .pp-pos-chev svg {
        width: 5px;
        height: 10px;
        stroke-width: 1.5;
    }
    .page-partii .pp-morebtn { border-top: 2px solid #fff; }
    .page-partii .pp-qcard:nth-of-type(even) .pp-morebtn { border-top-color: #ecf1ff; }
    .page-partii .pp-stacked-root.is-empty-selection {
        width: 100%;
        padding: 24px 16px 48px;
    }
    .page-partii .pp-mobile-empty {
        display: flex;
        min-height: 256px;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 38px 28px 40px;
        border-radius: 28px;
        background: #fff;
        text-align: center;
    }
    .page-partii .pp-mobile-empty > svg {
        width: 36px;
        height: 34px;
        margin-bottom: 22px;
        color: #3855cf;
        stroke-width: 1.5;
    }
    .page-partii .pp-mobile-empty h2 {
        margin: 0;
        color: #3855cf;
        font-size: 20px;
        line-height: 23px;
        letter-spacing: 0.02em;
        text-transform: uppercase;
    }
    .page-partii .pp-mobile-empty p {
        max-width: 280px;
        margin: 12px 0 24px;
        color: rgba(23, 23, 60, 0.7);
        font-size: 15px;
        line-height: 20px;
    }
    .page-partii .pp-mobile-empty-action {
        display: inline-flex;
        min-height: 48px;
        align-items: center;
        justify-content: center;
        gap: 10px;
        padding: 12px 18px;
        border: 0;
        border-radius: 8px;
        background: #3855cf;
        color: #fff;
        font-size: 14px;
        line-height: 18px;
        font-weight: 700;
        letter-spacing: 0.02em;
        text-transform: uppercase;
        cursor: pointer;
    }
    .page-partii .pp-mobile-empty-action svg { width: 18px; height: 17px; stroke-width: 1.5; }
    .page-partii .pp-mobile-empty-action:active { background: #253d9f; }
    .page-partii .pp-mobile-empty-action:focus-visible { outline-color: #253d9f; outline-offset: 3px; }
}
