@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Space+Grotesk:wght@500;600;700&display=swap');
:root{--blue:#1769ff;--indigo:#6748ff;--cyan:#00c8ff;--ink:#101828;--muted:#667085;--bg:#f5f8ff;--line:#e6ebf5;--card:rgba(255,255,255,.82);--shadow:0 22px 65px rgba(24,48,94,.11);--radius:26px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--ink);background:radial-gradient(circle at 5% 8%,rgba(103,72,255,.10),transparent 23%),radial-gradient(circle at 95% 20%,rgba(0,200,255,.10),transparent 24%),var(--bg);overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-2;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.65) 50%,transparent 60%);background-size:220% 220%;animation:sweep 14s ease-in-out infinite}@keyframes sweep{0%,100%{background-position:0 0;opacity:.25}50%{background-position:100% 100%;opacity:.7}}
a{color:inherit;text-decoration:none}.container{width:min(1220px,92%);margin:auto}.topbar{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.74);backdrop-filter:blur(20px);border-bottom:1px solid rgba(220,228,241,.8);box-shadow:0 8px 35px rgba(16,24,40,.06)}.nav{min-height:82px;display:flex;align-items:center;gap:22px}.brand{display:flex;align-items:center;flex:0 0 auto;transition:.35s}.brand:hover{transform:translateY(-2px) scale(1.03);filter:drop-shadow(0 12px 22px rgba(23,105,255,.22))}.brand img{height:58px;width:auto;display:block}.links{margin-left:auto;display:flex;align-items:center;gap:4px;flex-wrap:nowrap;white-space:nowrap}.links a{font-weight:700;font-size:13px;padding:10px 11px;border-radius:12px;transition:transform .25s,background .25s,color .25s,box-shadow .25s}.links a:hover{transform:translateY(-2px);background:rgba(23,105,255,.07);color:var(--blue)}.links .cart{font-size:24px;padding:9px 11px}.links .cart:hover{transform:translateY(-2px) scale(1.12)}.pill,.admin-link,.btn{position:relative;overflow:hidden;color:#fff!important;background:linear-gradient(120deg,var(--blue),var(--indigo),var(--cyan));background-size:220% 220%;box-shadow:0 12px 28px rgba(40,76,205,.22);animation:gradient 6s ease infinite}.pill,.admin-link{padding:12px 17px!important}.admin-link{box-shadow:0 0 0 1px rgba(255,255,255,.2) inset,0 12px 30px rgba(103,72,255,.24)!important}.menu{display:none;margin-left:auto;border:0;background:rgba(23,105,255,.08);border-radius:12px;padding:10px 13px;font-size:24px;color:var(--ink)}@keyframes gradient{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}
.hero{position:relative;isolation:isolate;overflow:hidden;padding:92px 0 78px;background:radial-gradient(circle at 80% 18%,rgba(103,72,255,.20),transparent 31%),radial-gradient(circle at 15% 80%,rgba(0,200,255,.13),transparent 30%),linear-gradient(135deg,#fff,#eef4ff)}.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;pointer-events:none;z-index:-1;filter:blur(2px)}.hero:before{width:340px;height:340px;right:-110px;top:-120px;background:radial-gradient(circle,rgba(0,200,255,.32),transparent 68%);animation:float 9s ease-in-out infinite}.hero:after{width:300px;height:300px;left:-150px;bottom:-150px;background:radial-gradient(circle,rgba(103,72,255,.25),transparent 68%);animation:float 11s ease-in-out infinite reverse}@keyframes float{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(25px,-20px,0) scale(1.08)}}.hero-grid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(420px,.96fr);align-items:center;gap:62px}.hero-grid>div:first-child{animation:reveal .8s ease both}.hero-grid>div:last-child{animation:reveal 1s .12s ease both}@keyframes reveal{from{opacity:0;transform:translateY(24px) scale(.985)}to{opacity:1;transform:none}}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;color:#5143c7;background:rgba(103,72,255,.09);box-shadow:0 0 0 1px rgba(103,72,255,.12) inset;font-weight:800;text-transform:uppercase;letter-spacing:1.6px;font-size:12px;animation:pulse 3.5s ease-in-out infinite}@keyframes pulse{50%{box-shadow:0 0 0 1px rgba(103,72,255,.18) inset,0 0 30px rgba(103,72,255,.12)}}.hero h1{font-family:'Space Grotesk',Inter,sans-serif;font-size:clamp(44px,6.2vw,76px);line-height:1.01;letter-spacing:-2.8px;margin:17px 0 20px;text-shadow:0 16px 35px rgba(16,24,40,.08)}.hero p{max-width:700px;font-size:18px;line-height:1.8;color:#5d687a}.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:27px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 19px;border-radius:14px;font-weight:800;border:0;cursor:pointer;transition:transform .28s,box-shadow .28s}.btn:hover{transform:translateY(-4px) scale(1.025);box-shadow:0 20px 40px rgba(43,91,220,.28)}.btn.alt{background:rgba(255,255,255,.9);color:#20304a!important;border:1px solid #dce4f0;box-shadow:0 10px 25px rgba(24,48,94,.07)}.btn:after{content:"";position:absolute;top:-35%;left:-75%;width:35%;height:170%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);transform:skewX(-18deg);animation:shine 5s ease-in-out infinite}@keyframes shine{0%,55%{left:-75%}70%,100%{left:140%}}.hero-video{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:32px;border:1px solid rgba(255,255,255,.75);background:#0c1220;box-shadow:0 35px 85px rgba(28,51,96,.24),0 0 0 1px rgba(103,72,255,.08);transform:perspective(1300px) rotateY(-3deg) rotateX(1deg);transition:.5s}.hero-video:hover{transform:perspective(1300px) rotateY(0) rotateX(0) scale(1.025);box-shadow:0 40px 100px rgba(28,51,96,.31),0 0 50px rgba(0,200,255,.13)}
.section{position:relative;padding:78px 0}.section h1,.section h2{font-family:'Space Grotesk',Inter,sans-serif;letter-spacing:-1px}.section h1{font-size:clamp(36px,5vw,58px);margin:0 0 12px}.section h2{font-size:36px;margin:0 0 10px}.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.hero-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:34px}.card{position:relative;overflow:hidden;background:var(--card);backdrop-filter:blur(16px);border:1px solid rgba(218,226,240,.9);border-radius:var(--radius);padding:25px;box-shadow:var(--shadow);transition:transform .42s cubic-bezier(.2,.8,.2,1),box-shadow .42s,border-color .42s;transform-style:preserve-3d}.card:before{content:"";position:absolute;inset:-1px;background:radial-gradient(circle at var(--mx,50%) var(--my,0%),rgba(0,200,255,.16),transparent 31%);opacity:0;transition:.3s;pointer-events:none}.card:hover{transform:translateY(-11px) scale(1.018);box-shadow:0 32px 78px rgba(24,48,94,.17),0 0 38px rgba(23,105,255,.08);border-color:rgba(103,72,255,.25)}.card:hover:before{opacity:1}.card>*{position:relative;z-index:1}.card img{width:100%;height:180px;object-fit:cover;border-radius:19px}.icon{font-size:36px;filter:drop-shadow(0 9px 15px rgba(23,105,255,.18));transition:.35s}.card:hover .icon{transform:translateY(-4px) scale(1.12) rotate(-3deg)}.stat{font-size:2rem;font-weight:800}.badge{display:inline-block;padding:6px 10px;border-radius:99px;background:#edf2ff;color:#3d4bc7;font-size:12px;font-weight:800;box-shadow:0 5px 14px rgba(61,75,199,.10)}.progress{height:10px;background:#e9eef5;border-radius:99px;overflow:hidden;margin:12px 0}.progress span{display:block;height:100%;background:linear-gradient(90deg,#5b7cff,#00bfa6);border-radius:99px}.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.form{max-width:780px;margin:auto;background:rgba(255,255,255,.84);backdrop-filter:blur(16px);padding:32px;border:1px solid rgba(218,226,240,.9);border-radius:28px;box-shadow:0 28px 75px rgba(24,48,94,.13);animation:reveal .6s ease both}label{display:block;font-weight:700;margin:13px 0 7px}input,textarea,select{width:100%;padding:14px 15px;border:1px solid #dbe3ef;border-radius:13px;font:inherit;background:rgba(255,255,255,.92);transition:.22s}textarea{min-height:125px}input:focus,textarea:focus,select:focus{outline:none;border-color:#7190ff;box-shadow:0 0 0 4px rgba(23,105,255,.09),0 0 22px rgba(23,105,255,.08);transform:translateY(-1px)}.flash{margin:18px 0;padding:14px 18px;border-radius:14px;background:#e9f7ee}.flash.error{background:#feecec;color:#a11}.tablewrap{overflow:auto;background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 55px rgba(24,48,94,.09)}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:14px;border-bottom:1px solid #edf0f4;text-align:left;white-space:nowrap}.table tr{transition:.2s}.table tr:hover{background:#f7f9ff}.question{padding:19px;border:1px solid #e5e9f0;border-radius:17px;margin:12px 0;background:#fbfcfe}.choice{display:block;padding:7px}.video{width:100%;border-radius:20px;background:#000;box-shadow:0 20px 55px rgba(0,0,0,.16)}.adminbar{position:sticky;top:82px;z-index:80;background:linear-gradient(100deg,#0b1730,#182b5b 45%,#263b78);color:#fff;padding:12px 0;box-shadow:0 12px 32px rgba(16,24,40,.18)}.adminnav{display:flex;gap:7px;align-items:center;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.adminnav a{padding:10px 14px;border-radius:10px;white-space:nowrap;transition:.25s}.adminnav a:hover{background:rgba(255,255,255,.1);transform:translateY(-2px)}footer{background:linear-gradient(135deg,#071326,#101d39);color:#d7deea;margin-top:70px}.footergrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:30px;padding:52px 0}.flogo{height:48px}.footergrid a{display:block;margin:9px 0;color:#aebbd0;transition:.22s}.footergrid a:hover{transform:translateX(5px);color:#fff}.small{font-size:13px}.danger{color:#b42318}.success{color:#067647}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:1080px){.links{gap:1px}.links a{font-size:12px;padding:9px 7px}.hero-grid{gap:35px}.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.nav{min-height:74px}.brand img{height:52px}.menu{display:block}.links{display:none}.links.open{display:flex;position:absolute;left:4%;right:4%;top:74px;background:rgba(255,255,255,.97);backdrop-filter:blur(20px);padding:18px;border-radius:20px;box-shadow:0 25px 60px rgba(16,24,40,.16);flex-direction:column;align-items:stretch;max-height:calc(100vh - 90px);overflow:auto}.links.open a{text-align:center}.hero-grid,.grid,.hero-cards,.split{grid-template-columns:1fr}.hero-grid>div:last-child{max-width:780px;margin:auto}.hero-video{transform:none}.adminbar{top:74px}.footergrid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.container{width:min(94%,1220px)}.brand img{height:47px}.hero{padding:58px 0 52px}.hero h1{font-size:43px;letter-spacing:-1.8px}.hero p{font-size:16px}.section{padding:52px 0}.grid4,.footergrid{grid-template-columns:1fr}.hero-video{aspect-ratio:9/16;max-height:570px}.actions .btn{flex:1}.adminbar{top:74px}.adminnav{gap:4px}.adminnav a{font-size:12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}

.dashboard-hero{background:radial-gradient(circle at 85% 5%,rgba(103,72,255,.12),transparent 28%),radial-gradient(circle at 10% 20%,rgba(0,200,255,.08),transparent 25%)}
.dashboard-head{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:30px}.dashboard-head h1{margin-top:14px}.streak-card{display:flex;align-items:center;gap:12px;padding:15px 18px;border-radius:18px;background:rgba(255,255,255,.78);border:1px solid rgba(218,226,240,.9);box-shadow:var(--shadow);min-width:270px}.streak-card>span{font-size:30px}.streak-card small,.upcoming-item small,.plan-item small,.achievement-list small{display:block;color:var(--muted);margin-top:4px}.dashboard-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:22px}.stat-card{display:flex;align-items:center;gap:15px;padding:20px}.stat-icon{font-size:30px}.stat-card strong{display:block;font-size:30px;line-height:1.15;margin-top:4px}.stat-card .progress{width:150px;margin:8px 0 0}.dashboard-main{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.85fr);gap:22px}.section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:18px}.section-title h2{margin:8px 0 0}.section-title>a{font-weight:800;color:var(--blue);white-space:nowrap}.course-list{display:grid;gap:12px}.course-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px;border:1px solid #e8edf5;border-radius:17px;background:rgba(249,251,255,.8)}.course-row h3{margin:8px 0}.course-row .progress{max-width:500px}.upcoming-item,.plan-item{display:flex;gap:13px;align-items:center;padding:13px 0;border-bottom:1px solid #edf0f4}.upcoming-item:last-child,.plan-item:last-child{border-bottom:0}.date-chip{min-width:52px;text-align:center;padding:9px 6px;border-radius:12px;background:#edf2ff;color:#3d4bc7;font-weight:800}.achievement-list{display:grid;gap:12px;margin-top:15px}.achievement-list>div{padding:12px;border-radius:14px;background:#f7f9ff}.planner-card{margin-top:22px}.plan-item>span{font-size:22px}.small{font-size:13px}
@media(max-width:1080px){.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-main{grid-template-columns:1fr}}
@media(max-width:650px){.dashboard-head{display:block}.streak-card{margin-top:18px;min-width:0}.dashboard-stats{grid-template-columns:1fr}.course-row{align-items:flex-start;flex-direction:column}.course-row .btn{width:100%}.stat-card .progress{width:100%}}

