:root{ --mc-bg:#ffffff; --mc-ink:#0f172a; --mc-card:#f8fafc; --mc-accent:#114179; --mc-gold:#DB9D4A; --mc-muted:#64748b; --mc-shadow:0 6px 20px rgba(2,6,23,.08); }
:root[data-theme="dark"]{ --mc-bg:#0b1220; --mc-ink:#e5e7eb; --mc-card:#0f172a; --mc-accent:#DB9D4A; --mc-gold:#DB9D4A; --mc-muted:#9aa5b1; }
@media (prefers-color-scheme: dark){
  :root[data-theme="auto"]{ --mc-bg:#0b1220; --mc-ink:#e5e7eb; --mc-card:#0f172a; --mc-accent:#DB9D4A; --mc-gold:#DB9D4A; --mc-muted:#9aa5b1; }
}

body{background:var(--mc-bg);color:var(--mc-ink);}
.mcf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.mcf-card{background:var(--mc-card);border-radius:16px;box-shadow:var(--mc-shadow);padding:14px;transition:transform .2s ease}
.mcf-card:hover{transform:translateY(-2px)}
.mcf-thumb{width:100%;height:auto;border-radius:12px}
.mcf-title{margin:.5rem 0 .25rem}
.mcf-excerpt{color:var(--mc-muted);font-size:.95rem}
.mcf-price{margin-top:.5rem;font-weight:600;color:var(--mc-ink)}
.mcf-btn{display:inline-block;padding:.6rem 1rem;border-radius:10px;background:var(--mc-accent);color:#fff;text-decoration:none}
.mcf-btn:hover{opacity:.9}
.mcf-btn-wave{background:#1f8f6b}

.mcf-btn-ghost{background:transparent;color:var(--mc-ink);border:1px solid rgba(148,163,184,.45)}
.mcf-btn-ghost:hover{opacity:1;background:rgba(148,163,184,.12)}

/* ===============================
 * Student Space — Modern UI
 * (Overrides / reinforces above styles)
 * =============================== */

/* Container */
.mcf-space{max-width:1180px;margin:0 auto;padding:18px 16px 42px}
.mcf-space h2{letter-spacing:-.02em}

/* Hero */
.mcf-hero{position:relative;overflow:hidden;border-radius:22px;border:1px solid rgba(148,163,184,.24);padding:18px 18px;box-shadow:0 18px 55px rgba(2,6,23,.08)}
.mcf-hero:before{content:"";position:absolute;inset:-2px;background:radial-gradient(900px 420px at 12% 18%, rgba(17,65,122,.22), transparent 60%),radial-gradient(700px 360px at 90% 20%, rgba(219,157,74,.16), transparent 55%),linear-gradient(135deg, rgba(17,65,122,.10), rgba(2,6,23,.02));pointer-events:none}
:root[data-theme="dark"] .mcf-hero{border-color:rgba(148,163,184,.18);box-shadow:0 20px 70px rgba(0,0,0,.35)}
:root[data-theme="dark"] .mcf-hero:before{background:radial-gradient(900px 420px at 10% 18%, rgba(17,65,122,.42), transparent 60%),radial-gradient(700px 360px at 90% 22%, rgba(219,157,74,.22), transparent 55%),linear-gradient(135deg, rgba(2,6,23,.82), rgba(2,6,23,.55))}

.upx-space-title{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.upx-space-title h1{margin:0;font-size:clamp(22px,2.1vw,30px);line-height:1.15}
.upx-space-kicker{position:relative;z-index:1;text-transform:uppercase;letter-spacing:.16em;font-size:11px;color:rgba(15,23,42,.65)}
:root[data-theme="dark"] .upx-space-kicker{color:rgba(226,232,240,.72)}
.upx-space-sub{position:relative;z-index:1;margin-top:6px;color:rgba(15,23,42,.78)}
:root[data-theme="dark"] .upx-space-sub{color:rgba(226,232,240,.78)}

/* Actions */
.upx-space-actions{position:relative;z-index:1;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.mcf-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border-radius:999px;border:1px solid rgba(148,163,184,.3);font-weight:700;text-decoration:none;transition:transform .12s ease, box-shadow .12s ease, background .12s ease}
.mcf-btn:hover{transform:translateY(-1px);box-shadow:0 14px 34px rgba(2,6,23,.10)}
.mcf-btn-primary{background:linear-gradient(135deg, #DB9D4A, #c98a36);color:#1a1206;border-color:rgba(219,157,74,.55)}
.mcf-btn-primary:hover{box-shadow:0 16px 40px rgba(219,157,74,.22)}
.mcf-btn-ghost{background:rgba(255,255,255,.72);color:rgba(15,23,42,.92)}
:root[data-theme="dark"] .mcf-btn-ghost{background:rgba(2,6,23,.35);color:rgba(226,232,240,.92);border-color:rgba(148,163,184,.22)}

/* Sections */
.mcf-space h2{margin:18px 2px 10px}
.mcf-space .mcf-section{margin-top:14px}

/* Course cards */
.mcf-course-card{display:flex;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(180deg, rgba(11,18,32,.96), rgba(8,14,26,.94));border:1px solid rgba(148,163,184,.14);border-radius:18px;padding:14px 14px;box-shadow:0 18px 55px rgba(2,6,23,.22)}
.mcf-course-card + .mcf-course-card{margin-top:12px}
:root:not([data-theme="dark"]) .mcf-course-card{box-shadow:0 14px 44px rgba(2,6,23,.14)}
.mcf-course-left{display:flex;gap:12px;min-width:0;align-items:center}
.mcf-pill{flex:0 0 auto;min-width:64px;text-align:center;border-radius:14px;padding:10px 10px;border:1px solid rgba(148,163,184,.18);color:rgba(226,232,240,.82);background:rgba(255,255,255,.04)}
.mcf-course-meta{min-width:0}
.mcf-course-title{margin:0;color:#fff;font-size:16px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mcf-course-sub{margin:4px 0 0;color:rgba(226,232,240,.72);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mcf-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.mcf-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid rgba(148,163,184,.16);color:rgba(226,232,240,.92);background:rgba(255,255,255,.04)}
.mcf-badge-ok{border-color:rgba(34,197,94,.30);background:rgba(34,197,94,.10)}
.mcf-badge-no{border-color:rgba(239,68,68,.28);background:rgba(239,68,68,.10)}

/* CTA button in card */
.mcf-course-cta{flex:0 0 auto}
.mcf-course-cta a{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:999px;background:linear-gradient(135deg, #DB9D4A, #c98a36);color:#1a1206;font-weight:900;text-decoration:none;border:1px solid rgba(219,157,74,.55);box-shadow:0 16px 40px rgba(219,157,74,.18);transition:transform .12s ease, box-shadow .12s ease}
.mcf-course-cta a:hover{transform:translateY(-1px);box-shadow:0 18px 48px rgba(219,157,74,.22)}

/* Responsive */
@media (max-width: 720px){
  .upx-space-title{flex-direction:column;align-items:flex-start}
  .upx-space-actions{width:100%}
  .mcf-course-card{flex-direction:column;align-items:stretch}
  .mcf-course-cta{width:100%}
  .mcf-course-cta a{width:100%}
  .mcf-pill{min-width:54px}
  .mcf-course-title{white-space:normal}
  .mcf-course-sub{white-space:normal}
}
:root:not([data-theme="dark"]) .mcf-hero{background:linear-gradient(180deg, rgba(17,65,121,.10), rgba(17,65,121,.04))}

/* Light mode contrast improvements */
:root:not([data-theme="dark"]) .mcf-btn-ghost{border-color:rgba(15,23,42,.25);background:rgba(15,23,42,.035)}
:root:not([data-theme="dark"]) .mcf-btn-ghost:hover{background:rgba(15,23,42,.065)}
:root:not([data-theme="dark"]) .mcf-badge{border-color:rgba(15,23,42,.18);background:rgba(15,23,42,.045)}
.mcf-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid rgba(148,163,184,.35);background:rgba(148,163,184,.10);font-size:12px;color:var(--mc-ink)}
.mcf-meta{margin-top:6px;color:var(--mc-muted);font-size:12px}

.mcf-schedule{margin:1rem 0}
.mcf-formulas{display:flex;gap:8px;margin-bottom:10px}
.mcf-chip{padding:.35rem .7rem;border-radius:999px;border:1px solid var(--mc-muted);background:transparent;color:var(--mc-ink);cursor:pointer}
.mcf-chip.active{background:var(--mc-accent);color:white;border-color:transparent}
.mcf-table{width:100%;border-collapse:collapse;background:var(--mc-card);border-radius:12px;overflow:hidden;box-shadow:var(--mc-shadow)}
.mcf-table th,.mcf-table td{padding:.75rem;border-bottom:1px solid rgba(148,163,184,.25);text-align:left}
.mcf-table tr:last-child td{border-bottom:none}

.mcf-form label{display:block;margin:.6rem 0 .25rem;font-weight:600}
.mcf-form input,.mcf-form select{width:100%;padding:.6rem;border:1px solid #cbd5e1;border-radius:10px;background:transparent;color:inherit}
.mcf-form textarea{width:100%;padding:.6rem;border:1px solid #cbd5e1;border-radius:10px;background:transparent;color:inherit}
.mcf-form button{margin-top:.8rem}



/* Modal inscription */
.mcf-modal{position:fixed;inset:0;z-index:9999;display:none}
.mcf-modal.is-open{display:block}
.mcf-modal-scrim{position:absolute;inset:0;background:rgba(2,6,23,.55)}
.mcf-modal-card{position:relative;max-width:560px;margin:7vh auto; background:var(--mc-card);color:var(--mc-ink);border-radius:18px;box-shadow:var(--mc-shadow);padding:16px 16px 18px}
.mcf-modal-title{margin:2px 0 4px;font-size:1.2rem}
.mcf-modal-sub{margin:0 0 12px;color:var(--mc-muted);font-size:.95rem}
.mcf-modal-x{position:absolute;top:10px;right:12px;width:36px;height:36px;border-radius:999px;border:1px solid rgba(148,163,184,.35);background:transparent;color:var(--mc-ink);cursor:pointer}
.mcf-modal-form label{display:block;margin:.55rem 0 .25rem;font-weight:600}
.mcf-modal-form input,.mcf-modal-form select,.mcf-modal-form textarea{width:100%;padding:.6rem;border:1px solid #cbd5e1;border-radius:10px;background:transparent;color:inherit}

/* Ensure student space badges keep contrast (legacy .mcf-badge styles appear later in the file). */
.mcf-course-card .mcf-badge{
  color:rgba(226,232,240,.92) !important;
  background:rgba(255,255,255,.04) !important;
  border-color:rgba(148,163,184,.16) !important;
}
.mcf-course-card .mcf-badge-ok{border-color:rgba(34,197,94,.30) !important;background:rgba(34,197,94,.10) !important;}
.mcf-course-card .mcf-badge-no{border-color:rgba(239,68,68,.28) !important;background:rgba(239,68,68,.10) !important;}
.mcf-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mcf-modal-actions{margin-top:12px;display:flex;gap:10px;justify-content:flex-end}
.mcf-modal-msg{margin-top:10px;font-size:.95rem;color:var(--mc-muted)}
html.mcf-modal-open{overflow:hidden}
@media (max-width:560px){
  .mcf-modal-card{margin:8vh 12px;}
  .mcf-modal-grid{grid-template-columns:1fr}
}

.mcf-theme-toggle{padding:.4rem .7rem;border-radius:999px;border:1px solid var(--mc-muted);background:transparent;color:var(--mc-ink);cursor:pointer}

.mcf-proforma .mcf-proforma-wrap{max-width:760px;margin:24px auto;padding:20px;background:var(--mc-card);border-radius:16px;box-shadow:var(--mc-shadow)}


/* ================================
   Unipraxis — Student Space (UI)
   - Fix light-mode contrast
   - Reader page polish
================================ */
.upx-space-kicker{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mc-muted)}
.upx-space-title{margin:6px 0 2px;font-size:26px;line-height:1.15;color:var(--mc-ink)}
.upx-space-sub{color:var(--mc-muted);font-size:13px}

.upx-reader .mcf-card{border:1px solid rgba(148,163,184,.25);border-radius:20px;background:var(--mc-card)}
.upx-reader h2,.upx-reader h3{color:var(--mc-ink)}
.upx-reader ul{padding-left:18px}

body:not(.theme-dark):not([data-theme="dark"]) .mcf-pill{border-color:rgba(2,6,23,.18)}
body:not(.theme-dark):not([data-theme="dark"]) .mcf-pill.ok{background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.35);color:#065f46}
body:not(.theme-dark):not([data-theme="dark"]) .mcf-pill.bad{background:rgba(239,68,68,.10);border-color:rgba(239,68,68,.35);color:#7f1d1d}


/* Light theme fixes v0.2.19 */
:root[data-theme="light"]{
  --upx-bg: #F5F7FB;
  --upx-surface: #FFFFFF;
  --upx-surface-2: #F0F4FA;
  --upx-text: #0B1220;
  --upx-muted: #475569;
  --upx-border: rgba(15, 23, 42, .12);
  --upx-shadow: 0 14px 45px rgba(15,23,42,.08);
}

/* Ensure core blocks stay readable in light mode */
:root[data-theme="light"] .upx-card,
:root[data-theme="light"] .upx-panel,
:root[data-theme="light"] .mcf-student-card,
:root[data-theme="light"] .upx-reader .upx-reader-card{
  background: var(--upx-surface) !important;
  color: var(--upx-text) !important;
  border-color: var(--upx-border) !important;
  box-shadow: var(--upx-shadow) !important;
}

:root[data-theme="light"] .upx-reader h1,
:root[data-theme="light"] .upx-reader h2,
:root[data-theme="light"] .upx-reader h3,
:root[data-theme="light"] .mcf-student-wrap h1,
:root[data-theme="light"] .mcf-student-wrap h2{
  color: var(--upx-text) !important;
}

:root[data-theme="light"] .upx-reader .upx-muted,
:root[data-theme="light"] .mcf-student-wrap .upx-muted{
  color: var(--upx-muted) !important;
}

/* Buttons contrast */
:root[data-theme="light"] .mcf-btn,
:root[data-theme="light"] .upx-btn{
  background: #114179 !important;
  color: #fff !important;
  border-color: rgba(17,65,121,.35) !important;
}
:root[data-theme="light"] .mcf-btn-outline,
:root[data-theme="light"] .upx-btn-outline{
  background: transparent !important;
  color: #114179 !important;
  border-color: rgba(17,65,121,.35) !important;
}

/* Reader layout polish */
.upx-reader-page .site-content,
.upx-reader-page main.upx-reader{
  min-height: 60vh;
}

.upx-reader .upx-reader-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin: 22px auto 14px;
  max-width: 1040px;
  padding: 0 16px;
}
.upx-reader .upx-reader-title{
  font-size: clamp(20px, 2.3vw, 30px);
  line-height: 1.15;
  margin:0;
}
.upx-reader .upx-reader-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.upx-reader .upx-reader-grid{
  max-width: 1040px;
  margin: 0 auto 40px;
  padding: 0 16px;
  display:grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media(min-width: 980px){
  .upx-reader .upx-reader-grid{
    grid-template-columns: 360px 1fr;
    align-items:start;
  }
  .upx-reader .upx-reader-sidebar{
    position: sticky;
    top: 92px;
  }
}
.upx-reader .upx-reader-card{
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(11,18,32,.55);
  border-radius: 18px;
  padding: 16px;
  box-shadow: 0 18px 50px rgba(0,0,0,.28);
}
.upx-reader .upx-reader-card h3{
  margin:0 0 10px;
  font-size: 15px;
  letter-spacing:.2px;
}
.upx-reader .upx-reader-progress{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.upx-reader .upx-reader-progress b{
  font-size: 22px;
}
.upx-reader .upx-reader-progress .bar{
  flex:1;
  height:10px;
  border-radius:999px;
  background: rgba(255,255,255,.10);
  overflow:hidden;
}
.upx-reader .upx-reader-progress .bar > span{
  display:block;
  height:100%;
  width: var(--upx-progress, 0%);
  background: linear-gradient(90deg, #DB9D4A, #FFC83A);
}

/* Make chapters list cleaner */
.upx-reader .upx-chapter{
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 16px;
  padding: 12px 12px;
  background: rgba(11,18,32,.35);
}
:root[data-theme="light"] .upx-reader .upx-chapter{
  background: var(--upx-surface-2);
}
.upx-reader .upx-chapter + .upx-chapter{ margin-top: 12px; }
.upx-reader .upx-chapter summary{
  cursor:pointer;
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-weight:700;
}
.upx-reader .upx-chapter summary::-webkit-details-marker{ display:none; }
.upx-reader .upx-resources{
  margin: 10px 0 0;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.upx-reader .upx-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 7px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  text-decoration:none;
  color: inherit;
  font-weight:600;
  font-size: 13px;
}
:root[data-theme="light"] .upx-reader .upx-pill{
  border-color: var(--upx-border);
  background: #fff;
}
.upx-reader .upx-pill:hover{
  transform: translateY(-1px);
}

/* Student space contrast fixes */
.mcf-course-card .mcf-badge{
  color: rgba(226,232,240,.92) !important;
  background: rgba(148,163,184,.12) !important;
  border-color: rgba(148,163,184,.20) !important;
}

:root[data-theme="light"] .mcf-hero .upx-space-kicker{ color: rgba(15,23,42,.72) !important; }
:root[data-theme="light"] .mcf-hero .upx-space-title{ color: rgba(15,23,42,.98) !important; }
:root[data-theme="light"] .mcf-hero .upx-space-sub{ color: rgba(15,23,42,.78) !important; }
