/* Partner portal (Figma page 18: 434:293 … 448:4210). Content column 1200px (layout .pcontent); all classes prefixed .ptl. */

.ptl .ptl-head { margin: -8px 0 24px; align-items: flex-start; }
.ptl .ptl-head .page-header__actions { margin-top: 8px; }
.ptl .ptl-head .page-header__title { font: 700 22px/32px var(--font-family); }
.ptl .ptl-head .page-header__sub { font: var(--text-small); margin-top: 4px; }
.ptl .ptl-btn-lg { height: 40px; padding: 0 16px; }
.ptl-muted { color: var(--color-text-muted); font: var(--text-small); }
.ptl-small { font: var(--text-small); }
.ptl-mt4 { margin: 4px 0 0; }
.ptl-nowrap { white-space: nowrap; }
.ptl-foot { margin: 16px 0 0; font: var(--text-small); color: var(--color-text-muted); }
.ptl-foot--center { text-align: center; margin-top: 32px; }
.ptl-link { display: inline-flex; align-items: center; gap: 6px; font: var(--text-body-strong); color: var(--color-text-brand); white-space: nowrap; }
.ptl-link .icon { width: 18px; height: 18px; }
.ptl-link:hover { text-decoration: none; color: var(--color-link-hover); }

/* ---------- KPI cards ---------- */
.ptl-kpis { display: grid; gap: 16px; margin-block-end: 24px; }
.ptl-kpis--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.ptl-kpis--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ptl-kpi { padding: 20px; display: flex; flex-direction: column; gap: 16px; min-height: 172px; }
.ptl-kpi__top { display: flex; justify-content: space-between; align-items: flex-start; }
.ptl-kpi__label { font: var(--text-small); color: var(--color-text-secondary); padding-top: 6px; }
.ptl-kpi__icon { width: 36px; height: 36px; border-radius: var(--radius-md); background: var(--color-gray-100); color: var(--color-text-brand); display: grid; place-items: center; flex: none; }
.ptl-kpi__icon .icon { width: 20px; height: 20px; }
.ptl-kpi__value { display: flex; align-items: baseline; gap: 8px; }
.ptl-kpi__value b { font: 700 32px/44px var(--font-family); color: var(--color-text-primary); }
.ptl-kpi__value span { font: var(--text-small); color: var(--color-text-secondary); }
.ptl-kpi__bottom { display: flex; align-items: center; gap: 4px; margin-top: auto; min-width: 0; }
.ptl-kpi__sub { font: 400 11px/16px var(--font-family); color: var(--color-text-muted); white-space: nowrap; flex: none; }
.ptl-kpi__spark { margin-inline-start: auto; display: flex; flex: 0 1 96px; min-width: 40px; overflow: hidden; justify-content: flex-end; }
.ptl-trend { display: inline-flex; align-items: center; gap: 2px; height: 20px; padding: 0 6px; border-radius: var(--radius-full); background: var(--color-gray-100); color: var(--color-text-secondary); font: var(--text-caption); flex: none; }
.ptl-trend .icon { width: 12px; height: 12px; }
.ptl-trend--up { background: var(--tone-green-bg); color: var(--color-success); }
.ptl-trend--down { background: var(--tone-red-bg); color: var(--color-danger); }

