:root{
  --bg:#0b0b0b;
  --bg2:#141414;
  --panel:rgba(255,255,255,.06);
  --panel2:rgba(255,255,255,.10);
  --line:rgba(255,255,255,.12);
  --text:#f5f5f5;
  --muted:#b3b3b3;
  --muted2:#8a8a8a;
  --red:#e50914;
  --red2:#ff2a2a;
  --ok:#36d399;
  --warn:#fbbf24;
  --bad:#fb7185;
  --shadow:0 18px 60px rgba(0,0,0,.55);
  --shadow2:0 18px 60px rgba(0,0,0,.30);
  --radius:18px;
  --radius2:26px;
  --max:1200px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  background:
    radial-gradient(900px 500px at 18% 8%, rgba(229,9,20,.22), transparent 55%),
    radial-gradient(800px 480px at 85% 20%, rgba(229,9,20,.14), transparent 55%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg2) 70%, var(--bg) 100%);
  color:var(--text);
  overflow-x:hidden;
}

a{color:inherit; text-decoration:none}

.container{max-width:var(--max); margin:0 auto; padding:0 18px}

/* Utilities */
.hidden{display:none !important}
.muted{color:var(--muted)}
.small{font-size:12px}

/* Top utility bar */
.utilityBar{
  background: rgba(0,0,0,.55);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(12px);
}
.utilityBar .row{
  display:flex; align-items:center; justify-content:space-between;
  gap:10px; padding:8px 0;
  font-size:12px; color: var(--muted);
}
.utilityLeft,.utilityRight{display:flex; align-items:center; gap:14px; flex-wrap:wrap}
.chipLink{
  display:inline-flex; align-items:center; gap:8px;
  padding:6px 10px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  border-radius:999px;
  transition:.2s ease;
  color: var(--muted);
}
.chipLink:hover{
  color: var(--text);
  background: rgba(255,255,255,.07);
  border-color: rgba(255,255,255,.16);
}
.dot{
  width:8px; height:8px; border-radius:50%;
  background: var(--red);
  box-shadow: 0 0 16px rgba(229,9,20,.65);
}
.accBtns{display:flex; gap:8px; align-items:center}
.accBtn{
  padding:6px 10px;
  border-radius: 12px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  color: var(--muted);
  cursor:pointer;
  transition:.2s ease;
  font-size:12px;
}
.accBtn:hover{color:var(--text); background:rgba(255,255,255,.07)}

/* Navbar */
header{position:sticky; top:0; z-index:50}
.navbar{
  background: rgba(20,20,20,.72);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
}
.navRow{
  display:flex; align-items:center; justify-content:space-between;
  gap:14px; padding:14px 0;
}
.brand{display:flex; align-items:center; gap:10px; min-width: 200px}
.logo{
  width:38px; height:38px; border-radius: 14px;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.20), transparent 55%),
              linear-gradient(135deg, var(--red), var(--red2));
  border:1px solid rgba(255,255,255,.16);
  box-shadow: 0 14px 40px rgba(229,9,20,.24);
  position:relative;
}
.logo:after{
  content:"";
  position:absolute; inset:10px 11px;
  border-radius: 12px;
  border:1px solid rgba(0,0,0,.55);
  background: rgba(0,0,0,.18);
  transform: rotate(8deg);
}
.brandText strong{
  display:block;
  font-weight:900;
  letter-spacing:.8px;
  text-transform:uppercase;
  font-size:14px;
  line-height:1;
}
.brandText span{display:block; margin-top:3px; font-size:12px; color:var(--muted)}

.navLinks{display:flex; align-items:center; gap:16px}
.navLinks a{
  font-size:13px; color:var(--muted);
  padding:10px 10px; border-radius: 12px;
  transition:.2s ease;
}
.navLinks a:hover{
  color:var(--text);
  background: rgba(255,255,255,.06);
  box-shadow: 0 0 0 1px rgba(255,255,255,.08) inset;
}
.navActions{display:flex; align-items:center; gap:10px}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:10px 14px;
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: var(--text);
  cursor:pointer;
  transition:.2s ease;
  font-size:13px;
  box-shadow: 0 0 0 1px rgba(0,0,0,.15) inset;
  white-space:nowrap;
}
.btn:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.09);
  border-color: rgba(255,255,255,.20);
}
.btnPrimary{
  background: linear-gradient(135deg, var(--red), var(--red2));
  border-color: rgba(255,255,255,.16);
  box-shadow: 0 16px 45px rgba(229,9,20,.25);
}
.btnPrimary:hover{filter: brightness(1.06); box-shadow: 0 20px 55px rgba(229,9,20,.30)}
.btnGhost{background: transparent; border-color: rgba(229,9,20,.55)}
.btnGhost:hover{background: rgba(229,9,20,.12); border-color: rgba(229,9,20,.75)}

.hamburger{
  display:none;
  width:42px; height:42px;
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  cursor:pointer;
}
.hamburger span{
  display:block;
  width:18px; height:2px;
  background: var(--text);
  margin:5px auto;
  border-radius: 2px;
  opacity:.9;
}
.mobilePanel{
  display:none;
  padding:12px 0 16px;
  border-top:1px solid rgba(255,255,255,.10);
}
.mobilePanel a{
  display:block; padding:10px 8px;
  border-radius: 12px;
  color: var(--muted);
}
.mobilePanel a:hover{background: rgba(255,255,255,.06); color:var(--text)}

