/* ==========================================================================
   JULY TECH FEST'26 — Core Stylesheet (v4)
   Cosmic dark mode, high-contrast glassmorphic light mode, fixed <select>
   contrast, chat UI, admin media tools
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;600;700;900&family=Rajdhani:wght@400;500;600;700&family=Noto+Sans+Bengali:wght@100;200;300;400;500;600;700;800;900&display=swap');

:root{
  --neon-cyan:#00f5ff; --neon-purple:#8b5cf6; --neon-blue:#3b82f6;
  --cosmic-1:#050318; --cosmic-2:#0f0a2e; --cosmic-3:#1a0f3d;
  --panel-glass: rgba(15,20,35,0.55); --panel-border: rgba(0,245,255,0.25);
  --text-primary:#eaf6ff; --text-muted:#9db4c9;
  --font-display:'Orbitron', sans-serif; --font-body:'Rajdhani', 'Noto Sans Bengali', sans-serif;
  --radius-lg:20px; --radius-md:14px;
}

[data-theme="dark"]{
  --bg-app: var(--cosmic-1); --bg-app-2: var(--cosmic-3);
  --panel-glass: rgba(18,16,45,0.58); --panel-border: rgba(0,245,255,0.3);
  --text-primary:#eef6ff; --text-muted:#9db2d9; --input-bg: rgba(255,255,255,0.05);
  --circuit-opacity: 0.07; --option-bg:#0d0b28; --option-fg:#f2f7ff;
}
[data-theme="light"]{
  --bg-app:#eef2fb; --bg-app-2:#dfe7fb;
  --panel-glass: rgba(255,255,255,0.78); --panel-border: rgba(20,60,140,0.22);
  --text-primary:#0a1530; --text-muted:#3c4d70; --input-bg:#ffffff;
  --circuit-opacity: 0.05; --option-bg:#ffffff; --option-fg:#0a1530;
}

*{box-sizing:border-box;}
[x-cloak]{display:none !important;}

body, h1,h2,h3,h4,h5,h6, p, span, div, label, a, input, select, textarea, button, li, td, th{ font-family:'Rajdhani','Noto Sans Bengali',sans-serif !important; }
i.fa-solid, i.fa-regular, i.fa-brands, i.fas, i.far, i.fab, [class*=" fa-"], [class^="fa-"]{ font-family:"Font Awesome 6 Free","Font Awesome 6 Brands" !important; }
.brand-name-sm, .hero-title, .section-title, .panel-title, .sidebar-brand, .panel-title-sm{ font-family:'Orbitron',sans-serif !important; }

html,body{ margin:0; color:var(--text-primary); min-height:100vh; transition:background .4s ease, color .4s ease; position:relative; background:var(--bg-app); color-scheme: light dark; }

/* Cosmic / circuit background — dark mode gets a rich nebula mesh + faint node grid;
   light mode gets a soft punchy gradient instead of washed-out grey */
.circuit-bg{ position:fixed; inset:0; z-index:-1; pointer-events:none; }
[data-theme="dark"] .circuit-bg{
  background:
    radial-gradient(circle at 12% 8%, rgba(0,245,255,0.16), transparent 38%),
    radial-gradient(circle at 88% 12%, rgba(139,92,246,0.20), transparent 42%),
    radial-gradient(circle at 50% 85%, rgba(59,130,246,0.14), transparent 45%),
    linear-gradient(rgba(0,245,255,var(--circuit-opacity)) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,245,255,var(--circuit-opacity)) 1px, transparent 1px),
    linear-gradient(160deg, var(--cosmic-3), var(--cosmic-1) 55%, var(--cosmic-2));
  background-size: auto, auto, auto, 46px 46px, 46px 46px, auto;
}
[data-theme="light"] .circuit-bg{
  background:
    radial-gradient(circle at 10% 0%, rgba(0,180,255,0.10), transparent 40%),
    radial-gradient(circle at 90% 10%, rgba(120,80,255,0.08), transparent 45%),
    linear-gradient(rgba(20,90,200,var(--circuit-opacity)) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20,90,200,var(--circuit-opacity)) 1px, transparent 1px),
    linear-gradient(160deg, var(--bg-app-2), var(--bg-app));
  background-size: auto, auto, 46px 46px, 46px 46px, auto;
}