/* ---------- «پله فروش شما» ---------- */
.ptl-tier { padding: 28px; margin-block-end: 24px; display: flex; flex-direction: column; gap: 16px; }
.ptl-tier__head { display: flex; align-items: center; gap: 16px; }
.ptl-tier__star { width: 44px; height: 44px; border-radius: 50%; background: var(--color-brand-amber-50); color: var(--color-brand-amber); display: grid; place-items: center; flex: none; }
.ptl-tier__star .icon { width: 22px; height: 22px; }
.ptl-tier__title { font: 700 18px/28px var(--font-family); margin: 0; }
.ptl-tier__sub { margin: 4px 0 0; font: var(--text-body); color: var(--color-text-secondary); }
.ptl-tier__banner { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-radius: var(--radius-md); background: var(--color-brand-amber-50); font: var(--text-body-strong); color: var(--color-text-primary); }
.ptl-tier__banner .icon { width: 20px; height: 20px; color: var(--color-text-brand); flex: none; }
.ptl-tier__plan { align-self: flex-start; display: inline-flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 6px 12px; border: 1px solid var(--color-border); border-radius: var(--radius-md); font: var(--text-caption); font-weight: 400; color: var(--color-text-secondary); }
.ptl-tier__ver { display: inline-flex; align-items: center; gap: 4px; padding: 0 6px; height: 20px; border-radius: var(--radius-sm); background: var(--color-gray-100); color: var(--color-text-primary); font: var(--text-caption); }
.ptl-tier__ver .icon { width: 12px; height: 12px; }
.ptl-tier__row { display: flex; justify-content: space-between; align-items: stretch; gap: 16px; margin-top: 4px; }
.ptl-tier__now { min-width: 144px; padding: 14px 16px; border: 1px solid var(--color-border); border-radius: var(--radius-lg); display: flex; flex-direction: column; gap: 4px; }
.ptl-tier__mw { display: flex; align-items: baseline; gap: 6px; }
.ptl-tier__mw b { font: 700 32px/44px var(--font-family); }
.ptl-tier__mw span { font: var(--text-small); color: var(--color-text-secondary); }
.ptl-tier__next { width: 198px; padding: 22px 16px; border-radius: var(--radius-lg); background: var(--color-brand-navy-50); border: 1px solid var(--color-gray-200); display: flex; flex-direction: column; justify-content: center; gap: 6px; }
.ptl-tier__next b { font: 700 15px/24px var(--font-family); color: var(--color-text-primary); }
.ptl-chip { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; height: 22px; padding: 0 8px; border-radius: var(--radius-full); font: var(--text-caption); }
.ptl-chip--amber { background: var(--color-brand-amber-50); color: var(--color-text-primary); }
.ptl-chip--amber::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--color-brand-amber); }

.ptl-bar { position: relative; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 6px; margin-top: 30px; }
.ptl-bar__seg { height: 10px; border-radius: var(--radius-full); background: var(--color-gray-200); overflow: hidden; display: flex; }
.ptl-bar__seg i { display: block; height: 100%; background: var(--color-brand-amber); border-radius: var(--radius-full); }
.ptl-bar__marker { position: absolute; top: 50%; transform: translate(50%, -50%); display: flex; flex-direction: column; align-items: center; }
.ptl-bar__marker i { width: 14px; height: 14px; background: var(--color-brand-amber); border: 2px solid var(--color-surface-card); transform: rotate(45deg); box-shadow: 0 1px 3px rgba(15, 23, 42, .25); }
.ptl-bar__bubble { position: absolute; bottom: calc(100% + 6px); padding: 0 8px; height: 22px; display: grid; place-items: center; border-radius: var(--radius-full); background: var(--color-brand-navy); color: #fff; font: var(--text-caption); white-space: nowrap; }
.ptl-steps { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 6px; }
.ptl-step { padding: 10px 12px; border: 1px solid var(--color-border); border-radius: var(--radius-md); display: flex; flex-direction: column; gap: 2px; background: var(--color-surface-card); }
.ptl-step span { font: var(--text-caption); font-weight: 400; color: var(--color-text-secondary); }
.ptl-step b { font: 700 14px/22px var(--font-family); color: var(--color-text-muted); }
.ptl-step.is-done { background: var(--color-gray-50); }
.ptl-step.is-done b { color: var(--color-text-primary); }
.ptl-step.is-current { background: var(--color-brand-amber-50); border-color: var(--color-brand-amber); }
.ptl-step.is-current b { color: var(--color-brand-orange); }
.ptl-note-box { margin: 0; padding: 10px 16px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-gray-50); font: var(--text-caption); font-weight: 400; color: var(--color-text-secondary); }

