/* ============================================================
   Portal Partners Hub — Workers / Subcontractors / Suppliers
   relationship + PO / material list workflow + Platform Harmony.
   Layered on top of LilyExpansion / VillaCleanupV5.
   ============================================================ */
.pph-wrap{max-width:1200px;margin:0 auto;font-family:Barlow,system-ui,sans-serif}
.pph-banner{padding:12px 14px;border:1px solid #cfe5e1;background:#f3fbf9;border-radius:10px;margin-bottom:12px;color:#1f3a36;line-height:1.45}
.pph-banner.warn{background:#fff7ec;border-color:#f1c98a;color:#5a3b0b}
.pph-banner.danger{background:#fdecea;border-color:#f0b4ad;color:#7a1f1a}
.pph-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 14px}
.pph-tab{border:1px solid #cfe5e1;background:#fff;color:#1f3a36;padding:8px 12px;border-radius:999px;font-weight:600;cursor:pointer;font-size:13px}
.pph-tab.on{background:#1f3a36;color:#fff;border-color:#1f3a36}
.pph-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.pph-card{padding:12px;border:1px solid #d8e8e5;border-radius:10px;background:#fff}
.pph-card .nm{font-weight:700;color:#1f3a36;font-size:15px}
.pph-card .meta{font-size:12px;color:#4a6b65;margin-top:3px;line-height:1.4}
.pph-card .row{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.pph-tag{display:inline-block;font-size:11px;padding:2px 6px;border-radius:999px;background:#e9f2ef;color:#1f3a36;border:1px solid #cfe5e1}
.pph-tag.warn{background:#fff3df;border-color:#e9c995;color:#5a3b0b}
.pph-tag.danger{background:#fdecea;border-color:#e0a39a;color:#7a1f1a}
.pph-tag.ok{background:#e6f5ee;border-color:#bedfd0;color:#1c5b3d}
.pph-tag.info{background:#eaf1fb;border-color:#bcd0ee;color:#1d3c70}
.pph-section{margin:14px 0;padding:14px;border:1px solid #d8e8e5;border-radius:12px;background:#fafdfc}
.pph-section h4{margin:0 0 10px;color:#1f3a36;font-size:15px}
.pph-section p.sub{color:#4a6b65;font-size:12px;margin:-4px 0 8px}
.pph-table{width:100%;border-collapse:collapse;font-size:12px}
.pph-table th, .pph-table td{padding:7px 8px;border-bottom:1px solid #e3eeec;text-align:left;vertical-align:top}
.pph-table th{background:#eef6f3;color:#1f3a36;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.pph-table tr.exp-soon{background:#fff8eb}
.pph-table tr.exp-overdue{background:#fde9e6}
.pph-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.pph-form{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.pph-form label{display:flex;flex-direction:column;font-size:12px;color:#4a6b65;font-weight:600}
.pph-form label.full{grid-column:1/-1}
.pph-form input,.pph-form select,.pph-form textarea{margin-top:4px;padding:7px 9px;border:1px solid #cfe5e1;border-radius:6px;background:#fff;font:inherit;color:#1f3a36}
.pph-form textarea{min-height:70px}
.pph-link-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.pph-link{padding:9px 10px;border:1px solid #d8e8e5;border-radius:8px;background:#fff;color:#1f3a36;text-align:left;cursor:pointer;font-size:12px;font-weight:600}
.pph-link:hover{background:#f0f8f5}
.pph-harmony{padding:14px;border:1px solid #cfe5e1;border-radius:12px;background:linear-gradient(135deg,#f3fbf9,#eef6f3);margin-top:10px}
.pph-harmony h4{margin:0 0 6px;color:#1f3a36}
.pph-harmony ul{margin:6px 0 0;padding-left:20px;color:#1f3a36;line-height:1.55;font-size:13px}
.pph-harmony ul li{margin-bottom:3px}
.pph-pill-row{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.pph-pill-row .pph-tag{cursor:pointer}
button.pph-tag{font:inherit;line-height:inherit}
button.pph-tag:focus-visible{outline:2px solid #1d3c70;outline-offset:1px}
.pph-status-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:8px}
.pph-status-bar .meta{font-size:12px;color:#4a6b65}
@media (max-width:640px){
  .pph-form{grid-template-columns:1fr}
  .pph-table{font-size:11px}
  .pph-table th,.pph-table td{padding:5px 6px}
}
