:root{--primary:#0f766e;--primary-dark:#115e59;--soft:#f0fdfa;--ink:#17313a;--muted:#64748b}
body{background:#f8fafc;color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
.app-navbar{background:linear-gradient(135deg,var(--primary-dark),var(--primary))}
.brand-mark{width:32px;height:32px;border-radius:10px;display:inline-grid;place-items:center;background:#fff;color:var(--primary);font-weight:800}
.card{border:0;border-radius:18px;box-shadow:0 8px 24px rgba(15,23,42,.06)}
.card-header{background:transparent;border-bottom:1px solid #e2e8f0;font-weight:700}
.stat-card{overflow:hidden;position:relative}.stat-card .icon{font-size:2rem;opacity:.18;position:absolute;right:18px;top:12px}
.btn-primary{background:var(--primary);border-color:var(--primary)}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}
.text-primary{color:var(--primary)!important}.bg-primary{background:var(--primary)!important}
.form-control,.form-select{border-radius:12px;padding:.7rem .85rem}.btn{border-radius:12px}.badge{border-radius:999px}
.hero{min-height:100vh;background:radial-gradient(circle at top right,#ccfbf1,transparent 42%),linear-gradient(145deg,#f8fafc,#ecfeff);display:flex;align-items:center}
.hero-card{background:rgba(255,255,255,.88);backdrop-filter:blur(10px)}
.session-card{transition:.2s ease}.session-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(15,23,42,.1)}
.timeline-dot{width:14px;height:14px;border-radius:50%;background:var(--primary);display:inline-block}
.content-prose{line-height:1.75}.content-prose img{max-width:100%;height:auto}
.table>:not(caption)>*>*{vertical-align:middle}
@media(max-width:767px){.container-fluid.px-lg-4{padding-left:14px!important;padding-right:14px!important}.card{border-radius:15px}.navbar-brand span:last-child{font-size:1rem}}
@media print{nav,footer,.no-print{display:none!important}body{background:#fff}.card{box-shadow:none;border:1px solid #ddd}}

.public-navbar{background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid #e2e8f0}
.public-brand{background:var(--primary);color:#fff}
.public-page{min-height:calc(100vh - 72px);background:radial-gradient(circle at top right,#ccfbf1,transparent 40%),linear-gradient(145deg,#f8fafc,#ecfeff)}
.public-card{box-shadow:0 24px 70px rgba(15,23,42,.12)}
.catalog-hero{background:radial-gradient(circle at top right,#ccfbf1,transparent 44%),linear-gradient(145deg,#f8fafc,#ecfeff)}
.course-card{overflow:hidden;transition:.2s ease}.course-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(15,23,42,.11)}
.course-cover{height:128px;background:linear-gradient(135deg,var(--primary-dark),var(--primary));position:relative;display:flex;align-items:center;justify-content:center;color:#fff;overflow:hidden}
.course-cover.compact{height:96px}.course-cover>i{font-size:4.5rem;opacity:.22;transform:rotate(-8deg)}
.course-code{position:absolute;left:18px;top:16px;background:rgba(255,255,255,.94);color:var(--primary);font-weight:800;padding:.35rem .65rem;border-radius:999px;font-size:.78rem;z-index:1}
.course-description{min-height:48px}.course-detail-icon{width:180px;height:180px;margin:auto;border-radius:42px;background:linear-gradient(135deg,var(--primary-dark),var(--primary));color:#fff;display:grid;place-items:center;box-shadow:0 24px 50px rgba(15,118,110,.22)}.course-detail-icon i{font-size:6rem;opacity:.85}
.selected-course{border:1px solid #99f6e4;background:#f0fdfa;border-radius:14px;padding:1rem}
.cta-panel{border-radius:24px;background:linear-gradient(135deg,var(--primary-dark),var(--primary));color:#fff;box-shadow:0 20px 50px rgba(15,118,110,.22)}
@media(max-width:767px){.hero{min-height:auto;padding-top:4rem;padding-bottom:3rem}.course-detail-icon{width:130px;height:130px;border-radius:32px}.course-detail-icon i{font-size:4.5rem}.public-navbar .btn{width:100%;margin-top:.4rem}}