/* ---------- cards + tables ---------- */
.ptl-card { margin-block-end: 24px; overflow: visible; }
.ptl-card--table { margin-block-end: 0; }
.ptl-pad { padding: 24px; }
.ptl-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 20px 24px 16px; }
.ptl-card__head h2 { font: 700 16px/26px var(--font-family); margin: 0; }
.ptl-card__head p { font: var(--text-small); color: var(--color-text-secondary); margin: 4px 0 0; }
.ptl-card__row { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.ptl-table th { background: var(--color-gray-50); font-weight: 400; color: var(--color-text-secondary); }
.ptl-table td { height: 48px; }
.ptl-table .cell-stack b { font: var(--text-body-strong); color: var(--color-text-primary); }
.ptl-table .cell-stack .sub { font: var(--text-small); color: var(--color-text-secondary); }
.ptl-table .menu-wrap { position: relative; }
.ptl-table .menu { position: absolute; z-index: 30; left: 0; right: auto; min-width: 220px; }
.ptl-who { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.ptl-who .avatar-sm { width: 22px; height: 22px; font-size: 10px; }

/* ---------- lead list: tabs + toolbar ---------- */
.ptl-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--color-border); margin-block-end: 20px; }
.ptl-tab { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 14px; color: var(--color-text-secondary); font: var(--text-body); border-bottom: 2px solid transparent; margin-block-end: -1px; }
.ptl-tab:hover { color: var(--color-text-primary); text-decoration: none; }
.ptl-tab.is-active { color: var(--color-text-brand); font: 700 14px/24px var(--font-family); border-bottom-color: var(--color-brand-amber); }
.ptl-tab__count { min-width: 22px; height: 20px; padding: 0 6px; display: inline-grid; place-items: center; border-radius: var(--radius-full); background: var(--color-gray-100); font: var(--text-caption); color: var(--color-text-secondary); }
.ptl-tab.is-active .ptl-tab__count { background: var(--color-brand-navy-50); color: var(--color-text-brand); }
.ptl-toolbar { display: flex; align-items: center; gap: 8px; margin-block-end: 20px; flex-wrap: wrap; }
.ptl-search { position: relative; width: 280px; display: block; }
.ptl-search .icon { position: absolute; inset-inline-start: 12px; top: 10px; width: 20px; height: 20px; color: var(--color-gray-500); pointer-events: none; }
.ptl-search .input { height: 40px; padding-inline-start: 40px; }
.ptl-fchip { position: relative; display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border: 1px solid var(--color-border); border-radius: var(--radius-full); background: var(--color-gray-100); font: var(--text-small); color: var(--color-text-secondary); }
.ptl-fchip select { field-sizing: content; appearance: none; border: 0; background: transparent; font: var(--text-small); font-weight: 600; color: var(--color-text-primary); padding: 0; cursor: pointer; }
.ptl-fchip .icon { width: 14px; height: 14px; }
.ptl-fchip a { display: inline-flex; color: var(--color-text-secondary); }
.ptl-fchip--dashed { background: var(--color-surface-card); border-style: dashed; }
.ptl-fchip--dashed select { font-weight: 400; color: var(--color-text-secondary); }
.ptl-fchip--dashed.is-on { border-style: solid; background: var(--color-gray-100); }
.ptl-fchip--dashed.is-on select { font-weight: 600; color: var(--color-text-primary); }
.ptl-addfilter { font: var(--text-body-strong); color: var(--color-text-primary); }
.ptl-perpage select { border: 0; background: transparent; font: var(--text-body-strong); color: var(--color-text-primary); }

/* ---------- lead registration ---------- */
.ptl-newlead { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 24px; align-items: start; }
.ptl-form { padding: 24px; }
.ptl-form__title { font: 700 16px/26px var(--font-family); margin: 0 0 20px; }
.ptl-pad .ptl-form__title { margin: 0; }
.ptl-form__grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 16px; row-gap: 20px; }
.ptl-form__grid .field { margin: 0; }
.ptl-span { grid-column: 1 / -1; }
.ptl-form__actions { display: flex; gap: 8px; margin-top: 20px; }
.ptl-form__actions .btn { height: 40px; padding: 0 16px; }
.ptl-affix input { direction: ltr; text-align: left; }
.ptl-affix--unit input { direction: rtl; text-align: right; }
.ptl-textarea { position: relative; }
.ptl-textarea .textarea { min-height: 96px; height: 96px; padding-bottom: 28px; resize: none; width: 100%; display: block; }
.ptl-counter { position: absolute; inset-inline-end: 12px; bottom: 8px; font: var(--text-caption); font-weight: 400; color: var(--color-text-muted); }
.ptl-dup { display: flex; align-items: flex-start; gap: 12px; margin-block-end: 20px; }
.ptl-dup > .icon { width: 20px; height: 20px; color: var(--color-danger); flex: none; margin-top: 2px; }
.ptl-tips { padding: 24px; }
.ptl-tip { display: flex; gap: 12px; align-items: flex-start; }
.ptl-tip + .ptl-tip { margin-top: 18px; }
.ptl-tip__icon { width: 36px; height: 36px; border-radius: 50%; background: var(--color-gray-100); color: var(--color-text-brand); display: grid; place-items: center; flex: none; }
.ptl-tip__icon .icon { width: 18px; height: 18px; }
.ptl-tip b { font: 700 14px/22px var(--font-family); }
.ptl-tip p { margin: 4px 0 0; font: var(--text-small); color: var(--color-text-secondary); }