/* Student portal navigation refresh */
.student-links{gap:5px;min-width:0;overflow:visible}
.student-links a{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 10px;font-size:12px;border:1px solid transparent}
.student-links a span{font-size:15px;line-height:1}
.student-links a b{font-weight:800}
.student-links .student-home{background:rgba(23,105,255,.08);color:var(--blue)}
.student-links .student-admin{margin-left:3px;color:#fff!important;background:linear-gradient(120deg,#6748ff,#1769ff);box-shadow:0 8px 22px rgba(103,72,255,.18);padding:10px 13px}
.student-links .student-user{max-width:170px;background:rgba(255,255,255,.82);border:1px solid #dfe6f2;box-shadow:0 7px 18px rgba(24,48,94,.07);overflow:hidden}
.student-links .student-user b{max-width:105px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.student-links .student-logout{color:#b42318;background:rgba(255,245,245,.9);border-color:#f2d3d0}
.student-links a:hover{transform:translateY(-1px);background:rgba(23,105,255,.08);color:var(--blue)}
.student-links .student-admin:hover{background:linear-gradient(120deg,#6748ff,#1769ff);color:#fff}
.student-links .student-logout:hover{background:#fff1f0;color:#b42318}
@media(max-width:1180px){.nav{gap:14px}.brand img{height:52px}.student-links{gap:2px}.student-links a{padding:8px 7px;font-size:11px}.student-links a span{font-size:14px}.student-links .student-user{max-width:125px}.student-links .student-user b{max-width:72px}}
@media(max-width:900px){.student-links{position:absolute;left:4%;right:4%;top:76px;margin:0;display:none;flex-direction:column;align-items:stretch;gap:6px;padding:12px;background:rgba(255,255,255,.97);border:1px solid #e2e8f2;border-radius:20px;box-shadow:0 25px 55px rgba(16,24,40,.15);backdrop-filter:blur(20px);max-height:calc(100vh - 92px);overflow:auto}.student-links.open{display:flex}.student-links a{justify-content:flex-start;padding:12px 14px;font-size:13px}.student-links .student-admin{margin-left:0}.student-links .student-user{max-width:none}.student-links .student-user b{max-width:none}.menu{display:block}}

.phase2nav{position:sticky;top:82px;z-index:75;background:rgba(7,19,38,.96);backdrop-filter:blur(14px);color:#fff;box-shadow:0 12px 30px rgba(16,24,40,.15)}.phase2nav-inner{display:flex;gap:7px;overflow:auto}.phase2nav a{padding:11px 15px;border-radius:10px;white-space:nowrap;font-weight:800;font-size:13px;transition:.25s}.phase2nav a:hover{background:rgba(255,255,255,.1);transform:translateY(-2px)}
.exam-hero{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:25px;align-items:center;padding:42px;border-radius:32px;background:radial-gradient(circle at 80% 20%,rgba(0,200,255,.2),transparent 28%),linear-gradient(135deg,#08162e,#1b2f63 58%,#352f79);color:#fff;box-shadow:0 30px 75px rgba(10,30,75,.23);overflow:hidden;position:relative}.exam-hero h1{font-family:'Space Grotesk',Inter,sans-serif;font-size:clamp(38px,5vw,64px);margin:15px 0 10px;letter-spacing:-2px}.exam-hero p{max-width:700px;color:#cbd7ee;line-height:1.75}.exam-hero-orb{width:150px;height:150px;border-radius:50%;display:grid;place-items:center;font-size:62px;background:radial-gradient(circle at 35% 30%,#fff,rgba(255,255,255,.16) 14%,rgba(0,200,255,.18) 50%,rgba(103,72,255,.08));box-shadow:0 0 70px rgba(0,200,255,.22);animation:float 6s ease-in-out infinite}.exam-toolbar{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:26px 0}.exam-filters{display:flex;gap:8px;flex-wrap:wrap}.exam-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.exam-card{min-height:330px;display:flex;flex-direction:column}.exam-card h2{font-family:'Space Grotesk',Inter,sans-serif;margin:18px 0 8px}.exam-card .btn{margin-top:auto}.exam-card-top{display:flex;justify-content:space-between;gap:8px}.mock-badge{padding:6px 10px;border-radius:99px;background:#fff1d6;color:#9a5a00;font-size:11px;font-weight:900}.exam-meta{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0;color:#5f6b7e;font-size:13px}.last-score{margin:12px 0;padding:11px 13px;border-radius:13px;background:#f4f7ff;display:flex;justify-content:space-between;gap:10px}.last-score small{color:#667085}.disabled-btn{opacity:.5;pointer-events:none}.empty-state{text-align:center;padding:60px}.exam-topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.exam-topbar h1{margin:12px 0 5px}.timer-box{min-width:150px;padding:18px;border-radius:20px;text-align:center;background:#08162e;color:#fff;box-shadow:0 18px 40px rgba(10,30,75,.22)}.timer-box small{display:block;color:#9fb0d0;font-weight:800;letter-spacing:1.4px}.timer-box strong{display:block;font:800 36px 'Space Grotesk',sans-serif;margin-top:5px}.danger-timer{color:#ff6b6b!important;animation:pulse 1s infinite}.exam-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}.exam-questions{display:grid;gap:16px}.exam-question{padding:26px}.question-number{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:1.2px;color:#5d6ee6}.exam-question h2{font-size:22px;line-height:1.5;margin:10px 0 20px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.exam-choice{margin:0!important;display:flex;cursor:pointer}.exam-choice input{position:absolute;opacity:0;pointer-events:none}.exam-choice span{display:flex;gap:12px;align-items:flex-start;width:100%;padding:16px;border:1px solid #dce4ef;border-radius:15px;background:#fff;transition:.22s}.exam-choice span b{min-width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#edf2ff;color:#3d4bc7}.exam-choice input:checked+span{border-color:#5b7cff;background:#f3f6ff;box-shadow:0 0 0 3px rgba(91,124,255,.09);transform:translateY(-2px)}.question-foot{display:flex;justify-content:space-between;gap:12px;margin-top:16px;color:#667085;font-size:12px}.exam-sidebar{position:sticky;top:150px}.palette{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:15px 0 20px}.palette-btn{display:grid;place-items:center;height:38px;border:1px solid #dce4ef;border-radius:10px;background:#fff;font-weight:800}.palette-btn:hover,.palette-btn.answered{background:#eaf1ff;border-color:#7190ff;color:#3049c7}.exam-rules{padding:14px;border-radius:14px;background:#f7f9ff;color:#667085;font-size:13px;line-height:1.55}.submit-exam{width:100%;margin-top:18px}.result-hero{display:grid;grid-template-columns:180px minmax(0,1fr);gap:30px;align-items:center;background:linear-gradient(135deg,#08162e,#1b2f63);color:#fff}.result-hero .muted{color:#cbd7ee}.result-ring{width:160px;height:160px;border-radius:50%;display:grid;place-items:center;align-content:center;background:radial-gradient(circle at center,#162b55 58%,transparent 59%),conic-gradient(#35d0b0 0deg,#5b7cff 240deg,#283d6f 240deg);box-shadow:0 0 50px rgba(0,200,255,.16)}.result-ring span{font:800 36px 'Space Grotesk',sans-serif}.result-ring small{font-weight:900;letter-spacing:1px}.result-stats{display:flex;gap:35px;margin-top:22px}.result-stats b{display:block;font:800 25px 'Space Grotesk',sans-serif}.result-stats small{color:#aebbd0}.result-list{display:grid;gap:15px}.result-question{border-left:5px solid #ff8b8b}.result-question.correct{border-left-color:#20b486}.solution{margin-top:14px;padding:13px;border-radius:13px;background:#f5f8ff}.analytics-row{display:grid;grid-template-columns:170px 1fr 65px;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #edf0f4}.analytics-row small{display:block;color:#667085;margin-top:4px}.analytics-bar{height:11px;background:#e8edf5;border-radius:99px;overflow:hidden}.analytics-bar span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#5b7cff,#00bfa6)}.recommendation{display:flex;gap:12px;padding:15px;margin-top:13px;border-radius:16px;background:#f7f9ff}.recommendation>span{font-size:25px}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.check-grid label{margin:0;padding:13px;border:1px solid #dce4ef;border-radius:13px;background:#f9fbff}.check-grid input{width:auto;margin-right:8px}.phase2-highlight{margin-top:22px;background:linear-gradient(135deg,rgba(8,22,46,.98),rgba(43,47,121,.95));color:#fff;border-color:rgba(255,255,255,.12)}.phase2-highlight .muted{color:#cbd7ee}.phase2-highlight .btn.alt{color:#20304a!important}
@media(max-width:900px){.exam-grid{grid-template-columns:1fr 1fr}.exam-layout{grid-template-columns:1fr}.exam-sidebar{position:static}.result-hero{grid-template-columns:1fr;text-align:center}.result-ring{margin:auto}.result-stats{justify-content:center}.exam-hero{grid-template-columns:1fr}.exam-hero-orb{display:none}}@media(max-width:620px){.exam-grid{grid-template-columns:1fr}.exam-toolbar{display:block}.exam-filters{margin-top:10px}.exam-topbar{align-items:flex-start;flex-direction:column}.timer-box{width:100%}.choice-grid,.check-grid{grid-template-columns:1fr}.analytics-row{grid-template-columns:1fr}.analytics-bar{order:3}.result-stats{gap:18px;flex-wrap:wrap}}
.phase3nav{position:sticky;top:122px;z-index:70;background:rgba(20,34,62,.97);color:#fff;box-shadow:0 12px 30px rgba(16,24,40,.12)}.phase3nav-inner{display:flex;gap:7px;overflow:auto}.phase3nav a{padding:11px 15px;border-radius:10px;white-space:nowrap;font-weight:800;font-size:13px;transition:.25s}.phase3nav a:hover{background:rgba(255,255,255,.1);transform:translateY(-2px)}.ai-hero{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:25px;align-items:center;padding:44px;border-radius:32px;background:radial-gradient(circle at 78% 20%,rgba(0,200,255,.22),transparent 28%),linear-gradient(135deg,#07152d,#253b73 60%,#56367e);color:#fff;box-shadow:0 30px 75px rgba(10,30,75,.2)}.ai-hero h1{font:800 clamp(40px,5vw,65px) 'Space Grotesk',sans-serif;letter-spacing:-2px;margin:15px 0}.ai-hero p{color:#d2dcf1;max-width:720px;line-height:1.7}.ai-orb{width:150px;height:150px;border-radius:50%;display:grid;place-items:center;font-size:70px;background:radial-gradient(circle at 35% 30%,#fff,rgba(255,255,255,.12) 16%,rgba(0,200,255,.18) 52%,rgba(103,72,255,.1));box-shadow:0 0 80px rgba(0,200,255,.24);animation:float 6s ease-in-out infinite}.ai-suggestions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.ai-suggestions button{border:1px solid #dce4ef;background:#f7f9ff;border-radius:99px;padding:9px 12px;cursor:pointer;font-weight:700}.chat-bubble{padding:14px 16px;border-radius:16px;margin:10px 0;background:#f5f8ff}.chat-bubble.user{background:#edf5ff;border-left:4px solid #5b7cff}.chat-bubble.assistant{background:#f4fbf8;border-left:4px solid #20b486}.chat-bubble p{margin:7px 0;line-height:1.65}.chat-bubble small{color:#667085}.doubt-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid #edf0f4}.doubt-row small{display:block;color:#667085;margin-top:4px}.doubt-detail{max-width:900px;margin:25px auto}.doubt-question{padding:18px;border-radius:16px;background:#f7f9ff;margin:20px 0}.reply-bubble{padding:16px;border-radius:16px;background:#eefbf6;margin:12px 0;border-left:4px solid #20b486}.recommendation-card{min-height:220px}.recommendation-card .btn{margin-top:auto}.recommendation-card{display:flex;flex-direction:column}.dashboard-stats{margin-top:18px}.dashboard-stats>div{padding:10px;border-radius:12px;background:#f7f9ff}.dashboard-stats b{font:800 24px 'Space Grotesk',sans-serif;display:block}.dashboard-stats small{color:#667085}.phase3nav+section{padding-top:52px}@media(max-width:900px){.ai-hero{grid-template-columns:1fr}.ai-orb{display:none}.phase3nav{top:82px}}@media(max-width:620px){.phase3nav a{font-size:12px}.doubt-row{align-items:flex-start;flex-direction:column}}

/* Phase 3.1: cleaner public navigation + combined Admission/Let's Talk */
.public-links{gap:7px}
.public-links .admission-talk-link{font-weight:800;background:rgba(23,105,255,.045)}
.login-dropdown{position:relative;flex:0 0 auto}
.login-menu-trigger{border:0;cursor:pointer;font:700 13px Inter,Arial,sans-serif;color:#fff;padding:12px 18px;border-radius:12px;background:linear-gradient(120deg,var(--blue),var(--indigo),var(--cyan));background-size:220% 220%;box-shadow:0 12px 28px rgba(40,76,205,.22);animation:gradient 6s ease infinite;display:inline-flex;align-items:center;gap:7px}
.login-menu-trigger span{font-size:15px;line-height:1;transition:transform .2s}
.login-dropdown.open .login-menu-trigger span{transform:rotate(180deg)}
.login-menu{position:absolute;right:0;top:calc(100% + 12px);width:220px;padding:8px;border:1px solid #e2e8f2;border-radius:18px;background:rgba(255,255,255,.97);backdrop-filter:blur(18px);box-shadow:0 22px 55px rgba(16,24,40,.16);opacity:0;visibility:hidden;transform:translateY(-7px);transition:.2s ease;z-index:120}
.login-dropdown.open .login-menu{opacity:1;visibility:visible;transform:translateY(0)}
.login-menu a{display:flex!important;align-items:center!important;gap:11px!important;width:100%;padding:11px 12px!important;border-radius:12px!important;color:var(--ink)!important;background:transparent!important;transform:none!important}
.login-menu a:hover{background:#f3f6ff!important;color:var(--blue)!important}
.login-menu a>span{font-size:20px;line-height:1}
.login-menu a div{display:flex;flex-direction:column;gap:2px;text-align:left}
.login-menu a b{font-size:13px}
.login-menu a small{font-size:10px;color:var(--muted);font-weight:600}
.public-links .cart{order:20;margin-left:1px}
.public-links .admin-link{order:19}
.public-links .login-dropdown{order:18}
.public-links .admission-talk-link{order:17}
.admission-talk-page{padding-top:72px}
.admission-talk-head{margin-bottom:30px}
.admission-talk-head h1{margin-bottom:8px}
.admission-talk-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:24px;align-items:start}
.admission-card,.talk-card{padding:30px}
.admission-card h2,.talk-card h2{margin:14px 0 8px;font-family:'Space Grotesk',Inter,sans-serif}
.compact-form{margin-top:20px;gap:10px}
.compact-form label{margin-top:4px}
.form-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-two>div{display:flex;flex-direction:column}
.talk-card{background:linear-gradient(145deg,rgba(8,22,46,.98),rgba(43,47,121,.96));color:#fff;border-color:rgba(255,255,255,.12);box-shadow:0 30px 75px rgba(10,30,75,.2)}
.talk-card .muted{color:#cbd7ee}
.talk-card .form input,.talk-card .form textarea{background:rgba(255,255,255,.96);color:var(--ink)}
.talk-card .form label{color:#dbe5f7}
.talk-points{display:grid;gap:10px;margin:22px 0 4px}
.talk-points>div{display:flex;gap:12px;align-items:flex-start;padding:13px 14px;border-radius:15px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1)}
.talk-points>div>span{font-size:22px;line-height:1}
.talk-points b{display:block;font-size:13px}
.talk-points small{display:block;color:#b8c6dd;margin-top:3px;line-height:1.45}
@media(max-width:1120px){.public-links{gap:2px}.public-links a,.login-menu-trigger{font-size:12px}.public-links a{padding-left:8px!important;padding-right:8px!important}.login-menu-trigger{padding:11px 13px}.brand img{height:52px}}
@media(max-width:900px){.public-links{position:absolute;left:4%;right:4%;top:76px;margin:0;display:none;flex-direction:column;align-items:stretch;gap:6px;padding:12px;background:rgba(255,255,255,.97);border:1px solid #e2e8f2;border-radius:20px;box-shadow:0 25px 55px rgba(16,24,40,.15);backdrop-filter:blur(20px);max-height:calc(100vh - 92px);overflow:auto}.public-links.open{display:flex}.public-links a{justify-content:flex-start;padding:12px 14px!important;font-size:13px}.public-links .admission-talk-link,.public-links .login-dropdown,.public-links .admin-link,.public-links .cart{order:initial;width:100%;margin-left:0}.login-menu-trigger{width:100%;justify-content:space-between;padding:12px 14px}.login-menu{position:static;width:100%;margin-top:6px;display:none;opacity:1;visibility:visible;transform:none;box-shadow:none;background:#f7f9ff;border-radius:14px}.login-dropdown.open .login-menu{display:block}.admission-talk-grid{grid-template-columns:1fr}.admission-talk-page{padding-top:48px}}
@media(max-width:620px){.admission-card,.talk-card{padding:22px}.form-two{grid-template-columns:1fr}}



/* ============================================================
   TECHNDLEARN PHASE 4 — PREMIUM ROLE PORTALS
   UI-only enhancement. Existing PHP/database workflow preserved.
   ============================================================ */
:root{
  --tnl-bg:#f4f7fc;
  --tnl-surface:rgba(255,255,255,.86);
  --tnl-surface-strong:#fff;
  --tnl-border:rgba(21,43,78,.09);
  --tnl-shadow:0 18px 55px rgba(20,42,78,.10);
  --tnl-shadow-hover:0 28px 70px rgba(20,42,78,.17);
  --tnl-blue:#1769ff;
  --tnl-cyan:#00c8ff;
  --tnl-indigo:#6748ff;
  --tnl-navy:#101a33;
  --tnl-muted:#68758a;
  --tnl-green:#16a56b;
  --tnl-orange:#f59e0b;
  --tnl-red:#e05252;
}

body{
  background:
    radial-gradient(circle at 7% 12%,rgba(23,105,255,.10),transparent 25%),
    radial-gradient(circle at 92% 8%,rgba(0,200,255,.09),transparent 22%),
    linear-gradient(135deg,#f7f9fd,#eef4fb 55%,#f8faff);
}

body:after{
  content:"";
  position:fixed;
  width:420px;height:420px;
  right:-230px;bottom:-240px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(103,72,255,.12),transparent 68%);
  pointer-events:none;
  z-index:-3;
  animation:tnl-orbit 12s ease-in-out infinite;
}
@keyframes tnl-orbit{
  0%,100%{transform:translate3d(0,0,0)}
  50%{transform:translate3d(-45px,-35px,0) scale(1.08)}
}

/* Portal navigation */
.adminbar{
  position:sticky;
  top:82px;
  z-index:80;
  padding:10px 0;
  background:rgba(9,19,42,.88);
  backdrop-filter:blur(18px);
  border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.09);
  box-shadow:0 12px 30px rgba(5,15,35,.16);
}
.adminnav{
  display:flex;
  align-items:center;
  gap:7px;
  overflow:auto;
  scrollbar-width:none;
}
.adminnav::-webkit-scrollbar{display:none}
.adminnav a{
  flex:0 0 auto;
  color:rgba(255,255,255,.82);
  font-size:13px;
  font-weight:800;
  padding:9px 13px;
  border-radius:11px;
  transition:.25s ease;
}
.adminnav a:hover{
  color:#fff;
  background:rgba(255,255,255,.10);
  transform:translateY(-1px);
}
.adminnav a:first-child{
  color:#fff;
  background:linear-gradient(120deg,var(--tnl-blue),var(--tnl-indigo));
  box-shadow:0 8px 22px rgba(23,105,255,.25);
}

/* Universal premium cards */
.card{
  position:relative;
  overflow:hidden;
  border:1px solid var(--tnl-border);
  background:var(--tnl-surface);
  box-shadow:var(--tnl-shadow);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;
}
.card:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,.38),transparent 45%);
  opacity:.8;
}
.card:hover{
  transform:translateY(-5px);
  box-shadow:var(--tnl-shadow-hover);
  border-color:rgba(23,105,255,.15);
}
.card > *{position:relative;z-index:1}

.dashboard-hero{
  position:relative;
  padding-top:42px;
  padding-bottom:18px;
}
.dashboard-head{
  position:relative;
  padding:28px 32px;
  border-radius:30px;
  color:#fff;
  overflow:hidden;
  background:
    radial-gradient(circle at 85% 20%,rgba(0,200,255,.28),transparent 28%),
    radial-gradient(circle at 15% 100%,rgba(103,72,255,.30),transparent 32%),
    linear-gradient(120deg,#0c1730,#142a55 55%,#102b55);
  box-shadow:0 25px 70px rgba(14,34,72,.24);
}
.dashboard-head:after{
  content:"";
  position:absolute;
  width:260px;height:260px;
  right:-90px;top:-120px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.13);
  box-shadow:0 0 0 30px rgba(255,255,255,.025),0 0 0 70px rgba(255,255,255,.018);
  animation:tnl-float 9s ease-in-out infinite;
}
@keyframes tnl-float{
  0%,100%{transform:translateY(0) rotate(0)}
  50%{transform:translateY(18px) rotate(7deg)}
}
.dashboard-head h1{color:#fff;margin:8px 0 8px}
.dashboard-head .muted{color:rgba(255,255,255,.72)}
.dashboard-head .eyebrow{
  color:#bfeeff;
  background:rgba(0,200,255,.10);
  box-shadow:0 0 0 1px rgba(0,200,255,.18) inset;
}

.dashboard-stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-top:20px;
}
.dashboard-stats > div,
.dashboard-stats .card{
  border:1px solid rgba(255,255,255,.10);
  border-radius:20px;
  padding:18px;
  background:rgba(255,255,255,.055);
  box-shadow:none;
}
.dashboard-stats > div:hover{transform:translateY(-3px)}
.dashboard-stats b,.dashboard-stats strong{
  display:block;
  font-family:'Space Grotesk',Inter,sans-serif;
  font-size:26px;
  letter-spacing:-.8px;
}
.dashboard-stats small,.dashboard-stats span{
  display:block;
  margin-top:5px;
  color:rgba(255,255,255,.67);
  font-size:12px;
  font-weight:700;
}
.dashboard-hero + .section{padding-top:20px}

/* Existing stat cards */
.stat-card{
  min-height:130px;
  display:flex;
  align-items:center;
  gap:15px;
}
.stat-icon{
  width:54px;height:54px;
  flex:0 0 54px;
  display:grid;
  place-items:center;
  border-radius:17px;
  font-size:24px;
  background:linear-gradient(135deg,rgba(23,105,255,.13),rgba(0,200,255,.13));
  box-shadow:0 0 0 1px rgba(23,105,255,.08) inset;
}
.stat-card strong{
  display:block;
  font-family:'Space Grotesk',Inter,sans-serif;
  font-size:30px;
  line-height:1;
  margin-top:5px;
}

/* Main student dashboard */
.dashboard-main{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(300px,.8fr);
  gap:22px;
}
.dashboard-main > *{min-width:0}
.dashboard-main .section-title{
  align-items:flex-start;
}
.section-title h2{margin:5px 0 0}
.badge{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:5px 9px;
  border-radius:999px;
  color:#3557a8;
  background:rgba(23,105,255,.08);
  box-shadow:0 0 0 1px rgba(23,105,255,.08) inset;
  font-size:11px;
  font-weight:900;
  letter-spacing:.4px;
}
.phase2-highlight{
  background:
    radial-gradient(circle at 100% 0,rgba(0,200,255,.15),transparent 35%),
    linear-gradient(135deg,rgba(103,72,255,.09),rgba(23,105,255,.05));
}

/* Course tiles */
.hero-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:24px;
}
.hero-cards .card{
  min-height:155px;
  padding:24px;
}
.hero-cards h3{margin-top:0}

/* Tables */
.tablewrap{
  border:1px solid var(--tnl-border);
  border-radius:22px;
  background:rgba(255,255,255,.82);
  box-shadow:var(--tnl-shadow);
  overflow:auto;
}
.tablewrap table{margin:0;border:0}
.tablewrap th{
  background:#f2f6fc;
  color:#34425a;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.55px;
}
.tablewrap td,.tablewrap th{padding:14px 16px}
.tablewrap tr:hover td{background:rgba(23,105,255,.025)}

/* Portal forms */
.form,.card form{
  position:relative;
}
input,select,textarea{
  border:1px solid #d9e1ee;
  background:rgba(255,255,255,.9);
  transition:border-color .2s,box-shadow .2s,transform .2s;
}
input:focus,select:focus,textarea:focus{
  outline:none;
  border-color:rgba(23,105,255,.55);
  box-shadow:0 0 0 4px rgba(23,105,255,.09);
}

/* Buttons */
.btn{
  border-radius:13px;
}
.btn.alt:hover{
  background:#fff;
  border-color:#cbd8ed;
}

/* Admin dashboard */
.adminnav + .section h1,
.adminbar + .section h1{
  font-family:'Space Grotesk',Inter,sans-serif;
  letter-spacing:-1.2px;
}
.adminbar + .section > .container > h1{
  margin-bottom:24px;
}
.adminbar + .section .grid4 .card{
  min-height:145px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:24px;
}
.adminbar + .section .grid4 .card .stat{
  font-family:'Space Grotesk',Inter,sans-serif;
  font-size:40px;
  line-height:1;
  font-weight:800;
  background:linear-gradient(120deg,var(--tnl-blue),var(--tnl-indigo),var(--tnl-cyan));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.adminbar + .section .grid4 .card p{
  color:var(--tnl-muted);
  font-weight:700;
  margin-bottom:0;
}

/* Teacher cards */
.adminbar + .section .grid .card{
  border-radius:22px;
}
.adminbar + .section .grid > .card > h3{
  font-family:'Space Grotesk',Inter,sans-serif;
}
.adminbar + .section .grid > .card form.card{
  margin-top:12px;
  background:rgba(248,250,253,.9);
  box-shadow:0 10px 25px rgba(20,42,78,.06);
}

/* Parent portal */
.adminbar + .section .grid > article.card{
  min-height:220px;
  display:flex;
  flex-direction:column;
}
.adminbar + .section .grid > article.card .dashboard-stats{
  margin-top:auto;
}
.adminbar + .section .grid > article.card .btn{
  margin-top:18px;
  align-self:flex-start;
}

/* Small visual status accents */
.card h2,.card h3{letter-spacing:-.35px}
.muted{color:var(--tnl-muted)}
.flash{
  border-radius:14px!important;
  box-shadow:0 10px 25px rgba(20,42,78,.08);
}

/* Student navigation refinement */
.student-links{
  gap:3px;
}
.student-links a{
  border-radius:12px;
}
.student-links .student-home,
.student-links .student-admin{
  background:rgba(23,105,255,.07);
}
.student-links .student-admin{
  color:var(--tnl-blue);
  font-weight:900;
}
.student-links .student-user{
  max-width:170px;
  overflow:hidden;
  text-overflow:ellipsis;
}
.student-links .student-user b{
  overflow:hidden;
  text-overflow:ellipsis;
}
.student-links .student-logout{
  color:#b42318;
}

/* Mobile */
@media (max-width:1050px){
  .dashboard-main{grid-template-columns:1fr}
  .hero-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .student-links b{display:none}
  .student-links a{padding:10px}
  .student-links .student-user b{display:inline}
}
@media (max-width:760px){
  .adminbar{top:70px}
  .dashboard-head{padding:24px 20px;border-radius:23px}
  .dashboard-head h1{font-size:31px}
  .dashboard-stats{grid-template-columns:1fr}
  .dashboard-stats > div{display:flex;align-items:center;justify-content:space-between}
  .hero-cards{grid-template-columns:1fr}
  .hero-cards .card{min-height:125px}
  .adminnav{padding:0 2px}
  .adminnav a{font-size:12px;padding:8px 10px}
  .adminbar + .section .grid4{grid-template-columns:1fr 1fr}
  .adminbar + .section .grid4 .card{min-height:120px;padding:18px}
  .adminbar + .section .grid4 .card .stat{font-size:32px}
}
@media (max-width:560px){
  .adminbar + .section .grid4{grid-template-columns:1fr}
  .stat-card{min-height:108px}
  .dashboard-head{margin-inline:-2px}
}
@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.001ms!important;
  }
}



/* ============================================================
   PHASE 4.1 — STUDENT PORTAL COLOR REFINEMENT
   Dark premium stat strip + high-contrast readable labels.
   ============================================================ */
body:has(.student-links){
  background:
    radial-gradient(circle at 0% 0%,rgba(0,198,255,.13),transparent 27%),
    radial-gradient(circle at 100% 10%,rgba(91,78,255,.11),transparent 29%),
    linear-gradient(145deg,#eef5ff 0%,#f7f9fd 48%,#edf3ff 100%);
}

/* Top learning KPI cards */
.dashboard-stats{
  gap:18px;
  margin-top:22px;
}
.dashboard-stats > .card{
  position:relative;
  min-height:126px;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.12) !important;
  background:
    radial-gradient(circle at 92% 8%,rgba(0,211,255,.20),transparent 30%),
    linear-gradient(135deg,#101c3a 0%,#172c59 55%,#123f67 100%) !important;
  box-shadow:
    0 20px 42px rgba(15,32,67,.18),
    inset 0 1px 0 rgba(255,255,255,.09);
  backdrop-filter:blur(14px);
}
.dashboard-stats > .card:nth-child(2){
  background:
    radial-gradient(circle at 92% 8%,rgba(103,72,255,.24),transparent 30%),
    linear-gradient(135deg,#141b3d 0%,#263069 55%,#214b73 100%) !important;
}
.dashboard-stats > .card:nth-child(3){
  background:
    radial-gradient(circle at 92% 8%,rgba(0,230,190,.18),transparent 30%),
    linear-gradient(135deg,#10283d 0%,#12445b 55%,#12636b 100%) !important;
}
.dashboard-stats > .card:nth-child(4){
  background:
    radial-gradient(circle at 92% 8%,rgba(255,180,70,.18),transparent 30%),
    linear-gradient(135deg,#211d38 0%,#30284d 55%,#3a3154 100%) !important;
}
.dashboard-stats > .card:hover{
  transform:translateY(-7px);
  box-shadow:
    0 27px 55px rgba(15,32,67,.24),
    inset 0 1px 0 rgba(255,255,255,.12);
}

.dashboard-stats .stat-icon{
  color:#fff;
  background:linear-gradient(145deg,rgba(255,255,255,.16),rgba(255,255,255,.05));
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 8px 20px rgba(0,0,0,.10),inset 0 1px 0 rgba(255,255,255,.12);
}
.dashboard-stats .muted,
.dashboard-stats span.muted{
  color:rgba(255,255,255,.78) !important;
}
.dashboard-stats strong{
  color:#fff !important;
  font-size:30px;
  text-shadow:0 3px 15px rgba(0,0,0,.18);
}
.dashboard-stats .progress{
  background:rgba(255,255,255,.13) !important;
  box-shadow:inset 0 1px 3px rgba(0,0,0,.12);
}
.dashboard-stats .progress span{
  background:linear-gradient(90deg,#35d8ff,#6c7cff,#a58bff) !important;
  box-shadow:0 0 14px rgba(53,216,255,.45);
}
.dashboard-stats .small,
.dashboard-stats a{
  color:#d9f5ff !important;
  font-weight:800;
}
.dashboard-stats a:hover{color:#fff !important}

/* Give the main learning area a slightly stronger visual hierarchy */
.dashboard-main > div > .card,
.dashboard-main > .card{
  background:rgba(255,255,255,.94);
  border-color:rgba(19,45,87,.10);
}
.dashboard-main .card h2{
  color:#111b31;
}
.dashboard-main .card .muted{
  color:#64738b;
}

/* Student portal mobile KPI treatment */
@media (max-width:760px){
  .dashboard-stats > .card{
    min-height:104px;
  }
}



/* ============================================================
   TECHNDLEARN PHASE 4.2 — ALL ROLE PORTAL COLOR SYSTEM
   Extends the approved Student Portal dark premium palette.
   No database or business logic changes.
   ============================================================ */

/* Teacher / Parent / Admin portal background */
body:has(.adminbar){
  background:
    radial-gradient(circle at 4% 4%,rgba(23,105,255,.12),transparent 25%),
    radial-gradient(circle at 96% 8%,rgba(0,200,255,.10),transparent 24%),
    linear-gradient(135deg,#edf3fb,#f6f9fe 55%,#e9f0fa);
}

/* Premium portal navigation */
.adminbar{
  background:linear-gradient(100deg,#08142d 0%,#0e2347 52%,#102f5b 100%);
  border-bottom:1px solid rgba(91,205,255,.18);
  box-shadow:0 15px 38px rgba(5,17,40,.25);
}
.adminnav a{
  color:rgba(255,255,255,.78);
  border:1px solid transparent;
}
.adminnav a:hover{
  color:#fff;
  background:rgba(255,255,255,.09);
  border-color:rgba(255,255,255,.08);
}
.adminnav a:first-child{
  background:linear-gradient(135deg,#1769ff,#00aeea);
  box-shadow:0 8px 24px rgba(23,105,255,.30);
}

/* Portal page headings */
body:has(.adminbar) .section h1{
  color:#0e1b35;
  font-family:'Space Grotesk',Inter,sans-serif;
  font-size:clamp(30px,4vw,46px);
  letter-spacing:-1.4px;
}
body:has(.adminbar) .section > .container > h1 + p{
  color:#62728b;
  font-weight:600;
}

/* Teacher portal */
body:has(.adminbar) .grid > .card{
  border-radius:24px;
  background:rgba(255,255,255,.91);
  box-shadow:0 18px 50px rgba(18,42,78,.10);
}
body:has(.adminbar) .grid > .card:hover{
  transform:translateY(-5px);
  box-shadow:0 28px 65px rgba(18,42,78,.16);
}
body:has(.adminbar) .grid > .card h3{
  color:#10213f;
  font-size:22px;
  letter-spacing:-.5px;
}
body:has(.adminbar) .grid > .card h4{
  color:#31517d;
}
body:has(.adminbar) .grid > .card form.card{
  background:linear-gradient(145deg,#f8fbff,#eef5ff);
  border:1px solid rgba(23,105,255,.10);
  box-shadow:0 10px 28px rgba(18,42,78,.07);
}
body:has(.adminbar) .grid > .card form.card b{
  color:#15294b;
}
body:has(.adminbar) .grid > .card form.card .btn{
  background:linear-gradient(135deg,#1769ff,#00aeea);
  box-shadow:0 9px 22px rgba(23,105,255,.22);
}

/* Teacher attendance panel */
body:has(.adminbar) .section .card.section{
  background:
    radial-gradient(circle at 95% 5%,rgba(0,200,255,.10),transparent 25%),
    linear-gradient(145deg,#0c1b36,#132e58);
  color:#fff;
  border:1px solid rgba(102,196,255,.15);
}
body:has(.adminbar) .section .card.section h2{
  color:#fff;
}
body:has(.adminbar) .section .card.section label,
body:has(.adminbar) .section .card.section p{
  color:rgba(255,255,255,.75);
}

/* Parent portal */
body:has(.adminbar) .eyebrow{
  display:inline-flex;
  align-items:center;
  padding:7px 12px;
  border-radius:999px;
  color:#bdeeff;
  background:linear-gradient(135deg,#102b55,#1769a8);
  box-shadow:0 0 0 1px rgba(0,200,255,.20) inset,0 8px 20px rgba(16,43,85,.12);
  font-weight:900;
}
body:has(.adminbar) article.card{
  background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(239,246,255,.94));
}
body:has(.adminbar) article.card .badge{
  color:#c7ecff;
  background:linear-gradient(135deg,#102b55,#1769a8);
  box-shadow:none;
}
body:has(.adminbar) article.card h2{
  color:#10213f;
  margin-top:15px;
}
body:has(.adminbar) article.card .dashboard-stats > div{
  border:1px solid rgba(23,105,255,.10);
  border-radius:16px;
  background:linear-gradient(145deg,#f7fbff,#edf5ff);
}
body:has(.adminbar) article.card .dashboard-stats b{
  color:#112344;
  font-family:'Space Grotesk',Inter,sans-serif;
}
body:has(.adminbar) article.card .dashboard-stats small{
  color:#64748b;
}

/* Admin dashboard */
body:has(.adminbar) .grid4 .card{
  position:relative;
  overflow:hidden;
  min-height:150px;
  background:
    radial-gradient(circle at 100% 0,rgba(0,200,255,.11),transparent 34%),
    linear-gradient(145deg,#fff,#f3f7fd);
  border:1px solid rgba(23,105,255,.09);
}
body:has(.adminbar) .grid4 .card:after{
  content:"";
  position:absolute;
  width:95px;height:95px;
  right:-30px;bottom:-42px;
  border-radius:50%;
  background:linear-gradient(135deg,rgba(23,105,255,.10),rgba(0,200,255,.04));
}
body:has(.adminbar) .grid4 .card .stat{
  position:relative;
  z-index:2;
  color:#112344;
  background:none;
  -webkit-text-fill-color:initial;
}
body:has(.adminbar) .grid4 .card p{
  position:relative;
  z-index:2;
  color:#63738a;
}
body:has(.adminbar) .hero-cards{
  gap:18px;
}
body:has(.adminbar) .hero-cards .card{
  background:
    radial-gradient(circle at 100% 0,rgba(0,200,255,.10),transparent 38%),
    linear-gradient(145deg,#fff,#f0f6ff);
  border:1px solid rgba(23,105,255,.09);
}
body:has(.adminbar) .hero-cards .card h3{
  color:#122544;
}
body:has(.adminbar) .hero-cards .card p{
  color:#687991;
}

/* Login pages for teacher/admin/parent */
body:has(.form) .form{
  border-radius:28px;
  background:
    radial-gradient(circle at 100% 0,rgba(0,200,255,.10),transparent 32%),
    linear-gradient(145deg,rgba(255,255,255,.98),rgba(240,246,255,.96));
  border:1px solid rgba(23,105,255,.10);
  box-shadow:0 25px 65px rgba(17,39,72,.13);
}
body:has(.form) .form h2{
  color:#10213f;
  font-family:'Space Grotesk',Inter,sans-serif;
}
body:has(.form) .form .btn{
  background:linear-gradient(135deg,#1769ff,#00aeea);
  box-shadow:0 12px 25px rgba(23,105,255,.24);
}

/* Admin content management and tables */
body:has(.adminbar) .tablewrap{
  background:rgba(255,255,255,.94);
  border:1px solid rgba(23,105,255,.09);
  box-shadow:0 18px 48px rgba(18,42,78,.09);
}
body:has(.adminbar) .tablewrap th{
  color:#d9efff;
  background:#102849;
}
body:has(.adminbar) .tablewrap td{
  color:#31425d;
}
body:has(.adminbar) .tablewrap tr:hover td{
  background:#f2f7ff;
}

/* Better buttons */
body:has(.adminbar) .btn{
  background:linear-gradient(135deg,#1769ff,#00aeea);
  box-shadow:0 9px 22px rgba(23,105,255,.18);
  border:0;
}
body:has(.adminbar) .btn:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 28px rgba(23,105,255,.26);
}

/* Mobile */
@media(max-width:760px){
  body:has(.adminbar) .section h1{
    font-size:32px;
  }
  body:has(.adminbar) .adminnav a{
    padding:9px 11px;
    font-size:12px;
  }
  body:has(.adminbar) .grid4{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:560px){
  body:has(.adminbar) .grid4{
    grid-template-columns:1fr;
  }
}




/* ============================================================
   TECHNDLEARN PHASE 4.3 — ADMISSION & LET'S TALK VISUAL FIX
   Fixes low-contrast/washed-out text on the public contact area.
   ============================================================ */

.admission-talk-page{
  background:
    radial-gradient(circle at 8% 18%,rgba(23,105,255,.08),transparent 25%),
    radial-gradient(circle at 92% 18%,rgba(0,200,255,.07),transparent 25%);
}

.admission-talk-page .admission-talk-head h1{
  color:#101a33 !important;
  font-family:'Space Grotesk',Inter,sans-serif;
  letter-spacing:-1.2px;
}
.admission-talk-page .admission-talk-head .muted{
  color:#61718a !important;
}

/* Admission card */
.admission-talk-page .admission-card{
  background:linear-gradient(145deg,#ffffff 0%,#f4f8ff 100%) !important;
  color:#13213b !important;
  border:1px solid rgba(23,105,255,.12) !important;
  box-shadow:0 24px 60px rgba(16,39,77,.10) !important;
}
.admission-talk-page .admission-card h2{
  color:#101a33 !important;
}
.admission-talk-page .admission-card .muted{
  color:#64748b !important;
}

/* Strong, intentional Let's Talk card */
.admission-talk-page .talk-card{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 92% 6%,rgba(0,211,255,.22),transparent 30%),
    radial-gradient(circle at 10% 100%,rgba(103,72,255,.25),transparent 35%),
    linear-gradient(145deg,#08152f 0%,#102a55 52%,#123b63 100%) !important;
  color:#ffffff !important;
  border:1px solid rgba(105,211,255,.20) !important;
  box-shadow:0 28px 70px rgba(7,25,59,.28) !important;
}
.admission-talk-page .talk-card:before{
  content:"";
  position:absolute;
  width:230px;
  height:230px;
  right:-110px;
  top:-120px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 0 0 25px rgba(255,255,255,.025),
             0 0 0 55px rgba(255,255,255,.018);
  pointer-events:none;
}
.admission-talk-page .talk-card > *{
  position:relative;
  z-index:2;
}
.admission-talk-page .talk-card h2{
  color:#ffffff !important;
  font-size:34px;
  line-height:1.1;
  letter-spacing:-.8px;
}
.admission-talk-page .talk-card > p.muted{
  color:#d8e7fb !important;
  font-size:16px;
  line-height:1.6;
}

/* Badge */
.admission-talk-page .talk-card .badge{
  color:#d9f7ff !important;
  background:linear-gradient(135deg,rgba(23,105,255,.42),rgba(0,200,255,.22)) !important;
  border:1px solid rgba(117,222,255,.25);
  box-shadow:0 8px 22px rgba(0,0,0,.10);
}

/* Information rows */
.admission-talk-page .talk-card .talk-points{
  margin:24px 0 12px;
}
.admission-talk-page .talk-card .talk-points > div{
  background:rgba(255,255,255,.075) !important;
  border:1px solid rgba(255,255,255,.12) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.admission-talk-page .talk-card .talk-points b{
  color:#ffffff !important;
  font-size:14px;
}
.admission-talk-page .talk-card .talk-points small{
  color:#c7d7ec !important;
}

/* Enquiry form inside dark card */
.admission-talk-page .talk-card .compact-form{
  padding:20px;
  margin-top:22px;
  border-radius:20px;
  background:rgba(255,255,255,.065) !important;
  border:1px solid rgba(255,255,255,.12) !important;
}
.admission-talk-page .talk-card .compact-form label{
  color:#e7f0fc !important;
  font-weight:800;
}
.admission-talk-page .talk-card .compact-form input,
.admission-talk-page .talk-card .compact-form textarea{
  background:#ffffff !important;
  color:#15233e !important;
  border:1px solid #d7e1ef !important;
  box-shadow:none !important;
}
.admission-talk-page .talk-card .compact-form input::placeholder,
.admission-talk-page .talk-card .compact-form textarea::placeholder{
  color:#8190a5 !important;
}
.admission-talk-page .talk-card .compact-form input:focus,
.admission-talk-page .talk-card .compact-form textarea:focus{
  border-color:#36cfff !important;
  box-shadow:0 0 0 4px rgba(54,207,255,.12) !important;
}
.admission-talk-page .talk-card .compact-form .btn.alt{
  color:#ffffff !important;
  background:linear-gradient(135deg,#1769ff,#00b9ee) !important;
  border:0 !important;
  box-shadow:0 12px 26px rgba(0,169,230,.25) !important;
}
.admission-talk-page .talk-card .compact-form .btn.alt:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 32px rgba(0,169,230,.34) !important;
}

/* Make the two columns feel balanced */
.admission-talk-grid{
  align-items:stretch !important;
}
.admission-talk-grid > .card{
  height:100%;
}

/* Mobile */
@media(max-width:760px){
  .admission-talk-page{
    padding-top:38px;
  }
  .admission-talk-page .talk-card h2{
    font-size:29px;
  }
  .admission-talk-page .admission-card,
  .admission-talk-page .talk-card{
    padding:22px;
  }
  .admission-talk-page .talk-card .compact-form{
    padding:16px;
  }
}



/* ============================================================
   TECHNDLEARN PHASE 5 — TEACHER STUDIO UI
   ============================================================ */
.studio-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:15px 0;
  border-bottom:1px solid rgba(23,105,255,.09);
  text-decoration:none;
}
.studio-row:last-child{border-bottom:0}
.studio-row > div{min-width:0}
.studio-row b{display:block;color:#132544}
.studio-row small{display:block;margin-top:5px;color:#718097;line-height:1.45}
.studio-row .btn{flex:0 0 auto}
.question-builder{
  display:grid;
  gap:12px;
}
.question-builder .grid2,
.question-builder .grid3{
  display:grid;
  gap:12px;
}
.question-builder .grid2{grid-template-columns:1fr 1fr}
.question-builder .grid3{grid-template-columns:1fr 1fr 1fr}
.question-list{
  display:grid;
  gap:12px;
  margin-top:20px;
}
.question-list .question{
  padding:18px;
  background:linear-gradient(145deg,#f9fbff,#eef5ff);
}
.question-list .question b{display:block;color:#132544}
.question-list .question small{display:block;color:#6a7890;line-height:1.65;margin-top:8px}
.analytics-card .dashboard-stats{
  grid-template-columns:repeat(4,1fr);
}
.analytics-card .dashboard-stats > div{
  background:linear-gradient(145deg,#f8fbff,#edf5ff);
  border:1px solid rgba(23,105,255,.08);
  border-radius:16px;
}
@media(max-width:760px){
  .question-builder .grid2,
  .question-builder .grid3{grid-template-columns:1fr}
  .analytics-card .dashboard-stats{grid-template-columns:1fr 1fr}
  .studio-row{align-items:flex-start}
}
@media(max-width:500px){
  .analytics-card .dashboard-stats{grid-template-columns:1fr}
}

/* Phase 5.1 — Admin Teacher Management */
.admin-teacher-form,
.teacher-help-card{
  background:
    radial-gradient(circle at 100% 0,rgba(0,200,255,.09),transparent 30%),
    linear-gradient(145deg,#ffffff,#f2f7ff);
  border:1px solid rgba(23,105,255,.10);
}
.course-checks{display:grid;gap:9px;max-height:280px;overflow:auto;padding:4px 2px}
.course-check{
  display:flex;align-items:center;gap:11px;padding:12px;border:1px solid rgba(23,105,255,.10);
  border-radius:14px;background:#f8fbff;cursor:pointer;
}
.course-check input{width:18px;height:18px}
.course-check span{display:flex;flex-direction:column;gap:3px}
.course-check small{color:#718097}
.teacher-login-box{
  padding:18px;border-radius:18px;background:linear-gradient(135deg,#08152f,#123b63);
  color:#fff;box-shadow:0 15px 35px rgba(7,25,59,.18);margin:18px 0;
}
.teacher-login-box b{display:block;margin-bottom:7px}
.teacher-login-box code{color:#c8f4ff;word-break:break-all}
.teacher-help-list{display:grid;gap:13px}
.teacher-help-list>div{display:flex;gap:12px;align-items:flex-start}
.teacher-help-list>div>span{
  display:grid;place-items:center;width:30px;height:30px;border-radius:50%;
  background:linear-gradient(135deg,#1769ff,#00aeea);color:#fff;font-weight:900;flex:0 0 auto;
}
.teacher-help-list p{margin:0}
.teacher-help-list small{display:block;color:#718097;line-height:1.45;margin-top:3px}
@media(max-width:760px){.course-checks{max-height:none}}

/* Teacher Studio premium portal */
.teacherbar{position:sticky;top:82px;z-index:90;background:rgba(7,19,42,.97);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.09);box-shadow:0 14px 40px rgba(7,19,42,.22);color:#fff}.teacherbar-inner{min-height:66px;display:flex;align-items:center;gap:22px}.teacherbar-brand{display:flex;align-items:center;gap:10px;flex:0 0 auto}.teacherbar-brand small{display:block;color:#9eabc1;font-size:10px;margin-top:2px}.teacherbar-orb{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;font-size:11px;font-weight:900;background:linear-gradient(135deg,#1769ff,#6748ff,#00c8ff);box-shadow:0 8px 24px rgba(0,200,255,.22)}.teachernav{margin-left:auto;display:flex;align-items:center;gap:5px;overflow-x:auto;scrollbar-width:thin}.teachernav a{display:flex;align-items:center;gap:7px;padding:10px 12px;border-radius:11px;color:#cbd6e8;font-size:12px;white-space:nowrap;transition:.25s}.teachernav a span{font-size:15px;color:#8fcfff}.teachernav a:hover,.teachernav a.active{color:#fff;background:linear-gradient(120deg,rgba(23,105,255,.32),rgba(103,72,255,.3));box-shadow:0 7px 24px rgba(0,0,0,.16);transform:translateY(-1px)}.teachernav a.active span{color:#fff}.teachernav .teacher-logout{color:#ffb8c3;margin-left:5px}.teachernav .teacher-logout span{color:#ff7188}
.teacher-dashboard-shell{padding-top:48px}.teacher-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 230px;align-items:center;gap:30px;padding:42px;border-radius:32px;color:#fff;background:radial-gradient(circle at 80% 15%,rgba(0,200,255,.24),transparent 25%),radial-gradient(circle at 20% 90%,rgba(103,72,255,.25),transparent 32%),linear-gradient(125deg,#07152d,#173867 54%,#263c78);box-shadow:0 30px 80px rgba(14,39,85,.25);isolation:isolate}.teacher-hero:after{content:'';position:absolute;right:-80px;top:-130px;width:360px;height:360px;border-radius:50%;border:1px solid rgba(255,255,255,.09);box-shadow:0 0 0 38px rgba(255,255,255,.025),0 0 0 78px rgba(255,255,255,.018);z-index:-1}.teacher-hero h1{font:800 clamp(35px,4.5vw,58px) 'Space Grotesk',Inter,sans-serif;letter-spacing:-2px;margin:13px 0 12px}.teacher-hero p{max-width:720px;color:#c9d5e8;line-height:1.7;margin:0}.teacher-eyebrow{color:#dce8ff;background:rgba(255,255,255,.1);box-shadow:0 0 0 1px rgba(255,255,255,.13) inset}.teacher-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.teacher-hero .btn.alt{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff!important}.teacher-hero-orb{display:grid;justify-items:center;gap:10px;color:#aebed8;text-align:center}.orb-ring{width:150px;height:150px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 34% 28%,#fff,rgba(255,255,255,.2) 12%,rgba(0,200,255,.12) 38%,rgba(103,72,255,.18) 66%,transparent 70%);box-shadow:0 0 80px rgba(0,200,255,.18),inset 0 0 40px rgba(255,255,255,.12);animation:teacherFloat 5s ease-in-out infinite}.orb-ring:before{content:'';position:absolute;width:174px;height:174px;border:1px solid rgba(255,255,255,.14);border-radius:50%;animation:teacherSpin 18s linear infinite}.orb-ring span{font:900 32px 'Space Grotesk';letter-spacing:2px;color:#fff;text-shadow:0 0 30px rgba(0,200,255,.7)}@keyframes teacherFloat{50%{transform:translateY(-8px) scale(1.025)}}@keyframes teacherSpin{to{transform:rotate(360deg)}}
.teacher-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin:22px 0}.teacher-stat{display:flex;align-items:center;gap:14px;padding:20px;border-radius:22px;background:rgba(255,255,255,.84);backdrop-filter:blur(16px);border:1px solid rgba(218,226,240,.9);box-shadow:var(--shadow);transition:.3s}.teacher-stat:hover{transform:translateY(-5px);box-shadow:0 28px 65px rgba(24,48,94,.15)}.teacher-stat-icon{width:50px;height:50px;display:grid;place-items:center;border-radius:16px;background:#edf3ff;font-size:23px;box-shadow:0 8px 20px rgba(23,105,255,.09)}.teacher-stat small,.teacher-stat em{display:block;color:var(--muted);font-size:11px;font-style:normal}.teacher-stat strong{display:block;font:800 28px 'Space Grotesk';margin:2px 0}.teacher-stat em{font-size:10px}
.teacher-main-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.72fr);gap:22px;align-items:start}.teacher-lower-grid{margin-top:22px}.teacher-section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.teacher-section-heading h2{font-size:28px;margin:7px 0 0}.teacher-section-heading .eyebrow{font-size:10px;padding:7px 11px}.teacher-live-dot{font-size:11px;font-weight:800;color:#067647;padding:7px 10px;border-radius:999px;background:#eaf8f0}.teacher-live-dot i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#17a673;margin-right:5px;box-shadow:0 0 0 5px rgba(23,166,115,.09)}.teacher-tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.teacher-tool{position:relative;overflow:hidden;display:flex;align-items:center;gap:15px;min-height:126px;padding:22px;border-radius:23px;color:#fff;box-shadow:0 20px 45px rgba(24,48,94,.12);transition:.35s;isolation:isolate}.teacher-tool:after{content:'';position:absolute;width:120px;height:120px;border-radius:50%;right:-50px;top:-45px;background:rgba(255,255,255,.11);z-index:-1}.teacher-tool:hover{transform:translateY(-7px) scale(1.012);box-shadow:0 30px 65px rgba(24,48,94,.2)}.teacher-tool>span{width:52px;height:52px;flex:0 0 52px;display:grid;place-items:center;border-radius:17px;background:rgba(255,255,255,.14);font-size:24px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}.teacher-tool h3{font-size:18px;margin:0 0 5px}.teacher-tool p{font-size:12px;line-height:1.5;color:rgba(255,255,255,.78);margin:0}.teacher-tool>b{margin-left:auto;font-size:20px;color:rgba(255,255,255,.75)}.teacher-tool-blue{background:linear-gradient(135deg,#0f63df,#168fef)}.teacher-tool-purple{background:linear-gradient(135deg,#5d3bc9,#7c4dff)}.teacher-tool-cyan{background:linear-gradient(135deg,#087f9c,#08b7d5)}.teacher-tool-orange{background:linear-gradient(135deg,#c7671a,#ef8a27)}.teacher-tool-green{background:linear-gradient(135deg,#087c65,#16a37f)}.teacher-tool-pink{background:linear-gradient(135deg,#a83f78,#dc5a9a)}
.teacher-side-card{padding:25px;border-radius:26px;color:#fff;background:linear-gradient(145deg,#101e3b,#183766 65%,#243f7b);box-shadow:0 28px 65px rgba(15,35,75,.22);position:sticky;top:166px}.teacher-side-card .teacher-section-heading h2{color:#fff}.teacher-side-card .eyebrow{color:#bcd5ff;background:rgba(255,255,255,.08);box-shadow:none}.teacher-health{display:flex;align-items:center;gap:17px;padding:18px;border-radius:20px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08)}.health-ring{--health:0%;width:88px;height:88px;flex:0 0 88px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#00c8ff var(--health),rgba(255,255,255,.12) 0);position:relative}.health-ring:after{content:'';position:absolute;inset:9px;border-radius:50%;background:#142b51}.health-ring span{position:relative;z-index:1;font-weight:900;font-size:15px}.teacher-health b{font-size:14px}.teacher-health p{font-size:11px;line-height:1.55;color:#b8c7df;margin:5px 0 0}.teacher-mini-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.teacher-mini-list>div{display:flex;align-items:center;gap:9px;padding:12px;border-radius:15px;background:rgba(255,255,255,.06)}.teacher-mini-list>div>span{font-size:18px}.teacher-mini-list b,.teacher-mini-list small{display:block}.teacher-mini-list b{font-size:13px}.teacher-mini-list small{color:#9fb0cb;font-size:9px;margin-top:2px}.teacher-full-btn{width:100%;margin-top:4px}
.teacher-panel{padding:25px}.teacher-panel .teacher-section-heading h2{font-size:25px}.teacher-panel .teacher-section-heading>a{color:var(--blue);font-weight:800}.submission-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #edf0f4}.submission-row:last-child{border-bottom:0}.student-avatar{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:13px;color:#fff;font-weight:900;background:linear-gradient(135deg,#1769ff,#6748ff);box-shadow:0 8px 20px rgba(23,105,255,.2)}.submission-info{min-width:0;flex:1}.submission-info b,.submission-info span,.submission-info small{display:block}.submission-info b{font-size:13px}.submission-info span{font-size:11px;color:#526176;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.submission-info small{font-size:9px;color:#98a2b3;margin-top:3px}.submission-grade{display:flex;gap:6px;align-items:center}.submission-grade input{width:70px;padding:9px 8px}.submission-grade .btn{min-height:38px;padding:8px 12px;font-size:11px}.teacher-empty{text-align:center;padding:35px 15px;color:var(--muted)}.teacher-empty span{font-size:34px}.teacher-empty h3{margin:9px 0 5px}.teacher-empty p{font-size:12px;margin:0}.teacher-attendance-form label{font-size:11px;margin:10px 0 6px}.teacher-attendance-form input,.teacher-attendance-form select{padding:12px;border-radius:12px}.attendance-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.teacher-login-shell{min-height:68vh;display:grid;place-items:center}.teacher-login-card{max-width:520px}.teacher-login-card h2{font:800 36px 'Space Grotesk';margin:13px 0 6px}.teacher-login-card .btn{width:100%;margin-top:6px}
@media(max-width:1100px){.teacher-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-main-grid{grid-template-columns:1fr}.teacher-side-card{position:static}.teacherbar-brand{display:none}.teachernav{margin-left:0;width:100%}}
@media(max-width:760px){.teacherbar{top:74px}.teacher-dashboard-shell{padding-top:35px}.teacher-hero{grid-template-columns:1fr;padding:28px}.teacher-hero-orb{display:none}.teacher-stats{grid-template-columns:1fr 1fr}.teacher-tool-grid{grid-template-columns:1fr}.teacher-panel{padding:20px}.submission-row{align-items:flex-start;flex-wrap:wrap}.submission-grade{margin-left:52px;width:calc(100% - 52px)}.submission-grade input{flex:1}.submission-grade .btn{flex:1}.teacher-main-grid{gap:16px}}
@media(max-width:560px){.teacher-stats{grid-template-columns:1fr}.teacher-hero h1{font-size:37px}.teacher-hero-actions .btn{flex:1}.teacher-stat{padding:16px}.teacher-tool{min-height:110px;padding:17px}.teacher-section-heading h2{font-size:23px}.teacher-side-card{padding:20px}.attendance-row{grid-template-columns:1fr}.teachernav a{padding:9px 10px}.teachernav a b{font-size:11px}}


/* TechNdLearn cinematic software-development identity */
:root{--blue:#4f8cff;--indigo:#7957ff;--cyan:#35e0ff;--ink:#edf4ff;--muted:#a8b6ce;--bg:#070b16;--line:rgba(156,184,226,.18);--card:rgba(16,25,45,.76);--shadow:0 24px 70px rgba(0,0,0,.38);--radius:22px}
body{color:#edf4ff;background:#070b16;background-image:radial-gradient(ellipse at 12% 0%,rgba(48,91,190,.22),transparent 34%),radial-gradient(ellipse at 90% 28%,rgba(0,197,255,.10),transparent 30%)}
body:before{background:linear-gradient(115deg,transparent 40%,rgba(65,131,255,.05) 50%,transparent 60%);opacity:.4}
.topbar{background:rgba(5,9,20,.84);backdrop-filter:blur(22px);border-bottom:1px solid rgba(133,170,230,.16);box-shadow:0 8px 32px rgba(0,0,0,.24)}
.links a{color:#dbe7fb}.links a:hover{background:rgba(75,135,255,.14);color:#7feaff}.links .admin-link,.links .pill,.btn{color:#fff!important;background:linear-gradient(115deg,#3478ff 0%,#684cff 55%,#00c9ec 100%);box-shadow:0 12px 35px rgba(36,105,255,.25)}
.hero{isolation:isolate;min-height:610px;padding:100px 0 90px;background:linear-gradient(90deg,rgba(5,9,20,.97) 0%,rgba(5,9,20,.88) 46%,rgba(5,9,20,.46) 100%),radial-gradient(ellipse at 75% 35%,rgba(0,191,255,.22),transparent 35%),linear-gradient(135deg,#0b1730,#070b16 70%);border-bottom:1px solid rgba(125,170,255,.18)}
.hero:before{width:520px;height:520px;right:-110px;top:-100px;background:radial-gradient(circle,rgba(0,198,255,.17),rgba(73,83,255,.10) 36%,transparent 70%);filter:blur(14px)}
.hero:after{width:450px;height:450px;left:32%;bottom:-300px;background:radial-gradient(circle,rgba(66,94,255,.17),transparent 68%);filter:blur(20px)}
.hero .container{position:relative;z-index:1}.hero .eyebrow{display:inline-flex;align-items:center;gap:9px;padding:9px 14px;border:1px solid rgba(90,202,255,.28);border-radius:999px;background:rgba(28,76,125,.22);color:#86eaff;text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:800}.hero h1{max-width:760px;color:#fff;font-family:'Space Grotesk',Inter,sans-serif;font-size:clamp(42px,5.2vw,76px);line-height:1.02;letter-spacing:-.055em;text-shadow:0 6px 35px rgba(0,0,0,.32)}.hero p{max-width:620px;color:#b9c8df;font-size:17px;line-height:1.8}.hero-video{width:100%;max-height:390px;object-fit:cover;border-radius:24px;border:1px solid rgba(116,196,255,.32);box-shadow:0 28px 90px rgba(0,0,0,.48),0 0 55px rgba(30,142,255,.12);background:#0b1222}
.actions{gap:14px}.btn{border:1px solid rgba(255,255,255,.14);border-radius:13px;padding:14px 21px;font-weight:800;transition:transform .25s,box-shadow .25s}.btn:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(30,110,255,.34)}.btn.alt{background:rgba(255,255,255,.045);border:1px solid rgba(184,211,255,.28);box-shadow:none;color:#e8f3ff!important}
.section{padding:76px 0;color:#edf4ff}.section h1,.section h2,.section h3{color:#f5f8ff;font-family:'Space Grotesk',Inter,sans-serif;letter-spacing:-.025em}.section h2{font-size:clamp(28px,3vw,42px)}.section .muted,.section p{color:#aab9d0}.card,.hero-cards .card{color:#edf4ff;background:linear-gradient(145deg,rgba(20,32,56,.92),rgba(10,17,32,.92));border:1px solid rgba(133,170,230,.18);border-radius:20px;box-shadow:0 18px 48px rgba(0,0,0,.20);transition:transform .28s,border-color .28s,box-shadow .28s}.card:hover,.hero-cards .card:hover{transform:translateY(-5px);border-color:rgba(66,199,255,.42);box-shadow:0 24px 58px rgba(0,0,0,.3),0 0 25px rgba(33,137,255,.08)}.card h3,.card b{color:#f2f7ff}.badge{background:rgba(52,135,255,.14);border:1px solid rgba(91,176,255,.24);color:#8beaff}
footer{margin-top:40px;background:#050914;border-top:1px solid rgba(133,170,230,.16);color:#aebbd0}footer h4{color:#f1f6ff}footer a{color:#c4d5ed}footer a:hover{color:#64e5ff}
input,select,textarea{background:#0c1527!important;color:#edf4ff!important;border-color:rgba(145,174,220,.25)!important}input::placeholder,textarea::placeholder{color:#7f91ac!important}
@media(max-width:760px){.hero{padding:66px 0 54px;min-height:unset}.hero-grid{gap:34px}.hero h1{font-size:clamp(39px,10vw,58px)}.hero p{font-size:15px}.hero-video{max-height:260px}.section{padding:52px 0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}



/* Admission & Let's Talk visibility and side-by-side layout fix */
.admission-talk-page .container{width:min(1440px,calc(100% - 48px));max-width:1440px;margin-inline:auto}
.admission-talk-page .admission-talk-head{display:block;margin:0 0 30px}
.admission-talk-page .admission-talk-head h1{color:#f7f9ff!important;opacity:1!important;text-shadow:0 3px 24px rgba(0,0,0,.35);font-size:clamp(2.4rem,4.4vw,4.5rem);line-height:1.08}
.admission-talk-page .admission-talk-head p,
.admission-talk-page .admission-talk-head .muted{color:#d4deef!important;opacity:1!important;font-size:1.08rem;line-height:1.65;max-width:1000px}
.admission-talk-page .admission-talk-grid{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:28px;align-items:stretch;width:100%}
.admission-talk-page .admission-card,.admission-talk-page .talk-card{width:100%;min-width:0;box-sizing:border-box;border-radius:24px}
.admission-talk-page .admission-card h2,.admission-talk-page .talk-card h2{color:inherit!important;line-height:1.15}
.admission-talk-page .admission-card>p.muted{color:#61718d!important}
.admission-talk-page .admission-card .form input,
.admission-talk-page .admission-card .form select,
.admission-talk-page .admission-card .form textarea{width:100%;box-sizing:border-box}
@media(max-width:850px){
 .admission-talk-page .container{width:min(100% - 28px,680px)}
 .admission-talk-page .admission-talk-grid{grid-template-columns:minmax(0,1fr)!important}
 .admission-talk-page .admission-card,.admission-talk-page .talk-card{padding:22px}
}


/* Final desktop side-by-side fix for Admission and Let's Talk */
@media (min-width: 901px) {
  body .admission-talk-page .admission-talk-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-auto-flow: row;
    align-items: start !important;
    width: 100% !important;
    max-width: none !important;
  }
  body .admission-talk-page .admission-talk-grid > .admission-card,
  body .admission-talk-page .admission-talk-grid > .talk-card {
    display: block !important;
    float: none !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    grid-column: auto !important;
    box-sizing: border-box !important;
  }
}
@media (max-width: 900px) {
  body .admission-talk-page .admission-talk-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* Technical-learning-only Home and About refinements */
.about-learning{min-height:65vh;background:radial-gradient(ellipse at 88% 4%,rgba(0,200,255,.10),transparent 32%),linear-gradient(135deg,#071326,#0b1730 58%,#101d39)}
.about-learning>.container>.eyebrow{margin-bottom:16px}
.about-intro{max-width:850px;font-size:18px;line-height:1.85;margin:16px 0 34px}
.about-learning .grid4{margin-top:28px}
.about-learning .grid4 .card{min-height:220px}
.about-learning .grid4 .icon{color:#74e7ff;margin-bottom:14px}
.about-principles{margin-top:26px;padding:28px;background:linear-gradient(130deg,rgba(17,35,64,.94),rgba(9,18,34,.96))}
.learning-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:22px}
.learning-steps>div{padding:18px;border-radius:15px;background:rgba(255,255,255,.035);border:1px solid rgba(133,170,230,.16)}
.learning-steps span{display:block;color:#65e2ff;font-weight:900;font-size:12px;letter-spacing:1.5px;margin-bottom:10px}
.learning-steps b{display:block;color:#f5f8ff;font-size:17px}
.learning-steps p{font-size:14px;line-height:1.6;margin-bottom:0}
@media(max-width:900px){.about-learning .grid4{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.about-learning .grid4,.learning-steps{grid-template-columns:1fr}.about-intro{font-size:16px}.about-principles{padding:20px}}


/* ==========================================================
   TechNdLearn visible technical-learning redesign v2
   Scoped to public Home and course showcase; dashboards remain untouched.
   ========================================================== */
:root{--tnl-bg:#050b18;--tnl-panel:#0b1528;--tnl-line:rgba(133,169,222,.19);--tnl-text:#f5f8ff;--tnl-muted:#a7b7d2;--tnl-cyan:#54e6ff;--tnl-blue:#5b8cff;--tnl-violet:#9a7bff}
body:has(.tnl-home-hero){background:#050b18!important;color:var(--tnl-text)!important}
body:has(.tnl-home-hero):before{opacity:.15!important;background-image:radial-gradient(circle at 1px 1px,rgba(124,169,238,.2) 1px,transparent 0)!important;background-size:32px 32px!important;animation:none!important}
body:has(.tnl-home-hero) .topbar{background:rgba(5,11,24,.92)!important;border-bottom:1px solid rgba(117,166,236,.18)!important;box-shadow:0 12px 40px rgba(0,0,0,.28)!important}
body:has(.tnl-home-hero) .public-links a:not(.admin-link):not(.admission-talk-link){color:#d7e4fa}
body:has(.tnl-home-hero) .admission-talk-link{color:#fff!important;background:rgba(77,131,255,.14);border:1px solid rgba(105,168,255,.28)}
.tnl-home-hero{position:relative;isolation:isolate;overflow:hidden;padding:76px 0 0;background:radial-gradient(ellipse at 83% 18%,rgba(32,113,255,.18),transparent 33%),radial-gradient(ellipse at 14% 75%,rgba(0,215,255,.08),transparent 32%),linear-gradient(140deg,#050b18 0%,#08152b 52%,#080d1d 100%);border-bottom:1px solid var(--tnl-line)}
.tnl-home-hero:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(115deg,transparent 0 49.8%,rgba(97,157,255,.055) 50%,transparent 50.2%);pointer-events:none}
.tnl-hero-grid{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(390px,.97fr);align-items:center;gap:52px;min-height:520px;padding-bottom:68px}
.tnl-hero-copy{position:relative;z-index:2}.tnl-kicker,.tnl-section-label{display:inline-flex;align-items:center;gap:10px;color:#7ceaff;font-size:11px;font-weight:900;letter-spacing:2px;text-transform:uppercase}
.tnl-live-dot{width:8px;height:8px;border-radius:50%;background:#54e6ff;box-shadow:0 0 16px #54e6ff}
.tnl-hero-copy h1{margin:23px 0 24px;color:#f7f9ff;font-family:'Space Grotesk',Inter,sans-serif;font-size:clamp(46px,5.5vw,78px);font-weight:800;line-height:.99;letter-spacing:-.065em;text-shadow:none}
.tnl-hero-copy h1 span,.tnl-section-heading h2 span,.tnl-bottom-cta h2 span{color:transparent;background:linear-gradient(100deg,#73eaff 0%,#7c9bff 48%,#bd8bff 100%);background-clip:text;-webkit-background-clip:text}
.tnl-hero-copy>p{max-width:600px;color:#aabbd5;font-size:17px;line-height:1.85;margin:0}
.tnl-hero-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:30px}.tnl-primary,.tnl-secondary{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:51px;padding:0 20px;border-radius:12px;font-size:13px;font-weight:850;transition:transform .2s,box-shadow .2s,border-color .2s}.tnl-primary{color:#031020!important;background:linear-gradient(110deg,#64eaff,#78a7ff);box-shadow:0 12px 35px rgba(63,176,255,.18)}.tnl-secondary{color:#e2ecff!important;background:rgba(255,255,255,.035);border:1px solid rgba(152,183,229,.25)}.tnl-primary:hover,.tnl-secondary:hover{transform:translateY(-3px);box-shadow:0 15px 40px rgba(54,141,255,.22)}
.tnl-proof{display:flex;gap:0;margin-top:42px;border-top:1px solid rgba(135,169,222,.18);padding-top:20px;max-width:580px}.tnl-proof>div{display:flex;flex-direction:column;gap:5px;padding:0 23px;border-left:1px solid rgba(135,169,222,.18)}.tnl-proof>div:first-child{padding-left:0;border-left:0}.tnl-proof b{font-size:18px;color:#75eaff}.tnl-proof span{font-size:11px;color:#a7b7d2;white-space:nowrap}
.tnl-hero-visual{position:relative;min-height:425px;display:flex;align-items:center;justify-content:center;isolation:isolate}.tnl-visual-orbit{position:absolute;z-index:-1;border:1px solid rgba(91,151,255,.18);border-radius:50%;transform:rotate(-28deg)}.tnl-orbit-one{width:440px;height:300px;box-shadow:0 0 80px rgba(38,127,255,.07)}.tnl-orbit-two{width:350px;height:450px;border-color:rgba(71,220,255,.13);transform:rotate(43deg)}
.tnl-code-window{width:min(100%,490px);position:relative;z-index:1;border:1px solid rgba(130,174,242,.3);border-radius:18px;overflow:hidden;background:linear-gradient(145deg,rgba(14,27,51,.97),rgba(6,13,27,.98));box-shadow:0 32px 90px rgba(0,0,0,.5),0 0 70px rgba(44,126,255,.13);transform:perspective(1100px) rotateY(-5deg) rotateX(2deg)}
.tnl-window-top{display:flex;align-items:center;gap:14px;padding:15px 17px;border-bottom:1px solid rgba(130,174,242,.17);background:rgba(255,255,255,.025);color:#93a9c9;font:11px ui-monospace,SFMono-Regular,Consolas,monospace}.tnl-window-dots{display:flex;gap:5px}.tnl-window-dots i{display:block;width:7px;height:7px;border-radius:50%;background:#ff7187}.tnl-window-dots i:nth-child(2){background:#ffc46b}.tnl-window-dots i:nth-child(3){background:#53e6a8}.tnl-window-status{margin-left:auto;color:#64e8c1;font-size:9px;letter-spacing:1px;white-space:nowrap}
.tnl-code-body{padding:24px 20px 20px}.tnl-code-line{display:flex;gap:20px;margin:0 0 15px;font:13px ui-monospace,SFMono-Regular,Consolas,monospace}.tnl-code-line em{font-style:normal;color:#536887;min-width:14px}.tnl-code-line code{color:#dce9ff}.tnl-code-purple{color:#b79cff}.tnl-code-green{color:#91f4be}.tnl-code-cyan{color:#67e9ff}.tnl-code-comment code{color:#6682a6}.tnl-terminal{display:flex;align-items:center;gap:10px;margin-top:25px;padding:13px 14px;border:1px solid rgba(103,166,255,.17);border-radius:9px;background:rgba(3,8,18,.58);font:11px ui-monospace,Consolas,monospace;color:#90a8c9}.tnl-terminal>span{color:#63e8ff}.tnl-terminal b{letter-spacing:3px;color:#65e9bd}.tnl-terminal strong{margin-left:auto;color:#7be9ff}
.tnl-float-card{position:absolute;z-index:3;display:flex;align-items:center;gap:12px;padding:13px 16px;border:1px solid rgba(145,184,246,.25);border-radius:13px;background:rgba(9,20,39,.92);box-shadow:0 15px 45px rgba(0,0,0,.32);backdrop-filter:blur(15px)}.tnl-float-top{top:32px;right:-10px}.tnl-float-bottom{bottom:36px;left:-18px}.tnl-float-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;color:#b6a2ff;background:rgba(151,121,255,.14);font-size:21px}.tnl-icon-cyan{color:#70f1d1;background:rgba(70,232,190,.12)}.tnl-float-card b,.tnl-float-card small{display:block}.tnl-float-card b{font-size:11px;color:#edf5ff}.tnl-float-card small{margin-top:5px;font-size:10px;color:#91a8ca}.tnl-visual-label{position:absolute;right:2px;bottom:3px;color:#57739d;font-size:9px;font-weight:800;letter-spacing:2px}
.tnl-tech-strip{border-top:1px solid rgba(132,172,232,.14);background:rgba(4,9,19,.55)}.tnl-tech-strip>.container{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:74px;flex-wrap:wrap}.tnl-tech-strip span{color:#6984a8;font-size:9px;font-weight:900;letter-spacing:1.8px}.tnl-tech-strip b{color:#9aacc8;font-size:10px;letter-spacing:1.3px;font-weight:850}
.tnl-section{padding:82px 0;background:#070e1c}.tnl-section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:30px}.tnl-section-heading h2{margin:13px 0 0;color:#f5f8ff;font-size:clamp(29px,3.5vw,46px);line-height:1.1;letter-spacing:-.045em}.tnl-section-heading>p{max-width:450px;margin:0;color:#9eafca;font-size:14px;line-height:1.8}.tnl-path-section{background:linear-gradient(180deg,#070e1c,#081225)}.tnl-path-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.tnl-path-card{position:relative;overflow:hidden;min-height:285px;padding:25px;border:1px solid rgba(135,171,226,.18);border-radius:17px;background:linear-gradient(145deg,rgba(17,32,57,.96),rgba(8,16,31,.98));transition:transform .25s,border-color .25s}.tnl-path-card:after{content:"";position:absolute;width:180px;height:180px;right:-75px;top:-75px;border-radius:50%;background:var(--path-glow);filter:blur(4px);opacity:.25;pointer-events:none}.tnl-path-card:hover{transform:translateY(-5px);border-color:rgba(91,210,255,.45)}.tnl-path-blue{--path-glow:#377bff}.tnl-path-violet{--path-glow:#9874ff}.tnl-path-cyan{--path-glow:#1bd6e8}.tnl-path-top{display:flex;align-items:center;justify-content:space-between;color:#7f98bd;font-size:10px;font-weight:900;letter-spacing:1.5px}.tnl-path-symbol{display:grid;place-items:center;width:45px;height:45px;border-radius:12px;color:#8cecff;background:rgba(78,161,255,.12);border:1px solid rgba(100,173,255,.2);font-size:19px;font-weight:900}.tnl-path-card h3{position:relative;z-index:1;margin:22px 0 12px;color:#f2f7ff;font-size:22px;line-height:1.2;letter-spacing:-.03em}.tnl-path-card p{position:relative;z-index:1;min-height:60px;margin:0;color:#9eafca;font-size:13px;line-height:1.75}.tnl-path-card>a{position:relative;z-index:1;display:inline-flex;gap:15px;margin-top:20px;color:#83eaff;font-size:12px;font-weight:850}
.tnl-course-section{background:#050b17;border-top:1px solid rgba(131,169,226,.12)}.tnl-text-link{color:#82eaff;font-size:12px;font-weight:850}.tnl-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.tnl-course-card{padding:23px;border:1px solid rgba(133,169,222,.18);border-radius:16px;background:linear-gradient(145deg,#0d1a30,#091222);transition:transform .25s,border-color .25s}.tnl-course-card:hover{transform:translateY(-4px);border-color:rgba(94,215,255,.4)}.tnl-course-icon{display:grid;place-items:center;width:47px;height:47px;border-radius:13px;background:linear-gradient(140deg,rgba(80,139,255,.18),rgba(65,221,255,.1));border:1px solid rgba(111,177,255,.2);color:#85eaff;font:800 15px ui-monospace,Consolas,monospace}.tnl-course-tag{display:inline-block;margin-top:19px;color:#8ba8ce;font-size:9px;font-weight:900;letter-spacing:1.4px;text-transform:uppercase}.tnl-course-card h3{margin:9px 0;color:#f4f8ff;font-size:19px;letter-spacing:-.02em}.tnl-course-card p{min-height:46px;color:#9eafca;font-size:12px;line-height:1.7}.tnl-course-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding-top:15px;border-top:1px solid rgba(133,169,222,.15)}.tnl-course-bottom b{color:#eaf3ff;font-size:13px}.tnl-course-bottom a{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:rgba(72,156,255,.13);color:#79eaff;font-size:19px}.tnl-empty-courses{padding:42px;text-align:center;border:1px dashed rgba(133,169,222,.25);border-radius:18px;background:rgba(12,24,44,.6)}.tnl-empty-courses>span{color:#73eaff;font-size:36px}.tnl-empty-courses h3{color:#f5f8ff}.tnl-empty-courses p{color:#9eafca}.tnl-empty-courses .tnl-primary{margin-top:12px}
.tnl-bottom-cta{padding:54px 0;background:radial-gradient(ellipse at 78% 50%,rgba(54,110,255,.18),transparent 40%),linear-gradient(110deg,#0b1830,#09101f);border-top:1px solid rgba(131,169,226,.17)}.tnl-bottom-cta>.container{display:flex;align-items:center;justify-content:space-between;gap:25px}.tnl-bottom-cta h2{margin:12px 0 0;color:#f5f8ff;font-size:clamp(28px,3.6vw,43px);line-height:1.12;letter-spacing:-.04em}
/* About page receives the same strong visual identity; student/admin dashboards are deliberately not restyled here. */
body:has(.about-learning){background:#050b18!important;color:#f4f8ff!important}.about-learning{padding:82px 0 90px!important;background:radial-gradient(ellipse at 90% 8%,rgba(52,121,255,.19),transparent 32%),radial-gradient(ellipse at 8% 80%,rgba(0,208,255,.07),transparent 30%),#060d1a!important}.about-learning h1{font-size:clamp(44px,6vw,72px)!important;letter-spacing:-.06em!important;color:#f7f9ff!important}.about-learning .about-intro{max-width:860px;color:#aebfd8!important;font-size:18px;line-height:1.9}.about-learning .grid4 .card{min-height:225px;padding:27px;background:linear-gradient(145deg,#11213b,#091222)!important;border:1px solid rgba(133,169,222,.2)!important}.about-learning .grid4 .card b{display:block;color:#f3f8ff;font-size:17px}.about-learning .grid4 .card p{color:#a4b5d0!important;font-size:13px;line-height:1.8}.about-learning .about-principles{margin-top:28px;padding:30px;background:linear-gradient(130deg,#101f39,#091323)!important;border:1px solid rgba(133,169,222,.2)!important}.about-learning .about-principles h2{font-size:28px!important;color:#f4f8ff!important}.about-learning .learning-steps>div{padding:20px;background:rgba(255,255,255,.025);border-color:rgba(133,169,222,.18)}
@media(max-width:1000px){.tnl-hero-grid{grid-template-columns:minmax(0,1fr) minmax(330px,.85fr);gap:28px}.tnl-float-top{right:-4px}.tnl-float-bottom{left:-6px}.tnl-proof>div{padding:0 14px}.tnl-tech-strip>.container{justify-content:center;padding:18px 0}.tnl-tech-strip span{width:100%;text-align:center}.tnl-path-grid,.tnl-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.tnl-home-hero{padding-top:54px}.tnl-hero-grid{grid-template-columns:1fr;gap:26px;padding-bottom:36px}.tnl-hero-copy h1{font-size:clamp(43px,11vw,65px)}.tnl-hero-copy>p{font-size:15px}.tnl-hero-visual{min-height:350px;margin:0 8px}.tnl-code-window{width:100%;transform:none}.tnl-float-top{top:4px;right:-5px}.tnl-float-bottom{bottom:7px;left:-5px}.tnl-float-card{padding:10px 12px}.tnl-float-card small{font-size:9px}.tnl-visual-label{bottom:-10px}.tnl-tech-strip>.container{gap:14px 19px;min-height:unset;padding:20px 0}.tnl-tech-strip b{font-size:9px}.tnl-section{padding:57px 0}.tnl-section-heading{align-items:flex-start;flex-direction:column;gap:13px}.tnl-section-heading>p{font-size:13px}.tnl-path-grid,.tnl-course-grid{grid-template-columns:1fr}.tnl-path-card{min-height:unset}.tnl-path-card p{min-height:unset}.tnl-bottom-cta>.container{align-items:flex-start;flex-direction:column}.tnl-bottom-cta{padding:42px 0}.about-learning{padding:55px 0!important}.about-learning .about-intro{font-size:16px}.about-learning .grid4{grid-template-columns:1fr 1fr!important}.learning-steps{grid-template-columns:1fr 1fr!important}}
@media(max-width:460px){.tnl-hero-actions{flex-direction:column;align-items:stretch}.tnl-primary,.tnl-secondary{width:100%}.tnl-proof{justify-content:space-between}.tnl-proof>div{padding:0 8px}.tnl-proof span{font-size:9px;white-space:normal}.tnl-window-top{gap:9px;padding:13px 10px}.tnl-window-top>span:first-of-type{font-size:9px}.tnl-window-status{font-size:7px}.tnl-code-body{padding:18px 12px}.tnl-code-line{font-size:11px;gap:12px}.tnl-terminal{font-size:9px;gap:6px}.tnl-float-card b{font-size:10px}.tnl-float-card small{font-size:8px}.tnl-float-icon{width:31px;height:31px}.about-learning .grid4{grid-template-columns:1fr!important}.learning-steps{grid-template-columns:1fr!important}}

/* Accessibility fix: make every public/portal login form heading and labels readable.
   The previous dark-theme overrides made labels nearly white on the pale form panels. */
.section > .form,
.section .teacher-login-card,
.section form.form {
  color: #152747 !important;
  background: linear-gradient(135deg, #ffffff 0%, #f3f7ff 72%, #eaf8ff 100%) !important;
  border: 1px solid #d6e2f3 !important;
  border-radius: 26px !important;
  box-shadow: 0 24px 70px rgba(0, 8, 25, .25) !important;
  padding: clamp(24px, 4vw, 48px) !important;
}
.section > .form h1,
.section > .form h2,
.section > .form h3,
.section .teacher-login-card h1,
.section .teacher-login-card h2,
.section form.form h1,
.section form.form h2,
.section form.form h3 {
  color: #122344 !important;
  opacity: 1 !important;
  line-height: 1.12 !important;
  margin: 0 0 20px !important;
  text-shadow: none !important;
}
.section > .form label,
.section .teacher-login-card label,
.section form.form label {
  display: block !important;
  color: #253958 !important;
  opacity: 1 !important;
  font-size: 15px !important;
  font-weight: 750 !important;
  margin: 14px 0 7px !important;
}
.section > .form input:not([type="hidden"]),
.section > .form select,
.section > .form textarea,
.section .teacher-login-card input:not([type="hidden"]),
.section .teacher-login-card select,
.section .teacher-login-card textarea,
.section form.form input:not([type="hidden"]),
.section form.form select,
.section form.form textarea {
  display: block !important;
  width: 100% !important;
  min-height: 54px !important;
  box-sizing: border-box !important;
  background: #ffffff !important;
  color: #152747 !important;
  border: 1px solid #bdcce2 !important;
  border-radius: 13px !important;
  padding: 13px 15px !important;
  opacity: 1 !important;
}
.section > .form input::placeholder,
.section .teacher-login-card input::placeholder,
.section form.form input::placeholder,
.section > .form textarea::placeholder,
.section form.form textarea::placeholder { color: #71819a !important; opacity: 1 !important; }
.section > .form input:focus,
.section .teacher-login-card input:focus,
.section form.form input:focus,
.section > .form select:focus,
.section form.form select:focus,
.section > .form textarea:focus,
.section form.form textarea:focus {
  border-color: #2584ff !important;
  box-shadow: 0 0 0 4px rgba(37,132,255,.14) !important;
  outline: none !important;
}
.section > .form p,
.section > .form p a,
.section .teacher-login-card p,
.section form.form p,
.section form.form p a { color: #526784 !important; opacity: 1 !important; }
.section > .form .btn,
.section .teacher-login-card .btn,
.section form.form .btn { margin-top: 14px !important; color: #fff !important; }
@media(max-width:600px) {
  .section > .form, .section .teacher-login-card, .section form.form { padding: 24px 20px !important; border-radius: 20px !important; }
  .section > .form h2, .section form.form h2 { font-size: clamp(28px, 7vw, 38px) !important; }
}

/* Logo and circular favicon visibility correction */
.topbar .brand{min-width:0;max-width:clamp(190px,25vw,330px);overflow:visible}
.topbar .brand img{display:block;width:100%;height:auto;max-height:58px;object-fit:contain;object-position:left center;flex-shrink:0}
footer .flogo{display:block;width:min(100%,310px);height:auto;max-height:78px;object-fit:contain;object-position:left center}
@media(max-width:900px){.topbar .brand{max-width:270px}.topbar .brand img{max-height:52px}}
@media(max-width:560px){.topbar .brand{max-width:220px}.topbar .brand img{max-height:47px}}

/* Dashboard readability and logo blending fix (2026-10-13) */
/* Keep the supplied logo transparent and correctly proportioned in every shared header/footer. */
.topbar .brand{background:transparent!important;box-shadow:none!important;border:0!important;padding:0!important;overflow:visible!important}
.topbar .brand img{display:block;width:clamp(190px,22vw,285px)!important;height:auto!important;max-height:62px!important;object-fit:contain!important;object-position:left center!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;mix-blend-mode:normal}
footer .flogo{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;object-fit:contain!important;object-position:left center!important}
/* Student dashboard: enforce readable foreground colours on light cards. */
body:has(.dashboard-hero) .dashboard-hero{color:#172642!important}
body:has(.dashboard-hero) .dashboard-hero h1,
body:has(.dashboard-hero) .dashboard-hero h2,
body:has(.dashboard-hero) .dashboard-hero h3,
body:has(.dashboard-hero) .dashboard-hero .section-title a{color:#142541!important}
body:has(.dashboard-hero) .dashboard-hero .card{color:#253651!important;background:#fff!important;border:1px solid #dbe5f2!important;box-shadow:0 12px 32px rgba(15,35,70,.08)!important}
body:has(.dashboard-hero) .dashboard-hero .card p,
body:has(.dashboard-hero) .dashboard-hero .card .muted,
body:has(.dashboard-hero) .dashboard-hero .card small{color:#586982!important}
body:has(.dashboard-hero) .dashboard-hero .card b,
body:has(.dashboard-hero) .dashboard-hero .card strong{color:#142541!important}
/* Admin dashboard cards and finance/analytics summary tiles. */
.admin-dashboard-shell{background:#f2f6fc!important;color:#172842!important}
.admin-main{color:#253651!important}
.admin-main h1,.admin-main h2,.admin-main h3,.admin-main .section-title h1,.admin-main .section-title h2{color:#142541!important}
.admin-main .card{color:#263752!important;background:#fff!important;border:1px solid #dbe5f2!important;box-shadow:0 10px 28px rgba(15,35,70,.08)!important}
.admin-main .card p,.admin-main .card .muted,.admin-main .card .small{color:#586982!important}
.admin-main .card .stat,.admin-main .card h2,.admin-main .card h3,.admin-main .card b{color:#142541!important}
.admin-main .card a:not(.btn){color:#075ecb!important;font-weight:750}
/* Finance, reports and other admin pages use the shared light dashboard canvas. */
body:has(.adminbar) .section .grid4>.card,
body:has(.adminbar) .section .grid>.card,
body:has(.adminbar) .section .split>.card{background:#fff!important;color:#263752!important;border:1px solid #dbe5f2!important;box-shadow:0 10px 28px rgba(15,35,70,.08)!important}
body:has(.adminbar) .section .grid4>.card h1,
body:has(.adminbar) .section .grid4>.card h2,
body:has(.adminbar) .section .grid4>.card h3,
body:has(.adminbar) .section .grid>.card h1,
body:has(.adminbar) .section .grid>.card h2,
body:has(.adminbar) .section .grid>.card h3,
body:has(.adminbar) .section .split>.card h1,
body:has(.adminbar) .section .split>.card h2,
body:has(.adminbar) .section .split>.card h3{color:#142541!important}
body:has(.adminbar) .section .grid4>.card p,
body:has(.adminbar) .section .grid>.card p,
body:has(.adminbar) .section .split>.card p,
body:has(.adminbar) .section .grid4>.card .muted,
body:has(.adminbar) .section .grid>.card .muted,
body:has(.adminbar) .section .split>.card .muted{color:#586982!important}
/* Teacher portal cards retain their dark hero/sidebar, while text on standard panels is high contrast. */
.teacher-panel,.teacher-panel.card{background:#fff!important;color:#263752!important;border:1px solid #dbe5f2!important}
.teacher-panel h1,.teacher-panel h2,.teacher-panel h3,.teacher-panel b{color:#142541!important}
.teacher-panel p,.teacher-panel .muted,.teacher-panel small,.teacher-panel label{color:#586982!important}
.teacher-panel a:not(.btn){color:#075ecb!important}

/* Dashboard contrast repair v5: consistent readable foregrounds across portal cards. */
:root{--dash-text:#172b46;--dash-muted:#52647d;--dash-border:#d9e3f0;--dash-surface:#fff}
.dashboard-hero,.dashboard-hero .dashboard-main,.dashboard-hero .dashboard-head{color:var(--dash-text)!important}
.dashboard-hero .card,.dashboard-hero .stat-card,.dashboard-hero .streak-card,
.admin-dashboard-shell .admin-main .card,.teacher-dashboard-shell .teacher-panel,
.teacher-dashboard-shell .teacher-tool,.teacher-dashboard-shell .teacher-stat,
.teacher-dashboard-shell .teacher-section,.teacher-dashboard-shell .teacher-list-card{
 color:var(--dash-text)!important;background:#fff!important;border:1px solid var(--dash-border)!important;box-shadow:0 10px 28px rgba(18,43,78,.08)!important
}
.dashboard-hero .card h1,.dashboard-hero .card h2,.dashboard-hero .card h3,
.dashboard-hero .card b,.dashboard-hero .card strong,.dashboard-hero .stat-card strong,
.admin-dashboard-shell .admin-main .card h1,.admin-dashboard-shell .admin-main .card h2,
.admin-dashboard-shell .admin-main .card h3,.admin-dashboard-shell .admin-main .card .stat,
.admin-dashboard-shell .admin-main .card b,.teacher-dashboard-shell .teacher-panel h1,
.teacher-dashboard-shell .teacher-panel h2,.teacher-dashboard-shell .teacher-panel h3,
.teacher-dashboard-shell .teacher-panel b,.teacher-dashboard-shell .teacher-stat strong{color:#142641!important}
.dashboard-hero .card p,.dashboard-hero .card .muted,.dashboard-hero .card small,
.dashboard-hero .card label,.dashboard-hero .course-row small,
.admin-dashboard-shell .admin-main .card p,.admin-dashboard-shell .admin-main .card .muted,
.admin-dashboard-shell .admin-main .card .small,.teacher-dashboard-shell .teacher-panel p,
.teacher-dashboard-shell .teacher-panel .muted,.teacher-dashboard-shell .teacher-panel small,
.teacher-dashboard-shell .teacher-panel label{color:var(--dash-muted)!important}
.dashboard-hero .card a:not(.btn),.admin-dashboard-shell .admin-main .card a:not(.btn),
.teacher-dashboard-shell .teacher-panel a:not(.btn){color:#075fc9!important}
.admin-dashboard-shell .admin-main .section-title h1,.admin-dashboard-shell .admin-main .section-title h2{color:#142641!important}
.admin-dashboard-shell .admin-main table,.dashboard-hero table{color:#243650!important}
.admin-dashboard-shell .admin-main th,.dashboard-hero th{color:#1a2d49!important;background:#edf3fa!important}
.admin-dashboard-shell .admin-main td,.dashboard-hero td{color:#34465e!important;border-color:#e1e8f1!important}
.admin-dashboard-shell .admin-main input,.admin-dashboard-shell .admin-main select,.admin-dashboard-shell .admin-main textarea,
.dashboard-hero input,.dashboard-hero select,.dashboard-hero textarea,
.teacher-dashboard-shell input,.teacher-dashboard-shell select,.teacher-dashboard-shell textarea{color:#182b46!important;background:#fff!important;border:1px solid #cbd7e6!important}
.admin-dashboard-shell .admin-main input::placeholder,.admin-dashboard-shell .admin-main textarea::placeholder,
.dashboard-hero input::placeholder,.dashboard-hero textarea::placeholder{color:#718097!important;opacity:1}
/* Non-dashboard admin modules use the same light, accessible card palette. */
body:has(.adminbar) main>.section{color:#263752}
body:has(.adminbar) main>.section h1,body:has(.adminbar) main>.section h2,body:has(.adminbar) main>.section h3{color:#142641}
body:has(.adminbar) main>.section .card{color:#263752;background:#fff;border-color:#d9e3f0}
body:has(.adminbar) main>.section .card p,body:has(.adminbar) main>.section .card .muted,body:has(.adminbar) main>.section .card small{color:#52647d}
body:has(.adminbar) main>.section .table{color:#263752}
/* Header/footer logo: transparent artwork, no rectangular tile or clipping. */
.topbar .brand,.topbar .brand img,footer .flogo{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;mix-blend-mode:normal!important}
.topbar .brand img{width:clamp(190px,22vw,285px)!important;height:auto!important;max-height:62px!important;object-fit:contain!important;object-position:left center!important}
footer .flogo{width:min(100%,310px)!important;height:auto!important;max-height:78px!important;object-fit:contain!important;object-position:left center!important}
@media(max-width:560px){.topbar .brand img{width:clamp(165px,52vw,220px)!important;max-height:48px!important}}

/* 2026-10 dashboard visual correction: override earlier conflicting generic card rules. */
.teacher-dashboard-shell .teacher-tool,
.teacher-dashboard-shell .teacher-tool:visited {
  color:#ffffff !important;
  border:1px solid rgba(255,255,255,.16) !important;
  box-shadow:0 18px 42px rgba(10,25,55,.18) !important;
}
.teacher-dashboard-shell .teacher-tool-blue{background:linear-gradient(135deg,#125ed0,#168ce5)!important}
.teacher-dashboard-shell .teacher-tool-purple{background:linear-gradient(135deg,#5734bd,#8055ee)!important}
.teacher-dashboard-shell .teacher-tool-cyan{background:linear-gradient(135deg,#087b94,#0caac7)!important}
.teacher-dashboard-shell .teacher-tool-orange{background:linear-gradient(135deg,#b95712,#e98224)!important}
.teacher-dashboard-shell .teacher-tool-green{background:linear-gradient(135deg,#08745e,#119875)!important}
.teacher-dashboard-shell .teacher-tool-pink{background:linear-gradient(135deg,#9b326b,#cf4e8c)!important}
.teacher-dashboard-shell .teacher-tool h3{color:#fff!important;font-weight:800!important}
.teacher-dashboard-shell .teacher-tool p{color:#f0f5ff!important;opacity:1!important}
.teacher-dashboard-shell .teacher-tool>b{color:#fff!important}
.teacher-dashboard-shell .teacher-stat{background:#fff!important;color:#20334f!important;border:1px solid #d9e4f2!important}
.teacher-dashboard-shell .teacher-stat small,.teacher-dashboard-shell .teacher-stat em{color:#526782!important}
.teacher-dashboard-shell .teacher-stat strong{color:#142641!important}

/* Teacher analytics page: fix pale text on white cards and prevent horizontal overflow. */
body:has(.analytics-card) main>.section{background:linear-gradient(145deg,#f3f7fd,#eaf1fb)!important;color:#243650!important}
body:has(.analytics-card) main>.section .section-title h1{color:#142641!important}
body:has(.analytics-card) main>.section .section-title p,
body:has(.analytics-card) main>.section .section-title .muted{color:#526783!important;opacity:1!important}
body:has(.analytics-card) .analytics-card{width:100%;min-width:0;max-width:100%;box-sizing:border-box;background:#fff!important;color:#243650!important;border:1px solid #d7e3f2!important;border-radius:22px!important;padding:26px!important;box-shadow:0 15px 35px rgba(20,44,82,.08)!important}
body:has(.analytics-card) .analytics-card .badge{max-width:100%;white-space:normal;overflow-wrap:anywhere;background:#e8f1ff!important;color:#17477e!important;border:1px solid #c9ddff!important}
body:has(.analytics-card) .analytics-card .dashboard-stats{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important;width:100%;margin-top:22px}
body:has(.analytics-card) .analytics-card .dashboard-stats>div{min-width:0;box-sizing:border-box;padding:16px 14px!important;background:#f2f6fc!important;border:1px solid #dbe6f6!important;border-radius:17px!important;color:#243650!important}
body:has(.analytics-card) .analytics-card .dashboard-stats b{display:block;color:#142641!important;font-size:26px!important;font-weight:850!important;line-height:1.2!important;margin-bottom:8px}
body:has(.analytics-card) .analytics-card .dashboard-stats small{display:block;color:#435875!important;font-size:13px!important;line-height:1.35!important;font-weight:750!important;overflow-wrap:anywhere}
body:has(.analytics-card) .grid:has(.analytics-card){grid-template-columns:minmax(0,1fr)!important;gap:20px!important}
@media(max-width:900px){body:has(.analytics-card) .analytics-card .dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:480px){body:has(.analytics-card) .analytics-card{padding:18px!important}body:has(.analytics-card) .analytics-card .dashboard-stats{grid-template-columns:1fr 1fr!important;gap:9px!important}body:has(.analytics-card) .analytics-card .dashboard-stats>div{padding:13px 10px!important}}

/* Keep the shared logo from becoming a tile; preserve image proportions on all portal headers. */
.topbar .brand{background:transparent!important;padding:0!important}
.topbar .brand img,footer .flogo{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;filter:none!important;object-fit:contain!important;mix-blend-mode:normal!important}

/* Teacher dashboard: make all muted/grey copy truly black on light surfaces. */
.teacher-dashboard-shell .teacher-stat small,
.teacher-dashboard-shell .teacher-stat em,
.teacher-dashboard-shell .teacher-side-card p,
.teacher-dashboard-shell .teacher-side-card small,
.teacher-dashboard-shell .teacher-health p,
.teacher-dashboard-shell .teacher-mini-list small,
.teacher-dashboard-shell .teacher-panel p,
.teacher-dashboard-shell .teacher-panel .muted,
.teacher-dashboard-shell .teacher-panel small,
.teacher-dashboard-shell .teacher-panel label,
.teacher-dashboard-shell .teacher-panel .small,
.teacher-dashboard-shell .submission-info span,
.teacher-dashboard-shell .submission-info small,
.teacher-dashboard-shell .teacher-empty p,
.teacher-dashboard-shell .teacher-attendance-form label {
  color: #111827 !important;
  opacity: 1 !important;
}
.teacher-dashboard-shell .teacher-section-heading .eyebrow,
.teacher-dashboard-shell .teacher-hero p { opacity: 1 !important; }
/* Keep white copy on the six saturated teaching-tool cards for contrast. */
.teacher-dashboard-shell .teacher-tool h3 { color: #fff !important; }
.teacher-dashboard-shell .teacher-tool p { color: #fff !important; opacity: 1 !important; }
/* Analytics page muted text and metric labels: black on light cards. */
body:has(.analytics-card) main > .section .section-title p,
body:has(.analytics-card) main > .section .section-title .muted,
body:has(.analytics-card) .analytics-card .dashboard-stats small,
body:has(.analytics-card) .analytics-card p,
body:has(.analytics-card) .analytics-card small { color: #111827 !important; opacity: 1 !important; }
