{"id":16,"date":"2026-09-25T17:49:04","date_gmt":"2026-09-25T17:49:04","guid":{"rendered":"https:\/\/alnooronlinequranacademy.com\/portal\/?page_id=16"},"modified":"2026-09-25T20:47:51","modified_gmt":"2026-09-25T20:47:51","slug":"portal","status":"publish","type":"page","link":"https:\/\/alnooronlinequranacademy.com\/portal\/","title":{"rendered":"Portal"},"content":{"rendered":"<script>\n(function(){\n function finish(){document.querySelectorAll('.mip-preloader').forEach(function(el){el.classList.add('mip-loader-done');setTimeout(function(){el.remove();},400);});}\n if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',function(){setTimeout(finish,350);},{once:true});else setTimeout(finish,350);\n window.addEventListener('load',finish,{once:true});setTimeout(finish,3500);\n \/\/ Browser autoplay rules: a short welcome chime can play only after an interaction.\n var played=false;\n document.addEventListener('pointerdown',function(){if(played)return;played=true;try{\n var C=window.AudioContext||window.webkitAudioContext;if(!C)return;var c=new C(),o=c.createOscillator(),g=c.createGain();o.type='sine';o.frequency.value=740;g.gain.setValueAtTime(.0001,c.currentTime);g.gain.exponentialRampToValueAtTime(.025,c.currentTime+.025);g.gain.exponentialRampToValueAtTime(.0001,c.currentTime+.18);o.connect(g);g.connect(c.destination);o.start();o.stop(c.currentTime+.2);setTimeout(function(){c.close()},350);\n }catch(e){}},{once:true});\n})();\n<\/script>\n    <div class=\"mip-preloader\" role=\"status\" aria-live=\"polite\"><div class=\"mip-loader-mark\">\u2726<\/div><div class=\"mip-loader-name\">Welcome to Alnoor Online Quran Academy Portal<\/div><div class=\"mip-loader-ring\" aria-hidden=\"true\"><\/div><span>Preparing your learning dashboard...<\/span><\/div>\n\t<div class=\"mip-portal\">\n\t\t<div class=\"mip-shell\">\n\n\t\t\t<header class=\"mip-header\">\n\t\t\t\t<div class=\"mip-brand\">\n\t\t\t\t\t<div class=\"mip-logo mip-site-logo\" aria-label=\"Alnoor Online Quran Academy logo\">\n\t\t\t\t\t\t<img decoding=\"async\" class=\"mip-direct-logo\" src=\"https:\/\/alnooronlinequranacademy.com\/portal\/wp-content\/uploads\/2026\/10\/Logo.webp\" alt=\"Alnoor Online Quran Academy\">\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"mip-brand-copy\">\n\t\t\t\t\t\t<strong>Alnoor Online Quran Academy Management<\/strong>\n\t\t\t\t\t\t<small>ONLINE QURAN ACADEMY \u2022 MANAGEMENT PORTAL<\/small>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"mip-header-right\">\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/header>\n\n\n\n\t\t\t\t\t\t\t\t\t\t<section class=\"mip-login-page\">\n\t\t\t\t\t<div class=\"mip-login-heading\">\n\t\t\t\t\t\t<span>WELCOME BACK<\/span>\n\t\t\t\t\t\t<h1>Sign in to your portal<\/h1>\n\t\t\t\t\t\t<p>Choose your account type to continue.<\/p>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\n\t\t\t\t\t<div class=\"mip-tabs\">\n\t\t\t\t\t\t<button type=\"button\" class=\"mip-tab active\" data-tab=\"admin\"><span><span class=\"mip-svg-icon\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"5\" y=\"4\" width=\"14\" height=\"16\" rx=\"4\"\/><circle cx=\"12\" cy=\"9\" r=\"2.5\"\/><path d=\"M8.5 17c.8-2 2-3 3.5-3s2.7 1 3.5 3\"\/><\/svg><\/span><\/span> Admin<\/button>\n\t\t\t\t\t\t<button type=\"button\" class=\"mip-tab \" data-tab=\"teacher\"><span><span class=\"mip-svg-icon\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"8\" r=\"3.5\"\/><path d=\"M5 21c.7-4 3-6 7-6s6.3 2 7 6\"\/><\/svg><\/span><\/span> Teacher<\/button>\n\t\t\t\t\t\t<button type=\"button\" class=\"mip-tab \" data-tab=\"student\"><span><span class=\"mip-svg-icon\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"m3 9 9-5 9 5-9 5-9-5Z\"\/><path d=\"M7 11.5V16c2.7 2 7.3 2 10 0v-4.5\"\/><\/svg><\/span><\/span> Student<\/button>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"mip-tab-panel active\" id=\"mip-tab-admin\">\n\t\t\t\t\t\t\t<div class=\"mip-login-card\">\n\t\t<div class=\"mip-login-icon\"><span class=\"mip-svg-icon\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"5\" y=\"4\" width=\"14\" height=\"16\" rx=\"4\"\/><circle cx=\"12\" cy=\"9\" r=\"2.5\"\/><path d=\"M8.5 17c.8-2 2-3 3.5-3s2.7 1 3.5 3\"\/><\/svg><\/span><\/div>\n\n\t\t<div>\n\t\t\t<h3>Administrator Login<\/h3>\n\t\t\t<p>Access your portal management dashboard.<\/p>\n\t\t<\/div>\n\n        \t\t<form method=\"post\" autocomplete=\"on\" class=\"mip-secure-login-form\">\n            <input type=\"hidden\" id=\"mip_login_nonce\" name=\"mip_login_nonce\" value=\"68e8868199\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/portal\/wp-json\/wp\/v2\/pages\/16\" \/>\t\t\t<input type=\"hidden\" name=\"mip_login_type\" value=\"admin\">\n\n\t\t\t<label>Administrator Username or Email<\/label>\n\t\t\t<div class=\"mip-input\">\n\t\t\t\t<span class=\"mip-svg-icon\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"5\" y=\"4\" width=\"14\" height=\"16\" rx=\"4\"\/><circle cx=\"12\" cy=\"9\" r=\"2.5\"\/><path d=\"M8.5 17c.8-2 2-3 3.5-3s2.7 1 3.5 3\"\/><\/svg><\/span>\t\t\t\t<input\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tname=\"mip_login_value\"\n\t\t\t\t\tplaceholder=\"Username or email\"\n\t\t\t\t\trequired\n\t\t\t\t>\n\t\t\t<\/div>\n\n\t\t\t<label>Password<\/label>\n\t\t\t<div class=\"mip-input\">\n\t\t\t\t<span class=\"mip-svg-icon\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"5\" y=\"10\" width=\"14\" height=\"10\" rx=\"2\"\/><path d=\"M8 10V7a4 4 0 0 1 8 0v3\"\/><\/svg><\/span>\t\t\t\t<input type=\"password\" name=\"mip_login_password\" placeholder=\"Enter password\" required>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"mip-login-actions\">\n\t\t\t\t<button type=\"submit\" name=\"mip_login_submit\" value=\"1\" class=\"mip-login-button\">Sign In<\/button>\n\t\t\t\t<a href=\"https:\/\/alnooronlinequranacademy.com\/\" class=\"mip-back-to-website\">Back to Website<\/a>\n\t\t\t<\/div>\n\t\t<\/form>\n\n\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"mip-tab-panel \" id=\"mip-tab-teacher\">\n\t\t\t\t\t\t\t<div class=\"mip-login-card\">\n\t\t<div class=\"mip-login-icon\"><span class=\"mip-svg-icon\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"8\" r=\"3.5\"\/><path d=\"M5 21c.7-4 3-6 7-6s6.3 2 7 6\"\/><\/svg><\/span><\/div>\n\n\t\t<div>\n\t\t\t<h3>Teacher Login<\/h3>\n\t\t\t<p>Access your classes and student schedule.<\/p>\n\t\t<\/div>\n\n        \t\t<form method=\"post\" autocomplete=\"on\" class=\"mip-secure-login-form\">\n            <input type=\"hidden\" id=\"mip_login_nonce\" name=\"mip_login_nonce\" value=\"68e8868199\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/portal\/wp-json\/wp\/v2\/pages\/16\" \/>\t\t\t<input type=\"hidden\" name=\"mip_login_type\" value=\"teacher\">\n\n\t\t\t<label>User ID or Email<\/label>\n\t\t\t<div class=\"mip-input\">\n\t\t\t\t<span class=\"mip-svg-icon\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"9\" cy=\"8\" r=\"3\"\/><circle cx=\"17\" cy=\"9\" r=\"2.5\"\/><path d=\"M3 20c.5-3.5 2.5-5 6-5s5.5 1.5 6 5M15 15c3 0 4.8 1.3 5.2 4\"\/><\/svg><\/span>\t\t\t\t<input\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tname=\"mip_login_value\"\n\t\t\t\t\tplaceholder=\"TCH-00001 or email\"\n\t\t\t\t\trequired\n\t\t\t\t>\n\t\t\t<\/div>\n\n\t\t\t<label>Password<\/label>\n\t\t\t<div class=\"mip-input\">\n\t\t\t\t<span class=\"mip-svg-icon\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"5\" y=\"10\" width=\"14\" height=\"10\" rx=\"2\"\/><path d=\"M8 10V7a4 4 0 0 1 8 0v3\"\/><\/svg><\/span>\t\t\t\t<input type=\"password\" name=\"mip_login_password\" placeholder=\"Enter password\" required>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"mip-login-actions\">\n\t\t\t\t<button type=\"submit\" name=\"mip_login_submit\" value=\"1\" class=\"mip-login-button\">Sign In<\/button>\n\t\t\t\t<a href=\"https:\/\/alnooronlinequranacademy.com\/\" class=\"mip-back-to-website\">Back to Website<\/a>\n\t\t\t<\/div>\n\t\t<\/form>\n\n\t\t\t\t\t<div class=\"mip-demo-note\">Demo password: <strong>Demo@12345<\/strong><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"mip-tab-panel \" id=\"mip-tab-student\">\n\t\t\t\t\t\t\t<div class=\"mip-login-card\">\n\t\t<div class=\"mip-login-icon\"><span class=\"mip-svg-icon\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"m3 9 9-5 9 5-9 5-9-5Z\"\/><path d=\"M7 11.5V16c2.7 2 7.3 2 10 0v-4.5\"\/><\/svg><\/span><\/div>\n\n\t\t<div>\n\t\t\t<h3>Student Login<\/h3>\n\t\t\t<p>View your teacher and upcoming classes.<\/p>\n\t\t<\/div>\n\n        \t\t<form method=\"post\" autocomplete=\"on\" class=\"mip-secure-login-form\">\n            <input type=\"hidden\" id=\"mip_login_nonce\" name=\"mip_login_nonce\" value=\"68e8868199\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/portal\/wp-json\/wp\/v2\/pages\/16\" \/>\t\t\t<input type=\"hidden\" name=\"mip_login_type\" value=\"student\">\n\n\t\t\t<label>User ID or Email<\/label>\n\t\t\t<div class=\"mip-input\">\n\t\t\t\t<span class=\"mip-svg-icon\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"9\" cy=\"8\" r=\"3\"\/><circle cx=\"17\" cy=\"9\" r=\"2.5\"\/><path d=\"M3 20c.5-3.5 2.5-5 6-5s5.5 1.5 6 5M15 15c3 0 4.8 1.3 5.2 4\"\/><\/svg><\/span>\t\t\t\t<input\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tname=\"mip_login_value\"\n\t\t\t\t\tplaceholder=\"STD-00001 or email\"\n\t\t\t\t\trequired\n\t\t\t\t>\n\t\t\t<\/div>\n\n\t\t\t<label>Password<\/label>\n\t\t\t<div class=\"mip-input\">\n\t\t\t\t<span class=\"mip-svg-icon\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"5\" y=\"10\" width=\"14\" height=\"10\" rx=\"2\"\/><path d=\"M8 10V7a4 4 0 0 1 8 0v3\"\/><\/svg><\/span>\t\t\t\t<input type=\"password\" name=\"mip_login_password\" placeholder=\"Enter password\" required>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"mip-login-actions\">\n\t\t\t\t<button type=\"submit\" name=\"mip_login_submit\" value=\"1\" class=\"mip-login-button\">Sign In<\/button>\n\t\t\t\t<a href=\"https:\/\/alnooronlinequranacademy.com\/\" class=\"mip-back-to-website\">Back to Website<\/a>\n\t\t\t<\/div>\n\t\t<\/form>\n\n\t\t\t\t\t<div class=\"mip-demo-note\">Demo password: <strong>Demo@12345<\/strong><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t\t\t\n\t\t<\/div>\n\t<\/div>\n\n\t<div class=\"mip-modal\" id=\"mip-teams-modal\"><div class=\"mip-modal-backdrop\" data-close-modal=\"teams\"><\/div><div class=\"mip-modal-card mip-teams-modal-card\"><button class=\"mip-modal-x\" type=\"button\" data-close-modal=\"teams\">\u00d7<\/button><div class=\"mip-modal-heading\"><span class=\"mip-kicker\">MICROSOFT TEAMS<\/span><h2>Class meeting<\/h2><p>Meeting stays inside the portal when Microsoft allows iframe embedding.<\/p><\/div><iframe id=\"mip-teams-frame\" title=\"Microsoft Teams class meeting\" allow=\"camera; microphone; fullscreen; display-capture\"><\/iframe><div class=\"mip-embed-note\">Microsoft may block meeting pages inside third-party iframes for browser security. The portal cannot override that restriction.<\/div><\/div><\/div>\n\t<div class=\"mip-modal\" id=\"mip-review-modal\"><div class=\"mip-modal-backdrop\" data-close-modal=\"review\"><\/div><div class=\"mip-modal-card mip-review-modal-card\"><button class=\"mip-modal-x\" type=\"button\" data-close-modal=\"review\">\u00d7<\/button><div id=\"mip-review-print-area\"><div class=\"mip-modal-heading\"><span class=\"mip-kicker\">PARENT REVIEW REPORT<\/span><h2 id=\"mip-review-title\">Completed class<\/h2><\/div><div class=\"mip-review-meta\" id=\"mip-review-meta\"><\/div><div class=\"mip-review-paper\" id=\"mip-review-body\"><\/div><h3>Teacher Lesson<\/h3><div class=\"mip-review-paper\" id=\"mip-admin-lesson-body\"><\/div><\/div><button type=\"button\" class=\"mip-primary-button\" id=\"mip-print-review\">Download as Image<\/button><\/div><\/div>\n\n\t\t<style>\n\t\/* =====================================================\n\t   ALNOOR ONLINE QURAN ACADEMY MANAGEMENT \u2014 UI SYSTEM\n\t   Full-width, device-responsive, light\/dark aware\n\t   ===================================================== *\/\n\n\t.mip-portal{\n\t\t--navy:#08233f;\n\t\t--navy-2:#0d3559;\n\t\t--navy-3:#14507f;\n\t\t--blue:#1f6fb2;\n\t\t--blue-soft:#eaf4fb;\n\t\t--gold:#d3a13a;\n\t\t--gold-soft:#fff8e8;\n\t\t--teal:#0d8aa6;\n\t\t--green:#15966b;\n\t\t--red:#d64545;\n\t\t--orange:#c97819;\n\t\t--ink:#102033;\n\t\t--muted:#6b7a90;\n\t\t--muted-2:#8c99a8;\n\t\t--line:#e5eaf0;\n\t\t--line-2:#d4dde7;\n\t\t--surface:#ffffff;\n\t\t--surface-2:#f6f9fc;\n\t\t--page:#eef3f8;\n\t\t--shadow-color:rgba(8,35,63,.10);\n\t\twidth:100%;\n\t\tmin-height:100vh;\n\t\tmargin:0;\n\t\tcolor:var(--ink);\n\t\tbackground:\n\t\t\tradial-gradient(circle at 90% 0%, rgba(31,111,178,.13), transparent 23%),\n\t\t\tradial-gradient(circle at 0% 15%, rgba(211,161,58,.08), transparent 20%),\n\t\t\tlinear-gradient(180deg,#f8fbfe 0%,#eef3f8 100%);\n\t\tfont-family:Inter,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Arial,sans-serif;\n\t\t-webkit-font-smoothing:antialiased;\n\t\ttransition:background-color .25s ease, color .25s ease;\n\t}\n\n\t\/* Dark mode: explicit toggle, or system preference when no explicit choice made *\/\n\t.mip-portal[data-theme=\"dark\"]{\n\t\t--navy:#e7edf5;\n\t\t--navy-2:#c7d6e8;\n\t\t--navy-3:#8fb4dc;\n\t\t--blue:#5aa4e0;\n\t\t--blue-soft:#132c47;\n\t\t--gold:#e8bf6f;\n\t\t--gold-soft:#332a12;\n\t\t--teal:#41c0de;\n\t\t--green:#3fcf9c;\n\t\t--red:#ef7272;\n\t\t--orange:#e8a558;\n\t\t--ink:#eef3f9;\n\t\t--muted:#9fb0c4;\n\t\t--muted-2:#7f92a8;\n\t\t--line:#22354c;\n\t\t--line-2:#2c4160;\n\t\t--surface:#101d30;\n\t\t--surface-2:#16273e;\n\t\t--page:#0a1728;\n\t\t--shadow-color:rgba(0,0,0,.45);\n\t\tbackground:\n\t\t\tradial-gradient(circle at 90% 0%, rgba(31,111,178,.18), transparent 25%),\n\t\t\tradial-gradient(circle at 0% 15%, rgba(211,161,58,.08), transparent 22%),\n\t\t\tlinear-gradient(180deg,#0a1728 0%,#0a1220 100%);\n\t}\n\n\t@media (prefers-color-scheme: dark){\n\t\t.mip-portal:not([data-theme]):not([data-theme=\"light\"]){\n\t\t\t--navy:#e7edf5;\n\t\t\t--navy-2:#c7d6e8;\n\t\t\t--navy-3:#8fb4dc;\n\t\t\t--blue:#5aa4e0;\n\t\t\t--blue-soft:#132c47;\n\t\t\t--gold:#e8bf6f;\n\t\t\t--gold-soft:#332a12;\n\t\t\t--teal:#41c0de;\n\t\t\t--green:#3fcf9c;\n\t\t\t--red:#ef7272;\n\t\t\t--orange:#e8a558;\n\t\t\t--ink:#eef3f9;\n\t\t\t--muted:#9fb0c4;\n\t\t\t--muted-2:#7f92a8;\n\t\t\t--line:#22354c;\n\t\t\t--line-2:#2c4160;\n\t\t\t--surface:#101d30;\n\t\t\t--surface-2:#16273e;\n\t\t\t--page:#0a1728;\n\t\t\t--shadow-color:rgba(0,0,0,.45);\n\t\t\tbackground:\n\t\t\t\tradial-gradient(circle at 90% 0%, rgba(31,111,178,.18), transparent 25%),\n\t\t\t\tradial-gradient(circle at 0% 15%, rgba(211,161,58,.08), transparent 22%),\n\t\t\t\tlinear-gradient(180deg,#0a1728 0%,#0a1220 100%);\n\t\t}\n\t}\n\n\t.mip-portal *, .mip-portal *::before, .mip-portal *::after{ box-sizing:border-box; }\n\t.mip-portal button, .mip-portal input, .mip-portal select{ font-family:inherit; }\n\n\t\/* Neutral link\/focus reset so no theme default (pink or otherwise) leaks through *\/\n\t.mip-portal a{ color:inherit; text-decoration:none; }\n\t.mip-portal a:hover, .mip-portal a:focus, .mip-portal a:visited, .mip-portal a:active{  text-decoration:none; }\n\t.mip-portal button{ background:none; }\n\t.mip-portal *:focus-visible{ outline:2px solid var(--blue); outline-offset:2px; }\n\n\t.mip-svg-icon{\n\t\twidth:20px; height:20px; min-width:20px;\n\t\tdisplay:inline-flex !important;\n\t\talign-items:center; justify-content:center;\n\t\tflex:0 0 auto; line-height:0; vertical-align:middle;\n\t}\n\t.mip-svg-icon svg{\n\t\twidth:100% !important; height:100% !important;\n\t\tmin-width:100%; min-height:100%;\n\t\tdisplay:block !important; visibility:visible !important; opacity:1 !important;\n\t\tfill:none !important; stroke:currentColor !important;\n\t\tstroke-width:1.8 !important; stroke-linecap:round !important; stroke-linejoin:round !important;\n\t\toverflow:visible !important;\n\t}\n\n\t\/* Full width shell \u2014 no hard cap, fluid padding scales with viewport *\/\n\t.mip-shell{ width:100%; max-width:100%; margin:0 auto; padding:0 clamp(16px, 3vw, 48px) 72px; }\n\n\t\/* Header *\/\n\t.mip-header{\n\t\tposition:relative; min-height:92px;\n\t\tdisplay:flex; align-items:center; justify-content:space-between; gap:24px;\n\t\tborder-bottom:1px solid var(--line);\n\t}\n\t.mip-header::after{\n\t\tcontent:\"\"; position:absolute; left:0; right:0; bottom:-1px; height:2px;\n\t\tbackground:linear-gradient(90deg,transparent,var(--blue) 22%,var(--gold) 50%,var(--blue) 78%,transparent);\n\t\topacity:.65;\n\t}\n\t.mip-brand{ display:flex; align-items:center; gap:14px; min-width:0; }\n\t.mip-logo{\n\t\twidth:52px; height:52px; border-radius:16px;\n\t\tdisplay:flex; align-items:center; justify-content:center; flex:0 0 auto;\n\t\tcolor:#fff; background:linear-gradient(145deg,#0e4e7e,#08233f);\n\t\tborder:1px solid rgba(255,255,255,.22);\n\t\tbox-shadow:0 12px 28px var(--shadow-color), inset 0 1px 0 rgba(255,255,255,.15);\n\t}\n\t.mip-logo .mip-svg-icon{ width:27px; height:27px; }\n\t.mip-brand-copy{ min-width:0; }\n\t.mip-brand-copy strong{ display:block; margin:0; color:var(--navy); font-size:17px; line-height:1.2; letter-spacing:-.35px; font-weight:800; }\n\t.mip-brand-copy small{ display:block; margin-top:5px; color:var(--muted-2); font-size:9px; font-weight:800; letter-spacing:1.3px; }\n\n\t.mip-header-right{ display:flex; align-items:center; gap:12px; }\n\t.mip-theme-toggle{\n\t\twidth:40px; height:40px; border-radius:10px;\n\t\tdisplay:flex; align-items:center; justify-content:center;\n\t\tborder:1px solid var(--line-2); background:var(--surface); color:var(--navy);\n\t\tcursor:pointer; transition:.2s ease;\n\t}\n\t.mip-theme-toggle:hover{ border- transform:translateY(-1px); box-shadow:0 8px 18px var(--shadow-color); }\n\t.mip-theme-toggle .mip-theme-icon{ width:18px; height:18px; display:none; }\n\t.mip-theme-toggle .mip-theme-icon-sun{ display:inline-flex; }\n\t.mip-portal[data-theme=\"dark\"] .mip-theme-toggle .mip-theme-icon-sun{ display:none; }\n\t.mip-portal[data-theme=\"dark\"] .mip-theme-toggle .mip-theme-icon-moon{ display:inline-flex; }\n\t@media (prefers-color-scheme: dark){\n\t\t.mip-portal:not([data-theme=\"light\"]) .mip-theme-toggle .mip-theme-icon-sun{ display:none; }\n\t\t.mip-portal:not([data-theme=\"light\"]) .mip-theme-toggle .mip-theme-icon-moon{ display:inline-flex; }\n\t}\n\n\t.mip-header-user{ display:flex; align-items:center; gap:12px; }\n\t.mip-header-user span{ color:var(--muted); font-size:12px; font-weight:700; }\n\t.mip-header-user a{\n\t\tdisplay:inline-flex; align-items:center; justify-content:center;\n\t\tmin-height:38px; padding:0 14px; border-radius:10px;\n\t\tborder:1px solid var(--line-2); background:var(--surface); color:var(--navy) !important;\n\t\tfont-size:11px; font-weight:800; transition:.2s ease;\n\t}\n\t.mip-header-user a:hover{ border- transform:translateY(-1px); box-shadow:0 8px 18px var(--shadow-color); }\n\n\t\/* Login \/ front page *\/\n\t.mip-login-page{ width:100%; max-width:920px; margin:0 auto; padding:66px 0 30px; }\n\t.mip-login-heading{ text-align:center; margin-bottom:28px; }\n\t.mip-login-heading>span{ color:var(--blue); font-size:10px; font-weight:900; letter-spacing:2px; }\n\t.mip-login-heading h1{ margin:9px 0 8px; color:var(--navy); font-size:clamp(28px,4vw,40px); line-height:1.08; letter-spacing:-1.9px; font-weight:850; }\n\t.mip-login-heading p{ max-width:620px; margin:0 auto; color:var(--muted); font-size:14px; line-height:1.65; }\n\n\t.mip-tabs{\n\t\tdisplay:grid; grid-template-columns:repeat(4,1fr); gap:7px; padding:7px; margin-bottom:18px;\n\t\tbackground:var(--surface-2); border:1px solid var(--line); border-radius:17px;\n\t}\n\t.mip-tab{\n\t\tmin-height:58px; border:0; border-radius:12px; background:transparent; color:var(--muted); cursor:pointer;\n\t\tdisplay:flex; align-items:center; justify-content:center; gap:9px; font-size:12px; font-weight:800; transition:.2s ease;\n\t}\n\t.mip-tab:hover{   }\n\t.mip-tab .mip-svg-icon{ width:18px; height:18px; }\n\t.mip-tab.active{ color:var(--navy); background:var(--surface); box-shadow:0 10px 24px var(--shadow-color); }\n\t.mip-tab.active .mip-svg-icon{ color:var(--blue); }\n\t.mip-tab-panel{ display:none; }\n\t.mip-tab-panel.active{ display:block; animation:mipFade .25s ease; }\n\t@keyframes mipFade{ from{ opacity:0; transform:translateY(5px); } to{ opacity:1; transform:none; } }\n\n\t.mip-welcome{\n\t\tposition:relative; overflow:hidden; min-height:395px; padding:62px 48px;\n\t\tbackground:\n\t\t\tradial-gradient(circle at 78% 16%,rgba(31,111,178,.13),transparent 22%),\n\t\t\tradial-gradient(circle at 8% 80%,rgba(211,161,58,.10),transparent 24%),\n\t\t\tvar(--surface);\n\t\tborder:1px solid var(--line); border-radius:22px; text-align:center;\n\t\tbox-shadow:0 24px 60px var(--shadow-color);\n\t}\n\t.mip-welcome::before,.mip-welcome::after{ content:\"\"; position:absolute; border-radius:999px; pointer-events:none; }\n\t.mip-welcome::before{ width:180px; height:180px; right:-90px; top:-80px; border:1px solid rgba(31,111,178,.13); }\n\t.mip-welcome::after{ width:130px; height:130px; left:-65px; bottom:-60px; border:1px solid rgba(211,161,58,.15); }\n\t.mip-welcome-icon{\n\t\twidth:74px; height:74px; margin:0 auto 20px; display:flex; align-items:center; justify-content:center;\n\t\tcolor:#fff; background:linear-gradient(145deg,#14507f,#08233f); border-radius:21px;\n\t\tbox-shadow:0 18px 34px var(--shadow-color);\n\t}\n\t.mip-welcome-icon .mip-svg-icon{ width:33px; height:33px; }\n\t.mip-welcome>span{ color:var(--gold); font-size:10px; font-weight:900; letter-spacing:2.1px; }\n\t.mip-welcome h2{ max-width:620px; margin:11px auto; font-size:clamp(24px,3.5vw,32px); line-height:1.14; letter-spacing:-1.4px; color:var(--navy); }\n\t.mip-welcome p{ max-width:650px; margin:0 auto; color:var(--muted); font-size:14px; line-height:1.8; }\n\t.mip-welcome-pills{ display:flex; justify-content:center; gap:9px; margin-top:28px; flex-wrap:wrap; }\n\t.mip-welcome-pills span{\n\t\tdisplay:inline-flex; align-items:center; gap:7px; padding:9px 12px; border:1px solid var(--line); border-radius:999px;\n\t\tcolor:var(--muted); background:var(--surface-2); font-size:10px; font-weight:800;\n\t}\n\t.mip-welcome-pills .mip-svg-icon{ width:15px; height:15px; color:var(--blue); }\n\n\t.mip-login-card{\n\t\tmax-width:560px; margin:0 auto; padding:34px; background:var(--surface); border:1px solid var(--line); border-radius:20px;\n\t\tbox-shadow:0 24px 60px var(--shadow-color);\n\t}\n\t.mip-login-icon{ width:48px; height:48px; margin-bottom:17px; display:flex; align-items:center; justify-content:center; border-radius:13px; color:var(--blue); background:var(--blue-soft); }\n\t.mip-login-icon .mip-svg-icon{ width:23px; height:23px; }\n\t.mip-login-card h3{ margin:0 0 6px; color:var(--navy); font-size:23px; letter-spacing:-.7px; }\n\t.mip-login-card>div>p{ margin:0 0 24px; color:var(--muted); font-size:13px; line-height:1.65; }\n\t.mip-login-card form label{ display:block; margin:15px 0 7px; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.2px; }\n\t.mip-input{ position:relative; }\n\t.mip-input .mip-svg-icon{ position:absolute; left:13px; top:50%; transform:translateY(-50%); z-index:1; color:var(--muted-2); width:17px; height:17px; }\n\t.mip-input input{ width:100%; height:50px; padding:0 14px 0 41px; border:1px solid var(--line-2); border-radius:10px; outline:none; background:var(--surface); color:var(--ink); font-size:13px; transition:.2s; }\n\t.mip-input input:focus{ border-color:var(--blue); box-shadow:0 0 0 4px rgba(31,111,178,.10); }\n\t.mip-login-button{\n\t\twidth:100%; height:51px; margin-top:22px; border:0; border-radius:11px; color:#fff;\n\t\tbackground:linear-gradient(135deg,#0f4f7e,#08233f); cursor:pointer; font-size:13px; font-weight:850;\n\t\tbox-shadow:0 12px 24px var(--shadow-color); transition:.2s;\n\t}\n\t.mip-login-button:hover{ transform:translateY(-1px); box-shadow:0 16px 28px var(--shadow-color); }\n\t.mip-demo-note{ margin-top:14px; padding:10px 12px; border:1px solid var(--line); border-radius:9px; background:var(--surface-2); color:var(--muted); text-align:center; font-size:10px; }\n\t.mip-demo-note strong{ color:var(--navy); }\n\n\t.mip-error{ display:flex; align-items:center; gap:9px; margin-bottom:16px; padding:12px 14px; color:#ad2e2e; background:#fff7f7; border:1px solid #f3cccc; border-radius:10px; font-size:12px; }\n\t.mip-portal[data-theme=\"dark\"] .mip-error{ color:#ffb3b3; background:#331414; border-color:#5c2323; }\n\t.mip-error>strong{ width:24px; height:24px; display:flex; align-items:center; justify-content:center; border-radius:50%; color:#fff; background:var(--blue); }\n\t.mip-error>strong .mip-svg-icon{ width:14px; height:14px; }\n\n\t\/* Dashboard *\/\n\t.mip-dashboard{ width:100%; padding:34px 0 20px; }\n\t.mip-admin-status{\n\t\tdisplay:flex; align-items:center; gap:12px; padding:14px 16px; margin-bottom:25px;\n\t\tbackground:linear-gradient(90deg,rgba(21,150,107,.10),rgba(21,150,107,.04));\n\t\tborder:1px solid rgba(21,150,107,.35); border-radius:12px;\n\t}\n\t.mip-status-check{ width:34px; height:34px; display:flex; align-items:center; justify-content:center; border-radius:10px; color:#fff; background:var(--green); box-shadow:0 8px 18px rgba(21,150,107,.20); }\n\t.mip-admin-status strong{ display:block; color:var(--green); font-size:12px; }\n\t.mip-admin-status span{ display:block; margin-top:3px; color:var(--muted); font-size:10px; }\n\n\t.mip-message{ padding:12px 14px; margin-bottom:20px; border-radius:10px; font-size:12px; font-weight:700; }\n\t.mip-message.success{ color:var(--green); background:rgba(21,150,107,.10); border:1px solid rgba(21,150,107,.35); }\n\t.mip-message.error{ color:var(--red); background:rgba(214,69,69,.10); border:1px solid rgba(214,69,69,.35); }\n\n\t.mip-dashboard-heading{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:28px; flex-wrap:wrap; }\n\t.mip-kicker{ color:var(--blue); font-size:9px; font-weight:900; letter-spacing:1.8px; }\n\t.mip-dashboard-heading h1{ margin:7px 0 6px; color:var(--navy); font-size:clamp(24px,3.5vw,35px); line-height:1.1; letter-spacing:-1.6px; }\n\t.mip-dashboard-heading p{ margin:0; color:var(--muted); font-size:13px; line-height:1.6; }\n\t.mip-logout{ display:inline-flex; align-items:center; gap:7px; min-height:40px; padding:0 14px; color:var(--navy) !important; background:var(--surface); border:1px solid var(--line-2); border-radius:10px; font-size:11px; font-weight:800; transition:.2s; }\n\t.mip-logout:hover{ border- box-shadow:0 10px 20px var(--shadow-color); transform:translateY(-1px); }\n\t.mip-logout .mip-svg-icon{ width:15px; height:15px; }\n\n\t.mip-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:15px; margin-bottom:22px; }\n\t.mip-five-stats{ grid-template-columns:repeat(5,1fr); }\n\t.mip-stat-card{\n\t\tposition:relative; min-height:140px; padding:19px 19px 18px;\n\t\tbackground:var(--surface); border:1px solid var(--line); border-radius:15px;\n\t\tbox-shadow:0 14px 32px var(--shadow-color); overflow:hidden; transition:.2s ease;\n\t}\n\t.mip-stat-card::after{ content:\"\"; position:absolute; left:0; bottom:0; width:100%; height:3px; background:linear-gradient(90deg,var(--navy),var(--blue),var(--gold)); opacity:.75; }\n\t.mip-stat-card:hover{ transform:translateY(-2px); box-shadow:0 18px 34px var(--shadow-color); }\n\t.mip-stat-icon{ width:39px; height:39px; display:flex; align-items:center; justify-content:center; float:right; border-radius:11px; }\n\t.mip-stat-icon .mip-svg-icon{ width:19px; height:19px; }\n\t.mip-stat-icon.blue{ color:var(--blue); background:var(--blue-soft); }\n\t.mip-stat-icon.purple{ color:#6f55c8; background:var(--surface-2); }\n\t.mip-stat-icon.green{ color:var(--green); background:var(--surface-2); }\n\t.mip-stat-icon.orange{ color:var(--orange); background:var(--surface-2); }\n\t.mip-stat-card>span{ display:block; color:var(--muted); font-size:10px; font-weight:800; }\n\t.mip-stat-card>strong{ display:block; clear:both; margin-top:15px; color:var(--navy); font-size:28px; line-height:1.2; letter-spacing:-.9px; }\n\t.mip-small-stat{ font-size:16px !important; line-height:1.35 !important; }\n\n\t.mip-panel{ margin-bottom:22px; background:var(--surface); border:1px solid var(--line); border-radius:17px; overflow:hidden; box-shadow:0 14px 34px var(--shadow-color); }\n\t.mip-panel-header{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 23px; border-bottom:1px solid var(--line); background:var(--surface); flex-wrap:wrap; }\n\t.mip-panel-header h2{ margin:6px 0 0; color:var(--navy); font-size:20px; letter-spacing:-.55px; }\n\t.mip-panel-header p{ margin:5px 0 0; color:var(--muted); font-size:11px; line-height:1.55; }\n\t.mip-panel-header-icon{ width:38px; height:38px; display:flex; align-items:center; justify-content:center; border-radius:11px; color:var(--blue); background:var(--blue-soft); }\n\t.mip-panel-header-icon .mip-svg-icon{ width:19px; height:19px; }\n\n\t.mip-create-form{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) minmax(130px,.7fr); gap:13px; padding:21px 23px; align-items:end; }\n\t.mip-create-form label,.mip-modal-inner label{ display:block; margin-bottom:7px; color:var(--muted); font-size:10px; font-weight:800; }\n\t.mip-create-form input,.mip-create-form select,.mip-modal-inner input,.mip-modal-inner select{ width:100%; height:44px; padding:0 12px; border:1px solid var(--line-2); border-radius:9px; outline:none; font-size:12px; color:var(--ink); background:var(--surface); transition:.2s; }\n\t.mip-create-form input:focus,.mip-create-form select:focus,.mip-modal-inner input:focus{ border-color:var(--blue); box-shadow:0 0 0 3px rgba(31,111,178,.08); }\n\t.mip-form-submit button{ height:44px; display:flex; align-items:center; justify-content:center; gap:7px; padding:0 15px; border:0; border-radius:9px; color:#fff; background:linear-gradient(135deg,#123f63,#08233f); cursor:pointer; font-size:11px; font-weight:850; white-space:nowrap; box-shadow:0 10px 18px var(--shadow-color); transition:.2s; }\n\t.mip-form-submit button:hover{ transform:translateY(-1px); box-shadow:0 14px 24px var(--shadow-color); }\n\t.mip-form-submit .mip-svg-icon{ width:15px; height:15px; }\n\n\t\/* Class management *\/\n\t.mip-class-form{ grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; padding-bottom:22px; }\n\t.mip-teams-field{ grid-column:span 2; }\n\t.mip-user-picker{ position:relative; }\n\t.mip-picker-results{ display:none; position:absolute; z-index:80; top:74px; left:0; right:0; max-height:240px; overflow:auto; padding:6px; background:var(--surface); border:1px solid var(--line-2); border-radius:11px; box-shadow:0 18px 35px var(--shadow-color); }\n\t.mip-picker-results.open{ display:block; }\n\t.mip-picker-item{ width:100%; display:flex; flex-direction:column; align-items:flex-start; gap:3px; padding:11px; border:0; border-radius:8px; background:transparent; color:var(--ink); text-align:left; cursor:pointer; transition:.15s; }\n\t.mip-picker-item:hover{  }\n\t.mip-picker-item strong{ font-size:12px; color:var(--navy); }\n\t.mip-picker-item span{ color:var(--muted-2); font-size:10px; }\n\t.mip-picker-empty{ padding:13px; color:var(--muted-2); font-size:11px; text-align:center; }\n\t.mip-selected-user{ min-height:40px; margin-top:7px; padding:8px 10px; border:1px dashed var(--line-2); border-radius:8px; background:var(--surface-2); color:var(--muted); font-size:10px; }\n\t.mip-selected-user strong,.mip-selected-user span{ display:block; }\n\t.mip-selected-user strong{ color:var(--navy); font-size:11px; }\n\t.mip-selected-user span{ margin-top:2px; color:var(--muted-2); }\n\t.mip-class-form .mip-form-submit{ align-self:end; }\n\t.mip-class-form button.loading{ opacity:.65; cursor:wait; }\n\n\t.mip-search-area{ display:flex; gap:10px; padding:17px 23px; background:var(--surface-2); border-bottom:1px solid var(--line); }\n\t.mip-search-box{ position:relative; flex:1; }\n\t.mip-search-box>.mip-svg-icon{ position:absolute; left:13px; top:50%; transform:translateY(-50%); z-index:2; width:16px; height:16px; color:var(--muted-2); }\n\t.mip-search-box input,.mip-search-area select{ height:43px; border:1px solid var(--line-2); border-radius:9px; background:var(--surface); outline:none; font-size:11px; color:var(--ink); }\n\t.mip-search-box input{ width:100%; padding:0 13px 0 38px; }\n\t.mip-search-area select{ min-width:155px; padding:0 11px; }\n\t.mip-search-box input:focus,.mip-search-area select:focus{ border-color:var(--blue); box-shadow:0 0 0 3px rgba(31,111,178,.08); }\n\n\t\/* User table *\/\n\t.mip-user-table-wrap{ width:100%; min-height:110px; }\n\t.mip-table-scroll{ overflow-x:auto; }\n\t.mip-user-table-wrap table{ width:100%; min-width:900px; border-collapse:collapse; }\n\t.mip-user-table-wrap th{ padding:13px 17px; text-align:left; background:var(--surface-2); color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.8px; font-weight:900; }\n\t.mip-user-table-wrap td{ padding:14px 17px; border-top:1px solid var(--line); color:var(--muted); font-size:11px; vertical-align:middle; }\n\t.mip-user-table-wrap tr:hover td{  }\n\t.mip-user-id{ color:var(--blue); font-size:11px; }\n\t.mip-role{ display:inline-flex; align-items:center; padding:6px 9px; border-radius:999px; font-size:9px; font-weight:800; }\n\t.mip-role.teacher{ color:var(--blue); background:var(--blue-soft); }\n\t.mip-role.student{ color:var(--green); background:rgba(21,150,107,.12); }\n\t.mip-password{ padding:5px 7px; border-radius:6px; color:var(--ink); background:var(--surface-2); font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:10px; }\n\t.mip-actions{ display:flex; align-items:center; gap:6px; white-space:nowrap; }\n\t.mip-actions form{ margin:0; }\n\t.mip-action{ width:31px; height:31px; display:flex; align-items:center; justify-content:center; border:1px solid var(--line-2); border-radius:8px; cursor:pointer; background:var(--surface); transition:.17s; }\n\t.mip-action:hover{ transform:translateY(-1px); box-shadow:0 7px 15px var(--shadow-color); }\n\t.mip-action .mip-svg-icon{ width:15px; height:15px; }\n\t.mip-action.edit{ color:var(--blue); }\n\t.mip-action.delete{ color:var(--blue); }\n\t.mip-loading,.mip-empty{ padding:47px; text-align:center; color:var(--muted-2); font-size:12px; }\n\n\t\/* Schedule *\/\n\t.mip-empty-dashboard{ padding:68px 25px; text-align:center; }\n\t.mip-empty-dashboard>div{ width:58px; height:58px; margin:0 auto 14px; display:flex; align-items:center; justify-content:center; color:var(--blue); background:var(--blue-soft); border-radius:16px; }\n\t.mip-empty-dashboard>div .mip-svg-icon{ width:24px; height:24px; }\n\t.mip-empty-dashboard h3{ margin:0 0 7px; color:var(--navy); font-size:17px; }\n\t.mip-empty-dashboard p{ margin:0; color:var(--muted); font-size:12px; line-height:1.6; }\n\t.mip-class-table-wrap{ width:100%; overflow-x:auto; }\n\t.mip-class-table{ width:100%; min-width:860px; border-collapse:collapse; }\n\t.mip-class-table th{ padding:12px 14px; border-bottom:1px solid var(--line); background:var(--surface-2); color:var(--muted); font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.7px; text-align:left; }\n\t.mip-class-table td{ padding:14px; border-bottom:1px solid var(--line); color:var(--muted); font-size:11px; vertical-align:middle; }\n\t.mip-class-table td strong{ display:block; color:var(--navy); font-size:11px; }\n\t.mip-class-table td small{ display:block; margin-top:3px; color:var(--muted-2); font-size:9px; }\n\t.mip-session-badge,.mip-class-status{ display:inline-flex; align-items:center; padding:6px 9px; border-radius:999px; font-size:9px; font-weight:800; }\n\t.mip-session-badge{ color:#6f55c8; background:var(--surface-2); }\n\t.mip-class-status.scheduled{ color:var(--blue); background:var(--blue-soft); }\n\t.mip-class-status.completed{ color:var(--green); background:rgba(21,150,107,.12); }\n\n\t.mip-teams-join{\n\t\tdisplay:inline-flex; align-items:center; gap:6px; padding:7px 11px; border-radius:8px;\n\t\tcolor:#fff !important; background:linear-gradient(135deg,#4b53bc,#333f8f);\n\t\tfont-size:9px; font-weight:800; white-space:nowrap; transition:.17s;\n\t}\n\t.mip-teams-join .mip-svg-icon{ width:13px; height:13px; }\n\t.mip-teams-join:hover{ transform:translateY(-1px); box-shadow:0 8px 16px var(--shadow-color);  }\n\t.mip-teams-none{ color:var(--muted-2); font-size:10px; font-style:italic; }\n\n\t.mip-mark-complete{\n\t\tdisplay:inline-flex; align-items:center; gap:6px; padding:8px 12px; border-radius:8px;\n\t\tborder:1px solid var(--line-2); background:var(--surface); color:var(--navy);\n\t\tfont-size:10px; font-weight:800; cursor:pointer; transition:.17s; white-space:nowrap;\n\t}\n\t.mip-mark-complete .mip-svg-icon{ width:13px; height:13px; }\n\t.mip-mark-complete:hover:not(:disabled){ border-  transform:translateY(-1px); box-shadow:0 8px 16px var(--shadow-color); }\n\t.mip-mark-complete:disabled{ color:var(--green); background:rgba(21,150,107,.12); border-color:rgba(21,150,107,.35); cursor:default; opacity:.9; }\n\t.mip-mark-complete.loading{ opacity:.6; cursor:wait; }\n\n\t\/* Modal *\/\n\t.mip-modal{ position:fixed; inset:0; z-index:999999; display:none; align-items:center; justify-content:center; padding:20px; background:rgba(5,24,44,.56); backdrop-filter:blur(6px); }\n\t.mip-modal.open{ display:flex; }\n\t.mip-modal-inner{ position:relative; width:100%; max-width:470px; padding:32px; background:var(--surface); border:1px solid var(--line); border-radius:18px; box-shadow:0 35px 80px var(--shadow-color); }\n\t.mip-modal-inner h2{ margin:7px 0 22px; color:var(--navy); font-size:25px; letter-spacing:-1px; }\n\t.mip-modal-inner label{ margin-top:13px; }\n\t.mip-modal-close{ position:absolute; top:14px; right:14px; width:32px; height:32px; display:flex; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:9px; background:var(--surface-2); color:var(--muted); cursor:pointer; transition:.17s; }\n\t.mip-modal-close:hover{   }\n\t.mip-modal-close .mip-svg-icon{ width:15px; height:15px; }\n\t.mip-modal-save{ width:100%; height:45px; margin-top:20px; border:0; border-radius:9px; color:#fff; background:linear-gradient(135deg,#123f63,#08233f); cursor:pointer; font-size:12px; font-weight:850; }\n\n\t\/* Mobile *\/\n\t@media(max-width:1050px){\n\t\t.mip-five-stats{ grid-template-columns:repeat(3,1fr); }\n\t\t.mip-create-form{ grid-template-columns:repeat(2,minmax(0,1fr)); }\n\t\t.mip-create-form .mip-form-submit{ grid-column:span 2; }\n\t\t.mip-class-form{ grid-template-columns:repeat(2,minmax(0,1fr)); }\n\t\t.mip-class-form .mip-form-submit,.mip-teams-field{ grid-column:span 2; }\n\t}\n\n\t@media(max-width:720px){\n\t\t.mip-shell{ padding:0 14px 48px; }\n\t\t.mip-header{ min-height:78px; }\n\t\t.mip-brand-copy strong{ font-size:14px; }\n\t\t.mip-brand-copy small{ font-size:7px; letter-spacing:1px; }\n\t\t.mip-logo{ width:46px; height:46px; border-radius:14px; }\n\t\t.mip-login-page{ padding-top:48px; }\n\t\t.mip-tabs{ grid-template-columns:1fr 1fr; }\n\t\t.mip-welcome{ padding:44px 22px; }\n\t\t.mip-login-card{ padding:25px; }\n\t\t.mip-dashboard-heading{ align-items:flex-start; flex-direction:column; }\n\t\t.mip-stats,.mip-five-stats{ grid-template-columns:1fr 1fr; }\n\t\t.mip-create-form,.mip-class-form{ grid-template-columns:1fr; }\n\t\t.mip-create-form .mip-form-submit,.mip-class-form .mip-form-submit,.mip-teams-field{ grid-column:auto; }\n\t\t.mip-search-area{ flex-direction:column; }\n\t\t.mip-search-area select{ width:100%; }\n\t}\n\n\t@media(max-width:460px){\n\t\t.mip-brand-copy strong{ max-width:180px; font-size:12px; }\n\t\t.mip-brand-copy small{ display:none; }\n\t\t.mip-header-user span{ display:none; }\n\t\t.mip-stats,.mip-five-stats{ grid-template-columns:1fr; }\n\t\t.mip-welcome-pills{ justify-content:flex-start; }\n\t\t.mip-welcome-pills span{ width:100%; justify-content:center; }\n\t}\n\t\/* v7 reference-image palette: navy + gold + white\/light-grey; no pink\/red\/purple accents *\/\n\t.mip-portal{--navy:#102b4e;--navy-2:#0b213d;--navy-3:#173d68;--blue:#173d68;--blue-soft:#edf3f8;--gold:#f5a900;--gold-soft:#fff7dc;--green:#173d68;--red:#b77900;--orange:#d89000;--page:#e9eef5;--surface:#fff;--surface-2:#f5f7fa;--ink:#142238;--muted:#66758a;--line:#d6dee8;--line-2:#c6d0dc;}\n\t.mip-stat-icon.purple,.mip-stat-icon.green,.mip-stat-icon.orange{color:var(--navy);background:var(--gold-soft);}\n\t.mip-role.student,.mip-class-status.completed,.mip-mark-complete:disabled{color:var(--navy);background:var(--gold-soft);border-color:rgba(245,169,0,.45);}\n\t.mip-session-badge{color:var(--navy);background:var(--gold-soft);}\n\t.mip-teams-join,.mip-login-button,.mip-form-submit button,.mip-modal-save{color:#fff!important;background:linear-gradient(135deg,#173d68,#0b213d)!important;}\n\t.mip-mark-complete{color:#fff;background:linear-gradient(135deg,#173d68,#0b213d);border-color:#102b4e;}\n\t.mip-mark-complete:hover:not(:disabled){border-}\n\t.mip-message.error,.mip-error{color:#7a5600;background:#fff8e2;border-color:#efcf72;}\n\t.mip-feature-class{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:22px;padding:24px;border:2px solid var(--gold);border-radius:17px;background:var(--surface);box-shadow:0 14px 34px var(--shadow-color);}\n\t.mip-feature-class h2{margin:7px 0 6px;color:var(--navy);font-size:22px}.mip-feature-class p{margin:0;color:var(--muted);font-size:12px}.mip-large-button{padding:12px 16px;font-size:11px}.mip-feature-actions{display:flex;align-items:center;gap:10px}\n\t.mip-activity-tabs{display:flex;gap:8px;flex-wrap:wrap}.mip-activity-tab{padding:10px 14px;border:1px solid var(--line-2);border-radius:9px;background:var(--surface-2)!important;color:var(--navy);font-size:10px;font-weight:850;cursor:pointer}.mip-activity-tab.active{background:var(--navy)!important;color:#fff;border-color:var(--navy)}\n\t.mip-panel,.mip-stat-card,.mip-login-card{border-color:#d4dde7}.mip-panel-header{border-top:2px solid var(--gold)}\n\t@media(max-width:720px){.mip-feature-class{align-items:flex-start;flex-direction:column}.mip-feature-actions,.mip-large-button{width:100%}.mip-large-button{justify-content:center}}\n\n\n\t\/* v8 readability, full-width layout and navy-only interactive states *\/\n\t.mip-portal{font-size:16px;}\n\t.mip-shell{width:100%!important;max-width:none!important;margin:0!important;padding-left:clamp(18px,2.2vw,36px)!important;padding-right:clamp(18px,2.2vw,36px)!important;box-sizing:border-box;}\n\t.mip-dashboard{width:100%!important;max-width:none!important;}\n\t.mip-panel,.mip-stat-card,.mip-login-card,.mip-feature-class{box-sizing:border-box;}\n\t.mip-dashboard-heading h1{font-size:32px;}\n\t.mip-dashboard-heading p,.mip-panel-header p,.mip-feature-class p{font-size:14px;line-height:1.65;}\n\t.mip-stat-card span{font-size:12px;}.mip-stat-card strong{font-size:27px;}\n\t.mip-class-table th{font-size:11px;}.mip-class-table td{font-size:13px;}.mip-class-table td strong{font-size:13px;}.mip-class-table td small{font-size:11px;}\n\t.mip-role,.mip-session-badge,.mip-class-status,.mip-teams-join,.mip-mark-complete,.mip-activity-tab{font-size:11px;}\n\t.mip-create-form label,.mip-class-form label,.mip-modal-inner label{font-size:12px;}\n\t.mip-create-form input,.mip-create-form select,.mip-class-form input,.mip-class-form select,.mip-search-area input,.mip-search-area select,.mip-modal-inner input{font-size:13px;}\n\t\/* Override every decorative\/hover icon state to navy; no red, pink or purple *\/\n\t.mip-stat-icon,.mip-stat-icon.blue,.mip-stat-icon.purple,.mip-stat-icon.green,.mip-stat-icon.orange{color:var(--navy)!important;background:var(--blue-soft)!important;}\n\t.mip-action,.mip-action.edit,.mip-action.delete{color:var(--navy)!important;}\n\t.mip-action:hover,.mip-action.edit:hover,.mip-action.delete:hover,.mip-modal-close:hover{border-}\n\t.mip-action:hover .mip-svg-icon,.mip-modal-close:hover .mip-svg-icon{}\n\t.mip-mark-complete:hover:not(:disabled),.mip-teams-join:hover,.mip-login-button:hover,.mip-form-submit button:hover,.mip-modal-save:hover{border-}\n\t.mip-role.student,.mip-class-status.completed,.mip-mark-complete:disabled,.mip-session-badge{color:var(--navy)!important;background:var(--blue-soft)!important;border-color:var(--line-2)!important;}\n\t@media(max-width:720px){.mip-shell{padding-left:14px!important;padding-right:14px!important}.mip-dashboard-heading h1{font-size:27px}.mip-class-table th{font-size:10px}.mip-class-table td{font-size:12px}}\n\n\n\t\/* =====================================================\n\t   v9 FRONT-END \/ ELEMENTOR NORMALIZATION\n\t   Keeps the live page identical to the Elementor preview.\n\t   The shortcode deliberately breaks out of boxed theme\/\n\t   Elementor parent containers and owns its full viewport.\n\t   ===================================================== *\/\n\t.mip-portal{\n\t\twidth:100vw !important;\n\t\tmax-width:100vw !important;\n\t\tmargin-left:calc(50% - 50vw) !important;\n\t\tmargin-right:calc(50% - 50vw) !important;\n\t\tposition:relative !important;\n\t\tleft:auto !important;\n\t\tright:auto !important;\n\t\toverflow-x:hidden !important;\n\t\tfont-size:16px !important;\n\t}\n\n\t\/* Prevent WordPress \/ Elementor typography and spacing from changing portal UI *\/\n\t.mip-portal,\n\t.mip-portal div,\n\t.mip-portal section,\n\t.mip-portal header,\n\t.mip-portal main,\n\t.mip-portal form,\n\t.mip-portal table{\n\t\tbox-sizing:border-box !important;\n\t}\n\t.mip-portal h1,.mip-portal h2,.mip-portal h3,\n\t.mip-portal p,.mip-portal span,.mip-portal strong,\n\t.mip-portal small,.mip-portal label,.mip-portal button,\n\t.mip-portal input,.mip-portal select,.mip-portal a,\n\t.mip-portal th,.mip-portal td{\n\t\tfont-family:Inter,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Arial,sans-serif !important;\n\t}\n\t.mip-portal h1,.mip-portal h2,.mip-portal h3,.mip-portal p{\n\t\ttext-transform:none !important;\n\t}\n\t.mip-portal p{margin-top:0;}\n\t.mip-portal button,.mip-portal input,.mip-portal select{\n\t\tline-height:normal !important;\n\t}\n\n\t.mip-shell{\n\t\twidth:100% !important;\n\t\tmax-width:none !important;\n\t\tmargin:0 !important;\n\t\tpadding-left:clamp(24px,2.2vw,38px) !important;\n\t\tpadding-right:clamp(24px,2.2vw,38px) !important;\n\t}\n\t.mip-header{\n\t\twidth:100% !important;\n\t\tdisplay:flex !important;\n\t\tflex-direction:row !important;\n\t\talign-items:center !important;\n\t\tjustify-content:space-between !important;\n\t}\n\t.mip-brand,.mip-header-right,.mip-header-user{\n\t\tdisplay:flex !important;\n\t\tflex-direction:row !important;\n\t\talign-items:center !important;\n\t}\n\t.mip-dashboard{\n\t\twidth:100% !important;\n\t\tmax-width:none !important;\n\t}\n\t.mip-stats.mip-five-stats{\n\t\tdisplay:grid !important;\n\t\tgrid-template-columns:repeat(5,minmax(0,1fr)) !important;\n\t\tgap:15px !important;\n\t}\n\t.mip-stat-card{min-width:0 !important;}\n\n\t\/* Slightly larger readable text *\/\n\t.mip-brand-copy strong{font-size:18px !important;}\n\t.mip-brand-copy small{font-size:10px !important;}\n\t.mip-header-user span{font-size:13px !important;}\n\t.mip-dashboard-heading h1{font-size:34px !important;}\n\t.mip-dashboard-heading p,.mip-panel-header p,.mip-feature-class p{font-size:14px !important;}\n\t.mip-stat-card span{font-size:13px !important;}\n\t.mip-stat-card strong{font-size:28px !important;}\n\t.mip-class-table th{font-size:11px !important;}\n\t.mip-class-table td,.mip-class-table td strong{font-size:13px !important;}\n\t.mip-class-table td small{font-size:11px !important;}\n\t.mip-create-form label,.mip-class-form label,.mip-modal-inner label{font-size:12px !important;}\n\t.mip-create-form input,.mip-create-form select,\n\t.mip-class-form input,.mip-class-form select,\n\t.mip-search-area input,.mip-search-area select,.mip-modal-inner input{\n\t\tfont-size:14px !important;\n\t}\n\n\t\/* Navy icon system: remove pink\/red\/purple hover states *\/\n\t.mip-stat-icon,.mip-stat-icon.blue,.mip-stat-icon.purple,\n\t.mip-stat-icon.green,.mip-stat-icon.orange,\n\t.mip-panel-header-icon,.mip-login-icon{\n\t\tcolor:#102b4e !important;\n\t\tbackground:#edf3f8 !important;\n\t}\n\t.mip-action,.mip-action.edit,.mip-action.delete,\n\t.mip-theme-toggle,.mip-modal-close{\n\t\tcolor:#102b4e !important;\n\t}\n\t.mip-action:hover,.mip-action.edit:hover,.mip-action.delete:hover,\n\t.mip-theme-toggle:hover,.mip-modal-close:hover{\n\t\t\n\t\t\n\t\tborder-\n\t}\n\t.mip-action:hover .mip-svg-icon,\n\t.mip-theme-toggle:hover .mip-svg-icon,\n\t.mip-modal-close:hover .mip-svg-icon{\n\t\t\n\t}\n\t.mip-teams-join,.mip-login-button,.mip-form-submit button,\n\t.mip-modal-save,.mip-mark-complete{\n\t\tbackground:linear-gradient(135deg,#173d68,#0b213d) !important;\n\t\tcolor:#fff !important;\n\t}\n\t.mip-teams-join:hover,.mip-login-button:hover,.mip-form-submit button:hover,\n\t.mip-modal-save:hover,.mip-mark-complete:hover:not(:disabled){\n\t\t\n\t\t\n\t\tborder-\n\t}\n\n\t@media(max-width:1050px){\n\t\t.mip-stats.mip-five-stats{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}\n\t}\n\t@media(max-width:720px){\n\t\t.mip-shell{padding-left:14px !important;padding-right:14px !important;}\n\t\t.mip-header{min-height:78px !important;gap:12px !important;}\n\t\t.mip-stats.mip-five-stats{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}\n\t\t.mip-dashboard-heading h1{font-size:28px !important;}\n\t}\n\t@media(max-width:460px){\n\t\t.mip-stats.mip-five-stats{grid-template-columns:1fr !important;}\n\t\t.mip-brand-copy strong{font-size:13px !important;}\n\t}\n\n\n\t\/* =====================================================\n\t   v10 VISUAL POLISH\n\t   Softer cards, larger typography, visible search text,\n\t   and two-column left\/right content layout.\n\t   ===================================================== *\/\n\n\t\/* Remove hard borders; use radius + soft shadows *\/\n\t.mip-portal .mip-panel,\n\t.mip-portal .mip-stat-card,\n\t.mip-portal .mip-login-card,\n\t.mip-portal .mip-admin-status,\n\t.mip-portal .mip-feature-class,\n\t.mip-portal .mip-empty-dashboard,\n\t.mip-portal .mip-user-table-wrap,\n\t.mip-portal .mip-class-table-wrap{\n\t\tborder:none !important;\n\t\tborder-radius:20px !important;\n\t\tbox-shadow:0 10px 30px rgba(15,43,78,.10) !important;\n\t}\n\n\t.mip-portal input,\n\t.mip-portal select,\n\t.mip-portal .mip-search-box,\n\t.mip-portal .mip-selected-user,\n\t.mip-portal .mip-picker-results{\n\t\tborder:1px solid rgba(16,43,78,.10) !important;\n\t\tborder-radius:13px !important;\n\t\tbox-shadow:0 4px 14px rgba(15,43,78,.06) !important;\n\t}\n\n\t\/* Larger typography throughout *\/\n\t.mip-portal{font-size:17px !important;}\n\t.mip-portal .mip-kicker{font-size:12px !important;letter-spacing:1.6px !important;}\n\t.mip-portal .mip-dashboard-heading h1{font-size:38px !important;line-height:1.12 !important;}\n\t.mip-portal .mip-panel-header h2{font-size:25px !important;line-height:1.2 !important;}\n\t.mip-portal .mip-panel-header p,\n\t.mip-portal .mip-dashboard-heading p{font-size:16px !important;line-height:1.6 !important;}\n\t.mip-portal .mip-stat-card span{font-size:15px !important;font-weight:700 !important;}\n\t.mip-portal .mip-stat-card strong{font-size:32px !important;}\n\t.mip-portal label{font-size:14px !important;font-weight:700 !important;}\n\t.mip-portal input,.mip-portal select,.mip-portal button,.mip-portal a{font-size:15px !important;}\n\t.mip-portal .mip-class-table th{font-size:13px !important;}\n\t.mip-portal .mip-class-table td,\n\t.mip-portal .mip-class-table td strong{font-size:14px !important;line-height:1.5 !important;}\n\t.mip-portal .mip-class-table td small{font-size:12px !important;}\n\n\t\/* Search field: larger and always visible text *\/\n\t.mip-portal .mip-search-area{gap:16px !important;align-items:stretch !important;}\n\t.mip-portal .mip-search-box{\n\t\tmin-height:58px !important;\n\t\tflex:1 1 600px !important;\n\t\tbackground:#fff !important;\n\t}\n\t.mip-portal .mip-search-box input,\n\t.mip-portal #mip-user-search{\n\t\tmin-height:56px !important;\n\t\tfont-size:16px !important;\n\t\tfont-weight:600 !important;\n\t\tcolor:#102b4e !important;\n\t\tbackground:#fff !important;\n\t\t-webkit-text-fill-color:#102b4e !important;\n\t\topacity:1 !important;\n\t}\n\t.mip-portal .mip-search-box input::placeholder,\n\t.mip-portal #mip-user-search::placeholder{\n\t\tcolor:#66788d !important;\n\t\t-webkit-text-fill-color:#66788d !important;\n\t\topacity:1 !important;\n\t}\n\t.mip-portal #mip-user-type{\n\t\tmin-height:58px !important;\n\t\tmin-width:190px !important;\n\t\tcolor:#102b4e !important;\n\t\tbackground:#fff !important;\n\t\tfont-size:15px !important;\n\t\tfont-weight:700 !important;\n\t}\n\n\t\/* Tables *\/\n\t.mip-portal .mip-class-table{\n\t\tborder-collapse:separate !important;\n\t\tborder-spacing:0 !important;\n\t}\n\t.mip-portal .mip-class-table th,\n\t.mip-portal .mip-class-table td{\n\t\tborder-left:none !important;\n\t\tborder-right:none !important;\n\t}\n\t.mip-portal .mip-class-table thead th{\n\t\tbackground:#f4f7fb !important;\n\t\tcolor:#102b4e !important;\n\t}\n\t.mip-portal .mip-class-table tbody td{\n\t\tcolor:#263b53 !important;\n\t}\n\n\t\/* Admin content boxes left\/right instead of every panel stacked *\/\n\t@media(min-width:1100px){\n\t\t.mip-dashboard{\n\t\t\tdisplay:grid !important;\n\t\t\tgrid-template-columns:repeat(1,minmax(0,1fr)) !important;\n\t\t\tgap:24px !important;\n\t\t\talign-items:start !important;\n\t\t}\n\t\t.mip-dashboard > .mip-admin-status,\n\t\t.mip-dashboard > .mip-message,\n\t\t.mip-dashboard > .mip-dashboard-heading,\n\t\t.mip-dashboard > .mip-stats,\n\t\t.mip-dashboard > .mip-class-activity{\n\t\t\tgrid-column:1 \/ -1 !important;\n\t\t}\n\t\t.mip-dashboard > .mip-panel:not(.mip-class-activity){\n\t\t\tgrid-column:auto !important;\n\t\t\tmargin:0 !important;\n\t\t\theight:100% !important;\n\t\t}\n\t\t\/* Users\/search section gets full width because its table needs space *\/\n\t\t.mip-dashboard > .mip-panel:last-of-type{\n\t\t\tgrid-column:1 \/ -1 !important;\n\t\t\theight:auto !important;\n\t\t}\n\t}\n\n\t\/* Softer spacing \/ cards *\/\n\t.mip-portal .mip-panel{padding:28px !important;}\n\t.mip-portal .mip-stat-card{padding:24px !important;}\n\t.mip-portal .mip-create-form{gap:18px !important;}\n\t.mip-portal .mip-create-form input,\n\t.mip-portal .mip-create-form select,\n\t.mip-portal .mip-class-form input,\n\t.mip-portal .mip-class-form select{\n\t\tmin-height:50px !important;\n\t\tpadding:12px 14px !important;\n\t\tbackground:#fff !important;\n\t\tcolor:#102b4e !important;\n\t\t-webkit-text-fill-color:#102b4e !important;\n\t}\n\n\t\/* Dark mode: keep search\/input text visible *\/\n\t.mip-portal.mip-dark .mip-search-box,\n\t.mip-portal.mip-dark .mip-search-box input,\n\t.mip-portal.mip-dark #mip-user-search,\n\t.mip-portal.mip-dark input,\n\t.mip-portal.mip-dark select{\n\t\tcolor:#eef5ff !important;\n\t\t-webkit-text-fill-color:#eef5ff !important;\n\t}\n\t.mip-portal.mip-dark .mip-search-box input::placeholder,\n\t.mip-portal.mip-dark #mip-user-search::placeholder{\n\t\tcolor:#aebed1 !important;\n\t\t-webkit-text-fill-color:#aebed1 !important;\n\t}\n\n\t@media(max-width:1099px){\n\t\t.mip-dashboard{display:block !important;}\n\t\t.mip-dashboard > .mip-panel{margin-bottom:22px !important;}\n\t}\n\t@media(max-width:720px){\n\t\t.mip-portal{font-size:16px !important;}\n\t\t.mip-portal .mip-dashboard-heading h1{font-size:30px !important;}\n\t\t.mip-portal .mip-panel-header h2{font-size:22px !important;}\n\t\t.mip-portal .mip-panel{padding:20px !important;}\n\t\t.mip-portal .mip-search-area{display:flex !important;flex-direction:column !important;}\n\t\t.mip-portal #mip-user-type{width:100% !important;}\n\t}\n\n\n\t\/* =====================================================\n\t   v11 PREMIUM UI \/ UX\n\t   ===================================================== *\/\n\t.mip-portal{\n\t\tfont-size:18px !important;\n\t\tletter-spacing:.005em;\n\t}\n\t.mip-portal .mip-shell{max-width:1680px !important;margin:0 auto !important;}\n\t.mip-portal .mip-dashboard-heading h1{font-size:42px !important;letter-spacing:-1.3px !important;}\n\t.mip-portal .mip-dashboard-heading p{font-size:17px !important;}\n\t.mip-portal .mip-panel-header h2{font-size:27px !important;letter-spacing:-.45px !important;}\n\t.mip-portal .mip-panel-header p{font-size:16px !important;line-height:1.65 !important;}\n\t.mip-portal .mip-kicker{font-size:12px !important;}\n\t.mip-portal .mip-brand-copy strong{font-size:20px !important;}\n\t.mip-portal .mip-brand-copy small{font-size:11px !important;}\n\t.mip-portal .mip-stat-card span{font-size:15px !important;}\n\t.mip-portal .mip-stat-card strong{font-size:34px !important;}\n\n\t\/* Premium floating surfaces *\/\n\t.mip-portal .mip-panel,\n\t.mip-portal .mip-stat-card,\n\t.mip-portal .mip-admin-status,\n\t.mip-portal .mip-feature-class{\n\t\tborder:0 !important;\n\t\tborder-radius:24px !important;\n\t\tbackground:var(--surface) !important;\n\t\tbox-shadow:0 14px 40px rgba(13,39,70,.09),0 2px 8px rgba(13,39,70,.04) !important;\n\t}\n\t.mip-portal .mip-panel{padding:30px !important;}\n\t.mip-portal .mip-stat-card{padding:26px !important;min-height:150px !important;}\n\t.mip-portal .mip-panel-header{margin-bottom:24px !important;}\n\n\t\/* Create-user form: intentionally vertical *\/\n\t.mip-portal .mip-create-form:not(.mip-class-form){\n\t\tdisplay:flex !important;\n\t\tflex-direction:column !important;\n\t\talign-items:stretch !important;\n\t\tgap:20px !important;\n\t\tpadding:0 !important;\n\t}\n\t.mip-portal .mip-create-form:not(.mip-class-form) > div{\n\t\twidth:100% !important;\n\t}\n\t.mip-portal .mip-create-form label,\n\t.mip-portal .mip-class-form label{\n\t\tdisplay:block !important;\n\t\tmargin:0 0 9px !important;\n\t\tfont-size:14px !important;\n\t\tcolor:var(--navy) !important;\n\t}\n\t.mip-portal .mip-create-form input,\n\t.mip-portal .mip-create-form select,\n\t.mip-portal .mip-class-form input,\n\t.mip-portal .mip-class-form select{\n\t\twidth:100% !important;\n\t\tmin-height:54px !important;\n\t\tpadding:0 16px !important;\n\t\tfont-size:16px !important;\n\t\tborder:0 !important;\n\t\tborder-radius:14px !important;\n\t\tbackground:var(--surface-2) !important;\n\t\tbox-shadow:inset 0 0 0 1px rgba(16,43,78,.08) !important;\n\t}\n\t.mip-portal .mip-create-form input:focus,\n\t.mip-portal .mip-create-form select:focus,\n\t.mip-portal .mip-class-form input:focus,\n\t.mip-portal .mip-class-form select:focus{\n\t\tbox-shadow:inset 0 0 0 2px #173d68,0 0 0 4px rgba(23,61,104,.08) !important;\n\t}\n\t.mip-portal .mip-form-submit button{\n\t\tmin-height:54px !important;\n\t\tborder:0 !important;\n\t\tborder-radius:14px !important;\n\t\tfont-size:15px !important;\n\t\tfont-weight:800 !important;\n\t\tbox-shadow:0 10px 24px rgba(16,43,78,.18) !important;\n\t}\n\n\t\/* Keep create-user and assign-class cards side-by-side on desktop *\/\n\t@media(min-width:1100px){\n\t\t.mip-dashboard > .mip-panel:not(.mip-class-activity):not(:last-of-type){\n\t\t\tmin-width:0 !important;\n\t\t}\n\t}\n\n\t\/* Attractive borderless tables *\/\n\t.mip-portal .mip-user-table-wrap,\n\t.mip-portal .mip-class-table-wrap{\n\t\tborder:0 !important;\n\t\tborder-radius:18px !important;\n\t\tbox-shadow:none !important;\n\t\toverflow:hidden !important;\n\t\tbackground:transparent !important;\n\t}\n\t.mip-portal .mip-table-scroll{overflow-x:auto !important;padding:2px !important;}\n\t.mip-portal .mip-user-table-wrap table,\n\t.mip-portal .mip-class-table{\n\t\tborder:0 !important;\n\t\tborder-collapse:separate !important;\n\t\tborder-spacing:0 10px !important;\n\t\tbackground:transparent !important;\n\t}\n\t.mip-portal .mip-user-table-wrap thead th,\n\t.mip-portal .mip-class-table thead th{\n\t\tborder:0 !important;\n\t\tbackground:transparent !important;\n\t\tpadding:8px 18px 10px !important;\n\t\tcolor:#6b7c90 !important;\n\t\tfont-size:12px !important;\n\t\tletter-spacing:.75px !important;\n\t}\n\t.mip-portal .mip-user-table-wrap tbody td,\n\t.mip-portal .mip-class-table tbody td{\n\t\tborder:0 !important;\n\t\tbackground:var(--surface-2) !important;\n\t\tpadding:17px 18px !important;\n\t\tfont-size:14px !important;\n\t\tcolor:#34495f !important;\n\t\ttransition:.18s ease !important;\n\t}\n\t.mip-portal .mip-user-table-wrap tbody td:first-child,\n\t.mip-portal .mip-class-table tbody td:first-child{\n\t\tborder-radius:15px 0 0 15px !important;\n\t}\n\t.mip-portal .mip-user-table-wrap tbody td:last-child,\n\t.mip-portal .mip-class-table tbody td:last-child{\n\t\tborder-radius:0 15px 15px 0 !important;\n\t}\n\t.mip-portal .mip-user-table-wrap tbody tr:hover td,\n\t.mip-portal .mip-class-table tbody tr:hover td{\n\t\t\n\t\ttransform:translateY(-1px);\n\t}\n\t.mip-portal .mip-user-table-wrap td strong,\n\t.mip-portal .mip-class-table td strong{font-size:15px !important;color:#102b4e !important;}\n\t.mip-portal .mip-class-table td small{font-size:12px !important;}\n\n\t\/* Search UX *\/\n\t.mip-portal .mip-search-area{\n\t\tdisplay:grid !important;\n\t\tgrid-template-columns:minmax(0,1fr) 190px !important;\n\t\tgap:14px !important;\n\t\tmargin-bottom:20px !important;\n\t}\n\t.mip-portal .mip-search-box{\n\t\tmin-height:60px !important;\n\t\tborder:0 !important;\n\t\tborder-radius:16px !important;\n\t\tbackground:var(--surface-2) !important;\n\t\tbox-shadow:inset 0 0 0 1px rgba(16,43,78,.07) !important;\n\t}\n\t.mip-portal #mip-user-search{\n\t\theight:60px !important;\n\t\tpadding-left:48px !important;\n\t\tfont-size:16px !important;\n\t\tcolor:#102b4e !important;\n\t\tbackground:transparent !important;\n\t\tborder:0 !important;\n\t\tbox-shadow:none !important;\n\t}\n\t.mip-portal #mip-user-type{\n\t\theight:60px !important;\n\t\tborder:0 !important;\n\t\tborder-radius:16px !important;\n\t\tfont-size:15px !important;\n\t\tpadding:0 15px !important;\n\t\tbackground:var(--surface-2) !important;\n\t\tbox-shadow:inset 0 0 0 1px rgba(16,43,78,.07) !important;\n\t}\n\t.mip-portal .mip-loading,.mip-portal .mip-empty{\n\t\tpadding:38px 20px !important;\n\t\ttext-align:center !important;\n\t\tfont-size:15px !important;\n\t\tcolor:#6b7c90 !important;\n\t}\n\t.mip-portal .mip-empty strong{display:block;font-size:18px !important;color:#102b4e !important;margin-bottom:5px;}\n\n\t\/* Pills and action controls *\/\n\t.mip-portal .mip-role{font-size:11px !important;padding:7px 11px !important;}\n\t.mip-portal .mip-password{font-size:12px !important;padding:7px 9px !important;border-radius:9px !important;}\n\t.mip-portal .mip-action{\n\t\twidth:38px !important;height:38px !important;border:0 !important;border-radius:11px !important;\n\t\tbackground:#eaf1f7 !important;box-shadow:none !important;\n\t}\n\t.mip-portal .mip-action:hover{transform:translateY(-2px) !important;}\n\n\t@media(max-width:720px){\n\t\t.mip-portal .mip-dashboard-heading h1{font-size:32px !important;}\n\t\t.mip-portal .mip-panel{padding:22px !important;border-radius:19px !important;}\n\t\t.mip-portal .mip-search-area{grid-template-columns:1fr !important;}\n\t\t.mip-portal #mip-user-type{width:100% !important;}\n\t}\n\n\n\t\/* v12 visual fixes *\/\n\t.mip-portal .mip-small-stat{font-size:24px!important;line-height:1.22!important;letter-spacing:-.35px!important;overflow-wrap:anywhere}\n\t.mip-portal .mip-five-stats .mip-stat-card strong:not(.mip-small-stat){font-size:30px!important}\n\t.mip-portal .mip-admin-class-table .mip-pending-row td{background:#fff1ef!important}\n\t.mip-portal .mip-admin-class-table .mip-completed-row td{background:#eaf8ef!important;cursor:pointer}\n\t.mip-portal .mip-admin-class-table .mip-pending-row:hover td{}\n\t.mip-portal .mip-admin-class-table .mip-completed-row:hover td{}\n\t.mip-review-form{display:flex;flex-direction:column;gap:11px}.mip-review-form label{font-size:14px!important;font-weight:800}.mip-review-form select,.mip-review-form textarea{width:100%;border:0!important;border-radius:15px!important;background:var(--surface-2)!important;color:var(--navy)!important;padding:15px 16px!important;box-shadow:inset 0 0 0 1px rgba(16,43,78,.09)!important}.mip-review-form select{min-height:54px}.mip-review-form textarea{min-height:150px;resize:vertical}.mip-review-footer{display:flex;justify-content:space-between;align-items:center;gap:16px}.mip-primary-button{border:0;border-radius:13px;background:#102b4e;color:#fff;padding:14px 20px;font-weight:800;cursor:pointer}\n\tbody.mip-modal-open{overflow:hidden}.mip-modal{position:fixed;inset:0;z-index:999999;display:none;align-items:center;justify-content:center;padding:22px}.mip-modal.open{display:flex}.mip-modal-backdrop{position:absolute;inset:0;background:rgba(4,16,30,.74);backdrop-filter:blur(8px)}.mip-modal-card{position:relative;width:min(1100px,96vw);max-height:92vh;overflow:auto;background:#fff;color:#102b4e;border-radius:24px;padding:28px;box-shadow:0 30px 90px rgba(0,0,0,.35)}.mip-modal-x{position:absolute;right:16px;top:14px;width:40px;height:40px;border:0;border-radius:50%;background:#edf3f8;color:#102b4e;font-size:26px;cursor:pointer}.mip-modal-heading h2{font-size:27px;margin:4px 0 6px}.mip-modal-heading p{color:#65768a;margin:0 45px 18px 0}#mip-teams-frame{width:100%;height:min(70vh,720px);border:0;border-radius:17px;background:#eef3f8}.mip-embed-note{font-size:12px;color:#6d7b8d;margin-top:11px}.mip-review-modal-card{width:min(760px,96vw)}.mip-review-meta{margin:15px 0;color:#6b7c90;font-weight:700}.mip-review-paper{white-space:pre-wrap;min-height:180px;padding:22px;border-radius:16px;background:#f5f8fb;font-size:16px;line-height:1.75;margin-bottom:20px}\n\t.mip-portal[data-theme=\"dark\"]{--surface:#11263b;--surface-2:#19344d;--navy:#f5f9fd;--muted:#bed0df;--line:#2a4863}.mip-portal[data-theme=\"dark\"] .mip-header,.mip-portal[data-theme=\"dark\"] .mip-panel,.mip-portal[data-theme=\"dark\"] .mip-stat-card,.mip-portal[data-theme=\"dark\"] .mip-admin-status,.mip-portal[data-theme=\"dark\"] .mip-feature-class,.mip-portal[data-theme=\"dark\"] .mip-login-card{background:#11263b!important;color:#f5f9fd!important}.mip-portal[data-theme=\"dark\"] h1,.mip-portal[data-theme=\"dark\"] h2,.mip-portal[data-theme=\"dark\"] h3,.mip-portal[data-theme=\"dark\"] strong,.mip-portal[data-theme=\"dark\"] label{color:#fff!important}.mip-portal[data-theme=\"dark\"] p,.mip-portal[data-theme=\"dark\"] small{color:#bfd0df!important}.mip-portal[data-theme=\"dark\"] input,.mip-portal[data-theme=\"dark\"] select,.mip-portal[data-theme=\"dark\"] textarea{background:#19344d!important;color:#fff!important}.mip-portal[data-theme=\"dark\"] input::placeholder,.mip-portal[data-theme=\"dark\"] textarea::placeholder{color:#91a9bd!important}.mip-portal[data-theme=\"dark\"] .mip-user-table-wrap tbody td,.mip-portal[data-theme=\"dark\"] .mip-class-table tbody td{background:#19344d!important;color:#dce8f1!important}.mip-portal[data-theme=\"dark\"] .mip-user-table-wrap td strong,.mip-portal[data-theme=\"dark\"] .mip-class-table td strong{color:#fff!important}.mip-portal[data-theme=\"dark\"] .mip-admin-class-table .mip-pending-row td{background:#422d32!important}.mip-portal[data-theme=\"dark\"] .mip-admin-class-table .mip-completed-row td{background:#183e35!important}.mip-portal[data-theme=\"dark\"] .mip-kicker{color:#f0b323!important}\n\t@media(max-width:1000px){.mip-portal .mip-five-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:620px){.mip-portal .mip-five-stats{grid-template-columns:1fr!important}.mip-review-footer{flex-direction:column;align-items:stretch}}\n\t.mip-report-tabs{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0}.mip-report-tab{padding:10px 14px;border:1px solid var(--line-2);border-radius:9px;background:var(--surface-2)!important;color:var(--navy);font-size:10px;font-weight:850;cursor:pointer}.mip-report-tab.active{background:var(--navy)!important;color:#fff;border-color:var(--navy)}\n\t.mip-report-panel{display:none}.mip-report-panel.active{display:flex}.mip-report-modal{position:fixed;inset:0;z-index:999999;align-items:center;justify-content:center;padding:24px}.mip-report-modal-backdrop{position:absolute;inset:0;background:rgba(8,25,49,.58);backdrop-filter:blur(4px)}.mip-report-modal-card{position:relative;z-index:1;width:min(1180px,96vw);max-height:88vh;overflow:auto;background:var(--surface);border-radius:20px;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.25)}.mip-report-modal-x{position:absolute;right:16px;top:14px;width:38px;height:38px;border:0;border-radius:50%;background:var(--surface-2);color:var(--navy);font-size:25px;line-height:1;cursor:pointer}.mip-report-actions{display:flex;gap:10px;align-items:center;margin-right:42px}.mip-report-download{border:0;border-radius:9px;padding:10px 14px;background:#166534;color:#fff;font-weight:800;cursor:pointer}body.mip-report-modal-open{overflow:hidden}.mip-report-print-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px}.mip-report-print-head strong,.mip-report-print-head small{display:block}.mip-report-print-head small{margin-top:3px;color:var(--muted)}.mip-report-print{border:0;border-radius:9px;padding:10px 14px;background:var(--navy);color:#fff;font-weight:800;cursor:pointer}.mip-month-report-table{min-width:760px}\n\t@media print{body:not(.mip-report-print-mode) *{visibility:hidden!important}body:not(.mip-report-print-mode) #mip-review-print-area,body:not(.mip-report-print-mode) #mip-review-print-area *{visibility:visible!important}body:not(.mip-report-print-mode) #mip-review-print-area{position:absolute;left:0;top:0;width:100%;padding:30px;background:#fff;color:#000}body.mip-report-print-mode *{visibility:hidden!important}body.mip-report-print-mode .mip-printing-report,body.mip-report-print-mode .mip-printing-report *{visibility:visible!important}body.mip-report-print-mode .mip-printing-report{display:block!important;position:absolute;left:0;top:0;width:100%;padding:24px;background:#fff;color:#000}body.mip-report-print-mode .mip-report-print,body.mip-report-print-mode .mip-report-download,body.mip-report-print-mode .mip-report-modal-x,body.mip-report-print-mode .mip-report-modal-backdrop{display:none!important}body.mip-report-print-mode .mip-class-table-wrap{overflow:visible!important}body.mip-report-print-mode .mip-month-report-table{min-width:0!important;width:100%!important}body.mip-report-print-mode .mip-month-report-table th,body.mip-report-print-mode .mip-month-report-table td{color:#000!important;background:#fff!important;border-color:#ddd!important}}\n\n\n\t\/* v13 login tab + theme reliability *\/\n\t.mip-portal .mip-login-page .mip-tab-panel{display:none !important;}\n\t.mip-portal .mip-login-page .mip-tab-panel.active{display:block !important;}\n\n\t.mip-portal[data-theme=\"dark\"]{\n\t\tcolor-scheme:dark;\n\t\tbackground:#081522 !important;\n\t\tcolor:#f5f9fd !important;\n\t}\n\t.mip-portal[data-theme=\"dark\"] .mip-shell{color:#f5f9fd !important;}\n\t.mip-portal[data-theme=\"dark\"] .mip-login-page,\n\t.mip-portal[data-theme=\"dark\"] .mip-dashboard{color:#f5f9fd !important;}\n\t.mip-portal[data-theme=\"dark\"] .mip-tabs{background:#0d2033 !important;}\n\t.mip-portal[data-theme=\"dark\"] .mip-tab{color:#b9cce0 !important;}\n\t.mip-portal[data-theme=\"dark\"] .mip-tab.active{\n\t\tbackground:#19344d !important;\n\t\tcolor:#ffffff !important;\n\t}\n\t.mip-portal[data-theme=\"dark\"] .mip-login-form,\n\t.mip-portal[data-theme=\"dark\"] .mip-login-card{\n\t\tbackground:#11263b !important;\n\t\tcolor:#ffffff !important;\n\t}\n\t.mip-portal[data-theme=\"dark\"] .mip-login-form input,\n\t.mip-portal[data-theme=\"dark\"] .mip-login-card input{\n\t\tbackground:#19344d !important;\n\t\tcolor:#ffffff !important;\n\t\t-webkit-text-fill-color:#ffffff !important;\n\t}\n\n\n\t\/* v14 \u2014 compact student summary typography *\/\n\t.mip-portal .mip-stats .mip-stat-card > span{\n\t\tfont-size:13px !important;\n\t\tline-height:1.35 !important;\n\t}\n\t.mip-portal .mip-stats .mip-stat-card .mip-small-stat{\n\t\tfont-size:22px !important;\n\t\tline-height:1.25 !important;\n\t\tfont-weight:750 !important;\n\t\tletter-spacing:-0.02em !important;\n\t\toverflow-wrap:anywhere !important;\n\t}\n\t@media (max-width:767px){\n\t\t.mip-portal .mip-stats .mip-stat-card .mip-small-stat{\n\t\t\tfont-size:19px !important;\n\t\t}\n\t}\n\n\n\t\/* v15 layout and UX *\/\n\t.mip-portal .mip-dashboard > .mip-panel{width:100% !important;max-width:none !important;}\n\t.mip-portal .mip-dashboard .mip-class-table-wrap{width:100% !important;max-width:none !important;}\n\t.mip-portal .mip-dashboard .mip-class-table{width:100% !important;table-layout:auto !important;}\n\t.mip-portal .mip-dashboard .mip-class-table .mip-teams-join{white-space:nowrap !important;max-width:none !important;}\n\n\t.mip-portal .mip-class-thanks{\n\t\tdisplay:flex;align-items:center;gap:15px;width:100%;margin:0 0 20px;padding:17px 20px;\n\t\tborder-radius:18px;background:#edf9f2;color:#123f31;box-shadow:0 10px 28px rgba(16,43,78,.07);\n\t}\n\t.mip-portal .mip-class-thanks-icon{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:13px;background:#d9f3e4;}\n\t.mip-portal .mip-class-thanks-icon svg{width:21px;height:21px;stroke:#176447;}\n\t.mip-portal .mip-class-thanks strong{display:block;font-size:17px!important;margin-bottom:3px;}\n\t.mip-portal .mip-class-thanks span{display:block;font-size:14px;line-height:1.55;}\n\n\t.mip-portal .mip-review-panel{padding:28px!important;}\n\t.mip-portal .mip-review-form{display:grid!important;grid-template-columns:1fr;gap:10px!important;max-width:none!important;}\n\t.mip-portal .mip-review-form select{height:52px!important;}\n\t.mip-portal .mip-review-form textarea{display:block!important;min-height:135px!important;border-radius:16px!important;padding:16px 18px!important;}\n\t.mip-portal .mip-review-footer{display:flex!important;justify-content:flex-end!important;align-items:center!important;gap:16px!important;margin-top:5px!important;}\n\t.mip-portal .mip-review-submit{display:inline-flex!important;visibility:visible!important;opacity:1!important;min-height:48px!important;padding:0 22px!important;background:#102b4e!important;color:#fff!important;border:0!important;border-radius:13px!important;box-shadow:0 8px 20px rgba(16,43,78,.16)!important;font-size:14px!important;font-weight:800!important;cursor:pointer!important;}\n\n\t\/* Admin activity: compact card rows; six records can sit comfortably in the visible list area. *\/\n\t.mip-portal .mip-admin-class-table{border-collapse:separate!important;border-spacing:0 7px!important;}\n\t.mip-portal .mip-admin-class-table thead th{padding:8px 14px!important;font-size:11px!important;}\n\t.mip-portal .mip-admin-class-table tbody td{padding:10px 14px!important;font-size:12px!important;line-height:1.25!important;}\n\t.mip-portal .mip-admin-class-table tbody td:first-child{border-radius:12px 0 0 12px!important;}\n\t.mip-portal .mip-admin-class-table tbody td:last-child{border-radius:0 12px 12px 0!important;}\n\t.mip-portal .mip-admin-class-table .mip-class-status{font-size:10px!important;padding:6px 9px!important;}\n\t.mip-portal .mip-admin-class-table tbody tr{box-shadow:0 5px 15px rgba(16,43,78,.045)!important;}\n\n\t.mip-portal[data-theme=\"dark\"] .mip-class-thanks{background:#153b32!important;color:#e9fff6!important;}\n\t.mip-portal[data-theme=\"dark\"] .mip-class-thanks strong,.mip-portal[data-theme=\"dark\"] .mip-class-thanks span{color:#e9fff6!important;}\n\t.mip-portal[data-theme=\"dark\"] .mip-review-submit{background:#f0b323!important;color:#07182a!important;}\n\n\t@media(max-width:900px){\n\t\t.mip-portal .mip-dashboard .mip-class-table{min-width:760px!important;}\n\t\t.mip-portal .mip-dashboard .mip-class-table-wrap{overflow-x:auto!important;}\n\t}\n\n\n\t\/* v15.1 \u2014 admin class cards: six per row on wide screens *\/\n\t@media(min-width:1200px){\n\t\t.mip-portal .mip-admin-class-table,\n\t\t.mip-portal .mip-admin-class-table tbody{display:block!important;width:100%!important;}\n\t\t.mip-portal .mip-admin-class-table thead{display:none!important;}\n\t\t.mip-portal .mip-admin-class-table tbody{\n\t\t\tdisplay:grid!important;\n\t\t\tgrid-template-columns:repeat(6,minmax(0,1fr))!important;\n\t\t\tgap:10px!important;\n\t\t}\n\t\t.mip-portal .mip-admin-class-table tbody tr{\n\t\t\tdisplay:flex!important;flex-direction:column!important;gap:6px!important;\n\t\t\tmin-width:0!important;padding:12px!important;border-radius:15px!important;\n\t\t\tbox-shadow:0 7px 20px rgba(16,43,78,.07)!important;\n\t\t}\n\t\t.mip-portal .mip-admin-class-table tbody tr.mip-pending-row{background:#fff1ef!important;}\n\t\t.mip-portal .mip-admin-class-table tbody tr.mip-completed-row{background:#eaf8ef!important;}\n\t\t.mip-portal .mip-admin-class-table tbody td{\n\t\t\tdisplay:block!important;background:transparent!important;padding:0!important;\n\t\t\tborder-radius:0!important;font-size:11px!important;white-space:normal!important;\n\t\t}\n\t\t.mip-portal .mip-admin-class-table tbody td:nth-child(1)::before{content:\"Student\";display:block;font-size:9px;font-weight:800;text-transform:uppercase;color:#718096;margin-bottom:2px}\n\t\t.mip-portal .mip-admin-class-table tbody td:nth-child(2)::before{content:\"Teacher\";display:block;font-size:9px;font-weight:800;text-transform:uppercase;color:#718096;margin-bottom:2px}\n\t\t.mip-portal .mip-admin-class-table tbody td:nth-child(3)::before{content:\"Date & Time\";display:block;font-size:9px;font-weight:800;text-transform:uppercase;color:#718096;margin-bottom:2px}\n\t\t.mip-portal .mip-admin-class-table tbody td:nth-child(4)::before{content:\"Duration\";display:block;font-size:9px;font-weight:800;text-transform:uppercase;color:#718096;margin-bottom:2px}\n\t\t.mip-portal .mip-admin-class-table tbody td:nth-child(5)::before{content:\"Status\";display:block;font-size:9px;font-weight:800;text-transform:uppercase;color:#718096;margin-bottom:2px}\n\t}\n\t.mip-portal .mip-return-toast{\n\t\tposition:fixed;right:24px;bottom:24px;z-index:99999;width:min(430px,calc(100vw - 32px));\n\t\tdisplay:flex;align-items:flex-start;gap:12px;padding:17px 48px 17px 17px;\n\t\tbackground:#102b4e;color:#fff;border-radius:18px;box-shadow:0 18px 50px rgba(5,24,45,.28);\n\t\topacity:0;visibility:hidden;transform:translateY(14px);transition:.22s ease;\n\t}\n\t.mip-portal .mip-return-toast.show{opacity:1;visibility:visible;transform:none}\n\t.mip-portal .mip-return-toast-icon{flex:0 0 38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#eaf8ef;color:#176447}\n\t.mip-portal .mip-return-toast strong{display:block;color:#fff!important;font-size:15px!important;margin-bottom:4px}\n\t.mip-portal .mip-return-toast span{display:block;color:#dbe8f4!important;font-size:12px;line-height:1.5}\n\t.mip-portal .mip-return-toast button{position:absolute;right:12px;top:10px;border:0;background:transparent;color:#fff;font-size:24px;cursor:pointer}\n\n\n\n\t\/* v16 \u2014 all three requested dashboard\/UI fixes *\/\n\t\/* Student + Teacher: compact summary boxes, full-width class area, consistent alignment. *\/\n\t.mip-portal .mip-dashboard > .mip-stats,\n\t.mip-portal .mip-dashboard > .mip-feature-class,\n\t.mip-portal .mip-dashboard > .mip-panel{width:100%!important;max-width:none!important;box-sizing:border-box!important;}\n\t.mip-portal .mip-five-stats{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:14px!important;}\n\t.mip-portal .mip-stat-card{min-height:118px!important;padding:18px!important;}\n\t.mip-portal .mip-stat-card>span{font-size:11px!important;line-height:1.25!important;}\n\t.mip-portal .mip-stat-card>strong,\n\t.mip-portal .mip-stat-card .mip-small-stat{font-size:20px!important;line-height:1.22!important;margin-top:10px!important;overflow-wrap:anywhere!important;}\n\t.mip-portal .mip-panel-header>div:first-child,\n\t.mip-portal .mip-create-form>div,\n\t.mip-portal .mip-review-form{min-width:0!important;}\n\t.mip-portal .mip-create-form label,.mip-portal .mip-review-form label{text-align:left!important;}\n\t.mip-portal .mip-form-submit{display:flex!important;align-items:flex-end!important;}\n\t.mip-portal .mip-form-submit button{width:100%!important;min-height:48px!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;line-height:1!important;}\n\t\/* Hover must stay readable and follow the navy\/gold portal palette. *\/\n\t.mip-portal button:hover,.mip-portal a.mip-teams-join:hover,.mip-portal .mip-logout:hover{}\n\t.mip-portal .mip-form-submit button:hover,.mip-portal .mip-login-button:hover,.mip-portal .mip-mark-complete:hover:not(:disabled),.mip-portal .mip-teams-join:hover{}\n\t\/* Admin class cards are neutral: no red\/green card backgrounds. *\/\n\t.mip-portal .mip-admin-class-table tbody tr.mip-pending-row,\n\t.mip-portal .mip-admin-class-table tbody tr.mip-completed-row{background:var(--surface)!important;border:1px solid var(--line)!important;}\n\t.mip-portal[data-theme=\"dark\"] .mip-admin-class-table tbody tr.mip-pending-row,\n\t.mip-portal[data-theme=\"dark\"] .mip-admin-class-table tbody tr.mip-completed-row{background:#11263b!important;border-color:#2a4863!important;}\n\t.mip-portal .mip-unassign-class{width:28px!important;height:28px!important;display:inline-grid!important;place-items:center!important;border:1px solid var(--line)!important;border-radius:8px!important;background:transparent!important;color:var(--navy)!important;font-size:21px!important;line-height:1!important;cursor:pointer!important;padding:0!important;}\n\t.mip-portal .mip-unassign-class:hover{border-color:var(--navy)!important;}\n\t@media(min-width:1200px){.mip-portal .mip-admin-class-table tbody td:nth-child(6)::before{content:\"Action\";display:block;font-size:9px;font-weight:800;text-transform:uppercase;color:#718096;margin-bottom:4px}}\n\t@media(max-width:1000px){.mip-portal .mip-five-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;}}\n\t@media(max-width:620px){.mip-portal .mip-five-stats{grid-template-columns:1fr!important;}}\n\n\n\t\/* v17 \u2014 requested Class Activity + logo polish *\/\n\t.mip-portal .mip-site-logo{overflow:hidden;padding:0!important;background:transparent!important;}\n\t.mip-portal .mip-site-logo .custom-logo-link{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;height:100%!important;}\n\t.mip-portal .mip-site-logo img.custom-logo{display:block!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:contain!important;border-radius:12px!important;}\n\n\t@media(min-width:1200px){\n\t\t.mip-portal .mip-admin-class-table tbody tr.mip-pending-row{background:#fff1ef!important;border:1px solid #f3d3ce!important;}\n\t\t.mip-portal .mip-admin-class-table tbody tr.mip-completed-row{background:#eaf8ef!important;border:1px solid #ccebd7!important;}\n\t\t.mip-portal .mip-admin-class-table tbody tr.mip-pending-row td,\n\t\t.mip-portal .mip-admin-class-table tbody tr.mip-completed-row td{background:transparent!important;padding:7px 8px!important;border-radius:7px!important;}\n\t\t.mip-portal .mip-admin-class-table tbody tr.mip-pending-row:hover,\n\t\t.mip-portal .mip-admin-class-table tbody tr.mip-completed-row:hover{transform:none!important;}\n\t}\n\t.mip-portal[data-theme=\"dark\"] .mip-admin-class-table tbody tr.mip-pending-row{background:#422d32!important;border-color:#624047!important;}\n\t.mip-portal[data-theme=\"dark\"] .mip-admin-class-table tbody tr.mip-completed-row{background:#183e35!important;border-color:#27594c!important;}\n\n\n\t\/* v18 final interaction fixes *\/\n\t.mip-portal .mip-activity-tab,\n\t.mip-portal .mip-activity-tab.active,\n\t.mip-portal .mip-activity-tab:hover,\n\t.mip-portal .mip-activity-tab.active:hover{background:var(--surface-2)!important;color:var(--navy)!important;border-color:var(--line-2)!important;box-shadow:none!important;transform:none!important;}\n\t.mip-portal button:hover,.mip-portal a:hover{transform:none!important;filter:none!important;}\n\t.mip-portal .mip-unassign-class,.mip-portal .mip-unassign-class:hover,\n\t.mip-portal .mip-modal-x,.mip-portal .mip-modal-x:hover{display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;padding:0!important;line-height:1!important;background:transparent!important;color:white!important;transform:none!important;filter:none!important;}\n\t.mip-portal .mip-unassign-class{width:28px!important;height:28px!important;font-size:19px!important;}\n\t.mip-portal .mip-modal-x{width:42px!important;height:42px!important;font-size:25px!important;}\n\t.mip-portal .mip-review-submit,.mip-portal .mip-review-submit:hover{display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;line-height:1.2!important;color:#fff!important;background:var(--navy)!important;}\n\t.mip-portal .mip-admin-class-table tbody tr.mip-pending-row{background:#fff1ef!important;border-color:#f3d3ce!important;}\n\t.mip-portal .mip-admin-class-table tbody tr.mip-completed-row{background:#eaf8ef!important;border-color:#ccebd7!important;}\n\t.mip-portal[data-theme=\"dark\"] .mip-admin-class-table tbody tr.mip-pending-row{background:#422d32!important;border-color:#624047!important;}\n\t.mip-portal[data-theme=\"dark\"] .mip-admin-class-table tbody tr.mip-completed-row{background:#183e35!important;border-color:#27594c!important;}\n\t.mip-portal .mip-live-pop{animation:mipLivePop .35s ease both;}@keyframes mipLivePop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}\n\t\n    .mip-portal .mip-filter-hidden{display:none!important;}\n    .mip-portal .mip-meeting-completed{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 11px;border-radius:10px;background:#eaf8ef;color:#176447;font-size:11px;font-weight:800;white-space:nowrap;}\n\n    \/* v20 interaction polish: every real button\/link button uses navy + white on hover. *\/\n    .mip-portal button:hover,\n    .mip-portal input[type=submit]:hover,\n    .mip-portal .mip-primary-button:hover,\n    .mip-portal a.mip-teams-join:hover,\n    .mip-portal .mip-logout:hover,\n    .mip-portal .mip-activity-tab:hover,\n    .mip-portal .mip-activity-tab.active:hover,\n    .mip-portal .mip-unassign-class:hover,\n    .mip-portal .mip-modal-x:hover{\n        background: #edf0f5f7 !important;\n        color:#111827!important;\n        border-color:var(--navy)!important;\n        box-shadow:none!important;\n        transform:none!important;\n        filter:none!important;\n    }\n    .mip-portal .mip-activity-tab.active{background:var(--navy)!important;color:#fff!important;border-color:var(--navy)!important;}\n    .mip-portal .mip-review-submit:hover,.mip-portal .mip-review-submit:hover *{color:#111827!important;background:#edf0f5f7!important;}\n\n\n    \/* v21 \u2014 strict activity filtering, direct academy logo, compact mobile typography *\/\n    .mip-portal .mip-site-logo .mip-direct-logo{\n        display:block!important;width:100%!important;height:100%!important;max-width:none!important;\n        object-fit:contain!important;border-radius:12px!important;\n    }\n    \/* Must outrank desktop card display:flex!important. *\/\n    .mip-portal .mip-admin-class-table tbody tr.mip-filter-hidden{\n        display:none!important;\n    }\n    @media(max-width:620px){\n        .mip-portal{font-size:13px!important;}\n        .mip-portal .mip-brand-copy strong{font-size:12px!important;line-height:1.2!important;}\n        .mip-portal .mip-dashboard-heading h1,.mip-portal .mip-panel-header h2{font-size:20px!important;}\n        .mip-portal .mip-dashboard-heading p,.mip-portal .mip-panel-header p{font-size:12px!important;line-height:1.45!important;}\n        .mip-portal .mip-stat-card>span{font-size:10px!important;}\n        .mip-portal .mip-stat-card>strong,.mip-portal .mip-stat-card .mip-small-stat{font-size:17px!important;}\n        .mip-portal .mip-admin-class-table tbody td{font-size:10px!important;}\n        .mip-portal .mip-admin-class-table tbody td::before{font-size:8px!important;}\n        .mip-portal button,.mip-portal .mip-primary-button,.mip-portal a.mip-teams-join{font-size:11px!important;}\n    }\n\n\n\t\/* v21 \u2014 report action visibility + complete tablet\/mobile responsiveness *\/\n\t.mip-portal .mip-report-modal-card{\n\t\tbox-sizing:border-box!important;\n\t\toverflow:auto!important;\n\t}\n\t.mip-portal .mip-report-print-head{\n\t\tdisplay:flex!important;\n\t\talign-items:flex-start!important;\n\t\tjustify-content:space-between!important;\n\t\tgap:18px!important;\n\t\tpadding-right:48px!important;\n\t}\n\t.mip-portal .mip-report-title-block{min-width:0!important;flex:1 1 auto!important;}\n\t.mip-portal .mip-report-actions{\n\t\tdisplay:flex!important;\n\t\tvisibility:visible!important;\n\t\topacity:1!important;\n\t\tposition:relative!important;\n\t\tz-index:3!important;\n\t\tflex:0 0 auto!important;\n\t\talign-items:center!important;\n\t\tjustify-content:flex-end!important;\n\t\tgap:10px!important;\n\t\tmargin:0!important;\n\t}\n\t.mip-portal .mip-report-download,\n\t.mip-portal .mip-report-print{\n\t\tdisplay:inline-flex!important;\n\t\tvisibility:visible!important;\n\t\topacity:1!important;\n\t\talign-items:center!important;\n\t\tjustify-content:center!important;\n\t\tmin-height:42px!important;\n\t\tpadding:10px 16px!important;\n\t\tborder-radius:10px!important;\n\t\tborder:1px solid transparent!important;\n\t\tfont-size:12px!important;\n\t\tfont-weight:850!important;\n\t\tline-height:1.2!important;\n\t\twhite-space:nowrap!important;\n\t\tcursor:pointer!important;\n\t}\n\t.mip-portal .mip-report-download{background:#166534!important;color:#fff!important;border-color:#166534!important;}\n\t.mip-portal .mip-report-print{background:#102b4e!important;color:#fff!important;border-color:#102b4e!important;}\n\t.mip-portal .mip-report-download:hover,\n\t.mip-portal .mip-report-print:hover{color:#fff!important;filter:none!important;transform:none!important;}\n\t.mip-portal .mip-report-modal-x{\n\t\tz-index:5!important;\n\t\tright:14px!important;\n\t\ttop:14px!important;\n\t}\n\n\t\/* Tablet *\/\n\t@media (max-width:1024px){\n\t\t.mip-portal .mip-shell{width:100%!important;max-width:100%!important;padding-left:18px!important;padding-right:18px!important;box-sizing:border-box!important;}\n\t\t.mip-portal .mip-dashboard{width:100%!important;max-width:100%!important;}\n\t\t.mip-portal .mip-dashboard-heading{gap:16px!important;flex-wrap:wrap!important;}\n\t\t.mip-portal .mip-five-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;}\n\t\t.mip-portal .mip-panel{width:100%!important;max-width:100%!important;box-sizing:border-box!important;}\n\t\t.mip-portal .mip-create-form,.mip-portal .mip-class-form{grid-template-columns:repeat(2,minmax(0,1fr))!important;}\n\t\t.mip-portal .mip-report-modal{padding:18px!important;}\n\t\t.mip-portal .mip-report-modal-card{width:100%!important;max-width:100%!important;max-height:92vh!important;padding:24px!important;}\n\t\t.mip-portal .mip-report-tabs{width:100%!important;}\n\t\t.mip-portal .mip-report-tab{flex:1 1 260px!important;min-height:46px!important;font-size:12px!important;}\n\t\t.mip-portal .mip-class-table-wrap,.mip-portal .mip-user-table-wrap{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;}\n\t}\n\n\t\/* Mobile *\/\n\t@media (max-width:767px){\n\t\t.mip-portal .mip-shell{padding-left:10px!important;padding-right:10px!important;}\n\t\t.mip-portal .mip-header{padding:12px!important;gap:10px!important;flex-wrap:wrap!important;}\n\t\t.mip-portal .mip-dashboard{padding-top:14px!important;padding-bottom:24px!important;}\n\t\t.mip-portal .mip-dashboard-heading{align-items:flex-start!important;}\n\t\t.mip-portal .mip-dashboard-heading h1{font-size:26px!important;line-height:1.15!important;}\n\t\t.mip-portal .mip-dashboard-heading .mip-logout{width:100%!important;justify-content:center!important;}\n\t\t.mip-portal .mip-five-stats{grid-template-columns:1fr!important;gap:10px!important;}\n\t\t.mip-portal .mip-stat-card{min-height:96px!important;padding:15px!important;}\n\t\t.mip-portal .mip-panel{padding:15px!important;border-radius:15px!important;}\n\t\t.mip-portal .mip-panel-header{flex-direction:column!important;align-items:flex-start!important;gap:10px!important;}\n\t\t.mip-portal .mip-create-form,.mip-portal .mip-class-form{grid-template-columns:1fr!important;}\n\t\t.mip-portal .mip-search-area{grid-template-columns:1fr!important;}\n\t\t.mip-portal .mip-report-tabs{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;}\n\t\t.mip-portal .mip-report-tab{width:100%!important;min-height:48px!important;font-size:12px!important;}\n\t\t.mip-portal .mip-report-modal{padding:8px!important;align-items:center!important;}\n\t\t.mip-portal .mip-report-modal-card{\n\t\t\twidth:100%!important;\n\t\t\tmax-width:100%!important;\n\t\t\tmax-height:94vh!important;\n\t\t\tpadding:18px 12px 14px!important;\n\t\t\tborder-radius:16px!important;\n\t\t}\n\t\t.mip-portal .mip-report-print-head{\n\t\t\tflex-direction:column!important;\n\t\t\talign-items:stretch!important;\n\t\t\tgap:12px!important;\n\t\t\tpadding-right:42px!important;\n\t\t\tmargin-bottom:14px!important;\n\t\t}\n\t\t.mip-portal .mip-report-title-block strong{font-size:15px!important;line-height:1.35!important;}\n\t\t.mip-portal .mip-report-actions{\n\t\t\twidth:100%!important;\n\t\t\tdisplay:grid!important;\n\t\t\tgrid-template-columns:1fr 1fr!important;\n\t\t\tgap:8px!important;\n\t\t}\n\t\t.mip-portal .mip-report-download,\n\t\t.mip-portal .mip-report-print{\n\t\t\twidth:100%!important;\n\t\t\tmin-width:0!important;\n\t\t\tmin-height:44px!important;\n\t\t\tpadding:9px 8px!important;\n\t\t\tfont-size:11px!important;\n\t\t\twhite-space:normal!important;\n\t\t}\n\t\t.mip-portal .mip-report-modal-x{width:36px!important;height:36px!important;font-size:23px!important;}\n\t\t.mip-portal .mip-month-report-table{min-width:690px!important;}\n\t\t.mip-portal .mip-class-table th,.mip-portal .mip-class-table td{font-size:11px!important;}\n\t\t.mip-portal .mip-modal{padding:8px!important;}\n\t\t.mip-portal .mip-modal-card,.mip-portal .mip-modal-inner{width:100%!important;max-width:100%!important;padding:18px 12px!important;border-radius:16px!important;}\n\t\t.mip-portal #mip-teams-frame{height:65vh!important;}\n\t}\n\t@media (max-width:420px){\n\t\t.mip-portal .mip-report-actions{grid-template-columns:1fr!important;}\n\t\t.mip-portal .mip-report-download,.mip-portal .mip-report-print{font-size:12px!important;}\n\t}\n\n\n\/* vNext: readable navy\/slate interface, consistent search and report controls. *\/\n.mip-portal{--navy:#1f2f51;--line:#dbe4ee;--surface-2:#f1f5f9}\n.mip-portal .mip-dashboard .mip-panel{border:1px solid #e1e8f0!important;box-shadow:0 8px 26px rgba(20,40,70,.055)!important;border-radius:18px!important}\n.mip-portal .mip-user-table-wrap th,.mip-portal .mip-class-table th{font-size:11px!important;letter-spacing:.04em!important}\n.mip-portal .mip-user-table-wrap td,.mip-portal .mip-class-table td{font-size:12px!important;line-height:1.55!important}\n.mip-portal .mip-report-search-bar{margin:12px 0 15px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}\n.mip-portal .mip-report-search-bar label{font-weight:700;font-size:12px;color:var(--navy)}\n.mip-portal .mip-report-search{min-width:240px;flex:1;padding:12px 15px;border:1px solid #bdcddd;border-radius:10px!important;background:#fff;color:#162c4b;outline-offset:2px}\n.mip-portal .mip-report-search:focus{border-color:#1f2f51;box-shadow:0 0 0 3px rgba(31,47,81,.12)}\n.mip-portal .mip-report-search-count{font-size:12px;color:#64748b}\n.mip-portal .mip-month-report-table tbody tr[hidden]{display:none!important}\n.mip-portal .mip-email-diagnostic{background:#fff7e8;border:1px solid #e7bc72;color:#573f18;padding:12px 16px;border-radius:11px;margin:0 0 18px}\n.mip-portal .mip-table-scroll{overflow-x:auto}\n.mip-portal button:hover,.mip-portal .mip-report-tab:hover{transition:background-color .16s ease,color .16s ease}\n@media(max-width:700px){.mip-portal .mip-report-search{min-width:100%;width:100%}.mip-portal .mip-report-search-bar{align-items:stretch}.mip-portal .mip-report-modal-card{padding:18px!important}}\n\n\/* UX refresh: consistent navy, readable controls, organized filtered activity *\/\n.mip-portal .mip-smart-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:16px 0 19px;padding:16px;background:#f2f6fc;border:1px solid #dce7f4;border-radius:16px}\n.mip-portal .mip-smart-filters label{display:flex;flex-direction:column;gap:7px;min-width:180px;color:#1f2f51;font-size:12px;font-weight:750}\n.mip-portal .mip-smart-filters select,.mip-portal .mip-smart-filters input{width:100%;min-height:43px;border:1px solid #cbd8e8;border-radius:10px;padding:9px 12px;background:white;color:#1f2f51}\n.mip-portal .mip-smart-filters button,.mip-portal .mip-classes-page-note button{border:1px solid #c5d3e5;background:#1f2f51;color:white;border-radius:10px;padding:12px 17px;font-weight:750;cursor:pointer}\n.mip-portal .mip-smart-filters .mip-clear-selection{background:white;color:#1f2f51}\n.mip-portal .mip-smart-filters .mip-bulk-remove{background:#fff4f1;color:#952923;border-color:#ffc8bf}\n.mip-portal .mip-smart-filters button:hover,.mip-portal .mip-smart-filters button:focus-visible{background:#dfe9f7!important;color:#111!important}\n.mip-portal .mip-unassign-class,.mip-portal .mip-unassign-class:hover,.mip-portal .mip-unassign-class:focus{color:#111!important;background:#f1f5fb!important;border:1px solid #b8c6d8!important;font-size:20px!important;font-weight:900!important}\n.mip-portal .mip-panel{box-shadow:0 12px 35px rgba(16,38,71,.065)!important;border:1px solid rgba(199,214,229,.8)!important;border-radius:22px!important}\n.mip-portal .mip-stat-card{border-radius:18px!important;box-shadow:0 6px 22px rgba(20,45,75,.06)!important}\n.mip-portal .mip-classes-page-note{padding:12px 6px;color:#426080;font-size:13px}\n.mip-portal .mip-report-picker{margin:8px 0 14px}\n.mip-portal .mip-profile-widget{position:relative;z-index:20;min-width:145px;max-width:350px}\n.mip-portal .mip-profile-widget summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;border:1px solid #d6e2ef;background:#fff;padding:8px 15px;border-radius:13px;color:#1f2f51;font-weight:750}\n.mip-portal .mip-avatar,.mip-portal .mip-avatar-fallback{width:34px;height:34px;object-fit:cover;border-radius:50%;background:#e1ecfa;display:grid;place-items:center}\n.mip-portal .mip-profile-form{position:absolute;right:0;top:calc(100% + 8px);background:white;width:min(340px,85vw);padding:20px;box-shadow:0 12px 44px #132a4740;border:1px solid #d7e5f0;border-radius:16px;display:grid;gap:12px}\n.mip-portal .mip-profile-form label{display:grid;gap:6px;color:#1f2f51;font-size:13px}.mip-portal .mip-profile-form input{padding:10px;border:1px solid #cad7e9;border-radius:10px;max-width:100%}\n.mip-portal .mip-profile-form button{background:#1f2f51;color:white;padding:11px;border:0;border-radius:10px}\n.mip-portal[data-theme=\"dark\"] .mip-smart-filters,.mip-portal[data-theme=\"dark\"] .mip-profile-form{background:#19344d;color:white}\n@media(max-width:700px){.mip-portal .mip-smart-filters label{flex:1 1 100%}.mip-portal .mip-smart-filters button{flex:1 1 44%}}\n\n\/* Premium UI finishing pass *\/\n.mip-preloader{position:fixed;inset:0;z-index:2147480000;background:linear-gradient(138deg,#0b1d38,#1f2f51 60%,#132d53);color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:17px;text-align:center;padding:30px;transition:opacity .3s ease,visibility .3s ease;font-family:inherit}\n.mip-preloader.mip-loader-done{opacity:0;visibility:hidden;pointer-events:none}\n.mip-loader-mark{font-size:34px;color:#f8cf78;filter:drop-shadow(0 6px 16px #0005)}\n.mip-loader-name{font-size:clamp(20px,3vw,34px);font-weight:900;letter-spacing:-.035em;max-width:710px;line-height:1.25}\n.mip-loader-ring{width:42px;height:42px;border:3px solid #ffffff50;border-top-color:#f8cf78;border-radius:50%;animation:mip-ring .75s linear infinite}\n.mip-preloader span{opacity:.78;font-size:13px}\n@keyframes mip-ring{to{transform:rotate(360deg)}}\n.mip-portal{font-family:Inter,system-ui,-apple-system,'Segoe UI',sans-serif!important}\n.mip-portal .mip-panel,.mip-portal .mip-stat-card,.mip-portal .mip-header{border-radius:22px!important;box-shadow:0 14px 40px rgba(20,42,76,.065)!important}\n.mip-portal .mip-panel{border:1px solid #e3eaf3!important}\n.mip-portal .mip-kicker{letter-spacing:.095em!important}\n.mip-portal .mip-primary-button,.mip-portal .mip-login-button,.mip-portal .mip-teams-join{background:linear-gradient(125deg,#1f2f51,#102746)!important;color:white!important;box-shadow:0 7px 20px #112b4b26!important;transition:transform .17s ease,box-shadow .17s ease!important}\n.mip-portal .mip-primary-button:hover,.mip-portal .mip-teams-join:hover{transform:translateY(-2px)!important;box-shadow:0 13px 24px #112b4b36!important;color:white!important}\n.mip-portal select,.mip-portal input:not([type=\"checkbox\"]),.mip-portal textarea{border-radius:12px!important;outline-offset:2px!important}\n.mip-portal .mip-profile-widget summary{min-height:44px;border-radius:14px!important;background:#f7f9fc!important;box-shadow:0 3px 12px #102b4e0a}\n.mip-personal-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding:14px 18px;margin:10px 0 17px;background:#f1f6fc;border:1px solid #dfebf5;border-radius:17px}\n.mip-personal-filters label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:800;color:#1f2f51;min-width:145px}\n.mip-personal-filters select,.mip-personal-filters input{background:#fff!important;color:#132c50!important;border:1px solid #d3e0ec!important;padding:10px 12px!important;min-height:42px!important;box-shadow:none!important}\n.mip-personal-filters label[hidden]{display:none!important}\n.mip-review-auto-note{color:#62758d;background:#f1f6fb;border-radius:12px;padding:12px 16px;font-size:13px}\n.mip-portal #mip-review-class[hidden]{display:none!important}\n.mip-portal .mip-class-table tbody tr:hover td{background:#e9f2fc!important}\n.mip-portal button:focus-visible,.mip-portal a:focus-visible,.mip-portal select:focus-visible{outline:3px solid #e5ad48!important;outline-offset:2px!important}\n@media(max-width:650px){.mip-personal-filters{padding:12px}.mip-personal-filters label{flex:1 1 100%}.mip-loader-name{font-size:22px}}\n\n\/* Polished admin workspace: accessible contrast and responsive controls *\/\n.mip-portal .mip-email-diagnostic{display:flex!important;justify-content:space-between;align-items:center;gap:24px;padding:15px 20px!important;border-radius:16px!important;background:#fff8ec!important;border:1px solid #edca8c!important;box-shadow:0 6px 20px #1329490b!important;color:#633e12!important;margin:14px 0 22px!important}\n.mip-portal .mip-email-diagnostic span{display:flex;flex-direction:column;gap:5px;min-width:0}\n.mip-portal .mip-email-diagnostic small{font-size:12px;line-height:1.55;color:#78552f}\n.mip-portal .mip-hide-mail-warning{flex:none;color:#132b4e!important;background:#fff!important;border:1px solid #e9cd9b!important;border-radius:10px;padding:9px 14px;cursor:pointer;font-weight:700}\n.mip-portal .mip-hide-mail-warning:hover{background:#f7e9d1!important;color:#152c4e!important}\n.mip-portal .mip-stats{gap:15px!important}\n.mip-portal .mip-stat-card{border-radius:20px!important;border:1px solid #e5ebf3!important;background:linear-gradient(150deg,#fff 55%,#f4f8fd)!important;box-shadow:0 11px 30px #152f4b10!important;transition:transform .2s ease,box-shadow .2s ease}\n.mip-portal .mip-stat-card:hover{transform:translateY(-3px);box-shadow:0 18px 35px #152f4b18!important}\n.mip-portal .mip-panel{border-radius:22px!important;box-shadow:0 12px 42px #1b355212!important;border:1px solid #e2eaf3!important}\n.mip-portal .mip-smart-filters{border-radius:17px!important;background:linear-gradient(115deg,#f4f8fe,#eaf1fa)!important;padding:18px!important;gap:12px!important}\n.mip-portal .mip-smart-filters select,.mip-portal .mip-smart-filters input{border-radius:11px!important;border:1px solid #d3dfed!important;min-height:44px!important;box-shadow:0 4px 12px #152d4410!important}\n.mip-portal .mip-smart-filters select:focus,.mip-portal .mip-smart-filters input:focus{outline:2px solid #4b79ad!important;outline-offset:1px}\n.mip-portal .mip-filter-delete-all{background:#fff2f0!important;border:1px solid #eeb4ad!important;color:#8b1c15!important;border-radius:11px!important;padding:11px 14px!important;font-weight:750!important;cursor:pointer}\n.mip-portal .mip-filter-delete-all:hover{background:#f9deda!important;color:#65110c!important}\n.mip-portal .mip-filter-load,.mip-portal .mip-bulk-remove,.mip-portal .mip-clear-selection{border-radius:11px!important;min-height:44px!important}\n.mip-portal .mip-class-table tbody tr{transition:background .16s ease}\n.mip-portal .mip-class-table tbody tr:hover{background:#eaf1fa!important}\n@media(max-width:720px){.mip-portal .mip-email-diagnostic{align-items:flex-start;flex-direction:column}.mip-portal .mip-smart-filters{flex-wrap:wrap}}\n<\/style>\n\t\n\t<script>\n\tdocument.addEventListener( 'DOMContentLoaded', function() {\n\n        \/* AJAX student\/month reports, bounded server queries, clear view vs confirmed deletion. *\/\n        (function(){\n          var endpoint=\"https:\\\/\\\/alnooronlinequranacademy.com\\\/portal\\\/wp-admin\\\/admin-ajax.php\";\n          function request(action,fields){var d=new FormData();d.append('action',action);Object.keys(fields).forEach(function(k){if(Array.isArray(fields[k]))fields[k].forEach(function(v){d.append(k+'[]',v)});else d.append(k,fields[k]);});return fetch(endpoint,{method:'POST',body:d,credentials:'same-origin'}).then(function(r){return r.json()}).then(function(r){if(!r.success)throw Error(r.data&&r.data.message||'Request failed');return r.data;});}\n          function context(el){return el.closest('.mip-report-modal-card')||el.closest('.mip-class-activity');}\n          var resetAll=document.getElementById('mip-reset-all-classes');\n          if(resetAll)resetAll.addEventListener('click',async function(){\n            if(!confirm('WARNING: Delete EVERY class for EVERY student and teacher, including completed classes and reviews? Recurring assignments will CONTINUE. This cannot be undone.'))return;\n            resetAll.disabled=true;\n            var note=document.getElementById('mip-reset-progress'),total=0;\n            try {\n              for(var i=0;i<10000;i++){\n                var result=await request('mip_reset_all_classes',{nonce:\"2e4479ff28\",confirmation:'DELETE ALL CLASSES'});\n                total+=result.deleted;\n                if(note)note.textContent='Removed '+total+' records\u2026';\n                if(!result.remaining)break;\n              }\n              mipRefreshAdminCounts();\n              if(note)note.textContent='Class history cleared. Existing recurring schedules remain active.';\n              document.querySelectorAll('.mip-class-activity tbody, .mip-report-panel tbody').forEach(function(el){el.innerHTML='';});\n              \/\/ Report labels have no counters; keep labels unchanged after reset.\n              if(window.mipPortalLiveRefresh) window.mipPortalLiveRefresh();\n            } catch(e){if(note)note.textContent='Reset interrupted: '+e.message+'. Click again to finish.';}\n            finally{resetAll.disabled=false;}\n          });\n\n          function load(el,page,silent){var root=context(el);if(!root)return;var student=root.querySelector('.mip-filter-student').value,month=root.querySelector('.mip-filter-month').value;var status=root.classList.contains('mip-class-activity')?(root.querySelector('[data-class-filter].active')?.dataset.classFilter||'pending'):(root.closest('[id=\"mip-report-completed\"]')?'completed':'pending');var tbody=root.querySelector('tbody');if(!student){alert('Please choose a student.');return;}root.dataset.filteredStudent=student;root.dataset.filteredMonth=month;root.dataset.filteredPage=String(page||1);if(tbody && !silent && !tbody.children.length)tbody.innerHTML='<tr><td colspan=\"6\">Loading classes\u2026<\/td><\/tr>';\n          request('mip_filtered_classes',{nonce:\"90f3651912\",student:student,month:month,status:status,page:page||1,report_week:root.classList.contains('mip-report-panel')?(root.querySelector('.mip-filter-week')?.value||'1'):0}).then(function(r){if(tbody){var updated=(root.classList.contains('mip-class-activity')?r.activity:r.report)||'<tr><td colspan=\"6\">No matching classes.<\/td><\/tr>';if(tbody.dataset.renderKey!==updated || !silent){tbody.innerHTML=updated;tbody.dataset.renderKey=updated;}}var note=root.querySelector('.mip-classes-page-note')||root.querySelector('.mip-report-search-count');if(!note && root.classList.contains('mip-class-activity')){note=document.createElement('div');note.className='mip-classes-page-note';root.appendChild(note);}if(note){var pagingKey=r.count+'|'+r.page+'|'+r.pages;if(note.dataset.pagingKey===pagingKey)return;note.dataset.pagingKey=pagingKey;note.innerHTML='';note.appendChild(document.createTextNode(r.count+' matching classes \u2014 page '+r.page+' of '+Math.max(1,r.pages)+' '));if(r.page>1){var prev=document.createElement('button');prev.textContent='Previous';prev.onclick=function(){load(el,r.page-1)};note.appendChild(prev)}if(r.page<r.pages){var next=document.createElement('button');next.textContent='Next';next.onclick=function(){load(el,r.page+1)};note.appendChild(next)}}}).catch(function(err){if(tbody)tbody.innerHTML='';alert(err.message)});\n          }\n          \n          function mipRefreshAdminCounts(){\n            var stats=document.querySelector('[data-admin-count]');if(!stats)return;\n            request('mip_admin_counts',{nonce:\"be98680b90\"}).then(function(v){\n              ['today','completed','remaining'].forEach(function(k){var node=document.querySelector('[data-admin-count=\"'+k+'\"]');if(node)node.textContent=Number(v[k]||0).toLocaleString();});\n            }).catch(function(e){console.warn('Class counter update:',e.message)});\n          }\n          \/\/ Refresh whichever class view was selected without clicking View Classes.\n          \/\/ Server-side pagination and filters are preserved; do not re-render the whole form.\n          var alnoorLastFilterKey='', alnoorFilterBusy=false;\n          function alnoorRefreshVisibleClasses(){\n            if(document.hidden || alnoorFilterBusy) return;\n            var root=document.querySelector('.mip-class-activity');\n            if(!root) return;\n            var st=root.querySelector('.mip-filter-student'), mo=root.querySelector('.mip-filter-month');\n            if(!st || !st.value || !mo || !mo.value) return;\n            if(root.contains(document.activeElement) && document.activeElement.matches('input,select,textarea')) return;\n            var key=st.value+'|'+mo.value+'|'+(root.querySelector('[data-class-filter].active')?.dataset.classFilter||'pending')+'|'+(root.dataset.filteredPage||1);\n            \/\/ Refresh currently selected student\/month even after counter updates.\n            var button=root.querySelector('.mip-filter-load');\n            if(!button) return;\n            alnoorFilterBusy=true;\n            load(button,Number(root.dataset.filteredPage||1),true);\n            setTimeout(function(){alnoorFilterBusy=false},1500);\n          }\n          window.alnoorRefreshVisibleClasses=alnoorRefreshVisibleClasses;\n          setInterval(alnoorRefreshVisibleClasses,10000);\n          window.mipRefreshAdminCounts=mipRefreshAdminCounts;\n          setInterval(mipRefreshAdminCounts,12000);\n          document.addEventListener('click',function(ev){\n            var hide=ev.target.closest('.mip-hide-mail-warning');if(hide){\n              request('mip_dismiss_mail_issue',{nonce:\"bf2c5d0d09\"}).then(function(){var d=hide.closest('.mip-email-diagnostic');if(d)d.remove();}).catch(function(e){alert(e.message)});return;\n            }\n            var clear=ev.target.closest('.mip-filter-delete-all');if(!clear)return;\n            ev.preventDefault();var root=context(clear);if(!root)return;\n            var student=root.querySelector('.mip-filter-student')?.value,month=root.querySelector('.mip-filter-month')?.value;\n            var status=root.querySelector('[data-class-filter].active')?.dataset.classFilter||'pending';\n            if(!student||!month){alert('Select a student and month first.');return;}\n            if(!confirm('Permanently delete ALL '+status+' classes for this student in '+month+'? This deletes matching class history and reviews, not the recurring assignment.'))return;\n            clear.disabled=true;clear.textContent='Removing\u2026';\n            var removed=0;\n            function batch(){request('mip_clear_filtered_classes',{nonce:\"ab29884c9c\",student:student,month:month,status:status}).then(function(v){removed+=v.deleted;if(v.remaining>0){batch();return;}clear.disabled=false;clear.textContent='Clear All Matching Classes';mipRefreshAdminCounts();load(clear,1);alert('Removed '+removed+' matching classes.');}).catch(function(e){clear.disabled=false;clear.textContent='Clear All Matching Classes';mipRefreshAdminCounts();alert(e.message)});}\n            batch();\n          });\n          document.addEventListener('click',function(ev){var b=ev.target.closest('.mip-filter-load,.mip-clear-selection,.mip-bulk-remove');if(!b)return;ev.preventDefault();var root=context(b),tbody=root&&root.querySelector('tbody');if(b.classList.contains('mip-filter-load')){load(b,1);return;}if(b.classList.contains('mip-clear-selection')){if(tbody)tbody.innerHTML='';var note=root.querySelector('.mip-classes-page-note')||root.querySelector('.mip-report-search-count');if(note)note.textContent='View cleared. No class records deleted.';return;}\n          var ids=Array.from(root.querySelectorAll('tbody tr[data-class-id]')).map(function(tr){return tr.dataset.classId});if(!ids.length){alert('No displayed classes to delete.');return;}if(!confirm('PERMANENTLY DELETE '+ids.length+' DISPLAYED CLASSES? This cannot be undone.'))return;request('mip_bulk_unassign',{nonce:\"e871903449\",ids:ids}).then(function(r){alert(r.message);load(b,1);mipRefreshAdminCounts()}).catch(function(e){alert(e.message)});\n          });\n          document.addEventListener('click',function(ev){var tab=ev.target.closest('.mip-class-activity [data-class-filter]');if(!tab)return;var root=context(tab);if(root&&root.dataset.filteredStudent){setTimeout(function(){load(tab,1)},0);}});\n          document.addEventListener('submit',function(ev){var f=ev.target.closest('.mip-profile-form');if(!f)return;ev.preventDefault();var btn=f.querySelector('button[type=\"submit\"]'),msg=f.querySelector('.mip-profile-message');btn.disabled=true;fetch(endpoint,{method:'POST',body:new FormData(f),credentials:'same-origin'}).then(function(r){return r.json()}).then(function(r){if(!r.success)throw Error(r.data?.message||'Profile save failed');msg.textContent=r.data.message;if(r.data.avatar){var thumb=f.closest('.mip-profile-widget').querySelector('.mip-avatar,.mip-avatar-fallback');if(thumb){var img=document.createElement('img');img.className='mip-avatar';img.src=r.data.avatar;img.alt='Profile';thumb.replaceWith(img)}}}).catch(function(e){msg.textContent=e.message}).finally(function(){btn.disabled=false});});\n        })();\n        \/* Current-month admin report tabs and printing. *\/\n        document.addEventListener('click', function(e){\n            var reportTab=e.target.closest('.mip-report-tab[data-report-tab]');\n            if(reportTab){e.preventDefault();var target=reportTab.dataset.reportTab;var targetPanel=document.getElementById('mip-report-'+target);document.querySelectorAll('.mip-report-tab[data-report-tab]').forEach(function(btn){btn.classList.remove('active');});document.querySelectorAll('.mip-report-panel').forEach(function(panel){panel.classList.remove('active');});if(targetPanel){reportTab.classList.add('active');targetPanel.classList.add('active');document.body.classList.add('mip-report-modal-open');}}\n            var closeReport=e.target.closest('[data-close-report]');if(closeReport){e.preventDefault();document.querySelectorAll('.mip-report-panel').forEach(function(panel){panel.classList.remove('active');});document.querySelectorAll('.mip-report-tab[data-report-tab]').forEach(function(btn){btn.classList.remove('active');});document.body.classList.remove('mip-report-modal-open');}\n            var downloadButton=e.target.closest('.mip-report-download[data-download-report]');if(downloadButton){e.preventDefault();var downloadPanel=document.getElementById(downloadButton.dataset.downloadReport);if(!downloadPanel)return;var rows=downloadPanel.querySelectorAll('table tr'),csv=[];rows.forEach(function(row){if(row.parentElement.tagName==='TBODY' && row.hidden)return;var cells=row.querySelectorAll('th,td'),line=[];cells.forEach(function(cell){var text=cell.innerText.replace(\/\\s+\/g,' ').trim().replace(\/\"\/g,'\"\"');line.push('\"'+text+'\"');});csv.push(line.join(','));});var blob=new Blob(['\\ufeff'+csv.join('\\r\\n')],{type:'text\/csv;charset=utf-8;'});var url=URL.createObjectURL(blob),a=document.createElement('a');a.href=url;a.download=downloadButton.dataset.fileName||'classes-report.csv';document.body.appendChild(a);a.click();a.remove();URL.revokeObjectURL(url);}\n            var printButton=e.target.closest('.mip-report-print[data-print-report]');\n            if(printButton){e.preventDefault();var panel=document.getElementById(printButton.dataset.printReport);if(!panel)return;panel.classList.add('mip-printing-report');document.body.classList.add('mip-report-print-mode');window.print();setTimeout(function(){panel.classList.remove('mip-printing-report');document.body.classList.remove('mip-report-print-mode');},100);}\n        });\n\n        \/* Admin class filters: delegated so they keep working after AJAX updates. *\/\n        document.addEventListener('click', function(e){\n            var tab = e.target.closest('.mip-activity-tab[data-class-filter]');\n            if (!tab) return;\n            e.preventDefault();\n            var filter = tab.dataset.classFilter;\n            document.querySelectorAll('.mip-activity-tab[data-class-filter]').forEach(function(b){ b.classList.toggle('active', b === tab); });\n            document.querySelectorAll('[data-admin-class-state]').forEach(function(row){\n                row.classList.toggle('mip-filter-hidden', row.dataset.adminClassState !== filter);\n            });\n        });\n\n\t\tdocument.addEventListener('click',function(e){\n\t\t\tvar c=e.target.closest('[data-close-modal]');if(c){var k=c.dataset.closeModal,mo=document.getElementById('mip-'+k+'-modal');if(mo)mo.classList.remove('open');document.body.classList.remove('mip-modal-open');if(k==='teams'){var fr=document.getElementById('mip-teams-frame');if(fr)fr.src='about:blank';}}\n\t\t\tvar row=e.target.closest('.mip-completed-row');if(row&&!e.target.closest('a,button')){var mo=document.getElementById('mip-review-modal');if(mo){document.getElementById('mip-review-title').textContent=row.dataset.student+' \u2014 '+row.dataset.teacher;document.getElementById('mip-review-meta').textContent=row.dataset.classLabel||'';document.getElementById('mip-review-body').textContent=row.dataset.review||'No parent review has been submitted for this class yet.';var lessonBox=document.getElementById('mip-admin-lesson-body');lessonBox.textContent=row.dataset.lesson|| (row.dataset.lessonFile ? 'Teacher attached a lesson file.' : 'No lesson submitted for this class yet.');if(row.dataset.lessonFile){var fileLink=document.createElement('a');fileLink.href=row.dataset.lessonFile;fileLink.target='_blank';fileLink.rel='noopener noreferrer';fileLink.textContent='Open Attached Lesson';fileLink.className='alnoor-attachment-button';fileLink.style.display='block';fileLink.style.marginTop='12px';lessonBox.appendChild(fileLink);}mo.classList.add('open');document.body.classList.add('mip-modal-open');}}\n\t\t});\n\t\tvar pr=document.getElementById('mip-print-review');if(pr)pr.addEventListener('click',function(){window.alnoorDownloadLessonImage && window.alnoorDownloadLessonImage();});\n        \/* Teams runs on Microsoft's website, so WordPress cannot detect its Leave button.\n           A script-opened popup can be observed for closure; otherwise an explicit\n           Return to Portal action is available. We never close the Teams desktop app. *\/\n        (function(){\n          var active=null, ticker=null, hasReturned=false;\n          var role=\"other\";\n          if(role==='other')return;\n          var panel=document.createElement('div');panel.className='alnoor-teams-return';panel.hidden=true;\n          panel.innerHTML='<span class=\"alnoor-teams-return-message\">When you leave Teams, return here to finish.<\/span><button type=\"button\" class=\"alnoor-return-btn\">I\u2019ve left the meeting<\/button>';\n          var dash=document.querySelector('.mip-dashboard')||document.querySelector('.mip-portal');if(dash)dash.appendChild(panel);\n          function finish(){\n            if(!active||hasReturned)return;\n            hasReturned=true;panel.hidden=true;\n            if(ticker){clearInterval(ticker);ticker=null;}\n            var cid=active.classId;\n            if(role==='student'){\n              var data=new FormData();data.append('action','alnoor_student_returned');data.append('nonce',\"635f7488ce\");data.append('class_id',cid);\n              fetch(\"https:\\\/\\\/alnooronlinequranacademy.com\\\/portal\\\/wp-admin\\\/admin-ajax.php\",{method:'POST',body:data,credentials:'same-origin'}).catch(function(){});\n              if(typeof window.alnoorShowStudentCelebration==='function') window.alnoorShowStudentCelebration(cid);\n              else document.dispatchEvent(new CustomEvent('alnoor-student-returned',{detail:{classId:cid}}));\n            }else{\n              var box=document.createElement('div');box.className='alnoor-return-message';box.textContent='You have returned from Teams. Please click Mark Completed for the class you finished.';\n              panel.parentNode.insertBefore(box,panel);setTimeout(function(){box.remove();},9000);\n            }\n            active=null;\n          }\n          panel.querySelector('button').addEventListener('click',function(){\n            \/\/ Explicit user action: close only the browser popup opened by this portal.\n            \/\/ Never terminate the desktop Teams application.\n            if(active&&active.popup){try{active.popup.close();}catch(e){}}\n            finish();\n          });\n          document.addEventListener('click',function(e){\n            var a=e.target.closest('a.mip-teams-join');if(!a||!a.href)return;\n            if(!\/^https:\\\/\\\/\/i.test(a.href))return;\n            e.preventDefault();\n            var popup=window.open(a.href,'_blank','popup=yes,width=1200,height=800');\n            if(popup){try{popup.opener=null;}catch(e){} }\n            else {window.open(a.href,'_blank','noopener,noreferrer');}\n            active={classId:a.dataset.classId||'',popup:popup};hasReturned=false;panel.hidden=false;\n            if(ticker)clearInterval(ticker);\n            if(popup){ticker=setInterval(function(){try{if(popup.closed)finish();}catch(e){}},1200);}\n          });\n        })();\n        \/* Student Join click: notify teacher by email; never expose meeting URL in the email. *\/\n        document.addEventListener('click',function(e){\n            var a=e.target.closest('.mip-teams-join[data-join-notice-nonce]'); if(!a)return;\n            var d=new FormData(); d.append('action','mip_student_join_notice'); d.append('nonce',a.dataset.joinNoticeNonce); d.append('class_id',a.dataset.classId||'');\n            fetch(\"https:\\\/\\\/alnooronlinequranacademy.com\\\/portal\\\/wp-admin\\\/admin-ajax.php\",{method:'POST',body:d,credentials:'same-origin',keepalive:true}).catch(function(){});\n        });\n\n\n\t\tdocument.addEventListener('submit',function(e){var f=e.target,b=f.querySelector('button[name=\"mip_delete_user\"]');if(!b)return;e.preventDefault();if(!confirm('Delete this user?'))return;var u=f.querySelector('input[name=\"delete_user_id\"]');if(!u)return;b.disabled=true;var d=new FormData();d.append('action','mip_delete_user_ajax');d.append('nonce',\"b36368e4ee\");d.append('user_id',u.value);fetch(\"https:\\\/\\\/alnooronlinequranacademy.com\\\/portal\\\/wp-admin\\\/admin-ajax.php\",{method:'POST',body:d,credentials:'same-origin'}).then(r=>r.json()).then(r=>{if(!r.success)throw new Error((r.data&&r.data.message)||'Delete failed.');var row=f.closest('tr');if(row)row.remove();}).catch(err=>{alert(err.message);b.disabled=false;});});\n\n\t\tdocument.addEventListener('click',function(e){\n\t\t\tvar b=e.target.closest('.mip-unassign-class');\n\t\t\tif(!b)return;\n\t\t\te.preventDefault();e.stopPropagation();\n\t\t\tif(!confirm('Remove this assigned class?'))return;\n\t\t\tb.disabled=true;\n\t\t\tvar d=new FormData();d.append('action','mip_unassign_class');d.append('nonce',\"7ba834958e\");d.append('class_id',b.dataset.classId);\n\t\t\tfetch(\"https:\\\/\\\/alnooronlinequranacademy.com\\\/portal\\\/wp-admin\\\/admin-ajax.php\",{method:'POST',body:d,credentials:'same-origin'}).then(r=>r.json()).then(r=>{if(!r.success)throw new Error((r.data&&r.data.message)||'Could not remove class.');var row=b.closest('tr');if(row)row.remove();if(window.mipRefreshAdminCounts)window.mipRefreshAdminCounts();}).catch(err=>{alert(err.message);b.disabled=false;});\n\t\t});\n\n\t\tvar tabs   = document.querySelectorAll( '.mip-tab' );\n\t\tvar panels = document.querySelectorAll( '.mip-tab-panel' );\n\n\t\ttabs.forEach( function( tab ) {\n\t\t\ttab.addEventListener( 'click', function() {\n\n\t\t\t\tvar target = this.dataset.tab;\n\n\t\t\t\ttabs.forEach( function( item ) { item.classList.remove( 'active' ); } );\n\t\t\t\tpanels.forEach( function( panel ) { panel.classList.remove( 'active' ); } );\n\n\t\t\t\tthis.classList.add( 'active' );\n\n\t\t\t\tvar panel = document.getElementById( 'mip-tab-' + target );\n\t\t\t\tif ( panel ) {\n\t\t\t\t\tpanel.classList.add( 'active' );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\n\t\t\/* Teacher\/student personal class tabs, scoped to server-filtered own rows. *\/\n        document.addEventListener('click',function(e){\n          var b=e.target.closest('[data-personal-filter]'); if(!b)return;\n          var area=b.closest('[data-personal-schedule-tabs]');if(!area)return;\n          area.querySelectorAll('[data-personal-filter]').forEach(function(x){x.classList.toggle('active',x===b);});\n          var table=area.nextElementSibling;\n          if(!table)return;\n          window.mipApplyHistoryFilter && window.mipApplyHistoryFilter();\n        });\n        \/* Scoped class history: no access to other users' classes. *\/\n        window.mipApplyHistoryFilter=function(){\n          var box=document.querySelector('[data-history-filter]');if(!box)return;\n          var period=box.querySelector('.mip-history-period').value;\n          ['date','month','year'].forEach(function(part){var x=box.querySelector('.mip-history-'+part+'-label');if(x)x.hidden=period!==({date:'day',month:'month',year:'year'}[part]);});\n          var tab=document.querySelector('[data-personal-filter].active');var state=tab?tab.dataset.personalFilter:'pending';\n          var count=0;\n          document.querySelectorAll('.mip-class-table tbody tr[data-personal-state]').forEach(function(r){\n            var d=r.dataset.classDate||'';var ok=(period==='all'||period==='recent'||\n              (period==='day'&&d===box.querySelector('.mip-history-date').value)||\n              (period==='month'&&d.slice(0,7)===box.querySelector('.mip-history-month').value)||\n              (period==='year'&&d.slice(0,4)===box.querySelector('.mip-history-year').value));\n            if(period==='recent'&&count>=1)ok=false;\n            if(ok&&r.dataset.personalState===state)count++;\n            r.style.display=ok&&r.dataset.personalState===state?'':'none';\n          });\n        };\n        document.addEventListener('change',function(e){if(e.target.closest('[data-history-filter]'))window.mipApplyHistoryFilter();});\n        window.mipApplyHistoryFilter();\n        \/* AJAX-compatible search for refreshed weekly report modals. *\/\n        document.addEventListener('input',function(e){\n          var input=e.target.closest('.mip-report-search');if(!input)return;\n          var panel=input.closest('.mip-report-panel');if(!panel)return;\n          var query=input.value.trim().toLocaleLowerCase(), shown=0, total=0;\n          panel.querySelectorAll('.mip-month-report-table tbody tr').forEach(function(row){\n            if(row.querySelectorAll('td').length<2)return;\n            total++;var matched=row.textContent.toLocaleLowerCase().includes(query);\n            row.hidden=!matched; if(matched)shown++;\n          });\n          var counter=panel.querySelector('.mip-report-search-count');\n          if(counter)counter.textContent=shown+' of '+total+' classes';\n        });\n        \/* Student dashboard live sync: teacher completion appears automatically without reload. *\/\n\t\t\n        \n        \/* Academy-wide light theme, including browsers configured for dark mode. *\/\n        var root = document.querySelector('.mip-portal');\n        if (root) root.setAttribute('data-theme', 'light');\n        try { window.localStorage.setItem('mip-theme', 'light'); } catch (e) {}\n        var toggleButton = document.getElementById('mip-theme-toggle');\n        if (toggleButton) toggleButton.remove();\n\n\t} );\n\t<\/script>\n\t\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-16","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/alnooronlinequranacademy.com\/portal\/wp-json\/wp\/v2\/pages\/16","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alnooronlinequranacademy.com\/portal\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/alnooronlinequranacademy.com\/portal\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/alnooronlinequranacademy.com\/portal\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alnooronlinequranacademy.com\/portal\/wp-json\/wp\/v2\/comments?post=16"}],"version-history":[{"count":22,"href":"https:\/\/alnooronlinequranacademy.com\/portal\/wp-json\/wp\/v2\/pages\/16\/revisions"}],"predecessor-version":[{"id":49,"href":"https:\/\/alnooronlinequranacademy.com\/portal\/wp-json\/wp\/v2\/pages\/16\/revisions\/49"}],"wp:attachment":[{"href":"https:\/\/alnooronlinequranacademy.com\/portal\/wp-json\/wp\/v2\/media?parent=16"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}