/* PF Hub — shared portal styles (panel, public pages, admin screens). RTL, Vazirmatn, light+dark tokens. */
@font-face{font-family:Vazirmatn;src:url(../fonts/Vazirmatn-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(../fonts/Vazirmatn-Medium.woff2) format("woff2");font-weight:500 600;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(../fonts/Vazirmatn-Bold.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(../fonts/Vazirmatn-ExtraBold.woff2) format("woff2");font-weight:800 900;font-display:swap}

:root{
  --pfh-bg:#F4F6F5; --pfh-surface:#FFFFFF; --pfh-sunk:#EDF1EF;
  --pfh-ink:#15201E; --pfh-muted:#5A6764; --pfh-line:#D9E0DE;
  --pfh-accent:#0B7A69; --pfh-accent-ink:#065A4D; --pfh-accent-soft:#E1F1ED; --pfh-on-accent:#FFFFFF;
  --pfh-ok:#15803D; --pfh-ok-soft:#E3F4E8;
  --pfh-warn:#A55309; --pfh-warn-soft:#FBEEDD;
  --pfh-danger:#B42318; --pfh-danger-soft:#FBE9E7;
  --pfh-info:#1F4E8C; --pfh-info-soft:#E3EBF6;
  --pfh-r:12px; --pfh-r-sm:8px;
  --pfh-shadow:0 1px 2px rgba(16,32,28,.06),0 4px 16px rgba(16,32,28,.05);
  --pfh-font:Vazirmatn,Tahoma,"Segoe UI",sans-serif;
}
@media (prefers-color-scheme:dark){
  .pfh-doc{
    --pfh-bg:#0E1413; --pfh-surface:#151E1C; --pfh-sunk:#111917;
    --pfh-ink:#E4ECEA; --pfh-muted:#98A6A3; --pfh-line:#28332F;
    --pfh-accent:#3CC4A9; --pfh-accent-ink:#7EE0CB; --pfh-accent-soft:#123029; --pfh-on-accent:#06231D;
    --pfh-ok:#4ADE80; --pfh-ok-soft:#10301C;
    --pfh-warn:#F2A65A; --pfh-warn-soft:#33240F;
    --pfh-danger:#F0776C; --pfh-danger-soft:#3A1816;
    --pfh-info:#8DB2E4; --pfh-info-soft:#18263A;
    color-scheme:dark;
  }
}

.pfh-doc{margin:0;background:var(--pfh-bg);color:var(--pfh-ink);font-family:var(--pfh-font);font-size:15px;line-height:1.85;direction:rtl;-webkit-font-smoothing:antialiased}
.pfh-doc *,.pfh-admin *{box-sizing:border-box}
.pfh-doc a{color:var(--pfh-accent-ink)}
.pfh-doc h1,.pfh-doc h2,.pfh-doc h3{line-height:1.5;text-wrap:balance}
.pfh-ico{flex:none;vertical-align:middle}

/* ---------- Panel layout ---------- */
.pfh-panel{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}
.pfh-side{background:var(--pfh-surface);border-inline-start:1px solid var(--pfh-line);padding:18px 12px;display:flex;flex-direction:column;gap:14px;position:sticky;top:0;height:100vh;overflow:auto}
.pfh-brand{display:inline-flex;align-items:center;gap:8px;font-weight:900;font-size:22px;color:var(--pfh-ink)!important;text-decoration:none;padding:4px 10px}
.pfh-brand .pfh-brand-mark{flex:none;display:block}
.pfh-invoice-brand{display:inline-flex;align-items:center;gap:6px;margin:0}
.pfh-nav{display:grid;gap:2px}
.pfh-nav a,.pfh-side-foot a{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--pfh-r-sm);color:var(--pfh-muted)!important;text-decoration:none;font-weight:500}
.pfh-nav a:hover,.pfh-side-foot a:hover{background:var(--pfh-sunk);color:var(--pfh-ink)!important}
.pfh-nav a.is-active{background:var(--pfh-accent-soft);color:var(--pfh-accent-ink)!important;font-weight:700}
.pfh-count{margin-inline-start:auto;font-style:normal;background:var(--pfh-danger);color:#fff;border-radius:999px;font-size:11.5px;padding:0 7px;line-height:1.7}
.pfh-side-foot{margin-top:auto;display:grid;gap:2px;border-top:1px solid var(--pfh-line);padding-top:10px}
.pfh-main{min-width:0;padding:22px clamp(16px,3vw,36px) 48px}
.pfh-top{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.pfh-top h1{font-size:22px;margin:0;font-weight:800}
.pfh-who{margin-inline-start:auto;display:flex;align-items:center;gap:6px;color:var(--pfh-muted);font-size:14px}
.pfh-burger{display:none;width:40px;height:40px;border:1px solid var(--pfh-line);border-radius:10px;background:var(--pfh-surface);cursor:pointer;position:relative}
.pfh-burger span,.pfh-burger span::before,.pfh-burger span::after{position:absolute;inset-inline:10px;height:2px;background:var(--pfh-ink);content:"";border-radius:2px}
.pfh-burger span{top:19px}.pfh-burger span::before{top:-6px;inset-inline:0}.pfh-burger span::after{top:6px;inset-inline:0}
@media (max-width:900px){
  .pfh-panel{grid-template-columns:minmax(0,1fr)}
  .pfh-side{position:fixed;inset-block:0;inset-inline-start:0;width:270px;z-index:50;transform:translateX(110%);transition:transform .2s;box-shadow:var(--pfh-shadow)}
  .pfh-side.is-open{transform:none}
  .pfh-burger{display:inline-block}
}
@media (prefers-reduced-motion:reduce){.pfh-side{transition:none}}

/* ---------- Building blocks ---------- */
.pfh-card{background:var(--pfh-surface);border:1px solid var(--pfh-line);border-radius:var(--pfh-r);padding:18px 20px;margin-bottom:16px}
.pfh-card > h2,.pfh-card > h3{margin:0 0 10px;font-size:17px}
.pfh-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.pfh-card-head h2,.pfh-card-head h3{margin:0;font-size:17px}
.pfh-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.pfh-grid-2{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:760px){.pfh-grid-2{grid-template-columns:minmax(0,1fr)}}
.pfh-kpis{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));margin:6px 0 18px}
.pfh-kpi{background:var(--pfh-surface);border:1px solid var(--pfh-line);border-radius:var(--pfh-r);padding:14px 16px;display:flex;flex-direction:column;gap:2px;border-top:3px solid var(--pfh-line)}
.pfh-kpi .k{font-size:13px;color:var(--pfh-muted)}
.pfh-kpi .v{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.5}
.pfh-kpi .h{font-size:12.5px;color:var(--pfh-muted)}
.pfh-kpi--ok{border-top-color:var(--pfh-ok)}.pfh-kpi--warn{border-top-color:var(--pfh-warn)}.pfh-kpi--danger{border-top-color:var(--pfh-danger)}.pfh-kpi--info{border-top-color:var(--pfh-info)}.pfh-kpi--accent{border-top-color:var(--pfh-accent)}

.pfh-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-weight:600;font-size:14px;padding:8px 16px;border-radius:var(--pfh-r-sm);border:1px solid var(--pfh-line);background:var(--pfh-surface);color:var(--pfh-ink)!important;text-decoration:none;cursor:pointer;line-height:1.6;white-space:nowrap}
.pfh-btn:hover{background:var(--pfh-sunk)}
.pfh-btn--primary{background:var(--pfh-accent);border-color:var(--pfh-accent);color:var(--pfh-on-accent)!important}
.pfh-btn--primary:hover{background:var(--pfh-accent-ink);border-color:var(--pfh-accent-ink)}
.pfh-btn--ghost{background:transparent;border-color:transparent;color:var(--pfh-accent-ink)!important}
.pfh-btn--danger{background:var(--pfh-danger-soft);border-color:transparent;color:var(--pfh-danger)!important}
.pfh-btn--sm{padding:4px 10px;font-size:13px}
.pfh-btn--lg{padding:12px 22px;font-size:16px}
.pfh-btn[disabled],.pfh-btn.is-disabled{opacity:.55;pointer-events:none}
.pfh-btn:focus-visible,.pfh-nav a:focus-visible,.pfh-field input:focus-visible,.pfh-field select:focus-visible,.pfh-field textarea:focus-visible{outline:2px solid var(--pfh-accent);outline-offset:2px}

