.psflh-portal{max-width:980px;margin:0 auto;padding:16px}
.psflh-portal__banner{padding:10px 12px;border-radius:8px;margin:10px 0;font-weight:600}
.psflh-portal__banner--ontrack{background:rgba(0,0,0,.05)}
.psflh-portal__banner--overdue{background:rgba(255,0,0,.08)}
.psflh-portal__banner--paid{background:rgba(0,128,0,.08)}
.psflh-portal__grid{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:900px){.psflh-portal__grid{grid-template-columns:1fr 1fr}}
.psflh-portal__panel{background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:10px;padding:14px}
.psflh-portal__row{display:flex;justify-content:space-between;gap:12px;margin:6px 0}
.psflh-portal__progress{margin-top:12px}
.psflh-portal__progressbar{height:12px;border-radius:999px;background:rgba(0,0,0,.08);overflow:hidden}
.psflh-portal__progressfill{height:100%;background:rgba(0,0,0,.35)}
.psflh-portal__progresstext{margin-top:6px;font-size:.95em;opacity:.9}
.psflh-portal__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.psflh-portal__payform{margin:0}
.psflh-portal__button{width:100%}
@media(min-width:480px){.psflh-portal__button{width:auto}}
.psflh-portal__custom{margin-top:12px}
.psflh-portal__custom summary{cursor:pointer}
.psflh-portal__customform{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;align-items:center}
.psflh-portal__table{width:100%;border-collapse:collapse}
.psflh-portal__table th,.psflh-portal__table td{border-bottom:1px solid rgba(0,0,0,.08);padding:10px 8px;text-align:left}
.psflh-portal__list{display:grid;grid-template-columns:1fr;gap:12px;margin-top:12px}
@media(min-width:700px){.psflh-portal__list{grid-template-columns:1fr 1fr}}
.psflh-portal__card{border:1px solid rgba(0,0,0,.12);border-radius:10px;padding:12px;background:#fff}
.psflh-portal__orderlink{font-weight:700;text-decoration:none}
