/* EduCore 2030 — Main Stylesheet */
@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;600;800&family=Exo+2:wght@300;400;500;600&display=swap');

*{margin:0;padding:0;box-sizing:border-box;}

:root{
  --neon:#00f5d4;--neon2:#7b2fff;--neon3:#ff6b35;--neon4:#ffd23f;
  --bg:#05080f;--bg2:#0a0f1e;--bg3:#0d1526;
  --card:#111827;--card2:#141d2f;
  --border:rgba(0,245,212,.15);--border2:rgba(123,47,255,.2);
  --text:#e0eaff;--muted:#6b7a9f;
  --danger:#ff3d5a;--success:#00f5d4;--warning:#ffd23f;
  --sidebar-w:220px;
}

html,body{height:100%;background:var(--bg);color:var(--text);font-family:'Exo 2',sans-serif;font-size:15px;line-height:1.6;}

/* SCANLINE */
.scanline{position:fixed;top:0;left:0;width:100%;height:100%;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,245,212,.008) 2px,rgba(0,245,212,.008) 4px);pointer-events:none;z-index:9999;}

/* ── LAYOUT ── */
.app-layout{display:flex;height:100vh;width:100%;}
.main-wrap{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;}

/* ── SIDEBAR ── */
.sidebar{width:var(--sidebar-w);background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;transition:width .3s ease,transform .3s ease;overflow:hidden;}
.sidebar.closed{width:60px;}
.sidebar.closed .nav-label,.sidebar.closed .logo-text-wrap,.sidebar.closed .nav-section,.sidebar.closed .nav-badge{display:none;}

.logo-wrap{padding:18px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;flex-shrink:0;}
.logo-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--neon),var(--neon2));border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:'Orbitron',monospace;font-size:14px;font-weight:800;color:#000;flex-shrink:0;}
.logo-title{font-family:'Orbitron',monospace;font-size:13px;font-weight:600;color:var(--neon);white-space:nowrap;}
.logo-sub{font-size:9px;color:var(--muted);letter-spacing:2px;font-family:'Orbitron',monospace;white-space:nowrap;}

.sidebar-nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:10px 8px;}
.sidebar-nav::-webkit-scrollbar{width:3px;}
.sidebar-nav::-webkit-scrollbar-thumb{background:var(--neon2);border-radius:4px;}

.nav-section{font-size:9px;color:var(--muted);letter-spacing:2px;font-family:'Orbitron',monospace;padding:14px 10px 6px;white-space:nowrap;}