/* ---------- modals / drawer ---------- */
.ptl-modal { width: min(560px, 100%); }
.ptl-modal__ctx { display: flex; flex-direction: column; gap: 6px; padding: 16px; margin-block-end: 20px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-gray-50); }
.ptl-modal__ctx b { font: 700 14px/22px var(--font-family); }
.ptl-modal__ctx span { font: var(--text-small); color: var(--color-text-secondary); }
.ptl-modal__body .field + .field, .ptl-modal .modal__body .field + .field { margin-top: 20px; }
.ptl-pw { display: flex; gap: 8px; }
.ptl-pw .input { flex: 1; }
.ptl-pw .btn { height: 40px; white-space: nowrap; }
.ptl-info { display: flex; align-items: flex-start; gap: 12px; }
.ptl-info > .icon { width: 20px; height: 20px; color: var(--color-info); flex: none; margin-top: 2px; }
.ptl-drawer .drawer__body .field + .field { margin-top: 20px; }
.ptl-drawer .alert { margin-top: 16px; }

/* ---------- agreement ---------- */
.ptl-agree { display: grid; grid-template-columns: minmax(0, 1fr) 456px; gap: 24px; align-items: start; }
.ptl-agree__main { display: flex; flex-direction: column; gap: 24px; }
.ptl-agree__main .ptl-card, .ptl-agree__plan { margin: 0; }
.ptl-file { display: flex; align-items: center; gap: 12px; margin-top: 20px; padding: 12px; border: 1px solid var(--color-border); border-radius: var(--radius-md); color: var(--color-text-primary); }
.ptl-file:hover { text-decoration: none; background: var(--color-gray-50); }
.ptl-file__icon { width: 36px; height: 36px; border-radius: var(--radius-md); background: var(--tone-green-bg); color: var(--color-success); display: grid; place-items: center; flex: none; }
.ptl-file__icon .icon { width: 20px; height: 20px; }
.ptl-file__dl { margin-inline-start: auto; color: var(--color-text-secondary); display: flex; }
.ptl-file__dl .icon { width: 20px; height: 20px; }
.ptl-file--empty .ptl-file__icon { background: var(--color-gray-100); color: var(--color-gray-500); }
.ptl-kv { margin: 16px 0 0; }
.ptl-kv > div { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 49px; border-bottom: 1px solid var(--color-border); }
.ptl-kv dt { font: var(--text-body); color: var(--color-text-secondary); }
.ptl-kv dd { margin: 0; font: 700 14px/22px var(--font-family); color: var(--color-text-primary); }
.ptl-kv--plan dd { font-variant-numeric: tabular-nums; }
.ptl-agree__plan .ptl-small { margin: 12px 0 0; }
.ptl-progress { margin-top: 20px; }
.ptl-progress__top { display: flex; justify-content: space-between; font: var(--text-small); color: var(--color-text-secondary); margin-block-end: 8px; }
.ptl-progress__top b { color: var(--color-text-primary); }
.ptl-progress__bar { height: 8px; border-radius: var(--radius-full); background: var(--color-gray-200); overflow: hidden; display: flex; }
.ptl-progress__bar i { display: block; height: 100%; background: var(--color-brand-navy); border-radius: var(--radius-full); }
.ptl-progress + .ptl-muted { margin: 12px 0 0; }

/* ---------- PDF catalogs ---------- */
.ptl-pdfs { display: flex; flex-direction: column; gap: 12px; }
.ptl-pdf { display: flex; align-items: center; gap: 16px; padding: 16px 20px 16px 20px; }
.ptl-pdf__icon { width: 48px; height: 48px; border-radius: var(--radius-md); background: var(--color-gray-100); color: var(--color-gray-600); display: grid; place-items: center; flex: none; }
.ptl-pdf__icon .icon { width: 22px; height: 22px; }
.ptl-pdf__body { flex: 1; min-width: 0; }
.ptl-pdf__body h3 { margin: 0; font: 700 15px/24px var(--font-family); }
.ptl-pdf__body p { margin: 2px 0 0; font: var(--text-small); color: var(--color-text-secondary); }
.ptl-pdf__body p.ptl-muted { color: var(--color-text-muted); }
.ptl-pdf__actions { display: flex; align-items: center; gap: 8px; flex: none; }
.ptl-pdf__actions .btn { height: 40px; }

/* ---------- no-permission state ---------- */
.ptl-denied { padding-top: 92px; }
.ptl-denied .state-card { background: none; border: 0; box-shadow: none; min-height: 0; padding: 0; }
.ptl-form .field.has-error .input-affix { border-color: var(--color-danger); }
