/* ============================================================
   Партнёры Безопасного Офиса · Components v1.0
   Зависит от tokens.css. Классы: .p-<компонент>[--<вариант>][.is-<состояние>]
   ============================================================ */
*,*:before,*:after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--p-font);font-size:var(--p-fs-body);line-height:var(--p-lh-body);color:var(--p-color-text);background:var(--p-color-bg);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1,"cv11" 1}
img,svg{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--p-color-focus);outline-offset:3px;border-radius:var(--p-r-xs)}
::selection{background:var(--p-color-accent);color:#fff}

/* ---------- Типографика ---------- */
.p-display{font-size:var(--p-fs-display);line-height:var(--p-lh-display);font-weight:var(--p-fw-black);letter-spacing:var(--p-ls-tighter);margin:0}
.p-h1{font-size:var(--p-fs-h1);line-height:var(--p-lh-h1);font-weight:var(--p-fw-black);letter-spacing:var(--p-ls-tighter);margin:0}
.p-h2{font-size:var(--p-fs-h2);line-height:var(--p-lh-h2);font-weight:var(--p-fw-bold);letter-spacing:var(--p-ls-tight);margin:0}
.p-h3{font-size:var(--p-fs-h3);line-height:var(--p-lh-h3);font-weight:var(--p-fw-bold);letter-spacing:var(--p-ls-tight);margin:0}
.p-h4{font-size:var(--p-fs-h4);line-height:var(--p-lh-h4);font-weight:var(--p-fw-semibold);margin:0}
.p-lead{font-size:var(--p-fs-lead);line-height:var(--p-lh-lead);color:var(--p-color-text-secondary);margin:0}
.p-body{font-size:var(--p-fs-body);line-height:var(--p-lh-body);margin:0}
.p-small{font-size:var(--p-fs-small);line-height:var(--p-lh-small);margin:0}
.p-caption{font-size:var(--p-fs-caption);line-height:var(--p-lh-caption);color:var(--p-color-text-secondary);margin:0}
.p-kicker{font-size:var(--p-fs-kicker);letter-spacing:var(--p-ls-kicker);text-transform:uppercase;font-weight:var(--p-fw-bold);color:var(--p-color-accent);margin:0}
.p-num{font-variant-numeric:tabular-nums;font-weight:var(--p-fw-black);letter-spacing:var(--p-ls-tight)}
.p-grad{background:var(--p-gradient-energy);-webkit-background-clip:text;background-clip:text;color:transparent}
.p-mono{font-family:var(--p-font-mono);font-size:13px}
.p-on-dark{color:var(--p-color-text-inverse)}.p-on-dark .p-lead,.p-on-dark .p-caption{color:var(--p-color-text-inverse-secondary)}.p-on-dark .p-kicker{color:var(--p-color-accent-on-dark)}

/* ---------- Ссылки ---------- */
.p-link{color:var(--p-color-accent);text-decoration:none;font-weight:var(--p-fw-semibold);background-image:linear-gradient(currentColor,currentColor);background-size:0 1.5px;background-repeat:no-repeat;background-position:0 100%;transition:background-size var(--p-dur-base) var(--p-ease-out),color var(--p-dur-fast)}
.p-link:hover,.p-link.is-hover{background-size:100% 1.5px;color:var(--p-color-accent-hover)}
.p-link:active,.p-link.is-active{color:var(--p-color-accent-active)}
.p-link.is-visited,.p-link:visited{color:var(--p-blue-700)}
.p-link--inline{font-weight:inherit;text-decoration:underline;text-decoration-color:rgba(31,91,255,.35);text-underline-offset:3px;background:none;transition:text-decoration-color var(--p-dur-fast)}
.p-link--inline:hover{text-decoration-color:currentColor}
.p-link--arrow{display:inline-flex;align-items:center;gap:6px;background:none}
.p-link--arrow svg{width:18px;height:18px;transition:transform var(--p-dur-base) var(--p-ease-out)}
.p-link--arrow:hover svg,.p-link--arrow.is-hover svg{transform:translateX(4px)}
.p-link--quiet{color:var(--p-color-text-secondary);font-weight:var(--p-fw-medium)}.p-link--quiet:hover{color:var(--p-color-text)}
.p-on-dark .p-link{color:var(--p-color-accent-on-dark)}.p-on-dark .p-link:hover{color:#fff}
.p-link.is-disabled{color:var(--p-color-text-muted);pointer-events:none;background:none}

/* ---------- Кнопки ---------- */
.p-btn{--h:var(--p-control-h-md);--px:24px;--fs:16px;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:var(--h);padding:0 var(--px);border-radius:var(--p-r-md);font:inherit;font-size:var(--fs);font-weight:var(--p-fw-bold);line-height:1;text-decoration:none;cursor:pointer;border:1.5px solid transparent;white-space:nowrap;user-select:none;position:relative;transition:background-color var(--p-dur-base) var(--p-ease-standard),color var(--p-dur-fast),border-color var(--p-dur-base),transform var(--p-dur-base) var(--p-ease-out),box-shadow var(--p-dur-base)}
.p-btn svg{width:20px;height:20px;flex:none;transition:transform var(--p-dur-base) var(--p-ease-out)}
.p-btn--sm{--h:var(--p-control-h-sm);--px:16px;--fs:14px;border-radius:var(--p-r-sm)}.p-btn--sm svg{width:16px;height:16px}
.p-btn--lg{--h:var(--p-control-h-lg);--px:32px;--fs:17px;border-radius:14px}
/* primary */
.p-btn--primary{background:var(--p-color-accent);color:#fff;box-shadow:var(--p-shadow-accent)}
.p-btn--primary:hover,.p-btn--primary.is-hover{background:var(--p-color-accent-hover);transform:translateY(-1px);box-shadow:0 16px 44px -10px rgba(31,91,255,.7)}
.p-btn--primary:hover svg{transform:translateX(3px)}
.p-btn--primary:active,.p-btn--primary.is-active{background:var(--p-color-accent-active);transform:translateY(0) scale(.98);box-shadow:0 6px 20px -10px rgba(31,91,255,.6)}
/* secondary */
.p-btn--secondary{background:var(--p-color-bg);color:var(--p-color-text);border-color:var(--p-color-border-strong)}
.p-btn--secondary:hover,.p-btn--secondary.is-hover{border-color:var(--p-color-text);transform:translateY(-1px)}
.p-btn--secondary:active,.p-btn--secondary.is-active{background:var(--p-gray-100);transform:scale(.98)}
/* soft */
.p-btn--soft{background:var(--p-color-accent-soft);color:var(--p-color-accent)}
.p-btn--soft:hover,.p-btn--soft.is-hover{background:#DCE6FF}.p-btn--soft:active{background:#CBDAFF}
/* ghost */
.p-btn--ghost{background:transparent;color:var(--p-color-accent)}
.p-btn--ghost:hover,.p-btn--ghost.is-hover{background:var(--p-color-accent-soft)}
/* on dark */
.p-btn--ghost-dark{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.18)}
.p-btn--ghost-dark:hover,.p-btn--ghost-dark.is-hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.35)}
/* tier3 */
.p-btn--tier3{background:var(--p-color-tier3);color:#fff;box-shadow:var(--p-shadow-tier3)}
.p-btn--tier3:hover{background:var(--p-violet-600);transform:translateY(-1px)}
/* alarm */
.p-btn--alarm{background:var(--p-color-alarm);color:#fff}.p-btn--alarm:hover{background:#B8131A}
/* states */
.p-btn:focus-visible,.p-btn.is-focus{outline:2px solid var(--p-color-focus);outline-offset:3px}
.p-btn:disabled,.p-btn.is-disabled{background:var(--p-gray-100);color:var(--p-color-text-muted);border-color:transparent;box-shadow:none;transform:none;cursor:not-allowed}
.p-btn.is-loading{color:transparent;pointer-events:none}
.p-btn.is-loading:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;animation:p-spin .7s linear infinite}
.p-btn--secondary.is-loading:after{border-color:rgba(20,23,34,.2);border-top-color:var(--p-color-text)}
@keyframes p-spin{to{transform:rotate(360deg)}}
.p-btn--icon{--px:0;width:var(--h);border-radius:var(--p-r-md)}
.p-btn--block{width:100%}
.p-btn-group{display:inline-flex;gap:12px;flex-wrap:wrap;align-items:center}

/* ---------- Поля ---------- */
.p-field{display:flex;flex-direction:column;gap:6px}
.p-label{font-size:var(--p-fs-small);font-weight:var(--p-fw-semibold);color:var(--p-color-text)}
.p-label .req{color:var(--p-color-error);margin-left:2px}
.p-hint{font-size:var(--p-fs-caption);line-height:var(--p-lh-caption);color:var(--p-color-text-secondary)}
.p-input{height:var(--p-control-h-md);padding:0 14px;border:1.5px solid var(--p-color-border-strong);border-radius:var(--p-r-md);font:inherit;font-size:16px;color:var(--p-color-text);background:#fff;width:100%;transition:border-color var(--p-dur-base),box-shadow var(--p-dur-base),background var(--p-dur-base)}
.p-input::placeholder{color:var(--p-color-text-muted)}
.p-input:hover,.p-input.is-hover{border-color:var(--p-gray-700)}
.p-input:focus,.p-input.is-focus{outline:none;border-color:var(--p-color-accent);box-shadow:0 0 0 4px rgba(31,91,255,.15)}
.p-input.is-error{border-color:var(--p-color-error);box-shadow:0 0 0 4px rgba(180,35,24,.12)}
.p-input.is-success{border-color:var(--p-color-success)}
.p-input:disabled,.p-input.is-disabled{background:var(--p-gray-100);color:var(--p-color-text-muted);border-color:var(--p-color-border);cursor:not-allowed}
textarea.p-input{height:auto;min-height:112px;padding:12px 14px;resize:vertical;line-height:var(--p-lh-body)}
.p-field .p-error{font-size:var(--p-fs-caption);color:var(--p-color-error);font-weight:var(--p-fw-medium)}
.p-select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23606574' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 12px center;padding-right:40px}
.p-input-group{display:flex;align-items:center;border:1.5px solid var(--p-color-border-strong);border-radius:var(--p-r-md);overflow:hidden;background:#fff;transition:border-color var(--p-dur-base),box-shadow var(--p-dur-base)}
.p-input-group:focus-within{border-color:var(--p-color-accent);box-shadow:0 0 0 4px rgba(31,91,255,.15)}
.p-input-group .p-input{border:0;box-shadow:none}.p-input-group .p-input:focus{box-shadow:none}
.p-input-group .addon{padding:0 14px;color:var(--p-color-text-secondary);font-size:14px;white-space:nowrap;border-left:1.5px solid var(--p-color-border)}
/* check / radio / toggle */
.p-check{display:inline-flex;align-items:flex-start;gap:12px;cursor:pointer;font-size:var(--p-fs-small);line-height:20px}
.p-check input{position:absolute;opacity:0;width:0;height:0}
.p-check .box{width:20px;height:20px;flex:none;border:1.5px solid var(--p-color-border-strong);border-radius:6px;background:#fff;display:grid;place-items:center;transition:all var(--p-dur-base) var(--p-ease-out)}
.p-check .box svg{width:14px;height:14px;stroke:#fff;stroke-width:3;fill:none;opacity:0;transform:scale(.6);transition:all var(--p-dur-base) var(--p-ease-spring)}
.p-check input:checked+.box{background:var(--p-color-accent);border-color:var(--p-color-accent)}
.p-check input:checked+.box svg{opacity:1;transform:scale(1)}
.p-check input:focus-visible+.box{outline:2px solid var(--p-color-focus);outline-offset:2px}
.p-check--radio .box{border-radius:50%}.p-check--radio .box svg{display:none}
.p-check--radio input:checked+.box{background:#fff;border-width:6px}
.p-toggle{position:relative;width:44px;height:26px;border-radius:999px;background:var(--p-gray-300);transition:background var(--p-dur-base);flex:none;cursor:pointer}
.p-toggle:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform var(--p-dur-base) var(--p-ease-spring);box-shadow:0 2px 6px rgba(0,0,0,.2)}
.p-toggle.is-on{background:var(--p-color-accent)}.p-toggle.is-on:after{transform:translateX(18px)}

/* ---------- Карточки ---------- */
.p-card{background:#fff;border:1px solid var(--p-color-border);border-radius:var(--p-r-xl);padding:28px;transition:transform var(--p-dur-slow) var(--p-ease-out),box-shadow var(--p-dur-slow),border-color var(--p-dur-base)}
.p-card--interactive{cursor:pointer}
.p-card--interactive:hover,.p-card--interactive.is-hover{transform:translateY(-4px);box-shadow:var(--p-shadow-card-hover);border-color:transparent}
.p-card--dark{background:var(--p-color-bg-dark);color:#fff;border-color:transparent}
.p-card--dark .p-caption,.p-card--dark .p-lead{color:var(--p-color-text-inverse-secondary)}
.p-card--accent{border-left:4px solid var(--p-color-accent);border-radius:0 var(--p-r-xl) var(--p-r-xl) 0}
.p-card--tier3{background:var(--p-color-bg-dark);color:#fff;border-color:transparent;position:relative;overflow:hidden}
.p-card--tier3:after{content:"";position:absolute;width:320px;height:320px;border-radius:50%;background:var(--p-color-tier3);filter:blur(90px);opacity:.5;right:-120px;bottom:-140px;pointer-events:none}
.p-card--tier3>*{position:relative}
.p-card--flat{border:0;background:var(--p-color-bg-section)}

/* ---------- Чипы и статусы ---------- */
.p-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:var(--p-r-pill);font-size:13px;font-weight:var(--p-fw-semibold);line-height:1;white-space:nowrap}
.p-chip i{width:6px;height:6px;border-radius:50%;background:currentColor}
.p-chip--neutral{background:var(--p-gray-100);color:var(--p-gray-700)}
.p-chip--accent{background:var(--p-color-accent-soft);color:var(--p-color-accent)}
.p-chip--success{background:var(--p-color-success-soft);color:var(--p-color-success)}
.p-chip--warning{background:var(--p-color-warning-soft);color:var(--p-color-warning)}
.p-chip--error{background:var(--p-color-error-soft);color:var(--p-color-error)}
.p-chip--tier3{background:var(--p-color-tier3-soft);color:var(--p-color-tier3)}
.p-chip--dark{background:rgba(255,255,255,.1);color:#fff}
.p-chip--outline{background:transparent;border:1.5px solid currentColor}
.p-tag{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:var(--p-r-xs);font-size:12px;font-weight:var(--p-fw-semibold);background:var(--p-gray-100);color:var(--p-gray-700)}

/* ---------- Знак статуса партнёра ---------- */
.p-badge{display:inline-flex;align-items:center;gap:12px;height:72px;padding:0 16px 0 14px;border-radius:var(--p-r-md);background:#fff;border:1px solid var(--p-color-border);position:relative;overflow:hidden;color:var(--p-color-text);text-decoration:none;box-shadow:var(--p-shadow-card);transition:transform var(--p-dur-base) var(--p-ease-out),box-shadow var(--p-dur-base)}
.p-badge:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--p-color-accent)}
.p-badge:hover{transform:translateY(-2px);box-shadow:var(--p-shadow-card-hover)}
.p-badge svg{width:44px;height:27px;flex:none}
.p-badge .t b{display:block;font-size:13px;line-height:1.15;letter-spacing:-.01em}.p-badge .t span{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--p-color-text-secondary);font-weight:var(--p-fw-semibold)}
.p-badge .yr{font-size:11px;font-weight:var(--p-fw-black);color:var(--p-color-accent);background:var(--p-color-accent-soft);border-radius:var(--p-r-pill);padding:4px 9px;margin-left:8px}
.p-badge--tier3:before{background:var(--p-gradient-energy);width:6px}.p-badge--tier3 .yr{color:var(--p-color-tier3);background:var(--p-color-tier3-soft)}
.p-badge--dark{background:var(--p-color-bg-dark-2);border-color:var(--p-color-border-on-dark);color:#fff}.p-badge--dark .t span{color:#8F9BBD}.p-badge--dark .yr{background:rgba(110,168,255,.15);color:var(--p-color-accent-on-dark)}
.p-badge--sm{height:56px;gap:10px}.p-badge--sm svg{width:34px;height:21px}.p-badge--sm .t b{font-size:12px}

/* ---------- Прогресс ---------- */
.p-progress{height:8px;background:var(--p-color-accent-soft);border-radius:4px;overflow:hidden}
.p-progress i{display:block;height:100%;width:var(--v,50%);background:var(--p-gradient-energy);border-radius:4px;transition:width var(--p-dur-count) var(--p-ease-out)}
.p-quarters{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.p-quarters div{border:1.5px solid var(--p-color-border);border-radius:var(--p-r-sm);padding:10px 12px;font-size:13px;color:var(--p-color-text-secondary)}
.p-quarters div b{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--p-color-accent);margin-bottom:4px}
.p-quarters div.is-done{border-color:var(--p-color-accent);background:var(--p-color-accent-soft);color:var(--p-color-text)}
.p-quarters div.is-current{border-style:dashed;border-color:var(--p-color-accent)}
.p-ring{width:150px;height:150px;position:relative}.p-ring svg{transform:rotate(-90deg)}.p-ring .c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.p-ring .c b{font-size:28px;font-weight:var(--p-fw-black);letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1}.p-ring .c span{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--p-color-text-secondary);font-weight:var(--p-fw-bold);max-width:70%;text-align:center;line-height:1.3;margin-top:4px}
.p-stepper{display:flex;gap:8px;align-items:center}
.p-stepper .s{flex:1;height:4px;border-radius:2px;background:var(--p-color-border)}.p-stepper .s.is-done{background:var(--p-color-accent)}.p-stepper .s.is-current{background:var(--p-gradient-energy)}

/* ---------- Таблица ---------- */
.p-table{width:100%;border-collapse:collapse;font-size:var(--p-fs-small)}
.p-table th{text-align:left;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--p-color-text-secondary);font-weight:var(--p-fw-bold);padding:12px 14px;border-bottom:1.5px solid var(--p-color-border)}
.p-table td{padding:14px;border-bottom:1px solid var(--p-color-border);vertical-align:middle}
.p-table tr:hover td{background:var(--p-color-bg-section)}
.p-table td.num{font-variant-numeric:tabular-nums;font-weight:var(--p-fw-semibold);text-align:right}
.p-table .muted{color:var(--p-color-text-secondary)}

/* ---------- Алерты, тосты ---------- */
.p-alert{display:flex;gap:12px;padding:14px 16px;border-radius:var(--p-r-md);font-size:var(--p-fs-small);border:1px solid;align-items:flex-start}
.p-alert svg{width:20px;height:20px;flex:none}
.p-alert--info{background:var(--p-color-accent-soft);border-color:transparent;color:var(--p-blue-700)}
.p-alert--success{background:var(--p-color-success-soft);border-color:transparent;color:var(--p-color-success)}
.p-alert--warning{background:var(--p-color-warning-soft);border-color:transparent;color:var(--p-color-warning)}
.p-alert--error{background:var(--p-color-error-soft);border-color:transparent;color:var(--p-color-error)}
.p-alert b{display:block;margin-bottom:2px}
.p-toast{display:inline-flex;align-items:center;gap:12px;background:var(--p-color-bg-dark);color:#fff;padding:12px 16px;border-radius:var(--p-r-md);font-size:14px;box-shadow:var(--p-shadow-modal);animation:p-toast-in var(--p-dur-slow) var(--p-ease-out)}
.p-toast .ok{width:8px;height:8px;border-radius:50%;background:#4ADE80;box-shadow:0 0 10px #4ADE80}
@keyframes p-toast-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* ---------- Навигация ---------- */
.p-header{display:flex;align-items:center;gap:32px;height:72px;padding:0 32px;background:var(--p-color-bg-dark);color:#fff;border-radius:var(--p-r-lg)}
.p-header .logo{height:32px;filter:brightness(0) invert(1)}
.p-nav{display:flex;gap:4px;margin-left:auto}
.p-nav a{color:#B9C3DD;text-decoration:none;font-size:15px;font-weight:var(--p-fw-medium);padding:8px 12px;border-radius:var(--p-r-sm);transition:color var(--p-dur-fast),background var(--p-dur-base)}
.p-nav a:hover{color:#fff;background:rgba(255,255,255,.08)}.p-nav a.is-active{color:#fff;background:rgba(255,255,255,.12)}
.p-side{width:240px;background:var(--p-color-bg-dark);color:#fff;border-radius:var(--p-r-lg);padding:20px 12px;display:flex;flex-direction:column;gap:4px}
.p-side a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--p-r-sm);color:#B9C3DD;text-decoration:none;font-size:14px;font-weight:var(--p-fw-medium);transition:all var(--p-dur-base)}
.p-side a svg{width:20px;height:20px}
.p-side a:hover{color:#fff;background:rgba(255,255,255,.08)}
.p-side a.is-active{color:#fff;background:var(--p-color-accent);box-shadow:var(--p-shadow-accent)}
.p-tabs{display:flex;gap:4px;border-bottom:1.5px solid var(--p-color-border)}
.p-tabs a{padding:12px 16px;margin-bottom:-1.5px;color:var(--p-color-text-secondary);text-decoration:none;font-weight:var(--p-fw-semibold);font-size:15px;border-bottom:2px solid transparent;transition:all var(--p-dur-base)}
.p-tabs a:hover{color:var(--p-color-text)}.p-tabs a.is-active{color:var(--p-color-accent);border-bottom-color:var(--p-color-accent)}
.p-crumbs{display:flex;gap:8px;font-size:13px;color:var(--p-color-text-secondary);align-items:center}
.p-crumbs a{color:inherit;text-decoration:none}.p-crumbs a:hover{color:var(--p-color-accent)}.p-crumbs b{color:var(--p-color-text);font-weight:var(--p-fw-semibold)}
.p-pager{display:inline-flex;gap:6px}.p-pager a{min-width:40px;height:40px;display:grid;place-items:center;border-radius:var(--p-r-sm);color:var(--p-color-text);text-decoration:none;font-weight:var(--p-fw-semibold);font-size:14px;border:1.5px solid transparent;transition:all var(--p-dur-base)}
.p-pager a:hover{border-color:var(--p-color-border-strong)}.p-pager a.is-active{background:var(--p-color-accent);color:#fff}

/* ---------- Модальное окно, тултип ---------- */
.p-modal{width:520px;max-width:100%;background:#fff;border-radius:var(--p-r-2xl);padding:32px;box-shadow:var(--p-shadow-modal);animation:p-modal-in var(--p-dur-slow) var(--p-ease-out)}
@keyframes p-modal-in{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
.p-modal .close{position:absolute;right:16px;top:16px}
.p-overlay{background:rgba(10,9,41,.6);backdrop-filter:blur(6px);padding:40px;border-radius:var(--p-r-xl);display:grid;place-items:center;position:relative}
.p-tip{display:inline-block;background:var(--p-color-bg-dark);color:#fff;font-size:13px;padding:8px 12px;border-radius:var(--p-r-sm);position:relative}
.p-tip:after{content:"";position:absolute;left:50%;bottom:-5px;width:10px;height:10px;background:var(--p-color-bg-dark);transform:translateX(-50%) rotate(45deg)}

/* ---------- Пустое состояние ---------- */
.p-empty{text-align:center;padding:48px 24px;border:1.5px dashed var(--p-color-border);border-radius:var(--p-r-xl)}
.p-empty .ill{width:96px;height:96px;margin:0 auto 16px;border-radius:50%;background:var(--p-color-accent-soft);display:grid;place-items:center;color:var(--p-color-accent)}

/* ---------- Движение: утилиты ---------- */
.p-reveal{opacity:0;transform:translateY(16px);transition:opacity var(--p-dur-enter) var(--p-ease-out),transform var(--p-dur-enter) var(--p-ease-out)}
.p-reveal.is-in{opacity:1;transform:none}
.p-skeleton{background:linear-gradient(90deg,var(--p-gray-100) 25%,#fff 50%,var(--p-gray-100) 75%);background-size:200% 100%;animation:p-shimmer 1.4s linear infinite;border-radius:var(--p-r-sm)}
@keyframes p-shimmer{to{background-position:-200% 0}}
.p-glow{position:relative}.p-glow:before{content:"";position:absolute;inset:-2px;border-radius:inherit;background:var(--p-gradient-energy);filter:blur(14px);opacity:0;transition:opacity var(--p-dur-slow);z-index:-1}
.p-glow:hover:before{opacity:.6}

/* ---------- Сетка ---------- */
.p-container{max-width:var(--p-container);margin:0 auto;padding:0 var(--p-gutter)}
.p-grid{display:grid;gap:var(--p-gutter)}
.p-grid--2{grid-template-columns:repeat(2,1fr)}.p-grid--3{grid-template-columns:repeat(3,1fr)}.p-grid--4{grid-template-columns:repeat(4,1fr)}.p-grid--12{grid-template-columns:repeat(12,1fr)}
@media (max-width:1024px){.p-grid--4{grid-template-columns:repeat(2,1fr)}.p-grid--3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:768px){.p-grid--2,.p-grid--3,.p-grid--4{grid-template-columns:1fr}:root{--p-fs-display:40px;--p-lh-display:44px;--p-fs-h1:32px;--p-lh-h1:36px;--p-fs-h2:26px;--p-lh-h2:32px}}

/* ---------- Калькулятор дохода ---------- */
.p-calc{border-radius:var(--p-r-xl);padding:28px;background:#fff;border:1px solid var(--p-color-border)}
.p-calc[data-theme=dark]{background:rgba(255,255,255,.05);border-color:var(--p-color-border-on-dark);color:#fff;backdrop-filter:blur(8px)}
.pc-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:32px}
.pc-in label{display:grid;grid-template-columns:1fr auto;gap:6px 12px;margin-bottom:18px;font-size:14px}
.pc-in label span{color:var(--p-color-text-secondary)}.p-calc[data-theme=dark] .pc-in label span{color:var(--p-color-text-inverse-secondary)}
.pc-in label b{font-variant-numeric:tabular-nums;font-size:15px}
.pc-in input[type=range]{grid-column:1/3;width:100%;accent-color:var(--p-color-accent);height:28px}
.pc-note{font-size:13px;color:var(--p-color-text-secondary);border-left:3px solid var(--p-color-accent);padding-left:12px;margin:8px 0 0;line-height:1.45}
.p-calc[data-theme=dark] .pc-note{color:var(--p-color-text-inverse-secondary)}
.pc-kpis{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:18px}
.pc-kpis div{padding:14px 16px;border-radius:var(--p-r-md);background:var(--p-color-bg-section)}
.p-calc[data-theme=dark] .pc-kpis div{background:rgba(255,255,255,.06)}
.pc-kpis b{display:block;font-size:24px;font-weight:var(--p-fw-black);letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.1}
.pc-kpis span{font-size:12px;color:var(--p-color-text-secondary);display:block;margin-top:4px;line-height:1.3}
.p-calc[data-theme=dark] .pc-kpis span{color:#8F9BBD}
.pc-kpis .hl{background:var(--p-color-bg-dark);color:#fff}.pc-kpis .hl span{color:#B9C3DD}
.p-calc[data-theme=dark] .pc-kpis .hl{background:var(--p-gradient-energy)}.p-calc[data-theme=dark] .pc-kpis .hl span{color:rgba(255,255,255,.85)}
.pc-chart{display:flex;align-items:flex-end;gap:4px;height:96px;padding:0 2px;border-bottom:1px solid var(--p-color-border)}
.p-calc[data-theme=dark] .pc-chart{border-color:var(--p-color-border-on-dark)}
.pc-chart i{flex:1;background:var(--p-gradient-energy);border-radius:3px 3px 0 0;opacity:.9;transition:height var(--p-dur-slow) var(--p-ease-out)}
.pc-cap{font-size:12px;color:var(--p-color-text-secondary);margin:10px 0 0;line-height:1.45}
.p-calc[data-theme=dark] .pc-cap{color:#8F9BBD}
@media (max-width:768px){.pc-grid{grid-template-columns:1fr}.pc-kpis{grid-template-columns:1fr}}
