/* Sora LMS Pro: plan options on course pages, checkout plan item, learner dashboard. */
.sora-plans { margin-top: 20px; display: grid; gap: 10px; }
.sora-plans__or { display: flex; align-items: center; gap: 10px; color: var(--tutor-text-subdued, #5B616F); font-size: 13px; }
.sora-plans__or::before, .sora-plans__or::after { content: ""; flex: 1; height: 1px; background: var(--tutor-border-idle, #E3E5EA); }
.sora-plan { display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; align-items: center; padding: 12px 14px; border: 1px solid var(--tutor-border-idle, #E3E5EA); border-radius: 8px; background: var(--tutor-surface-base, #fff); }
.sora-plan.is-featured { border-color: var(--tutor-color-primary, #3E64DE); }
.sora-plan__info { display: grid; gap: 2px; }
.sora-plan__info strong { color: var(--tutor-text-primary, #212327); font-size: 15px; }
.sora-plan__info span { color: var(--tutor-text-subdued, #5B616F); font-size: 13px; }
.sora-plan__price { text-align: right; white-space: nowrap; }
.sora-plan__price strong { color: var(--tutor-text-primary, #212327); }
.sora-plan__price span { color: var(--tutor-text-subdued, #5B616F); font-size: 13px; }
.sora-plan .tutor-btn { grid-column: 1 / -1; justify-content: center; }
.sora-co-plan__icon { width: 56px; height: 40px; flex: none; border-radius: 6px; display: grid; place-items: center; background: color-mix(in srgb, var(--tutor-color-primary, #3E64DE) 12%, transparent); color: var(--tutor-color-primary, #3E64DE); }
.sora-co-plan__sub { display: block; font-size: 13px; font-weight: 400; color: var(--tutor-text-subdued, #5B616F); margin-top: 2px; }
.sora-co-plan__fee { display: flex; justify-content: space-between; margin-top: 10px; font-size: 14px; }
.sora-co-plan__fee em { color: var(--tutor-text-subdued, #5B616F); font-style: normal; font-size: 12px; }
.sora-co-plan__note { margin: 10px 0 0; font-size: 13px; color: var(--tutor-text-subdued, #5B616F); line-height: 1.5; }
.sora-subs { display: grid; gap: 20px; }
.sora-subs__head h2 { margin: 0 0 4px; }
.sora-subs__head p { margin: 0; }
.sora-subs__msg { padding: 10px 14px; border-radius: 8px; background: #E7F6EC; color: #12804A; font-weight: 500; }
.sora-subs__msg.is-error { background: #FEF3F2; color: #D92D20; }
.sora-subs__empty { display: grid; justify-items: center; gap: 10px; text-align: center; padding: 48px 20px; border: 1px dashed var(--tutor-border-idle, #E3E5EA); border-radius: 12px; }
.sora-subs__empty h3 { margin: 0; font-size: 18px; color: var(--tutor-text-primary, #212327); }
.sora-subs__empty p { margin: 0 0 6px; color: var(--tutor-text-subdued, #5B616F); }
.sora-subs__empty-icon { color: var(--tutor-color-primary, #3E64DE); }
.sora-subs__list { display: grid; gap: 16px; }
.sora-sub { border: 1px solid var(--tutor-border-idle, #E3E5EA); border-radius: 12px; padding: 20px; background: var(--tutor-surface-base, #fff); display: grid; gap: 16px; }
.sora-sub__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.sora-sub__top h3 { margin: 0 0 4px; font-size: 18px; color: var(--tutor-text-primary, #212327); }
.sora-sub__price { color: var(--tutor-text-subdued, #5B616F); }
.sora-sub__badge { padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; background: #F2F4F7; color: #5B616F; white-space: nowrap; }
.sora-sub__badge--active { background: #E7F6EC; color: #12804A; }
.sora-sub__badge--pending, .sora-sub__badge--past_due, .sora-sub__badge--ending { background: #FFF6E5; color: #B54708; }
.sora-sub__badge--cancelled, .sora-sub__badge--expired { background: #FEF3F2; color: #D92D20; }
.sora-sub__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 0; }
.sora-sub__facts dt { font-size: 12px; color: var(--tutor-text-subdued, #5B616F); margin: 0 0 2px; }
.sora-sub__facts dd { margin: 0; color: var(--tutor-text-primary, #212327); font-weight: 500; }
.sora-sub__note { margin: 0; padding: 10px 12px; border-radius: 8px; background: #FFF6E5; color: #93370D; font-size: 14px; }
.sora-sub__note a { color: inherit; font-weight: 600; }
.sora-sub__actions { display: flex; gap: 8px; border-top: 1px solid var(--tutor-border-idle, #E3E5EA); padding-top: 16px; }
.sora-sub__cancel { border: 1px solid var(--tutor-border-idle, #C3C5CB) !important; background: transparent !important; color: var(--tutor-text-primary, #212327) !important; padding: 6px 14px !important; border-radius: 6px !important; }
.sora-sub__cancel:hover { border-color: #D92D20 !important; color: #D92D20 !important; }

[class*="sora-"][hidden], .sora-admin [hidden] { display: none !important; }
