.pmpo-portal{margin:10px 0 20px}
.pmpo-stats{margin-bottom:10px}
.pmpo-stats-bar{display:flex;gap:16px;flex-wrap:wrap;background:#f7f7f9;border:1px solid #eee;border-radius:10px;padding:10px 12px;font-size:.95rem}
.pmpo-stats-bar > div{min-width:130px}

.pmpo-controls{display:block;margin-bottom:12px;z-index:8}
.pmpo-controls.is-sticky{position:sticky;top:0;background:var(--pmpo-bg,#fff);padding:8px 0 6px;border-bottom:1px solid #eee}
.pmpo-filters-toggle{display:none;margin-bottom:8px}
.pmpo-controls-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.pmpo-input{padding:6px 10px;border:1px solid #ddd;border-radius:6px;min-height:40px}
.pmpo-search{min-width:220px;flex:1}
.pmpo-tax-wrap .pmpo-tax{min-width:180px}
.pmpo-controls .button.pmpo-input{height:40px;line-height:38px}

.pmpro-courses-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin:10px 0 16px}
.pmpro-course-card{background:var(--pmpo-card,#fff);border:1px solid #e5e7eb;border-radius:12px;padding:16px;box-shadow:0 4px 14px rgba(0,0,0,.05);transition:transform .2s, box-shadow .2s, opacity .2s}
.pmpro-course-card:hover{transform:translateY(-3px);box-shadow:0 10px 20px rgba(0,0,0,.07)}
.pmpro-course-card .course-thumb img{width:100%;height:auto;border-radius:10px;margin-bottom:12px}
.pmpro-course-card .course-title{font-size:1.05rem;margin:0 0 4px}
.pmpro-course-card .course-meta-line{font-size:.88rem;color:#555;margin-bottom:6px}
.course-accessible{font-size:.9rem;color:#066a2b;font-weight:600}
.course-locked{font-size:.9rem;color:#b00020;font-weight:600}
.course-join-link{text-decoration:underline}
.pmpro-course-card.is-list{display:flex;gap:12px;align-items:center}
.pmpro-course-card.is-list .course-thumb{flex:0 0 80px}
.pmpro-course-card.is-list .course-thumb img{border-radius:6px}
.pmpro-course-card.is-list .course-title{margin:0}
.course-header{display:flex;justify-content:space-between;align-items:center;gap:8px}
.pmpo-pin{border:1px solid #ddd;border-radius:6px;background:#fafafa;padding:0 10px;height:32px;line-height:30px;cursor:pointer}
.pmpo-pin.pinned{background:#ffe89a;border-color:#f1c232}

.pmpo-progress{margin-top:8px;background:#f0f0f0;border-radius:6px;overflow:hidden;position:relative;height:16px}
.pmpo-progress span{display:block;height:100%;background:var(--pmpo-progress,#4caf50)}
.pmpo-progress em{position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:11px;line-height:16px;color:#fff;font-weight:bold;white-space:nowrap}
.pmpo-actions{margin-top:10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pmpo-actions .pmpo-continue{background:var(--pmpo-continue,#0b5bd3);color:#fff;border:1px solid #0a52bf;border-radius:8px;padding:8px 14px;text-decoration:none;font-weight:600}
.pmpo-actions .pmpo-continue:hover{filter:brightness(0.95)}
.pmpo-actions .pmpo-certificate{background:#198754;color:#fff;border:1px solid #157347;border-radius:8px;padding:8px 14px;text-decoration:none;font-weight:600}
.pmpo-actions .pmpo-certificate:hover{background:#157347}
.pmpo-badge{font-size:18px}

.pmpo-pagination{display:flex;justify-content:center;align-items:center;gap:12px}
#pmpo-load-more{display:none;padding:8px 14px;border-radius:8px}

.pmpo-no-courses{text-align:center;padding:20px;font-size:1.1rem;color:#555}
.pmpo-empty-cta{margin-top:8px}
.pmpo-empty-cta .button{border-radius:8px}

.pmpo-error{color:#b00020;font-weight:bold;text-align:center;padding:12px;border:1px solid #f3c1c1;background:#fff7f7;border-radius:8px}

.pmpo-search:focus,.pmpo-sort:focus,.pmpo-tax:focus,.pmpo-view:focus,#pmpo-load-more:focus,.pmpo-continue:focus,.pmpo-certificate:focus{outline:2px solid #005fcc; outline-offset:2px}

/* Dark mode */
@media (prefers-color-scheme: dark){
  :root{ --pmpo-bg:#111; --pmpo-card:#1b1b1b; }
  .pmpo-controls.is-sticky{ border-bottom-color:#333 }
  .pmpro-course-card{ border-color:#333; color:#e6e6e6 }
  .course-meta-line{ color:#bbb }
  .pmpo-stats-bar{ background:#1c1c1c; border-color:#333 }
  .pmpo-input, .pmpo-pin{ background:#121212; color:#eee; border-color:#333 }
}

/* Mobile drawer */
@media (max-width:768px){
  .pmpo-filters-toggle{display:inline-block}
  #pmpo-filters{display:none}
  #pmpo-filters.open{display:flex}
  .pmpo-controls-row{flex-direction:column;align-items:stretch}
  .pmpo-search{width:100%}
}

/* === v2.12.3 Empty State Style (non-invasive) === */
.pmpo-no-courses{
  text-align:center;
  padding:40px;
  font-size:1.1rem;
  color:#666;
}