.nav-item{display:flex;align-items:center;gap:12px;padding:10px 10px;border-radius:8px;cursor:pointer;transition:all .2s;position:relative;margin-bottom:2px;white-space:nowrap;text-decoration:none;color:var(--text);}
.nav-item:hover{background:rgba(0,245,212,.07);color:var(--text);}
.nav-item.active{background:linear-gradient(135deg,rgba(0,245,212,.14),rgba(123,47,255,.08));border:1px solid rgba(0,245,212,.28);}
.nav-item.active::before{content:'';position:absolute;left:0;top:4px;bottom:4px;width:3px;background:var(--neon);border-radius:0 2px 2px 0;}
.nav-item.active .nav-label,.nav-item.active .nav-icon{color:var(--neon);}
.nav-icon{font-size:17px;width:20px;text-align:center;flex-shrink:0;}
.nav-label{font-size:13px;font-weight:500;}
.nav-badge{background:var(--danger);color:#fff;font-size:10px;padding:2px 6px;border-radius:10px;margin-left:auto;font-family:'Orbitron',monospace;}

.sidebar-bottom{padding:10px 8px;border-top:1px solid var(--border);}
.logout-item{background:rgba(255,61,90,.07)!important;border:1px solid rgba(255,61,90,.2)!important;}
.logout-item .nav-label{color:var(--danger)!important;}

/* ── TOPBAR ── */
.topbar{height:58px;background:var(--bg2);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 20px;gap:14px;flex-shrink:0;}
.sidebar-toggle{background:none;border:1px solid var(--border);border-radius:8px;color:var(--muted);font-size:18px;width:36px;height:36px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;}
.sidebar-toggle:hover{border-color:var(--neon);color:var(--neon);}
.page-title{flex:1;font-family:'Orbitron',monospace;font-size:13px;font-weight:600;color:var(--text);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.page-title span{color:var(--neon);}
.topbar-right{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.year-pill{display:flex;align-items:center;gap:6px;background:var(--card2);border:1px solid var(--border2);padding:5px 12px;border-radius:20px;font-size:11px;color:var(--neon2);font-family:'Orbitron',monospace;white-space:nowrap;}
.status-badge{display:flex;align-items:center;gap:6px;background:rgba(0,245,212,.08);border:1px solid rgba(0,245,212,.25);padding:5px 10px;border-radius:20px;font-size:10px;color:var(--neon);font-family:'Orbitron',monospace;}
.status-dot{width:6px;height:6px;background:var(--neon);border-radius:50%;animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.topbar-btn{width:36px;height:36px;background:var(--card);border:1px solid var(--border);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;transition:all .2s;position:relative;}
.topbar-btn:hover{border-color:var(--neon);color:var(--neon);}
.notify-btn{cursor:pointer;}
.notify-count{position:absolute;top:-4px;right:-4px;background:var(--danger);color:#fff;font-size:9px;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;}
.avatar-pill{width:36px;height:36px;background:linear-gradient(135deg,var(--neon),var(--neon2));border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#000;cursor:pointer;font-family:'Orbitron',monospace;}

/* ── FLASH ── */
.flash{padding:12px 20px;font-size:13px;font-weight:500;}
.flash-success{background:rgba(0,245,212,.12);border-bottom:1px solid rgba(0,245,212,.3);color:var(--neon);}
.flash-error{background:rgba(255,61,90,.12);border-bottom:1px solid rgba(255,61,90,.3);color:var(--danger);}

/* ── PAGE CONTENT ── */
.page-content{flex:1;overflow-y:auto;padding:24px;background:var(--bg);}
.page-content::-webkit-scrollbar{width:4px;}
.page-content::-webkit-scrollbar-thumb{background:var(--neon2);border-radius:4px;}

/* ── STATS GRID ── */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;}
.stat-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;position:relative;overflow:hidden;cursor:pointer;transition:all .3s;}
.stat-card:hover{transform:translateY(-2px);}
.stat-card::before{content:'';position:absolute;top:-10px;right:-10px;width:80px;height:80px;border-radius:50%;opacity:.08;}
.stat-card.c-cyan{border-color:rgba(0,245,212,.25);}
.stat-card.c-cyan::before{background:var(--neon);}
.stat-card.c-purple{border-color:rgba(123,47,255,.25);}
.stat-card.c-purple::before{background:var(--neon2);}
.stat-card.c-orange{border-color:rgba(255,107,53,.25);}
.stat-card.c-orange::before{background:var(--neon3);}
.stat-card.c-yellow{border-color:rgba(255,210,63,.25);}
.stat-card.c-yellow::before{background:var(--neon4);}
.stat-label{font-size:10px;color:var(--muted);letter-spacing:1.5px;text-transform:uppercase;font-family:'Orbitron',monospace;margin-bottom:8px;}
.stat-value{font-size:26px;font-weight:700;font-family:'Orbitron',monospace;margin-bottom:4px;}
.c-cyan .stat-value{color:var(--neon);}
.c-purple .stat-value{color:var(--neon2);}
.c-orange .stat-value{color:var(--neon3);}
.c-yellow .stat-value{color:var(--neon4);}
.stat-change{font-size:12px;color:var(--muted);}
.stat-change.up{color:#00c98d;}.stat-change.down{color:var(--danger);}
.stat-icon{position:absolute;bottom:14px;right:16px;font-size:26px;opacity:.25;}

/* ── CARD ── */
.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:20px;}
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.card-title{font-family:'Orbitron',monospace;font-size:12px;letter-spacing:1px;color:var(--neon);}
.card-action a,.card-action button{font-size:11px;color:var(--neon2);cursor:pointer;border:1px solid var(--border2);padding:5px 14px;border-radius:6px;background:none;font-family:'Exo 2',sans-serif;text-decoration:none;transition:all .2s;}
.card-action a:hover,.card-action button:hover{background:rgba(123,47,255,.15);}

/* ── GRID HELPERS ── */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-bottom:20px;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;}

/* ── TABLE ── */
.data-table{width:100%;border-collapse:collapse;font-size:13px;}
.data-table th{text-align:left;padding:10px 14px;color:var(--muted);font-size:10px;letter-spacing:1.5px;font-family:'Orbitron',monospace;border-bottom:1px solid var(--border);white-space:nowrap;}
.data-table td{padding:12px 14px;border-bottom:1px solid rgba(0,245,212,.05);vertical-align:middle;}
.data-table tr:last-child td{border-bottom:none;}
.data-table tbody tr:hover td{background:rgba(0,245,212,.03);}
.table-wrap{overflow-x:auto;}

/* ── BADGE ── */
.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap;}
.badge-success{background:rgba(0,245,212,.1);color:var(--neon);border:1px solid rgba(0,245,212,.28);}
.badge-warning{background:rgba(255,210,63,.1);color:var(--warning);border:1px solid rgba(255,210,63,.28);}
.badge-danger{background:rgba(255,61,90,.1);color:var(--danger);border:1px solid rgba(255,61,90,.28);}
.badge-info{background:rgba(123,47,255,.1);color:var(--neon2);border:1px solid rgba(123,47,255,.28);}
.badge-muted{background:rgba(107,122,159,.1);color:var(--muted);border:1px solid rgba(107,122,159,.2);}

/* ── AVATAR ── */
.avatar-sm{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--neon2),var(--neon));font-size:11px;font-weight:700;color:#000;font-family:'Orbitron',monospace;flex-shrink:0;}

/* ── FORMS ── */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;}
.form-group{margin-bottom:16px;}
.form-label{display:block;font-size:10px;color:var(--muted);font-family:'Orbitron',monospace;letter-spacing:1px;margin-bottom:7px;}
.form-control{width:100%;background:var(--card2);border:1px solid var(--border);border-radius:8px;padding:10px 14px;color:var(--text);font-family:'Exo 2',sans-serif;font-size:14px;outline:none;transition:border-color .2s;}
.form-control:focus{border-color:var(--neon);}
.form-control::placeholder{color:var(--muted);}
select.form-control option{background:var(--card);}
textarea.form-control{resize:vertical;min-height:90px;}
.form-hint{font-size:11px;color:var(--muted);margin-top:4px;}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;gap:7px;padding:10px 22px;border-radius:8px;font-family:'Exo 2',sans-serif;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all .2s;text-decoration:none;white-space:nowrap;}
.btn-primary{background:linear-gradient(135deg,var(--neon),var(--neon2));color:#000;}
.btn-primary:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 15px rgba(0,245,212,.25);}
.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text);}
.btn-outline:hover{border-color:var(--neon);color:var(--neon);}
.btn-danger{background:rgba(255,61,90,.12);border:1px solid rgba(255,61,90,.35);color:var(--danger);}
.btn-danger:hover{background:rgba(255,61,90,.2);}
.btn-sm{padding:6px 14px;font-size:12px;}
.btn-icon{width:32px;height:32px;padding:0;justify-content:center;}

