/* Jobs Online Courses: My Account pages added by the plugin (Reviews,
   Refunds). Layout only, with the theme's --jo-* tokens when they exist. */
.joc-account-title { margin: 0 0 0.5rem; }
.joc-account-intro { margin: 0 0 1.5rem; color: var(--jo-primary-text, #574ba0); }
.joc-account-subtitle { margin: 1.5rem 0 0.75rem; font-size: 1.25rem; }
.joc-account-subtitle span { font-size: 0.8125rem; font-family: var(--jo-font, inherit); color: var(--jo-muted, #6b7280); }
.joc-account-empty { padding: 3rem 1.5rem; border: 2px dashed var(--jo-line-purple, #b9a9ec); border-radius: var(--jo-radius, 0.75rem); text-align: center; }
.joc-account-empty p { margin: 0 0 1rem; }

/* Reviews */
.joc-reviews { display: grid; gap: 1rem; }
.joc-review { padding: 1.25rem; border: 2px solid var(--jo-line-purple, #b9a9ec); border-radius: var(--jo-radius, 0.75rem); }
.joc-review-course { display: flex; gap: 1rem; align-items: center; }
.joc-review-thumb { width: 4.5rem; height: 3rem; flex: none; object-fit: cover; border-radius: var(--jo-radius-sm, 0.5rem); }
.joc-review-name { display: block; font-weight: 500; color: var(--jo-heading, inherit); }
.joc-review-status, .joc-refund-status { display: inline-block; margin-top: 0.25rem; padding: 0.125rem 0.625rem; border-radius: 999px; background: var(--jo-surface, #dde3ff); font-size: 0.75rem; font-weight: 500; white-space: nowrap; }
.joc-review-status.is-live, .joc-refund-status.is-approved { background: var(--jo-green, #04d98c); color: var(--jo-navy, #02274a); }
.joc-review-status.is-held, .joc-refund-status.is-pending { background: var(--jo-amber, #ffbd59); color: var(--jo-navy, #02274a); }
.joc-refund-status.is-declined { background: var(--jo-line, #e7e9f5); color: var(--jo-muted, #6b7280); }
.joc-review-body { margin-top: 0.75rem; }
.joc-review-body p { margin: 0.25rem 0 0.5rem; }
.joc-review-edit, .joc-refund-note { font-size: 0.8125rem; }
.joc-refund-note { color: var(--jo-muted, #6b7280); }
.joc-review-closed { margin: 0.75rem 0 0; color: var(--jo-muted, #6b7280); }
.joc-stars { color: var(--jo-amber, #ffbd59); letter-spacing: 0.1em; font-size: 1.125rem; }
.joc-review-form { margin-top: 1rem; }
.joc-review-actions { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin: 1rem 0 0; }

/* Star picker: radios in reverse order so ~ lights up the lower stars. */
.joc-rate { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: 0.125rem; margin: 0 0 0.75rem; padding: 0; border: 0; }
.joc-rate legend { float: left; width: 100%; margin: 0 0 0.25rem; padding: 0; font-size: 0.8125rem; font-weight: 500; }
.joc-rate input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.joc-rate label { cursor: pointer; font-size: 1.75rem; line-height: 1; color: var(--jo-line-purple, #b9a9ec); }
.joc-rate label::before { content: "★"; }
.joc-rate input:checked ~ label, .joc-rate label:hover, .joc-rate label:hover ~ label { color: var(--jo-amber, #ffbd59); }
.joc-rate input:focus-visible + label { outline: 2px solid var(--jo-primary, #5c3cc4); outline-offset: 2px; border-radius: 4px; }

/* Refunds */
.joc-refund-items { display: grid; gap: 0.5rem; margin: 0 0 1rem; padding: 0; border: 0; }
.joc-refund-items legend { margin-bottom: 0.5rem; font-size: 0.8125rem; font-weight: 500; }
.joc-refund-items label { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem 1rem; border: 1px solid var(--jo-line-purple, #b9a9ec); border-radius: var(--jo-radius-sm, 0.5rem); cursor: pointer; }
.joc-refund-items label span { flex: 1; }
.joc-order-refund { margin-top: 2rem; }
.joc-order-refund-reason { color: var(--jo-primary-text, #574ba0); }
