@import "https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700&family=Noto+Sans+Tamil:wght@400;500;600;700&display=swap";@tailwind base;@tailwind components;@tailwind utilities;:root{--primary:#1e3a8a;--primary-dark:#172d6e;--primary-light:#2550c8;--primary-50:#eff6ff;--secondary:#3b82f6;--accent:#93c5fd;--accent-warm:#f97316;--bg:#eef2fb;--surface:#fff;--surface-2:#f7f9ff;--border:#e2e8f0;--border-light:#f1f5f9;--text:#1e293b;--text-muted:#64748b;--text-light:#94a3b8;--success:#16a34a;--warning:#d97706;--error:#dc2626;--shadow-sm:0 1px 3px #0b244712, 0 1px 2px #0b24470a;--shadow-md:0 4px 14px #0b24471a, 0 2px 4px #0b24470f;--shadow-lg:0 10px 28px #0b24471f, 0 4px 8px #0b244712;--shadow-xl:0 20px 48px #0b244726, 0 8px 16px #0b244717;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Plus Jakarta Sans,Noto Sans Tamil,system-ui,sans-serif;font-size:15px;line-height:1.6}h1,h2,h3,h4,h5,h6,.font-display{font-family:Outfit,Noto Sans Tamil,system-ui,sans-serif}:lang(ta),.tamil-text{font-family:Noto Sans Tamil,sans-serif}#root{text-align:left;box-sizing:border-box;border:none;flex-direction:column;width:100%;max-width:100%;min-height:100svh;margin:0;display:flex}body{margin:0;padding:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.animate-fade-in{animation:.4s forwards fadeIn}.animate-fade-in-up{animation:.5s forwards fadeInUp}.animate-slide-left{animation:.3s forwards slideInLeft}.animate-slide-right{animation:.3s forwards slideInRight}.animate-scale-in{animation:.3s forwards scaleIn}.stagger-1{animation-delay:50ms}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.bg-mesh{background-color:#dde8ff;background-image:radial-gradient(at 15% 45%,#576cbc2e 0,#0000 55%),radial-gradient(at 80% 15%,#a5d7e838 0,#0000 55%),radial-gradient(at 55% 85%,#ede9ff59 0,#0000 55%)}.bg-gradient-primary{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%)}.bg-gradient-hero{background:linear-gradient(150deg,#1e3a8a 0%,#1e40af 55%,#2563eb 100%)}.app-header{color:#fff;z-index:100;background:linear-gradient(135deg,#1e3a8a 0%,#1e40af 50%,#2563eb 100%);padding:0;position:sticky;top:0;box-shadow:0 2px 12px #1e3a8a40}.app-header-inner{justify-content:space-between;align-items:center;gap:1rem;max-width:1280px;margin:0 auto;padding:.7rem 1.25rem;display:flex}.app-logo{color:#fff;align-items:center;gap:.8rem;text-decoration:none;transition:opacity .2s;display:flex}.app-logo:hover{opacity:.9}.app-logo-icon{background:linear-gradient(135deg,#ffffff38 0%,#ffffff1a 100%);border:1px solid #ffffff38;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.3rem;display:flex}.app-logo-text h1{color:#fff;letter-spacing:-.01em;margin:0;font-family:Outfit,sans-serif;font-size:1rem;font-weight:700;line-height:1.2}.app-logo-text p{color:#ffffff9e;margin:0;font-family:Noto Sans Tamil,sans-serif;font-size:.65rem;line-height:1.2}.nav-link{color:#ffffffd1;border-radius:8px;padding:.4rem .875rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .18s}.nav-link:hover{color:#fff;background:#ffffff24}.nav-link.active{color:#fff;background:#ffffff38;font-weight:600}.app-footer{color:#ffffffa6;text-align:center;background:#1e3a8a;padding:.9rem 1rem;font-size:.75rem}.page-content{box-sizing:border-box;flex:1;width:100%;max-width:1280px;margin:0 auto;padding:1.5rem 1.25rem}.login-page{background:var(--bg);flex-direction:column;height:100dvh;display:flex;overflow:hidden}.login-page.register-page{height:auto;min-height:100dvh;overflow:auto}.login-content{flex:1;align-items:stretch;min-height:0;display:flex;overflow:hidden}.login-page.register-page .login-content{justify-content:center;align-items:flex-start;padding:2rem 1rem;overflow:visible}.login-hero{flex-direction:column;justify-content:center;padding:2.5rem 3rem;display:none;position:relative;overflow:hidden}.login-hero:before{content:"";z-index:0;background:linear-gradient(150deg,#0f2d5a 0%,#1e3a8a 40%,#1d4ed8 100%);position:absolute;inset:0}.login-hero:after{content:"";z-index:0;background:radial-gradient(circle,#a5d7e838 0%,#0000 70%);border-radius:50%;width:380px;height:380px;position:absolute;top:-20%;right:-12%}.login-hero-orb2{z-index:0;background:radial-gradient(circle,#576cbc40 0%,#0000 70%);border-radius:50%;width:300px;height:300px;position:absolute;bottom:-18%;left:-8%}.login-hero-content{z-index:1;position:relative}.hero-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#ffffffe6;background:#ffffff21;border:1px solid #fff3;border-radius:999px;align-items:center;gap:.5rem;margin-bottom:1.25rem;padding:.35rem .875rem;font-size:.75rem;display:inline-flex}.feature-chip{color:#ffffffe0;background:#ffffff1c;border:1px solid #ffffff29;border-radius:999px;align-items:center;gap:.4rem;margin:.2rem .25rem .2rem 0;padding:.35rem .75rem;font-size:.74rem;display:inline-flex}.login-form-side{background:var(--bg);flex-direction:column;justify-content:center;width:100%;padding:1.5rem;display:flex;overflow-y:auto}.login-container{width:100%;max-width:420px;margin:0 auto;animation:.5s both fadeInUp}.register-banner{text-align:center;background:linear-gradient(135deg,#eff6ff 0%,#e8f0ff 100%);border:1px solid #bfdbfe;border-radius:10px;margin-bottom:.875rem;padding:.65rem 1rem;font-size:.82rem}.register-banner a{color:var(--primary-light);font-size:.85rem;font-weight:600;text-decoration:none;transition:color .2s}.register-banner a:hover{color:var(--primary)}.login-card{box-shadow:var(--shadow-lg);border:1px solid var(--border);background:#fff;border-radius:16px;overflow:hidden}.login-card-header{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);color:#fff;align-items:center;gap:.5rem;padding:.875rem 1.375rem;font-family:Outfit,sans-serif;font-size:.95rem;font-weight:600;display:flex}.login-card-body{padding:1.375rem}.login-footer-links{border-top:1px solid var(--border-light);color:var(--text-muted);flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.75rem;padding-top:.75rem;font-size:.78rem;display:flex}.login-footer-links a,.login-footer-links button{color:var(--primary-light);cursor:pointer;background:0 0;border:none;padding:0;font-size:.78rem;text-decoration:none;transition:color .2s}.login-footer-links a:hover,.login-footer-links button:hover{color:var(--primary)}.form-group{margin-bottom:1.1rem}.form-label{color:var(--text);letter-spacing:.01em;margin-bottom:.375rem;font-size:.825rem;font-weight:600;display:block}.form-label span.required{color:var(--error);margin-left:2px}.form-input{border:1.5px solid var(--border);width:100%;color:var(--text);box-sizing:border-box;background:#fff;border-radius:10px;padding:.7rem 1rem;font-family:Plus Jakarta Sans,sans-serif;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.form-input:focus{border-color:var(--secondary);outline:none;box-shadow:0 0 0 3px #576cbc21}.form-input:disabled{background:var(--surface-2);color:var(--text-light);cursor:not-allowed}.form-input::placeholder{color:var(--text-light)}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2364748b' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;padding-right:2.5rem}.btn{cursor:pointer;letter-spacing:.01em;border:none;border-radius:10px;justify-content:center;align-items:center;gap:.4rem;padding:.7rem 1.5rem;font-family:Plus Jakarta Sans,sans-serif;font-size:.9rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);color:#fff;box-shadow:0 2px 8px #0b244738}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg, var(--primary-light) 0%, #2d5aa0 100%);transform:translateY(-1px);box-shadow:0 5px 14px #0b244747}.btn-secondary{background:linear-gradient(135deg, var(--secondary) 0%, #4a5da3 100%);color:#fff;box-shadow:0 2px 8px #576cbc38}.btn-secondary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px 14px #576cbc52}.btn-outline{color:var(--primary);border:1.5px solid var(--primary);background:#fff}.btn-outline:hover:not(:disabled){background:var(--primary-50);transform:translateY(-1px)}.btn-danger{color:#fff;background:linear-gradient(135deg,#dc2626 0%,#b91c1c 100%);box-shadow:0 2px 8px #dc262638}.btn-danger:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px 14px #dc262652}.btn-block{width:100%}.btn:disabled{opacity:.58;cursor:not-allowed;box-shadow:none!important;transform:none!important}.alert{border-radius:10px;margin-bottom:1rem;padding:.875rem 1.125rem;font-size:.875rem}.alert-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.alert-info{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe}.alert-success{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.alert-warning{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.card{box-shadow:var(--shadow-sm);border:1px solid var(--border);background:#fff;border-radius:16px;transition:box-shadow .2s,transform .2s;overflow:hidden}.card:hover{box-shadow:var(--shadow-md)}.card-header{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);color:#fff;padding:.875rem 1.25rem;font-family:Outfit,sans-serif;font-size:.95rem;font-weight:600}.card-body{padding:1.25rem}.stat-card{box-shadow:var(--shadow-sm);border:1px solid var(--border);background:#fff;border-radius:16px;align-items:center;gap:1rem;padding:1.25rem 1.375rem;transition:all .22s;display:flex}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-icon{border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;width:50px;height:50px;font-size:1.5rem;display:flex}.stat-icon-blue{background:#eff6ff}.stat-icon-green{background:#f0fdf4}.stat-icon-orange{background:#fff7ed}.stat-icon-purple{background:#faf5ff}.room-item{cursor:pointer;background:var(--surface-2);border:1.5px solid #0000;border-radius:12px;align-items:center;margin-bottom:.5rem;padding:.875rem 1rem;transition:all .18s;display:flex}.room-item:hover{background:#edf1ff;border-color:#576cbc47;transform:translate(3px)}.room-item.active{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);color:#fff;box-shadow:var(--shadow-md);border-color:#0000}.room-badge{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;margin-right:.875rem;font-size:.875rem;font-weight:700;display:inline-flex}.message-bubble{border-radius:16px;max-width:75%;padding:.75rem 1rem;font-size:.9rem;line-height:1.6}.message-own{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);color:#fff;border-bottom-right-radius:4px;margin-left:auto;box-shadow:0 2px 8px #0b24472e}.message-other{color:var(--text);background:#f1f5f9;border-bottom-left-radius:4px}.message-ai{color:var(--text);background:linear-gradient(135deg,#f0fdf4 0%,#ecfdf5 100%);border:1px solid #bbf7d0;border-bottom-left-radius:4px}.status-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.status-dot.online{background:#22c55e;box-shadow:0 0 0 2px #22c55e38}.status-dot.offline{background:#94a3b8}.status-dot.away{background:#f59e0b}.role-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:.15rem .625rem;font-size:.7rem;font-weight:700;display:inline-block}.role-parent{color:#1e40af;background:#dbeafe}.role-teacher{color:#166534;background:#dcfce7}.role-admin{color:#92400e;background:#fef3c7}.role-ai{color:#7e22ce;background:#f3e8ff}.data-table{border-collapse:collapse;width:100%;font-size:.875rem}.data-table th{background:var(--surface-2);border-bottom:2px solid var(--border);text-align:left;color:var(--text);text-transform:uppercase;letter-spacing:.05em;padding:.75rem 1rem;font-size:.78rem;font-weight:700}.data-table td{border-bottom:1px solid var(--border-light);color:var(--text);padding:.75rem 1rem}.data-table tr:hover td{background:var(--surface-2)}.spinner{border:2.5px solid var(--border);border-top-color:var(--secondary);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin;display:inline-block}.bottom-nav{border-top:1px solid var(--border);z-index:80;background:#fff;padding:.35rem 0 .45rem;display:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #0b244714}.bottom-nav-inner{align-items:stretch;max-width:480px;margin:0 auto;display:flex}.bottom-nav-item{color:var(--text-muted);cursor:pointer;letter-spacing:.02em;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:.18rem;padding:.4rem 0;font-size:.62rem;font-weight:600;text-decoration:none;transition:color .18s;display:flex}.bottom-nav-item:hover{color:var(--primary-light)}.bottom-nav-item.active{color:var(--primary)}.bottom-nav-icon{font-size:1.25rem;line-height:1}.bottom-nav-item.active .bottom-nav-icon{position:relative}.chat-sidebar-overlay{z-index:20;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000061;animation:.2s fadeIn;position:fixed;inset:0}.chat-sidebar-drawer{z-index:30;width:min(300px,85vw);box-shadow:var(--shadow-xl);animation:.25s slideInLeft;position:fixed;top:0;bottom:0;left:0}@media (width>=900px){.login-hero{flex:0 0 44%;max-width:520px;display:flex}.login-form-side{flex:1;padding:2rem 2.5rem;overflow:hidden}.login-container{max-width:400px;margin:0 auto}.login-mobile-cards,.login-mobile-brand,.login-form-logo{display:none}}@media (width<=768px){.app-logo-text p{display:none}.page-content{padding:1rem .875rem 5.5rem}.bottom-nav{display:flex}.app-footer{padding-bottom:5rem}.message-bubble{max-width:88%}.login-form-side{padding:1.5rem 1rem}}@media (width<=640px){.login-card-body{padding:1.25rem}.card-header{padding:.75rem 1rem}.card-body,.stat-card{padding:1rem}.btn{padding:.65rem 1.25rem}}