/* Hero */
.hero{padding: 18px 0 0}
.heroBanner{
  position:relative;
  border-radius: var(--radius2);
  border:1px solid rgba(255,255,255,.14);
  overflow:hidden;
  box-shadow: var(--shadow);
  background:
    radial-gradient(700px 420px at 20% 20%, rgba(229,9,20,.28), transparent 60%),
    radial-gradient(680px 460px at 80% 25%, rgba(255,42,42,.18), transparent 60%),
    linear-gradient(90deg, rgba(0,0,0,.72), rgba(0,0,0,.18)),
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  min-height: 360px;
}
.heroGrid{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 18px;
  padding: 22px;
  position:relative;
  z-index:2;
  align-items:center;
}
.heroKicker{
  display:inline-flex; align-items:center; gap:10px;
  padding:8px 12px;
  border-radius: 999px;
  background: rgba(229,9,20,.12);
  border: 1px solid rgba(229,9,20,.35);
  color: #ffd2d2;
  font-size:12px;
  letter-spacing:.2px;
  margin-bottom:12px;
}
.heroTitle{
  margin:0 0 10px;
  font-size: clamp(28px, 4.2vw, 44px);
  line-height:1.05;
  letter-spacing:-.8px;
}
.heroLead{
  margin:0 0 16px;
  color: var(--muted);
  font-size: 14.5px;
  line-height: 1.55;
  max-width: 60ch;
}
.heroActions{display:flex; gap:10px; flex-wrap:wrap}
.heroBadgeRow{display:flex; gap:10px; flex-wrap:wrap; margin-top:16px}
.miniBadge{
  padding:10px 12px;
  border-radius: 16px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: var(--muted);
  font-size:12px;
}
.miniBadge b{color:var(--text)}
.heroArt{
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.12);
  background:
    radial-gradient(420px 260px at 30% 30%, rgba(229,9,20,.30), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
  min-height: 280px;
  position:relative;
  overflow:hidden;
}
.heroArt .gridlines{
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
  background-size: 44px 44px;
  opacity:.34;
  mask-image: radial-gradient(circle at 40% 30%, rgba(0,0,0,1), transparent 65%);
}
.heroArt .ring{
  position:absolute; right:-40px; top:-50px;
  width:220px; height:220px; border-radius:50%;
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 0 0 14px rgba(255,255,255,.03),
              0 0 0 44px rgba(255,255,255,.02);
  transform: rotate(15deg);
}
.heroArt .chips{
  position:absolute; left:14px; right:14px; bottom:14px;
  display:flex; gap:10px; flex-wrap:wrap;
}
.chip{
  padding:10px 12px;
  border-radius: 999px;
  font-size:12px;
  color:#ffeaea;
  background: rgba(0,0,0,.30);
  border: 1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
  display:inline-flex; align-items:center; gap:8px;
}
.chip i{
  width:8px; height:8px; border-radius:50%;
  background: rgba(255,42,42,.95);
  box-shadow: 0 0 14px rgba(255,42,42,.6);
  display:inline-block;
}

/* Big search */
.bigSearchWrap{margin-top:-20px; padding-bottom: 18px; position:relative; z-index:5}
.bigSearch{
  display:flex; align-items:center; gap:10px;
  background: rgba(255,255,255,.95);
  border-radius: 999px;
  padding: 10px;
  box-shadow: 0 22px 55px rgba(0,0,0,.45);
  border:1px solid rgba(255,255,255,.25);
}
.bigSearch input{
  flex:1; border:none; outline:none;
  font-size:14px; padding: 10px 12px;
  background: transparent; color:#111;
}
.bigSearch .searchBtn{
  padding: 12px 16px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.10);
  background: #111;
  color:#fff;
  cursor:pointer;
  transition:.2s ease;
  font-size:13px;
  display:inline-flex; align-items:center; gap:8px;
  white-space:nowrap;
}
.bigSearch .searchBtn:hover{filter: brightness(1.08)}
.bigSearch .enrollBtn{
  padding: 12px 18px;
  border-radius: 999px;
  border:none;
  background: linear-gradient(135deg, var(--red), var(--red2));
  color:white;
  cursor:pointer;
  transition:.2s ease;
  font-size:13px;
  display:inline-flex; align-items:center; gap:8px;
  white-space:nowrap;
  box-shadow: 0 14px 40px rgba(229,9,20,.25);
}
.bigSearch .enrollBtn:hover{filter: brightness(1.06)}

section{padding: 18px 0}
.sectionHead{display:flex; justify-content:space-between; align-items:flex-end; gap:14px; margin-bottom:12px}
.sectionHead h2{margin:0; font-size:18px; letter-spacing:-.2px}
.sectionHead p{margin:0; color:var(--muted); font-size:13px; max-width:70ch; line-height:1.5}

/* Cards */
.grid3{display:grid; grid-template-columns: repeat(3, 1fr); gap:14px}
.grid4{display:grid; grid-template-columns: repeat(4, 1fr); gap:14px}

.panelCard{
  border-radius: var(--radius);
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  padding:16px;
  box-shadow: 0 16px 55px rgba(0,0,0,.25);
  transition:.2s ease;
  position:relative;
  overflow:hidden;
}
.panelCard:hover{transform:translateY(-2px); background:rgba(255,255,255,.08)}
.panelCard .tag{
  display:inline-flex;
  padding:6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(229,9,20,.35);
  background: rgba(229,9,20,.10);
  color:#ffd2d2;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  margin-bottom:10px;
}
.panelCard h3{margin:0 0 8px; font-size:15px}
.panelCard p{margin:0; color:var(--muted); font-size:13px; line-height:1.5}
.panelCard .arrow{
  position:absolute; right:14px; bottom:14px;
  width:44px; height:44px;
  border-radius: 50%;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.18);
  display:flex; align-items:center; justify-content:center;
  font-weight:900;
  opacity:.9;
}

/* Course cards */
.courseBar{display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; margin: 14px 0 10px}
.courseBar h3{margin:0; font-size:18px; letter-spacing:-.2px}
.courseBar span{color: var(--muted); font-size: 13px}

.gridCourses{display:grid; grid-template-columns: repeat(3, 1fr); gap:14px}
.courseCard{
  border-radius: 22px;
  overflow:hidden;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  box-shadow: 0 16px 55px rgba(0,0,0,.35);
  transition:.2s ease;
  position:relative;
}
.courseCard:hover{
  transform: translateY(-2px);
  border-color: rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
  box-shadow: 0 22px 70px rgba(0,0,0,.45);
}
.courseImg{height:170px; position:relative; overflow:hidden}
.courseImg img{width:100%; height:100%; object-fit:cover; display:block; filter:saturate(1.1)}
.badges{position:absolute; left:12px; top:12px; display:flex; gap:8px; flex-wrap:wrap}
.badge{
  font-size:11px; font-weight:900; letter-spacing:.2px;
  padding:7px 10px; border-radius:999px;
  background: rgba(0,0,0,.38);
  border: 1px solid rgba(255,255,255,.14);
  color:#f3f3f3;
  backdrop-filter: blur(10px);
  text-transform:uppercase;
}
.badge.red{background: rgba(229,9,20,.22); border-color: rgba(229,9,20,.40); color:#ffe1e1}
.courseBody{padding:14px 14px 16px}
.courseTitle{margin:0 0 8px; font-size:16px; letter-spacing:-.2px; line-height:1.15}
.courseMeta{display:flex; gap:10px; flex-wrap:wrap; color:var(--muted); font-size:12px; margin-bottom:12px}
.metaPill{padding:6px 10px; border-radius:999px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06)}
.courseActions{display:flex; gap:10px; flex-wrap:wrap; align-items:center}
.smallBtn{
  padding:10px 12px; border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: var(--text);
  cursor:pointer;
  transition:.2s ease;
  font-size:13px;
  font-weight:900;
  display:inline-flex; align-items:center; gap:8px;
}
.smallBtn:hover{background: rgba(255,255,255,.10)}
.smallBtn.primary{background: linear-gradient(135deg, var(--red), var(--red2)); border-color: rgba(255,255,255,.18)}

