:root{
  --primary:#696cff;
  --primary-2:#8592ff;
  --primary-soft:#eef0ff;
  --bg:#f5f5f9;
  --surface:#fff;
  --text:#566a7f;
  --heading:#32475c;
  --muted:#a1acb8;
  --border:#e7e7ff;
  --success:#71dd37;
  --danger:#ff3e1d;
  --warning:#ffab00;
  --info:#03c3ec;
  --shadow:0 .125rem .375rem rgba(67,89,113,.12);
  --radius:14px;
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-size:.925rem}
a{color:var(--primary)}
a:hover{color:#5f61e6}
.admin-bg,.portal-bg{background:var(--bg)}
.card{border:0;border-radius:var(--radius);box-shadow:var(--shadow)}
.card-header{background:transparent;border:0;padding:1.35rem 1.5rem 0}
.card-body{padding:1.5rem}
.form-control,.form-select{border-radius:9px;border-color:#d9dee3;min-height:42px}
.form-control:focus,.form-select:focus{border-color:#b6b8ff;box-shadow:0 0 0 .2rem rgba(105,108,255,.12)}
.btn{border-radius:8px;font-weight:600}
.btn-primary{--bs-btn-bg:var(--primary);--bs-btn-border-color:var(--primary);--bs-btn-hover-bg:#5f61e6;--bs-btn-hover-border-color:#5f61e6}
.btn-outline-primary{--bs-btn-color:var(--primary);--bs-btn-border-color:var(--primary);--bs-btn-hover-bg:var(--primary);--bs-btn-hover-border-color:var(--primary)}
.text-primary{color:var(--primary)!important}
.bg-primary{background:var(--primary)!important}
.badge-soft{background:var(--primary-soft);color:var(--primary)}
.badge-soft-success{background:#e8fadf;color:#56ca00}
.badge-soft-warning{background:#fff2d6;color:#ffab00}
.badge-soft-danger{background:#ffe0db;color:#ff3e1d}
.badge-soft-info{background:#d7f5fc;color:#03c3ec}
.table{--bs-table-bg:transparent;color:var(--text)}
.table>:not(caption)>*>*{padding:.9rem .85rem;border-bottom-color:#eceef1;vertical-align:middle}
.table thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.045em;color:#8a98a8;font-weight:700}
.thumb{width:72px;height:50px;object-fit:cover;border-radius:9px;background:#f0f1f5}
.course-cover{height:170px;object-fit:cover;width:100%;border-radius:14px 14px 0 0;background:#eceef5}
.content-icon{width:44px;height:44px;border-radius:11px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-size:1.25rem}
.hero{border-radius:18px;background:linear-gradient(135deg,#696cff 0%,#8285ff 60%,#9fa8ff 100%);color:#fff;box-shadow:0 .5rem 1.2rem rgba(105,108,255,.24)}

/* Sneat-like layout used by the exchange portal */
.layout-wrapper{min-height:100vh;display:flex}
.layout-menu{width:260px;background:var(--surface);border-right:1px solid rgba(67,89,113,.06);position:fixed;inset:0 auto 0 0;z-index:1040;display:flex;flex-direction:column;box-shadow:0 0 0 1px rgba(67,89,113,.02)}
.app-brand{height:72px;display:flex;align-items:center;padding:0 1.35rem;gap:.7rem;text-decoration:none;color:var(--heading);font-weight:800;font-size:1.12rem}
.app-brand-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(135deg,var(--primary),#8c8eff);color:#fff;box-shadow:0 .3rem .8rem rgba(105,108,255,.25)}
.menu-inner{padding:.4rem .8rem 1rem;overflow:auto;flex:1}
.menu-header{padding:.9rem .8rem .45rem;color:#a7acb2;font-size:.69rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.menu-item{margin:.16rem 0}
.menu-link{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:#697a8d;padding:.68rem .82rem;border-radius:9px;font-weight:500;transition:.16s ease}
.menu-link i{font-size:1.12rem;width:22px;text-align:center}
.menu-link:hover{background:#f5f5f9;color:var(--heading)}
.menu-link.active{background:var(--primary-soft);color:var(--primary);font-weight:700;box-shadow:inset 3px 0 0 var(--primary)}
.layout-page{margin-left:260px;width:calc(100% - 260px);min-height:100vh;display:flex;flex-direction:column}
.layout-navbar{height:64px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-radius:12px;margin:14px 24px 0;box-shadow:var(--shadow);display:flex;align-items:center;padding:0 1rem;position:sticky;top:12px;z-index:1030}
.layout-navbar .page-title{font-weight:700;color:var(--heading);font-size:1.02rem}
.content-wrapper{padding:24px;flex:1}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
.page-heading h3,.page-heading h4{margin:0;color:var(--heading);font-weight:700}
.metric-card .metric-icon{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-size:1.25rem}
.metric-value{font-size:1.65rem;font-weight:800;color:var(--heading);line-height:1.15}
.metric-label{color:#8a98a8;font-size:.82rem}
.quick-action{display:flex;align-items:center;gap:.9rem;text-decoration:none;color:var(--text);padding:1rem;border-radius:12px;border:1px solid #eceef1;transition:.16s}
.quick-action:hover{border-color:#cfd1ff;background:#fafaff;color:var(--primary)}

/* public landing */
.public-nav{background:#fff;box-shadow:0 1px 0 rgba(67,89,113,.06)}
.public-brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--heading);font-weight:800}
.public-hero{padding:72px 0 58px;background:radial-gradient(circle at 88% 12%,rgba(105,108,255,.16),transparent 28%),linear-gradient(180deg,#fff 0%,#f7f7ff 100%)}
.public-hero h1{font-size:clamp(2.2rem,5vw,4.25rem);line-height:1.03;color:var(--heading);font-weight:800;letter-spacing:-.035em}
.public-hero p{max-width:720px;font-size:1.08rem;color:#697a8d}
.feature-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.48rem .75rem;border-radius:999px;background:#fff;border:1px solid #eceef1;color:#697a8d;font-size:.8rem;box-shadow:0 2px 5px rgba(67,89,113,.05)}
.section-title{color:var(--heading);font-weight:800}
.course-price{font-size:1.1rem;color:var(--heading);font-weight:800}

/* login/setup */
.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 10% 10%,rgba(105,108,255,.18),transparent 28%),var(--bg)}
.auth-card{width:min(100%,455px)}
.auth-logo{display:flex;align-items:center;justify-content:center;gap:.7rem;text-decoration:none;color:var(--heading);font-weight:800;font-size:1.25rem;margin-bottom:1.4rem}
.setup-shell{max-width:900px;margin:auto}
.setup-step{display:flex;align-items:center;gap:.75rem;padding:.85rem;border-radius:12px;background:#fafaff;border:1px solid #eceeff}
.setup-step .n{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:#fff;font-weight:700}

/* responsive */
.mobile-menu-btn{display:none}
@media(max-width:991.98px){
  .layout-menu{transform:translateX(-102%);transition:.2s ease;box-shadow:0 .5rem 2rem rgba(67,89,113,.2)}
  body.menu-open .layout-menu{transform:translateX(0)}
  .layout-page{margin-left:0;width:100%}
  .layout-navbar{margin:10px 12px 0;top:8px}
  .content-wrapper{padding:16px 12px 24px}
  .mobile-menu-btn{display:inline-flex}
  body.menu-open:after{content:"";position:fixed;inset:0;background:rgba(67,89,113,.38);z-index:1035}
  .layout-menu{z-index:1045}
}
@media(max-width:575.98px){
  .card-body{padding:1.15rem}
  .page-heading{align-items:flex-start;flex-direction:column}
  .public-hero{padding:52px 0 40px}
  .course-cover{height:155px}
}
