:root body .ec-course-reviews>.ec-reviews { display: block !important; }
.ec-review-summary { display: grid; grid-template-columns: 120px minmax(120px,1fr) auto; align-items: start; gap: 24px; margin-top: 16px; }
.ec-review-summary .ec-course-review-score { grid-area: auto !important; }
.ec-review-summary .ec-course-review-score span { display: block; line-height: 1.5; }
.ec-review-distribution { display: grid; gap: 12px; padding-top: 4px; }
.ec-review-bar { display: grid; grid-template-columns: 16px minmax(0,1fr) 26px; align-items: center; gap: 10px; color: #64748b; font-size: 13px; line-height: 1.2; }
.ec-review-bar>i { display: block; height: 8px; border-radius: 8px; background: #e9edf3; overflow: hidden; }
.ec-review-bar>i>span { display: block; height: 100%; background: var(--ec-brand-primary,#2563eb); }
.ec-review-bar>b { font-size: 12px; text-align: right; }
.ec-review-write { white-space: nowrap; }
.ec-review-notice { margin: 20px 0; padding: 14px 16px; border: 1px solid #bfd3f7; border-radius: 8px; background: var(--ec-brand-soft,#eff6ff); color: #263d5c; font-size: 14px; line-height: 1.6; }
.ec-review-notice[role=alert] { border-color: #e6b6b6; background: #fff7f7; color: #8f2929; }
.ec-review-empty { margin: 24px 0; color: #64748b; font-size: 14px; }
.ec-review-list { margin-top: 28px; }
.ec-review-entry { padding: 24px 0; border-top: 1px solid #dce3ee; }
.ec-review-entry__head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
:root body .ec-review-entry__head h3 { margin: 0 !important; font-size: 16px !important; }
.ec-review-verified { padding: 3px 7px; border-radius: 4px; background: #e7f5ef; color: #24664c; font-size: 11px; }
.ec-review-entry__meta { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin: 8px 0 12px !important; color: #64748b; font-size: 12px; }
.ec-review-entry__stars { color: #b66a10; font-size: 18px; letter-spacing: 2px; }
.ec-review-entry__feedback { color: #334155; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.ec-review-entry__feedback p { margin: 0 0 10px; }
.ec-review-pagination { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; margin: 16px 0; font-size: 13px; }
.ec-review-editor { margin-top: 28px; padding-top: 20px; border-top: 1px solid #dce3ee; scroll-margin-top: 90px; }
.ec-review-editor>summary { width: fit-content; color: #172033; font-size: 16px; font-weight: 700; cursor: pointer; }
.ec-review-form { display: grid; gap: 12px; margin-top: 20px; }
.ec-review-form fieldset { display: grid; gap: 8px; margin: 0 0 8px; padding: 0; border: 0; }
.ec-review-form legend,.ec-review-form>label { font-size: 14px; font-weight: 700; }
.ec-review-stars { display: flex; gap: 6px; margin-top: 10px; }
.ec-review-stars label { position: relative; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #cbd5e1; border-radius: 7px; color: #98a5b8; background: #fff; font-size: 28px; line-height: 1; cursor: pointer; }
.ec-review-stars input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.ec-review-stars .screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.ec-review-stars label:has(input:checked),.ec-review-stars label.is-selected { border-color: #b87d23; color: #b66a10; background: #fff8eb; }
.ec-review-stars label:focus-within { outline: 2px solid var(--ec-brand-primary,#2563eb); outline-offset: 2px; }
.ec-review-form output { color: #64748b; font-size: 12px; }
.ec-review-form textarea { width: 100%; box-sizing: border-box; min-height: 130px; padding: 12px; border: 1px solid #aebdd0; border-radius: 7px; background: #fff; color: #172033; font: inherit; line-height: 1.6; resize: vertical; }
.ec-review-form textarea:focus { outline: 2px solid var(--ec-brand-primary,#2563eb); outline-offset: 2px; }
.ec-review-form #ec-review-help { margin: 0; color: #64748b; font-size: 12px; line-height: 1.6; }
.ec-review-form>button { justify-self: start; }
.ec-review-access { margin-top: 16px; padding: 18px; border-radius: 8px; background: #f6f8fc; font-size: 14px; }
.ec-review-access p { margin-top: 0; }
#reviews { scroll-margin-top: 80px; }
@media(max-width:700px) { .ec-review-summary { grid-template-columns: 96px minmax(0,1fr); gap: 18px; } .ec-review-write { grid-column: 1 / -1; justify-self: start; } }