/* Filter shell */
.shell{
  border-radius: var(--radius2);
  border:1px solid rgba(255,255,255,.12);
  background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.04));
  box-shadow: var(--shadow);
  overflow:hidden;
}
.shellPad{padding:18px}

.tabs{display:flex; gap:8px; flex-wrap:wrap; padding: 0 18px 12px}
.tab{
  padding: 10px 12px;
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: var(--muted);
  cursor:pointer;
  transition:.2s ease;
  font-size:13px;
  font-weight:900;
}
.tab:hover{background: rgba(255,255,255,.09); color:var(--text)}
.tab.active{
  background: rgba(229,9,20,.16);
  border-color: rgba(229,9,20,.45);
  color:#ffe3e3;
  box-shadow: 0 0 0 4px rgba(229,9,20,.10);
}

.filters{
  padding: 0 18px 18px;
  display:grid;
  grid-template-columns: 1.1fr 1.1fr 1fr 1fr auto;
  gap:10px;
  align-items:end;
}
.field label{display:block; font-size:12px; color:var(--muted); margin-bottom:6px}
.field input,.field select,.field textarea{
  width:100%;
  padding: 12px 12px;
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.25);
  color: var(--text);
  outline:none;
  transition:.2s ease;
  font-size:13px;
}
.field input::placeholder,.field textarea::placeholder{color: rgba(245,245,245,.45)}
.field input:focus,.field select:focus,.field textarea:focus{border-color: rgba(229,9,20,.65); box-shadow: 0 0 0 4px rgba(229,9,20,.12)}

.pillBtn{
  padding: 12px 18px;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: var(--text);
  cursor:pointer;
  transition:.2s ease;
  font-weight:900;
  display:inline-flex; align-items:center; gap:8px;
  white-space:nowrap;
}
.pillBtn:hover{background: rgba(255,255,255,.10)}
.pillBtn.primary{background: linear-gradient(135deg, var(--red), var(--red2)); border-color: rgba(255,255,255,.18); box-shadow: 0 16px 45px rgba(229,9,20,.25)}

.formatRow{
  padding: 0 18px 18px;
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  flex-wrap:wrap;
  border-top: 1px solid rgba(255,255,255,.10);
  margin-top: 10px;
}
.formatRow .left{display:flex; gap:10px; flex-wrap:wrap; align-items:center}
.radioPill{
  display:inline-flex; align-items:center; gap:10px;
  padding:10px 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: var(--muted);
  cursor:pointer;
  transition:.2s ease;
  font-size:13px;
  user-select:none;
}
.radioPill input{accent-color: var(--red)}
.radioPill:hover{background: rgba(255,255,255,.09); color:var(--text)}
.formatRow .right{display:flex; gap:10px; align-items:center; flex-wrap:wrap}
.sortSelect{min-width: 240px}

/* Breadcrumb */
.breadcrumb{display:flex; gap:10px; align-items:center; color: var(--muted); font-size: 13px; padding: 14px 0}
.breadcrumb a{color: var(--muted); text-decoration:underline; text-decoration-color: rgba(255,255,255,.20)}
.breadcrumb a:hover{color: var(--text)}

/* Detail blocks */
.detailHeader{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 14px;
  align-items:stretch;
}
.cover{
  border-radius: var(--radius2);
  overflow:hidden;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  box-shadow: var(--shadow2);
}
.cover img{width:100%; height: 320px; object-fit: cover; display:block}

.infoCard{
  border-radius: var(--radius2);
  border: 1px solid rgba(255,255,255,.12);
  background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.04));
  box-shadow: var(--shadow2);
  padding: 16px;
}
.infoRow{display:flex; justify-content:space-between; gap:10px; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.10); font-size: 13px}
.infoRow:last-child{border-bottom:none}
.infoRow span{color: var(--muted)}

.curriculum{
  margin-top: 14px;
  border-radius: var(--radius2);
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  overflow:hidden;
}
.curriculum .head{padding: 14px 16px; border-bottom:1px solid rgba(255,255,255,.10); display:flex; justify-content:space-between; align-items:center; gap:10px}
.curriculum .head h3{margin:0; font-size:15px}
.curriculum .head span{color: var(--muted); font-size: 12px}
.curriculum .term{padding: 14px 16px; border-bottom:1px solid rgba(255,255,255,.10)}
.curriculum .term:last-child{border-bottom:none}
.curriculum .term h4{margin:0 0 10px; font-size: 13px; text-transform: uppercase; letter-spacing:.2px; color: #ffe3e3}
.curriculum ul{margin:0; padding-left: 18px; color: var(--muted); font-size: 13px; line-height: 1.6}

/* Accordion */
.accordion{display:grid; grid-template-columns: 1fr 1fr; gap:14px}
details{
  border-radius: var(--radius);
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  padding: 12px 14px;
  box-shadow: 0 16px 55px rgba(0,0,0,.18);
}
summary{
  cursor:pointer;
  list-style:none;
  font-size: 13px;
  font-weight:900;
  display:flex; align-items:center; justify-content:space-between; gap:10px;
}
summary::-webkit-details-marker{display:none}
details p{margin:10px 0 0; color: var(--muted); font-size:13px; line-height:1.55}

/* Footer */
footer{margin-top: 16px; border-top:1px solid rgba(255,255,255,.12); background: rgba(0,0,0,.22); padding:24px 0 40px}
.footerGrid{display:grid; grid-template-columns: 1.2fr 1fr 1fr 1fr; gap:14px; align-items:start}
.footerGrid h4{margin:0 0 10px; font-size:13px; letter-spacing:.2px; text-transform:uppercase; color:#eaeaea}
.footerGrid a{display:block; padding:7px 0; color: var(--muted); font-size: 13px}
.footerGrid a:hover{color: var(--text)}
.legal{margin-top: 18px; padding-top: 14px; border-top:1px solid rgba(255,255,255,.10); color: rgba(179,179,179,.92); font-size: 12px; display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap}

/* Toast */
.toast{
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 300;
  background: rgba(20,20,20,.92);
  border: 1px solid rgba(255,255,255,.14);
  padding: 12px 14px;
  border-radius: 16px;
  box-shadow: var(--shadow);
  max-width: 380px;
  display:none;
  backdrop-filter: blur(12px);
}
.toast strong{display:block; font-size:13px}
.toast span{display:block; color:var(--muted); font-size:12px; margin-top:3px}

/* Modal */
.modalOverlay{position:fixed; inset:0; background: rgba(0,0,0,.65); display:none; align-items:center; justify-content:center; z-index: 350; padding: 18px}
.modal{width:min(920px, 100%); border-radius: 22px; border:1px solid rgba(255,255,255,.14); background: rgba(20,20,20,.92); backdrop-filter: blur(14px); box-shadow: var(--shadow); overflow:hidden}
.modalHead{display:flex; justify-content:space-between; align-items:center; padding: 14px 16px; border-bottom: 1px solid rgba(255,255,255,.10)}
.modalHead strong{font-size:14px}
.closeBtn{width:40px; height:40px; border-radius: 14px; border:1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); color: var(--text); cursor:pointer}
.modalBody{padding: 16px; display:grid; grid-template-columns: 1fr 1fr; gap: 14px}
.modalBlock{border-radius: 18px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); padding: 14px}
.modalBlock h5{margin:0 0 8px; font-size:13px; text-transform:uppercase; letter-spacing:.2px}
.modalBlock p{margin:0; color:var(--muted); font-size:13px; line-height:1.55}