/* ── SEARCH BAR ── */
.search-bar{display:flex;align-items:center;gap:10px;background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:10px 16px;margin-bottom:16px;}
.search-bar input{flex:1;background:none;border:none;outline:none;color:var(--text);font-family:'Exo 2',sans-serif;font-size:14px;}
.search-bar input::placeholder{color:var(--muted);}
.search-icon{color:var(--muted);font-size:16px;}

/* ── FILTER TABS ── */
.filter-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
.filter-tab{padding:6px 16px;border-radius:20px;font-size:12px;cursor:pointer;border:1px solid var(--border);color:var(--muted);transition:all .2s;text-decoration:none;}
.filter-tab:hover{border-color:rgba(0,245,212,.3);color:var(--text);}
.filter-tab.active{background:rgba(0,245,212,.1);border-color:rgba(0,245,212,.38);color:var(--neon);}

/* ── PAGINATION ── */
.pagination{display:flex;align-items:center;justify-content:space-between;margin-top:16px;}
.pagination-info{font-size:12px;color:var(--muted);}
.pagination-links{display:flex;gap:6px;}
.page-link{padding:6px 12px;border-radius:6px;font-size:12px;border:1px solid var(--border);color:var(--muted);text-decoration:none;transition:all .2s;font-family:'Orbitron',monospace;}
.page-link:hover{border-color:var(--neon);color:var(--neon);}
.page-link.active{background:rgba(0,245,212,.12);border-color:var(--neon);color:var(--neon);}