.pfh-badge{display:inline-block;border-radius:999px;padding:0 10px;font-size:12.5px;font-weight:700;line-height:1.9;white-space:nowrap;background:var(--pfh-sunk);color:var(--pfh-muted)}
.pfh-badge--ok{background:var(--pfh-ok-soft);color:var(--pfh-ok)}
.pfh-badge--warn{background:var(--pfh-warn-soft);color:var(--pfh-warn)}
.pfh-badge--danger{background:var(--pfh-danger-soft);color:var(--pfh-danger)}
.pfh-badge--info{background:var(--pfh-info-soft);color:var(--pfh-info)}
.pfh-badge--accent{background:var(--pfh-accent-soft);color:var(--pfh-accent-ink)}

.pfh-alert{border-radius:var(--pfh-r-sm);padding:10px 14px;margin:0 0 16px;font-weight:500;border-inline-start:4px solid}
.pfh-alert--ok{background:var(--pfh-ok-soft);color:var(--pfh-ok);border-color:var(--pfh-ok)}
.pfh-alert--warn{background:var(--pfh-warn-soft);color:var(--pfh-warn);border-color:var(--pfh-warn)}
.pfh-alert--danger{background:var(--pfh-danger-soft);color:var(--pfh-danger);border-color:var(--pfh-danger)}
.pfh-alert--info{background:var(--pfh-info-soft);color:var(--pfh-info);border-color:var(--pfh-info)}
.pfh-focus{border-width:2px}.pfh-focus h2{margin-top:0}.pfh-focus--accent{border-color:var(--pfh-accent);background:var(--pfh-accent-soft)}.pfh-focus--ok{border-color:var(--pfh-ok)}.pfh-focus--warn{border-color:var(--pfh-warn)}