/* Progress (flow steps) */
.stepper{
  display:flex; gap:10px; flex-wrap:wrap; align-items:center;
  margin: 14px 0;
}
.step{
  padding: 8px 12px;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}
.step.active{background: rgba(229,9,20,.16); border-color: rgba(229,9,20,.45); color:#ffe3e3}
.step.done{background: rgba(54,211,153,.12); border-color: rgba(54,211,153,.35); color:#d9fff0}

/* File list */
.fileList{margin:0; padding-left:18px; color: var(--muted); font-size: 13px; line-height: 1.6}

/* Responsive */
@media (max-width: 980px){
  .heroGrid{grid-template-columns: 1fr}
  .bigSearch{flex-wrap:wrap; border-radius: 22px}
  .gridCourses{grid-template-columns: 1fr 1fr}
  .grid4{grid-template-columns: 1fr 1fr}
  .accordion{grid-template-columns: 1fr}
  .footerGrid{grid-template-columns: 1fr 1fr}
  .filters{grid-template-columns: 1fr 1fr}
  .filters .go{grid-column: 1 / -1}
  .detailHeader{grid-template-columns: 1fr}
  .modalBody{grid-template-columns: 1fr}
}
@media (max-width: 760px){
  .navLinks{display:none}
  .navActions .btn{display:none}
  .hamburger{display:block}
  .mobilePanel{display:block}
  .gridCourses{grid-template-columns: 1fr}
  .grid4{grid-template-columns: 1fr}
  .footerGrid{grid-template-columns: 1fr}
  .utilityRight{display:none}
}
.accBtn:hover{color:var(--text); background:rgba(255,255,255,.07)}

/* Header */
header{position:sticky; top:0; z-index:50}
.navbar{
  background: rgba(20,20,20,.72);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
}
.navRow{display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 0}
.brand{display:flex; align-items:center; gap:10px; min-width:210px}
.logo{
  width:38px; height:38px; border-radius: 14px;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.20), transparent 55%),
              linear-gradient(135deg, var(--red), var(--red2));
  border:1px solid rgba(255,255,255,.16);
  box-shadow: 0 14px 40px rgba(229,9,20,.24);
  position:relative;
}
.logo:after{
  content:"";
  position:absolute; inset:10px 11px;
  border-radius: 12px;
  border:1px solid rgba(0,0,0,.55);
  background: rgba(0,0,0,.18);
  transform: rotate(8deg);
}
.brandText strong{display:block; font-weight:900; letter-spacing:.8px; text-transform:uppercase; font-size:14px; line-height:1}
.brandText span{display:block; margin-top:3px; font-size:12px; color:var(--muted)}

.navLinks{display:flex; align-items:center; gap:16px}
.navLinks a{
  font-size:13px; color:var(--muted);
  padding:10px 10px; border-radius: 12px;
  transition:.2s ease;
}
.navLinks a:hover{color:var(--text); background: rgba(255,255,255,.06); box-shadow: 0 0 0 1px rgba(255,255,255,.08) inset}

.navActions{display:flex; align-items:center; gap:10px}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:10px 14px;
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: var(--text);
  cursor:pointer;
  transition:.2s ease;
  font-size:13px;
  box-shadow: 0 0 0 1px rgba(0,0,0,.15) inset;
  white-space:nowrap;
}
.btn:hover{transform: translateY(-1px); background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.20)}
.btnPrimary{background: linear-gradient(135deg, var(--red), var(--red2)); border-color: rgba(255,255,255,.16); box-shadow: 0 16px 45px rgba(229,9,20,.25)}
.btnPrimary:hover{filter: brightness(1.06); box-shadow: 0 20px 55px rgba(229,9,20,.30)}
.btnGhost{background: transparent; border-color: rgba(229,9,20,.55)}
.btnGhost:hover{background: rgba(229,9,20,.12); border-color: rgba(229,9,20,.75)}

.hamburger{display:none; width:42px; height:42px; border-radius: 14px; border:1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); cursor:pointer}
.hamburger span{display:block; width:18px; height:2px; background: var(--text); margin:5px auto; border-radius:2px; opacity:.9}
.mobilePanel{display:none; padding:12px 0 16px; border-top:1px solid rgba(255,255,255,.10)}
.mobilePanel a{display:block; padding:10px 8px; border-radius: 12px; color: var(--muted)}
.mobilePanel a:hover{background: rgba(255,255,255,.06); color:var(--text)}

