/* ===== SITE VARIABLES ===== */
:root{
  --primary:#0a2540;
  --accent:#fbc02d;
  --text:#333;
  --light:#f4f7f6;
  --lms-surface:#f0f4f8;
  --lms-card:#ffffff;
  --lms-border:#e2e8f0;
  --lms-muted:#64748b;
  --lms-green:#16a34a;
  --lms-red:#dc2626;
  --lms-blue:#2563eb;
  --lms-purple:#7c3aed;
  --lms-gold-pale:#fffbeb;
  --lms-radius:14px;
  --lms-shadow:0 2px 16px rgba(10,37,64,.09);
  --lms-shadow-lg:0 8px 40px rgba(10,37,64,.15);
  --font-lms:'Outfit',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Open Sans',sans-serif;color:var(--text);background:var(--light);}
.skip-nav{position:absolute;top:-40px;left:0;background:var(--primary);color:#fff;padding:.5rem 1rem;z-index:100000;transition:top .2s;}
.skip-nav:focus{top:0;}

/* PRELOADER */
#preloader{position:fixed;inset:0;background:#fff;z-index:99999;display:flex;align-items:center;justify-content:center;transition:opacity .5s,visibility .5s;}
#preloader.loaded{opacity:0;visibility:hidden;}
.loader-content{position:relative;display:flex;align-items:center;justify-content:center;}
.spinner{width:80px;height:80px;border:4px solid transparent;border-top-color:var(--accent);border-bottom-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite;}
.loader-logo{position:absolute;width:40px;height:40px;border-radius:50%;object-fit:cover;}
@keyframes spin{to{transform:rotate(360deg);}}

/* NAVBAR */
.navbar{background:var(--primary);padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:400;box-shadow:0 2px 10px rgba(0,0,0,.2);}
.logo a{color:#fff;text-decoration:none;font-family:'Poppins',sans-serif;font-size:1rem;font-weight:800;}
.logo span{color:var(--accent);}
.nav-links{list-style:none;display:flex;align-items:center;gap:1.5rem;}
.nav-links a{color:rgba(255,255,255,.75);text-decoration:none;font-size:.85rem;font-weight:600;transition:color .2s;}
.nav-links a:hover,.nav-links a.active{color:#fff;}
.nav-links .btn-apply{background:var(--accent);color:var(--primary);padding:.45rem 1.1rem;border-radius:8px;font-weight:700;}
.nav-links .btn-apply:hover{background:#e5a800;}
.menu-toggle{display:none;background:none;border:none;color:#fff;font-size:1.3rem;cursor:pointer;}
.nav-home-btn{display:none;color:rgba(255,255,255,.85);font-size:.82rem;font-weight:700;text-decoration:none;padding:.4rem .8rem;border:1.5px solid rgba(255,255,255,.3);border-radius:8px;white-space:nowrap;}
.nav-home-btn:hover{color:#fff;border-color:#fff;}
.whatsapp-btn{position:fixed;bottom:1.5rem;left:1.5rem;z-index:9998;width:50px;height:50px;background:#25d366;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.4rem;box-shadow:0 4px 15px rgba(37,211,102,.4);transition:transform .2s;}
.whatsapp-btn:hover{transform:scale(1.1);}
#backToTop{position:fixed;bottom:1.5rem;right:1.5rem;z-index:9997;width:40px;height:40px;border-radius:50%;background:var(--primary);color:#fff;border:none;cursor:pointer;font-size:.9rem;box-shadow:var(--lms-shadow);display:none;}

/* LOGIN */
.lms-login-section{background:linear-gradient(rgba(10,37,64,.88),rgba(10,37,64,.92)),url('https://debrighttalentedkidsschool.online/wp-content/uploads/2026/01/IMG_2312.jpeg') center/cover;min-height:calc(100vh - 70px);display:flex;align-items:center;justify-content:center;padding:3rem 1.5rem;position:relative;}
.lms-login-card{background:#fff;border-radius:24px;padding:3rem 2.5rem;width:100%;max-width:460px;box-shadow:0 25px 60px rgba(0,0,0,.4);border-top:5px solid var(--accent);animation:slideUp .6s cubic-bezier(.22,1,.36,1) both;position:relative;z-index:2;}
@keyframes slideUp{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:translateY(0);}}
.login-logo-row{display:flex;align-items:center;gap:1rem;margin-bottom:1.8rem;padding-bottom:1.4rem;border-bottom:2px solid var(--light);}
.login-logo-row img{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid var(--accent);}
.login-logo-row h2{font-family:'Poppins',sans-serif;font-size:1rem;font-weight:800;color:var(--primary);line-height:1.3;}
.login-logo-row span{display:block;font-size:.75rem;color:var(--lms-muted);font-weight:500;}
.role-toggle{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--light);border-radius:12px;padding:5px;margin-bottom:1.5rem;}
.role-btn{padding:.75rem .6rem;border:none;border-radius:9px;cursor:pointer;font-family:var(--font-lms);font-size:.85rem;font-weight:600;color:var(--lms-muted);background:transparent;transition:all .25s;-webkit-tap-highlight-color:rgba(0,0,0,0.1);touch-action:manipulation;min-height:44px;}
.role-btn.active{background:var(--primary);color:#fff;box-shadow:0 2px 8px rgba(10,37,64,.25);}
.role-btn i{margin-right:6px;}
.lms-form-group{margin-bottom:1rem;}
.lms-form-group label{display:block;font-family:var(--font-lms);font-size:.8rem;font-weight:700;color:var(--primary);margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.03em;}
.lms-form-group input,.lms-form-group select,.lms-form-group textarea{width:100%;padding:.75rem 1rem;border:1.5px solid var(--lms-border);border-radius:10px;font-family:var(--font-lms);font-size:.9rem;color:var(--text);background:var(--light);transition:border-color .2s,box-shadow .2s;outline:none;}
.lms-form-group input:focus,.lms-form-group select:focus,.lms-form-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(251,192,45,.18);}
.lms-form-group textarea{resize:vertical;min-height:90px;}
.login-error-box{display:none;background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;border-radius:9px;padding:.7rem 1rem;font-size:.83rem;font-weight:600;margin-bottom:1rem;}
.demo-creds{background:var(--lms-gold-pale);border:1px solid #fde68a;border-radius:10px;padding:.75rem 1rem;margin-bottom:1.2rem;font-size:.78rem;color:#92400e;}
.demo-creds strong{display:block;margin-bottom:.3rem;font-family:var(--font-lms);}
.demo-creds code{background:#fff;border:1px solid #fde68a;border-radius:5px;padding:1px 6px;}
.btn-lms-primary{width:100%;padding:.85rem;background:var(--primary);color:#fff;border:none;border-radius:10px;font-family:'Poppins',sans-serif;font-size:.95rem;font-weight:700;cursor:pointer;transition:background .2s,transform .15s;box-shadow:0 4px 16px rgba(10,37,64,.2);touch-action:manipulation;min-height:50px;}
.btn-lms-primary:hover{background:var(--accent);color:var(--primary);transform:translateY(-1px);}
.lms-login-footer{text-align:center;margin-top:1rem;font-size:.8rem;color:var(--lms-muted);}
.lms-login-footer a{color:var(--primary);font-weight:700;text-decoration:none;}

/* DASHBOARD LAYOUT */
#lms-dashboard{display:none;background:var(--lms-surface);min-height:100vh;font-family:var(--font-lms);}
#lms-dashboard.active{display:flex;}
.lms-sidebar{width:235px;min-width:235px;background:var(--primary);display:flex;flex-direction:column;position:fixed;left:0;top:0;height:100vh;overflow-y:auto;z-index:500;box-shadow:4px 0 20px rgba(10,37,64,.2);transition:left .3s;}
.lms-main{flex:1;margin-left:235px;display:flex;flex-direction:column;min-width:0;}
.sb-brand{padding:1.2rem 1.2rem 1rem;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:.75rem;}
.sb-brand img{width:38px;height:38px;border-radius:50%;object-fit:cover;border:2px solid var(--accent);}
.sb-brand-txt strong{color:#fff;font-size:.82rem;font-weight:700;display:block;line-height:1.2;}
.sb-brand-txt em{color:var(--accent);font-size:.7rem;font-style:normal;font-weight:600;}
.sb-user{padding:.9rem 1.2rem;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:.7rem;}
.sb-av{width:36px;height:36px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-family:'Poppins',sans-serif;font-size:.8rem;font-weight:800;color:var(--primary);flex-shrink:0;}
.sb-user-info strong{color:#fff;font-size:.8rem;font-weight:600;display:block;line-height:1.3;}
.sb-user-info span{color:rgba(255,255,255,.45);font-size:.7rem;}
.sb-nav{flex:1;padding:.8rem 0;}
.sb-section{color:rgba(255,255,255,.28);font-size:.63rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;padding:.6rem 1.2rem .2rem;}
.sb-item{display:flex;align-items:center;gap:.7rem;padding:.64rem 1.2rem;color:rgba(255,255,255,.58);font-size:.82rem;font-weight:500;cursor:pointer;transition:all .2s;border-left:3px solid transparent;user-select:none;}
.sb-item:hover{background:rgba(255,255,255,.06);color:#fff;}
.sb-item.active{background:rgba(251,192,45,.13);color:var(--accent);border-left-color:var(--accent);}
.sb-item i{width:17px;text-align:center;font-size:.85rem;}
.sb-badge{margin-left:auto;background:var(--lms-red);color:#fff;font-size:.62rem;font-weight:700;padding:2px 7px;border-radius:999px;min-width:20px;text-align:center;}
.sb-logout{padding:.9rem 1.2rem;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:.7rem;color:rgba(255,255,255,.4);font-size:.82rem;cursor:pointer;transition:color .2s;}
.sb-logout:hover{color:#f87171;}

/* TOPBAR */
.lms-topbar{background:#fff;border-bottom:1px solid var(--lms-border);padding:.8rem 1.8rem;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;box-shadow:0 1px 6px rgba(10,37,64,.06);}
.topbar-left{display:flex;align-items:center;gap:.8rem;}
.mob-sb-btn{display:none;background:none;border:none;color:var(--primary);font-size:1.25rem;cursor:pointer;padding:4px;}
.topbar-title{font-family:'Poppins',sans-serif;font-size:1.05rem;font-weight:700;color:var(--primary);}
.topbar-right{display:flex;align-items:center;gap:.8rem;}
.tb-pill{display:flex;align-items:center;gap:6px;padding:.4rem .9rem;background:var(--light);border-radius:999px;font-size:.78rem;font-weight:600;color:var(--primary);}
.tb-pill .dot{width:8px;height:8px;border-radius:50%;background:var(--lms-green);}
.tb-icon{width:34px;height:34px;border-radius:50%;background:var(--light);border:1px solid var(--lms-border);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--lms-muted);font-size:.85rem;transition:all .2s;position:relative;}
.tb-icon:hover{background:var(--primary);color:#fff;}
.tb-icon .notif-dot{position:absolute;top:6px;right:6px;width:7px;height:7px;background:var(--lms-red);border-radius:50%;border:1.5px solid #fff;}

/* PAGE CONTENT */
#pages-container{flex:1;}
.lms-page{display:none;padding:1.8rem;animation:fadeIn .3s ease;}
.lms-page.active{display:block;}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}

/* PAGE HEADER */
.page-header{margin-bottom:1.4rem;}
.page-header h2{font-family:'Poppins',sans-serif;font-size:1.1rem;font-weight:800;color:var(--primary);}
.page-header span{font-size:.78rem;color:var(--lms-muted);font-weight:500;margin-top:.2rem;display:block;}

/* EMPTY STATES */
.empty-state{text-align:center;padding:3.5rem 1.5rem;color:var(--lms-muted);}
.empty-state i{font-size:2.5rem;margin-bottom:1rem;display:block;opacity:.3;}
.empty-state h3{font-family:'Poppins',sans-serif;font-size:.95rem;font-weight:700;color:var(--primary);margin-bottom:.4rem;}
.empty-state p{font-size:.82rem;line-height:1.6;}
.empty-state-sm{display:flex;align-items:center;gap:.7rem;padding:1.2rem 1.3rem;color:var(--lms-muted);font-size:.83rem;}
.empty-state-sm i{font-size:1.1rem;opacity:.5;}

/* WELCOME BANNER */
.welcome-banner{background:linear-gradient(120deg,var(--primary) 0%,#0d3b6e 100%);border-radius:var(--lms-radius);padding:1.6rem 2rem;margin-bottom:1.8rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;box-shadow:0 4px 20px rgba(10,37,64,.2);overflow:hidden;position:relative;}
.welcome-banner::after{content:'';position:absolute;right:-20px;top:-20px;width:160px;height:160px;border-radius:50%;background:rgba(251,192,45,.08);}
.wb-tag{display:inline-flex;align-items:center;gap:5px;background:var(--accent);color:var(--primary);font-size:.68rem;font-weight:800;padding:3px 10px;border-radius:999px;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.04em;}
.wb-text h2{font-family:'Poppins',sans-serif;font-size:1.35rem;font-weight:800;color:#fff;line-height:1.25;}
.wb-text p{color:rgba(255,255,255,.65);font-size:.83rem;margin-top:.35rem;line-height:1.5;}
.wb-text p strong{color:#fff;}
.wb-icon{font-size:2.8rem;opacity:.12;flex-shrink:0;}

/* STAT CARDS */
.stats-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:1.1rem;margin-bottom:1.8rem;}
.sc{background:#fff;border-radius:var(--lms-radius);padding:1.3rem;box-shadow:var(--lms-shadow);display:flex;align-items:center;gap:.9rem;border-left:4px solid transparent;transition:transform .2s,box-shadow .2s;}
.sc:hover{transform:translateY(-2px);box-shadow:var(--lms-shadow-lg);}
.sc.gold{border-left-color:var(--accent);} .sc.green{border-left-color:#22c55e;} .sc.blue{border-left-color:#3b82f6;} .sc.purple{border-left-color:#8b5cf6;} .sc.red{border-left-color:#ef4444;}
.sc-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}
.sc-icon.gold{background:#fffbeb;color:#b45309;} .sc-icon.green{background:#f0fdf4;color:#15803d;} .sc-icon.blue{background:#eff6ff;color:#1d4ed8;} .sc-icon.purple{background:#f5f3ff;color:#6d28d9;} .sc-icon.red{background:#fef2f2;color:#b91c1c;}
.sc-info label{font-size:.7rem;color:var(--lms-muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em;}
.sc-info .val{font-family:'Poppins',sans-serif;font-size:1.6rem;font-weight:800;color:var(--primary);line-height:1;}
.sc-info .sub{font-size:.72rem;color:var(--lms-muted);margin-top:.1rem;}

/* PANELS */
.panel{background:#fff;border-radius:var(--lms-radius);box-shadow:var(--lms-shadow);overflow:hidden;margin-bottom:1.5rem;}
.panel-head{padding:1rem 1.3rem;border-bottom:1px solid var(--lms-border);display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;}
.panel-head h3{font-family:'Poppins',sans-serif;font-size:.9rem;font-weight:700;color:var(--primary);}
.panel-head .ph-action{color:var(--lms-blue);font-size:.78rem;font-weight:600;background:none;border:none;cursor:pointer;text-decoration:none;padding:0;}
.panel-head .ph-action:hover{opacity:.7;}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem;}
.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.3rem;}

/* TABLE */
.lms-tbl{width:100%;border-collapse:collapse;}
.lms-tbl th{background:var(--lms-surface);color:var(--lms-muted);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.65rem 1rem;text-align:left;}
.lms-tbl td{padding:.8rem 1rem;border-top:1px solid var(--lms-border);font-size:.83rem;color:var(--text);vertical-align:middle;}
.lms-tbl tr:hover td{background:#fafbfc;}

/* CHIPS */
.chip{display:inline-flex;align-items:center;gap:3px;padding:3px 9px;border-radius:999px;font-size:.7rem;font-weight:700;}
.chip i{font-size:.62rem;}
.chip.green{background:#dcfce7;color:#15803d;} .chip.red{background:#fee2e2;color:#b91c1c;} .chip.blue{background:#dbeafe;color:#1e40af;} .chip.gold{background:#fef9c3;color:#92400e;} .chip.grey{background:#f3f4f6;color:#374151;} .chip.purple{background:#ede9fe;color:#5b21b6;}

/* PROGRESS */
.prog-bar{height:6px;background:var(--lms-border);border-radius:999px;overflow:hidden;}
.prog-bar .fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),#e5a800);transition:width .5s;}

/* GRADES */
.grade-A{color:#16a34a;font-weight:800;font-size:1.05rem;} .grade-B{color:#2563eb;font-weight:800;font-size:1.05rem;} .grade-C{color:#d97706;font-weight:800;font-size:1.05rem;} .grade-D{color:#dc2626;font-weight:800;font-size:1.05rem;}

/* ASSIGNMENT CARDS */
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:1.1rem;}
.asgn-card{background:#fff;border-radius:var(--lms-radius);padding:1.2rem;box-shadow:var(--lms-shadow);border-top:4px solid var(--accent);transition:transform .2s,box-shadow .2s;}
.asgn-card:hover{transform:translateY(-3px);box-shadow:var(--lms-shadow-lg);}
.asgn-card h4{font-family:'Poppins',sans-serif;font-size:.88rem;font-weight:700;color:var(--primary);margin-bottom:.3rem;}
.asgn-card p{font-size:.78rem;color:var(--lms-muted);margin-bottom:.6rem;line-height:1.5;}
.asgn-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;}
.asgn-due{font-size:.73rem;color:var(--lms-muted);}
.asgn-due i{color:#d97706;margin-right:3px;}

/* BUTTONS */
.btn-gold{padding:.55rem 1.1rem;border:none;border-radius:8px;background:var(--accent);font-family:var(--font-lms);font-size:.82rem;font-weight:700;color:var(--primary);cursor:pointer;transition:all .2s;}
.btn-gold:hover{background:#e5a800;transform:translateY(-1px);}
.btn-outline{padding:.55rem 1.1rem;border:1.5px solid var(--lms-border);border-radius:8px;background:none;font-family:var(--font-lms);font-size:.82rem;font-weight:600;color:var(--primary);cursor:pointer;transition:all .2s;}
.btn-outline:hover{border-color:var(--primary);background:var(--primary);color:#fff;}
.btn-danger{padding:.55rem 1.1rem;border:none;border-radius:8px;background:#fee2e2;font-family:var(--font-lms);font-size:.82rem;font-weight:700;color:var(--lms-red);cursor:pointer;}

/* NOTICES */
.notice-list{list-style:none;}
.notice-item{display:flex;gap:.9rem;padding:.9rem 1.3rem;border-top:1px solid var(--lms-border);align-items:flex-start;transition:background .2s;}
.notice-item:first-child{border-top:none;}
.notice-item:hover{background:var(--lms-surface);}
.nd{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:5px;}
.notice-item h4{font-size:.84rem;font-weight:600;color:var(--primary);margin-bottom:.2rem;}
.notice-item p{font-size:.77rem;color:var(--lms-muted);line-height:1.5;}
.notice-date{font-size:.7rem;color:var(--lms-muted);margin-top:.25rem;}

/* TIMETABLE */
.tt-wrap{overflow-x:auto;padding:1rem;}
.tt-grid{display:grid;grid-template-columns:80px repeat(5,1fr);gap:5px;min-width:580px;}
.tt-head{font-size:.68rem;font-weight:700;text-align:center;color:var(--lms-muted);text-transform:uppercase;padding:.4rem 0;}
.tt-cell{background:var(--lms-surface);border-radius:7px;padding:.6rem .4rem;text-align:center;font-size:.72rem;font-weight:600;line-height:1.3;min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--primary);}
.tt-cell.break{background:#fef9c3;color:#92400e;font-weight:700;}
.tt-cell.lunch{background:#dcfce7;color:#15803d;font-weight:700;}
.tt-cell.filled-gold{background:rgba(251,192,45,.18);color:#78350f;}
.tt-cell.filled-blue{background:#dbeafe;color:#1e3a8a;}
.tt-cell.filled-green{background:#dcfce7;color:#14532d;}
.tt-cell.filled-purple{background:#ede9fe;color:#4c1d95;}
.tt-cell.filled-red{background:#fee2e2;color:#7f1d1d;}
.tt-sub{font-size:.6rem;opacity:.65;margin-top:2px;}

/* PERFORMANCE RING */
.perf-ring-wrap{display:flex;flex-direction:column;align-items:center;padding:1.5rem 1.5rem .5rem;}
.perf-ring{width:120px;height:120px;border-radius:50%;background:conic-gradient(var(--accent) var(--pct),var(--lms-border) 0);display:flex;align-items:center;justify-content:center;margin-bottom:1.2rem;}
.perf-ring-inner{width:88px;height:88px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.perf-ring-inner strong{font-family:'Poppins',sans-serif;font-size:1.35rem;font-weight:800;color:var(--primary);}
.perf-ring-inner span{font-size:.65rem;color:var(--lms-muted);}

/* ACTIVITY ITEMS */
.activity-item{display:flex;gap:.8rem;align-items:flex-start;padding:.75rem 1.3rem;border-top:1px solid var(--lms-border);}
.activity-item:first-child{border-top:none;}
.act-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:.85rem;flex-shrink:0;}
.act-info p{font-size:.82rem;color:var(--text);line-height:1.5;}
.act-info span{font-size:.7rem;color:var(--lms-muted);}

/* STUDENT ROW */
.std-row{display:flex;align-items:center;gap:.9rem;padding:.75rem 1.3rem;border-top:1px solid var(--lms-border);}
.std-row:first-child{border-top:none;}
.std-av{width:32px;height:32px;border-radius:50%;background:var(--lms-surface);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:var(--primary);flex-shrink:0;border:1.5px solid var(--lms-border);}
.std-info strong{font-size:.83rem;font-weight:600;color:var(--primary);display:block;line-height:1.3;}
.std-info span{font-size:.72rem;color:var(--lms-muted);}
.ml-auto{margin-left:auto;}

/* RESOURCES */
.resource-card{background:#fff;border-radius:var(--lms-radius);padding:1rem 1.2rem;box-shadow:var(--lms-shadow);display:flex;align-items:center;gap:1rem;transition:transform .2s,box-shadow .2s;}
.resource-card:hover{transform:translateY(-2px);box-shadow:var(--lms-shadow-lg);}
.res-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;}
.res-info strong{font-size:.84rem;font-weight:600;color:var(--primary);display:block;}
.res-info span{font-size:.73rem;color:var(--lms-muted);}
.res-dl{margin-left:auto;width:32px;height:32px;border-radius:8px;background:var(--lms-surface);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--lms-muted);transition:all .2s;text-decoration:none;border:none;outline:none;}
.res-dl:hover{background:var(--primary);color:#fff;}

/* QUIZ */
.quiz-q{font-size:.9rem;font-weight:600;color:var(--primary);margin-bottom:1rem;line-height:1.5;}
.quiz-opts{display:flex;flex-direction:column;gap:.55rem;margin-bottom:1.3rem;}
.quiz-opt{padding:.7rem 1rem;border:1.5px solid var(--lms-border);border-radius:9px;cursor:pointer;font-size:.83rem;transition:all .2s;}
.quiz-opt:hover{border-color:var(--accent);background:var(--lms-gold-pale);}
.quiz-opt.correct{border-color:#22c55e;background:#dcfce7;color:#15803d;}
.quiz-opt.wrong{border-color:#ef4444;background:#fee2e2;color:#b91c1c;}
.quiz-prog{height:5px;background:var(--lms-border);border-radius:999px;margin-bottom:1.3rem;}
.quiz-prog .fill{background:var(--accent);height:100%;border-radius:999px;transition:width .4s;}
.quiz-counter{font-size:.75rem;color:var(--lms-muted);margin-bottom:.4rem;font-weight:600;}
.quiz-result{text-align:center;padding:.5rem 0;}
.quiz-score{font-family:'Poppins',sans-serif;font-size:2.8rem;font-weight:800;color:var(--primary);}
.quiz-score span{color:var(--accent);}

/* ====================== AI TUTOR MODERN UI ====================== */
.ai-chat {
  display: flex; flex-direction: column; gap: 1.2rem;
  height: 450px; max-height: 60vh; overflow-y: auto;
  background: #f8fafc; padding: 1.5rem; border-radius: 16px;
  border: 1px solid var(--lms-border); margin-bottom: 1.2rem;
  scroll-behavior: smooth;
}
.ai-msg { display: flex; gap: 0.8rem; align-items: flex-end; animation: fadeIn .3s ease; }
.ai-msg.user { flex-direction: row-reverse; }

.ai-av {
  width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; font-size: 1.1rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.ai-av.bot { background: linear-gradient(135deg, #0a2540, #1e40af); color: #fff; }
.ai-av.usr { background: linear-gradient(135deg, #fbc02d, #f59e0b); color: #fff; font-size: .8rem; font-weight: 700; font-family: 'Poppins', sans-serif;}

.ai-bubble {
  max-width: 75%; padding: 0.85rem 1.2rem; font-size: .9rem; line-height: 1.6;
  box-shadow: 0 2px 10px rgba(0,0,0,0.04);
}
.ai-msg.ai .ai-bubble {
  background: #ffffff; color: var(--text);
  border-radius: 18px 18px 18px 4px; border: 1px solid rgba(0,0,0,0.04);
}
.ai-msg.user .ai-bubble {
  background: var(--primary); color: #ffffff;
  border-radius: 18px 18px 4px 18px;
}

/* Typing Indicator */
.ai-typing { display: flex; gap: 5px; padding: 5px; }
.ai-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--lms-muted); animation: aiDot 1.4s infinite; opacity: .4; }
.ai-dot:nth-child(2) { animation-delay: .2s; } .ai-dot:nth-child(3) { animation-delay: .4s; }
@keyframes aiDot { 0%, 100% { transform: scale(.8); opacity: .4; } 50% { transform: scale(1.2); opacity: 1; } }

/* Inputs and Suggestions */
.ai-input-row { display: flex; gap: 0.8rem; align-items: center; }
.ai-input {
  flex: 1; padding: 1rem 1.2rem; border: 2px solid var(--lms-border);
  border-radius: 999px; font-family: var(--font-lms); font-size: .95rem;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.02); transition: all 0.3s; outline: none;
}
.ai-input:focus { border-color: var(--accent); box-shadow: 0 0 0 4px rgba(251,192,45,0.15); }
.btn-send-ai {
  width: 50px; height: 50px; border-radius: 50%; border: none;
  background: var(--accent); color: var(--primary); font-size: 1.2rem;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; box-shadow: 0 4px 12px rgba(251,192,45,0.3); transition: transform 0.2s;
}
.btn-send-ai:hover { transform: scale(1.08); background: #e5a800;}

#ai-suggestions { display: flex; gap: 0.6rem; flex-wrap: wrap; margin-bottom: 0.8rem; }
.ai-suggestion {
  padding: 0.5rem 1rem; background: #ffffff; border: 1.5px solid var(--lms-border);
  border-radius: 999px; font-size: .8rem; font-weight: 600; color: var(--lms-muted);
  cursor: pointer; transition: all 0.2s ease; box-shadow: 0 2px 6px rgba(0,0,0,0.03);
}
.ai-suggestion:hover { border-color: var(--primary); color: var(--primary); transform: translateY(-2px); }

/* GRADER */
#grade-score{width:100%;padding:.75rem 1rem;border:1.5px solid var(--lms-border);border-radius:10px;font-family:var(--font-lms);font-size:1.1rem;font-weight:700;outline:none;background:var(--light);}
#grade-score:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(251,192,45,.18);}
#grade-feedback{width:100%;padding:.75rem 1rem;border:1.5px solid var(--lms-border);border-radius:10px;font-family:var(--font-lms);font-size:.9rem;outline:none;background:var(--light);resize:vertical;}
#grade-feedback:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(251,192,45,.18);}

/* MODALS */
.lms-modal{position:fixed;inset:0;background:rgba(10,37,64,.6);backdrop-filter:blur(5px);z-index:9000;display:none;align-items:center;justify-content:center;padding:1rem;}
.lms-modal.open{display:flex;}
.lms-modal-box{background:#fff;border-radius:20px;width:100%;max-width:520px;box-shadow:0 20px 60px rgba(10,37,64,.25);animation:slideUp .35s cubic-bezier(.22,1,.36,1) both;max-height:90vh;overflow-y:auto;}
.modal-h{padding:1.2rem 1.5rem;border-bottom:1px solid var(--lms-border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:#fff;z-index:1;}
.modal-h h3{font-family:'Poppins',sans-serif;font-size:.95rem;font-weight:700;color:var(--primary);}
.modal-h button{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--lms-muted);}
.modal-h button:hover{color:var(--lms-red);}
.modal-body{padding:1.4rem 1.5rem;}
.sb-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:499;display:none;}
.sb-overlay.open{display:block;}

/* TOAST */
#lms-toast{position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;background:var(--primary);color:#fff;padding:.75rem 1.3rem;border-radius:12px;font-size:.83rem;font-weight:600;box-shadow:var(--lms-shadow-lg);transform:translateY(80px);opacity:0;transition:all .35s;display:flex;align-items:center;gap:.6rem;font-family:var(--font-lms);min-width:200px;}
#lms-toast.show{transform:translateY(0);opacity:1;}
#lms-toast i{color:var(--accent);}

/* FOOTER */
footer{background:var(--primary);color:rgba(255,255,255,.7);padding:2rem;font-size:.83rem;}
.footer-content{display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:1rem;}
.footer-section h3{color:#fff;font-family:'Poppins',sans-serif;font-size:.88rem;margin-bottom:.6rem;}
.footer-section p{margin-bottom:.3rem;}
.copyright{border-top:1px solid rgba(255,255,255,.1);padding-top:1rem;text-align:center;font-size:.78rem;}

/* ATT */
.att-dots{display:flex;gap:4px;flex-wrap:wrap;}
.att-dot{width:14px;height:14px;border-radius:50%;}
.att-dot.p{background:#22c55e;} .att-dot.a{background:#ef4444;} .att-dot.h{background:var(--accent);}

/* RESPONSIVE */
@media(max-width:900px){
  .lms-sidebar{left:-240px;}
  .lms-sidebar.open{left:0;}
  .lms-main{margin-left:0;}
  .mob-sb-btn{display:flex!important;align-items:center;justify-content:center;}
  .two-col,.three-col{grid-template-columns:1fr;}
  .stats-row{grid-template-columns:1fr 1fr;}
  .lms-page{padding:1.1rem;}
  .navbar{padding:.9rem 1.2rem;position:relative;}
  .nav-links{display:none;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--primary);padding:.5rem 0 1rem;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:399;}
  .nav-links.active{display:flex;}
  .nav-links li{width:100%;}
  .nav-links a{display:block;padding:.75rem 1.5rem;font-size:.9rem;}
  .menu-toggle{display:block;}
  .nav-home-btn{display:flex;align-items:center;gap:.3rem;}
}
@media(max-width:500px){
  .stats-row{grid-template-columns:1fr;}
  .cards-grid{grid-template-columns:1fr;}
  .lms-login-card{padding:2rem 1.4rem;}
  .welcome-banner{padding:1.2rem 1.4rem;}
  .wb-text h2{font-size:1.1rem;}
}

/* ====================================================
   PORTAL LOGO SIZING FIX
==================================================== */
.dynamic-school-logo, 
img[src*="logo"] {
    display: block !important;
    max-height: 65px !important;
    width: auto;
    object-fit: contain;
    min-width: 50px;
    min-height: 50px;
    opacity: 1 !important;
}

.login-header img,
.login-box img[src*="logo"] {
    max-height: 80px !important;
    margin: 0 auto;
}

/* Portal Logo Sizing Fix */
.dynamic-school-logo, 
img[src*="logo"] {
    display: block !important;
    max-height: 65px !important;
    width: auto;
    object-fit: contain;
    min-width: 50px;
    opacity: 1 !important;
}