.pfh-table-wrap{overflow-x:auto;border:1px solid var(--pfh-line);border-radius:var(--pfh-r);background:var(--pfh-surface)}
.pfh-table{width:100%;border-collapse:collapse;font-size:14px}
.pfh-table th,.pfh-table td{padding:9px 12px;text-align:start;border-bottom:1px solid var(--pfh-line);vertical-align:middle}
.pfh-table thead th{background:var(--pfh-sunk);color:var(--pfh-muted);font-size:13px;font-weight:700;white-space:nowrap}
.pfh-table tbody tr:last-child td{border-bottom:0}
.pfh-table tbody tr:hover td{background:color-mix(in srgb,var(--pfh-sunk) 55%,transparent)}
.pfh-num{font-variant-numeric:tabular-nums;white-space:nowrap}

.pfh-form{display:grid;gap:14px}
.pfh-form-row{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.pfh-field{display:grid;gap:5px}
.pfh-field > label,.pfh-field > .l{font-weight:600;font-size:14px}
.pfh-field .hint{font-size:12.5px;color:var(--pfh-muted)}
.pfh-field input[type=text],.pfh-field input[type=email],.pfh-field input[type=tel],.pfh-field input[type=number],.pfh-field input[type=password],.pfh-field input[type=url],.pfh-field input[type=date],.pfh-field select,.pfh-field textarea{
  font:inherit;width:100%;padding:9px 12px;border:1px solid var(--pfh-line);border-radius:var(--pfh-r-sm);background:var(--pfh-surface);color:var(--pfh-ink)}
.pfh-field textarea{min-height:120px;resize:vertical}
.pfh-ltr{direction:ltr;text-align:left}

.pfh-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px;border-bottom:1px solid var(--pfh-line);padding-bottom:8px}
.pfh-tabs a{padding:6px 14px;border-radius:999px;text-decoration:none;color:var(--pfh-muted);font-weight:600;font-size:14px}
.pfh-tabs a:hover{background:var(--pfh-sunk);color:var(--pfh-ink)}
.pfh-tabs a.is-active{background:var(--pfh-ink);color:var(--pfh-bg)}

.pfh-empty{border:1.5px dashed var(--pfh-line);border-radius:var(--pfh-r);padding:28px;text-align:center;color:var(--pfh-muted);background:var(--pfh-surface)}
.pfh-progress{height:8px;border-radius:999px;background:var(--pfh-sunk);overflow:hidden}
.pfh-progress > i{display:block;height:100%;background:var(--pfh-accent);border-radius:inherit}
.pfh-progress.is-warn > i{background:var(--pfh-warn)}.pfh-progress.is-danger > i{background:var(--pfh-danger)}
.pfh-muted{color:var(--pfh-muted)}
.pfh-dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 18px;margin:0}
.pfh-dl dt{color:var(--pfh-muted)}.pfh-dl dd{margin:0;font-weight:600}

