/* Jerarquía, estados y respuesta compartidos entre participante y administración. */
.lms-app { --motion-ease: cubic-bezier(.2,.8,.2,1); }
.lms-view { animation: lmsViewEnter .32s var(--motion-ease) both; }
@keyframes lmsViewEnter { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.lms-app :is(button, a, input, select, textarea, [contenteditable="true"]):focus-visible, .lms-modal :is(button, input, select, textarea):focus-visible { outline: 3px solid #8db9a6; outline-offset: 3px; }
.lms-nav a { font-size: 14px; transition: background .22s ease, color .22s ease, transform .22s var(--motion-ease), box-shadow .22s ease; }
.lms-nav a:hover { transform: translateX(3px); }
.lms-nav a:active { transform: translateX(1px) scale(.985); }
.primary-action, .outline-action, .danger-action, .round-button, .help-button, .filter-tabs button, .blog-editor-toolbar button { transition: transform .22s var(--motion-ease), box-shadow .22s ease, background-color .22s ease, border-color .22s ease, color .22s ease; }
.primary-action:hover { transform: translateY(-2px); box-shadow: 0 12px 25px rgba(35,73,66,.17); }
.outline-action:hover, .round-button:hover, .help-button:hover { transform: translateY(-2px); border-color: #9bbcad; box-shadow: 0 8px 18px rgba(35,73,66,.09); }
.primary-action:active, .outline-action:active, .danger-action:active, .round-button:active, .help-button:active, .filter-tabs button:active, .blog-editor-toolbar button:active { transform: scale(.97); box-shadow: none; }
.lms-toast { font-size: 13px; animation: lmsToastEnter .3s var(--motion-ease) both; }
@keyframes lmsToastEnter { from { opacity: 0; transform: translateY(14px) scale(.97); } to { opacity: 1; transform: translateY(0) scale(1); } }
.admin-summary-state { padding: 12px 15px; font-size: 12px; line-height: 1.5; }
.admin-summary-state.is-demo { border-color: #d1e2d5; background: #eff6ef; color: #3a604b; }
.admin-stats span, .admin-stats small, .admin-activity-total, .task-list span, .task-list button, .chart-labels { font-size: 12px; line-height: 1.5; }
.admin-stats strong { font-size: 35px; }
.task-list strong { font-size: 14px; }
.task-list li { grid-template-columns: 38px minmax(0, 1fr) auto; }
.admin-panel { min-height: 255px; }
.admin-chart-empty { align-self: center; width: 100%; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; text-align: center; }
.bar-chart:has(.admin-chart-empty) { align-items: center; border-bottom: 0; }
.admin-list-empty { display: grid; justify-items: center; gap: 9px; padding: clamp(30px, 6vw, 65px) 20px; background: #f3f7f2; color: var(--forest-dark); text-align: center; }
.admin-list-empty strong { font-family: "DM Serif Display", Georgia, serif; font-size: clamp(23px, 2.4vw, 31px); font-weight: 400; }
.admin-list-empty span { max-width: 45ch; color: var(--muted); font-size: 13px; line-height: 1.55; }
.admin-list-empty button { margin-top: 7px; font-size: 12px; }
.admin-filter-panel :is(label, input, select), .people-toolbar :is(label, input, select) { font-size: 12px; }
.blog-editor-heading p:not(.eyebrow), .blog-editor-heading [data-blog-editor-state] { font-size: 13px; line-height: 1.5; }
.blog-editor-form { gap: 19px; }
.blog-editor-form label, .blog-editor-form input, .blog-editor-form textarea, .blog-editor-form select, .blog-editor-writing-heading small, .blog-editor-writing-footer small, .blog-editor-details summary, .blog-editor-seo summary { font-size: 13px; }
.blog-editor-form input, .blog-editor-form textarea, .blog-editor-form select { min-height: 42px; }
.blog-editor-toolbar button, .blog-editor-tools summary { min-height: 38px; font-size: 12px; }
.blog-editor-steps { display: flex; flex-wrap: wrap; gap: 6px; padding: 7px; border: 1px solid #dce8df; border-radius: 11px; background: #f3f7f2; }
.blog-editor-steps a, .blog-editor-steps button { min-height: 36px; padding: 7px 11px; border: 0; border-radius: 8px; background: transparent; color: #3d624e; font: 700 12px/1.2 "Poppins", sans-serif; text-decoration: none; cursor: pointer; }
.blog-editor-steps a:hover, .blog-editor-steps button:hover { background: #fff; box-shadow: 0 5px 13px rgba(35,73,66,.08); }
.blog-editor-section-title { margin: 4px 0 -5px; color: var(--forest-dark); font-family: "DM Serif Display", Georgia, serif; font-size: 27px; font-weight: 400; scroll-margin-top: 100px; }
.blog-editor-writing-heading, .blog-editor-details { scroll-margin-top: 100px; }
.blog-editor-writing-heading { padding-top: 14px; border-top: 1px solid #e2eae2; }
.blog-editor-rich { font-size: 17px; }
.blog-editor-details summary small { font-size: 12px; }
.lesson-media-unavailable { display: flex; align-items: center; gap: 15px; min-height: 115px; padding: 22px; border: 1px solid #d2e1d6; border-radius: 13px; background: #eff5ef; color: #294f3d; }
.lesson-media-unavailable > span { display: grid; flex: 0 0 40px; place-items: center; height: 40px; border-radius: 11px; background: #dfece1; font-size: 21px; }
.lesson-media-unavailable strong { font-size: 15px; }
.lesson-media-unavailable p { margin: 4px 0 0; color: #536d5b; font-size: 13px; line-height: 1.55; }
.video-placeholder:has(.lesson-media-unavailable) { margin: 20px 0; background: transparent; }
.continue-card__body .primary-action { min-height: 47px; font-size: 13px; }
.continue-card { grid-template-columns: minmax(220px, .68fr) minmax(0, 1.32fr); min-height: 250px; }
.continue-card__visual { min-height: 250px; padding: 34px; }
.continue-card__visual::after { width: 270px; height: 270px; }
.continue-card__body { padding: clamp(20px, 2.4vw, 31px); }
.continue-card__body h2 { font-size: clamp(27px, 2.5vw, 34px); }
.continue-card__body > p:not(.eyebrow) { line-height: 1.55; }
.continue-card__body .course-meta { margin-bottom: 10px; }
.continue-card__body .primary-action { margin-top: 13px; }
[data-view="inicio"] .welcome-row { margin-bottom: 18px; }
[data-view="inicio"] .section-heading { margin-top: 26px; }
.course-card__access-copy { display: block; min-height: 2.8em; margin: 0 0 12px; color: #4b6658; font-size: 13px; line-height: 1.45; }
.course-access-explainer p { margin: 0 0 20px; color: #405e4e; font-size: 15px; line-height: 1.65; }
.lms-sidebar__account-actions a, .lms-sidebar__account-actions button { min-height: 42px; font-size: 12px; }
.blog-editor-heading__more summary, .course-editor-heading__more summary { min-height: 42px; font-size: 12px; }
.blog-recovery { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 14px; padding: 12px; border: 1px solid #dbcaa3; border-radius: 10px; background: #fff8e6; color: #5e492a; font-size: 13px; }
.blog-recovery[hidden] { display: none; }
.blog-recovery span { flex-basis: 100%; }
.blog-recovery button { min-height: 38px; padding: 7px 11px; border: 1px solid #c8af79; border-radius: 8px; background: #fff; color: #4c3c23; font: inherit; font-weight: 700; cursor: pointer; }
.blog-editor-form label, .blog-editor-form input, .blog-editor-form textarea, .blog-editor-form select { font-size: 14px; }
.blog-editor-toolbar button { min-width: 38px; min-height: 42px; }
.blog-editor-writing-heading small { max-width: 58ch; line-height: 1.5; }
.blog-editor-toolbar [data-blog-format="paragraph"], .blog-editor-toolbar [data-blog-format="heading"] { min-width: 72px; }
.blog-publication-review { display: grid; gap: 7px; margin-bottom: 18px; padding: 16px; border: 1px solid #d2e2d5; border-radius: 12px; background: #edf4ed; }
.blog-publication-review p { margin: 0 0 5px; color: #365a45; font-size: 14px; line-height: 1.55; }
.blog-publication-review strong { color: #244b3b; font-family: Georgia, serif; font-size: 22px; font-weight: 400; }
.blog-publication-review span { color: #536a5a; font-size: 13px; line-height: 1.5; }
.blog-publication-confirm { margin-top: 20px; }
.course-access-matrix { display: grid; gap: 9px; margin: 6px 0 16px; }
.course-access-matrix > div { display: flex; justify-content: space-between; gap: 16px; padding: 13px 15px; border: 1px solid #d7e4da; border-radius: 10px; background: #f5f8f3; }
.course-access-matrix strong { color: #244b3b; }
.course-access-matrix span { color: #4d6958; text-align: right; }
.course-access-matrix__note { color: #56705f; font-size: 13px; line-height: 1.55; }
@media (max-width: 560px) {
  .continue-card { grid-template-columns: 1fr; }
  .continue-card__visual { min-height: 150px; }
  .continue-card__visual::after { width: 210px; height: 210px; }
  .course-access-matrix > div { flex-direction: column; gap: 4px; }
  .course-access-matrix span { text-align: left; }
  .blog-editor-steps { display: grid; grid-template-columns: repeat(2, 1fr); }
  .blog-editor-steps a, .blog-editor-steps button { text-align: center; }
  .blog-editor-heading > div:last-child { flex-wrap: wrap; }
  .blog-editor-heading > div:last-child :is(.outline-action, .primary-action) { min-height: 44px; font-size: 12px; }
  .admin-stats span, .admin-stats small, .task-list span { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .lms-view, .lms-toast { animation: none; }
  .lms-app *, .lms-modal * { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
