@import 'tailwindcss';

@source '../../vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php';
@source '../../storage/framework/views/*.php';
@source '../views/**/*.blade.php';
@source '../js/**/*.js';

@theme {
    --font-sans: 'Instrument Sans', 'Avenir Next', Avenir, ui-sans-serif, system-ui, sans-serif;
    --color-ink: #101828;
    --color-navy: #082b53;
    --color-blue: #0b4aa2;
    --color-paper: #f5f7fb;
}

:root {
    color-scheme: light;
    --brand: #0b4aa2;
    --brand-dark: #07366f;
    --navy: #082b53;
    --ink: #101828;
    --muted: #5d6878;
    --paper: #f5f7fb;
    --soft-blue: #eef5ff;
    --line: #d9e0e9;
    --line-dark: #c5cfdb;
    --gold: #c56a13;
    --accent: #f4b942;
    --green: #14805e;
    --shadow: 0 14px 40px rgba(17, 38, 68, .09);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 140px; }
body { margin: 0; background: #fff; color: var(--ink); font-family: var(--font-sans); text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
img { max-width: 100%; }
.container-shell { width: min(1240px, calc(100% - 3rem)); margin-inline: auto; }

/* Navegación */
.announcement-bar { min-height: 34px; display: flex; align-items: center; background: var(--navy); color: #e8f2ff; font-size: .75rem; letter-spacing: .01em; }
.announcement-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.announcement-inner a { color: white; font-weight: 750; text-decoration: none; }
.site-header { position: sticky; top: 0; z-index: 50; height: 76px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.97); backdrop-filter: blur(14px); }
.header-row { height: 100%; display: flex; align-items: center; gap: 1rem; }
.brand { display: inline-flex; align-items: center; flex: 0 0 auto; gap: .68rem; color: var(--navy); text-decoration: none; font-size: 1.04rem; font-weight: 820; letter-spacing: -.035em; white-space: nowrap; }
.brand-mark { width: 36px; height: 36px; display: grid; place-items: center; position: relative; overflow: hidden; background: var(--brand); color: white; }
.brand-mark::after { content: ''; position: absolute; width: 17px; height: 17px; right: -6px; bottom: -6px; border: 4px solid rgba(255,255,255,.5); transform: rotate(45deg); }
.brand-mark span { position: relative; z-index: 1; font-size: 1rem; font-weight: 900; }
.brand-logo-image { width: auto; max-width: 190px; height: auto; max-height: 42px; display: block; object-fit: contain; }
.brand-light { color: white; }
.explore-link { min-height: 40px; display: inline-flex; align-items: center; padding: .6rem .9rem; border: 1px solid var(--brand); color: var(--brand); text-decoration: none; font-size: .86rem; font-weight: 780; }
.header-search { height: 42px; min-width: 210px; max-width: 400px; flex: 1; display: flex; align-items: center; gap: .65rem; margin-right: auto; padding: 0 .8rem; border: 1px solid var(--line-dark); background: #fff; }
.header-search:focus-within { border-color: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 12%, transparent); }
.header-search svg, .hero-search svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; color: #687587; }
.header-search input { width: 100%; border: 0; outline: 0; color: var(--ink); font-size: .86rem; }
.nav-links { display: flex; align-items: center; gap: .1rem; }
.nav-links a { min-height: 40px; display: inline-flex; align-items: center; gap: .3rem; padding: .65rem .62rem; color: #344154; text-decoration: none; font-size: .84rem; font-weight: 680; }
.nav-links a:hover, .nav-links a.active { color: var(--brand); }
.nav-count { min-width: 18px; height: 18px; display: inline-grid; place-items: center; border-radius: 50%; background: var(--brand); color: white; font-size: .65rem; }
.profile-link { gap: .45rem !important; }
.profile-avatar { width: 31px; height: 31px; flex: 0 0 auto; display: inline-grid; place-items: center; border-radius: 50%; background: #dceaff; color: var(--brand-dark); font-size: .75rem; font-weight: 850; }
.header-actions { display: flex; align-items: center; gap: .55rem; }
.mobile-toggle { display: none; min-height: 40px; padding: .55rem .75rem; border: 1px solid var(--line-dark); background: white; color: var(--navy); font-weight: 750; }
.mobile-only { display: none !important; }

/* Elementos compartidos */
.btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; padding: .7rem 1.05rem; border: 1px solid transparent; border-radius: 3px; text-decoration: none; font-size: .88rem; font-weight: 780; line-height: 1.1; transition: background .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--brand); color: white; box-shadow: 0 7px 18px color-mix(in srgb, var(--brand) 20%, transparent); }
.btn-primary:hover { background: var(--brand-dark); }
.btn-secondary { border-color: var(--brand); background: white; color: var(--brand); }
.btn-secondary:hover { background: var(--soft-blue); }
.btn-light { background: white; color: var(--navy); }
.btn-danger { border-color: #efc7c1; background: #fff2f0; color: #a23426; }
.btn-small { min-height: 34px; padding: .45rem .7rem; font-size: .78rem; }
.btn-wide { width: 100%; margin-top: .55rem; }
.text-link { color: var(--brand); text-decoration: none; font-size: .86rem; font-weight: 790; white-space: nowrap; }
.text-link span { margin-left: .25rem; }
.section { padding: 5.5rem 0; }
.section-tight { padding: 3.2rem 0 5rem; }
.eyebrow { display: inline-flex; align-items: center; gap: .55rem; color: var(--brand); font-size: .7rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.eyebrow::before { content: ''; width: 22px; height: 2px; background: currentColor; }
.eyebrow-light { color: #b9d6fa; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2.1rem; }
.section-heading h2 { max-width: 760px; margin: .65rem 0 0; color: var(--navy); font-size: clamp(2rem, 3.7vw, 3.15rem); line-height: 1.08; letter-spacing: -.045em; font-weight: 760; }
.section-heading p { max-width: 490px; margin: 0; color: var(--muted); line-height: 1.7; }
.compact-heading { align-items: center; }
.panel { border: 1px solid var(--line); border-radius: 4px; background: white; box-shadow: 0 5px 20px rgba(17, 38, 68, .035); }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.35rem; border-bottom: 1px solid #e8edf3; }
.panel-head h2, .panel-head h3 { margin: 0; color: var(--navy); font-size: 1.02rem; }
.panel-body { padding: 1.35rem; }
.stack { display: grid; gap: 1rem; }
.alert { position: relative; z-index: 45; width: min(1180px,calc(100% - 2rem)); margin: 1rem auto 0; padding: .9rem 1rem; border-radius: 3px; font-size: .86rem; }
.alert-success { border: 1px solid #b9ddcf; background: #edf9f4; color: #176048; }
.alert-error { border: 1px solid #ecc9c3; background: #fff2f0; color: #973a2d; }

/* Inicio */
.hero { position: relative; overflow: hidden; border-bottom: 1px solid #dce5f0; background: #edf4fc; }
.hero::before { content: ''; position: absolute; inset: 0 50% 0 0; background: linear-gradient(110deg,#edf4fc 70%,rgba(237,244,252,0)); z-index: 1; pointer-events: none; }
.hero-grid { min-height: 575px; display: grid; grid-template-columns: 1.02fr .98fr; align-items: stretch; position: relative; }
.hero-content { align-self: center; position: relative; z-index: 3; max-width: 700px; padding: 4.6rem 3.5rem 4.6rem 0; }
.hero h1 { margin: 1rem 0 1.25rem; color: var(--navy); font-size: clamp(3rem, 5.5vw, 5.35rem); line-height: .98; letter-spacing: -.064em; font-weight: 775; }
.hero h1 span { color: var(--brand); }
.hero-copy { max-width: 620px; margin: 0; color: #445268; font-size: 1.08rem; line-height: 1.72; }
.hero-search { max-width: 660px; height: 60px; display: flex; align-items: center; gap: .8rem; margin-top: 1.8rem; padding-left: 1rem; border: 1px solid #afbdcd; background: white; box-shadow: 0 8px 24px rgba(17, 38, 68, .08); }
.hero-search input { min-width: 0; flex: 1; border: 0; outline: 0; color: var(--ink); }
.hero-search button { align-self: stretch; min-width: 104px; border: 0; background: var(--brand); color: white; font-weight: 800; }
.hero-search button:hover { background: var(--brand-dark); }
.hero-topics { display: flex; flex-wrap: wrap; gap: .55rem .8rem; margin-top: .95rem; color: #526175; font-size: .76rem; }
.hero-topics a { color: var(--brand-dark); font-weight: 740; }
.hero-visual { position: relative; min-height: 575px; margin-right: calc((100vw - min(1240px, calc(100vw - 3rem))) / -2); }
.hero-visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#edf4fc 0%,rgba(237,244,252,.08) 28%,rgba(8,43,83,.05)); }
.hero-visual > img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 56% center; }
.hero-credential { position: absolute; z-index: 2; left: 2.2rem; bottom: 2.2rem; display: flex; align-items: center; gap: .8rem; min-width: 280px; padding: 1rem 1.1rem; border-left: 4px solid var(--accent); background: rgba(255,255,255,.96); box-shadow: var(--shadow); }
.credential-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #eaf7f1; color: var(--green); font-weight: 900; }
.hero-credential small, .hero-credential strong { display: block; }
.hero-credential small { margin-bottom: .2rem; color: var(--muted); font-size: .7rem; }
.hero-credential strong { color: var(--navy); font-size: .88rem; }
.proof-bar { border-bottom: 1px solid var(--line); background: white; }
.proof-grid { min-height: 112px; display: grid; grid-template-columns: repeat(4,1fr); }
.proof-grid > div { display: flex; flex-direction: column; justify-content: center; padding: 1.4rem 1.6rem; border-left: 1px solid var(--line); }
.proof-grid > div:last-child { border-right: 1px solid var(--line); }
.proof-grid strong { color: var(--navy); font-size: 1rem; }
.proof-grid span { margin-top: .3rem; color: var(--muted); font-size: .74rem; line-height: 1.45; }
.featured-section { background: white; }
.category-section { border-block: 1px solid #e3e8ee; background: var(--paper); }
.category-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; border: 1px solid var(--line-dark); background: var(--line-dark); }
.category-card { min-height: 105px; display: grid; grid-template-columns: 50px 1fr auto; align-items: center; gap: 1rem; padding: 1.3rem 1.5rem; background: white; text-decoration: none; transition: background .16s, color .16s; }
.category-card:hover { background: var(--navy); color: white; }
.category-index { color: var(--brand); font-size: .72rem; font-weight: 850; letter-spacing: .1em; }
.category-card:hover .category-index, .category-card:hover .category-card span { color: #bad7f8; }
.category-card strong { display: block; color: var(--navy); font-size: 1.05rem; }
.category-card:hover strong { color: white; }
.category-card div span { display: block; margin-top: .35rem; color: var(--muted); font-size: .78rem; }
.category-arrow { color: var(--brand); font-size: 1.2rem; }
.learning-value { background: var(--navy); color: white; }
.value-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(3rem,8vw,7rem); align-items: center; }
.value-copy h2 { margin: 1rem 0 1.25rem; max-width: 570px; font-size: clamp(2.4rem,4.5vw,4rem); line-height: 1.06; letter-spacing: -.05em; }
.value-copy p { max-width: 560px; margin-bottom: 2rem; color: #c4d4e6; line-height: 1.78; }
.value-list article { display: grid; grid-template-columns: 48px 1fr; gap: 1rem; padding: 1.45rem 0; border-top: 1px solid rgba(255,255,255,.17); }
.value-list article:last-child { border-bottom: 1px solid rgba(255,255,255,.17); }
.value-list article > span { color: #8fb7e8; font-size: .75rem; font-weight: 850; letter-spacing: .12em; }
.value-list strong { display: block; margin-bottom: .45rem; font-size: 1.06rem; }
.value-list p { margin: 0; color: #b8cbe0; font-size: .88rem; line-height: 1.65; }
.closing-cta { background: #fff; }
.closing-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 5rem; align-items: center; padding: 3.5rem; border: 1px solid var(--line); border-left: 6px solid var(--brand); }
.closing-grid h2 { margin: .65rem 0 0; color: var(--navy); font-size: clamp(2.1rem,4vw,3.4rem); line-height: 1.08; letter-spacing: -.05em; }
.closing-grid p { color: var(--muted); line-height: 1.7; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.2rem; }

/* Tarjetas de curso */
.course-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.45rem; }
.course-card { min-width: 0; display: flex; flex-direction: column; border: 1px solid var(--line); background: white; transition: border-color .18s, box-shadow .18s, transform .18s; }
.course-card:hover { border-color: #aebdce; box-shadow: var(--shadow); transform: translateY(-3px); }
.course-cover { position: relative; aspect-ratio: 16/9; display: block; overflow: hidden; background: #dce8f5; }
.course-cover img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .35s ease; }
.course-card:hover .course-cover img { transform: scale(1.025); }
.cover-placeholder { width: 100%; height: 100%; display: grid; place-items: center; padding: 1.5rem; background: linear-gradient(135deg,#dceaff,#e9f4ef); color: var(--navy); text-align: center; font-weight: 800; }
.course-badge { position: absolute; left: .75rem; top: .75rem; padding: .38rem .6rem; background: white; color: var(--brand-dark); box-shadow: 0 4px 12px rgba(8,43,83,.14); font-size: .67rem; font-weight: 850; }
.course-body { flex: 1; display: flex; flex-direction: column; padding: 1.15rem 1.2rem 1.2rem; }
.course-provider { color: var(--brand); font-size: .71rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.course-card h3 { margin: .52rem 0 .45rem; color: var(--navy); font-size: 1.08rem; line-height: 1.36; letter-spacing: -.018em; }
.course-card h3 a { text-decoration: none; }
.course-card h3 a::after { content: ''; position: absolute; }
.course-instructor { margin: 0; color: var(--muted); font-size: .77rem; }
.course-rating-row { min-height: 22px; display: flex; align-items: center; gap: .35rem; margin-top: .7rem; font-size: .74rem; }
.course-rating-row strong { color: #8c4a0c; }
.stars { color: #c7670d; letter-spacing: .02em; }
.course-rating-row small { color: var(--muted); }
.new-course { color: var(--green); font-weight: 780; }
.course-facts { display: flex; flex-wrap: wrap; gap: .35rem .9rem; margin-top: .6rem; color: #596678; font-size: .72rem; }
.course-facts span + span::before { content: '•'; margin-right: .75rem; color: #a4afbd; }
.course-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: .9rem; }
.course-price { color: var(--navy); font-size: .9rem; font-weight: 850; }
.course-footer > a { width: 28px; height: 28px; display: grid; place-items: center; background: var(--soft-blue); color: var(--brand); text-decoration: none; font-weight: 900; }

/* Catálogo */
.page-head { padding: 3.3rem 0; border-bottom: 1px solid #d9e3ef; background: var(--soft-blue); }
.breadcrumbs { display: flex; gap: .5rem; margin-bottom: 1.35rem; color: #687689; font-size: .75rem; }
.breadcrumbs a { text-decoration: none; }
.page-head-grid { display: grid; grid-template-columns: 1fr .7fr; gap: 4rem; align-items: end; }
.page-head h1 { margin: .65rem 0 0; color: var(--navy); font-size: clamp(2.65rem,5vw,4.6rem); line-height: .99; letter-spacing: -.06em; }
.page-head h1 span { color: var(--brand); }
.page-head p { max-width: 560px; margin: 0 0 .35rem; color: #4d5d71; line-height: 1.75; }
.catalog-layout { display: grid; grid-template-columns: 255px minmax(0,1fr); gap: 2.5rem; align-items: start; }
.catalog-sidebar { position: sticky; top: 100px; border-top: 3px solid var(--navy); }
.filter-heading { display: flex; justify-content: space-between; padding: 1.05rem 0; border-bottom: 1px solid var(--line); color: var(--navy); }
.filter-heading { list-style: none; cursor: default; }
.filter-heading::-webkit-details-marker { display: none; }
.filter-heading span, .filter-heading a { color: var(--brand); font-size: .75rem; font-weight: 750; }
.catalog-filters { display: grid; gap: 1.1rem; padding-top: 1.1rem; }
.catalog-filters .btn { width: 100%; }
.catalog-toolbar { min-height: 49px; display: flex; align-items: start; justify-content: space-between; gap: 1rem; margin-bottom: 1.2rem; border-bottom: 1px solid var(--line); }
.catalog-toolbar strong { display: block; color: var(--navy); font-size: .95rem; }
.catalog-toolbar div > span { color: var(--muted); font-size: .76rem; }
.sort-form { display: flex; align-items: center; gap: .45rem; color: var(--muted); font-size: .76rem; }
.sort-form select { border: 0; outline: 0; background: transparent; color: var(--navy); font-weight: 740; }
.catalog-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.catalog-grid .course-card h3 { font-size: 1rem; }

/* Formularios */
.form-label { display: block; margin-bottom: .42rem; color: #344154; font-size: .76rem; font-weight: 790; }
.form-input, .form-select, .form-textarea { width: 100%; min-height: 44px; border: 1px solid #c8d1dc; border-radius: 3px; background: white; padding: .72rem .78rem; color: var(--ink); outline: none; transition: border .15s, box-shadow .15s; }
.form-input:focus, .form-select:focus, .form-textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 11%, transparent); }
.form-textarea { min-height: 125px; resize: vertical; }
.form-help { margin-top: .35rem; color: var(--muted); font-size: .74rem; line-height: 1.5; }
.form-error { margin-top: .3rem; color: #a33e27; font-size: .76rem; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.field-full { grid-column: 1/-1; }
.check-row { display: flex; align-items: flex-start; gap: .6rem; color: #435064; font-size: .86rem; }
.check-row input { margin-top: .18rem; accent-color: var(--brand); }
.filter-bar { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr auto; gap: .7rem; margin-bottom: 1.5rem; padding: 1rem; border: 1px solid var(--line); background: white; }

/* Ficha de curso */
.course-hero { min-height: 500px; padding: 2rem 0 3.5rem; background: var(--navy); color: white; }
.breadcrumbs-light { color: #9fb7d2; }
.breadcrumbs-light a { color: #d8e8f8; }
.course-hero-grid { display: grid; grid-template-columns: minmax(0,1fr) 390px; gap: 4rem; align-items: start; }
.course-hero-copy { max-width: 790px; padding-top: 1.5rem; }
.course-kicker { color: #a9ccf4; font-size: .73rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.course-hero h1 { margin: .75rem 0 1rem; font-size: clamp(2.6rem,5vw,4.5rem); line-height: 1.02; letter-spacing: -.055em; }
.course-hero-copy > p { max-width: 760px; margin: 0; color: #d3dfed; font-size: 1.08rem; line-height: 1.68; }
.course-social-proof { display: flex; flex-wrap: wrap; gap: .75rem 1.3rem; margin-top: 1.2rem; color: #d8e5f2; font-size: .8rem; }
.course-social-proof strong { color: #ffd383; }
.course-social-proof .stars { color: #f4b942; }
.instructor-line { display: flex; align-items: center; gap: .65rem; margin-top: 1.2rem; color: #c6d6e7; font-size: .82rem; }
.instructor-line strong { color: white; }
.course-hero-facts { display: flex; flex-wrap: wrap; gap: .7rem 1.4rem; margin-top: 1.35rem; color: #bcd0e5; font-size: .75rem; }
.course-purchase { position: relative; z-index: 3; overflow: hidden; margin-bottom: 0; border: 0; box-shadow: 0 22px 54px rgba(0,18,40,.28); color: var(--ink); }
.course-purchase .course-cover { aspect-ratio: 16/9; }
.purchase-body { padding: 1.35rem 1.45rem 1.5rem; }
.purchase-label { color: var(--muted); font-size: .72rem; }
.purchase-price { margin: .25rem 0 .45rem; color: var(--navy); font-size: 1.85rem; font-weight: 850; letter-spacing: -.035em; }
.save-course { width: 100%; margin-top: .8rem; border: 0; background: transparent; color: var(--brand); font-size: .78rem; font-weight: 780; }
.purchase-includes { display: grid; gap: .62rem; margin: 1.2rem 0 0; padding: 1.1rem 0 0; border-top: 1px solid var(--line); list-style: none; color: #4f5d70; font-size: .77rem; }
.purchase-includes span { margin-right: .45rem; color: var(--green); font-weight: 900; }
.course-anchor-nav { position: sticky; top: 76px; z-index: 30; border-bottom: 1px solid var(--line); background: white; }
.course-anchor-nav .container-shell { min-height: 58px; display: flex; align-items: center; gap: 2rem; }
.course-anchor-nav a { color: #526074; text-decoration: none; font-size: .78rem; font-weight: 750; }
.course-anchor-nav a:hover { color: var(--brand); }
.course-main { padding-top: 4.5rem; }
.course-content-grid { display: grid; grid-template-columns: minmax(0,1fr) 260px; gap: 4rem; align-items: start; padding-right: 430px; }
.course-content { min-width: 0; }
.course-block { margin-bottom: 4rem; }
.course-block h2, .outcomes-box h2 { margin: .75rem 0 1rem; color: var(--navy); font-size: clamp(1.8rem,3.3vw,2.6rem); line-height: 1.12; letter-spacing: -.04em; }
.rich-copy { color: #435064; line-height: 1.85; }
.rich-copy p { margin: .8rem 0; }
.outcomes-box { margin: 0 0 4rem; padding: 2rem; border: 1px solid #bed2ec; border-left: 5px solid var(--brand); background: var(--soft-blue); }
.outcomes-box h2 { margin-top: 0; font-size: 1.55rem; }
.outcome-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem 1.5rem; }
.outcome-grid > div { display: grid; grid-template-columns: 22px 1fr; gap: .6rem; align-items: start; }
.outcome-grid span { color: var(--green); font-weight: 900; }
.outcome-grid p { margin: 0; color: #34465d; font-size: .84rem; line-height: 1.6; }
.content-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.content-heading > span { margin-bottom: 1.15rem; color: var(--muted); font-size: .74rem; white-space: nowrap; }
.curriculum-list { border: 1px solid var(--line-dark); }
.curriculum-section { border-bottom: 1px solid var(--line); background: white; }
.curriculum-section:last-child { border-bottom: 0; }
.curriculum-section summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.25rem; background: #f7f9fc; cursor: pointer; list-style: none; }
.curriculum-section summary::-webkit-details-marker { display: none; }
.curriculum-section summary > span:first-child { display: flex; align-items: center; gap: 1rem; }
.curriculum-section summary small { color: var(--brand); font-size: .64rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.curriculum-section summary strong { color: var(--navy); font-size: .9rem; }
.curriculum-section summary > span:last-child { color: var(--muted); font-size: .7rem; }
.course-lesson-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .82rem 1.25rem; border-top: 1px solid #edf0f4; color: #4c5a6c; font-size: .78rem; }
.lesson-play { display: inline-grid; width: 25px; color: var(--brand); }
.course-lesson-row em { margin-left: .45rem; color: var(--brand); font-size: .67rem; font-style: normal; font-weight: 750; }
.instructor-card { display: grid; grid-template-columns: 74px 1fr; gap: 1.4rem; margin-bottom: 4rem; padding: 1.7rem; border: 1px solid var(--line); }
.large-avatar { width: 68px; height: 68px; font-size: 1.4rem; }
.instructor-card h2 { margin: .4rem 0; color: var(--navy); font-size: 1.55rem; }
.instructor-card p { margin: 0; color: var(--muted); line-height: 1.65; }
.review-summary { display: flex; align-items: center; gap: 1rem; margin: 1.5rem 0; }
.review-summary > strong { color: var(--navy); font-size: 3rem; line-height: 1; }
.review-summary div span, .review-summary div small { display: block; }
.review-summary small { margin-top: .3rem; color: var(--muted); font-size: .73rem; }
.review-list { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.review-list article { padding: 1.2rem; border: 1px solid var(--line); }
.review-list article > div { display: flex; align-items: center; gap: .65rem; }
.review-list article strong, .review-list article .stars { display: block; font-size: .78rem; }
.review-list article p { margin: 1rem 0 0; color: #536174; font-size: .82rem; line-height: 1.65; }
.empty-review { padding: 1.4rem; border: 1px solid var(--line); color: var(--muted); font-size: .86rem; }
.course-details-aside { display: grid; gap: 2rem; }
.course-details-aside > div { padding-top: 1rem; border-top: 2px solid var(--navy); }
.course-details-aside h3 { margin: 0 0 .8rem; color: var(--navy); font-size: .9rem; }
.course-details-aside ul { display: grid; gap: .55rem; margin: 0; padding-left: 1rem; color: var(--muted); font-size: .78rem; line-height: 1.55; }
.tag-list { display: flex; flex-wrap: wrap; gap: .4rem; }
.tag-list span, .status { display: inline-flex; padding: .3rem .55rem; border-radius: 99px; background: #edf1f5; color: #4e5c6e; font-size: .66rem; font-weight: 800; }
.review-form { margin-top: 2rem; }

/* Paneles */
.dashboard-page { min-height: 70vh; background: #f4f6f9; }
.dashboard-shell { display: grid; grid-template-columns: 250px minmax(0,1fr); gap: 2rem; padding: 2rem 0 4rem; }
.sidebar { position: sticky; top: 98px; align-self: start; overflow: hidden; border: 1px solid var(--line); background: white; }
.sidebar-profile { display: flex; align-items: center; gap: .7rem; padding: 1.15rem; border-bottom: 1px solid var(--line); }
.sidebar-profile strong, .sidebar-profile span { display: block; }
.sidebar-profile strong { max-width: 150px; overflow: hidden; color: var(--navy); font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-profile div > span { margin-top: .15rem; color: var(--muted); font-size: .68rem; }
.sidebar-label { display: block; padding: 1rem .95rem .45rem; color: #8994a3; font-size: .61rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.sidebar > a { display: flex; align-items: center; gap: .7rem; margin: .15rem .55rem; padding: .7rem .75rem; border-left: 3px solid transparent; color: #536074; text-decoration: none; font-size: .8rem; font-weight: 680; }
.sidebar > a > span { width: 18px; color: #758296; text-align: center; }
.sidebar > a:hover, .sidebar > a.active { border-left-color: var(--brand); background: var(--soft-blue); color: var(--brand-dark); }
.sidebar-logout { margin: .75rem .55rem .55rem; padding-top: .7rem; border-top: 1px solid var(--line); }
.sidebar-logout button { display: flex; width: 100%; align-items: center; gap: .7rem; padding: .7rem .75rem; border: 0; border-left: 3px solid transparent; background: transparent; color: #687588; font: inherit; font-size: .8rem; font-weight: 600; text-align: left; cursor: pointer; }
.sidebar-logout button span { width: 18px; color: #8792a1; text-align: center; }
.sidebar-logout button:hover { border-left-color: #a83742; background: #fff3f4; color: #8f3039; }
.dashboard-main { min-width: 0; }
.dashboard-title { min-height: 100px; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.2rem; }
.dashboard-kicker { color: var(--brand); font-size: .65rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.dashboard-title h1 { margin: .25rem 0 0; color: var(--navy); font-size: 2.25rem; letter-spacing: -.045em; }
.dashboard-title p { margin: .3rem 0 0; color: var(--muted); }
.metrics { display: grid; grid-template-columns: repeat(4,1fr); gap: .8rem; margin-bottom: 1.2rem; }
.metric { min-height: 98px; display: flex; align-items: center; gap: .9rem; padding: 1rem; border: 1px solid var(--line); background: white; }
.metric-icon { width: 35px; height: 35px; flex: 0 0 auto; display: grid; place-items: center; background: var(--soft-blue); color: var(--brand); font-weight: 850; }
.metric div > span { color: var(--muted); font-size: .7rem; }
.metric strong { display: block; margin-top: .2rem; color: var(--navy); font-size: 1.45rem; letter-spacing: -.035em; }
.learning-panel .panel-head > div h2 { margin-top: .18rem; }
.dashboard-course-list { display: grid; }
.dashboard-course { display: grid; grid-template-columns: 145px minmax(0,1fr) auto; gap: 1.15rem; align-items: center; padding: 1.1rem 1.25rem; border-bottom: 1px solid var(--line); }
.dashboard-course:last-child { border-bottom: 0; }
.dashboard-course-cover { aspect-ratio: 16/9; overflow: hidden; background: var(--soft-blue); }
.dashboard-course-cover img { width: 100%; height: 100%; object-fit: cover; }
.dashboard-course-cover > span { width: 100%; height: 100%; display: grid; place-items: center; color: var(--brand); font-weight: 850; }
.dashboard-course-info small { color: var(--brand); font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.dashboard-course-info h3 { margin: .25rem 0 .65rem; color: var(--navy); font-size: .96rem; }
.progress-label { display: flex; justify-content: space-between; color: var(--muted); font-size: .68rem; }
.progress-track { height: 6px; overflow: hidden; margin-top: .35rem; border-radius: 8px; background: #e3e8ee; }
.progress-fill { height: 100%; border-radius: inherit; background: var(--brand); }
.certificate-panel { margin-top: 1rem; }
.certificate-actions { display: flex; align-items: center; justify-content: flex-end; gap: .45rem; white-space: nowrap; }
.table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th { padding: .75rem .9rem; background: #f7f9fb; color: #6a7686; text-align: left; font-size: .67rem; letter-spacing: .07em; text-transform: uppercase; }
.data-table td { padding: .9rem; border-top: 1px solid #e9edf2; vertical-align: middle; font-size: .82rem; }
.status-published, .status-paid, .status-active, .status-approved { background: #e4f5ed; color: #176047; }
.status-review, .status-pending { background: #fff2d8; color: #7a5917; }
.status-rejected, .status-suspended { background: #fde8e4; color: #953b2d; }
.empty-state { display: grid; justify-items: center; gap: .5rem; padding: 3.5rem 1.2rem; color: var(--muted); text-align: center; }
.empty-state strong { color: var(--navy); font-size: 1.05rem; }
.empty-state .btn { margin-top: .75rem; }

/* Personalización */
.settings-form { display: grid; gap: 1rem; }
.settings-section-nav { position: sticky; top: 82px; z-index: 20; display: flex; align-items: center; gap: .25rem; overflow-x: auto; margin-bottom: 1rem; padding: .4rem; border: 1px solid #dce3eb; border-radius: 11px; background: rgba(255,255,255,.94); box-shadow: 0 8px 24px rgba(20,43,73,.055); backdrop-filter: blur(12px); }
.settings-section-nav a { flex: 1 0 auto; padding: .55rem .7rem; border-radius: 7px; color: #5b6c80; font-size: .64rem; font-weight: 580; text-align: center; text-decoration: none; }
.settings-section-nav a.active { background: var(--brand); color: white; box-shadow: 0 4px 12px color-mix(in srgb,var(--brand) 20%,transparent); }
.settings-main [data-settings-section] { display: none; }
.settings-main[data-active-section="identidad"] [data-settings-section="identidad"],.settings-main[data-active-section="apariencia"] [data-settings-section="apariencia"],.settings-main[data-active-section="inicio"] [data-settings-section="inicio"],.settings-main[data-active-section="atencion"] [data-settings-section="atencion"],.settings-main[data-active-section="correo"] [data-settings-section="correo"],.settings-main[data-active-section="cobros"] [data-settings-section="cobros"],.settings-main[data-active-section="seguridad"] [data-settings-section="seguridad"],.settings-main[data-active-section="operacion"] [data-settings-section="operacion"] { display: block; }
.settings-section-nav a:hover { background: color-mix(in srgb,var(--brand) 7%,white); color: var(--brand); }
.settings-panel { overflow: hidden; scroll-margin-top: 145px; border: 1px solid #d8e1ea; border-radius: 15px; background: white; box-shadow: 0 10px 30px rgba(23,48,80,.045); }
.settings-panel .panel-head { align-items: start; padding: 1.2rem 1.4rem; border-bottom: 1px solid #e5ebf1; background: linear-gradient(110deg,#fbfdff,#f6f9fc); }
.settings-panel .panel-body { padding: 1.35rem 1.4rem; }
.settings-panel .panel-head > div { display: flex; align-items: center; gap: .7rem; }
.settings-panel .panel-head p { max-width: 420px; margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.55; text-align: right; }
.settings-step { color: var(--brand); font-size: .65rem; font-weight: 900; letter-spacing: .1em; }
.settings-grid { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(240px,.55fr); gap: 2rem; }
.settings-fields { display: grid; gap: 1rem; }
.brand-upload-list { display: grid; gap: .8rem; }
.brand-upload-field { display: grid; gap: .5rem; }
.brand-upload-card { position: relative; display: grid; grid-template-columns: 62px minmax(0,1fr) auto; align-items: center; gap: 1rem; min-height: 90px; padding: .85rem; border: 1px solid #cbd6e2; border-left: 3px solid #9aacbe; background: #fbfcfe; cursor: pointer; transition: border-color .18s ease,background .18s ease,box-shadow .18s ease; }
.brand-upload-card:hover,.brand-upload-card:focus-within { border-color: var(--brand); border-left-color: var(--brand); background: #f5f9fe; box-shadow: 0 8px 22px rgba(20,58,101,.08); }
.brand-upload-card.is-selected { border-left-color: #26805c; background: #f5faf7; }
.brand-upload-card > input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.upload-thumb { display: grid; width: 62px; height: 58px; overflow: hidden; place-items: center; border: 1px solid #d7e0e9; background: white; color: #8290a0; font-size: .56rem; font-weight: 600; letter-spacing: .11em; }
.upload-thumb img { width: 100%; height: 100%; display: block; object-fit: contain; }
.upload-card-dark .upload-thumb { border-color: #234768; background: var(--navy); color: #bed0e2; }
.upload-card-favicon .upload-thumb { width: 58px; height: 58px; padding: 10px; background: #eef2f6; }
.upload-card-favicon .upload-thumb img { border-radius: 3px; object-fit: cover; }
.upload-content { min-width: 0; }
.upload-content strong,.upload-content small,.upload-file-name { display: block; }
.upload-content strong { color: #24364d; font-size: .82rem; }
.upload-content small { margin-top: .25rem; color: #778597; font-size: .67rem; line-height: 1.45; }
.upload-file-name { max-width: 330px; overflow: hidden; margin-top: .45rem; color: #53667c; font-size: .63rem; text-overflow: ellipsis; white-space: nowrap; }
.is-selected .upload-file-name { color: #247451; font-weight: 600; }
.upload-button { padding: .55rem .7rem; border: 1px solid #aebdcd; background: white; color: #30475f; font-size: .65rem; font-weight: 600; white-space: nowrap; }
.brand-upload-card:hover .upload-button { border-color: var(--brand); color: var(--brand); }
.remove-asset { margin-left: .2rem; }
.brand-preview { position: sticky; top: 96px; align-self: start; overflow: hidden; min-height: 220px; border: 1px solid #cbd6e2; background: white; box-shadow: 0 14px 35px rgba(20,51,85,.07); }
.brand-preview-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; border-bottom: 1px solid var(--line); }
.preview-label { display: block; color: #42536a; font-size: .62rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.brand-preview-head > span:last-child { color: #7c8998; font-size: .58rem; }
.preview-browser-bar { display: flex; align-items: center; gap: .45rem; padding: .55rem .85rem; border-bottom: 1px solid var(--line); background: #f3f6f9; color: #7a8797; font-size: .58rem; }
.preview-browser-dot { width: 7px; height: 7px; border-radius: 50%; background: #60a47f; }
.preview-brand-surface { min-height: 126px; padding: 1.2rem; }
.preview-brand { display: flex; align-items: center; gap: .65rem; color: var(--navy); }
.preview-brand img { width: auto; max-width: 190px; max-height: 50px; object-fit: contain; }
.preview-brand strong { font-size: .92rem; }
.preview-brand-surface > p { margin: .9rem 0 0; color: var(--muted); font-size: .72rem; line-height: 1.55; }
.preview-dark-surface { padding: .9rem 1rem 1rem; background: var(--navy); }
.preview-dark-surface > span { display: block; margin-bottom: .65rem; color: #87a1bb; font-size: .52rem; letter-spacing: .09em; text-transform: uppercase; }
.preview-brand-light { color: white; }
.preview-brand-light .brand-mark { border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.1); color: white; }
.favicon-preview { display: flex; align-items: center; gap: .7rem; padding: .85rem 1rem; border-top: 1px solid var(--line); color: var(--muted); }
.favicon-preview-image { display: grid; width: 34px; height: 34px; overflow: hidden; place-items: center; border: 1px solid #d5dee8; border-radius: 4px; background: #eef2f6; color: var(--navy); font-size: .7rem; font-weight: 600; }
.favicon-preview-image img { width: 100%; height: 100%; display: block; object-fit: cover; }
.favicon-preview > span:last-child strong,.favicon-preview > span:last-child small { display: block; }
.favicon-preview > span:last-child strong { color: #405269; font-size: .65rem; }
.favicon-preview > span:last-child small { margin-top: .1rem; color: #7a8796; font-size: .58rem; }
.remove-asset { margin-top: .55rem; color: #8a4d3b; font-size: .72rem; }
.color-settings-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: .8rem; }
.color-field { display: flex; align-items: center; gap: .75rem; padding: .9rem; border: 1px solid var(--line); cursor: pointer; }
.color-field input { width: 44px; height: 44px; flex: 0 0 auto; padding: 0; border: 0; background: transparent; }
.color-field strong, .color-field small { display: block; }
.color-field strong { color: var(--navy); font-size: .76rem; }
.color-field small { margin-top: .2rem; color: var(--muted); font-size: .65rem; }
.palette-builder { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(285px,.55fr); align-items: start; gap: 1.5rem; }
.palette-builder-main { min-width: 0; }
.palette-name-field { max-width: 420px; }
.palette-presets { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; margin: 1.2rem 0; }
.palette-presets > span { margin-right: .25rem; color: #748195; font-size: .64rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; }
.palette-presets button { display: inline-flex; align-items: center; gap: .45rem; min-height: 34px; padding: .4rem .65rem; border: 1px solid #d3dce6; border-radius: 8px; background: white; color: #43556b; font: inherit; font-size: .66rem; font-weight: 560; }
.palette-presets button:hover,.palette-presets button.is-active { border-color: var(--brand); background: color-mix(in srgb,var(--brand) 5%,white); color: var(--brand); }
.palette-presets button i { display: flex; width: 27px; height: 14px; overflow: hidden; border-radius: 4px; background: linear-gradient(90deg,var(--preset-a) 0 33%,var(--preset-b) 33% 66%,var(--preset-c) 66%); }
.palette-color-groups { display: grid; gap: .9rem; }
.palette-color-group { padding: .85rem; border: 1px solid #e0e7ee; border-radius: 11px; background: #f9fbfd; }
.palette-group-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 0 .7rem; }
.palette-group-heading strong { color: #354b64; font-size: .7rem; font-weight: 680; }
.palette-group-heading span { color: #8794a4; font-size: .58rem; letter-spacing: .06em; text-transform: uppercase; }
.palette-color-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; }
.palette-color-field { --field-color: #0b4aa2; display: grid; grid-template-columns: 42px minmax(0,1fr) 74px; align-items: center; gap: .75rem; min-height: 72px; padding: .7rem; border: 1px solid #d9e1e9; border-radius: 10px; background: #fbfcfe; cursor: pointer; transition: border-color .16s ease,box-shadow .16s ease,background .16s ease; }
.palette-color-field:hover,.palette-color-field:focus-within { border-color: color-mix(in srgb,var(--field-color) 65%,#cbd5e0); background: white; box-shadow: 0 7px 20px rgba(20,43,73,.06); }
.palette-color-field [type="color"] { width: 42px; height: 42px; padding: 3px; overflow: hidden; border: 1px solid #ccd6e0; border-radius: 9px; background: white; cursor: pointer; }
.palette-color-field span { min-width: 0; }
.palette-color-field strong,.palette-color-field small { display: block; }
.palette-color-field strong { color: #293c53; font-size: .72rem; font-weight: 600; }
.palette-color-field small { margin-top: .2rem; color: #7a8797; font-size: .59rem; line-height: 1.35; }
.palette-color-field [data-hex-input] { width: 74px; padding: .45rem .4rem; border: 1px solid #d5dee7; border-radius: 6px; background: white; color: #53657a; outline: 0; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: .6rem; text-align: center; text-transform: uppercase; }
.palette-color-field [data-hex-input]:focus { border-color: var(--field-color); }
.palette-preview { --preview-brand:#0b4aa2;--preview-dark:#082b53;--preview-accent:#f4b942;--preview-soft:#f5f7fb;--preview-background:#fcfdff;--preview-panel:#fff;--preview-text:#172235;--preview-muted:#5d6878;--preview-success:#14805e; position: sticky; top: 96px; overflow: hidden; border: 1px solid #cfd9e4; border-radius: 12px; background: var(--preview-background); box-shadow: 0 16px 38px rgba(20,43,73,.09); }
.palette-preview-head { display: flex; align-items: center; justify-content: space-between; padding: .8rem .9rem; border-bottom: 1px solid #dfe5ec; background: var(--preview-panel); }
.palette-preview-head span { color: var(--preview-text); font-size: .65rem; font-weight: 650; text-transform: uppercase; letter-spacing: .08em; }
.palette-preview-head small { color: var(--preview-muted); font-size: .55rem; }
.palette-preview-browser { padding-bottom: .8rem; background: var(--preview-background); }
.palette-preview-nav { display: flex; align-items: center; gap: .45rem; height: 40px; padding: 0 .7rem; border-bottom: 1px solid color-mix(in srgb,var(--preview-muted) 20%,transparent); background: var(--preview-panel); }
.palette-preview-nav b { display: grid; width: 23px; height: 23px; place-items: center; border-radius: 6px; background: var(--preview-brand); color: white; font-size: .58rem; }
.palette-preview-nav span { width: 35px; height: 4px; border-radius: 4px; background: color-mix(in srgb,var(--preview-muted) 32%,transparent); }
.palette-preview-nav i { width: 18px; height: 18px; margin-left: auto; border-radius: 50%; background: color-mix(in srgb,var(--preview-brand) 13%,white); }
.palette-preview-hero { padding: 1.25rem 1rem; background: var(--preview-soft); }
.palette-preview-hero small { color: var(--preview-brand); font-size: .5rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.palette-preview-hero strong { display: block; max-width: 225px; margin-top: .35rem; color: var(--preview-dark); font-size: 1.15rem; font-weight: 560; line-height: 1.12; letter-spacing: -.035em; }
.palette-preview-hero p { margin: .5rem 0 .8rem; color: var(--preview-muted); font-size: .58rem; line-height: 1.5; }
.palette-preview-hero button { padding: .5rem .7rem; border: 0; border-radius: 6px; background: var(--preview-brand); color: white; font: inherit; font-size: .55rem; font-weight: 600; box-shadow: 0 5px 12px color-mix(in srgb,var(--preview-brand) 22%,transparent); }
.palette-preview-cards { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; padding: .8rem .8rem 0; }
.palette-preview-cards article { padding: .65rem; border: 1px solid color-mix(in srgb,var(--preview-muted) 20%,transparent); border-radius: 7px; background: var(--preview-panel); }
.palette-preview-cards i { display: block; height: 27px; margin-bottom: .5rem; border-radius: 5px; background: linear-gradient(135deg,var(--preview-brand),var(--preview-dark)); }
.palette-preview-cards article:last-child i { background: linear-gradient(135deg,var(--preview-accent),color-mix(in srgb,var(--preview-accent) 35%,var(--preview-soft))); }
.palette-preview-cards strong,.palette-preview-cards span { display: block; }
.palette-preview-cards strong { color: var(--preview-text); font-size: .56rem; font-weight: 620; }
.palette-preview-cards span { margin-top: .18rem; color: var(--preview-muted); font-size: .48rem; }
.palette-strip { display: grid; grid-template-columns: repeat(9,1fr); height: 13px; }
.palette-strip i { min-width: 0; }
.hero-admin-preview { position: relative; align-self: start; overflow: hidden; aspect-ratio: 16/10; border: 1px solid var(--line); background: var(--paper); }
.hero-admin-preview img { width: 100%; height: 100%; display: block; object-fit: cover; }
.hero-admin-preview span { position: absolute; left: .65rem; bottom: .65rem; padding: .35rem .55rem; background: rgba(255,255,255,.94); color: var(--navy); font-size: .65rem; font-weight: 800; }
.settings-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 1rem; border: 1px solid #d9e2eb; border-radius: 12px; background: rgba(255,255,255,.9); box-shadow: 0 8px 22px rgba(23,48,80,.04); color: #718196; font-size: .7rem; }
.settings-field-group { display: grid; gap: .9rem; padding: 1rem; border: 1px solid #e0e7ee; border-radius: 11px; background: #fbfcfe; }
.settings-field-group-head { display: flex; align-items: start; justify-content: space-between; gap: 1.25rem; padding-bottom: .75rem; border-bottom: 1px solid #e7ecf1; }
.settings-field-group-head > div { display: grid; gap: .18rem; }
.settings-field-group-head span { color: var(--brand); font-size: .58rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.settings-field-group-head h3 { margin: 0; color: #30465e; font-size: .86rem; font-weight: 640; letter-spacing: -.015em; }
.settings-field-group-head p { max-width: 310px; margin: 0; color: #78879a; font-size: .64rem; line-height: 1.45; text-align: right; }
.settings-contact-layout { display: grid; grid-template-columns: minmax(250px,.8fr) minmax(0,1.2fr); gap: 1rem; }
.settings-commerce-layout { display: grid; grid-template-columns: minmax(0,1fr) 235px; align-items: stretch; gap: 1rem; }
.settings-info-card { display: flex; flex-direction: column; justify-content: center; padding: 1.1rem; border: 1px solid color-mix(in srgb,var(--brand) 20%,#dae4ee); border-radius: 11px; background: color-mix(in srgb,var(--brand) 5%,#fff); }
.settings-info-card span { color: var(--brand); font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.settings-info-card strong { margin-top: .45rem; color: #334b65; font-size: .82rem; font-weight: 650; line-height: 1.35; }
.settings-info-card p { margin: .5rem 0 0; color: #748397; font-size: .64rem; line-height: 1.5; }

/* Contenido público */
.content-admin-page { padding-bottom: 3rem; }
.content-admin-title { min-height: auto; padding: .4rem 0 1.25rem; }
.content-section-nav { display: flex; gap: .35rem; margin-bottom: 1rem; padding: .38rem; border: 1px solid #dce4ec; border-radius: 11px; background: white; }
.content-section-nav a { display: flex; flex: 1; align-items: center; justify-content: space-between; gap: .7rem; padding: .68rem .8rem; border-radius: 8px; color: #627287; font-size: .72rem; font-weight: 620; text-decoration: none; }
.content-section-nav a:hover { background: #f3f7fb; color: var(--brand); }
.content-section-nav a.active { background: var(--brand); color: white; box-shadow: 0 5px 14px color-mix(in srgb,var(--brand) 22%,transparent); }
.content-section-nav small { display: grid; min-width: 22px; height: 22px; place-items: center; border-radius: 999px; background: rgba(255,255,255,.18); font-size: .6rem; }
.content-section-nav a:not(.active) small { background: #eaf0f6; color: #627287; }
.content-admin-panel,.content-record { overflow: hidden; border: 1px solid #d8e1ea; border-radius: 14px; box-shadow: 0 9px 27px rgba(23,48,80,.04); }
.content-admin-panel .panel-head { display: flex; align-items: start; justify-content: space-between; gap: 1.5rem; padding: 1.2rem 1.4rem; border-bottom: 1px solid #e5ebf1; background: linear-gradient(110deg,#fbfdff,#f6f9fc); }
.content-admin-panel .panel-head h2 { margin: .25rem 0 0; color: #2d435b; font-size: 1.05rem; font-weight: 640; }
.content-admin-panel .panel-head p { max-width: 350px; margin: 0; color: #718095; font-size: .7rem; line-height: 1.55; text-align: right; }
.content-admin-form,.content-record-form { display: grid; gap: .9rem; padding: 1.25rem 1.4rem; }
.content-form-section { display: grid; gap: .8rem; padding: 1rem; border: 1px solid #e0e7ee; border-radius: 10px; background: #fbfcfe; }
.content-form-section > label { display: grid; gap: .35rem; }
.content-form-section-head { display: flex; align-items: start; justify-content: space-between; gap: 1rem; padding-bottom: .7rem; border-bottom: 1px solid #e5ebf0; }
.content-form-section-head span { color: var(--brand); font-size: .59rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.content-form-section-head p { max-width: 280px; margin: 0; color: #7a889a; font-size: .63rem; line-height: 1.45; text-align: right; }
.content-editor { min-height: 210px; resize: vertical; line-height: 1.6; }
.content-editor-short { min-height: 130px; }
.content-seo { border: 1px solid #e0e7ee; border-radius: 10px; background: white; }
.content-seo summary { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem .95rem; color: #52677e; cursor: pointer; font-size: .7rem; font-weight: 620; }
.content-seo summary span { color: #8491a1; font-size: .6rem; font-weight: 500; }
.content-seo > div { padding: .2rem .95rem .95rem; }
.content-seo label { display: grid; gap: .35rem; }
.content-form-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: .1rem; }
.content-records { display: grid; gap: .7rem; margin-top: 2rem; }
.content-records-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: 0 .1rem .2rem; }
.content-records-head h2 { margin: .3rem 0 0; color: var(--navy); font-size: 1.15rem; font-weight: 640; letter-spacing: -.025em; }
.content-records-head > p { margin: 0; color: #79889b; font-size: .66rem; }
.content-record > summary { display: grid; grid-template-columns: 32px minmax(0,1fr) auto auto auto; gap: .75rem; align-items: center; padding: .85rem 1rem; cursor: pointer; list-style: none; }
.content-record > summary::-webkit-details-marker { display: none; }
.content-record[open] > summary { border-bottom: 1px solid #e4eaf0; background: #fbfdff; }
.content-record-icon { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 8px; background: color-mix(in srgb,var(--brand) 9%,white); color: var(--brand); font-size: .72rem; font-weight: 750; }
.content-record summary > span:nth-child(2) { display: grid; min-width: 0; gap: .15rem; }
.content-record summary strong { overflow: hidden; color: #3b5067; font-size: .76rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.content-record summary small { overflow: hidden; color: #8190a2; font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.content-record summary > i { color: #8794a3; font-style: normal; transition: transform .15s ease; }
.content-record[open] summary > i { transform: rotate(180deg); }
.content-position-input { max-width: 140px; }
.content-empty { display: grid; gap: .35rem; padding: 2.5rem 1.25rem; color: #78879a; text-align: center; }
.content-empty strong { color: #3b5067; font-size: .9rem; }
.content-empty span { font-size: .72rem; }
.content-overview { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-bottom: 1rem; overflow: hidden; border: 1px solid #dbe4ec; border-radius: 13px; background: white; }
.content-overview article { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: .75rem; align-items: center; padding: .85rem 1rem; border-right: 1px solid #e5ebf0; }
.content-overview article:last-child { border-right: 0; }
.content-overview article > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; background: color-mix(in srgb,var(--brand) 8%,white); color: var(--brand); font-size: .58rem; font-weight: 800; }
.content-overview article div { display: grid; gap: .12rem; }
.content-overview strong { color: #31475f; font-size: .75rem; font-weight: 650; }
.content-overview small { color: #7d8b9c; font-size: .6rem; }
.content-section-nav a > span { display: grid; gap: .12rem; }
.content-section-nav a > span strong { font-size: .72rem; font-weight: 650; }
.content-section-nav a > span small { display: block; width: auto; height: auto; background: transparent !important; color: inherit !important; font-size: .58rem; font-weight: 450; opacity: .72; }
.content-section-nav a > b { display: grid; min-width: 26px; height: 26px; place-items: center; border-radius: 999px; background: #eaf0f6; color: #63758a; font-size: .6rem; }
.content-section-nav a.active > b { background: rgba(255,255,255,.18); color: white; }
.content-editor-layout { display: grid; grid-template-columns: minmax(0,1fr) 285px; gap: 1rem; align-items: start; }
.content-editor-main,.content-editor-aside { display: grid; gap: 1rem; min-width: 0; }
.content-form-section-head > div { display: grid; gap: .18rem; }
.content-form-section-head h3 { margin: 0; color: #33495f; font-size: .86rem; font-weight: 640; }
.content-form-section label,.content-side-card label { display: grid; gap: .35rem; }
.content-excerpt { min-height: 90px; resize: vertical; }
.slug-field { display: flex; align-items: stretch; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #f5f8fb; }
.slug-field > span { display: flex; align-items: center; padding: 0 .65rem; border-right: 1px solid var(--line); color: #7d8b9c; font-size: .62rem; white-space: nowrap; }
.slug-field .form-input { border: 0; border-radius: 0; box-shadow: none; }
.content-side-card { display: grid; gap: .85rem; padding: 1rem; border: 1px solid #dde5ed; border-radius: 11px; background: white; }
.content-side-card > header { display: grid; gap: .2rem; padding-bottom: .7rem; border-bottom: 1px solid #e6ebf0; }
.content-side-card > header span { color: var(--brand); font-size: .56rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.content-side-card > header strong { color: #33495f; font-size: .78rem; font-weight: 650; }
.content-side-card textarea { min-height: 86px; resize: vertical; }
.content-switches { display: grid; gap: .25rem; }
.content-switches > label { display: grid; grid-template-columns: auto minmax(0,1fr); gap: .6rem; align-items: start; padding: .62rem .65rem; border-radius: 8px; cursor: pointer; }
.content-switches > label:hover { background: #f4f8fb; }
.content-switches input { margin-top: .12rem; accent-color: var(--brand); }
.content-switches span { display: grid; gap: .14rem; }
.content-switches strong { color: #435970; font-size: .66rem; font-weight: 620; }
.content-switches small { color: #8290a0; font-size: .58rem; line-height: 1.35; }
.character-count { justify-self: end; margin-top: -.2rem; color: #8a96a5; font-size: .56rem; }
.advanced-editor { overflow: hidden; border: 1px solid #d9e2ea; border-radius: 10px; background: white; }
.advanced-editor:focus-within { border-color: color-mix(in srgb,var(--brand) 55%,#d9e2ea); box-shadow: 0 0 0 3px color-mix(in srgb,var(--brand) 8%,transparent); }
.advanced-editor-toolbar { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .45rem .55rem; border-bottom: 1px solid #e2e8ee; background: #f7f9fb; }
.advanced-editor-toolbar > div { display: flex; align-items: center; gap: .2rem; flex-wrap: wrap; }
.advanced-editor-toolbar button { min-height: 29px; padding: .3rem .48rem; border: 1px solid transparent; border-radius: 6px; background: transparent; color: #51667d; font: inherit; font-size: .61rem; cursor: pointer; }
.advanced-editor-toolbar button:hover,.advanced-editor-toolbar button.active { border-color: #d8e1e9; background: white; color: var(--brand); }
.advanced-editor-modes { padding-left: .45rem; border-left: 1px solid #dfe6ed; }
.advanced-editor .content-editor { width: 100%; min-height: 260px; border: 0; border-radius: 0; box-shadow: none; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: .68rem; line-height: 1.7; }
.advanced-editor.is-short .content-editor { min-height: 165px; }
.advanced-editor-preview { min-height: 260px; padding: 1rem 1.1rem; color: #364b61; font-size: .76rem; line-height: 1.75; }
.advanced-editor.is-short .advanced-editor-preview { min-height: 165px; }
.advanced-editor-foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .45rem .65rem; border-top: 1px solid #e6ebf0; background: #fbfcfd; }
.advanced-editor-foot span { color: #4d6a5e; font-size: .56rem; font-weight: 650; }
.advanced-editor-foot small { color: #8a96a5; font-size: .54rem; }
.public-copy h2,.public-copy h3 { margin: 1.3em 0 .45em; color: var(--navy); line-height: 1.25; }
.public-copy p { margin: 0 0 1em; }
.public-copy ul,.public-copy ol { padding-left: 1.35rem; }
.public-copy blockquote { margin: 1rem 0; padding: .75rem 1rem; border-left: 3px solid var(--brand); background: #f5f8fb; color: #53677d; }
.public-copy a { color: var(--brand); font-weight: 620; }
.faq-editor-layout { grid-template-columns: minmax(0,1fr) 300px; }
.public-page-head > .container-shell,.faq-public-head > .container-shell { width: min(920px,calc(100% - 2rem)); }
.public-page-head p,.faq-public-head p { max-width: 700px; margin: .75rem 0 0; color: #66788d; font-size: 1rem; line-height: 1.65; }
.public-page-layout { display: grid; grid-template-columns: minmax(0,1fr) 230px; gap: 1.25rem; width: min(1050px,calc(100% - 2rem)); align-items: start; }
.public-page-article { min-width: 0; padding: clamp(1.5rem,4vw,3.25rem); color: #344a60; font-size: .95rem; line-height: 1.85; }
.public-page-aside { position: sticky; top: 100px; display: grid; gap: .45rem; padding: 1rem; border: 1px solid #dce4ec; border-radius: 12px; background: white; }
.public-page-aside span { color: var(--brand); font-size: .57rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.public-page-aside strong { color: #334a61; font-size: .75rem; line-height: 1.4; }
.public-page-aside small { color: #8290a0; font-size: .61rem; line-height: 1.45; }
.public-page-aside a { margin-top: .5rem; color: var(--brand); font-size: .66rem; font-weight: 650; text-decoration: none; }
.faq-public-head { padding-bottom: 4.5rem; }
.faq-search { display: flex; max-width: 650px; align-items: center; gap: .65rem; margin-top: 1.35rem; padding: .2rem .4rem .2rem 1rem; border: 1px solid rgba(255,255,255,.35); border-radius: 11px; background: white; box-shadow: 0 14px 35px rgba(9,28,48,.18); }
.faq-search > span { color: #718297; font-size: 1.2rem; }
.faq-search input { width: 100%; min-height: 48px; border: 0; outline: 0; color: #253b52; font: inherit; font-size: .78rem; }
.faq-public-layout { width: min(920px,calc(100% - 2rem)); }
.faq-category-nav { display: flex; gap: .4rem; margin-bottom: 1rem; overflow-x: auto; padding-bottom: .25rem; }
.faq-category-nav button { flex: 0 0 auto; padding: .55rem .8rem; border: 1px solid #dce4ec; border-radius: 999px; background: white; color: #5d7086; font: inherit; font-size: .65rem; font-weight: 600; cursor: pointer; }
.faq-category-nav button:hover,.faq-category-nav button.active { border-color: var(--brand); background: var(--brand); color: white; }
.faq-public-list { display: grid; gap: .65rem; }
.faq-public-card { overflow: hidden; border: 1px solid #dbe3eb; border-radius: 12px; background: white; box-shadow: 0 8px 24px rgba(28,50,76,.035); }
.faq-public-card.is-featured { border-color: color-mix(in srgb,var(--brand) 32%,#dbe3eb); }
.faq-public-card > summary { display: grid; grid-template-columns: minmax(0,1fr) 32px; gap: 1rem; align-items: center; padding: 1rem 1.15rem; cursor: pointer; list-style: none; }
.faq-public-card > summary::-webkit-details-marker { display: none; }
.faq-public-card > summary > span { display: grid; gap: .22rem; }
.faq-public-card summary small { color: var(--brand); font-size: .56rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.faq-public-card summary strong { color: #30465d; font-size: .82rem; font-weight: 620; line-height: 1.45; }
.faq-public-card summary i { justify-self: start; margin-bottom: .15rem; padding: .2rem .42rem; border-radius: 999px; background: color-mix(in srgb,var(--brand) 9%,white); color: var(--brand); font-size: .52rem; font-style: normal; font-weight: 700; }
.faq-public-card summary b { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: #f2f6f9; color: #65778c; font-size: 1rem; font-weight: 400; transition: transform .16s ease; }
.faq-public-card[open] summary b { transform: rotate(45deg); }
.faq-public-card > div { padding: 0 1.15rem 1.15rem; border-top: 1px solid #e9edf2; color: #52667b; font-size: .76rem; line-height: 1.7; }
.settings-secondary-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1rem; }
.settings-extra { margin-top: 1rem; }
.settings-page-title { padding-bottom: .7rem; }
.settings-intro { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: .25rem 0 1rem; border: 1px solid #dce4eb; border-radius: 14px; overflow: hidden; background: linear-gradient(110deg,#f8fbff,#fff); }
.settings-intro > div { display: grid; grid-template-columns: 30px minmax(0,1fr); column-gap: .7rem; align-items: center; padding: .85rem 1rem; border-right: 1px solid #e2e8ef; }
.settings-intro > div:last-child { border-right: 0; }
.settings-intro span { grid-row: span 2; display: grid; width: 30px; height: 30px; place-items: center; border-radius: 8px; background: color-mix(in srgb,var(--brand) 10%,white); color: var(--brand); font-size: .62rem; font-weight: 800; }
.settings-intro strong { color: #2d4057; font-size: .75rem; font-weight: 650; }
.settings-intro small { margin-top: .12rem; color: #78879a; font-size: .63rem; }
.settings-workspace-summary { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin: .2rem 0 1rem; padding: 1rem 1.15rem; border: 1px solid #dbe4ed; border-radius: 13px; background: linear-gradient(115deg,#f8fbff,#fff); }
.settings-workspace-summary > div:first-child { display: grid; gap: .16rem; }
.settings-workspace-summary > div:first-child > span { color: var(--brand); font-size: .56rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.settings-workspace-summary strong { color: #30465e; font-size: .78rem; font-weight: 650; }
.settings-workspace-summary small { color: #78879a; font-size: .62rem; }
.settings-summary-status { display: flex; align-items: center; gap: .65rem; min-width: 205px; padding-left: 1rem; border-left: 1px solid #e1e7ed; }
.settings-summary-status > i { width: 9px; height: 9px; flex: 0 0 auto; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 5px color-mix(in srgb,var(--green) 10%,transparent); }
.settings-summary-status > span { display: grid; gap: .15rem; }
.payment-settings-body { display: grid; gap: 1.6rem; }
.payment-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: .2rem .1rem 0; }
.payment-section-heading h3 { margin: .28rem 0 .25rem; color: #2d435b; font-size: 1.05rem; font-weight: 640; letter-spacing: -.02em; }
.payment-section-heading p { margin: 0; color: #758497; font-size: .7rem; }
.payment-security-note { padding: .36rem .6rem; border-radius: 999px; background: color-mix(in srgb,var(--green) 9%,white); color: #257156; font-size: .6rem; font-weight: 700; white-space: nowrap; }
.payment-provider-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; align-items: start; }
.payment-provider-card { overflow: hidden; border: 1px solid #dce4ec; border-radius: 12px; background: #fff; transition: border-color .16s ease,box-shadow .16s ease; }
.payment-provider-card[open] { border-color: #c9d8e7; box-shadow: 0 9px 24px rgba(23,48,80,.055); }
.payment-provider-card > summary { display: grid; grid-template-columns: 38px minmax(0,1fr) auto auto; align-items: center; gap: .7rem; padding: .85rem; cursor: pointer; list-style: none; }
.payment-provider-card > summary::-webkit-details-marker { display: none; }
.payment-provider-card summary > span:nth-child(2) { display: grid; gap: .12rem; min-width: 0; }
.payment-provider-card summary strong { color: #30465e; font-size: .76rem; font-weight: 660; }
.payment-provider-card summary small { overflow: hidden; color: #8290a1; font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
.payment-provider-card summary > i { color: #8b98a7; font-style: normal; transition: transform .15s ease; }
.payment-provider-card[open] summary > i { transform: rotate(180deg); }
.payment-provider-logo { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; color: white; font-size: .82rem; font-weight: 800; }
.payment-provider-logo.is-stripe { background: #635bff; }
.payment-provider-logo.is-paypal { background: #073b80; }
.payment-provider-logo.is-mercado { background: #168ddb; }
.payment-provider-logo.is-offline { background: #45566a; }
.payment-provider-state { padding: .3rem .5rem; border-radius: 999px; background: #fff3dc; color: #87621e; font-size: .55rem; font-weight: 700; white-space: nowrap; }
.payment-provider-state.is-ready { background: #e9f7ef; color: #237254; }
.payment-provider-form { display: grid; gap: .8rem; padding: .95rem; border-top: 1px solid #e5eaf0; background: #fbfcfe; }
.payment-provider-form > label,.payment-provider-form .form-grid > label { display: grid; gap: .35rem; }
.switch-row { display: flex !important; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem; border: 1px solid #e0e7ee; border-radius: 9px; background: #fff; cursor: pointer; }
.switch-row > span { display: grid; gap: .12rem; }
.switch-row strong { color: #3a4f67; font-size: .7rem; font-weight: 650; }
.switch-row small { color: #8190a2; font-size: .59rem; }
.switch-row input { position: absolute; opacity: 0; pointer-events: none; }
.switch-row > i { position: relative; width: 36px; height: 20px; flex: 0 0 auto; border-radius: 999px; background: #cbd4de; transition: background .16s ease; }
.switch-row > i::after { content: ''; position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; border-radius: 50%; background: white; box-shadow: 0 1px 4px rgba(21,37,57,.25); transition: transform .16s ease; }
.switch-row input:checked + i { background: var(--brand); }
.switch-row input:checked + i::after { transform: translateX(16px); }
.payment-test-row { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding-top: .2rem; }
.payment-test-row span { color: #7d8b9d; font-size: .6rem; text-align: right; }
.payment-test-row span.is-success { color: #237254; }
.payment-test-row span.is-error { color: #a44539; }
.settings-actions { position: sticky; bottom: .75rem; z-index: 15; backdrop-filter: blur(12px); }
.settings-form.has-unsaved-changes .settings-actions { border-color: color-mix(in srgb,var(--accent) 52%,#d9e2eb); box-shadow: 0 10px 28px rgba(69,53,23,.1); }
.settings-operation { scroll-margin-top: 145px; margin-top: 2.8rem; }
.settings-operation-heading { display: flex; justify-content: space-between; gap: 1.5rem; margin: 0 0 1rem; padding: 0 .2rem; }
.settings-operation-heading h2 { margin: .35rem 0 .45rem; color: var(--navy); font-size: clamp(1.5rem,3vw,2rem); letter-spacing: -.035em; }
.settings-operation-heading p { max-width: 680px; margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.6; }
.settings-management-card { overflow: hidden; }
.settings-management-card .panel-head,.settings-review-panel .panel-head,.settings-permissions .panel-head { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.settings-management-card .panel-head h2,.settings-review-panel .panel-head h2,.settings-permissions .panel-head h2 { margin: 0; color: #273a51; font-size: 1.02rem; font-weight: 620; letter-spacing: -.02em; }
.settings-management-card .panel-head p,.settings-review-panel .panel-head p,.settings-permissions .panel-head p { max-width: 490px; margin: .3rem 0 0; color: #738196; font-size: .72rem; line-height: 1.5; }
.settings-count { display: grid; min-width: 29px; height: 29px; padding: 0 .4rem; place-items: center; border-radius: 999px; background: #edf3f8; color: #38536e; font-size: .68rem; font-weight: 700; }
.settings-card-stack { display: grid; gap: .65rem; }
.settings-disclosure { border: 1px solid #dde5ed; border-radius: 10px; background: #fbfcfe; }
.settings-disclosure[open] { background: white; }
.settings-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem .95rem; color: #334b65; cursor: pointer; list-style: none; }
.settings-disclosure > summary::-webkit-details-marker { display: none; }
.settings-disclosure summary > span:first-child { display: grid; gap: .15rem; }
.settings-disclosure summary strong { font-size: .74rem; font-weight: 650; }
.settings-disclosure summary small { color: #77869a; font-size: .64rem; line-height: 1.4; }
.settings-disclosure summary > span:last-child { color: var(--brand); font-size: 1rem; font-weight: 400; }
.settings-compact-form { display: grid; gap: .8rem; padding: .95rem; border-top: 1px solid #e3e9ef; }
.settings-compact-form label { display: grid; gap: .35rem; }
.settings-compact-form .btn { justify-self: start; }
.settings-list { display: grid; gap: 0; padding: .1rem .95rem .8rem; }
.settings-list-label { padding: .8rem 0 .5rem; color: #7c8b9e; font-size: .59rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.settings-list > div { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .62rem 0; border-top: 1px solid #edf0f4; }
.settings-list > div > span { display: grid; gap: .12rem; min-width: 0; }
.settings-list strong { overflow: hidden; color: #40536a; font-size: .72rem; font-weight: 620; text-overflow: ellipsis; white-space: nowrap; }
.settings-list small { color: #8290a0; font-size: .62rem; white-space: nowrap; }
.settings-list > div > span small { color: #778699; }
.settings-row-actions { display: flex; flex-wrap: wrap; gap: .35rem; }
.review-score { display: inline-flex; margin-right: .35rem; color: #946d17; font-size: .68rem; font-weight: 700; }
.settings-permissions { overflow: hidden; }
.permission-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
.permission-choice { display: flex; align-items: start; gap: .6rem; min-height: 58px; padding: .72rem; border: 1px solid #dde5ed; border-radius: 9px; background: #fbfcfe; cursor: pointer; }
.permission-choice:hover { border-color: color-mix(in srgb,var(--brand) 45%,#dce4ed); background: white; }
.permission-choice input { margin-top: .18rem; accent-color: var(--brand); }
.permission-choice span { display: grid; gap: .12rem; }
.permission-choice strong { color: #3a4e66; font-size: .7rem; font-weight: 620; }
.permission-choice small { color: #8a97a7; font-size: .56rem; }
.permission-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #e4eaf0; color: #748397; font-size: .7rem; }
.admin-course-actions { display: flex; flex-wrap: wrap; gap: .35rem .8rem; margin-top: .55rem; }
.admin-course-actions a { color: var(--brand); font-size: .67rem; font-weight: 600; text-decoration: none; }
.admin-course-actions a:hover { text-decoration: underline; text-underline-offset: 2px; }
.course-moderation-form { display: grid; min-width: 235px; gap: .45rem; }
.course-moderation-form .btn { justify-self: start; }

/* Aprendizaje */
.learn-shell { display: grid; grid-template-columns: 330px minmax(0,1fr); min-height: calc(100vh - 110px); }
.lesson-nav { border-right: 1px solid var(--line); background: #f5f7fa; padding: 1.25rem; }
.lesson-nav a { display: flex; gap: .65rem; padding: .75rem; color: #526074; text-decoration: none; font-size: .81rem; line-height: 1.4; }
.lesson-nav a.active { border-left: 3px solid var(--brand); background: white; color: var(--brand-dark); box-shadow: 0 4px 15px rgba(17,38,68,.05); }
.lesson-content { width: min(100%, 980px); padding: clamp(2rem,5vw,4.5rem); }
.lesson-content article { color: #39485b; line-height: 1.85; }
.builder-section { margin-bottom: .8rem; padding: 1rem; border: 1px solid var(--line); background: white; }
.builder-lesson { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .5rem; padding: .65rem .75rem; border: 1px solid #e8edf2; background: #fafbfd; }

/* Constructor de cursos */
.course-builder-page { min-width: 0; padding-bottom: 4rem; }
.builder-page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; padding: .7rem 0 1.5rem; border-bottom: 1px solid var(--line); }
.builder-page-header h1 { max-width: 760px; margin: .4rem 0 .25rem; color: var(--navy); font-size: clamp(2rem,3.5vw,3rem); font-weight: 540; line-height: 1.08; letter-spacing: -.045em; }
.builder-page-header p { margin: 0; color: var(--muted); font-size: .84rem; }
.builder-back { display: block; width: max-content; margin-bottom: 1.2rem; color: #617084; font-size: .7rem; font-weight: 600; text-decoration: none; }
.builder-back:hover { color: var(--brand); }
.builder-header-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: .5rem; }
.publication-readiness { display: grid; grid-template-columns: 185px minmax(0,1fr) auto; align-items: center; gap: 1.2rem; margin-top: 1rem; padding: 1rem; border: 1px solid #ead9b5; border-left: 4px solid #d49a32; border-radius: 12px; background: #fffbf3; box-shadow: 0 8px 26px rgba(73,54,20,.045); }
.publication-readiness.is-ready { border-color: #cce3d8; border-left-color: var(--green); background: #f5fbf8; }
.publication-score span,.publication-score strong,.publication-score small { display: block; }
.publication-score span { color: #776747; font-size: .55rem; font-weight: 650; letter-spacing: .07em; text-transform: uppercase; }
.publication-score strong { margin-top: .15rem; color: #3d4c5c; font-size: 1.2rem; font-weight: 590; }
.publication-score i { display: block; height: 4px; overflow: hidden; margin-top: .35rem; border-radius: 4px; background: #eee7d9; }
.publication-score i b { display: block; height: 100%; background: #d49a32; }
.is-ready .publication-score i b { background: var(--green); }
.publication-score small { margin-top: .35rem; color: #81775f; font-size: .54rem; line-height: 1.4; }
.publication-checklist { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .35rem .8rem; }
.publication-checklist > div { display: flex; align-items: center; gap: .4rem; color: #796f5d; font-size: .58rem; }
.publication-checklist > div > span { color: #b38029; }
.publication-checklist > div.is-complete { color: #526b60; }
.publication-checklist > div.is-complete > span { color: var(--green); }
.publication-readiness > a { color: var(--brand); font-size: .62rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.builder-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid var(--line); border-top: 0; background: white; }
.builder-summary > div { padding: 1.1rem 1.25rem; border-right: 1px solid var(--line); }
.builder-summary > div:last-child { border-right: 0; }
.builder-summary span,.builder-summary strong { display: block; }
.builder-summary span { color: #7b8796; font-size: .62rem; letter-spacing: .06em; text-transform: uppercase; }
.builder-summary strong { margin-top: .3rem; color: #24364d; font-size: 1rem; font-weight: 600; }
.builder-roadmap { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin: 1.5rem 0; border: 1px solid var(--line); background: #f8fafc; }
.builder-roadmap a { display: flex; align-items: center; gap: .75rem; padding: .9rem 1rem; border-right: 1px solid var(--line); color: inherit; text-decoration: none; }
.builder-roadmap a:last-child { border-right: 0; }
.builder-roadmap a:hover { background: white; }
.builder-roadmap b { display: grid; width: 29px; height: 29px; flex: 0 0 29px; place-items: center; border: 1px solid #cbd5e0; color: var(--brand); font-size: .61rem; }
.builder-roadmap span,.builder-roadmap strong,.builder-roadmap small { display: block; }
.builder-roadmap strong { color: #2c3f57; font-size: .72rem; font-weight: 650; }
.builder-roadmap small { margin-top: .12rem; color: #8a96a5; font-size: .58rem; }
.builder-workspace,.builder-stage { scroll-margin-top: 95px; }
.builder-workspace { padding: 1.75rem; border: 1px solid #cfd8e3; background: #f5f7fa; }
.builder-stage { margin-top: 1.5rem; padding: 1.75rem; border: 1px solid var(--line); background: white; }
.builder-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.25rem; }
.builder-section-heading h2 { margin: .35rem 0 .2rem; color: var(--navy); font-size: 1.55rem; font-weight: 550; letter-spacing: -.035em; }
.builder-section-heading p { max-width: 690px; margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.55; }
.builder-create-disclosure { position: relative; flex: 0 0 auto; }
.builder-create-disclosure > summary { list-style: none; }
.builder-create-disclosure > summary::-webkit-details-marker,.builder-action-menu > summary::-webkit-details-marker { display: none; }
.builder-create-disclosure[open] { width: 100%; flex-basis: 100%; }
.builder-section-heading:has(.builder-create-disclosure[open]) { align-items: start; flex-wrap: wrap; }
.builder-create-disclosure[open] > summary { margin-left: auto; }
.builder-form { margin-top: 1rem; padding: 1.2rem; border: 1px solid #d9e1ea; background: #f8fafc; }
.builder-form .form-label { font-size: .68rem; font-weight: 620; }
.builder-form-actions { display: flex; justify-content: flex-end; }
.builder-checks { display: flex; flex-wrap: wrap; gap: .8rem 1.4rem; padding: .8rem 0 .15rem; }
.builder-guidance { display: flex; align-items: center; gap: .7rem; margin-bottom: 1.1rem; color: #8190a1; font-size: .65rem; }
.builder-guidance strong { margin-right: .35rem; color: #44566c; }
.builder-guidance span { padding: .35rem .55rem; border: 1px solid #d6dee8; background: white; color: #52647a; }
.builder-guidance i { color: #a6b0bc; font-style: normal; }
.module-stack { display: grid; gap: 1rem; }
.module-card { border: 1px solid #ccd6e1; background: white; box-shadow: 0 8px 24px rgba(18,43,72,.04); }
.module-card-head { display: grid; grid-template-columns: 72px minmax(0,1fr) auto; align-items: center; min-height: 104px; border-bottom: 1px solid var(--line); }
.module-number { display: grid; height: 100%; place-content: center; border-right: 1px solid var(--line); background: #f5f8fb; text-align: center; }
.module-number span { color: #8491a0; font-size: .54rem; letter-spacing: .11em; text-transform: uppercase; }
.module-number strong { margin-top: .22rem; color: var(--brand); font-family: Georgia,"Times New Roman",serif; font-size: 1.7rem; font-weight: 400; }
.module-title { min-width: 0; padding: 1rem 1.2rem; }
.module-meta { display: flex; flex-wrap: wrap; gap: .35rem .8rem; margin-bottom: .25rem; color: #8190a1; font-size: .58rem; text-transform: uppercase; letter-spacing: .06em; }
.module-meta span + span::before { margin-right: .8rem; color: #c1c8d1; content: "·"; }
.module-title h3 { margin: 0; overflow-wrap: anywhere; color: #24374f; font-size: 1.1rem; font-weight: 580; letter-spacing: -.025em; }
.module-title p { margin: .35rem 0 0; color: #758294; font-size: .72rem; line-height: 1.45; }
.module-actions,.lesson-actions { display: flex; align-items: center; gap: .3rem; }
.module-actions { padding: 0 1rem; }
.icon-button { display: grid; min-width: 31px; height: 31px; padding: 0 .45rem; place-items: center; border: 1px solid #d6dee8; background: white; color: #617084; cursor: pointer; font: inherit; font-size: .7rem; }
.icon-button:hover { border-color: #aab9ca; color: var(--brand); }
.builder-action-menu { position: relative; }
.builder-action-menu > summary { list-style: none; }
.builder-action-menu > div { position: absolute; z-index: 10; top: calc(100% + .35rem); right: 0; width: 175px; padding: .35rem; border: 1px solid #d5dee8; background: white; box-shadow: 0 12px 35px rgba(18,42,70,.15); }
.builder-action-menu button { width: 100%; padding: .55rem .65rem; border: 0; background: transparent; color: #405269; cursor: pointer; font: inherit; font-size: .68rem; text-align: left; }
.builder-action-menu button:hover { background: #f2f5f8; }
.builder-action-menu .danger-link { color: #a33a43; }
.builder-inline-editor { border-bottom: 1px solid var(--line); background: #fbfcfd; }
.builder-inline-editor > summary { padding: .7rem 1.1rem; color: #51647b; cursor: pointer; font-size: .68rem; font-weight: 600; }
.builder-inline-editor:not([open]) > summary { display: none; }
.builder-inline-editor .builder-form { margin: 0; border-width: 1px 0 0; }
.module-content { padding: 1rem 1.15rem 1.15rem; }
.lesson-list-head { display: grid; grid-template-columns: minmax(0,1fr) 80px 120px; padding: 0 .65rem .55rem 82px; color: #8a96a5; font-size: .55rem; letter-spacing: .08em; text-transform: uppercase; }
.lesson-list-head span:nth-child(2),.lesson-list-head span:last-child { text-align: center; }
.lesson-list { border: 1px solid #e0e6ed; }
.lesson-row { display: grid; grid-template-columns: 35px 35px minmax(0,1fr) 80px 120px; align-items: center; min-height: 72px; border-bottom: 1px solid #e6ebf0; }
.lesson-row:last-of-type { border-bottom: 0; }
.lesson-sequence { color: #98a3b0; font-size: .6rem; text-align: center; }
.lesson-kind { display: grid; width: 28px; height: 28px; place-items: center; border: 1px solid #c9d5e1; background: #f3f7fa; color: var(--brand); font-size: .65rem; font-weight: 650; }
.lesson-info { min-width: 0; padding: .7rem .8rem; }
.lesson-info span,.lesson-info strong,.lesson-info small { display: block; }
.lesson-info span { color: #7d8a9a; font-size: .55rem; letter-spacing: .07em; text-transform: uppercase; }
.lesson-info strong { margin-top: .18rem; overflow-wrap: anywhere; color: #2d4057; font-size: .76rem; font-weight: 580; }
.lesson-info small { margin-top: .18rem; color: #8995a3; font-size: .58rem; }
.lesson-duration { color: #6e7d8f; font-size: .68rem; text-align: center; }
.lesson-actions { justify-content: center; padding-right: .4rem; }
.lesson-editor { margin-top: -1px; border: 1px solid #d9e1ea; }
.lesson-editor:not([open]) { display: none; }
.builder-empty-row { padding: 1.5rem; text-align: center; }
.builder-empty-row strong,.builder-empty-row span { display: block; }
.builder-empty-row strong { color: #43566d; font-size: .78rem; font-weight: 580; }
.builder-empty-row span { margin-top: .25rem; color: #8793a1; font-size: .68rem; }
.add-lesson-disclosure { margin-top: .7rem; border: 1px dashed #bdcad8; }
.add-lesson-disclosure > summary { padding: .75rem 1rem; color: var(--brand); cursor: pointer; font-size: .7rem; font-weight: 650; list-style-position: inside; }
.add-lesson-disclosure[open] > summary { border-bottom: 1px solid #dbe3eb; background: #f7f9fb; }
.add-lesson-disclosure .builder-form { margin: 0; border: 0; }
.builder-empty-state { display: flex; align-items: center; gap: 1rem; min-height: 120px; padding: 1.5rem; border: 1px dashed #bac7d5; background: rgba(255,255,255,.65); }
.builder-empty-state > span { display: grid; width: 46px; height: 46px; flex: 0 0 46px; place-items: center; border: 1px solid #c5d1dd; color: var(--brand); font-family: Georgia,"Times New Roman",serif; }
.builder-empty-state strong { color: #34485f; font-size: .86rem; font-weight: 600; }
.builder-empty-state p { margin: .25rem 0 0; color: #7b8898; font-size: .7rem; }
.activity-grid { display: grid; gap: 1rem; }
.activity-card { border: 1px solid #d4dde7; }
.activity-card-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.2rem; border-bottom: 1px solid var(--line); background: #f8fafc; }
.activity-card-head span { color: #7d8a99; font-size: .57rem; letter-spacing: .08em; text-transform: uppercase; }
.activity-card-head h3 { margin: .25rem 0 0; color: #293d54; font-size: .95rem; font-weight: 580; }
.activity-card-head > strong { color: #627287; font-size: .66rem; font-weight: 550; }
.question-row { display: grid; grid-template-columns: 30px minmax(0,1fr) 60px; align-items: center; gap: .6rem; padding: .75rem 1.1rem; border-bottom: 1px solid #e7ebf0; }
.question-row > span { display: grid; width: 25px; height: 25px; place-items: center; border: 1px solid #d6dee7; color: #758396; font-size: .58rem; }
.question-row p { margin: 0; color: #42556c; font-size: .72rem; }
.question-row small { color: #8793a2; font-size: .62rem; text-align: right; }
.answer-option { display: flex; align-items: center; gap: .6rem; }
.submission-row { display: grid; grid-template-columns: 1fr 100px minmax(180px,1fr) auto; align-items: center; gap: .7rem; padding: .8rem 1rem; border-bottom: 1px solid var(--line); }
.submission-row strong,.submission-row a { display: block; }
.submission-row strong { color: #34475e; font-size: .72rem; }
.submission-row a { margin-top: .2rem; color: var(--brand); font-size: .62rem; }
.activity-empty { margin: 0; padding: 1rem 1.2rem; color: #8793a2; font-size: .7rem; }
.management-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.management-card { align-self: start; padding: 1.25rem; border: 1px solid #d7dfe8; }
.management-card > h3 { margin: 0; color: #2c4057; font-size: .92rem; font-weight: 580; }
.management-card > p { margin: .3rem 0 1rem; color: #7b8796; font-size: .67rem; line-height: 1.5; }
.stack-form { display: grid; gap: .55rem; margin-bottom: .8rem; }
.stack-form .btn { justify-self: start; }
.management-row { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .7rem 0; border-top: 1px solid var(--line); color: #4d5f74; font-size: .68rem; }
.management-row span { min-width: 0; overflow-wrap: anywhere; }
.management-row strong,.management-row small { display: block; }
.management-row small { margin-top: .12rem; color: #8b96a4; }
.text-danger,.text-action { padding: 0; border: 0; background: transparent; color: #a23c45; cursor: pointer; font: inherit; font-size: .64rem; }
.text-action { color: var(--brand); }
.review-form,.discussion-item { padding: .9rem 0; border-top: 1px solid var(--line); }
.review-form { display: grid; gap: .55rem; }
.review-form > strong,.discussion-item > strong { color: #34475e; font-size: .72rem; }
.review-form > small,.discussion-item > small { color: #8a96a4; font-size: .6rem; }
.review-form > p,.discussion-item > p { margin: .2rem 0; color: #53657a; font-size: .7rem; line-height: 1.5; }
.discussion-item blockquote { margin: .6rem 0; padding: .6rem .75rem; border-left: 2px solid var(--brand); background: #f5f8fb; color: #56687c; font-size: .67rem; }
.bank-copy { padding: .65rem 0; border-top: 1px solid var(--line); color: #52647a; font-size: .67rem; }
.bank-copy > summary { cursor: pointer; }
.bank-copy > div { display: flex; flex-wrap: wrap; gap: .35rem; padding-top: .6rem; }

@media (max-width: 1040px) {
    .builder-roadmap { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .builder-roadmap a:nth-child(2) { border-right: 0; }
    .builder-roadmap a:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .submission-row { grid-template-columns: 1fr 90px; }
    .submission-row textarea { grid-column: 1/-1; }
}

@media (max-width: 760px) {
    .builder-page-header,.builder-section-heading { align-items: flex-start; flex-direction: column; }
    .builder-header-actions { width: 100%; }
    .builder-header-actions .btn,.builder-header-actions form { flex: 1; }
    .builder-header-actions form .btn { width: 100%; }
    .builder-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .builder-summary > div:nth-child(2) { border-right: 0; }
    .builder-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .builder-workspace,.builder-stage { padding: 1rem; }
    .builder-guidance { display: none; }
    .module-card-head { grid-template-columns: 58px minmax(0,1fr); }
    .module-actions { grid-column: 1/-1; justify-content: flex-end; padding: .55rem .7rem; border-top: 1px solid var(--line); }
    .module-content { padding: .7rem; }
    .lesson-list-head { display: none; }
    .lesson-row { grid-template-columns: 30px 32px minmax(0,1fr) auto; padding: .35rem .3rem; }
    .lesson-duration { display: none; }
    .lesson-actions { grid-column: 3/-1; justify-content: flex-end; padding: 0 .35rem .3rem 0; }
    .management-grid { grid-template-columns: 1fr; }
    .publication-readiness { grid-template-columns: 1fr; }
    .publication-checklist { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
    .builder-roadmap { grid-template-columns: 1fr; }
    .builder-roadmap a { border-right: 0; border-bottom: 1px solid var(--line); }
    .builder-roadmap a:last-child { border-bottom: 0; }
    .builder-summary strong { font-size: .82rem; }
    .builder-create-disclosure { width: 100%; }
    .builder-create-disclosure > summary { width: 100%; }
    .builder-form { padding: .85rem; }
    .module-title { padding: .8rem; }
    .submission-row { grid-template-columns: 1fr; }
    .submission-row textarea { grid-column: auto; }
}

/* Gestión de usuarios y acceso */
.users-data-table td { vertical-align: middle; }
.user-admin-page .admin-page-header { padding-bottom: 1rem; }
.user-admin-page .table-wrap { overflow-x: auto; }
@media (max-width: 920px) {
    .admin-area .user-create-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .admin-area .user-permission-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
    .admin-area .user-create-grid,.admin-area .user-permission-grid { grid-template-columns: 1fr; }
    .admin-area .user-create-form > footer { align-items: stretch; flex-direction: column; }
    .admin-area .user-create-form > footer .btn { width: 100%; }
    .admin-area .user-filter-bar { grid-template-columns: 1fr; }
}

/* Sistema visual unificado para administración */
.admin-area {
    --admin-page-gap: 1rem;
    --admin-panel-radius: 14px;
    --admin-panel-border: #dce5ed;
    --admin-muted: #75869a;
}
.admin-area .dashboard-page { min-height: calc(100vh - 68px); }
.admin-area .dashboard-shell { grid-template-columns: 260px minmax(0,1fr); gap: 1.5rem; padding: 1.35rem 0 3rem; }
.admin-area .dashboard-main { display: grid; align-content: start; gap: var(--admin-page-gap); }
.admin-area .dashboard-title,
.admin-area .admin-page-header,
.admin-area .admin-command-header,
.admin-area .user-admin-header { min-height: 0; margin: 0; padding: .35rem 0 .7rem; }
.admin-area .dashboard-title h1,
.admin-area .admin-page-header h1,
.admin-area .admin-command-header h1 { margin: .25rem 0 .3rem; color: #162d47; font-size: clamp(1.8rem,2.8vw,2.45rem); font-weight: 560; line-height: 1.08; letter-spacing: -.045em; }
.admin-area .dashboard-title p,
.admin-area .admin-page-header p,
.admin-area .admin-command-header p { max-width: 720px; margin: 0; color: var(--admin-muted); font-size: .76rem; line-height: 1.55; }
.admin-area .dashboard-kicker { color: var(--brand); font-size: .59rem; font-weight: 780; letter-spacing: .1em; text-transform: uppercase; }
.admin-area .panel,
.admin-area .admin-panel,
.admin-area .content-admin-panel,
.admin-area .content-record { border-color: var(--admin-panel-border); border-radius: var(--admin-panel-radius); box-shadow: 0 8px 24px rgba(25,48,76,.04); }
.admin-area .panel-head,
.admin-area .admin-panel-head { min-height: 0; padding: 1rem 1.15rem; }
.admin-area .panel-head h2,
.admin-area .admin-panel-head h2 { font-size: .94rem; font-weight: 640; }
.admin-area .panel-head p,
.admin-area .admin-panel-head p { font-size: .68rem; line-height: 1.5; }
.admin-area .panel-body { padding: 1rem 1.15rem; }
.admin-area .filter-bar,
.admin-area .admin-toolbar,
.admin-area .report-filter { margin: 0; padding: .8rem; border: 1px solid var(--admin-panel-border); border-radius: 12px; background: white; box-shadow: 0 5px 16px rgba(25,48,76,.025); }
.admin-area .form-input,
.admin-area .form-select,
.admin-area .form-textarea { min-height: 42px; border-color: #cfd9e3; border-radius: 8px; font-size: .72rem; }
.admin-area .form-textarea { min-height: 112px; }
.admin-area .btn { min-height: 40px; border-radius: 8px; font-size: .7rem; font-weight: 650; }
.admin-area .btn-small { min-height: 32px; padding: .42rem .65rem; font-size: .62rem; }
.admin-area .table-wrap { border: 1px solid var(--admin-panel-border); border-radius: var(--admin-panel-radius); background: white; box-shadow: 0 8px 24px rgba(25,48,76,.04); }
.admin-area .table-wrap.panel { border: 1px solid var(--admin-panel-border); }
.admin-area .data-table { min-width: 720px; }
.admin-area .data-table th { padding: .75rem .9rem; background: #f7f9fb; color: #8190a0; font-size: .55rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.admin-area .data-table td { padding: .82rem .9rem; color: #4a5f76; font-size: .68rem; vertical-align: middle; }
.admin-area .data-table td small { color: #8492a1; font-size: .58rem; }
.admin-area .data-table tr:last-child td { border-bottom: 0; }
.admin-area .table-actions { flex-wrap: wrap; gap: .35rem; }
.admin-area .empty-state { min-height: 130px; padding: 1.5rem; }
.admin-area .compact-metrics,
.admin-area .report-metrics,
.admin-area .admin-stat-strip { margin: 0; }
.admin-area .report-metrics article,
.admin-area .admin-stat-strip article { min-height: 104px; padding: .9rem 1rem; }
.admin-area .report-metrics strong,
.admin-area .admin-stat-strip strong { font-size: 1.35rem; }
.admin-area .status { padding: .28rem .48rem; border-radius: 999px; font-size: .56rem; font-weight: 650; }
.admin-area .course-moderation-form { min-width: 210px; }
.admin-area .course-moderation-form .form-input { min-height: 34px; }
.admin-area .module-create-panel { top: 86px; border-radius: var(--admin-panel-radius); }
.admin-area .settings-main { gap: 1rem; }
.admin-area .settings-overview-card { min-height: 122px; }
.admin-area .content-editor-layout { gap: .85rem; }
.admin-area .content-admin-form,.admin-area .content-record-form { gap: .85rem; padding: 1rem 1.15rem; }
.admin-area .content-side-card { padding: .9rem; }
.admin-area .advanced-editor .content-editor { min-height: 220px; }
.admin-area .advanced-editor.is-short .content-editor { min-height: 150px; }
.admin-area .user-create-panel { margin: 0; }
.admin-area .user-create-grid { gap: .75rem; }
.admin-area .user-admin-grid { margin: 0; }
.admin-area .user-permissions-panel { margin: 0; }
.admin-area .role-overview-grid { margin: 0; }
.admin-area .role-overview-card { min-height: 136px; }
.admin-area .review-admin-card { padding: .9rem 1rem; }
.admin-area .report-export-panel { margin: 0; }

@media (max-width: 1120px) {
    .admin-area .dashboard-shell { grid-template-columns: 240px minmax(0,1fr); gap: 1rem; }
    .admin-area .user-create-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .admin-area .user-permission-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .admin-area .content-editor-layout,.admin-area .faq-editor-layout { grid-template-columns: minmax(0,1fr) 250px; }
}
@media (max-width: 920px) {
    .admin-area .dashboard-shell { grid-template-columns: 1fr; padding-top: .9rem; }
    .admin-area .dashboard-main { gap: .85rem; }
    .admin-area .dashboard-title,
    .admin-area .admin-page-header,
    .admin-area .admin-command-header,
    .admin-area .user-admin-header { padding-bottom: .45rem; }
    .admin-area .content-editor-layout,.admin-area .faq-editor-layout { grid-template-columns: 1fr; }
    .admin-area .content-editor-aside { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .admin-area .module-create-panel { position: static; }
}
@media (max-width: 700px) {
    .admin-area .container-shell { width: min(100% - 1.1rem,1480px); }
    .admin-area .dashboard-title,
    .admin-area .admin-page-header,
    .admin-area .admin-command-header,
    .admin-area .user-admin-header { align-items: stretch; flex-direction: column; gap: .75rem; }
    .admin-area .dashboard-title .btn,
    .admin-area .admin-page-header .btn,
    .admin-area .admin-command-header .btn { width: 100%; }
    .admin-area .dashboard-title h1,
    .admin-area .admin-page-header h1,
    .admin-area .admin-command-header h1 { font-size: 1.75rem; }
    .admin-area .filter-bar,
    .admin-area .admin-toolbar,
    .admin-area .report-filter,
    .admin-area .user-filter-bar { grid-template-columns: 1fr; }
    .admin-area .user-create-grid,
    .admin-area .user-permission-grid,
    .admin-area .content-editor-aside { grid-template-columns: 1fr; }
    .admin-area .user-create-form > footer,
    .admin-area .content-form-actions,
    .admin-area .record-form-actions { align-items: stretch; flex-direction: column; }
    .admin-area .user-create-form > footer .btn,
    .admin-area .content-form-actions .btn,
    .admin-area .record-form-actions .btn { width: 100%; }
    .admin-area .report-metrics,
    .admin-area .admin-stat-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 480px) {
    .admin-area .report-metrics,
    .admin-area .admin-stat-strip { grid-template-columns: 1fr; }
    .admin-area .content-admin-form,.admin-area .content-record-form,.admin-area .panel-body { padding: .85rem; }
}

/* Navegación administrativa simplificada y centro de configuración */
.sidebar-primary-action { display: flex; align-items: center; justify-content: center; gap: .55rem; min-height: 40px; margin: .7rem .75rem .2rem; border-radius: 9px; background: var(--brand); color: white !important; font-size: .7rem; font-weight: 650; text-decoration: none; box-shadow: 0 7px 16px color-mix(in srgb,var(--brand) 20%,transparent); }
.sidebar > .admin-mobile-nav-shell .sidebar-primary-action > span { width: auto; color: white; text-align: left; }
.sidebar-primary-action:hover { background: var(--brand-dark); }
.sidebar-primary-action .sidebar-icon { width: 16px; height: 16px; color: currentColor; }
.admin-flat-nav .sidebar-group + .sidebar-group { margin-top: .35rem; padding-top: .35rem; }
.admin-flat-nav .sidebar-label { padding-top: .55rem; }
.admin-flat-nav a { min-height: 36px; }
.admin-flat-nav a.active { background: color-mix(in srgb,var(--brand) 9%,white); box-shadow: inset 3px 0 0 var(--brand); }
.sidebar-profile { color: inherit; text-decoration: none; }
.admin-mobile-nav-toggle,.admin-mobile-nav-trigger { display: none; }
.admin-mobile-nav-content { display: block; }

.settings-main { display: grid; grid-template-columns: 235px minmax(0,1fr); align-items: start; gap: 1rem; }
.settings-page-title,.settings-workspace-summary { grid-column: 1 / -1; }
.settings-main > .settings-section-nav { grid-column: 1; grid-row: 3; }
.settings-main > .settings-form,.settings-main > .settings-overview,.settings-main > .security-panel { grid-column: 2; grid-row: 3; min-width: 0; }
.settings-main[data-active-section="general"] [data-settings-section="general"] { display: block; }
.settings-main .settings-section-nav { position: sticky; top: 84px; display: grid; align-items: stretch; gap: .28rem; overflow: visible; margin: 0; padding: .55rem; border-radius: 13px; }
.settings-main .settings-section-nav a { display: grid; grid-template-columns: 28px minmax(0,1fr) 14px; align-items: center; gap: .55rem; min-height: 57px; padding: .55rem; border-radius: 9px; color: #627388; text-align: left; }
.settings-main .settings-section-nav a > span:first-child { display: grid; width: 28px; height: 28px; place-items: center; border: 1px solid #dce4ec; border-radius: 7px; background: #f7f9fb; color: #8290a0; font-size: .54rem; font-weight: 700; }
.settings-main .settings-section-nav a > span:nth-child(2) { display: grid; gap: .1rem; }
.settings-main .settings-section-nav a strong { color: #3a4f67; font-size: .68rem; font-weight: 650; }
.settings-main .settings-section-nav a small { color: #8a97a6; font-size: .53rem; line-height: 1.35; }
.settings-main .settings-section-nav a > i { color: #9aa6b3; font-size: .65rem; font-style: normal; }
.settings-main .settings-section-nav a.active { background: color-mix(in srgb,var(--brand) 8%,white); color: var(--brand); box-shadow: inset 3px 0 0 var(--brand); }
.settings-main .settings-section-nav a.active > span:first-child { border-color: color-mix(in srgb,var(--brand) 30%,#dce4ec); background: white; color: var(--brand); }
.settings-main .settings-section-nav a.active strong,.settings-main .settings-section-nav a.active > i { color: var(--brand-dark); }
.settings-main .settings-panel > .panel-head > div { display: grid; align-content: start; gap: .25rem; }
.settings-main .settings-panel > .panel-head .settings-step { white-space: nowrap; }
.settings-main .settings-panel > .panel-head h2 { margin: 0; line-height: 1.25; }
.settings-overview { display: none; }
.settings-overview-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: .8rem; padding: 1.15rem 1.2rem; border: 1px solid #dbe4ed; border-radius: 13px; background: linear-gradient(120deg,#fff,#f5f8fc); }
.settings-overview-head > div > span,.settings-related-tools header > span { color: var(--brand); font-size: .59rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.settings-overview-head h2 { margin: .3rem 0 .25rem; color: #253c55; font-size: 1.22rem; font-weight: 620; letter-spacing: -.025em; }
.settings-overview-head p { margin: 0; color: #778698; font-size: .68rem; line-height: 1.5; }
.settings-overview-head > strong { flex: 0 0 auto; padding: .48rem .7rem; border: 1px solid #d5e0ea; border-radius: 999px; background: white; color: #50647a; font-size: .62rem; }
.settings-overview-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; }
.settings-overview-card { display: grid; grid-template-columns: 36px minmax(0,1fr) auto; align-items: start; gap: .75rem; min-height: 132px; padding: 1rem; border: 1px solid #dce4ec; border-radius: 12px; background: white; color: inherit; text-decoration: none; box-shadow: 0 7px 20px rgba(20,45,75,.035); transition: transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.settings-overview-card:hover { border-color: #bdcbd9; box-shadow: 0 11px 26px rgba(20,45,75,.07); transform: translateY(-2px); }
.settings-overview-card > span { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 9px; background: #edf3f9; color: #58718b; font-size: .6rem; font-weight: 750; }
.settings-overview-card > div { display: grid; align-content: start; gap: .18rem; }
.settings-overview-card strong { color: #30465f; font-size: .75rem; }
.settings-overview-card p { margin: 0; color: #8290a0; font-size: .61rem; line-height: 1.4; }
.settings-overview-card small { display: flex; align-items: center; gap: .35rem; margin-top: .55rem; color: #708095; font-size: .58rem; }
.settings-overview-card small i { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: #d18a37; }
.settings-overview-card.is-ready small i { background: #2d8a65; }
.settings-overview-card > b { align-self: end; color: var(--brand); font-size: .58rem; font-weight: 650; white-space: nowrap; }
.settings-related-tools { margin-top: .8rem; padding: 1rem 1.1rem; border: 1px solid #dce4ec; border-radius: 12px; background: #f9fbfd; }
.settings-related-tools header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .7rem; }
.settings-related-tools header p { margin: 0; color: #7b8999; font-size: .61rem; }
.settings-related-tools > div { display: flex; flex-wrap: wrap; gap: .45rem; }
.settings-related-tools a { display: inline-flex; align-items: center; gap: .6rem; padding: .5rem .65rem; border: 1px solid #d9e2ea; border-radius: 8px; background: white; color: #4f6278; font-size: .62rem; font-weight: 600; text-decoration: none; }
.settings-related-tools a:hover { border-color: var(--brand); color: var(--brand); }

.admin-profile-workspace { display: grid; align-content: start; gap: 1rem; }
.admin-profile-summary { display: grid; grid-template-columns: 58px minmax(0,1fr) auto; align-items: center; gap: 1rem; padding: 1rem 1.15rem; border: 1px solid #dce4ec; border-radius: 13px; background: white; }
.admin-profile-avatar { display: grid; width: 58px; height: 58px; overflow: hidden; place-items: center; border-radius: 50%; background: color-mix(in srgb,var(--brand) 10%,white); color: var(--brand); font-size: 1rem; font-weight: 700; }
.admin-profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
.admin-profile-summary > div:nth-child(2) { display: grid; gap: .12rem; }
.admin-profile-summary > div:nth-child(2) span { color: #8090a2; font-size: .58rem; text-transform: uppercase; letter-spacing: .08em; }
.admin-profile-summary > div:nth-child(2) strong { color: #2e455e; font-size: .9rem; }
.admin-profile-summary > div:nth-child(2) small { color: #77879a; font-size: .65rem; }
.admin-profile-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(280px,.65fr); align-items: start; gap: 1rem; }
.admin-profile-form,.admin-password-form,.profile-access-card,.admin-danger-zone { overflow: hidden; border: 1px solid #dce4ec; border-radius: 13px; }
.admin-profile-form .panel-head,.admin-password-form .panel-head,.profile-access-card .panel-head { background: linear-gradient(120deg,#fff,#f7f9fc); }
.admin-profile-form .panel-head h2,.admin-password-form .panel-head h2,.profile-access-card .panel-head h2 { margin: .2rem 0; color: #30465e; font-size: .92rem; }
.admin-profile-form .panel-head span,.admin-password-form .panel-head span,.profile-access-card .panel-head span { color: var(--brand); font-size: .57rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.admin-profile-form .panel-head p,.admin-password-form .panel-head p { margin: 0; color: #7f8d9d; font-size: .62rem; }
.profile-photo-field { display: grid; align-content: start; gap: .35rem; }
.profile-photo-button { position: relative; display: flex; min-height: 42px; align-items: center; justify-content: center; overflow: hidden; border: 1px solid #cbd7e2; border-radius: 8px; background: #f8fafc; color: #4f637a; font-size: .65rem; font-weight: 650; cursor: pointer; }
.profile-photo-button input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.profile-photo-field small { color: #8794a4; font-size: .56rem; }
.form-submit-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: .8rem; border-top: 1px solid #e5ebf0; }
.form-submit-row > span { color: #8190a1; font-size: .62rem; }
.admin-profile-side { display: grid; gap: 1rem; }
.admin-password-form .panel-body { display: grid; gap: .75rem; }
.admin-password-form label { display: grid; gap: .35rem; }
.admin-password-form .btn { width: 100%; margin-top: .2rem; }
.profile-access-card .panel-body { display: grid; gap: .65rem; }
.profile-access-card .panel-body > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: .55rem; border-bottom: 1px solid #e8edf2; }
.profile-access-card .panel-body span { color: #7c8b9d; font-size: .62rem; }
.profile-access-card .panel-body strong { color: #3c5169; font-size: .65rem; }
.profile-access-card a { color: var(--brand); font-size: .62rem; font-weight: 650; }
.admin-danger-zone { display: grid; grid-template-columns: minmax(0,1fr) minmax(300px,.55fr); align-items: center; gap: 1.5rem; padding: 1rem 1.15rem; border-color: #ead4d3; background: #fffafa; }
.admin-danger-zone > div:first-child > span { color: #a34b48; font-size: .57rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.admin-danger-zone h2 { margin: .2rem 0; color: #743b3a; font-size: .88rem; }
.admin-danger-zone p { margin: 0; color: #866867; font-size: .62rem; line-height: 1.5; }
.admin-danger-zone > div:last-child { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .55rem; }

@media (max-width: 1100px) {
    .settings-main { grid-template-columns: 210px minmax(0,1fr); }
    .settings-overview-grid { grid-template-columns: 1fr; }
    .admin-profile-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .settings-main { display: block; }
    .settings-main > .settings-section-nav { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); margin-bottom: 1rem; }
    .settings-main .settings-section-nav a { min-height: 52px; }
    .settings-main .settings-section-nav a small,.settings-main .settings-section-nav a > i { display: none; }
    .settings-overview-head,.settings-related-tools header { align-items: flex-start; flex-direction: column; }
    .settings-overview-card { grid-template-columns: 34px minmax(0,1fr); }
    .settings-overview-card > b { grid-column: 2; }
    .admin-profile-summary { grid-template-columns: 50px minmax(0,1fr); }
    .admin-profile-summary > .status { grid-column: 2; justify-self: start; }
    .admin-danger-zone { grid-template-columns: 1fr; }
}
@media (max-width: 920px) {
    .admin-mobile-nav-trigger { display: flex; min-height: 46px; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem .9rem; color: #40546b; font-size: .69rem; font-weight: 650; cursor: pointer; }
    .admin-mobile-nav-trigger i { color: #8090a1; font-style: normal; transition: transform .16s ease; }
    .admin-mobile-nav-content { display: none; padding-bottom: .4rem; border-bottom: 1px solid #e5ebf0; }
    .admin-mobile-nav-toggle:checked + .admin-mobile-nav-trigger i { transform: rotate(180deg); }
    .admin-mobile-nav-toggle:checked ~ .admin-mobile-nav-content { display: block; }
    .admin-mobile-nav-shell .sidebar-primary-action { margin-top: .2rem; }
    .admin-mobile-nav-shell .admin-flat-nav { display: grid; grid-template-columns: repeat(2,minmax(160px,1fr)); max-height: 390px; overflow: auto; padding: .35rem; }
    .admin-mobile-nav-shell .sidebar-group { display: block; min-width: 0; }
    .admin-mobile-nav-shell .sidebar-group + .sidebar-group { margin: 0; padding: 0; border: 0; }
    .admin-mobile-nav-shell .sidebar-label { display: block; }
    .admin-mobile-nav-shell .admin-flat-nav a { margin-inline: .2rem; }
}
@media (max-width: 520px) {
    .settings-main > .settings-section-nav { grid-template-columns: 1fr; }
    .settings-main .settings-section-nav a > i { display: block; }
    .settings-overview-grid { grid-template-columns: 1fr; }
    .form-submit-row { align-items: stretch; flex-direction: column; }
    .form-submit-row .btn { width: 100%; }
    .admin-danger-zone > div:last-child { grid-template-columns: 1fr; }
}

/* Acceso e instalador */
.auth-wrap { min-height: calc(100vh - 110px); display: grid; grid-template-columns: .9fr 1.1fr; }
.auth-aside { position: relative; overflow: hidden; padding: clamp(2rem,6vw,5.5rem); display: flex; flex-direction: column; justify-content: space-between; background: var(--navy); color: white; }
.auth-aside::after { content: ''; position: absolute; width: 430px; height: 430px; right: -180px; bottom: -180px; border: 90px solid rgba(89,150,219,.13); border-radius: 50%; }
.auth-aside > * { position: relative; z-index: 1; }
.auth-aside .brand { color: white; }
.auth-aside h1 { max-width: 550px; font-size: clamp(2.6rem,5vw,4.6rem); line-height: 1.02; letter-spacing: -.055em; }
.auth-aside p { max-width: 510px; color: #bfd1e5; line-height: 1.75; }
.auth-aside small { color: #91afd0; }
.auth-main { display: grid; place-items: center; padding: 3rem 1.5rem; background: white; }
.auth-card { width: min(450px,100%); }
.auth-card h2 { margin: 0 0 .5rem; color: var(--navy); font-size: 2.2rem; letter-spacing: -.045em; }
.auth-card > p { margin: 0 0 1.8rem; color: var(--muted); }
.installer-body{min-height:100vh;padding:clamp(1rem,3vw,2.6rem);background:radial-gradient(circle at 12% 8%,#e8f3ff 0,transparent 28%),linear-gradient(135deg,#f7f9fc,#e9eef5)}.installer-shell{width:min(1160px,100%);min-height:720px;display:grid;grid-template-columns:310px minmax(0,1fr);overflow:hidden;border:1px solid #d4deea;border-radius:16px;background:#fff;box-shadow:0 30px 90px rgba(8,43,83,.16)}.installer-rail{display:flex;flex-direction:column;padding:2rem 1.8rem 1.6rem;color:#dce9f8;background:linear-gradient(155deg,#062543 0%,#082b53 52%,#0b4aa2 145%)}.installer-brand{display:inline-flex;align-items:center;gap:.7rem;color:#fff;text-decoration:none;font-size:.78rem;font-weight:600;line-height:1.05;letter-spacing:.03em}.installer-brand strong{font-size:1rem;letter-spacing:-.03em}.installer-logo{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#fff;color:var(--brand);font-size:1.1rem;font-weight:900;box-shadow:0 8px 20px rgba(0,0,0,.2)}.installer-rail-copy{margin:3.5rem 0 2.1rem}.installer-rail-copy>span,.installer-kicker{color:#2b79cb;font-size:.67rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}.installer-rail-copy>span{color:#95c6ff}.installer-rail-copy h2{margin:.8rem 0;color:#fff;font-size:2rem;line-height:1.04;letter-spacing:-.06em}.installer-rail-copy p{margin:0;color:#b9cee6;font-size:.8rem;line-height:1.65}.installer-steps{display:grid;gap:.78rem;margin:0;padding:0;list-style:none}.installer-steps li{display:flex;align-items:center;gap:.75rem;color:#84a6ca;font-size:.75rem;font-weight:650}.installer-steps i{width:23px;height:23px;display:grid;place-items:center;border:1px solid rgba(193,219,245,.32);border-radius:50%;font-style:normal;font-size:.59rem}.installer-steps .is-current{color:#fff}.installer-steps .is-current i{border-color:#fff;background:#fff;color:var(--brand);box-shadow:0 0 0 5px rgba(255,255,255,.1)}.installer-steps .is-complete{color:#c7e5ff}.installer-steps .is-complete i{border-color:#68b6ec;background:#68b6ec;color:var(--navy)}.installer-help{display:flex;align-items:center;gap:.65rem;margin-top:auto;padding-top:1.3rem;border-top:1px solid rgba(255,255,255,.15);color:#a9c2dd;font-size:.7rem;line-height:1.45}.installer-help b{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.11);color:#fff}.installer-help a{color:#fff;font-weight:750;text-decoration:none}.installer-workspace{min-width:0;display:flex;flex-direction:column;background:#fff}.installer-topbar{display:grid;grid-template-columns:auto 1fr minmax(170px,31%);align-items:center;gap:1rem;min-height:76px;padding:0 2.6rem;border-bottom:1px solid #edf0f4;color:#718096;font-size:.73rem}.installer-topbar strong{color:var(--navy)}.installer-topbar em{font-style:normal}.installer-mobile-brand{display:none;color:var(--navy);font-weight:800}.installer-mobile-brand b{display:inline-grid;width:23px;height:23px;place-items:center;margin-right:.35rem;border-radius:6px;background:var(--brand);color:#fff}.installer-progress{height:4px;overflow:hidden;border-radius:99px;background:#e6edf5}.installer-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0b4aa2,#4a9ced);transition:width .35s ease}.installer-content{width:min(700px,100%);flex:1;padding:clamp(2rem,5vw,4.4rem) clamp(1.5rem,6vw,5rem) 2.5rem}.installer-content h1{max-width:610px;margin:.8rem 0 1rem;color:var(--navy);font-size:clamp(2.05rem,4.1vw,3.4rem);line-height:1.03;letter-spacing:-.065em}.installer-content h1 i{color:var(--brand);font-style:normal}.installer-intro,.installer-welcome>p{max-width:590px;margin:0 0 2rem;color:#617084;line-height:1.75}.installer-kicker{display:block}.installer-alert{display:grid;gap:.2rem;margin-bottom:1.4rem;padding:.9rem 1rem;border-left:3px solid #d5614f;background:#fff4f1;color:#87362a;font-size:.8rem}.installer-button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:1.5rem;margin-top:1.7rem;padding:.8rem 1.1rem .8rem 1.25rem;border:0;border-radius:5px;background:var(--brand);box-shadow:0 10px 20px rgba(11,74,162,.2);color:#fff;font-size:.83rem;font-weight:800;text-decoration:none;transition:transform .17s,background .17s,box-shadow .17s}.installer-button:hover{background:var(--brand-dark);box-shadow:0 13px 24px rgba(11,74,162,.27);transform:translateY(-1px)}.installer-button span{font-size:1.1rem}.installer-welcome{padding-top:1.5rem}.installer-welcome h1{max-width:600px;font-size:clamp(2.7rem,5.3vw,4.5rem)}.installer-welcome-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:2.3rem 0 .1rem;border:1px solid #dce5ef;background:#dce5ef}.installer-welcome-grid article{min-height:152px;padding:1.15rem 1rem;background:#fff}.installer-welcome-grid b{display:block;color:#8aa0ba;font-size:.64rem;letter-spacing:.08em}.installer-welcome-grid strong,.installer-welcome-grid span{display:block}.installer-welcome-grid strong{margin:.9rem 0 .45rem;color:var(--navy);font-size:.78rem}.installer-welcome-grid span{color:#718096;font-size:.69rem;line-height:1.55}.installer-checklist{display:grid;border:1px solid #dde5ee;margin:1.7rem 0 0}.installer-checklist>div{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:.7rem;min-height:51px;padding:.65rem 1rem;border-bottom:1px solid #edf1f5;color:#43536a;font-size:.79rem}.installer-checklist>div:last-child{border:0}.installer-checklist small{color:#718096;font-size:.67rem}.installer-checklist .check-good,.installer-checklist .check-bad{width:21px;height:21px;display:grid;place-items:center;border-radius:50%;font-size:.66rem;font-weight:900}.check-good{background:#e5f6ed;color:#188055}.check-bad{background:#fff0ed;color:#b34834}.installer-paths code{overflow:hidden;color:#526276;font-size:.69rem;text-overflow:ellipsis;white-space:nowrap}.installer-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.8rem}.installer-field{display:block}.installer-field>span{display:block;margin:0 0 .43rem;color:#39495e;font-size:.73rem;font-weight:780}.installer-field>span small{color:#8a98a9;font-weight:600}.installer-field input,.installer-field select{width:100%;min-height:46px;border:1px solid #ccd6e1;border-radius:5px;background:#fff;padding:.68rem .75rem;color:var(--ink);outline:none;font:inherit;font-size:.84rem;transition:border .15s,box-shadow .15s}.installer-field input:focus,.installer-field select:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(11,74,162,.1)}.installer-field small{display:block;margin-top:.35rem;color:#78879a;font-size:.67rem}.field-full{grid-column:1/-1}.installer-license-card{display:flex;align-items:center;gap:.85rem;padding:1rem;border:1px solid #bfd7f1;border-left:4px solid var(--brand);border-radius:5px;background:#f3f8fe}.license-icon{width:33px;height:33px;display:grid;place-items:center;border-radius:50%;background:var(--brand);color:#fff}.installer-license-card b{color:var(--navy);font-size:.76rem}.installer-license-card p{margin:.18rem 0 0;color:#60728a;font-size:.69rem}.installer-summary{display:grid;gap:.35rem;max-width:500px;margin-top:1.8rem;padding:1.35rem;border:1px solid #cdddeb;border-left:4px solid var(--brand);background:#f6faff}.installer-summary span{color:#6b7f97;font-size:.63rem;font-weight:800;letter-spacing:.1em}.installer-summary strong{color:var(--navy);font-size:1.1rem}.installer-summary small{color:#617188}.installer-ready{border-left-color:#23906a}.installer-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem}.installer-actions>a:not(.installer-button){margin-top:1.7rem;color:var(--brand);font-size:.78rem;font-weight:800;text-decoration:none}.installer-choice-list{display:grid;gap:.75rem;margin-top:1.8rem}.installer-choice-list label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;padding:1.05rem;border:1px solid #d7e0ea;border-radius:6px;cursor:pointer;transition:border .15s,background .15s}.installer-choice-list label:has(input:checked){border-color:#8ab9e7;background:#f3f8fe}.installer-choice-list input{accent-color:var(--brand)}.installer-choice-list b,.installer-choice-list small{display:block}.installer-choice-list b{color:var(--navy);font-size:.8rem}.installer-choice-list small{margin-top:.25rem;color:#738195;font-size:.7rem}.installer-choice-list i{width:22px;height:22px;display:grid;place-items:center;border:1px solid #cbd7e4;border-radius:50%;color:transparent;font-size:.64rem}.installer-choice-list label:has(input:checked) i{border-color:var(--brand);background:var(--brand);color:#fff}.installer-choice-list .installer-button{justify-self:start}.installer-success{padding-top:2.2rem}.success-mark{width:58px;height:58px;display:grid;place-items:center;margin-bottom:2rem;border-radius:50%;background:#e8f7ef;color:#168058;font-size:1.6rem;font-weight:900;box-shadow:0 0 0 10px #f5fbf8}.installer-success p{max-width:590px;color:#617084;line-height:1.75}.installer-footer{display:flex;justify-content:space-between;gap:1rem;padding:1.25rem 2.6rem;border-top:1px solid #edf0f4;color:#8895a5;font-size:.68rem}.installer-footer a{color:var(--brand);font-weight:800;text-decoration:none}
.requirement { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid #e8edf2; }
.pagination { margin-top: 1.8rem; }

/* Pie */
.site-footer { border-top: 1px solid #1b436b; background: #061f3b; color: white; }
.footer-grid { display: grid; grid-template-columns: 1.45fr .65fr .65fr 1fr; gap: 3rem; padding: 3.7rem 0; }
.footer-grid .brand { color: white; }
.footer-brand p { max-width: 430px; color: #9fb6ce; font-size: .85rem; line-height: 1.7; }
.footer-grid > div:not(.footer-brand) { display: flex; flex-direction: column; align-items: start; gap: .72rem; }
.footer-grid > div > strong { margin-bottom: .3rem; color: white; font-size: .8rem; }
.footer-grid > div > a:not(.brand) { color: #aebfd1; text-decoration: none; font-size: .78rem; }
.footer-grid > div > a:hover { color: white; }
.footer-contact span { color: #8fa7bf; font-size: .75rem; line-height: 1.5; }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 0 1.5rem; border-top: 1px solid rgba(255,255,255,.12); color: #839db7; font-size: .71rem; }
.footer-bottom a { color: #c7d8e9; font-weight: 750; text-decoration: none; }

@media (max-width: 1120px) {
    .header-search { display: none; }
    .explore-link { margin-right: auto; }
    .hero-grid { grid-template-columns: 1.1fr .9fr; }
    .course-content-grid { padding-right: 390px; gap: 2.5rem; }
    .catalog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 920px) {
    .container-shell { width: min(100% - 2rem, 760px); }
    .announcement-bar { display: none; }
    .site-header { height: 68px; }
    .nav-links { display: none; position: absolute; top: 58px; left: 1rem; right: 1rem; flex-direction: column; align-items: stretch; padding: .65rem; border: 1px solid var(--line); background: white; box-shadow: var(--shadow); }
    .nav-links.open { display: flex; }
    .nav-links a { padding: .75rem; }
    .mobile-only { display: flex !important; }
    .nav-links .mobile-only button { width: 100%; justify-content: flex-start; border: 0; background: transparent; color: #344154; box-shadow: none; }
    .mobile-toggle { display: inline-flex; }
    .explore-link { display: none; }
    .header-actions { margin-left: auto; }
    .hero::before { inset: 0; background: linear-gradient(180deg,#edf4fc 0%,#edf4fc 52%,rgba(237,244,252,.15) 70%); }
    .hero-grid { grid-template-columns: 1fr; }
    .hero-content { padding: 4rem 0 3rem; }
    .hero-visual { min-height: 430px; margin: 0 -1rem; }
    .hero-visual::after { background: linear-gradient(180deg,#edf4fc 0%,rgba(237,244,252,0) 25%); }
    .proof-grid { grid-template-columns: repeat(2,1fr); }
    .proof-grid > div:nth-child(3) { border-top: 1px solid var(--line); }
    .proof-grid > div:nth-child(4) { border-top: 1px solid var(--line); border-right: 1px solid var(--line); }
    .course-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .value-grid, .closing-grid, .page-head-grid { grid-template-columns: 1fr; }
    .closing-grid { gap: 1.5rem; padding: 2.2rem; }
    .catalog-layout { grid-template-columns: 1fr; }
    .catalog-sidebar { position: static; }
    .catalog-filters { grid-template-columns: repeat(2,1fr); }
    .catalog-filters .btn { align-self: end; }
    .course-hero { padding-bottom: 2rem; }
    .course-hero-grid { grid-template-columns: 1fr; gap: 2rem; }
    .course-purchase { width: min(100%, 480px); margin: 0; }
    .course-anchor-nav { top: 68px; overflow-x: auto; }
    .course-anchor-nav .container-shell { width: max-content; min-width: 100%; }
    .course-content-grid { grid-template-columns: 1fr; padding-right: 0; }
    .course-details-aside { grid-template-columns: repeat(2,1fr); }
    .dashboard-shell { grid-template-columns: 1fr; }
    .sidebar { position: static; display: flex; overflow-x: auto; padding: .4rem; }
    .sidebar-profile, .sidebar-label { display: none; }
    .sidebar > a { flex: 0 0 auto; white-space: nowrap; }
    .sidebar-logout { flex: 0 0 auto; margin: .15rem .2rem; padding: 0; border: 0; }
    .sidebar-logout button { white-space: nowrap; }
    .metrics { grid-template-columns: repeat(2,1fr); }
    .settings-grid { grid-template-columns: 1fr; }
    .color-settings-grid { grid-template-columns: repeat(2,1fr); }
    .learn-shell { grid-template-columns: 1fr; }
    .lesson-nav { border-right: 0; border-bottom: 1px solid var(--line); }
    .auth-wrap { grid-template-columns: 1fr; }
    .auth-aside { min-height: 350px; }
    .footer-grid { grid-template-columns: 1.4fr 1fr 1fr; gap: 2rem; }
    .footer-contact { grid-column: 2/4; }
}

@media (max-width: 1040px) {
    .palette-builder { grid-template-columns: 1fr; }
    .palette-preview { position: static; }
}

@media (max-width: 640px) {
    .palette-color-grid { grid-template-columns: 1fr; }
    .palette-presets > span { width: 100%; }
}

@media (max-width: 640px) {
    .container-shell { width: calc(100% - 1.35rem); }
    .brand-name { max-width: 145px; overflow: hidden; text-overflow: ellipsis; }
    .header-actions .btn { display: none; }
    .section { padding: 4rem 0; }
    .hero-content { padding: 3.2rem 0 2.5rem; }
    .hero h1 { font-size: clamp(2.75rem,14vw,4rem); }
    .hero-copy { font-size: .98rem; }
    .hero-search { height: 54px; }
    .hero-search button { min-width: 82px; }
    .hero-visual { min-height: 350px; }
    .hero-credential { left: .75rem; right: .75rem; bottom: .75rem; min-width: 0; }
    .proof-grid { grid-template-columns: 1fr; }
    .proof-grid > div { min-height: 90px; border-top: 1px solid var(--line); border-right: 1px solid var(--line); }
    .section-heading { align-items: start; flex-direction: column; }
    .course-grid, .catalog-grid, .category-grid { grid-template-columns: 1fr; }
    .category-grid { gap: 1px; }
    .category-card { min-height: 92px; padding: 1rem; }
    .value-grid { gap: 2.5rem; }
    .value-copy h2 { font-size: 2.35rem; }
    .closing-grid { padding: 1.5rem; border-left-width: 4px; }
    .page-head { padding: 2.5rem 0; }
    .page-head h1 { font-size: 2.7rem; }
    .catalog-filters { grid-template-columns: 1fr; }
    .catalog-sidebar { border-top: 0; }
    .catalog-filter-details { border: 1px solid var(--line-dark); }
    .filter-heading { padding: 1rem; cursor: pointer; border-bottom: 0; }
    .catalog-filter-details[open] .filter-heading { border-bottom: 1px solid var(--line); }
    .catalog-filters { padding: 1rem; }
    .catalog-toolbar { flex-direction: column; padding-bottom: 1rem; }
    .course-hero { min-height: auto; }
    .course-hero h1 { font-size: 2.65rem; }
    .course-social-proof, .course-hero-facts { flex-direction: column; gap: .45rem; }
    .course-anchor-nav .container-shell { gap: 1.2rem; }
    .outcome-grid, .review-list, .course-details-aside { grid-template-columns: 1fr; }
    .outcomes-box { padding: 1.3rem; }
    .content-heading { align-items: start; flex-direction: column; }
    .content-heading > span { margin: -1rem 0 1rem; }
    .curriculum-section summary { align-items: start; }
    .curriculum-section summary > span:first-child { align-items: start; flex-direction: column; gap: .25rem; }
    .dashboard-title { align-items: start; flex-direction: column; padding: 1rem 0; }
    .metrics { grid-template-columns: 1fr 1fr; }
    .metric { align-items: start; flex-direction: column; gap: .45rem; }
    .dashboard-course { grid-template-columns: 100px 1fr; }
    .dashboard-course > .btn { grid-column: 1/-1; }
    .form-grid { grid-template-columns: 1fr; }
    .field-full { grid-column: auto; }
    .settings-panel .panel-head { flex-direction: column; }
    .settings-panel .panel-head p { text-align: left; }
    .color-settings-grid, .settings-secondary-grid { grid-template-columns: 1fr; }
    .settings-actions .btn { width: 100%; }
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .footer-brand { grid-column: 1/-1; }
    .footer-contact { grid-column: 1/-1; }
    .footer-bottom { flex-direction: column; }
    .installer-footer { align-items: start; flex-direction: column; }
}

/* Inscripción */
.checkout-head { padding-bottom: 3.6rem; }
.checkout-head .container-shell { max-width: 1180px; }
.checkout-head h1 { max-width: 760px; }
.checkout-head p { max-width: 660px; margin: .9rem 0 0; color: #526174; font-size: 1rem; line-height: 1.7; }
.checkout-section { background: #f7f9fc; }
.checkout-layout { display: grid; grid-template-columns: minmax(0,1fr) 360px; align-items: start; gap: 1.6rem; max-width: 1180px; }
.checkout-main { display: grid; gap: 1.6rem; }
.checkout-course-card { display: grid; grid-template-columns: 190px minmax(0,1fr); overflow: hidden; border: 1px solid var(--line); background: white; }
.checkout-course-cover { width: 100%; height: 100%; min-height: 190px; object-fit: cover; }
.checkout-cover-placeholder { display: grid; place-items: end start; padding: 1.2rem; background: linear-gradient(145deg,var(--navy),#245c93); color: rgba(255,255,255,.9); font-size: .76rem; letter-spacing: .06em; text-transform: uppercase; }
.checkout-course-copy { align-self: center; padding: 1.6rem 1.8rem; }
.checkout-course-copy h2 { margin: .3rem 0 .55rem; color: var(--navy); font-size: clamp(1.4rem,2.5vw,1.9rem); line-height: 1.2; letter-spacing: -.035em; }
.checkout-course-copy > p { display: -webkit-box; overflow: hidden; margin: 0; color: var(--muted); font-size: .88rem; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.checkout-course-meta { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin-top: 1rem; color: #5f6c7c; font-size: .76rem; }
.checkout-course-meta span:not(:first-child)::before { content: "·"; margin-right: 1.25rem; color: #a5afbb; }
.checkout-form-card { box-shadow: 0 16px 45px rgba(19,48,81,.06); }
.checkout-panel-head { align-items: end; }
.checkout-panel-head h2 { margin: .25rem 0 0; }
.checkout-step { color: #8793a3; font-size: .72rem; letter-spacing: .12em; }
.checkout-form { gap: 1.35rem; }
.checkout-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
.free-enrollment-note { display: flex; align-items: flex-start; gap: .9rem; padding: 1.15rem; border: 1px solid #bcdaca; border-left: 3px solid #25835c; background: #f3faf6; }
.free-enrollment-icon { display: grid; flex: 0 0 28px; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: #25835c; color: white; font-size: .78rem; }
.free-enrollment-note strong { display: block; color: #154c38; font-size: .9rem; }
.free-enrollment-note p { margin: .25rem 0 0; color: #527164; font-size: .82rem; line-height: 1.55; }
.checkout-terms { padding-top: .15rem; line-height: 1.55; }
.checkout-terms-link { color: var(--brand); text-decoration: underline; text-underline-offset: 2px; }
.checkout-submit { width: 100%; min-height: 50px; }
.checkout-summary { position: sticky; top: 96px; box-shadow: 0 16px 45px rgba(19,48,81,.08); }
.checkout-summary .panel-head h2 { margin: 0; }
.checkout-summary-row { padding-bottom: 1.15rem; border-bottom: 1px solid var(--line); }
.checkout-summary-row > span { display: block; margin-bottom: .35rem; color: var(--muted); font-size: .73rem; text-transform: uppercase; letter-spacing: .08em; }
.checkout-summary-row strong { display: block; color: var(--navy); font-size: .92rem; line-height: 1.45; }
.checkout-price-row,.checkout-total-row { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .75rem 0; color: #586679; font-size: .84rem; }
.checkout-price-row + .checkout-price-row { padding-top: 0; }
.checkout-price-row strong { color: #293649; }
.checkout-total-row { margin-top: .15rem; padding: 1rem 0 1.2rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--navy); font-size: 1rem; }
.checkout-total-row strong { color: var(--brand); font-size: 1.45rem; letter-spacing: -.025em; }
.checkout-includes { padding-top: 1.35rem; }
.checkout-includes ul { display: grid; gap: .65rem; margin: .8rem 0 0; padding: 0; list-style: none; color: #526174; font-size: .8rem; }
.checkout-includes li { display: flex; gap: .6rem; }
.checkout-includes li::before { content: "✓"; color: #25835c; font-weight: 600; }
.checkout-trust { display: flex; align-items: center; gap: .45rem; margin: 1.4rem 0 0; padding-top: 1rem; border-top: 1px solid var(--line); color: #788596; font-size: .72rem; }

/* Tipografía editorial: sobria, ligera y con pesos reales de la familia. */
body { font-weight: 400; font-kerning: normal; font-feature-settings: "kern","liga","calt"; letter-spacing: -.006em; }
h1,h2,h3,h4,h5,h6 { font-weight: 500; text-wrap: balance; }
strong,b { font-weight: 600; }
.hero h1 { font-size: clamp(2.9rem,5vw,4.8rem); font-weight: 500; letter-spacing: -.052em; }
.page-head h1,.course-hero h1,.auth-aside h1 { font-weight: 400; letter-spacing: -.045em; }
.page-head h1 { font-size: clamp(2.55rem,4.5vw,4.15rem); }
.course-hero h1 { font-size: clamp(2.55rem,4.6vw,4.1rem); }
.auth-aside h1 { font-size: clamp(2.45rem,4.7vw,4.1rem); }
.section-heading h2,.value-copy h2,.closing-grid h2,.course-block h2,.outcomes-box h2 { font-weight: 500; letter-spacing: -.035em; }
.course-card h3,.dashboard-course-info h3,.checkout-course-copy h2 { font-weight: 500; }
.brand,.btn,.nav-links a,.explore-link,.eyebrow,.text-link,.form-label,.sidebar > a,.course-provider,.course-price,.hero-search button { font-weight: 600; }
.installer-footer a,.footer-bottom a { font-weight: 600; }

@media (max-width: 920px) {
    .checkout-layout { grid-template-columns: 1fr; }
    .checkout-summary { position: static; }
}

@media (max-width: 640px) {
    .hero h1 { font-size: clamp(2.55rem,12vw,3.45rem); }
    .page-head h1,.course-hero h1 { font-size: clamp(2.35rem,11vw,3rem); }
    .checkout-head { padding-bottom: 2.7rem; }
    .checkout-course-card { grid-template-columns: 1fr; }
    .checkout-course-cover { height: 190px; min-height: 0; }
    .checkout-course-copy { padding: 1.25rem; }
    .checkout-course-meta { display: grid; gap: .35rem; }
    .checkout-course-meta span:not(:first-child)::before { content: none; }
    .checkout-fields { grid-template-columns: 1fr; }
}

/* Validación pública de certificados */
.certificate-verify-page { min-height: 72vh; padding: clamp(3rem,7vw,6rem) 0; background: #f4f7fa; }
.certificate-verify-shell { max-width: 1060px; }
.certificate-verify-header { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2rem; padding: clamp(2rem,5vw,3.5rem); background: var(--navy); color: white; box-shadow: 0 22px 65px rgba(7,35,67,.16); }
.certificate-verify-header.is-revoked { background: #59252a; }
.certificate-verify-kicker { color: #9fc1e3; font-size: .7rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.certificate-verify-header h1 { margin: .75rem 0 .6rem; color: white; font-size: clamp(2.35rem,5vw,4rem); font-weight: 400; letter-spacing: -.045em; }
.certificate-verify-header p { max-width: 670px; margin: 0; color: #bfd0e2; font-size: .92rem; line-height: 1.65; }
.certificate-auth-seal { display: grid; width: 112px; height: 112px; place-items: center; align-content: center; border: 1px solid rgba(255,255,255,.52); border-radius: 50%; outline: 1px solid rgba(255,255,255,.2); outline-offset: -7px; }
.certificate-auth-seal span { color: #9fe0bd; font-size: 2rem; line-height: 1; }
.certificate-auth-seal strong { margin-top: .3rem; color: white; font-size: .65rem; letter-spacing: .13em; text-transform: uppercase; }
.is-revoked .certificate-auth-seal span { color: #ffc2c7; }
.certificate-verify-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(310px,.65fr); align-items: start; gap: 1.4rem; margin-top: 1.4rem; }
.certificate-identity-card,.certificate-auth-card { box-shadow: 0 16px 45px rgba(19,48,81,.07); }
.certificate-identity-card { padding: clamp(2rem,5vw,3rem); }
.certificate-identity-intro { padding-bottom: 2rem; border-bottom: 1px solid var(--line); }
.certificate-identity-intro h2 { margin: .5rem 0 .85rem; color: var(--navy); font-family: Georgia,"Times New Roman",serif; font-size: clamp(2.2rem,4vw,3.35rem); font-weight: 400; letter-spacing: -.035em; }
.certificate-identity-intro p { margin: 0; color: var(--muted); font-size: .82rem; }
.certificate-identity-intro h3 { max-width: 650px; margin: .5rem 0 0; color: #213249; font-size: clamp(1.25rem,2.2vw,1.7rem); font-weight: 500; line-height: 1.35; letter-spacing: -.025em; }
.certificate-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; }
.certificate-facts div { padding: 1.35rem 1.35rem 1.35rem 0; border-bottom: 1px solid var(--line); }
.certificate-facts div:nth-child(even) { padding-left: 1.35rem; border-left: 1px solid var(--line); }
.certificate-facts dt { color: #7b8796; font-size: .66rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.certificate-facts dd { margin: .4rem 0 0; color: #26364b; font-size: .88rem; font-weight: 500; }
.certificate-revocation { margin-top: 1.5rem; }
.certificate-revocation strong { display: block; }
.certificate-auth-card .panel-head h2 { margin: 0; font-size: 1.15rem; }
.certificate-auth-field { padding: 0 0 1rem; border-bottom: 1px solid var(--line); }
.certificate-auth-field + .certificate-auth-field { padding-top: 1rem; }
.certificate-auth-field > span { display: block; margin-bottom: .4rem; color: #7b8796; font-size: .64rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.certificate-auth-field strong,.certificate-auth-field code { color: #1f334d; font-size: .8rem; line-height: 1.55; }
.certificate-auth-field code { display: block; overflow-wrap: anywhere; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: .7rem; }
.certificate-chain-field code { color: var(--brand); }
.certificate-auth-note { margin: 1.2rem 0 0; padding: 1rem; border-left: 3px solid var(--brand); background: #f3f7fb; color: #657386; font-size: .73rem; line-height: 1.55; }

@media (max-width: 820px) {
    .certificate-verify-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .certificate-verify-header { grid-template-columns: 1fr; }
    .certificate-auth-seal { width: 88px; height: 88px; }
    .certificate-facts { grid-template-columns: 1fr; }
    .certificate-facts div,.certificate-facts div:nth-child(even) { padding: 1rem 0; border-left: 0; }
}

/* Credencial digital en pantalla */
.credential-page { min-height: 78vh; padding: 2.2rem 0 5rem; background: #edf2f7; }
.credential-shell { max-width: 1240px; }
.credential-topbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; color: #778495; font-size: .72rem; }
.credential-topbar a { color: #42536a; font-weight: 600; text-decoration: none; }
.credential-topbar a:hover { color: var(--brand); }
.credential-topbar > span { letter-spacing: .08em; text-transform: uppercase; }
.credential-layout { display: grid; grid-template-columns: minmax(0,1fr) 330px; align-items: start; gap: 1.25rem; }
.credential-document { position: relative; display: flex; min-width: 0; aspect-ratio: 792 / 612; overflow: hidden; flex-direction: column; padding: 2.2rem 2.5rem 0 3.8rem; border: 1px solid #c7d2df; outline: 1px solid rgba(255,255,255,.9); outline-offset: -9px; background: #fbfcfe; box-shadow: 0 24px 70px rgba(16,43,73,.14); }
.credential-rail { position: absolute; inset: 0 auto 0 0; width: 17px; background: var(--navy); }
.credential-rail::after { position: absolute; inset: 0 -4px 0 auto; width: 4px; background: var(--brand); content: ""; }
.credential-corner { position: absolute; top: 0; right: 0; width: 110px; height: 6px; background: var(--brand); }
.credential-watermark { position: absolute; top: 27%; left: 27%; color: #f0f3f7; font-family: Georgia,"Times New Roman",serif; font-size: clamp(8rem,16vw,13rem); line-height: 1; }
.credential-document-header { position: relative; z-index: 1; display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; }
.credential-document-header > div { text-align: right; }
.credential-document-header > div strong { display: block; color: var(--navy); font-size: .62rem; letter-spacing: .17em; text-transform: uppercase; }
.credential-document-header > div span { display: block; margin-top: .4rem; color: #708096; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: .6rem; }
.credential-document-body { position: relative; z-index: 1; display: flex; flex: 1; align-items: center; flex-direction: column; justify-content: center; padding: 1.3rem 0 .8rem; text-align: center; }
.credential-kicker { color: var(--brand); font-size: .64rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; }
.credential-document-body > p { margin: 1rem 0 0; color: #667589; font-family: Georgia,"Times New Roman",serif; font-size: .88rem; }
.credential-document-body h1 { max-width: 100%; margin: .4rem 0 0; color: var(--navy); font-family: Georgia,"Times New Roman",serif; font-size: clamp(2.2rem,4vw,3.8rem); font-weight: 400; line-height: 1.08; letter-spacing: -.04em; }
.credential-document-body > i { width: 68px; height: 2px; margin-top: .85rem; background: var(--brand); }
.credential-document-body h2 { max-width: 620px; margin: .4rem 0 0; color: #20334d; font-size: clamp(1.1rem,2vw,1.55rem); font-weight: 500; line-height: 1.3; letter-spacing: -.025em; }
.credential-course-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: .45rem 1.15rem; margin-top: .8rem; color: #6c798b; font-size: .58rem; letter-spacing: .06em; text-transform: uppercase; }
.credential-course-meta span + span::before { margin-right: 1.15rem; color: #a3adba; content: "·"; }
.credential-signatures { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 150px 1fr; align-items: center; gap: 1.1rem; margin: 0 0 1.5rem; }
.credential-signatures > div:not(.credential-digital-mark) { padding-top: .6rem; border-top: 1px solid #9eabb9; text-align: center; }
.credential-signatures strong { display: block; color: #24364d; font-size: .72rem; }
.credential-signatures span { display: block; margin-top: .25rem; color: #7a8797; font-size: .5rem; letter-spacing: .09em; text-transform: uppercase; }
.credential-digital-mark { display: flex; align-items: center; justify-content: center; gap: .5rem; }
.credential-digital-mark b { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 50%; background: var(--brand); color: white; font-size: .72rem; }
.credential-digital-mark span { max-width: 75px; margin: 0; color: var(--navy); font-size: .5rem; font-weight: 600; line-height: 1.4; letter-spacing: .08em; text-align: left; }
.credential-document-footer { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr) 78px; align-items: center; gap: 1rem; margin: 0 -2.5rem 0 -2.35rem; padding: .72rem 1.2rem; background: var(--navy); }
.credential-document-footer div + div { padding-left: 1rem; border-left: 1px solid rgba(255,255,255,.18); }
.credential-document-footer span { display: block; color: #91aac4; font-size: .47rem; letter-spacing: .11em; text-transform: uppercase; }
.credential-document-footer strong { display: block; margin-top: .25rem; color: white; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: .58rem; letter-spacing: .02em; }
.credential-document-qr { display: grid; justify-items: center; gap: .22rem; margin: 0; padding: .28rem; border-radius: 6px; background: #fff; box-shadow: 0 4px 14px rgba(0,0,0,.18); }
.credential-document-qr img { display: block; width: 58px; height: 58px; }
.credential-document-qr figcaption { color: var(--navy); font-size: .39rem; font-weight: 750; letter-spacing: .04em; line-height: 1.15; text-align: center; text-transform: uppercase; }
.credential-validation-panel { position: sticky; top: 90px; border: 1px solid #cbd5e0; border-top: 4px solid #23805a; background: white; box-shadow: 0 18px 50px rgba(16,43,73,.09); }
.credential-is-revoked .credential-validation-panel { border-top-color: #a83742; }
.credential-status-block { display: flex; align-items: center; gap: .9rem; padding: 1.5rem 1.4rem 1.2rem; }
.credential-status-icon { display: grid; flex: 0 0 42px; width: 42px; height: 42px; place-items: center; border-radius: 50%; background: #e8f5ee; color: #237b58; font-size: 1.15rem; }
.credential-is-revoked .credential-status-icon { background: #fbecee; color: #a83742; }
.credential-status-block small { display: block; color: #7b8796; font-size: .57rem; letter-spacing: .1em; text-transform: uppercase; }
.credential-status-block h2 { margin: .3rem 0 0; color: var(--navy); font-size: 1.12rem; font-weight: 500; letter-spacing: -.025em; }
.credential-validation-copy { margin: 0; padding: 0 1.4rem 1.3rem; border-bottom: 1px solid var(--line); color: #617084; font-size: .76rem; line-height: 1.6; }
.credential-revocation { margin: 1.2rem 1.4rem 0; }
.credential-revocation strong { display: block; }
.credential-auth-list { margin: 0; padding: .25rem 1.4rem 0; }
.credential-auth-list div { padding: .85rem 0; border-bottom: 1px solid var(--line); }
.credential-auth-list dt { color: #7d8998; font-size: .55rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.credential-auth-list dd { margin: .28rem 0 0; color: #283a51; font-size: .72rem; font-weight: 500; line-height: 1.45; }
.credential-auth-list code { display: block; overflow-wrap: anywhere; color: #42607f; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: .58rem; font-weight: 400; }
.credential-download { width: calc(100% - 2.8rem); margin: 1.25rem 1.4rem 0; }
.credential-security-note { display: flex; align-items: flex-start; gap: .65rem; margin-top: 1.25rem; padding: 1rem 1.4rem; background: #f4f7fa; color: #637286; }
.credential-security-note > span { color: var(--brand); font-size: 1rem; }
.credential-security-note p { margin: 0; font-size: .65rem; line-height: 1.5; }
.credential-security-note strong { display: block; margin-bottom: .15rem; color: #33475f; }

@media (max-width: 1040px) {
    .credential-layout { grid-template-columns: 1fr; }
    .credential-document { width: 100%; }
    .credential-validation-panel { position: static; }
}

@media (max-width: 680px) {
    .credential-page { padding-top: 1.2rem; }
    .credential-topbar > span { display: none; }
    .credential-document { min-height: 610px; aspect-ratio: auto; padding: 1.7rem 1.25rem 0 2.35rem; }
    .credential-document-header { align-items: flex-start; flex-direction: column; }
    .credential-document-header > div { text-align: left; }
    .credential-document-body { padding: 2rem 0; }
    .credential-document-body h1 { font-size: clamp(2.25rem,11vw,3rem); }
    .credential-document-body > p { font-size: .8rem; }
    .credential-course-meta { display: grid; gap: .25rem; }
    .credential-course-meta span + span::before { content: none; }
    .credential-signatures { grid-template-columns: 1fr 1fr; }
    .credential-digital-mark { grid-column: 1/-1; grid-row: 1; }
    .credential-document-footer { margin-right: -1.25rem; margin-left: -1.1rem; grid-template-columns: minmax(0,1fr) 76px; }
    .credential-document-footer div + div { padding: .6rem 0 0; border-top: 1px solid rgba(255,255,255,.18); border-left: 0; }
    .credential-document-qr { grid-column: 2; grid-row: 1 / span 2; }
    .brand-upload-card { grid-template-columns: 54px minmax(0,1fr); gap: .75rem; }
    .upload-thumb { width: 54px; height: 52px; }
    .upload-card-favicon .upload-thumb { width: 52px; height: 52px; }
    .upload-button { grid-column: 1/-1; text-align: center; }
    .brand-preview { position: static; }
}

/* Refinamiento visual contemporáneo */
:root {
    --surface: #ffffff;
    --surface-subtle: #f7f9fc;
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 18px;
    --shadow-soft: 0 10px 32px rgba(20,43,73,.065);
    --shadow-float: 0 20px 55px rgba(20,43,73,.11);
}

body { background: var(--background,#fcfdff); color: var(--ink,#172235); font-weight: 400; }
::selection { background: color-mix(in srgb,var(--brand) 18%,white); color: var(--navy); }
:focus-visible { outline: 2px solid color-mix(in srgb,var(--brand) 72%,white); outline-offset: 3px; }

.site-header { height: 72px; border-color: rgba(190,202,216,.7); background: rgba(255,255,255,.88); box-shadow: 0 7px 30px rgba(20,43,73,.035); backdrop-filter: blur(18px) saturate(145%); }
.header-row { gap: .85rem; }
.brand { font-weight: 650; letter-spacing: -.025em; }
.brand-mark { border-radius: 10px; box-shadow: 0 7px 18px color-mix(in srgb,var(--brand) 22%,transparent); }
.brand-mark span { font-weight: 700; }
.explore-link { min-height: 38px; padding: .55rem .9rem; border-color: #cbd7e4; border-radius: var(--radius-sm); background: #f8fafc; color: #2c4765; font-weight: 600; }
.explore-link:hover { border-color: color-mix(in srgb,var(--brand) 45%,#cbd7e4); background: color-mix(in srgb,var(--brand) 5%,white); color: var(--brand); }
.header-search { height: 40px; border-color: #d4dce6; border-radius: 10px; background: #f8fafc; }
.header-search:focus-within { background: white; }
.nav-links a { border-radius: 8px; color: #44536a; font-weight: 540; }
.nav-links a:hover { background: #f4f7fa; }
.nav-links a.active { background: color-mix(in srgb,var(--brand) 7%,white); }
.profile-avatar { background: color-mix(in srgb,var(--brand) 10%,#f4f7fb); font-weight: 650; }

.btn { min-height: 42px; padding: .68rem 1.05rem; border-radius: var(--radius-sm); font-size: .83rem; font-weight: 600; letter-spacing: -.005em; }
.btn-primary { background: linear-gradient(145deg,var(--brand),color-mix(in srgb,var(--brand-dark) 88%,var(--brand))); box-shadow: 0 8px 20px color-mix(in srgb,var(--brand) 18%,transparent); }
.btn-primary:hover { box-shadow: 0 12px 25px color-mix(in srgb,var(--brand) 25%,transparent); }
.btn-secondary { border-color: #b9c7d6; color: #294b70; box-shadow: 0 2px 5px rgba(20,43,73,.025); }
.btn-secondary:hover { border-color: color-mix(in srgb,var(--brand) 48%,#b9c7d6); background: color-mix(in srgb,var(--brand) 5%,white); }
.btn-small { min-height: 33px; padding: .43rem .7rem; font-size: .72rem; }
.eyebrow { font-weight: 650; letter-spacing: .15em; }
.eyebrow::before { height: 1px; }
.text-link { font-weight: 620; }

.panel { border-color: #dce3eb; border-radius: var(--radius-md); background: var(--surface,#fff); box-shadow: var(--shadow-soft); }
.panel-head { border-color: #e8edf2; }
.panel-head h2,.panel-head h3 { font-weight: 580; letter-spacing: -.02em; }
.alert { border-radius: var(--radius-sm); box-shadow: var(--shadow-soft); }
.form-label { color: #405169; font-weight: 580; }
.form-input,.form-select,.form-textarea { border-color: #ccd6e1; border-radius: var(--radius-sm); background: #fff; }
.form-input:hover,.form-select:hover,.form-textarea:hover { border-color: #aebdcd; }
.form-input:focus,.form-select:focus,.form-textarea:focus { background: white; box-shadow: 0 0 0 4px color-mix(in srgb,var(--brand) 9%,transparent); }
.check-row { font-weight: 430; }
input[type="file"] { min-height: 46px; padding: .28rem; border: 1px solid #cbd6e1; border-radius: var(--radius-sm); background: #f8fafc; color: #667589; font-size: .7rem; cursor: pointer; }
input[type="file"]::file-selector-button { min-height: 36px; margin-right: .75rem; padding: .55rem .85rem; border: 0; border-radius: 6px; background: var(--brand); color: white; cursor: pointer; font: inherit; font-size: .7rem; font-weight: 600; transition: background .16s ease,box-shadow .16s ease; }
input[type="file"]:hover::file-selector-button { background: var(--brand-dark); box-shadow: 0 5px 14px color-mix(in srgb,var(--brand) 20%,transparent); }
.media-upload-card { position: relative; display: grid; grid-template-columns: 118px minmax(0,1fr) auto; align-items: center; gap: 1rem; min-height: 100px; padding: .75rem; border: 1px dashed #aebdcd; border-radius: 12px; background: #f8fafc; cursor: pointer; transition: border-color .18s ease,background .18s ease,box-shadow .18s ease; }
.media-upload-card:hover,.media-upload-card:focus-within { border-color: var(--brand); background: color-mix(in srgb,var(--brand) 4%,white); box-shadow: 0 9px 25px rgba(20,43,73,.07); }
.media-upload-card.is-selected { border-style: solid; border-color: var(--green); background: color-mix(in srgb,var(--green) 5%,white); }
.media-upload-card > input { position: absolute; width: 1px; height: 1px; overflow: hidden; padding: 0; border: 0; opacity: 0; pointer-events: none; }
.media-upload-thumb { display: grid; width: 118px; height: 74px; overflow: hidden; place-items: center; border: 1px solid #d4dde7; border-radius: 8px; background: linear-gradient(135deg,#eaf1f8,#f7f9fc); color: #78889a; font-size: .55rem; font-weight: 650; letter-spacing: .1em; }
.media-upload-thumb img { width: 100%; height: 100%; display: block; object-fit: cover; }
.media-upload-copy { min-width: 0; }
.media-upload-copy strong,.media-upload-copy small,.media-upload-copy > span { display: block; }
.media-upload-copy strong { color: #293d54; font-size: .78rem; font-weight: 620; }
.media-upload-copy small { margin-top: .25rem; color: #748296; font-size: .64rem; line-height: 1.45; }
.media-upload-copy > span { max-width: 380px; overflow: hidden; margin-top: .45rem; color: #66778b; font-size: .6rem; text-overflow: ellipsis; white-space: nowrap; }
.media-upload-card.is-selected .media-upload-copy > span { color: var(--green); font-weight: 600; }
.media-upload-card .upload-button { border-radius: 7px; background: white; }
.media-upload-wide { min-height: 116px; }
.media-upload-wide .media-upload-thumb { height: 86px; }

.hero { background: radial-gradient(circle at 18% 20%,#f7fbff 0,#edf4fc 40%,#e7f0fa 100%); }
.hero::before { background: linear-gradient(105deg,rgba(240,247,254,.98) 65%,rgba(240,247,254,0)); }
.hero h1,.section-heading h2,.page-head h1,.course-hero h1,.dashboard-title h1 { font-weight: 580; }
.hero-copy { color: #4e5d70; font-weight: 390; }
.hero-search { overflow: hidden; border-color: #c2cfdd; border-radius: var(--radius-md); box-shadow: var(--shadow-float); }
.hero-search button { font-weight: 600; }
.hero-credential { border: 1px solid rgba(205,216,228,.9); border-left: 3px solid var(--accent); border-radius: var(--radius-md); box-shadow: var(--shadow-float); }
.proof-grid { margin-block: 1.2rem; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-md); box-shadow: var(--shadow-soft); }
.proof-grid > div,.proof-grid > div:last-child { border-color: #e6ebf1; }
.category-grid { gap: .75rem; border: 0; background: transparent; }
.category-card { border: 1px solid var(--line); border-radius: var(--radius-md); box-shadow: 0 5px 18px rgba(20,43,73,.035); }
.category-card:hover { border-color: var(--navy); box-shadow: var(--shadow-float); transform: translateY(-2px); }
.closing-grid { border-radius: var(--radius-lg); background: linear-gradient(135deg,#fff,#f8fbff); box-shadow: var(--shadow-soft); }

.course-card { overflow: hidden; border-color: #dce3eb; border-radius: 14px; box-shadow: 0 7px 25px rgba(20,43,73,.045); }
.course-card:hover { border-color: #b8c6d5; box-shadow: var(--shadow-float); transform: translateY(-4px); }
.course-card h3 { font-weight: 580; }
.course-provider,.course-badge { font-weight: 650; }
.course-footer > a { border-radius: 8px; }
.page-head { background: linear-gradient(135deg,color-mix(in srgb,var(--brand) 7%,white),#f7faff); }
.filter-bar { border-radius: var(--radius-md); box-shadow: var(--shadow-soft); }
.course-purchase { border-radius: var(--radius-lg); }
.outcomes-box { border-width: 1px; border-left-width: 4px; border-radius: var(--radius-md); }
.curriculum-list,.instructor-card,.review-list article,.empty-review { overflow: hidden; border-radius: var(--radius-md); }
.curriculum-section summary { background: #f8fafc; }

.dashboard-shell { gap: 1.5rem; }
.sidebar { overflow: hidden; border-color: #dbe3ec; border-radius: 14px; box-shadow: var(--shadow-soft); }
.sidebar-profile { background: linear-gradient(135deg,#fff,#f7faff); }
.sidebar-label { font-weight: 650; }
.sidebar > a { margin: .18rem .55rem; border: 0; border-radius: 8px; font-weight: 500; }
.sidebar > a:hover,.sidebar > a.active { border: 0; background: color-mix(in srgb,var(--brand) 8%,white); box-shadow: inset 3px 0 0 var(--brand); }
.sidebar-logout button { border: 0; border-radius: 8px; }
.metric { border-color: #dce3eb; border-radius: var(--radius-md); box-shadow: 0 7px 24px rgba(20,43,73,.045); }
.metric-icon { border-radius: 10px; }
.metric strong { font-weight: 570; }
.data-table th { background: #f6f8fb; font-weight: 620; }
.data-table tbody tr { transition: background .15s ease; }
.data-table tbody tr:hover { background: #fafcff; }
.status { font-weight: 600; }

.builder-summary,.builder-roadmap,.builder-workspace,.builder-stage,.module-card,.activity-card,.management-card,.builder-form,.add-lesson-disclosure,.builder-empty-state { border-radius: var(--radius-md); }
.builder-summary,.builder-roadmap,.module-card,.activity-card,.management-card { box-shadow: 0 8px 28px rgba(20,43,73,.045); }
.builder-workspace { border-color: #d9e2ec; background: linear-gradient(145deg,#f7f9fc,#f2f6fa); }
.module-card,.activity-card { overflow: visible; }
.module-card-head { border-radius: var(--radius-md) var(--radius-md) 0 0; }
.module-number { border-radius: var(--radius-md) 0 0 0; }
.icon-button { border-radius: 7px; }
.lesson-list { overflow: hidden; border-radius: 9px; }
.lesson-row { transition: background .15s ease; }
.lesson-row:hover { background: #fafcff; }
.lesson-kind { border-radius: 7px; }
.builder-action-menu > div { border-radius: 9px; }
.builder-page-header h1,.builder-section-heading h2,.module-title h3,.activity-card-head h3,.management-card > h3 { font-weight: 550; }

.site-footer { background: linear-gradient(145deg,#061f3b,#071a30); }

@media (max-width: 920px) {
    .site-header { height: 68px; }
    .mobile-toggle { border-radius: var(--radius-sm); }
}

/* Distribución equilibrada en ficha y aula del curso */
.course-content-grid {
    grid-template-columns: minmax(0,1fr) 290px;
    gap: clamp(2.5rem,5vw,4.5rem);
    padding-right: 0;
}
.course-content { width: 100%; max-width: 860px; }
.course-details-aside { position: sticky; top: 155px; }
.course-details-aside > div { padding: 1.2rem; border: 1px solid #dbe3ec; border-top: 3px solid var(--navy); border-radius: var(--radius-md); background: white; box-shadow: var(--shadow-soft); }
.course-anchor-nav .container-shell { justify-content: center; }
.course-anchor-nav a { position: relative; padding: 1.25rem .35rem; font-weight: 560; }
.course-anchor-nav a::after { position: absolute; right: .35rem; bottom: 0; left: .35rem; height: 2px; background: var(--brand); content: ''; opacity: 0; transform: scaleX(.4); transition: opacity .18s ease,transform .18s ease; }
.course-anchor-nav a:hover::after { opacity: 1; transform: scaleX(1); }
.course-block { margin-bottom: 3.2rem; }
.course-block > p,.rich-copy { max-width: 790px; }
.outcomes-box { padding: clamp(1.5rem,3vw,2.25rem); }

body.learning-mode { background: #f3f6f9; }
body.learning-mode .announcement-bar { display: none; }
.learn-shell { grid-template-columns: 300px minmax(0,1fr); min-height: calc(100vh - 72px); background: #f3f6f9; }
.lesson-nav { position: sticky; top: 72px; height: calc(100vh - 72px); overflow-y: auto; padding: 1.35rem 1rem 2rem; border-right: 1px solid #dbe3eb; background: rgba(255,255,255,.96); scrollbar-width: thin; }
.lesson-nav > a:first-child { margin: 0 .35rem 1.2rem !important; padding: .7rem .6rem; border-radius: 8px; color: #40566f !important; font-weight: 560 !important; }
.lesson-nav > div { margin: 0 .65rem 1.35rem !important; padding: 1rem; border: 1px solid #e0e6ed; border-radius: 10px; background: #f8fafc; }
.lesson-nav > strong { margin: 1.25rem .7rem .45rem !important; color: #738195; font-size: .62rem !important; font-weight: 650; letter-spacing: .1em !important; }
.lesson-nav a { margin: .18rem 0; padding: .72rem .75rem; border-radius: 8px; color: #526277; font-size: .75rem; }
.lesson-nav a > span:first-child { display: grid; width: 21px; height: 21px; flex: 0 0 21px; place-items: center; border: 1px solid #cad5e0; border-radius: 50%; color: #6e7e91; font-size: .58rem; }
.lesson-nav a.active { border-left: 0; background: color-mix(in srgb,var(--brand) 8%,white); color: var(--brand-dark); box-shadow: inset 3px 0 0 var(--brand); }
.lesson-nav a.active > span:first-child { border-color: var(--brand); background: var(--brand); color: white; }
.lesson-content { width: min(100%,1080px); margin-inline: auto; padding: clamp(2.5rem,5vw,4.5rem) clamp(1.5rem,5vw,4.5rem) 6rem; }
.lesson-content > .eyebrow { margin-bottom: .75rem; }
.lesson-content > h1 { max-width: 850px; margin: 0 0 2rem; color: var(--navy); font-weight: 540; }
.lesson-content > article { margin: 1.5rem 0; padding: clamp(1.5rem,3vw,2.4rem); border: 1px solid #dce4ec; border-radius: var(--radius-md); background: white; box-shadow: var(--shadow-soft); color: #3f5065; font-size: .94rem; line-height: 1.85; }
.lesson-content > article > :first-child { margin-top: 0; }
.lesson-content > article > :last-child { margin-bottom: 0; }
.lesson-content > article h2,.lesson-content > article h3 { color: var(--navy); font-weight: 560; letter-spacing: -.025em; }
.lesson-content > .panel { overflow: hidden; }
.lesson-content > form:not(.panel) { display: flex; justify-content: flex-end; padding: 1rem 0; border-bottom: 1px solid #dce3eb; }
.lesson-content .panel-head h2 { font-weight: 560; }

@media (max-width: 1040px) {
    .course-content-grid { grid-template-columns: minmax(0,1fr) 245px; gap: 2rem; }
    .learn-shell { grid-template-columns: 270px minmax(0,1fr); }
}

@media (max-width: 920px) {
    .course-content-grid { grid-template-columns: 1fr; }
    .course-content { max-width: none; }
    .course-details-aside { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); }
    .course-anchor-nav .container-shell { justify-content: flex-start; overflow-x: auto; }
    .learn-shell { grid-template-columns: 1fr; }
    .lesson-nav { position: static; width: 100%; height: auto; max-height: 410px; border-right: 0; border-bottom: 1px solid var(--line); }
    .lesson-content { width: 100%; }
}

@media (max-width: 640px) {
    .course-details-aside { grid-template-columns: 1fr; }
    .course-anchor-nav .container-shell { gap: 1.2rem; }
    .lesson-content { padding: 2rem 1rem 4rem; }
    .lesson-content > article { padding: 1.25rem; }
    .media-upload-card { grid-template-columns: 88px minmax(0,1fr); }
    .media-upload-thumb { width: 88px; height: 64px; }
    .media-upload-card .upload-button { grid-column: 1/-1; text-align: center; }
}

/* Centro de operaciones administrativo */
.sidebar { display: flex; max-height: calc(100vh - 112px); flex-direction: column; }
.sidebar-profile { flex: 0 0 auto; }
.sidebar .sidebar-profile { padding: .9rem 1rem; }
.sidebar-profile div > span { display: flex; align-items: center; gap: .35rem; }
.sidebar-profile div > span i { width: 6px; height: 6px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 3px color-mix(in srgb,var(--green) 11%,transparent); }
.sidebar-nav { min-height: 0; overflow-y: auto; padding: .45rem 0; scrollbar-width: thin; }
.sidebar-group + .sidebar-group { margin-top: .2rem; padding-top: .2rem; border-top: 1px solid #edf0f4; }
.sidebar-nav .sidebar-label { padding: .48rem 1rem .2rem; }
.sidebar-nav a { display: flex; align-items: center; gap: .7rem; margin: .08rem .55rem; padding: .52rem .72rem; border-radius: 8px; color: #526176; text-decoration: none; font-size: .72rem; font-weight: 510; transition: background .15s ease,color .15s ease,box-shadow .15s ease; }
.sidebar-nav a:hover,.sidebar-nav a.active { background: color-mix(in srgb,var(--brand) 7%,white); color: var(--brand-dark); }
.sidebar-nav a.active { box-shadow: inset 3px 0 0 var(--brand); font-weight: 600; }
.sidebar-icon { width: 18px; height: 18px; flex: 0 0 18px; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
.sidebar-nav a .sidebar-icon { color: #738297; }
.sidebar-nav a.active .sidebar-icon { color: var(--brand); }
.sidebar-submenu { margin: .08rem .55rem; }
.sidebar-submenu summary { display: flex; align-items: center; gap: .7rem; padding: .52rem .72rem; border-radius: 8px; color: #526176; cursor: pointer; font-size: .72rem; font-weight: 510; list-style: none; }
.sidebar-submenu summary::-webkit-details-marker { display: none; }
.sidebar-submenu summary:hover,.sidebar-submenu[open] summary { background: color-mix(in srgb,var(--brand) 7%,white); color: var(--brand-dark); }
.sidebar-submenu summary .sidebar-icon { color: #738297; }
.sidebar-submenu[open] summary .sidebar-icon { color: var(--brand); }
.sidebar-submenu summary i { margin-left: auto; color: #8290a0; font-size: .85rem; font-style: normal; transition: transform .15s ease; }
.sidebar-submenu[open] summary i { transform: rotate(180deg); }
.sidebar-submenu-links { display: grid; gap: .08rem; margin: .15rem 0 .35rem 1.55rem; padding-left: .45rem; border-left: 1px solid #dce4ed; }
.sidebar-nav .sidebar-submenu-links a { margin: 0; padding: .38rem .5rem; color: #718094; font-size: .65rem; }
.sidebar-nav .sidebar-submenu-links a.active { color: var(--brand-dark); }
.sidebar-logout { flex: 0 0 auto; }
.sidebar-logout button .sidebar-icon { width: 18px; height: 18px; }
.sidebar-logout button > span { width: auto; color: inherit; text-align: left; }
.admin-mobile-nav-shell { display: flex; min-height: 0; flex: 1 1 auto; flex-direction: column; }
.admin-mobile-nav-content { min-height: 0; flex: 1 1 auto; }
@media (min-width: 921px) {
    .admin-mobile-nav-content { display: flex; flex-direction: column; }
    .admin-mobile-nav-content .admin-flat-nav { min-height: 0; flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: #c5d0db transparent; scrollbar-width: thin; }
    .admin-mobile-nav-content .admin-flat-nav::-webkit-scrollbar { width: 6px; }
    .admin-mobile-nav-content .admin-flat-nav::-webkit-scrollbar-thumb { border-radius: 99px; background: #c5d0db; }
}

.admin-command-center { min-height: 75vh; }
.admin-command-center .dashboard-shell { grid-template-columns: 250px minmax(0,1fr); align-items: start; }
.admin-command-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; padding: .45rem 0 1.45rem; }
.admin-command-header h1 { margin: .3rem 0 .25rem; color: var(--navy); font-size: clamp(2rem,3.5vw,2.8rem); font-weight: 550; line-height: 1.08; letter-spacing: -.045em; }
.admin-command-header p { margin: 0; color: var(--muted); font-size: .75rem; }
.admin-header-actions { display: flex; flex: 0 0 auto; gap: .5rem; }
.admin-quick-actions { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); overflow: hidden; margin-bottom: 1rem; border: 1px solid #dce3eb; border-radius: 12px; background: var(--surface); box-shadow: var(--shadow-soft); }
.admin-quick-actions a { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: .7rem; min-width: 0; padding: .9rem; border-right: 1px solid #e4e9ef; color: #354960; text-decoration: none; transition: background .15s ease; }
.admin-quick-actions a:last-child { border-right: 0; }
.admin-quick-actions a:hover { background: color-mix(in srgb,var(--brand) 4%,white); }
.admin-quick-actions .sidebar-icon { width: 34px; height: 34px; padding: 8px; border-radius: 9px; background: color-mix(in srgb,var(--brand) 8%,white); color: var(--brand); }
.admin-quick-actions span,.admin-quick-actions strong,.admin-quick-actions small { display: block; min-width: 0; }
.admin-quick-actions strong { overflow: hidden; color: #31455c; font-size: .67rem; font-weight: 620; text-overflow: ellipsis; white-space: nowrap; }
.admin-quick-actions small { margin-top: .15rem; overflow: hidden; color: #8390a0; font-size: .54rem; text-overflow: ellipsis; white-space: nowrap; }
.admin-quick-actions b { color: #9ba6b3; font-size: .8rem; font-weight: 400; }
.admin-system-health { overflow: hidden; margin-bottom: 1rem; border: 1px solid #dce4ec; border-radius: 12px; background: #fff; box-shadow: var(--shadow-soft); }
.admin-system-health > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 1rem; border-bottom: 1px solid #e6ebf0; background: #fafcfe; }
.admin-system-health > header > div { display: grid; gap: .1rem; }
.admin-system-health > header span { color: #8190a1; font-size: .53rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.admin-system-health > header strong { color: #344a62; font-size: .72rem; font-weight: 650; }
.admin-system-health > header a { color: var(--brand); font-size: .61rem; font-weight: 650; text-decoration: none; }
.admin-system-health > div { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.admin-system-health article { display: flex; align-items: center; gap: .6rem; min-width: 0; padding: .75rem 1rem; border-right: 1px solid #e9edf2; }
.admin-system-health article:last-child { border-right: 0; }
.admin-system-health article > i { display: grid; width: 23px; height: 23px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #fff1e3; color: #9b6727; font-size: .62rem; font-style: normal; font-weight: 800; }
.admin-system-health article.is-ready > i { background: #e8f6ee; color: #247255; }
.admin-system-health article > span { display: grid; min-width: 0; gap: .12rem; }
.admin-system-health article strong { color: #40556c; font-size: .64rem; font-weight: 650; }
.admin-system-health article small { overflow: hidden; color: #8391a1; font-size: .54rem; text-overflow: ellipsis; white-space: nowrap; }
.admin-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem; margin-bottom: 1.35rem; }
.admin-metric { display: flex; align-items: center; gap: .85rem; min-width: 0; min-height: 112px; padding: 1rem; border: 1px solid #dce3eb; border-radius: 12px; background: var(--surface); box-shadow: 0 8px 25px rgba(20,43,73,.045); }
.admin-metric-icon { display: grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; border-radius: 10px; background: #eef4fb; color: var(--brand); }
.admin-metric-icon .sidebar-icon { width: 20px; height: 20px; }
.admin-metric > div:last-child { min-width: 0; }
.admin-metric span,.admin-metric strong,.admin-metric small { display: block; }
.admin-metric span { overflow: hidden; color: #788699; font-size: .58rem; letter-spacing: .05em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.admin-metric strong { margin-top: .2rem; color: #243950; font-size: 1.42rem; font-weight: 570; letter-spacing: -.04em; }
.admin-metric small { margin-top: .18rem; color: #8290a1; font-size: .57rem; }
.admin-metric-revenue .admin-metric-icon { background: #eaf6f0; color: var(--green); }
.admin-attention-section { margin-bottom: 1rem; }
.admin-section-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: .7rem; }
.admin-section-title span { color: var(--brand); font-size: .55rem; font-weight: 650; letter-spacing: .1em; text-transform: uppercase; }
.admin-section-title h2 { margin: .18rem 0 0; color: #263a51; font-size: 1rem; font-weight: 570; }
.admin-section-title > small { color: #8793a2; font-size: .62rem; }
.admin-attention-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: .65rem; }
.admin-attention-grid a { display: grid; grid-template-columns: 8px minmax(0,1fr) auto; align-items: center; gap: .7rem; min-width: 0; padding: .85rem .9rem; border: 1px solid #dce3eb; border-radius: 10px; background: var(--surface); color: inherit; text-decoration: none; transition: border-color .15s ease,transform .15s ease,box-shadow .15s ease; }
.admin-attention-grid a:hover { border-color: #b8c7d6; box-shadow: var(--shadow-soft); transform: translateY(-1px); }
.attention-dot { width: 7px; height: 7px; border-radius: 50%; background: #aab4c0; }
.attention-dot.is-warning { background: #d8982e; box-shadow: 0 0 0 4px #fbf2df; }
.attention-dot.is-info { background: var(--brand); box-shadow: 0 0 0 4px color-mix(in srgb,var(--brand) 10%,white); }
.attention-dot.is-accent { background: #a05e9c; box-shadow: 0 0 0 4px #f5eaf4; }
.admin-attention-grid span,.admin-attention-grid strong,.admin-attention-grid small { display: block; min-width: 0; }
.admin-attention-grid strong { color: #263b52; font-size: 1.05rem; font-weight: 600; }
.admin-attention-grid small { margin-top: .05rem; overflow: hidden; color: #758396; font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
.admin-attention-grid b { color: var(--brand); font-size: .58rem; font-weight: 600; white-space: nowrap; }
.admin-overview-grid,.admin-work-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(300px,.65fr); gap: 1rem; margin-top: 1rem; }
.admin-work-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.admin-detail-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin-top: 1rem; }
.admin-panel { min-width: 0; overflow: hidden; border: 1px solid #dce3eb; border-radius: 12px; background: var(--surface); box-shadow: 0 8px 28px rgba(20,43,73,.045); }
.admin-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 68px; padding: .9rem 1rem; border-bottom: 1px solid #e7ebf0; }
.admin-panel-head span,.admin-panel-head h2 { display: block; }
.admin-panel-head span { color: #8491a1; font-size: .52rem; font-weight: 620; letter-spacing: .09em; text-transform: uppercase; }
.admin-panel-head h2 { margin: .2rem 0 0; color: #293e55; font-size: .88rem; font-weight: 580; }
.admin-panel-head > strong { color: #66778a; font-size: .62rem; font-weight: 550; }
.admin-panel-head > a { color: var(--brand); font-size: .61rem; font-weight: 600; text-decoration: none; }
.enrollment-chart { height: 235px; display: grid; grid-template-columns: repeat(6,1fr); align-items: end; gap: clamp(.5rem,2vw,1.2rem); padding: 1.35rem 1.4rem 1rem; background: linear-gradient(180deg,#fff,#fafcff); }
.chart-column { height: 100%; display: grid; grid-template-rows: 20px 1fr 20px; align-items: end; justify-items: center; }
.chart-column > span { align-self: center; color: #718095; font-size: .58rem; }
.chart-column > i { width: min(34px,65%); min-height: 8px; border-radius: 7px 7px 3px 3px; background: linear-gradient(180deg,color-mix(in srgb,var(--brand) 72%,white),var(--brand)); box-shadow: 0 6px 15px color-mix(in srgb,var(--brand) 14%,transparent); }
.chart-column > small { align-self: end; color: #7f8c9c; font-size: .58rem; text-transform: capitalize; }
.course-status-list { display: grid; gap: .85rem; padding: 1rem; }
.course-status-list > div > span { display: flex; justify-content: space-between; gap: .7rem; margin-bottom: .35rem; }
.course-status-list strong,.course-status-list small { color: #586a7f; font-size: .61rem; font-weight: 550; }
.course-status-list small { color: #8290a0; }
.course-status-list > div > i { display: block; height: 5px; overflow: hidden; border-radius: 5px; background: #edf1f5; }
.course-status-list > div > i b { display: block; height: 100%; border-radius: inherit; background: var(--brand); }
.admin-certificate-summary { display: flex; align-items: center; gap: .65rem; margin: .2rem 1rem 1rem; padding: .8rem; border-radius: 9px; background: #f5f8fb; }
.admin-certificate-summary .sidebar-icon { color: var(--green); }
.admin-certificate-summary span { min-width: 0; }
.admin-certificate-summary strong,.admin-certificate-summary small { display: block; }
.admin-certificate-summary strong { color: #30465d; font-size: .78rem; }
.admin-certificate-summary small { color: #7c8998; font-size: .55rem; }
.admin-certificate-summary a { margin-left: auto; color: var(--brand); font-size: .58rem; font-weight: 600; text-decoration: none; }
.admin-review-list article { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: .7rem; padding: .8rem 1rem; border-bottom: 1px solid #edf0f4; }
.admin-review-list article:last-child { border-bottom: 0; }
.admin-list-icon { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 8px; background: #f0f5fa; color: var(--brand); }
.admin-list-icon .sidebar-icon { width: 16px; height: 16px; }
.admin-review-list article > div:nth-child(2) { min-width: 0; }
.admin-review-list strong,.admin-review-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-review-list strong { color: #354a61; font-size: .67rem; font-weight: 590; }
.admin-review-list small { margin-top: .18rem; color: #8591a0; font-size: .54rem; }
.admin-review-list article > a { padding: .38rem .55rem; border: 1px solid #c9d5e1; border-radius: 6px; color: var(--brand); font-size: .58rem; font-weight: 600; text-decoration: none; }
.admin-list-value { color: #2e455d; font-size: .68rem; font-weight: 600; }
.admin-empty-compact { display: flex; align-items: center; justify-content: center; gap: .7rem; min-height: 105px; padding: 1rem; color: var(--green); }
.admin-empty-compact > span { display: grid; width: 29px; height: 29px; place-items: center; border-radius: 50%; background: #eaf6f0; }
.admin-empty-compact strong,.admin-empty-compact small { display: block; }
.admin-empty-compact strong { color: #40546a; font-size: .69rem; }
.admin-empty-compact small { margin-top: .18rem; color: #8491a0; font-size: .56rem; }
.top-course-list article,.recent-user-list article { display: grid; align-items: center; gap: .65rem; padding: .75rem 1rem; border-bottom: 1px solid #edf0f4; }
.top-course-list article { grid-template-columns: 24px minmax(0,1fr) auto; }
.top-course-list article > span { color: var(--brand); font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: .57rem; }
.top-course-list article > div,.recent-user-list article > div { min-width: 0; }
.top-course-list strong,.top-course-list small,.recent-user-list strong,.recent-user-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.top-course-list strong,.recent-user-list strong { color: #3b4f66; font-size: .64rem; font-weight: 590; }
.top-course-list small,.recent-user-list small { margin-top: .15rem; color: #8793a1; font-size: .53rem; }
.top-course-list article > b { display: grid; min-width: 27px; height: 25px; place-items: center; border-radius: 7px; background: #f0f4f8; color: #51667e; font-size: .58rem; }
.recent-user-list article { grid-template-columns: 30px minmax(0,1fr) 8px; }
.recent-user-list .profile-avatar { width: 29px; height: 29px; font-size: .62rem; }
.recent-user-list article > i { width: 7px; height: 7px; border-radius: 50%; background: #b9c1cb; }
.recent-user-list article > i.is-active { background: var(--green); }
.admin-activity-panel { grid-column: auto; }
.admin-activity-list { padding: .3rem 1rem .7rem; }
.admin-activity-list article { display: grid; grid-template-columns: 10px minmax(0,1fr); gap: .65rem; padding: .62rem 0; border-bottom: 1px solid #edf0f4; }
.admin-activity-list article:last-child { border-bottom: 0; }
.admin-activity-list article > i { width: 7px; height: 7px; margin-top: .25rem; border: 2px solid white; border-radius: 50%; background: var(--brand); box-shadow: 0 0 0 1px color-mix(in srgb,var(--brand) 30%,white); }
.admin-activity-list strong,.admin-activity-list small { display: block; }
.admin-activity-list strong { color: #42566d; font-size: .62rem; font-weight: 580; }
.admin-activity-list small { margin-top: .15rem; color: #8995a3; font-size: .52rem; }
.admin-user-link { display: block; color: inherit; text-decoration: none; }
.admin-user-link strong,.admin-user-link small { display: block; }
.admin-user-link strong { color: #30465d; }
.admin-user-link small { margin-top: .15rem; color: var(--muted); }
.admin-user-link:hover strong { color: var(--brand); }
.table-actions { display: flex; flex-wrap: wrap; gap: .35rem; }
.user-admin-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; padding: .6rem 0 1.3rem; }
.user-admin-identity { display: flex; align-items: center; gap: 1rem; }
.user-admin-avatar { display: grid; width: 66px; height: 66px; flex: 0 0 66px; place-items: center; border-radius: 18px; background: linear-gradient(145deg,var(--brand),var(--brand-dark)); color: white; font-size: 1.4rem; font-weight: 560; box-shadow: 0 10px 25px color-mix(in srgb,var(--brand) 18%,transparent); }
.user-admin-identity a { color: #778698; font-size: .6rem; font-weight: 560; text-decoration: none; }
.user-admin-identity h1 { margin: .25rem 0 .12rem; color: var(--navy); font-size: 1.8rem; font-weight: 550; letter-spacing: -.04em; }
.user-admin-identity p { margin: 0 0 .45rem; color: #718094; font-size: .68rem; }
.user-admin-meta { display: flex; gap: 1.5rem; padding-bottom: .3rem; }
.user-admin-meta span,.user-admin-meta strong { display: block; }
.user-admin-meta span { color: #8491a0; font-size: .55rem; text-transform: uppercase; letter-spacing: .06em; }
.user-admin-meta strong { margin-top: .25rem; color: #41566d; font-size: .67rem; font-weight: 570; text-transform: none; letter-spacing: 0; }
.user-stat-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); overflow: hidden; margin-bottom: 1rem; border: 1px solid #dce3eb; border-radius: 12px; background: white; box-shadow: var(--shadow-soft); }
.user-stat-grid > div { padding: 1rem; border-right: 1px solid #e6ebf0; }
.user-stat-grid > div:last-child { border-right: 0; }
.user-stat-grid span,.user-stat-grid strong,.user-stat-grid small { display: block; }
.user-stat-grid span { color: #8491a0; font-size: .55rem; letter-spacing: .07em; text-transform: uppercase; }
.user-stat-grid strong { margin-top: .25rem; color: #2c4259; font-size: 1.25rem; font-weight: 580; }
.user-stat-grid small { margin-top: .15rem; color: #8995a3; font-size: .55rem; }
.user-admin-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; margin-bottom: 1rem; }
.user-create-panel { margin-bottom: 1rem; overflow: hidden; border: 1px solid #d8e2eb; border-radius: 13px; background: white; box-shadow: 0 8px 24px rgba(23,48,80,.04); }
.user-create-panel > summary { display: flex; align-items: center; gap: .75rem; padding: .95rem 1rem; cursor: pointer; list-style: none; }
.user-create-panel > summary::-webkit-details-marker { display: none; }
.user-create-panel > summary > span:nth-child(2) { display: grid; gap: .16rem; }
.user-create-panel > summary strong { color: #30465c; font-size: .78rem; font-weight: 650; }
.user-create-panel > summary small { color: #8090a0; font-size: .61rem; }
.user-create-panel > summary i { margin-left: auto; color: #8492a2; font-style: normal; transition: transform .16s ease; }
.user-create-panel[open] > summary { border-bottom: 1px solid #e6ebf0; background: #fbfdff; }
.user-create-panel[open] > summary i { transform: rotate(180deg); }
.user-create-icon { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 8px; background: color-mix(in srgb,var(--brand) 9%,white); color: var(--brand); font-size: 1rem; }
.user-create-form { display: grid; gap: 1rem; padding: 1rem; }
.user-create-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .85rem; }
.user-create-grid label { display: grid; gap: .35rem; }
.user-create-form > footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: .85rem; border-top: 1px solid #e7ecf1; }
.user-create-form > footer .btn { min-width: 145px; }
.user-filter-bar { grid-template-columns: minmax(250px,2fr) repeat(2,minmax(140px,1fr)) auto; margin-bottom: 1rem; }
.admin-user-link { display: flex; align-items: center; gap: .6rem; color: inherit; text-decoration: none; }
.admin-user-link > span:last-child { display: grid; gap: .15rem; }
.admin-user-link .profile-avatar { width: 30px; height: 30px; }
.admin-user-link strong { color: #334a61; font-size: .7rem; font-weight: 650; }
.admin-user-link small { color: #7e8d9e; font-size: .59rem; }
.users-data-table .form-select { min-width: 128px; padding: .45rem 1.65rem .45rem .6rem; font-size: .65rem; }
.users-data-table th:last-child,.users-data-table td:last-child { width: 220px; }
.user-role-control { display: grid; gap: .35rem; }
.user-permission-summary { display: flex; align-items: center; justify-content: space-between; gap: .65rem; padding-inline: .1rem; }
.user-permission-summary span { color: #8996a5; font-size: .55rem; }
.user-permission-summary a { color: var(--brand); font-size: .56rem; font-weight: 680; text-decoration: none; white-space: nowrap; }
.user-permission-summary a:hover { text-decoration: underline; }
.user-row-actions { display: flex; align-items: center; justify-content: flex-end; gap: .42rem; white-space: nowrap; }
.user-row-actions .btn { min-height: 34px; padding-inline: .72rem; }
.course-duration-field { display: grid; align-content: start; }
.course-duration-inputs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
.course-duration-inputs label { position: relative; }
.course-duration-inputs .form-input { padding-right: 4.2rem; }
.course-duration-inputs label span { position: absolute; top: 50%; right: .75rem; color: #7d8b9a; font-size: .65rem; font-weight: 620; transform: translateY(-50%); pointer-events: none; }
.course-form-actions,.course-moderation-actions { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; }
.course-moderation-actions { margin-top: .05rem; }
.protected-role { display: flex; min-height: 2.25rem; align-items: center; justify-content: space-between; gap: .4rem; padding: .45rem .65rem; border: 1px dashed #d6dfe8; border-radius: 8px; background: #f7f9fb; color: #5e7186; font-size: .65rem; font-weight: 600; }
.protected-role small { color: #8b98a7; font-size: .53rem; font-weight: 500; }
.installer-password-meter { height: 4px; margin-top: .45rem; overflow: hidden; border-radius: 999px; background: #e6ebf0; }
.installer-password-meter i { display: block; width: 0; height: 100%; border-radius: inherit; background: #cf8a3d; transition: width .18s ease,background .18s ease; }
.installer-password-meter i[data-score="4"] { background: #2c8967; }
.installer-admin-note { display: grid; gap: .2rem; margin-bottom: .8rem; padding: .75rem .85rem; border: 1px solid #dce6ef; border-radius: 9px; background: #f6f9fc; }
.installer-admin-note b { color: var(--brand); font-size: .56rem; letter-spacing: .08em; }
.installer-admin-note span { color: #718296; font-size: .62rem; line-height: 1.45; }
.user-permissions-panel { margin-bottom: 1rem; border: 1px solid #d8e2eb; border-radius: 13px; background: white; box-shadow: 0 8px 24px rgba(23,48,80,.04); }
.user-permissions-panel .admin-panel-head { align-items: flex-start; }
.user-permissions-panel .admin-panel-head > div { display: grid; gap: .15rem; }
.user-permissions-panel .admin-panel-head p { max-width: 670px; margin: .35rem 0 0; color: #7b8999; font-size: .63rem; line-height: 1.5; }
.user-permissions-count { padding: .3rem .55rem; border-radius: 999px; background: #eef5f1; color: #36765d !important; font-size: .58rem !important; letter-spacing: 0 !important; text-transform: none !important; white-space: nowrap; }
.user-permission-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.user-form-actions { display: flex; justify-content: flex-end; }
.user-enrollments-panel { margin-bottom: 1rem; }
.user-course-list article { display: grid; grid-template-columns: minmax(0,1fr) 52px 80px 85px; align-items: center; gap: .8rem; padding: .85rem 1rem; border-bottom: 1px solid #edf0f4; }
.user-course-list article:last-child { border-bottom: 0; }
.user-course-main { min-width: 0; }
.user-course-main strong,.user-course-main small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-course-main strong { color: #354b62; font-size: .7rem; font-weight: 590; }
.user-course-main small { margin-top: .18rem; color: #8793a2; font-size: .55rem; }
.user-course-main .progress-track { width: min(100%,360px); margin-top: .5rem; }
.user-course-main .progress-fill { display: block; }
.user-course-list article > b { color: #30475e; font-size: .68rem; font-weight: 590; text-align: center; }
.user-course-list article > a { color: var(--brand); font-size: .59rem; font-weight: 600; text-decoration: none; text-align: right; }
.user-course-muted { color: #98a2ae; font-size: .57rem; text-align: right; }
.user-history-grid { align-items: start; }
.user-history-list article { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: .7rem; padding: .75rem 1rem; border-bottom: 1px solid #edf0f4; }
.user-history-list article > div { min-width: 0; }
.user-history-list strong,.user-history-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-history-list strong { color: #3c5067; font-size: .64rem; }
.user-history-list small { margin-top: .15rem; color: #8995a3; font-size: .52rem; }
.user-history-list article > b { color: #354b62; font-size: .64rem; }
.report-filter { display: grid; grid-template-columns: 1fr 1fr auto auto; align-items: end; gap: .65rem; margin-bottom: 1rem; padding: 1rem; border: 1px solid #dce3eb; border-radius: 12px; background: white; box-shadow: var(--shadow-soft); }
.report-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .7rem; margin-bottom: 1rem; }
.report-metrics article { padding: 1rem; border: 1px solid #dce3eb; border-radius: 12px; background: white; box-shadow: 0 7px 22px rgba(20,43,73,.04); }
.report-metrics span,.report-metrics strong,.report-metrics small { display: block; }
.report-metrics span { color: #8290a0; font-size: .55rem; letter-spacing: .07em; text-transform: uppercase; }
.report-metrics strong { margin-top: .25rem; color: #2d435b; font-size: 1.3rem; font-weight: 580; }
.report-metrics small { margin-top: .18rem; color: #8a96a4; font-size: .55rem; }
.report-chart-panel { margin-bottom: 1rem; }
.report-chart { height: 255px; display: grid; grid-template-columns: repeat(auto-fit,minmax(38px,1fr)); align-items: end; gap: clamp(.35rem,1.6vw,1rem); padding: 1.4rem 1.5rem 1rem; background: linear-gradient(180deg,#fff,#fafcff); }
.report-chart > div { height: 100%; display: grid; grid-template-rows: 20px 1fr 22px; align-items: end; justify-items: center; }
.report-chart span { align-self: center; color: #748296; font-size: .58rem; }
.report-chart i { width: min(32px,70%); min-height: 7px; border-radius: 7px 7px 3px 3px; background: linear-gradient(180deg,color-mix(in srgb,var(--brand) 68%,white),var(--brand)); }
.report-chart small { color: #8491a0; font-size: .53rem; text-transform: capitalize; white-space: nowrap; }
.report-export-panel { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-bottom: 1rem; padding: 1.1rem 1.2rem; border: 1px solid #dce3eb; border-left: 4px solid var(--brand); border-radius: 12px; background: #f8fbff; }
.report-export-panel h2 { margin: .25rem 0 .15rem; color: #2c425a; font-size: 1rem; font-weight: 570; }
.report-export-panel p { margin: 0; color: #7b8999; font-size: .61rem; }
.report-export-panel > div:last-child { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .4rem; }
.report-detail-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(300px,.75fr); align-items: start; gap: 1rem; }
.report-completion-list article { display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: .65rem; padding: .75rem 1rem; border-bottom: 1px solid #edf0f4; }
.report-completion-list .profile-avatar { width: 29px; height: 29px; font-size: .6rem; }
.report-completion-list article > div { min-width: 0; }
.report-completion-list strong,.report-completion-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.report-completion-list strong { color: #3b5067; font-size: .64rem; }
.report-completion-list small { margin-top: .15rem; color: #8995a3; font-size: .52rem; }
.report-completion-list b { padding: .28rem .42rem; border-radius: 6px; background: #eaf6f0; color: var(--green); font-size: .51rem; font-weight: 600; }
.report-completion-list b.is-pending { background: #fff4dd; color: #8a6421; }

@media (max-width: 1120px) {
    .admin-quick-actions,.admin-metrics,.admin-attention-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .admin-system-health > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .admin-system-health article:nth-child(2) { border-right: 0; }
    .admin-system-health article:nth-child(-n+2) { border-bottom: 1px solid #e9edf2; }
    .admin-quick-actions a:nth-child(2),.admin-attention-grid a:nth-child(2) { border-right: 0; }
    .admin-quick-actions a:nth-child(-n+2) { border-bottom: 1px solid #e4e9ef; }
    .admin-detail-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .admin-activity-panel { grid-column: 1/-1; }
}

@media (max-width: 920px) {
    .sidebar { max-height: none; display: block; }
    .sidebar-profile { display: none; }
    .sidebar-nav { display: flex; overflow-x: auto; padding: 0; }
    .sidebar-group { display: flex; align-items: center; flex: 0 0 auto; }
    .sidebar-group + .sidebar-group { margin: 0; padding: 0; border: 0; }
    .sidebar-nav .sidebar-label { display: none; }
    .sidebar-nav a { flex: 0 0 auto; white-space: nowrap; }
    .sidebar-logout { display: inline-flex; }
    .admin-command-center .dashboard-shell { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
    .admin-command-header { align-items: flex-start; flex-direction: column; }
    .admin-header-actions { width: 100%; }
    .admin-header-actions .btn { flex: 1; }
    .admin-overview-grid,.admin-work-grid,.admin-detail-grid { grid-template-columns: 1fr; }
    .admin-activity-panel { grid-column: auto; }
    .user-admin-header { align-items: flex-start; flex-direction: column; }
    .user-admin-grid { grid-template-columns: 1fr; }
    .user-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .user-stat-grid > div:nth-child(2) { border-right: 0; }
    .user-stat-grid > div:nth-child(-n+2) { border-bottom: 1px solid #e6ebf0; }
    .user-course-list article { grid-template-columns: minmax(0,1fr) auto; }
    .user-course-list article > .status,.user-course-list article > a,.user-course-list article > .user-course-muted { justify-self: start; text-align: left; }
    .report-filter { grid-template-columns: 1fr 1fr; }
    .report-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .report-detail-grid { grid-template-columns: 1fr; }
    .report-export-panel { align-items: flex-start; flex-direction: column; }
    .report-export-panel > div:last-child { justify-content: flex-start; }
}

@media (max-width: 540px) {
    .admin-quick-actions,.admin-metrics,.admin-attention-grid { grid-template-columns: 1fr; }
    .admin-system-health > header { align-items: flex-start; flex-direction: column; }
    .admin-system-health > div { grid-template-columns: 1fr; }
    .admin-system-health article { border-right: 0; border-bottom: 1px solid #e9edf2; }
    .admin-system-health article:last-child { border-bottom: 0; }
    .admin-quick-actions a { border-right: 0; border-bottom: 1px solid #e4e9ef; }
    .admin-quick-actions a:last-child { border-bottom: 0; }
    .admin-command-header h1 { font-size: 2rem; }
    .report-filter,.report-metrics { grid-template-columns: 1fr; }
}

/* Operational controls: commerce, certificates and security */
.compact-metrics { margin-bottom: 1rem; }
.admin-advanced-filter { grid-template-columns: minmax(220px,1.4fr) repeat(3,minmax(140px,.65fr)) auto auto; align-items: center; }
.table-actions { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.table-actions form { margin: 0; }
.refund-row { display: grid; grid-template-columns: minmax(180px,.7fr) minmax(260px,1.5fr) auto; gap: .8rem; align-items: center; padding: .85rem 0; border-bottom: 1px solid var(--line); }
.refund-row:last-child { border-bottom: 0; }
.refund-row div { display: grid; gap: .18rem; }
.status-note { display: block; margin-top: .35rem; max-width: 190px; color: var(--muted); }
.certificate-revoke { display: flex; gap: .4rem; align-items: center; margin-top: .55rem; min-width: 310px; }
.certificate-revoke .form-input { min-height: 2.25rem; padding-block: .4rem; }
.security-panel { scroll-margin-top: 6.5rem; }
.security-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
.security-grid article { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: .8rem; align-items: start; padding: 1rem; border: 1px solid var(--line); border-radius: 14px; background: color-mix(in srgb,var(--panel) 86%,var(--surface)); }
.security-grid strong { display: block; margin-bottom: .22rem; }
.security-grid p { margin: 0; color: var(--muted); font-size: .86rem; line-height: 1.48; }
.security-grid a { color: var(--brand); font-weight: 650; font-size: .82rem; }
.security-icon { display: grid; place-items: center; width: 2.05rem; height: 2.05rem; border-radius: 10px; background: var(--surface); color: var(--brand); font-size: .7rem; font-weight: 700; }
.security-ok { color: var(--success); background: color-mix(in srgb,var(--success) 10%,transparent); border-radius: 999px; padding: .3rem .55rem; font-size: .72rem; font-weight: 700; }

@media (max-width: 1050px) {
    .admin-advanced-filter { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .admin-advanced-filter .filter-search { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
    .admin-advanced-filter,.security-grid,.refund-row { grid-template-columns: 1fr; }
    .admin-advanced-filter .filter-search { grid-column: auto; }
    .certificate-revoke { min-width: 260px; }
    .settings-intro,.permission-grid { grid-template-columns: 1fr; }
    .settings-intro > div { border-right: 0; border-bottom: 1px solid #e2e8ef; }
    .settings-intro > div:last-child { border-bottom: 0; }
    .settings-operation { margin-top: 2rem; }
    .settings-operation-heading { padding: 0; }
    .permission-actions { align-items: flex-start; flex-direction: column; }
    .permission-actions .btn { width: 100%; }
    .settings-management-card .panel-head,.settings-review-panel .panel-head,.settings-permissions .panel-head { padding: 1rem; }
    .settings-workspace-summary,.payment-section-heading,.payment-test-row { align-items: flex-start; flex-direction: column; }
    .settings-summary-status { width: 100%; padding: .75rem 0 0; border-top: 1px solid #e1e7ed; border-left: 0; }
    .payment-provider-grid { grid-template-columns: 1fr; }
    .payment-test-row span { text-align: left; }
    .content-admin-panel .panel-head,.content-records-head,.content-form-section-head { align-items: flex-start; flex-direction: column; }
    .content-admin-panel .panel-head p,.content-form-section-head p { text-align: left; }
    .content-form-actions { align-items: flex-start; flex-direction: column; }
    .content-form-actions .btn { width: 100%; }
    .content-overview,.content-editor-layout,.faq-editor-layout { grid-template-columns: 1fr; }
    .content-overview article { border-right: 0; border-bottom: 1px solid #e5ebf0; }
    .content-overview article:last-child { border-bottom: 0; }
    .content-section-nav { flex-direction: column; }
    .advanced-editor-toolbar { align-items: flex-start; flex-direction: column; }
    .advanced-editor-modes { width: 100%; padding: .35rem 0 0; border-top: 1px solid #dfe6ed; border-left: 0; }
    .public-page-layout { grid-template-columns: 1fr; }
    .public-page-aside { position: static; }
    .content-record > summary { grid-template-columns: 32px minmax(0,1fr) auto auto; }
    .content-record > summary > i { display: none; }
    .installer-body { padding: 0; background: #fff; }
    .installer-shell { min-height: 100vh; grid-template-columns: 1fr; border: 0; border-radius: 0; box-shadow: none; }
    .installer-rail { display: none; }
    .installer-topbar { grid-template-columns: 1fr auto; min-height: 64px; padding: 0 1.2rem; }
    .installer-topbar .installer-progress { grid-column: 1/-1; width: 100%; margin-top: -.55rem; }
    .installer-mobile-brand { display: block; }
    .installer-content { padding: 2.2rem 1.2rem 2rem; }
    .installer-content h1 { font-size: 2.2rem; }
    .installer-welcome h1 { font-size: 2.75rem; }
    .installer-welcome-grid,.installer-form { grid-template-columns: 1fr; }
    .installer-welcome-grid article { min-height: auto; }
    .installer-footer { padding: 1.15rem 1.2rem; }
}

/* Identidad predeterminada AcademyCore */
.installer-brand img { width: auto; max-width: 190px; max-height: 42px; display: block; }
.installer-mobile-brand img { width: 24px; height: 24px; margin-right: .35rem; vertical-align: middle; }

/* Entorno administrativo LMS */
.admin-area { background: #f3f6f9; }
.admin-area .container-shell { width: min(1480px,calc(100% - 2.5rem)); }
.admin-appbar { position: sticky; top: 0; z-index: 90; height: 68px; border-bottom: 1px solid #dce4ec; background: rgba(255,255,255,.96); box-shadow: 0 1px 0 rgba(20,42,70,.03); backdrop-filter: blur(16px); }
.admin-appbar-inner { display: flex; height: 100%; align-items: center; justify-content: space-between; gap: 2rem; }
.admin-appbar-brand { display: flex; align-items: center; gap: 1rem; }
.admin-appbar-brand > .brand { padding-right: 1rem; border-right: 1px solid #dfe6ed; }
.admin-appbar-brand > span,.admin-appbar-profile > span:last-child { display: grid; gap: .08rem; }
.admin-appbar-brand strong { color: #263b52; font-size: .75rem; font-weight: 650; }
.admin-appbar-brand small { color: #8290a0; font-size: .6rem; }
.admin-appbar nav { display: flex; align-items: center; gap: .35rem; }
.admin-appbar nav > a,.admin-appbar nav form button { display: inline-flex; min-height: 38px; align-items: center; gap: .35rem; padding: .55rem .7rem; border: 0; border-radius: 8px; background: transparent; color: #52647a; font: inherit; font-size: .68rem; font-weight: 580; text-decoration: none; cursor: pointer; }
.admin-appbar nav > a:hover,.admin-appbar nav form button:hover { background: #f1f5f8; color: var(--brand); }
.admin-logout-short { display: none; }
.admin-appbar-notifications { position: relative; }
.admin-appbar-notifications i { display: grid; min-width: 18px; height: 18px; place-items: center; border-radius: 999px; background: var(--brand); color: white; font-size: .54rem; font-style: normal; }
.admin-appbar-profile { padding-left: .45rem !important; }
.admin-appbar-profile .profile-avatar { width: 32px; height: 32px; }
.admin-appbar-profile strong { display: block; max-width: 150px; overflow: hidden; color: #31465e; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.admin-appbar-profile small { color: #8592a1; font-size: .56rem; }
.admin-area .dashboard-page { min-height: calc(100vh - 68px); background: #f3f6f9; }
.admin-area .dashboard-shell { grid-template-columns: 260px minmax(0,1fr); gap: 1.65rem; padding-top: 1.35rem; }
.admin-area .sidebar { top: 84px; max-height: calc(100vh - 100px); }
.admin-area .settings-section-nav { top: 82px; }
.admin-workspace .dashboard-main { display: grid; align-content: start; gap: 1rem; }
.admin-page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; padding: .35rem 0 .75rem; }
.admin-page-header h1 { margin: .28rem 0 .3rem; color: #162d47; font-size: clamp(1.85rem,3vw,2.5rem); font-weight: 560; line-height: 1.08; letter-spacing: -.045em; }
.admin-page-header p { max-width: 680px; margin: 0; color: #6e7d8f; font-size: .76rem; line-height: 1.55; }
.admin-stat-strip { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); overflow: hidden; border: 1px solid #dce4ec; border-radius: 13px; background: white; box-shadow: 0 8px 24px rgba(21,47,78,.04); }
.admin-stat-strip article { position: relative; display: grid; gap: .18rem; min-height: 105px; padding: 1.05rem 1.15rem; border-right: 1px solid #e5ebf0; }
.admin-stat-strip article:last-child { border-right: 0; }
.admin-stat-strip article span { color: #748397; font-size: .6rem; font-weight: 670; letter-spacing: .08em; text-transform: uppercase; }
.admin-stat-strip article strong { color: #1b3551; font-size: 1.75rem; font-weight: 560; letter-spacing: -.04em; }
.admin-stat-strip article small { color: #8592a2; font-size: .63rem; }
.admin-stat-strip article.needs-attention::before { position: absolute; top: 0; right: 0; left: 0; height: 3px; background: #d78b38; content: ""; }
.admin-toolbar { display: grid; grid-template-columns: minmax(260px,1.4fr) minmax(150px,.5fr) auto auto; align-items: end; gap: .65rem; padding: .85rem; border: 1px solid #dce4ec; border-radius: 12px; background: white; }
.admin-toolbar > label { display: grid; gap: .32rem; }
.admin-toolbar > label > span { color: #65768a; font-size: .59rem; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }
.admin-toolbar > a { align-self: center; color: #6b7c90; font-size: .66rem; }
.admin-module-layout { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(300px,.55fr); align-items: start; gap: 1rem; }
.module-list-panel,.module-create-panel,.review-moderation-panel,.access-policy-panel { overflow: hidden; border: 1px solid #dbe3eb; border-radius: 14px; box-shadow: 0 10px 28px rgba(20,45,75,.045); }
.module-list-panel > .panel-head,.module-create-panel > .panel-head,.review-moderation-panel > .panel-head { padding: 1rem 1.1rem; background: linear-gradient(120deg,#fcfdff,#f7f9fc); }
.module-list-panel .panel-head h2,.module-create-panel .panel-head h2,.review-moderation-panel .panel-head h2 { margin: 0; color: #2d425a; font-size: .92rem; font-weight: 650; }
.module-list-panel .panel-head p,.module-create-panel .panel-head p,.review-moderation-panel .panel-head p { margin: .2rem 0 0; color: #7b8999; font-size: .65rem; }
.module-record-list { display: grid; }
.module-record { border-bottom: 1px solid #e8edf2; }
.module-record:last-child { border-bottom: 0; }
.module-record > summary { display: grid; grid-template-columns: 42px minmax(0,1fr) auto 20px; align-items: center; gap: .8rem; min-height: 76px; padding: .75rem 1rem; list-style: none; cursor: pointer; transition: background .16s ease; }
.module-record > summary::-webkit-details-marker { display: none; }
.module-record > summary:hover,.module-record[open] > summary { background: #f7fafd; }
.module-record > summary > span:nth-child(2) { display: grid; gap: .18rem; }
.module-record > summary strong { color: #30465f; font-size: .76rem; font-weight: 650; }
.module-record > summary small { color: #8290a0; font-size: .62rem; }
.module-record > summary > i { color: #8492a1; font-size: .7rem; font-style: normal; transition: transform .15s ease; }
.module-record[open] > summary > i { transform: rotate(180deg); }
.module-record-icon { display: grid; width: 42px; height: 42px; place-items: center; overflow: hidden; border: 1px solid #d9e2eb; border-radius: 10px; background: #eef4fa; color: var(--brand); font-size: .68rem; font-weight: 750; }
.coupon-record .module-record-icon { background: #f7f1e6; color: #8b6427; }
.module-record-form { padding: 1rem; border-top: 1px solid #e7edf2; background: #fbfcfe; }
.record-form-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .9rem; padding-top: .9rem; border-top: 1px solid #e3e9ef; }
.switch-row.compact { flex: 1; max-width: 470px; padding: 0; border: 0; background: transparent; }
.module-create-panel { position: sticky; top: 84px; }
.module-create-panel .panel-body { display: grid; gap: .85rem; }
.module-create-panel .panel-body > label { display: grid; gap: .35rem; }
.module-create-panel .form-grid { gap: .65rem; }
.module-create-panel .btn { width: 100%; margin-top: .2rem; }
.modules-admin-layout { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(320px,.62fr); align-items: start; gap: 1rem; }
.modules-list-panel,.module-upload-panel { overflow: hidden; border: 1px solid #dbe3eb; border-radius: 14px; box-shadow: 0 10px 28px rgba(20,45,75,.045); }
.modules-list-panel > .panel-head,.module-upload-panel > .panel-head { padding: 1rem 1.1rem; background: linear-gradient(120deg,#fcfdff,#f7f9fc); }
.modules-list-panel .panel-head h2,.module-upload-panel .panel-head h2 { margin: 0; color: #2d425a; font-size: .92rem; font-weight: 650; }
.modules-list-panel .panel-head p,.module-upload-panel .panel-head p { margin: .2rem 0 0; color: #7b8999; font-size: .65rem; }
.module-package-list { display: grid; }
.module-package-record { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; gap: .85rem; align-items: start; padding: 1rem 1.1rem; border-bottom: 1px solid #e7edf2; }
.module-package-record:last-child { border-bottom: 0; }
.module-package-icon { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid color-mix(in srgb,var(--brand) 22%,#d9e2eb); border-radius: 10px; background: color-mix(in srgb,var(--brand) 9%,white); color: var(--brand); font-size: .78rem; font-weight: 750; }
.module-package-content { display: grid; min-width: 0; gap: .45rem; }
.module-package-content header { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; }
.module-package-content header > div { display: grid; gap: .14rem; }
.module-package-content strong { color: #2e435c; font-size: .78rem; font-weight: 680; }
.module-package-content header span:not(.module-package-status) { overflow: hidden; color: #8190a0; font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.module-package-status { flex: 0 0 auto; padding: .25rem .45rem; border: 1px solid #b8dfcc; border-radius: 999px; background: #f2fbf6; color: #247451; font-size: .55rem; font-weight: 700; }
.module-package-content p { margin: 0; color: #607287; font-size: .66rem; line-height: 1.5; }
.module-package-content footer { display: flex; flex-wrap: wrap; gap: .3rem .8rem; color: #8996a5; font-size: .58rem; }
.module-package-actions { display: flex; align-items: center; gap: .4rem; padding-top: .1rem; }
.module-package-actions form { margin: 0; }
.btn-danger { border-color: #e4c3c0; background: #fffafa; color: #a04c45; }
.btn-danger:hover { border-color: #bf5b50; background: #fff3f2; color: #8b372f; }
.module-upload-panel { position: sticky; top: 84px; }
.module-upload-panel .panel-body { display: grid; gap: .85rem; }
.module-upload-form > .btn { width: 100%; }
.module-upload-dropzone { position: relative; display: grid; grid-template-columns: 48px minmax(0,1fr); align-items: center; gap: .75rem; padding: .8rem; border: 1px dashed #aebdcd; border-radius: 10px; background: #fafcff; cursor: pointer; transition: border-color .18s ease,background .18s ease,box-shadow .18s ease; }
.module-upload-dropzone:hover,.module-upload-dropzone:focus-within { border-color: var(--brand); background: color-mix(in srgb,var(--brand) 4%,white); box-shadow: 0 8px 20px rgba(20,43,73,.06); }
.module-upload-dropzone.is-selected { border-style: solid; border-color: #2d9468; background: #f4fbf7; }
.module-upload-dropzone input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.module-upload-symbol { display: grid; width: 48px; height: 48px; place-items: center; border: 1px solid #d6e1ec; border-radius: 8px; background: #edf4fb; color: var(--brand); font-size: .62rem; font-weight: 780; letter-spacing: .05em; }
.module-upload-copy { display: grid; min-width: 0; gap: .2rem; }
.module-upload-copy strong { color: #30465f; font-size: .73rem; }
.module-upload-copy small,.module-upload-copy em { color: #7b8999; font-size: .6rem; font-style: normal; line-height: 1.45; }
.module-upload-copy em { overflow: hidden; color: #60748a; text-overflow: ellipsis; white-space: nowrap; }
.module-upload-dropzone .upload-button { grid-column: 1/-1; text-align: center; }
.module-upload-checks { display: grid; gap: .35rem; padding: .7rem .8rem; border: 1px solid #e0e7ed; border-radius: 9px; background: #f8fafc; color: #687a8d; font-size: .6rem; }
.module-upload-checks span { color: #41627f; }
.module-manifest-guide { padding: .9rem 1.1rem 1rem; border-top: 1px solid #e7edf2; background: #fbfcfe; }
.module-manifest-guide header { display: grid; gap: .15rem; }
.module-manifest-guide header span { color: #7c8b9c; font-size: .54rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.module-manifest-guide header strong { color: #374e66; font-size: .68rem; }
.module-manifest-guide code { padding: .08rem .22rem; border-radius: 3px; background: #edf2f7; color: #285278; font-size: .64rem; }
.module-manifest-guide pre { overflow: auto; margin: .7rem 0; padding: .7rem; border: 1px solid #dce5ed; border-radius: 7px; background: #f2f6fa; color: #395873; font: 600 .58rem/1.55 ui-monospace,SFMono-Regular,Menlo,monospace; }
.module-manifest-guide p { margin: 0; color: #7a899a; font-size: .6rem; line-height: 1.55; }
.module-empty-state { padding: 3.5rem 1rem; }
.system-update-workspace { overflow: hidden; scroll-margin-top: 92px; border: 1px solid #d7e1ea; border-radius: 14px; box-shadow: 0 12px 34px rgba(20,45,75,.05); }
.system-update-heading { align-items: center; padding: 1rem 1.15rem; border-bottom: 1px solid #e4eaf0; background: linear-gradient(115deg,#f9fbfd,#f2f7fb); }
.system-update-heading h2 { margin: .12rem 0 0; color: #2a425c; font-size: .96rem; font-weight: 670; }
.system-update-heading p { margin: .25rem 0 0; color: #778799; font-size: .64rem; }
.system-current-version { display: grid; justify-items: end; gap: .15rem; color: #7b8a9b; font-size: .54rem; letter-spacing: .05em; text-transform: uppercase; }
.system-current-version strong { color: var(--brand); font-size: .76rem; letter-spacing: 0; }
.system-update-layout { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(320px,.65fr); align-items: start; }
.system-update-history { min-width: 0; border-right: 1px solid #e1e8ee; }
.system-update-history > header { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: .9rem 1.05rem; border-bottom: 1px solid #e7edf2; }
.system-update-history h3 { margin: .15rem 0 0; color: #344b63; font-size: .78rem; font-weight: 660; }
.system-update-history > header > small { color: #8391a0; font-size: .57rem; }
.system-update-list { display: grid; }
.system-update-record { display: grid; grid-template-columns: 72px minmax(0,1fr) auto; align-items: center; gap: .8rem; padding: .9rem 1rem; border-bottom: 1px solid #e7edf2; }
.system-update-record:last-child { border-bottom: 0; }
.system-update-version { display: grid; min-height: 42px; place-items: center; border: 1px solid #cfe0ef; border-radius: 9px; background: #eef5fb; color: #255b89; font: 700 .65rem/1 ui-monospace,SFMono-Regular,Menlo,monospace; }
.system-update-record > div:nth-child(2) { display: grid; min-width: 0; gap: .16rem; }
.system-update-record strong { color: #30475f; font-size: .71rem; }
.system-update-record p { margin: 0; color: #748395; font-size: .6rem; line-height: 1.45; }
.system-update-record small { overflow: hidden; color: #8a97a5; font: 500 .5rem/1.35 ui-monospace,SFMono-Regular,Menlo,monospace; text-overflow: ellipsis; white-space: nowrap; }
.system-update-record .module-package-actions { grid-column: 2 / -1; justify-content: flex-end; padding-top: .25rem; }
.system-update-empty { min-height: 245px; padding: 2.5rem 1rem; }
.system-update-uploader { display: grid; gap: .8rem; padding: 1rem; background: #fbfcfe; }
.system-update-security { padding: .75rem .8rem; border: 1px solid #d8e6df; border-left: 3px solid #2b805e; border-radius: 9px; background: #f5faf7; }
.system-update-security span { color: #34745b; font-size: .51rem; font-weight: 740; letter-spacing: .08em; text-transform: uppercase; }
.system-update-security strong { display: block; margin-top: .2rem; color: #315344; font-size: .7rem; }
.system-update-security p { margin: .25rem 0 0; color: #71847a; font-size: .57rem; line-height: 1.5; }
.system-update-dropzone { background: #fff; }
.system-update-dropzone .module-upload-symbol { background: #eaf3fa; color: #245b89; }
.system-update-manifest { overflow: hidden; border: 1px solid #dce4eb; border-radius: 9px; background: #fff; }
.system-update-manifest summary { display: flex; align-items: center; justify-content: space-between; padding: .65rem .75rem; color: #496077; font-size: .6rem; font-weight: 650; cursor: pointer; list-style: none; }
.system-update-manifest summary::-webkit-details-marker { display: none; }
.system-update-manifest summary i { color: #8592a0; font-style: normal; }
.system-update-manifest pre { overflow: auto; margin: 0; padding: .75rem; border-top: 1px solid #e5ebf0; background: #f3f7fa; color: #365671; font: 600 .52rem/1.55 ui-monospace,SFMono-Regular,Menlo,monospace; }
.system-update-manifest p { margin: 0; padding: .65rem .75rem; color: #788798; font-size: .55rem; }
.system-update-manifest code { color: var(--brand); }

@media (max-width: 980px) {
    .system-update-layout { grid-template-columns: 1fr; }
    .system-update-history { border-right: 0; border-bottom: 1px solid #e1e8ee; }
}

@media (max-width: 620px) {
    .system-update-heading { align-items: flex-start; }
    .system-current-version { justify-items: start; }
    .system-update-record { grid-template-columns: 58px minmax(0,1fr); }
    .system-update-record > .module-package-status { grid-column: 2; justify-self: start; }
    .system-update-record .module-package-actions { grid-column: 1 / -1; }
}
.panel-pagination { padding: .9rem 1rem; border-top: 1px solid #e6ecf1; }
.role-overview-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem; }
.role-overview-card { position: relative; display: grid; grid-template-columns: auto 1fr; gap: .7rem; min-height: 152px; padding: 1rem; border: 1px solid #dbe3eb; border-radius: 13px; background: white; box-shadow: 0 8px 24px rgba(20,44,73,.035); }
.role-overview-card.is-featured { border-top: 3px solid var(--brand); padding-top: calc(1rem - 2px); }
.role-overview-card > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 8px; background: #edf3f9; color: #66798f; font-size: .58rem; font-weight: 700; }
.role-overview-card strong { color: #2c425b; font-size: .76rem; }
.role-overview-card p { margin: .35rem 0 0; color: #7a899a; font-size: .62rem; line-height: 1.5; }
.role-overview-card footer { grid-column: 1/-1; display: flex; align-items: center; justify-content: space-between; align-self: end; padding-top: .65rem; border-top: 1px solid #e8edf2; }
.role-overview-card footer b { color: #50657c; font-size: .62rem; }
.role-overview-card footer small { color: #8b98a7; font-size: .58rem; }
.access-policy-panel > .panel-head { padding: 1.1rem 1.2rem; background: linear-gradient(120deg,#fbfdff,#f5f8fb); }
.access-policy-count { padding: .45rem .65rem; border: 1px solid #d8e2eb; border-radius: 999px; background: white; color: #5e7085; font-size: .61rem; font-weight: 650; }
.permission-section { margin: 0; padding: 1rem 0; border: 0; border-bottom: 1px solid #e6ecf1; }
.permission-section:first-child { padding-top: 0; }
.permission-section legend { display: flex; width: 100%; align-items: center; justify-content: space-between; margin-bottom: .65rem; color: #30475f; font-size: .72rem; font-weight: 700; }
.permission-section legend small { color: #8a98a7; font-size: .56rem; font-weight: 500; }
.review-admin-list { display: grid; }
.review-admin-card { display: grid; gap: .75rem; padding: 1rem 1.1rem; border-bottom: 1px solid #e7edf2; }
.review-admin-card:last-child { border-bottom: 0; }
.review-admin-card > header { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: .7rem; }
.review-admin-avatar { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: #eaf1f8; color: var(--brand); font-size: .7rem; font-weight: 700; }
.review-admin-card header > div { display: grid; gap: .12rem; }
.review-admin-card header strong { color: #30465e; font-size: .73rem; }
.review-admin-card header small { color: #8492a1; font-size: .6rem; }
.review-stars { color: #ce8a2d; font-size: .74rem; letter-spacing: .08em; }
.review-admin-card > p { margin: 0 0 0 45px; color: #52657a; font-size: .72rem; line-height: 1.6; }
.review-admin-card > footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-left: 45px; }
.review-admin-card > footer form { display: flex; gap: .4rem; }

@media (max-width: 1120px) {
    .role-overview-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .admin-module-layout,.modules-admin-layout { grid-template-columns: 1fr; }
    .module-create-panel,.module-upload-panel { position: static; }
}
@media (max-width: 920px) {
    .admin-appbar { height: auto; min-height: 64px; }
    .admin-appbar-inner { padding-block: .65rem; }
    .admin-appbar-brand > span,.admin-appbar nav > a:first-child,.admin-appbar-profile > span:last-child { display: none; }
    .admin-area .dashboard-shell { grid-template-columns: 1fr; }
    .admin-area .sidebar { position: static; max-height: none; }
    .admin-stat-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .admin-stat-strip article:nth-child(2) { border-right: 0; }
    .admin-stat-strip article:nth-child(-n+2) { border-bottom: 1px solid #e5ebf0; }
}
@media (max-width: 700px) {
    .admin-area .container-shell { width: min(100% - 1.2rem,1480px); }
    .admin-appbar nav > a:not(.admin-appbar-profile),.admin-appbar nav form button { padding-inline: .45rem; font-size: .61rem; }
    .admin-page-header { align-items: flex-start; flex-direction: column; }
    .admin-page-header .btn { width: 100%; }
    .admin-toolbar { grid-template-columns: 1fr; }
    .role-overview-grid,.permission-grid { grid-template-columns: 1fr; }
    .record-form-actions,.review-admin-card > footer { align-items: stretch; flex-direction: column; }
    .review-admin-card > header { grid-template-columns: 38px minmax(0,1fr); }
    .review-stars { grid-column: 2; }
    .review-admin-card > p,.review-admin-card > footer { margin-left: 0; }
    .review-admin-card > footer form { display: grid; grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
    .admin-appbar-brand > .brand { padding-right: 0; border-right: 0; }
    .admin-appbar nav > a:first-of-type,.admin-appbar-notifications { display: none; }
    .admin-logout-full { display: none; }
    .admin-logout-short { display: inline; }
    .admin-stat-strip { grid-template-columns: 1fr; }
    .admin-stat-strip article { border-right: 0; border-bottom: 1px solid #e5ebf0; }
    .admin-stat-strip article:last-child { border-bottom: 0; }
    .module-record > summary { grid-template-columns: 38px minmax(0,1fr) auto; }
    .module-record > summary > i { display: none; }
    .module-record > summary > .status { grid-column: 2; justify-self: start; }
    .module-package-record { grid-template-columns: 38px minmax(0,1fr); }
    .module-package-actions { grid-column: 1/-1; justify-content: flex-end; }
}

/* Ritmo final del back office: estas reglas cierran las variaciones heredadas
   entre los módulos para que cada pantalla comparta la misma escala visual. */
.admin-area .dashboard-shell { grid-template-columns: 260px minmax(0, 1fr); gap: 1.45rem; padding: 1.25rem 0 3rem; }
.admin-area .dashboard-main { display: grid; min-width: 0; align-content: start; gap: 1rem; }
.admin-area .dashboard-title,
.admin-area .admin-command-header,
.admin-area .admin-page-header,
.admin-area .user-admin-header { display: flex; min-height: 0; align-items: flex-end; justify-content: space-between; gap: 1.25rem; margin: 0; padding: .25rem 0 .8rem; }
.admin-area .dashboard-title h1,
.admin-area .admin-command-header h1,
.admin-area .admin-page-header h1,
.admin-area .user-admin-header h1 { margin: .2rem 0 .28rem; color: #172f49; font-size: clamp(1.75rem, 2.7vw, 2.35rem); font-weight: 560; line-height: 1.1; letter-spacing: -.045em; }
.admin-area .dashboard-title p,
.admin-area .admin-command-header p,
.admin-area .admin-page-header p,
.admin-area .user-admin-header p { max-width: 720px; margin: 0; color: #6f8093; font-size: .76rem; line-height: 1.55; }
.admin-area .panel,
.admin-area .user-admin-card,
.admin-area .settings-management-card,
.admin-area .content-admin-panel { overflow: hidden; border-color: #dbe4ec; border-radius: 13px; box-shadow: 0 8px 24px rgba(24, 52, 83, .04); }
.admin-area .panel-head,
.admin-area .content-records-head,
.admin-area .settings-management-card > header,
.admin-area .user-admin-card > header { min-height: 0; padding: .95rem 1.1rem; }
.admin-area .panel-head h2,
.admin-area .content-records-head h2,
.admin-area .settings-management-card h2,
.admin-area .user-admin-card h2 { color: #2a425c; font-size: .9rem; font-weight: 650; }
.admin-area .panel-head p,
.admin-area .content-records-head p,
.admin-area .settings-management-card header p,
.admin-area .user-admin-card header p { color: #76879a; font-size: .67rem; line-height: 1.5; }
.admin-area .panel-body,
.admin-area .user-admin-card > div,
.admin-area .content-admin-panel > .panel-body { padding: 1.05rem 1.1rem; }
.admin-area .metric-grid,
.admin-area .admin-stat-strip,
.admin-area .admin-metric-grid { gap: .8rem; }
.admin-area .metric-card,
.admin-area .admin-stat-strip article,
.admin-area .admin-metric-grid article { min-height: 104px; }
.admin-area .metric-card strong,
.admin-area .admin-stat-strip article strong,
.admin-area .admin-metric-grid strong { font-weight: 560; }
.admin-area .filter-bar,
.admin-area .admin-advanced-filter,
.admin-area .table-filter,
.admin-area .user-admin-toolbar { align-items: end; gap: .65rem; padding: .8rem; border: 1px solid #dce5ed; border-radius: 12px; background: #fff; }
.admin-area .filter-bar label,
.admin-area .admin-advanced-filter label,
.admin-area .table-filter label,
.admin-area .user-admin-toolbar label { min-width: 0; }
.admin-area .form-grid,
.admin-area .settings-form-grid,
.admin-area .content-form-grid { gap: .8rem 1rem; }
.admin-area label > span,
.admin-area .field-label { color: #5f7287; font-size: .62rem; font-weight: 680; letter-spacing: .055em; text-transform: uppercase; }
.admin-area input,
.admin-area select,
.admin-area textarea { min-height: 40px; border-color: #d7e1ea; border-radius: 8px; font-size: .74rem; }
.admin-area textarea { min-height: 104px; }
.admin-area .data-table { min-width: 680px; }
.admin-area .data-table th { padding: .72rem .9rem; font-size: .59rem; }
.admin-area .data-table td { padding: .8rem .9rem; font-size: .7rem; }
.admin-area .table-wrap { border-radius: 0; }
.admin-area .content-editor-layout,
.admin-area .faq-editor-layout,
.admin-area .settings-layout { align-items: start; gap: 1rem; }
.admin-area .settings-section-nav,
.admin-area .public-page-aside { top: 84px; }

@media (max-width: 1120px) {
    .admin-area .dashboard-shell { grid-template-columns: 238px minmax(0, 1fr); gap: 1rem; }
    .admin-area .content-editor-layout,
    .admin-area .faq-editor-layout,
    .admin-area .settings-layout { grid-template-columns: 1fr; }
    .admin-area .settings-section-nav,
    .admin-area .public-page-aside { position: static; }
}

@media (max-width: 920px) {
    .admin-area .dashboard-shell { grid-template-columns: 1fr; padding-top: .9rem; }
    .admin-area .sidebar { position: static; max-height: none; }
    .admin-area .dashboard-title,
    .admin-area .admin-command-header,
    .admin-area .admin-page-header,
    .admin-area .user-admin-header { align-items: flex-start; flex-direction: column; gap: .65rem; }
    .admin-area .dashboard-title .btn,
    .admin-area .admin-command-header .btn,
    .admin-area .admin-page-header .btn,
    .admin-area .user-admin-header .btn { width: 100%; }
    .admin-area .filter-bar,
    .admin-area .admin-advanced-filter,
    .admin-area .table-filter,
    .admin-area .user-admin-toolbar { grid-template-columns: 1fr !important; }
}

@media (max-width: 640px) {
    .admin-area .dashboard-main { gap: .8rem; }
    .admin-area .dashboard-title h1,
    .admin-area .admin-command-header h1,
    .admin-area .admin-page-header h1,
    .admin-area .user-admin-header h1 { font-size: 1.7rem; }
    .admin-area .panel-head,
    .admin-area .content-records-head,
    .admin-area .settings-management-card > header,
    .admin-area .user-admin-card > header,
    .admin-area .panel-body,
    .admin-area .user-admin-card > div,
    .admin-area .content-admin-panel > .panel-body { padding-right: .85rem; padding-left: .85rem; }
    .admin-area .form-grid,
    .admin-area .settings-form-grid,
    .admin-area .content-form-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
    .admin-area .settings-main { display: block; }
    .admin-area .settings-main > .settings-section-nav { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 1rem; }
    .admin-area .settings-main > .settings-form,
    .admin-area .settings-main > .settings-overview,
    .admin-area .settings-main > .security-panel { grid-column: auto; grid-row: auto; min-width: 0; }
    .admin-area .settings-main .settings-section-nav a { min-height: 52px; }
    .admin-area .settings-main .settings-section-nav a small,
    .admin-area .settings-main .settings-section-nav a > i { display: none; }
}

@media (max-width: 520px) {
    .admin-area .settings-main > .settings-section-nav { grid-template-columns: 1fr; }
    .admin-area .settings-main .settings-section-nav a > i { display: block; }
}

/* Alta de usuarios: bloques breves y campos de acceso con proporción consistente. */
.admin-area .user-create-form { gap: .85rem; padding: 1.05rem 1.1rem; }
.admin-area .user-create-section { display: grid; gap: .65rem; padding-bottom: .9rem; border-bottom: 1px solid #e8edf2; }
.admin-area .user-create-section:last-of-type { padding-bottom: 0; border-bottom: 0; }
.admin-area .user-create-section-head { display: flex; align-items: center; gap: .5rem; }
.admin-area .user-create-section-head > span { display: grid; width: 25px; height: 25px; flex: 0 0 25px; place-items: center; border: 1px solid #d9e3ec; border-radius: 7px; background: #f5f8fb; color: #66809c; font-size: .53rem; font-weight: 750; }
.admin-area .user-create-section-head > div { display: grid; gap: .06rem; }
.admin-area .user-create-section-head strong { color: #38506a; font-size: .69rem; font-weight: 680; }
.admin-area .user-create-section-head small { color: #8391a0; font-size: .58rem; }
.admin-area .user-create-grid,
.admin-area .user-create-identity-grid,
.admin-area .user-create-password-grid,
.admin-area .user-create-access-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem 1rem; }
.admin-area .user-create-password-grid label { min-width: 0; }
.admin-area .user-create-password-grid .form-input { width: 100%; }
.admin-area .user-permissions-shortcut { white-space: nowrap; }
.admin-area .user-permissions-panel { scroll-margin-top: 92px; }

@media (max-width: 700px) {
    .admin-area .user-create-form { padding: .9rem; }
    .admin-area .user-create-grid,
    .admin-area .user-create-identity-grid,
    .admin-area .user-create-password-grid,
    .admin-area .user-create-access-grid { grid-template-columns: 1fr; }
    .admin-area .user-permissions-shortcut { width: 100%; }
}

/* Densidad operativa: más información útil por pantalla sin sacrificar lectura. */
.admin-area .dashboard-shell { padding-bottom: 2rem; }
.admin-area .dashboard-main { gap: .72rem; }
.admin-area .dashboard-title,
.admin-area .admin-command-header,
.admin-area .admin-page-header,
.admin-area .user-admin-header { padding-bottom: .45rem; }
.admin-area .panel-head,
.admin-area .content-records-head,
.admin-area .settings-management-card > header,
.admin-area .user-admin-card > header,
.admin-area .admin-panel-head { padding: .72rem .9rem; }
.admin-area .panel-body,
.admin-area .user-admin-card > div,
.admin-area .content-admin-panel > .panel-body { padding: .8rem .9rem; }
.admin-area .metric-card,
.admin-area .admin-stat-strip article,
.admin-area .admin-metric-grid article { min-height: 88px; padding: .8rem .9rem; }
.admin-area .filter-bar,
.admin-area .admin-advanced-filter,
.admin-area .table-filter,
.admin-area .user-admin-toolbar { gap: .5rem; padding: .62rem; }
.admin-area .form-grid,
.admin-area .settings-form-grid,
.admin-area .content-form-grid { gap: .62rem .8rem; }
.admin-area .data-table th { padding-block: .58rem; }
.admin-area .data-table td { padding-block: .62rem; }

.admin-area .user-create-form { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: .65rem; padding: .8rem .9rem; }
.admin-area .user-create-section { gap: .5rem; min-width: 0; padding: .65rem; border: 1px solid #e3eaf0; border-radius: 10px; background: #fbfcfe; }
.admin-area .user-create-section:last-of-type { padding-bottom: .65rem; border-bottom: 1px solid #e3eaf0; }
.admin-area .user-create-section-head { gap: .4rem; }
.admin-area .user-create-section-head > span { width: 22px; height: 22px; flex-basis: 22px; font-size: .5rem; }
.admin-area .user-create-section-head strong { font-size: .64rem; }
.admin-area .user-create-section-head small { font-size: .53rem; line-height: 1.25; }
.admin-area .user-create-grid,
.admin-area .user-create-identity-grid,
.admin-area .user-create-password-grid,
.admin-area .user-create-access-grid { grid-template-columns: 1fr; gap: .5rem; }
.admin-area .user-create-form > footer { grid-column: 1 / -1; margin-top: .05rem; padding-top: .65rem; }
.admin-area .user-create-form > footer .form-help { font-size: .58rem; }
.admin-area .user-create-form .form-input,
.admin-area .user-create-form .form-select { min-height: 38px; }
.admin-area .user-create-form .form-help { margin-top: .12rem; font-size: .54rem; line-height: 1.3; }

@media (max-width: 1220px) {
    .admin-area .user-create-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .admin-area .user-create-form { grid-template-columns: 1fr; }
    .admin-area .user-create-form > footer { grid-column: auto; }
}

/* Barra de confirmación de permisos: siempre identificable al terminar la selección. */
.admin-area .user-permissions-panel .panel-body { padding-bottom: .9rem; }
.admin-area .user-permission-actions { position: sticky; bottom: .7rem; z-index: 12; align-items: center; margin-top: .75rem; padding: .7rem .8rem; border: 1px solid #d8e3ed; border-radius: 10px; background: rgba(255, 255, 255, .96); box-shadow: 0 10px 24px rgba(24, 50, 80, .12); backdrop-filter: blur(12px); }
.admin-area .user-permission-actions > div { display: grid; min-width: 0; gap: .12rem; }
.admin-area .user-permission-actions strong { color: #334d68; font-size: .67rem; font-weight: 680; }
.admin-area .user-permission-actions span { color: #77889b; font-size: .58rem; line-height: 1.35; }
.admin-area .user-permission-actions .btn { display: inline-flex; min-width: 168px; align-items: center; justify-content: center; gap: .45rem; white-space: nowrap; }
.admin-area .user-permission-actions .btn span,
.admin-area .user-permission-actions .btn i { color: white; }
.admin-area .user-permission-actions .btn span { font-size: .68rem; }
.admin-area .user-permission-actions .btn i { font-size: .8rem; font-style: normal; transition: transform .16s ease; }
.admin-area .user-permission-actions .btn:hover i { transform: translateX(2px); }

@media (max-width: 700px) {
    .admin-area .user-permission-actions { position: static; align-items: stretch; flex-direction: column; }
    .admin-area .user-permission-actions .btn { width: 100%; }
}

/* Directorio de instructores */
.admin-area .instructor-stat-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; border: 1px solid #dbe4ec; border-radius: 12px; background: white; box-shadow: 0 7px 20px rgba(23, 49, 79, .035); }
.admin-area .instructor-stat-strip article { display: grid; gap: .1rem; min-height: 76px; padding: .7rem .9rem; border-right: 1px solid #e7edf2; }
.admin-area .instructor-stat-strip article:last-child { border-right: 0; }
.admin-area .instructor-stat-strip span { color: #77899c; font-size: .56rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.admin-area .instructor-stat-strip strong { color: #28445f; font-size: 1.35rem; font-weight: 570; letter-spacing: -.04em; }
.admin-area .instructor-stat-strip small { color: #8b99a8; font-size: .57rem; }
.admin-area .instructor-create-panel { overflow: hidden; border-radius: 12px; }
.admin-area .instructor-create-panel > summary { display: flex; align-items: center; gap: .65rem; padding: .75rem .9rem; cursor: pointer; list-style: none; }
.admin-area .instructor-create-panel > summary::-webkit-details-marker { display: none; }
.admin-area .instructor-create-panel > summary > span:nth-child(2) { display: grid; gap: .1rem; }
.admin-area .instructor-create-panel summary strong { color: #324c66; font-size: .72rem; font-weight: 670; }
.admin-area .instructor-create-panel summary small { color: #8291a2; font-size: .58rem; }
.admin-area .instructor-create-panel summary i { margin-left: auto; color: #8291a2; font-size: .78rem; font-style: normal; transition: transform .16s ease; }
.admin-area .instructor-create-panel[open] summary { border-bottom: 1px solid #e6ecf1; background: #fbfdff; }
.admin-area .instructor-create-panel[open] summary i { transform: rotate(180deg); }
.admin-area .instructor-create-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem .8rem; padding: .8rem .9rem; }
.admin-area .instructor-create-form label,
.admin-area .instructor-edit-form label { display: grid; min-width: 0; gap: .3rem; }
.admin-area .instructor-create-form .form-textarea,
.admin-area .instructor-edit-form .form-textarea { min-height: 62px; }
.admin-area .instructor-create-form > footer,
.admin-area .instructor-edit-form > footer { display: flex; grid-column: 1 / -1; align-items: center; justify-content: space-between; gap: .8rem; padding-top: .6rem; border-top: 1px solid #e8edf2; }
.admin-area .instructor-filter-bar { grid-template-columns: minmax(280px, 1fr) minmax(160px, .35fr) auto; }
.admin-area .instructor-list-panel { overflow: hidden; }
.admin-area .instructor-list-panel > .panel-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.admin-area .instructor-list-panel > .panel-head > div { display: grid; gap: .12rem; }
.admin-area .instructor-list-panel > .panel-head strong { color: #688095; font-size: .62rem; font-weight: 650; white-space: nowrap; }
.admin-area .instructor-record { border-top: 1px solid #e7edf2; }
.admin-area .instructor-record > summary { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto auto 16px; align-items: center; gap: .7rem; min-height: 62px; padding: .65rem .9rem; cursor: pointer; list-style: none; }
.admin-area .instructor-record > summary::-webkit-details-marker { display: none; }
.admin-area .instructor-record > summary:hover,
.admin-area .instructor-record[open] > summary { background: #f7fafd; }
.admin-area .instructor-record-avatar { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 10px; background: #eaf1f8; color: var(--brand); font-size: .7rem; font-weight: 720; }
.admin-area .instructor-record > summary > span:nth-child(2) { display: grid; min-width: 0; gap: .12rem; }
.admin-area .instructor-record > summary strong { overflow: hidden; color: #344e69; font-size: .7rem; font-weight: 660; text-overflow: ellipsis; white-space: nowrap; }
.admin-area .instructor-record > summary small { overflow: hidden; color: #8492a2; font-size: .57rem; text-overflow: ellipsis; white-space: nowrap; }
.admin-area .instructor-record > summary > b { color: #63798f; font-size: .6rem; font-weight: 620; white-space: nowrap; }
.admin-area .instructor-record > summary > i { color: #8292a2; font-size: .72rem; font-style: normal; transition: transform .16s ease; }
.admin-area .instructor-record[open] > summary > i { transform: rotate(180deg); }
.admin-area .instructor-record-body { padding: .8rem .9rem .9rem; border-top: 1px solid #e8edf2; background: #fbfcfe; }
.admin-area .instructor-edit-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem .8rem; }
.admin-area .instructor-edit-form .form-textarea { min-height: 74px; }
.admin-area .instructor-delete-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .75rem; padding-top: .75rem; border-top: 1px solid #e3e9ef; }
.admin-area .instructor-delete-row > div { display: grid; gap: .1rem; }
.admin-area .instructor-delete-row strong { color: #8a4742; font-size: .65rem; font-weight: 680; }
.admin-area .instructor-delete-row span { color: #8491a0; font-size: .57rem; }

@media (max-width: 1050px) {
    .admin-area .instructor-create-form,
    .admin-area .instructor-edit-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
    .admin-area .instructor-stat-strip { grid-template-columns: 1fr; }
    .admin-area .instructor-stat-strip article { min-height: 0; border-right: 0; border-bottom: 1px solid #e7edf2; }
    .admin-area .instructor-stat-strip article:last-child { border-bottom: 0; }
    .admin-area .instructor-create-form,
    .admin-area .instructor-edit-form,
    .admin-area .instructor-filter-bar { grid-template-columns: 1fr !important; }
    .admin-area .instructor-create-form > footer,
    .admin-area .instructor-edit-form > footer,
    .admin-area .instructor-delete-row { align-items: stretch; flex-direction: column; }
    .admin-area .instructor-create-form > footer .btn,
    .admin-area .instructor-edit-form > footer .btn,
    .admin-area .instructor-delete-row .btn { width: 100%; }
    .admin-area .instructor-record > summary { grid-template-columns: 34px minmax(0, 1fr) auto; }
    .admin-area .instructor-record > summary > b { grid-column: 2; }
    .admin-area .instructor-record > summary > em { grid-column: 2; justify-self: start; }
    .admin-area .instructor-record > summary > i { display: none; }
}

/* Identidad de usuario por fotografía o vector de rol */
.user-avatar { --avatar-bg: #e8f0f8; --avatar-shirt: #3b6d9c; --avatar-hair: #263c51; display: inline-grid; width: 31px; height: 31px; min-width: 31px; min-height: 31px; flex: 0 0 31px; overflow: hidden; place-items: center; aspect-ratio: 1 / 1; border: 1px solid rgba(49,78,107,.13); border-radius: 50%; background: var(--avatar-bg); box-shadow: 0 2px 7px rgba(28,52,78,.12), inset 0 0 0 1px rgba(255,255,255,.72); }
.user-avatar img { display: block; width: 100%; height: 100%; border-radius: inherit; object-fit: cover; object-position: center; }
.user-avatar svg { display: block; width: 100%; height: 100%; overflow: hidden; border-radius: inherit; }
.user-avatar .avatar-vector-backdrop { fill: var(--avatar-bg); }
.user-avatar .avatar-vector-shadow { fill: rgba(33,57,81,.12); }
.user-avatar .avatar-vector-neck,.user-avatar .avatar-vector-head { fill: #efbb92; stroke: #d89c72; stroke-width: .45; }
.user-avatar .avatar-vector-hair { fill: var(--avatar-hair); }
.user-avatar .avatar-vector-ear { fill: none; stroke: #d89c72; stroke-width: .85; stroke-linecap: round; }
.user-avatar .avatar-vector-face { fill: none; stroke: #734f3c; stroke-width: 1.1; stroke-linecap: round; }
.user-avatar .avatar-vector-shirt { fill: var(--avatar-shirt); }
.user-avatar .avatar-vector-collar { fill: none; stroke: rgba(255,255,255,.78); stroke-width: 1.15; stroke-linecap: round; stroke-linejoin: round; }
.user-avatar-superadministrador { --avatar-bg: #dbe9f7; --avatar-shirt: #173f68; --avatar-hair: #183149; }
.user-avatar-administrador { --avatar-bg: #e8f1fb; --avatar-shirt: #2d6799; --avatar-hair: #533b31; }
.user-avatar-instructor { --avatar-bg: #e4f3ed; --avatar-shirt: #267158; --avatar-hair: #49372f; }
.user-avatar-estudiante { --avatar-bg: #f0ecfb; --avatar-shirt: #66518f; --avatar-hair: #3f334c; }
.user-avatar.large-avatar { width: 68px; height: 68px; min-width: 68px; min-height: 68px; flex-basis: 68px; }
.user-avatar.user-admin-avatar { width: 66px; height: 66px; min-width: 66px; min-height: 66px; flex-basis: 66px; }
.user-avatar.review-admin-avatar { width: 38px; height: 38px; min-width: 38px; min-height: 38px; flex-basis: 38px; }
.user-avatar.instructor-record-avatar { width: 34px; height: 34px; min-width: 34px; min-height: 34px; flex-basis: 34px; }
.admin-profile-avatar { width: 58px; height: 58px; min-width: 58px; min-height: 58px; flex-basis: 58px; }
.sidebar-profile .user-avatar { width: 38px; height: 38px; min-width: 38px; min-height: 38px; flex-basis: 38px; }
.admin-appbar-profile .user-avatar { width: 32px; height: 32px; min-width: 32px; min-height: 32px; flex-basis: 32px; }
.admin-panel-shortcut { border: 1px solid #d4dee8 !important; background: #f8fafc !important; color: #314c68 !important; }
.admin-panel-shortcut:hover { border-color: color-mix(in srgb,var(--brand) 35%,#d4dee8) !important; background: color-mix(in srgb,var(--brand) 6%,white) !important; color: var(--brand) !important; }
.admin-appbar-profile { margin-left: .15rem; padding-left: .7rem !important; border-left: 1px solid #e0e6ec !important; border-radius: 0 8px 8px 0 !important; }

/* Registro administrativo de certificados */
.certificate-admin-page { display: grid; align-content: start; gap: 1rem; padding-bottom: 3rem; }
.certificate-stat-strip { margin: 0; }
.certificate-filter { margin: 0; }
.certificate-registry-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: .25rem .1rem 0; }
.certificate-registry-head h2 { margin: .18rem 0 0; color: #263f59; font-size: 1.05rem; font-weight: 620; }
.certificate-registry-head p { margin: 0; color: #7e8c9c; font-size: .64rem; }
.certificate-registry { display: grid; gap: .7rem; }
.certificate-admin-card { display: grid; grid-template-columns: 88px minmax(190px,.85fr) minmax(190px,.9fr) minmax(190px,1fr) minmax(130px,.55fr) minmax(230px,.85fr); align-items: center; gap: .9rem; padding: .85rem; border: 1px solid #d9e2eb; border-left: 4px solid #2b815f; border-radius: 13px; background: #fff; box-shadow: 0 8px 24px rgba(23,48,80,.04); }
.certificate-admin-card.is-revoked { border-left-color: #ad4149; background: linear-gradient(90deg,#fffafa,#fff 22%); }
.certificate-admin-qr { display: grid; justify-items: center; gap: .28rem; padding: .4rem; border: 1px solid #dce4ec; border-radius: 9px; background: #fff; }
.certificate-admin-qr img { display: block; width: 66px; height: 66px; }
.certificate-admin-qr span { color: #728296; font-size: .48rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.certificate-admin-document,.certificate-admin-course,.certificate-admin-state { display: grid; min-width: 0; gap: .2rem; }
.certificate-admin-document > span,.certificate-admin-course > span,.certificate-admin-owner div > span { color: #8492a2; font-size: .51rem; font-weight: 720; letter-spacing: .07em; text-transform: uppercase; }
.certificate-admin-document strong { overflow: hidden; color: #24415e; font: 700 .67rem/1.3 ui-monospace,SFMono-Regular,Menlo,monospace; text-overflow: ellipsis; white-space: nowrap; }
.certificate-admin-document small { color: var(--brand); font: 600 .52rem/1.3 ui-monospace,SFMono-Regular,Menlo,monospace; }
.certificate-admin-document code { overflow: hidden; color: #8995a3; font-size: .48rem; text-overflow: ellipsis; white-space: nowrap; }
.certificate-admin-owner { display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: .6rem; min-width: 0; }
.certificate-admin-owner .user-avatar { width: 34px; height: 34px; }
.certificate-admin-owner div { display: grid; min-width: 0; gap: .12rem; }
.certificate-admin-owner a,.certificate-admin-course strong { overflow: hidden; color: #334c65; font-size: .66rem; font-weight: 650; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.certificate-admin-owner a:hover { color: var(--brand); }
.certificate-admin-owner small,.certificate-admin-course small,.certificate-admin-state small { overflow: hidden; color: #8492a1; font-size: .54rem; line-height: 1.4; text-overflow: ellipsis; }
.certificate-admin-state .status { justify-self: start; }
.certificate-admin-actions { position: relative; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .38rem; }
.certificate-admin-actions form { margin: 0; }
.certificate-admin-more { position: relative; }
.certificate-admin-more > summary { padding: .45rem .58rem; border: 0; color: #a03d45; font-size: .57rem; font-weight: 650; cursor: pointer; list-style: none; }
.certificate-admin-more > summary::-webkit-details-marker { display: none; }
.certificate-admin-more[open] > form { position: absolute; z-index: 15; top: calc(100% + .45rem); right: 0; display: grid; width: 280px; gap: .65rem; padding: .85rem; border: 1px solid #e1c8ca; border-radius: 10px; background: #fff; box-shadow: 0 16px 42px rgba(70,28,32,.15); }
.certificate-admin-more label { display: grid; gap: .3rem; }
.certificate-admin-more label > span { color: #78464a; font-size: .58rem; font-weight: 680; }
.certificate-admin-more .form-textarea { min-height: 74px; }

@media (max-width: 1250px) {
    .certificate-admin-card { grid-template-columns: 78px minmax(180px,.8fr) minmax(180px,.9fr) minmax(180px,1fr); }
    .certificate-admin-state { grid-column: 2; }
    .certificate-admin-actions { grid-column: 3 / -1; }
}

@media (max-width: 800px) {
    .certificate-admin-card { grid-template-columns: 72px minmax(0,1fr); align-items: start; }
    .certificate-admin-document,.certificate-admin-owner,.certificate-admin-course,.certificate-admin-state,.certificate-admin-actions { grid-column: 2; }
    .certificate-admin-qr { grid-row: 1 / span 2; }
    .certificate-admin-actions { justify-content: flex-start; padding-top: .55rem; border-top: 1px solid #e7ecf1; }
    .certificate-admin-more[open] > form { right: auto; left: 0; }
}

@media (max-width: 520px) {
    .certificate-admin-card { grid-template-columns: 1fr; }
    .certificate-admin-qr { grid-row: auto; justify-self: start; }
    .certificate-admin-document,.certificate-admin-owner,.certificate-admin-course,.certificate-admin-state,.certificate-admin-actions { grid-column: 1; }
    .certificate-admin-actions .btn { width: 100%; }
    .certificate-admin-more { width: 100%; }
    .certificate-admin-more > summary { text-align: center; }
    .certificate-admin-more[open] > form { position: static; width: 100%; margin-top: .45rem; }
}

.content-record-edit { padding: .38rem .55rem; border: 1px solid #d8e2eb; border-radius: 7px; color: var(--brand); font-size: .56rem; font-weight: 680; }
.content-delete-form { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 1.15rem 1rem; padding: .7rem .8rem; border: 1px solid #efd9da; border-radius: 9px; background: #fffafa; }
.content-delete-form > span { display: grid; gap: .1rem; }
.content-delete-form strong { color: #884248; font-size: .63rem; }
.content-delete-form small { color: #9a7679; font-size: .54rem; }

@media (max-width: 620px) {
    .content-record-edit { display: none; }
    .content-delete-form { align-items: stretch; flex-direction: column; }
    .content-delete-form .btn { width: 100%; }
}

/* Correo: configuración operativa y plantillas editables. */
.email-settings-layout { display: grid; grid-template-columns: minmax(0,1fr) 280px; align-items: start; gap: 1rem; }
.email-settings-main { display: grid; gap: 1rem; }
.email-test-card { position: sticky; top: 96px; display: grid; gap: .65rem; padding: 1rem; border: 1px solid #d9e3ec; border-top: 3px solid var(--brand); border-radius: 11px; background: #f8fafc; }
.email-test-card > span { color: var(--brand); font-size: .54rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.email-test-card > strong { color: #2c455f; font-size: .8rem; }
.email-test-card > p { margin: 0; color: #758497; font-size: .62rem; line-height: 1.55; }
.email-test-card label { display: grid; gap: .3rem; }
.email-test-card > small { color: #8491a0; font-size: .54rem; line-height: 1.4; }
.email-template-section { padding: 0 1.1rem 1.1rem; }
.email-template-section > header { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: 1rem 0 .8rem; border-top: 1px solid #e5ebf0; }
.email-template-section h3 { margin: .2rem 0 0; color: #2b445e; font-size: .92rem; font-weight: 640; }
.email-template-section header p { margin: .25rem 0 0; color: #7a8999; font-size: .6rem; }
.email-template-section code { padding: .1rem .25rem; border-radius: 4px; background: #eef3f7; color: #315b82; font-size: .56rem; }
.email-template-base { margin-bottom: .75rem; padding: .8rem; border: 1px solid #dfe6ed; border-radius: 10px; background: #fbfcfe; }
.email-template-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; }
.email-template-card { overflow: hidden; border: 1px solid #dce4ec; border-radius: 10px; background: #fff; }
.email-template-card > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem .85rem; cursor: pointer; list-style: none; }
.email-template-card > summary::-webkit-details-marker { display: none; }
.email-template-card > summary > span { display: grid; gap: .12rem; }
.email-template-card summary strong { color: #344d66; font-size: .68rem; }
.email-template-card summary small { color: #8491a1; font-size: .55rem; }
.email-template-card summary i { color: #7f8d9c; font-size: .7rem; font-style: normal; transition: transform .16s ease; }
.email-template-card[open] summary { border-bottom: 1px solid #e5ebf0; background: #f8fafc; }
.email-template-card[open] summary i { transform: rotate(180deg); }
.email-template-card > div { display: grid; gap: .65rem; padding: .8rem .85rem; }
.email-template-card label { display: grid; gap: .3rem; }
.email-template-card .form-textarea { min-height: 105px; }

@media (max-width: 980px) {
    .email-settings-layout { grid-template-columns: 1fr; }
    .email-test-card { position: static; }
}

@media (max-width: 700px) {
    .email-template-grid { grid-template-columns: 1fr; }
}

/* Instalador AcademyCore: una experiencia de implementación sobria y guiada. */
.installer-body { display: grid; min-height: 100vh; place-items: center; padding: clamp(1rem, 2.5vw, 2.4rem); background: radial-gradient(circle at 8% 8%, #e6f3ff 0, transparent 29%), radial-gradient(circle at 94% 96%, #dce9f8 0, transparent 24%), #f2f5f8; }
.installer-shell { width: min(1260px, 100%); min-height: 760px; grid-template-columns: 326px minmax(0, 1fr); border: 1px solid #d5e0ea; border-radius: 20px; box-shadow: 0 28px 80px rgba(17, 45, 76, .16); }
.installer-rail { position: relative; overflow: hidden; padding: 1.55rem 1.55rem 1.3rem; background: linear-gradient(158deg, #082744 0%, #0a315c 54%, #12569f 140%); }
.installer-rail::after { position: absolute; right: -120px; bottom: -150px; width: 310px; height: 310px; border: 56px solid rgba(115, 180, 241, .1); border-radius: 50%; content: ""; }
.installer-rail > * { position: relative; z-index: 1; }
.installer-rail-head { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.installer-brand img { max-width: 166px; max-height: 36px; }
.installer-security-pill { display: inline-flex; align-items: center; gap: .3rem; padding: .35rem .5rem; border: 1px solid rgba(215, 236, 255, .18); border-radius: 999px; background: rgba(255, 255, 255, .08); color: #cbe3fc; font-size: .52rem; font-weight: 670; white-space: nowrap; }
.installer-security-pill i,.installer-topbar-status i { width: 6px; height: 6px; border-radius: 50%; background: #7ce0ae; box-shadow: 0 0 0 3px rgba(124, 224, 174, .12); }
.installer-rail-copy { margin: 2.4rem 0 1.25rem; }
.installer-rail-copy h2 { max-width: 260px; font-size: 2.18rem; line-height: 1.02; }
.installer-rail-copy p { max-width: 255px; color: #b8d0e9; font-size: .72rem; line-height: 1.6; }
.installer-rail-progress { display: grid; gap: .45rem; margin: 0 0 1.1rem; padding: .7rem .75rem; border: 1px solid rgba(211, 233, 255, .13); border-radius: 10px; background: rgba(1, 20, 44, .16); }
.installer-rail-progress > div { display: flex; align-items: center; justify-content: space-between; gap: .4rem; }
.installer-rail-progress span { color: #9ec8f1; font-size: .48rem; font-weight: 720; letter-spacing: .075em; }
.installer-rail-progress strong { color: #eff8ff; font-size: .6rem; font-weight: 680; }
.installer-rail-progress > i { display: block; height: 4px; overflow: hidden; border-radius: 999px; background: rgba(223, 240, 255, .18); }
.installer-rail-progress > i b { display: block; height: 100%; border-radius: inherit; background: #8bc7ff; }
.installer-steps { gap: .25rem; }
.installer-steps li { position: relative; min-height: 27px; gap: .6rem; padding: .2rem .35rem; border-radius: 7px; color: #8eafd0; font-size: .64rem; }
.installer-steps li > i { width: 20px; height: 20px; flex: 0 0 20px; font-size: .5rem; }
.installer-steps li.is-current { background: rgba(255, 255, 255, .095); color: white; }
.installer-steps .is-current i { box-shadow: none; }
.installer-steps small { margin-left: auto; color: #cce8ff; font-size: .49rem; font-weight: 650; }
.installer-help { padding-top: .85rem; font-size: .62rem; }
.installer-help b { width: 24px; height: 24px; font-size: .72rem; }
.installer-workspace { background: #fff; }
.installer-topbar { grid-template-columns: minmax(150px, 1fr) minmax(180px, 1.2fr) minmax(150px, .8fr); gap: 1.2rem; min-height: 70px; padding: 0 2.8rem; }
.installer-topbar-step { display: grid; gap: .08rem; }
.installer-topbar-step span { color: #8492a1; font-size: .58rem; font-weight: 630; }
.installer-topbar-step strong { color: #314963; font-size: .72rem; font-weight: 690; }
.installer-topbar-status { display: inline-flex; align-items: center; justify-self: end; gap: .38rem; color: #718297; font-size: .58rem; font-weight: 620; white-space: nowrap; }
.installer-progress { height: 5px; }
.installer-progress span { background: linear-gradient(90deg, var(--brand), #5fa7eb); }
.installer-content { width: min(760px, 100%); padding: clamp(2rem, 4vw, 3.6rem) clamp(1.5rem, 5vw, 4.5rem) 2rem; }
.installer-content h1 { margin: .65rem 0 .75rem; font-size: clamp(2rem, 3.8vw, 3.1rem); }
.installer-intro,.installer-welcome > p { margin-bottom: 1.45rem; color: #627489; font-size: .84rem; line-height: 1.7; }
.installer-kicker { color: #377fbe; font-size: .59rem; }
.installer-alert { border: 1px solid #f0c7c0; border-left: 3px solid #cd6250; border-radius: 8px; }
.installer-button { min-height: 44px; gap: 1rem; margin-top: 1.2rem; border-radius: 8px; box-shadow: 0 8px 18px rgba(11, 74, 162, .2); font-size: .73rem; }
.installer-welcome { padding-top: .5rem; }
.installer-welcome h1 { font-size: clamp(2.6rem, 5vw, 4.1rem); }
.installer-welcome-grid { gap: .75rem; margin: 1.65rem 0 0; border: 0; background: transparent; }
.installer-welcome-grid article { min-height: 132px; padding: .9rem; border: 1px solid #dfe7ee; border-radius: 10px; background: #fff; box-shadow: 0 5px 16px rgba(25, 50, 77, .035); }
.installer-welcome-grid b { color: #4f90c9; }
.installer-welcome-grid strong { margin: .65rem 0 .28rem; color: #314963; font-size: .69rem; }
.installer-welcome-grid span { font-size: .6rem; line-height: 1.45; }
.installer-welcome-note { display: flex; align-items: center; gap: .55rem; margin-top: 1rem; color: #718398; }
.installer-welcome-note > i { display: grid; width: 24px; height: 24px; flex: 0 0 24px; place-items: center; border-radius: 50%; background: #e8f6ee; color: #25815c; font-size: .65rem; font-style: normal; font-weight: 800; }
.installer-welcome-note span { display: grid; gap: .08rem; }
.installer-welcome-note strong { color: #476077; font-size: .63rem; }
.installer-welcome-note small { font-size: .58rem; }
.installer-checklist { margin-top: 1.25rem; overflow: hidden; border-radius: 10px; }
.installer-checklist > div { min-height: 46px; padding: .55rem .8rem; font-size: .7rem; }
.installer-checklist small { font-size: .6rem; }
.installer-form { gap: .75rem; margin-top: 1.25rem; }
.installer-field > span { margin-bottom: .32rem; color: #43586f; font-size: .65rem; }
.installer-field input,.installer-field select { min-height: 42px; border-radius: 8px; font-size: .74rem; }
.installer-license-card,.installer-summary { margin-top: 1.25rem; border-radius: 10px; }
.installer-license-card { padding: .8rem; }
.installer-choice-list { gap: .55rem; margin-top: 1.25rem; }
.installer-choice-list label { padding: .8rem; border-radius: 10px; }
.installer-success { padding-top: .5rem; }
.installer-success-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin-top: 1.4rem; }
.installer-success-summary article { display: grid; gap: .18rem; padding: .8rem; border: 1px solid #dce6ee; border-radius: 10px; background: #fbfdff; }
.installer-success-summary span { color: #7e91a6; font-size: .52rem; font-weight: 730; letter-spacing: .07em; }
.installer-success-summary strong { overflow: hidden; color: #38536e; font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }
.installer-success-summary small { color: #8291a2; font-size: .56rem; line-height: 1.35; }
.installer-footer { padding: .95rem 2.8rem; font-size: .6rem; }

@media (max-width: 980px) {
    .installer-shell { grid-template-columns: 278px minmax(0, 1fr); }
    .installer-rail { padding-inline: 1.1rem; }
    .installer-topbar { padding-inline: 1.6rem; }
}

@media (max-width: 760px) {
    .installer-body { display: block; padding: 0; background: white; }
    .installer-shell { min-height: 100vh; border: 0; border-radius: 0; box-shadow: none; }
    .installer-rail { display: none; }
    .installer-topbar { grid-template-columns: 1fr auto; gap: .7rem; min-height: 70px; padding: .65rem 1.1rem; }
    .installer-mobile-brand { display: inline-flex; align-items: center; }
    .installer-topbar-step { display: none; }
    .installer-topbar-status { font-size: .54rem; }
    .installer-progress { grid-column: 1 / -1; width: 100%; }
    .installer-content { padding: 1.8rem 1.1rem; }
    .installer-welcome-grid,.installer-form,.installer-success-summary { grid-template-columns: 1fr; }
    .installer-welcome-grid article { min-height: auto; }
    .installer-footer { padding: 1rem 1.1rem; }
}