/* ---------- Admin screens (inside wp-admin) ---------- */
.pfh-admin{font-family:var(--pfh-font)}
.pfh-admin{--pfh-bg:#F4F6F5;--pfh-surface:#fff;--pfh-sunk:#EDF1EF;--pfh-ink:#15201E;--pfh-muted:#5A6764;--pfh-line:#D9E0DE}
.pfh-admin-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:10px 0 16px}
.pfh-admin-head h1{font-family:var(--pfh-font);font-weight:800;margin:0;padding:0}
.pfh-admin-actions{display:flex;gap:8px;flex-wrap:wrap}
.pfh-admin .pfh-table{background:#fff}

/* ---------- Panel extras (core tabs) ---------- */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.pfh-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pfh-actions form{margin:0}
.pfh-chips{list-style:none;padding:0;margin:0 0 10px;display:flex;flex-wrap:wrap;gap:6px}
.pfh-chips li{background:var(--pfh-sunk);border-radius:999px;padding:1px 10px;font-size:13px}
.pfh-site-card h3 a{color:var(--pfh-ink);text-decoration:none}
.pfh-site-card .pfh-ltr{margin:0 0 8px;font-size:13.5px}
.pfh-site-card .pfh-progress{margin-top:12px}
.pfh-site-days{font-size:13px;margin:4px 0 10px}
.pfh-timeline{list-style:none;padding:0;margin:0;display:grid;gap:6px;font-size:14px}
.pfh-timeline time{color:var(--pfh-muted);font-variant-numeric:tabular-nums;margin-inline-end:6px}
.pfh-addon-list{display:grid;gap:8px}
.pfh-addon-item{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--pfh-line);border-radius:var(--pfh-r-sm);padding:8px 12px}
.pfh-addon-item > div{display:grid}
.pfh-addon-item small{font-size:12.5px}
.pfh-inline-form{display:inline-flex;gap:6px;align-items:center;margin:0 0 6px}
.pfh-inline-form select,.pfh-inline-form input{font:inherit;font-size:13px;padding:4px 8px;border:1px solid var(--pfh-line);border-radius:8px;background:var(--pfh-surface);color:var(--pfh-ink)}
.pfh-skin-radios{display:flex;flex-wrap:wrap;gap:8px}
.pfh-skin-radio{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--pfh-line);border-radius:999px;padding:4px 12px;cursor:pointer}
.pfh-skin-radio:has(input:checked){border-color:var(--pfh-accent);background:var(--pfh-accent-soft)}
.pfh-swatch{width:16px;height:16px;border-radius:50%;border:1px solid var(--pfh-line)}
.pfh-messages{display:grid;gap:10px}
.pfh-message p{margin:0;white-space:normal}
.pfh-message.is-unread{border-inline-start:4px solid var(--pfh-accent)}
.pfh-message h3{margin:0;font-size:15.5px}
.pfh-invoice-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.pfh-invoice-doc{padding:26px}
.pfh-invoice-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:2px solid var(--pfh-ink);padding-bottom:12px;margin-bottom:14px}
.pfh-invoice-head h2{margin:0;font-size:20px}
.pfh-invoice-parties h3{font-size:15px;margin:0 0 6px;color:var(--pfh-muted)}
.pfh-invoice-parties p{margin:0 0 2px}
.pfh-invoice-parties{margin-bottom:16px}
.pfh-invoice-table tfoot th{text-align:start;font-weight:600}
.pfh-invoice-table tfoot tr.is-total th,.pfh-invoice-table tfoot tr.is-total td{font-weight:900;background:var(--pfh-accent-soft)}
.pfh-invoice-sign{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:28px}
.pfh-invoice-sign div{display:grid;gap:36px;color:var(--pfh-muted);font-size:14px}
.pfh-invoice-sign span{border-bottom:1px solid var(--pfh-line)}
@media print{
  .pfh-side,.pfh-top,.pfh-no-print,.pfh-alert,#wpadminbar{display:none!important}
  .pfh-panel{display:block}
  .pfh-main{padding:0}
  .pfh-doc{background:#fff;color:#000}
  .pfh-invoice-doc{border:0;padding:0}
  .pfh-table-wrap{border:0;overflow:visible}
  .pfh-badge{border:1px solid #999}
  @page{size:A4;margin:14mm}
}

/* ---------- Admin extras ---------- */
.pfh-admin .pfh-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin:0 0 14px}
.pfh-admin .pfh-filters .pfh-field{gap:2px}
.pfh-admin .pfh-filters input,.pfh-admin .pfh-filters select{min-width:120px}
.pfh-admin .pfh-pager{display:flex;gap:6px;margin-top:12px;align-items:center}
.pfh-admin .pfh-card{max-width:none}
.pfh-admin .pfh-form .pfh-field input[type=text],.pfh-admin .pfh-form .pfh-field input[type=number],.pfh-admin .pfh-form .pfh-field select,.pfh-admin .pfh-form .pfh-field textarea{max-width:100%}
.pfh-chart{width:100%;height:auto;display:block}
.pfh-chart text{font-family:var(--pfh-font);fill:var(--pfh-muted);font-size:11px}
.pfh-chart .bar{fill:var(--pfh-accent)}
.pfh-chart .bar:hover{fill:var(--pfh-accent-ink)}
.pfh-chart .grid{stroke:var(--pfh-line);stroke-width:1}
.pfh-chart .val{fill:var(--pfh-ink);font-weight:700;font-size:10.5px}
.pfh-section-title{margin:22px 0 10px;font-size:16px}
.pfh-cohort td{text-align:center;font-variant-numeric:tabular-nums}
.pfh-heat-0{background:transparent}