/* Hero */
.hero{padding:18px 0 0}
.heroBanner{
  position:relative;
  border-radius: var(--radius2);
  border:1px solid rgba(255,255,255,.14);
  overflow:hidden;
  box-shadow: var(--shadow);
  background:
    radial-gradient(700px 420px at 20% 20%, rgba(229,9,20,.28), transparent 60%),
    radial-gradient(680px 460px at 80% 25%, rgba(255,42,42,.18), transparent 60%),
    linear-gradient(90deg, rgba(0,0,0,.72), rgba(0,0,0,.18)),
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  min-height: 360px;
}
.heroGrid{display:grid; grid-template-columns: 1.15fr .85fr; gap:18px; padding:22px; position:relative; z-index:2; align-items:center}
.heroKicker{display:inline-flex; align-items:center; gap:10px; padding:8px 12px; border-radius: 999px; background: rgba(229,9,20,.12); border: 1px solid rgba(229,9,20,.35); color: #ffd2d2; font-size:12px; letter-spacing:.2px; margin-bottom:12px}
.heroTitle{margin:0 0 10px; font-size: clamp(28px, 4.2vw, 46px); line-height:1.05; letter-spacing:-.8px}
.heroLead{margin:0 0 16px; color: var(--muted); font-size:14.5px; line-height:1.55; max-width: 62ch}
.heroActions{display:flex; gap:10px; flex-wrap:wrap}
.heroBadges{display:flex; gap:10px; flex-wrap:wrap; margin-top:16px}
.miniBadge{padding:10px 12px; border-radius:16px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); color: var(--muted); font-size:12px}
.miniBadge b{color:var(--text)}
.heroArt{border-radius:20px; border: 1px solid rgba(255,255,255,.12); background: radial-gradient(420px 260px at 30% 30%, rgba(229,9,20,.30), transparent 60%), linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03)); min-height: 280px; position:relative; overflow:hidden}
.heroArt .gridlines{position:absolute; inset:0; background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px); background-size:44px 44px; opacity:.34; mask-image: radial-gradient(circle at 40% 30%, rgba(0,0,0,1), transparent 65%)}
.heroArt .ring{position:absolute; right:-40px; top:-50px; width:220px; height:220px; border-radius:50%; border: 1px solid rgba(255,255,255,.12); box-shadow: 0 0 0 14px rgba(255,255,255,.03), 0 0 0 44px rgba(255,255,255,.02); transform: rotate(15deg)}
.heroArt .chips{position:absolute; left:14px; right:14px; bottom:14px; display:flex; gap:10px; flex-wrap:wrap}
.chip{padding:10px 12px; border-radius:999px; font-size:12px; color:#ffeaea; background: rgba(0,0,0,.30); border: 1px solid rgba(255,255,255,.12); backdrop-filter: blur(10px); display:inline-flex; align-items:center; gap:8px}
.chip i{width:8px; height:8px; border-radius:50%; background: rgba(255,42,42,.95); box-shadow: 0 0 14px rgba(255,42,42,.6); display:inline-block}

/* Big search */
.bigSearchWrap{margin-top:-20px; padding-bottom:18px; position:relative; z-index:5}
.bigSearch{display:flex; align-items:center; gap:10px; background: rgba(255,255,255,.95); border-radius:999px; padding:10px; box-shadow: 0 22px 55px rgba(0,0,0,.45); border:1px solid rgba(255,255,255,.25)}
.bigSearch input{flex:1; border:none; outline:none; font-size:14px; padding:10px 12px; background: transparent; color:#111}
.bigSearch .searchBtn{padding:12px 16px; border-radius:999px; border: 1px solid rgba(0,0,0,.10); background:#111; color:#fff; cursor:pointer; transition:.2s ease; font-size:13px; display:inline-flex; align-items:center; gap:8px; white-space:nowrap}
.bigSearch .searchBtn:hover{filter: brightness(1.08)}
.bigSearch .enrollBtn{padding:12px 18px; border-radius:999px; border:none; background: linear-gradient(135deg, var(--red), var(--red2)); color:white; cursor:pointer; transition:.2s ease; font-size:13px; display:inline-flex; align-items:center; gap:8px; white-space:nowrap; box-shadow: 0 14px 40px rgba(229,9,20,.25)}
.bigSearch .enrollBtn:hover{filter: brightness(1.06)}

/* Sections */
section{padding:18px 0}
.sectionHead{display:flex; justify-content:space-between; align-items:flex-end; gap:14px; margin-bottom:12px}
.sectionHead h2{margin:0; font-size:18px; letter-spacing:-.2px}
.sectionHead p{margin:0; color:var(--muted); font-size:13px; max-width: 72ch; line-height:1.5}

/* Cards and grids */
.grid3{display:grid; grid-template-columns: repeat(3, 1fr); gap:14px}
.grid4{display:grid; grid-template-columns: repeat(4, 1fr); gap:14px}
.card{
  border-radius: var(--radius);
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  padding:16px;
  box-shadow: var(--shadow2);
  transition:.2s ease;
  position:relative;
  overflow:hidden;
}
.card:hover{transform: translateY(-2px); background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.18)}
.tag{display:inline-flex; padding:6px 10px; border-radius:999px; border: 1px solid rgba(229,9,20,.35); background: rgba(229,9,20,.10); color:#ffd2d2; font-size:11px; font-weight:900; text-transform:uppercase; margin-bottom:10px}

/* Course cards */
.coursesGrid{display:grid; grid-template-columns: repeat(3, 1fr); gap:14px}
.courseCard{
  border-radius: 22px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  box-shadow: 0 16px 55px rgba(0,0,0,.35);
  transition:.2s ease;
  position:relative;
}
.courseCard:hover{transform: translateY(-2px); border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.08); box-shadow: 0 22px 70px rgba(0,0,0,.45)}
.courseImg{
  height: 180px;
  background: linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.10)),
              radial-gradient(520px 260px at 20% 20%, rgba(229,9,20,.28), transparent 62%),
              linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.02));
  position:relative;
}
.courseImg img{width:100%; height:100%; object-fit:cover; display:block; opacity:.95}
.badges{position:absolute; left:12px; top:12px; display:flex; gap:8px; flex-wrap:wrap}
.badge{
  font-size:11px;
  font-weight:900;
  letter-spacing:.2px;
  padding:7px 10px;
  border-radius:999px;
  background: rgba(0,0,0,.38);
  border: 1px solid rgba(255,255,255,.14);
  color:#f3f3f3;
  backdrop-filter: blur(10px);
  text-transform:uppercase;
}
.badge.red{background: rgba(229,9,20,.22); border-color: rgba(229,9,20,.40); color:#ffe1e1}
.courseBody{padding:14px 14px 16px}
.courseTitle{margin:0 0 8px; font-size:16px; letter-spacing:-.2px; line-height:1.15}
.courseMeta{display:flex; gap:10px; flex-wrap:wrap; color:var(--muted); font-size:12px; margin-bottom:12px}
.metaPill{padding:6px 10px; border-radius:999px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06)}
.courseActions{display:flex; gap:10px; flex-wrap:wrap; align-items:center}
.smallBtn{
  padding:10px 12px;
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: var(--text);
  cursor:pointer;
  transition:.2s ease;
  font-size:13px;
  font-weight:900;
  display:inline-flex; align-items:center; gap:8px;
}
.smallBtn:hover{background: rgba(255,255,255,.10)}
.smallBtn.primary{background: linear-gradient(135deg, var(--red), var(--red2)); border-color: rgba(255,255,255,.18)}