.accent{color:var(--neon-cyan); text-shadow:0 0 12px rgba(0,245,255,0.7);}
[data-theme="light"] .accent{ text-shadow:0 0 8px rgba(0,150,220,0.35); }

.glass-card{ background:var(--panel-glass); border:1px solid var(--panel-border); border-radius:var(--radius-lg); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); padding:1.5rem; box-shadow:0 8px 32px rgba(0,0,0,0.25); }
[data-theme="light"] .glass-card{ box-shadow:0 8px 28px rgba(20,60,140,0.10); }

/* ---------- Top bar ---------- */
.topbar{ position:sticky; top:0; z-index:40; background:var(--panel-glass); backdrop-filter:blur(14px); border-bottom:1px solid var(--panel-border); }
.topbar-inner{ max-width:1400px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:0.75rem 1.5rem; flex-wrap:wrap; gap:0.5rem; }
.brand-mini{display:flex; align-items:center; gap:0.75rem;}
.brand-logo-sm{width:56px; height:56px; object-fit:contain; filter:drop-shadow(0 0 10px var(--neon-cyan));}
.brand-name-sm{font-weight:700; font-size:1.15rem; letter-spacing:0.5px;}
.topbar-controls{display:flex; align-items:center; gap:0.6rem; flex-wrap:wrap;}
.pill-toggle{ display:flex; align-items:center; gap:0.4rem; background:var(--input-bg); border:1px solid var(--panel-border); color:var(--text-primary); padding:0.45rem 0.9rem; border-radius:999px; font-weight:600; font-size:0.85rem; cursor:pointer; transition:all .2s; }
.pill-toggle:hover{border-color:var(--neon-cyan); box-shadow:0 0 12px rgba(0,245,255,0.35);}
.ai-chat-btn{ background:linear-gradient(135deg, rgba(0,245,255,0.15), rgba(139,92,246,0.15)); }
.public-subnav{ display:flex; gap:0.4rem; overflow-x:auto; padding:0.5rem 1.5rem; max-width:1400px; margin:0 auto; }
.public-subnav button{ display:flex; align-items:center; gap:0.4rem; white-space:nowrap; background:transparent; border:1px solid var(--panel-border); color:var(--text-muted); padding:0.5rem 1rem; border-radius:999px; font-weight:600; cursor:pointer; font-size:0.85rem; }
.public-subnav button.active{ background:linear-gradient(135deg, var(--neon-cyan), var(--neon-purple)); color:#00121a; border-color:transparent; }
.role-badge{ background:rgba(0,245,255,0.14); border:1px solid var(--neon-cyan); color:var(--neon-cyan); padding:0.3rem 0.75rem; border-radius:999px; font-size:0.75rem; font-weight:700; }
[data-theme="light"] .role-badge{ color:#046b8a; background:rgba(0,150,220,0.12); text-shadow:none; }

/* ---------- Buttons ---------- */
.btn-neon, .btn-neon-sm{ background:linear-gradient(135deg, var(--neon-cyan), var(--neon-purple)); color:#00121a; font-weight:700; border:none; padding:0.8rem 1.6rem; border-radius:12px; cursor:pointer; box-shadow:0 0 20px rgba(0,245,255,0.35); transition:transform .15s ease, box-shadow .2s ease; display:inline-flex; align-items:center; gap:0.5rem; justify-content:center; }
.btn-neon-sm{padding:0.45rem 0.9rem; font-size:0.85rem; border-radius:9px;}
.btn-neon:hover, .btn-neon-sm:hover{transform:translateY(-2px); box-shadow:0 0 28px rgba(0,245,255,0.55);}
.btn-neon-outline, .btn-neon-outline-sm{ background:transparent; border:1.5px solid var(--neon-cyan); color:var(--neon-cyan); font-weight:700; padding:0.8rem 1.6rem; border-radius:12px; cursor:pointer; transition:all .2s; display:inline-flex; align-items:center; gap:0.5rem; justify-content:center; }
[data-theme="dark"] .btn-neon-outline, [data-theme="dark"] .btn-neon-outline-sm{ text-shadow:0 0 8px rgba(0,245,255,0.5); }
.btn-neon-outline-sm{padding:0.45rem 0.9rem; font-size:0.85rem; border-radius:9px;}
.btn-neon-outline:hover, .btn-neon-outline-sm:hover{background:rgba(0,245,255,0.1);}
.file-btn{ position:relative; overflow:hidden; cursor:pointer; }
.hidden-file-input{ position:absolute; width:1px; height:1px; overflow:hidden; opacity:0; inset:0; cursor:pointer; }

.w-full{width:100%;} .mt-2{margin-top:0.5rem;} .mt-3{margin-top:0.9rem;} .mt-4{margin-top:1rem;} .mb-2{margin-bottom:0.5rem;}
.flex{display:flex;} .flex-1{flex:1;} .items-center{align-items:center;} .gap-2{gap:0.5rem;}
.col-span-full{grid-column:1/-1;} .contents{display:contents;} .block{display:block;} .text-center{text-align:center;}

/* ---------- Hero ---------- */
.hero-section{ padding:3rem 1.5rem 2.5rem; text-align:center; max-width:1100px; margin:0 auto; }
.hero-anim-wrap{display:flex; flex-direction:column; align-items:center; gap:0.5rem;}
.logo-anim{ position:relative; width:220px; height:220px; margin-bottom:1rem; display:flex; align-items:center; justify-content:center; }
.anim-rings{position:absolute; inset:0; display:flex; align-items:center; justify-content:center;}
.ring{ position:absolute; border-radius:50%; border:1.5px solid var(--neon-cyan); opacity:0; animation:ringPulse 3.2s ease-out infinite; }
.ring.r1{animation-delay:0s;} .ring.r2{animation-delay:0.5s;} .ring.r3{animation-delay:1s;}
@keyframes ringPulse{ 0%{width:50px; height:50px; opacity:0.9; box-shadow:0 0 12px var(--neon-cyan);} 100%{width:220px; height:220px; opacity:0;} }
.anim-hex{ position:relative; width:150px; height:150px; animation:hexFloat 4s ease-in-out infinite; }
@keyframes hexFloat{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-8px);} }
.hex-panel{ position:relative; width:100%; height:100%; clip-path:polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%); background:linear-gradient(145deg, rgba(0,245,255,0.14), rgba(139,92,246,0.14)); border:2px solid var(--neon-cyan); box-shadow:0 0 30px rgba(0,245,255,0.45), inset 0 0 20px rgba(0,245,255,0.15); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.hex-logo{width:70%; height:70%; object-fit:contain; filter:drop-shadow(0 0 10px var(--neon-cyan));}
.circuit-grid{ position:absolute; inset:0; background-image:linear-gradient(rgba(0,245,255,0.15) 1px, transparent 1px), linear-gradient(90deg, rgba(0,245,255,0.15) 1px, transparent 1px); background-size:14px 14px; animation:gridShift 6s linear infinite; opacity:0.5; }
@keyframes gridShift{ 0%{background-position:0 0;} 100%{background-position:14px 14px;} }
.orbit{ position:absolute; top:50%; left:50%; width:120px; height:120px; margin:-60px 0 0 -60px; border:1px dashed rgba(139,92,246,0.5); border-radius:50%; }
.orbit.o1{animation:spin 5s linear infinite;}
.orbit.o2{width:90px; height:90px; margin:-45px 0 0 -45px; animation:spinRev 3.5s linear infinite; border-color:rgba(0,245,255,0.5);}
@keyframes spin{ from{transform:rotate(0);} to{transform:rotate(360deg);} }
@keyframes spinRev{ from{transform:rotate(360deg);} to{transform:rotate(0);} }
.electron{ position:absolute; top:-3px; left:50%; width:7px; height:7px; margin-left:-3.5px; background:var(--neon-cyan); border-radius:50%; box-shadow:0 0 10px var(--neon-cyan); }
.scanline{ position:absolute; left:0; right:0; top:0; height:3px; background:linear-gradient(90deg, transparent, var(--neon-cyan), transparent); animation:scan 3.2s ease-in-out infinite; box-shadow:0 0 12px var(--neon-cyan); }
@keyframes scan{ 0%{top:0; opacity:0;} 10%{opacity:1;} 90%{opacity:1;} 100%{top:100%; opacity:0;} }

.hero-title{ font-weight:900; font-size:clamp(2rem,6vw,3.6rem); letter-spacing:1px; margin:0.5rem 0 0.1rem; text-shadow:0 0 20px rgba(0,245,255,0.55); }
.hero-subtitle{ font-family:'Orbitron',sans-serif !important; font-size:clamp(0.75rem,1.6vw,1rem); letter-spacing:3px; color:var(--neon-cyan); text-transform:uppercase; margin:0 0 0.75rem; text-shadow:0 0 10px rgba(0,245,255,0.4); }
.hero-slogan{ font-size:clamp(1rem,2.2vw,1.3rem); color:var(--text-muted); max-width:720px; font-weight:600; margin:0.5rem auto; }
.hero-vision{ font-family:'Orbitron',sans-serif !important; font-size:1.1rem; letter-spacing:2px; margin:0.75rem 0 0.25rem; text-transform:uppercase; }
.hero-date{ font-size:0.95rem; color:var(--neon-cyan); letter-spacing:1px; margin-bottom:1.25rem; text-shadow:0 0 10px rgba(0,245,255,0.4); font-weight:700; }
.vision-dot{color:var(--neon-cyan); text-shadow:0 0 14px var(--neon-cyan); font-size:0.7rem; vertical-align:middle;}
.hero-cta{display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-top:1rem;}

.announce-banner{ overflow:hidden; background:linear-gradient(90deg, rgba(0,245,255,0.16), rgba(139,92,246,0.16)); border-bottom:1px solid var(--panel-border); padding:0.55rem 0; }
.announce-track{ display:flex; gap:4rem; white-space:nowrap; width:max-content; animation:marquee 22s linear infinite; font-weight:700; letter-spacing:0.5px; }
.announce-track span{ padding-right:4rem; }
@keyframes marquee{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

.video-section{ max-width:900px; margin:0 auto; padding:0 1.5rem 2rem; }
.video-frame{ position:relative; border-radius:var(--radius-lg); padding:10px; border:1.5px solid var(--neon-cyan); background:linear-gradient(rgba(0,245,255,0.10) 1px, transparent 1px), linear-gradient(90deg, rgba(0,245,255,0.10) 1px, transparent 1px), var(--panel-glass); background-size:20px 20px, 20px 20px, auto; box-shadow:0 0 40px rgba(0,245,255,0.25), inset 0 0 25px rgba(0,245,255,0.08); }
.promo-video{ width:100%; border-radius:calc(var(--radius-lg) - 8px); display:block; }

.section-title{ font-size:1.4rem; text-align:center; margin:2.5rem 0 1.5rem; display:flex; align-items:center; justify-content:center; gap:0.6rem; text-shadow:0 0 12px rgba(0,245,255,0.35); }
[data-theme="light"] .section-title{ text-shadow:none; }

.poster-section{max-width:1300px; margin:0 auto; padding:0 1.5rem 2rem;}
.poster-carousel-track{ display:flex; gap:1.25rem; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:0.5rem; }
.poster-card{ position:relative; border-radius:var(--radius-md); overflow:hidden; flex:0 0 240px; aspect-ratio:3/4; scroll-snap-align:start; border:1px solid var(--panel-border); background:var(--panel-glass); transition:transform .35s ease, box-shadow .35s ease; }
.poster-card img{width:100%; height:100%; object-fit:cover; display:block;}
.poster-card:hover{transform:translateY(-8px) scale(1.02); box-shadow:0 12px 30px rgba(0,245,255,0.3);}
.poster-glow{position:absolute; inset:0; box-shadow:inset 0 0 0 1px rgba(0,245,255,0.4); border-radius:inherit; pointer-events:none;}
.poster-manage-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:0.75rem;}
.poster-manage-card{ border:1px solid var(--panel-border); border-radius:12px; overflow:hidden; text-align:center; }
.poster-manage-card img{width:100%; aspect-ratio:3/4; object-fit:cover; display:block;}
.poster-manage-card button{width:100%; border-radius:0;}

.contest-section, .register-section{max-width:1300px; margin:0 auto; padding:0 1.5rem 2rem;}
.contest-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(180px,1fr)); gap:1.1rem;}
.expo-card{ text-align:center; padding:1.75rem 1rem; transition:transform .25s ease, box-shadow .25s ease; background:linear-gradient(160deg, rgba(0,245,255,0.07), rgba(139,92,246,0.09)), var(--panel-glass); }
.expo-card:hover{ transform:translateY(-6px) scale(1.03); box-shadow:0 14px 34px rgba(0,245,255,0.3), 0 0 0 1px rgba(0,245,255,0.3) inset; }
.expo-card i{ font-size:2rem; color:var(--neon-cyan); margin-bottom:0.75rem; text-shadow:0 0 16px rgba(0,245,255,0.65); animation:iconPulse 3s ease-in-out infinite; }
@keyframes iconPulse{ 0%,100%{filter:drop-shadow(0 0 4px var(--neon-cyan));} 50%{filter:drop-shadow(0 0 14px var(--neon-cyan));} }
.expo-card h3{font-size:0.95rem; margin:0;}
.role-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:1.25rem;}
.role-card{text-align:center; cursor:pointer; transition:transform .2s, box-shadow .2s;}
.role-card:hover{transform:translateY(-6px); box-shadow:0 12px 28px rgba(0,245,255,0.25);}
.role-card i{font-size:2.2rem; color:var(--neon-cyan); margin-bottom:0.75rem;}
.role-card h3{margin:0 0 0.4rem;}
.role-card p{color:var(--text-muted); font-size:0.9rem; margin:0;}

