/* ROULEO Cameroon UI — global visual layer
   Subtle national identity without replacing the blue ROULEO brand. */
:root{--cm-green:#007a5e;--cm-red:#ce1126;--cm-yellow:#fcd116;--cm-ink:#12243a;--cm-blue:#1e5eff}
.rouleo-cameroon-ribbon{height:3px;display:flex;width:100%;overflow:hidden;position:relative;z-index:1039;box-shadow:0 1px 5px rgba(18,36,58,.12)}
.rouleo-cameroon-ribbon span{flex:1}.rouleo-cameroon-ribbon span:nth-child(1){background:var(--cm-green)}.rouleo-cameroon-ribbon span:nth-child(2){background:var(--cm-red)}.rouleo-cameroon-ribbon span:nth-child(3){background:var(--cm-yellow)}
/* Shared motion language */
@keyframes rouleoRise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes rouleoPulse{0%,100%{box-shadow:0 0 0 0 rgba(0,122,94,.10)}50%{box-shadow:0 0 0 7px rgba(0,122,94,0)}}
.card,.kpi-card,.learner-course-card,.learner-lesson-card,.dsmls-feature-card{animation:rouleoRise .42s ease both}
/* Make ordinary platform dashboards feel designed, not generic Bootstrap */
.kpi-card{position:relative;border:1px solid #dfe7ec;border-radius:18px!important;background:linear-gradient(145deg,#fff,#f8fbfd)!important;box-shadow:0 9px 26px rgba(18,36,58,.07)!important;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.kpi-card:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--cm-green) 0 33.33%,var(--cm-red) 33.33% 66.66%,var(--cm-yellow) 66.66%);opacity:.9}
.kpi-card:hover{transform:translateY(-4px)!important;box-shadow:0 16px 35px rgba(18,36,58,.12)!important;border-color:#cfdde5}
.kpi-card .kpi-icon{border-radius:13px!important;background:#edf4ff!important;color:var(--cm-blue)!important}
.kpi-card:nth-child(3n+2) .kpi-icon{background:#eaf7f2!important;color:var(--cm-green)!important}.kpi-card:nth-child(3n) .kpi-icon{background:#fff3f4!important;color:var(--cm-red)!important}
/* Tables / cards */
.table{border-radius:15px;overflow:hidden}.table thead th{letter-spacing:.03em}.btn{border-radius:10px}
/* Learner course catalogue */
.learner-course-card{position:relative;overflow:hidden;padding:1.25rem;border:1px solid #dfe7ec;border-radius:22px;background:linear-gradient(150deg,#fff 0%,#f8fbfd 100%);box-shadow:0 10px 30px rgba(17,35,55,.07);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;display:flex;flex-direction:column}
.learner-course-card:before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--cm-green) 0 33%,var(--cm-red) 33% 66%,var(--cm-yellow) 66%);transform-origin:left;transition:height .2s ease}
.learner-course-card:hover{transform:translateY(-6px);box-shadow:0 18px 42px rgba(17,35,55,.13);border-color:#cddbe5}.learner-course-card:hover:before{height:7px}
.learner-course-top{display:flex;justify-content:space-between;align-items:center}.learner-course-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;font-size:1.25rem;background:#eaf3ff;color:var(--cm-blue);box-shadow:inset 0 0 0 1px rgba(30,94,255,.08)}
.learner-course-card-2 .learner-course-icon{background:#eaf7f2;color:var(--cm-green)}.learner-course-card-3 .learner-course-icon{background:#fff1f2;color:var(--cm-red)}.learner-course-card-4 .learner-course-icon{background:#fff8df;color:#a57c00}
.learner-course-number{font-weight:900;font-size:2.2rem;line-height:1;color:#d8e1e7;letter-spacing:-.06em}.learner-course-chip{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-top:1rem;font-size:.64rem;color:#607080;font-weight:800;letter-spacing:.04em}.learner-course-chip strong{font-size:.78rem;color:var(--cm-blue);background:#edf4ff;padding:.28rem .5rem;border-radius:999px}.learner-course-card h2{font-size:1.2rem;font-weight:850;letter-spacing:-.02em;color:var(--cm-ink);margin:.65rem 0 .5rem}.learner-course-card p{font-size:.82rem;line-height:1.6;color:#6b7a88;min-height:66px;margin-bottom:1rem}.learner-course-meta{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.66rem;color:#778795;margin-top:auto}.learner-course-meta i{color:var(--cm-green)}.learner-course-progress{height:7px;background:#e9eff2;border-radius:99px;overflow:hidden;margin:1rem 0}.learner-course-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cm-blue),#44a8ff);transition:width .6s ease}.learner-course-btn{display:flex;justify-content:space-between;align-items:center;text-decoration:none;font-weight:800;font-size:.78rem;color:#fff;background:linear-gradient(135deg,#1e5eff,#1646c8);padding:.72rem .85rem;border-radius:11px;box-shadow:0 8px 18px rgba(30,94,255,.2);transition:transform .18s ease,box-shadow .18s ease}.learner-course-btn:hover{color:#fff;transform:translateY(-2px);box-shadow:0 12px 24px rgba(30,94,255,.27)}
/* Rich lesson reading */
.learner-lesson-card{max-width:1100px;margin-inline:auto;border:1px solid #dfe7ec;border-radius:26px;background:#fff;box-shadow:0 16px 45px rgba(17,35,55,.08);overflow:hidden}.learner-lesson-head{position:relative;padding:2rem 2.1rem 1.6rem;background:linear-gradient(135deg,#f7fbff,#f8fcfa);border-bottom:1px solid #e5ecef;display:flex;justify-content:space-between;gap:1.5rem}.learner-lesson-head:after{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--cm-green) 0 33%,var(--cm-red) 33% 66%,var(--cm-yellow) 66%)}.learner-cameroon-chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.65rem;font-weight:900;letter-spacing:.06em;color:var(--cm-green);background:#eaf7f2;border:1px solid #cde9dd;border-radius:999px;padding:.38rem .62rem}.learner-lesson-head h1{font-size:clamp(1.8rem,4vw,2.7rem);font-weight:900;letter-spacing:-.04em;color:var(--cm-ink);margin:.4rem 0}.learner-lesson-head p{max-width:760px;color:#6c7a86;margin:0;line-height:1.6}.learner-lesson-emblem{width:72px;height:72px;flex:0 0 72px;border-radius:22px;display:grid;place-items:center;background:#102b45;color:#fff;font-size:1.65rem;box-shadow:0 12px 24px rgba(16,43,69,.16);animation:rouleoPulse 2.8s ease-in-out infinite}.learner-lesson-body{padding:1.8rem 2.1rem 2.1rem}.learner-lesson-meta{display:flex;flex-wrap:wrap;gap:.65rem;margin-bottom:1.5rem}.learner-lesson-meta span{display:inline-flex;align-items:center;gap:.4rem;padding:.42rem .62rem;border:1px solid #e0e8ec;border-radius:999px;background:#f8fafb;color:#687987;font-size:.68rem;font-weight:800}.learner-lesson-meta i{color:var(--cm-green)}.learner-lesson-content{font-size:1rem;line-height:1.95;color:#405366;max-width:900px}.learner-lesson-content::first-letter{font-size:1.5em;font-weight:800;color:var(--cm-green)}.learner-lesson-tip{display:flex;gap:.8rem;align-items:flex-start;margin:1.5rem 0;padding:1rem 1.1rem;border-radius:16px;background:linear-gradient(135deg,#fff8df,#fff);border:1px solid #f1e2a7}.learner-lesson-tip>i{color:#a67c00;font-size:1.15rem}.learner-lesson-tip strong,.learner-lesson-tip span{display:block}.learner-lesson-tip span{font-size:.78rem;color:#766d51;margin-top:.15rem}
/* Existing reading view */
.code-reading-shell .code-reading-head{position:relative;overflow:hidden}.code-reading-shell .code-reading-head:before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--cm-green) 0 33%,var(--cm-red) 33% 66%,var(--cm-yellow) 66%)}.code-reading-shell .lesson-visual-card{background:linear-gradient(135deg,#102b45,#0d5260);position:relative;overflow:hidden}.code-reading-shell .lesson-visual-card:after{content:"🇨🇲";position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:2.2rem;opacity:.18}
@media(max-width:767.98px){.learner-course-card{border-radius:18px}.learner-lesson-head{padding:1.55rem 1.2rem 1.3rem;flex-direction:column}.learner-lesson-emblem{width:58px;height:58px;flex-basis:58px}.learner-lesson-body{padding:1.35rem 1.2rem 1.5rem}.learner-course-card p{min-height:auto}.rouleo-cameroon-ribbon{height:2px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.dashboard-title-cameroon{position:relative;padding:.2rem 0 .8rem;font-weight:900;color:var(--cm-ink);letter-spacing:-.03em}.dashboard-title-cameroon:after{content:"";display:block;width:74px;height:4px;margin-top:.65rem;border-radius:99px;background:linear-gradient(90deg,var(--cm-green) 0 33%,var(--cm-red) 33% 66%,var(--cm-yellow) 66%)}.dashboard-title-cameroon span{display:block;font-size:.62rem;letter-spacing:.16em;color:var(--cm-green);margin-bottom:.25rem}
/* Tiny national cues on major platform panels */
.super-admin-dashboard .card,.super-admin-dashboard .table-responsive{border-radius:18px}.super-admin-dashboard .card{border-color:#e1e8ed!important;box-shadow:0 8px 24px rgba(18,36,58,.055)}.super-admin-dashboard .table thead th{background:#f4f8f8;border-bottom:2px solid #dfe7e9}