/* Finder / filters */
.panel{
  border-radius: var(--radius2);
  border:1px solid rgba(255,255,255,.12);
  background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.04));
  box-shadow: var(--shadow);
  overflow:hidden;
}
.panelHead{padding:18px 18px 0}
.panelHead h2{margin:0 0 6px; font-size:18px; letter-spacing:-.2px}
.panelHead p{margin:0 0 12px; color:var(--muted); font-size:13px; line-height:1.5}
.tabs{display:flex; gap:8px; flex-wrap:wrap; padding:0 18px 12px}
.tab{
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color:var(--muted);
  cursor:pointer;
  transition:.2s ease;
  font-size:13px;
  font-weight:900;
}
.tab:hover{background: rgba(255,255,255,.09); color:var(--text)}
.tab.active{background: rgba(229,9,20,.16); border-color: rgba(229,9,20,.45); color:#ffe3e3; box-shadow: 0 0 0 4px rgba(229,9,20,.10)}

.filters{padding:0 18px 18px; display:grid; grid-template-columns: 1.1fr 1.1fr 1fr 1fr auto; gap:10px; align-items:end}
.field label{display:block; font-size:12px; color:var(--muted); margin-bottom:6px}
.field input,.field select,.field textarea{width:100%; padding:12px 12px; border-radius:14px; border:1px solid rgba(255,255,255,.14); background: rgba(0,0,0,.25); color:var(--text); outline:none; transition:.2s ease; font-size:13px}
.field input::placeholder,.field textarea::placeholder{color: rgba(245,245,245,.45)}
.field input:focus,.field select:focus,.field textarea:focus{border-color: rgba(229,9,20,.65); box-shadow: 0 0 0 4px rgba(229,9,20,.12)}

.pillRow{padding:0 18px 18px; display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; border-top: 1px solid rgba(255,255,255,.10); margin-top:10px}
.pillRow .left{display:flex; gap:10px; flex-wrap:wrap; align-items:center}
.radioPill{display:inline-flex; align-items:center; gap:10px; padding:10px 12px; border-radius:999px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); color:var(--muted); cursor:pointer; transition:.2s ease; font-size:13px; user-select:none}
.radioPill input{accent-color: var(--red)}
.radioPill:hover{background: rgba(255,255,255,.09); color:var(--text)}
.pillRow .right{display:flex; gap:10px; align-items:center; flex-wrap:wrap}

.pillBtn{padding:12px 18px; border-radius:999px; border:1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); color:var(--text); cursor:pointer; transition:.2s ease; font-weight:900; display:inline-flex; align-items:center; gap:8px; white-space:nowrap}
.pillBtn:hover{background: rgba(255,255,255,.10)}
.pillBtn.primary{background: linear-gradient(135deg, var(--red), var(--red2)); border-color: rgba(255,255,255,.18); box-shadow: 0 16px 45px rgba(229,9,20,.25)}

/* Course detail */
.breadcrumbs{display:flex; gap:8px; align-items:center; flex-wrap:wrap; color:var(--muted); font-size:12px; margin: 12px 0}
.breadcrumbs a{color:var(--muted)}
.breadcrumbs a:hover{color:var(--text)}
.courseDetailGrid{display:grid; grid-template-columns: 1.05fr .95fr; gap:14px}
.cover{
  border-radius: var(--radius2);
  border:1px solid rgba(255,255,255,.12);
  overflow:hidden;
  background: rgba(255,255,255,.06);
  box-shadow: var(--shadow2);
}
.cover img{width:100%; height:320px; object-fit:cover; display:block}
.detailCard{border-radius: var(--radius2); border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); box-shadow: var(--shadow2); padding:16px}
.detailCard h1{margin:0 0 8px; font-size:24px; letter-spacing:-.4px}
.detailCard p{margin:0 0 14px; color:var(--muted); line-height:1.6}
.kv{display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin: 14px 0}
.kv .item{border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.05); border-radius:16px; padding:12px}
.kv .item span{display:block; color:var(--muted); font-size:12px}
.kv .item b{display:block; margin-top:4px}

.curriculum{margin-top:14px}
.curriculum h3{margin:0 0 10px; font-size:16px}
.semester{border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.05); border-radius:16px; padding:12px; margin-bottom:10px}
.semester strong{display:block; margin-bottom:8px}
.semester ul{margin:0; padding-left:18px; color:var(--muted); font-size:13px; line-height:1.6}

/* Steps / inscription */
.stepper{display:flex; gap:10px; flex-wrap:wrap; margin: 10px 0 0; padding:0 18px 18px}
.step{display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:999px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.05); color:var(--muted); font-size:12px; font-weight:900}
.step.active{color:#ffe3e3; border-color: rgba(229,9,20,.45); background: rgba(229,9,20,.16); box-shadow: 0 0 0 4px rgba(229,9,20,.10)}

.formGrid{display:grid; grid-template-columns: 1fr 1fr; gap:10px}
.formGrid .full{grid-column: 1 / -1}
.hint{color:var(--muted); font-size:12px; line-height:1.4}
.error{color: #ffd2d2; font-size:12px; margin-top:6px}
.success{color: #c7ffeb; font-size:12px; margin-top:6px}

.notice{border-radius: 18px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); padding:14px; color:var(--muted); font-size:13px; line-height:1.55}
.notice b{color: var(--text)}

/* File upload */
.fileList{margin-top:10px; display:grid; gap:10px}
.fileItem{border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.05); border-radius: 16px; padding:12px; display:flex; justify-content:space-between; gap:10px; align-items:center}
.fileItem .meta{color:var(--muted); font-size:12px}

/* Accordion */
.accordion{display:grid; grid-template-columns: 1fr 1fr; gap:14px}
details{border-radius: var(--radius); border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); padding:12px 14px; box-shadow: 0 16px 55px rgba(0,0,0,.18)}
summary{cursor:pointer; list-style:none; font-size:13px; font-weight:900; display:flex; align-items:center; justify-content:space-between; gap:10px}
summary::-webkit-details-marker{display:none}
details p{margin:10px 0 0; color:var(--muted); font-size:13px; line-height:1.55}