.site-footer{text-align:center; padding:2.5rem 1rem; color:var(--text-muted); font-size:0.85rem;}
.footer-logo{width:56px; opacity:0.85; margin-bottom:0.5rem;}
.footer-organizer{margin-top:0.4rem; font-size:0.78rem;}

.page-wrap{ max-width:820px; margin:0 auto; padding:2rem 1.5rem 3rem; }
.page-wrap-sm{ max-width:460px; }
.mb-3{margin-bottom:0.9rem;}

.modal-backdrop{ position:fixed; inset:0; background:rgba(0,0,0,0.62); backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center; z-index:100; padding:1rem; }
.modal-box{width:100%; max-width:560px; max-height:88vh; overflow-y:auto; position:relative;}
.modal-box.small{max-width:380px;}
.modal-close{ position:absolute; top:1rem; right:1rem; background:none; border:none; color:var(--text-primary); font-size:1.2rem; cursor:pointer; }
.reg-role-tabs{display:flex; gap:0.4rem; margin-bottom:1rem; flex-wrap:wrap;}
.reg-role-tabs button{ flex:1; padding:0.6rem; border-radius:10px; border:1px solid var(--panel-border); background:transparent; color:var(--text-muted); font-weight:700; cursor:pointer; }
.reg-role-tabs button.active{ background:linear-gradient(135deg, var(--neon-cyan), var(--neon-purple)); color:#00121a; border-color:transparent; }

.form-grid{display:grid; grid-template-columns:1fr; gap:0.4rem 0.8rem;}
.form-grid label{font-size:0.85rem; color:var(--text-muted); font-weight:600; margin-top:0.4rem;}
.filter-row{display:flex; gap:0.6rem; flex-wrap:wrap; margin-bottom:0.75rem;}
.filter-row .input-neon{width:auto; flex:1; min-width:150px;}

/* ---------- INPUT / SELECT CONTRAST FIX ----------
   Native <option> lists ignore most CSS, but background-color + color DO
   apply on many engines, and `color-scheme` tells the OS-native popup to
   render in the right palette. Combined, this keeps text readable in both
   themes across Chrome/Edge/Firefox. Safari's native picker has fewer
   style hooks; punchy background/color still helps there too. */
.input-neon, select.input-neon, textarea.input-neon{
  width:100%; background:var(--input-bg); border:1.5px solid var(--panel-border); color:var(--text-primary);
  padding:0.65rem 0.9rem; border-radius:10px; font-size:0.95rem; outline:none; transition:box-shadow .2s, border-color .2s;
  color-scheme: light dark;
}
select.input-neon{ color-scheme: var(--theme-scheme, light dark); }
[data-theme="dark"] select.input-neon{ color-scheme: dark; }
[data-theme="light"] select.input-neon{ color-scheme: light; }
.input-neon:focus{border-color:var(--neon-cyan); box-shadow:0 0 12px rgba(0,245,255,0.35);}
.input-neon:disabled{opacity:0.5; cursor:not-allowed;}
.input-neon.hi-contrast{ border-width:2px; border-color:var(--neon-cyan); box-shadow:0 0 10px rgba(0,245,255,0.2); }
select.input-neon option{ background:var(--option-bg); color:var(--option-fg); }
textarea.input-neon{min-height:90px; resize:vertical;}
.kb-textarea{min-height:260px; font-size:1rem;}
.error-text{color:#ff5e7e; font-size:0.85rem; margin:0.3rem 0;}
.alert-error{ color:#ff8fa4; background:rgba(255,60,90,0.1); border:1px solid rgba(255,60,90,0.4); border-radius:10px; padding:0.65rem 0.9rem; font-size:0.88rem; font-weight:600; margin:0.4rem 0; }
[data-theme="light"] .alert-error{ color:#b3123a; background:rgba(255,60,90,0.08); }
.checkbox-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:0.5rem; margin:0.5rem 0;}
.checkbox-grid-static{display:flex; flex-wrap:wrap; gap:0.5rem; margin:0.4rem 0;}
.checkbox-pill{ display:flex; align-items:center; gap:0.5rem; background:var(--input-bg); border:1.5px solid var(--panel-border); padding:0.5rem 0.75rem; border-radius:10px; font-size:0.85rem; cursor:pointer; }
.locked-display{ display:flex; align-items:center; gap:0.5rem; background:var(--input-bg); border:1px dashed var(--panel-border); padding:0.6rem 0.9rem; border-radius:10px; color:var(--text-muted); }
.chip-locked{ display:inline-flex; align-items:center; gap:0.35rem; background:var(--input-bg); border:1px solid var(--panel-border); padding:0.35rem 0.7rem; border-radius:999px; font-size:0.8rem; color:var(--text-muted); margin:0.15rem; }
.guide-chip{border-color:var(--neon-purple); color:var(--neon-purple);}

.dash-shell{display:flex; min-height:calc(100vh - 66px);}
.sidebar{ width:270px; flex-shrink:0; background:var(--panel-glass); border-right:1px solid var(--panel-border); display:flex; flex-direction:column; padding:1.25rem 0.9rem; }
.sidebar-brand{display:flex; align-items:center; gap:0.7rem; padding:0 0.4rem 1.25rem; font-weight:700;}
.sidebar-brand img{width:50px; filter:drop-shadow(0 0 8px var(--neon-cyan));}
.sidebar-nav{display:flex; flex-direction:column; gap:0.35rem; flex:1; overflow-y:auto;}
.sidebar-nav button{ display:flex; align-items:center; gap:0.7rem; text-align:left; background:none; border:none; color:var(--text-muted); padding:0.7rem 0.9rem; border-radius:10px; cursor:pointer; font-weight:600; }
.sidebar-nav button:hover{background:rgba(0,245,255,0.08); color:var(--text-primary);}
.sidebar-nav button.active{background:linear-gradient(135deg, rgba(0,245,255,0.18), rgba(139,92,246,0.18)); color:var(--neon-cyan); box-shadow:inset 0 0 0 1px var(--panel-border);}
[data-theme="light"] .sidebar-nav button.active{ color:#046b8a; }
.sidebar-foot{border-top:1px solid var(--panel-border); padding-top:1rem;}
.user-chip{display:flex; align-items:center; gap:0.6rem;}
.user-chip i{font-size:1.8rem; color:var(--neon-cyan);}
.u-name{font-weight:700; font-size:0.9rem;}
.u-role{font-size:0.75rem; color:var(--text-muted);}

.dash-content{flex:1; padding:2rem; overflow-x:auto;}
.panel-title{ font-size:1.5rem; margin-bottom:1.25rem; display:flex; align-items:center; gap:0.6rem; text-shadow:0 0 12px rgba(0,245,255,0.35); }
[data-theme="light"] .panel-title{ text-shadow:none; }
.panel-title-sm{ font-family:'Orbitron',sans-serif !important; font-size:1.05rem; margin-bottom:0.75rem; display:flex; align-items:center; gap:0.5rem; }
.panel > .glass-card{margin-bottom:1.25rem;}

.notice-board h3{margin-top:0; font-size:1.05rem;}
.notice-item{display:flex; gap:0.75rem; padding:0.75rem 0; border-top:1px solid var(--panel-border);}
.notice-item:first-of-type{border-top:none;}
.notice-item i{color:var(--neon-cyan); margin-top:0.2rem;}
.notice-title{font-weight:700;}
.notice-body{color:var(--text-muted); font-size:0.9rem;}
.pathway-link{color:var(--neon-cyan); font-size:0.85rem; word-break:break-all;}
.muted{color:var(--text-muted); font-size:0.9rem;}

.admit-warning{display:flex; align-items:center; gap:0.6rem; color:#ffb020; border-color:rgba(255,176,32,0.4);}
[data-theme="light"] .admit-warning{ color:#9a5e00; }
.admit-template{max-width:420px; text-align:center;}
.admit-logo{width:56px; margin-bottom:0.5rem;}
.admit-row{display:flex; justify-content:space-between; padding:0.4rem 0; border-top:1px dashed var(--panel-border); font-size:0.9rem;}
.entry-code-badge{ font-family:'Orbitron',sans-serif !important; font-size:1.4rem; letter-spacing:2px; color:var(--neon-cyan); text-shadow:0 0 14px rgba(0,245,255,0.6); margin-top:0.75rem; }
.voucher-card{ text-align:center; }

.team-member-row{ display:grid; grid-template-columns:1fr auto 1fr 1fr 1fr; gap:0.5rem; align-items:center; margin-bottom:0.5rem; }
.verify-tick{color:#22e08a; font-size:0.85rem; display:flex; align-items:center; gap:0.3rem;}
.verify-fail{color:#ff5e7e; font-size:0.85rem; display:flex; align-items:center; gap:0.3rem;}

.search-row{display:flex; gap:0.6rem; margin-bottom:1rem; flex-wrap:wrap;}
.hd-result{display:flex; flex-direction:column; gap:0.6rem;}
.hd-row{display:flex; align-items:center; gap:0.6rem; font-size:1.05rem;}

.data-table{width:100%; border-collapse:collapse; margin-top:0.75rem;}
.data-table th, .data-table td{padding:0.6rem 0.75rem; border-bottom:1px solid var(--panel-border); text-align:left; font-size:0.9rem;}
.data-table th{color:var(--text-muted); font-weight:700; text-transform:uppercase; font-size:0.75rem; letter-spacing:0.5px;}
.score-input{width:90px;}
.rank-badge{ background:rgba(0,245,255,0.16); border:1px solid var(--neon-cyan); color:var(--neon-cyan); padding:0.25rem 0.65rem; border-radius:999px; font-size:0.75rem; font-weight:700; }
[data-theme="light"] .rank-badge{ color:#046b8a; }

.dept-row{ display:flex; justify-content:space-between; align-items:center; padding:0.6rem 0; border-top:1px solid var(--panel-border); }
.dept-row:first-of-type{border-top:none;}
.admit-member-row{ display:flex; justify-content:space-between; align-items:center; padding:0.6rem 0; border-top:1px dashed var(--panel-border); gap:0.75rem; flex-wrap:wrap; }
.member-profile-row{ display:flex; align-items:center; gap:0.75rem; padding:0.6rem 0; border-top:1px dashed var(--panel-border); }
.member-profile-row:first-of-type{border-top:none;}
.member-photo{width:44px; height:44px; border-radius:50%; object-fit:cover; border:1.5px solid var(--neon-cyan);}

.team-card{margin-bottom:1.25rem;}
.team-card-head{display:flex; align-items:center; gap:0.6rem; flex-wrap:wrap; margin-bottom:0.4rem;}
.team-card-head h3{margin:0; font-size:1.15rem;}
.team-members-list{display:flex; flex-wrap:wrap; gap:0.3rem; margin:0.5rem 0;}
.team-chat-box{ margin-top:1rem; border-top:1px solid var(--panel-border); padding-top:0.9rem; }
.team-chat-box h4{display:flex; align-items:center; gap:0.4rem; margin:0 0 0.5rem; font-size:0.95rem;}
.chat-scroll{ max-height:220px; overflow-y:auto; display:flex; flex-direction:column; gap:0.5rem; padding-right:0.3rem; margin-bottom:0.6rem; }
.chat-msg{ background:var(--input-bg); border:1px solid var(--panel-border); border-radius:10px; padding:0.5rem 0.75rem; max-width:80%; }
.chat-msg-mine{ align-self:flex-end; background:rgba(0,245,255,0.1); border-color:var(--neon-cyan); }
.chat-msg-name{font-size:0.72rem; color:var(--text-muted); font-weight:700;}
.chat-msg p{margin:0.15rem 0 0; font-size:0.9rem;}
.chat-input-row{display:flex; gap:0.5rem;}

.ai-chat-overlay{ position:fixed; inset:0; z-index:90; background:rgba(0,0,0,0.4); display:flex; justify-content:flex-end; }
.ai-chat-panel{ width:100%; max-width:400px; height:100%; border-radius:0; display:flex; flex-direction:column; padding:0; }
.ai-chat-head{ display:flex; align-items:center; gap:0.6rem; padding:1.1rem 1.25rem; border-bottom:1px solid var(--panel-border); font-weight:700; position:relative; }
.ai-chat-body{ flex:1; overflow-y:auto; padding:1rem 1.25rem; display:flex; flex-direction:column; gap:0.7rem; }
.chat-bubble{ max-width:85%; padding:0.65rem 0.9rem; border-radius:14px; font-size:0.9rem; }
.chat-user{ align-self:flex-end; background:linear-gradient(135deg, var(--neon-cyan), var(--neon-purple)); color:#00121a; font-weight:600; }
.chat-ai{ align-self:flex-start; background:var(--input-bg); border:1px solid var(--panel-border); }
.ai-chat-input-row{ display:flex; gap:0.5rem; padding:1rem 1.25rem; border-top:1px solid var(--panel-border); }

.profile-panel{text-align:center;}
.avatar-frame{ width:110px; height:110px; border-radius:50%; margin:0 auto 0.5rem; overflow:hidden; border:2px solid var(--neon-cyan); box-shadow:0 0 22px rgba(0,245,255,0.4); position:relative; }
.avatar-img{width:100%; height:100%; object-fit:cover;}
.avatar-upload-label{ display:inline-flex; align-items:center; gap:0.4rem; cursor:pointer; color:var(--neon-cyan); font-weight:700; font-size:0.85rem; position:relative; }

@media (max-width: 900px){
  .dash-shell{flex-direction:column;}
  .sidebar{width:100%; flex-direction:row; overflow-x:auto;}
  .sidebar-nav{flex-direction:row;}
  .sidebar-foot{display:none;}
  .team-member-row{grid-template-columns:1fr;}
  .ai-chat-panel{max-width:100%;}
  .filter-row .input-neon{min-width:120px;}
}