/* ── PROGRESS BAR ── */
.progress{height:6px;background:rgba(255,255,255,.07);border-radius:4px;overflow:hidden;margin-top:6px;}
.progress-bar{height:100%;border-radius:4px;transition:width .8s ease;}
.progress-cyan{background:linear-gradient(90deg,var(--neon2),var(--neon));}
.progress-orange{background:linear-gradient(90deg,var(--neon3),var(--neon4));}
.progress-purple{background:linear-gradient(90deg,#7b2fff,#c471ed);}

/* ── HOLO CARD ── */
.holo-card{background:linear-gradient(135deg,rgba(0,245,212,.05),rgba(123,47,255,.05));border:1px solid rgba(0,245,212,.2);border-radius:12px;padding:20px;margin-bottom:20px;}
.holo-badge{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,rgba(255,107,53,.12),rgba(255,210,63,.06));border:1px solid rgba(255,107,53,.3);border-radius:8px;padding:5px 14px;font-size:11px;font-family:'Orbitron',monospace;color:var(--neon3);}

/* ── ACTIVITY FEED ── */
.activity-feed{display:flex;flex-direction:column;gap:10px;}
.activity-item{display:flex;align-items:flex-start;gap:12px;padding:10px;background:var(--card2);border-radius:8px;border:1px solid var(--border);}
.activity-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.ai-cyan{background:rgba(0,245,212,.12);color:var(--neon);}
.ai-purple{background:rgba(123,47,255,.12);color:var(--neon2);}
.ai-orange{background:rgba(255,107,53,.12);color:var(--neon3);}
.ai-yellow{background:rgba(255,210,63,.12);color:var(--neon4);}
.ai-danger{background:rgba(255,61,90,.12);color:var(--danger);}
.activity-body .title{font-size:13px;color:var(--text);margin-bottom:2px;}
.activity-body .time{font-size:11px;color:var(--muted);}

/* ── TIMETABLE ── */
.tt-wrap{border-radius:12px;overflow:hidden;border:1px solid var(--border);}
.tt-header{display:grid;background:var(--card2);}
.tt-header-cell{padding:10px 8px;font-size:10px;color:var(--muted);font-family:'Orbitron',monospace;text-align:center;border-right:1px solid var(--border);}
.tt-row{display:grid;border-top:1px solid var(--border);}
.tt-time{padding:14px 8px;font-size:10px;color:var(--muted);font-family:'Orbitron',monospace;background:var(--card2);border-right:1px solid var(--border);display:flex;align-items:center;justify-content:center;text-align:center;}
.tt-cell{padding:8px;border-right:1px solid var(--border);display:flex;align-items:center;justify-content:center;min-height:52px;}
.tt-class{border-radius:6px;padding:4px 8px;font-size:11px;font-weight:600;text-align:center;width:100%;}
.tt-math{background:rgba(0,245,212,.13);color:var(--neon);}
.tt-sci{background:rgba(123,47,255,.13);color:var(--neon2);}
.tt-eng{background:rgba(255,107,53,.13);color:var(--neon3);}
.tt-hist{background:rgba(255,210,63,.13);color:var(--neon4);}
.tt-pe{background:rgba(255,61,90,.13);color:var(--danger);}
.tt-cs{background:rgba(100,200,255,.13);color:#64c8ff;}
.tt-break{grid-column:2/-1;background:rgba(255,210,63,.04);display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--neon4);font-family:'Orbitron',monospace;}

/* ── CALENDAR ── */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.cal-head{font-size:10px;color:var(--muted);text-align:center;padding:4px;font-family:'Orbitron',monospace;}
.cal-day{text-align:center;padding:8px 4px;border-radius:8px;font-size:13px;cursor:pointer;transition:all .2s;color:var(--text);}
.cal-day:hover{background:rgba(0,245,212,.07);}
.cal-day.today{background:rgba(0,245,212,.18);color:var(--neon);font-weight:600;border:1px solid rgba(0,245,212,.38);}
.cal-day.has-event::after{content:'';display:block;width:4px;height:4px;background:var(--neon2);border-radius:50%;margin:2px auto 0;}
.cal-day.other-month{color:var(--muted);opacity:.4;}

/* ── LOGIN PAGE ── */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:20px;}
.login-card{width:100%;max-width:420px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:36px;position:relative;overflow:hidden;}
.login-card::before{content:'';position:absolute;top:-40px;right:-40px;width:160px;height:160px;background:radial-gradient(circle,rgba(0,245,212,.08),transparent 70%);border-radius:50%;}
.login-logo{text-align:center;margin-bottom:28px;}
.login-logo .icon{width:56px;height:56px;background:linear-gradient(135deg,var(--neon),var(--neon2));border-radius:14px;display:flex;align-items:center;justify-content:center;font-family:'Orbitron',monospace;font-size:22px;font-weight:800;color:#000;margin:0 auto 12px;}
.login-logo .title{font-family:'Orbitron',monospace;font-size:20px;font-weight:700;color:var(--neon);}
.login-logo .sub{font-size:12px;color:var(--muted);margin-top:4px;}

/* ── DONUT SVG ── */
.donut-wrap{display:flex;align-items:center;gap:20px;}
.donut-legend{flex:1;}
.legend-item{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.legend-label{font-size:12px;color:var(--text);flex:1;}
.legend-val{font-size:13px;font-family:'Orbitron',monospace;}

/* ── FEE METER SVG ── */
.fee-meter svg{display:block;margin:0 auto;}

/* ── UTILITIES ── */
.flex{display:flex;}.flex-between{display:flex;align-items:center;justify-content:space-between;}.flex-center{display:flex;align-items:center;justify-content:center;}.items-center{align-items:center;}
.gap-8{gap:8px;}.gap-12{gap:12px;}.gap-16{gap:16px;}
.mt-8{margin-top:8px;}.mt-16{margin-top:16px;}.mt-24{margin-top:24px;}
.mb-8{margin-bottom:8px;}.mb-16{margin-bottom:16px;}.mb-24{margin-bottom:24px;}
.text-muted{color:var(--muted);}.text-cyan{color:var(--neon);}.text-purple{color:var(--neon2);}.text-orange{color:var(--neon3);}.text-yellow{color:var(--neon4);}.text-danger{color:var(--danger);}
.text-sm{font-size:12px;}.text-xs{font-size:11px;}.text-mono{font-family:'Orbitron',monospace;}
.w-full{width:100%;}
.divider{height:1px;background:linear-gradient(90deg,transparent,var(--neon),transparent);opacity:.2;margin:20px 0;}

/* ── RESPONSIVE ── */
@media(max-width:1100px){
  .stats-grid{grid-template-columns:1fr 1fr;}
  .grid-3{grid-template-columns:1fr 1fr;}
}
@media(max-width:768px){
  .sidebar{position:fixed;left:-220px;height:100vh;z-index:1000;transition:left .3s;}
  .sidebar.mobile-open{left:0;}
  .stats-grid{grid-template-columns:1fr 1fr;}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}
  .form-grid,.form-grid-3{grid-template-columns:1fr;}
  .page-content{padding:14px;}
}
@media(max-width:480px){
  .stats-grid{grid-template-columns:1fr;}
  .year-pill,.status-badge{display:none;}
  .topbar{padding:0 12px;}
}