/* Toast */
.toast{
  position:fixed; right:16px; bottom:16px; z-index: 300;
  background: rgba(20,20,20,.92);
  border:1px solid rgba(255,255,255,.14);
  border-radius: 18px;
  box-shadow: var(--shadow);
  padding: 12px 14px;
  max-width: 380px;
  display:none;
  backdrop-filter: blur(12px);
}
.toast strong{display:block; font-size:13px}
.toast span{display:block; color:var(--muted); font-size:12px; margin-top:3px}

/* Modal */
.modalOverlay{position:fixed; inset:0; background: rgba(0,0,0,.65); display:none; align-items:center; justify-content:center; z-index: 400; padding:18px}
.modal{width:min(920px, 100%); border-radius: 22px; border:1px solid rgba(255,255,255,.14); background: rgba(20,20,20,.92); backdrop-filter: blur(14px); box-shadow: var(--shadow); overflow:hidden}
.modalHead{display:flex; justify-content:space-between; align-items:center; padding:14px 16px; border-bottom: 1px solid rgba(255,255,255,.10)}
.modalHead strong{font-size:14px}
.closeBtn{width:40px; height:40px; border-radius:14px; border:1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); color: var(--text); cursor:pointer}
.modalBody{padding:16px; display:grid; grid-template-columns: 1fr 1fr; gap:14px}
.modalBlock{border-radius: 18px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); padding:14px}
.modalBlock h5{margin:0 0 8px; font-size:13px; text-transform:uppercase; letter-spacing:.2px}
.modalBlock p{margin:0; color:var(--muted); font-size:13px; line-height:1.55}

/* Footer */
footer{margin-top: 16px; border-top: 1px solid rgba(255,255,255,.12); background: rgba(0,0,0,.22); padding:24px 0 40px}
.footerGrid{display:grid; grid-template-columns: 1.2fr 1fr 1fr 1fr; gap:14px; align-items:start}
.footerGrid h4{margin:0 0 10px; font-size:13px; letter-spacing:.2px; text-transform:uppercase; color:#eaeaea}
.footerGrid a{display:block; padding:7px 0; color: var(--muted); font-size:13px}
.footerGrid a:hover{color: var(--text)}
.legal{margin-top:18px; padding-top:14px; border-top: 1px solid rgba(255,255,255,.10); color: rgba(179,179,179,.92); font-size:12px; display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap}

/* Cookie banner */
.cookie{position:fixed; left:16px; right:16px; bottom:16px; background: rgba(20,20,20,.92); border:1px solid rgba(255,255,255,.14); border-radius: 18px; box-shadow: var(--shadow); padding:14px; z-index: 250; display:none; backdrop-filter: blur(12px)}
.cookieRow{display:flex; gap:12px; align-items:center; justify-content:space-between; flex-wrap:wrap}
.cookie p{margin:0; color: var(--muted); font-size:12.5px; line-height:1.45; max-width: 90ch}
.cookieActions{display:flex; gap:10px; flex-wrap:wrap}
.cookieActions button{padding:10px 14px; border-radius:999px; border:1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); color: var(--text); cursor:pointer; transition:.2s ease; font-weight:900; font-size:12px}
.cookieActions button:hover{background: rgba(255,255,255,.10)}
.cookieActions .accept{background: linear-gradient(135deg, var(--red), var(--red2)); border-color: rgba(255,255,255,.16)}

/* Tables */
.tableWrap{overflow:auto; border-radius: 18px; border:1px solid rgba(255,255,255,.12)}
table{width:100%; border-collapse:collapse; min-width: 680px; background: rgba(255,255,255,.04)}
th,td{padding:12px; border-bottom:1px solid rgba(255,255,255,.10); text-align:left; font-size:13px}
th{color:#eaeaea; font-size:12px; text-transform:uppercase; letter-spacing:.2px}
td{color:var(--muted)}
tr:hover td{color:var(--text)}

/* Admin */
.adminShell{display:grid; grid-template-columns: 260px 1fr; gap:14px; align-items:start}
.sidebar{border-radius: var(--radius2); border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); padding:14px; box-shadow: var(--shadow2)}
.sidebar a{display:block; padding:10px 10px; border-radius: 12px; color:var(--muted); font-size:13px; font-weight:900}
.sidebar a:hover{background: rgba(255,255,255,.06); color:var(--text)}
.sidebar a.active{background: rgba(229,9,20,.16); border:1px solid rgba(229,9,20,.35); color:#ffe3e3}
.main{border-radius: var(--radius2); border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); padding:16px; box-shadow: var(--shadow2)}

/* Responsive */
@media (max-width: 980px){
  .heroGrid{grid-template-columns: 1fr}
  .coursesGrid{grid-template-columns: 1fr 1fr}
  .grid3{grid-template-columns: 1fr 1fr}
  .grid4{grid-template-columns: 1fr 1fr}
  .accordion{grid-template-columns: 1fr}
  .footerGrid{grid-template-columns: 1fr 1fr}
  .filters{grid-template-columns: 1fr 1fr}
  .filters .go{grid-column: 1 / -1}
  .courseDetailGrid{grid-template-columns: 1fr}
  .modalBody{grid-template-columns: 1fr}
  .adminShell{grid-template-columns: 1fr}
}
@media (max-width: 760px){
  .navLinks{display:none}
  .navActions .btn{display:none}
  .hamburger{display:block}
  .mobilePanel{display:block}
  .coursesGrid{grid-template-columns: 1fr}
  .grid3{grid-template-columns: 1fr}
  .grid4{grid-template-columns: 1fr}
  .footerGrid{grid-template-columns: 1fr}
  .utilityRight{display:none}
  .formGrid{grid-template-columns: 1fr}
  .bigSearch{flex-wrap:wrap; border-radius:22px}
}

/* Minor helpers */
.courseCardLink{display:block; height:100%}
.pageHead{margin: 18px 0 12px}
.pageHead h1{margin:0; font-size:26px; letter-spacing:-.4px}
.pageHead p{margin:8px 0 0; color:var(--muted); max-width:80ch; line-height:1.5}

.currBlock{border-top:1px solid rgba(255,255,255,.10); padding-top:12px; margin-top:12px}
.currBlock h4{margin:0 0 8px; font-size:13px; text-transform:uppercase; letter-spacing:.2px}
.currBlock ul{margin:0; padding-left:18px; color:var(--muted); font-size:13px; line-height:1.55}

.courseDetail{margin-top: 12px}
.courseDetailHead{display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px}
.courseDetailGrid{display:grid; grid-template-columns: 1fr 1fr; gap:14px; align-items:start}
.courseCover{height:340px; border-radius:22px; border:1px solid rgba(255,255,255,.12); background-size:cover; background-position:center; box-shadow: var(--shadow2)}
.metaRow{display:grid; grid-template-columns: repeat(2, 1fr); gap:10px; margin-top:12px}
.metaItem{border-radius: 16px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); padding:12px}
.metaItem b{display:block; margin-top:6px}

.emptyState{grid-column:1/-1; padding:18px; border-radius:18px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.06); color:var(--muted)}

.toast{position:fixed; right:16px; bottom:16px; z-index:999; display:none}
.toastInner{border-radius:18px; border:1px solid rgba(255,255,255,.12); background: rgba(20,20,20,.92); box-shadow: var(--shadow); padding:12px 14px; min-width: 260px}
.toast[data-type="error"] .toastInner{border-color: rgba(229,9,20,.45)}
.toast[data-type="success"] .toastInner{border-color: rgba(54,211,153,.45)}

/* Inscricao layout */
.flowShell{display:grid; grid-template-columns: 300px 1fr; gap:14px; align-items:start}
.flowSteps{border-radius: var(--radius2); border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); padding:14px; box-shadow: var(--shadow2)}
.stepItem{padding:10px 12px; border-radius: 14px; border:1px solid rgba(255,255,255,.10); background: rgba(255,255,255,.04); color:var(--muted); font-size:13px; font-weight:900; margin-bottom:10px}
.stepItem.active{background: rgba(229,9,20,.16); border-color: rgba(229,9,20,.45); color:#ffe3e3}
.stepItem.done{background: rgba(54,211,153,.12); border-color: rgba(54,211,153,.35); color:#d9fff0}
.flowMain{min-height: 420px}

.errorText{color:#ffd2d2; font-size:12px; margin-top:6px}
.helperText{color:var(--muted); font-size:12px; margin-top:6px; line-height:1.5}

@media (max-width: 980px){
  .flowShell{grid-template-columns: 1fr}
  .flowSteps{position:static}
}

/* Extra components used by /inscricao and /admin */
.offerBanner{border-radius: var(--radius2); border:1px solid rgba(255,255,255,.12); background: linear-gradient(135deg, rgba(229,9,20,.20), rgba(255,255,255,.06)); padding:14px 16px; display:flex; justify-content:space-between; align-items:flex-start; gap:14px}
.offerKicker{font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.22em}
.offerName{margin:6px 0 0; font-size:18px; font-weight:900}
.offerMeta{margin-top:6px; color:var(--muted); font-size:13px}

.pill{display:inline-flex; align-items:center; gap:6px; padding:8px 12px; border-radius:999px; border:1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); color:var(--text); font-weight:900; font-size:12px}

.note{border-radius: 16px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); padding:12px 14px; color:var(--muted); font-size:13px; line-height:1.55}
.note ul{margin:8px 0 0 18px}
.note code{background: rgba(0,0,0,.35); border:1px solid rgba(255,255,255,.10); padding:2px 6px; border-radius:10px; color:var(--text)}

.statusBox{border-radius: 18px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); padding:14px}
.statusHeader{border-radius:18px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); padding:14px; display:flex; justify-content:space-between; align-items:flex-start; gap:14px}
.statusHeader.ok{border-color: rgba(54,211,153,.35); background: rgba(54,211,153,.10)}
.statusHeader.warn{border-color: rgba(251,191,36,.35); background: rgba(251,191,36,.10)}
.statusHeader.bad{border-color: rgba(251,113,133,.35); background: rgba(251,113,133,.10)}
.statusHeader.info{border-color: rgba(255,255,255,.18)}
.statusTitle{font-weight:900; font-size:16px}
.statusSub{color:var(--muted); font-size:13px; margin-top:4px}
.statusActions{display:flex; gap:10px; flex-wrap:wrap; margin-top:12px}

.contractBox{border-radius: 18px; border:1px solid rgba(255,255,255,.12); background: rgba(0,0,0,.30); padding:14px; color:var(--muted); line-height:1.65; margin-bottom:12px}
.contractBox h3{margin:0 0 10px; color:var(--text)}

.counterRow{display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:8px; color:var(--muted); font-size:12px}

.radioRow{display:flex; gap:10px; flex-wrap:wrap}
.radioCard{padding:12px 14px; border-radius: 16px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); display:flex; align-items:center; gap:10px; cursor:pointer}
.radioCard:hover{background: rgba(255,255,255,.09)}
.radioCard input{accent-color: var(--red)}

.docGrid{display:grid; grid-template-columns: repeat(5, 1fr); gap:10px; margin-top:12px}
.docCard{border-radius:18px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); padding:12px; display:flex; flex-direction:column; gap:10px}
.docTitle{font-weight:900}
.docActions input[type="file"]{width:100%}
.docStatus{color:var(--muted); font-size:12px}

.receiptBox{border-radius: 18px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); padding:14px}
.receiptHead{display:flex; justify-content:space-between; align-items:flex-start; gap:14px; margin-bottom:12px}
.receiptTitle{font-weight:900; font-size:16px}
.receiptSub{color:var(--muted); font-size:13px; margin-top:4px}
.receiptGrid{display:grid; grid-template-columns: 1fr 1fr; gap:12px}
.receiptBlock{border-radius:18px; border:1px solid rgba(255,255,255,.12); background: rgba(0,0,0,.30); padding:14px}
.receiptBlock h5{margin:0 0 8px; font-size:13px; text-transform:uppercase; letter-spacing:.18em; color:var(--muted)}

@media (max-width: 980px){
  .flowShell{grid-template-columns: 1fr}
  .flowSteps{position:static}
  .docGrid{grid-template-columns: 1fr 1fr}
  .receiptGrid{grid-template-columns: 1fr}
}
