@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,700;0,900;1,700&family=Inter:wght@400;500;600;700;800;900&display=swap";:root{--primary: #4361ee;--primary-light: #4895ef;--primary-dark: #3f37c9;--secondary: #f72585;--accent: #4cc9f0;--bg-gradient-start: #f8faff;--bg-gradient-end: #e0e7ff;--bg-main: #f8faff;--bg-card: rgba(255, 255, 255, .9);--bg-input: #f1f4ff;--bg-input-focus: #ffffff;--bg-table-header: #f8f9fa;--bg-hover-light: rgba(67, 97, 238, .05);--text-main: #2b2d42;--text-muted: #4a4e69;--on-primary: #ffffff;--error: #ef233c;--success: #38b000;--border-light: rgba(0, 0, 0, .05);--border-strong: rgba(0, 0, 0, .1);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .1);--glass: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .3);font-family:Outfit,sans-serif;line-height:1.6;font-weight:400;color:var(--text-main)}.dark{--primary: #4cc9f0;--primary-light: #80ffdb;--primary-dark: #4361ee;--secondary: #f72585;--accent: #48bfe3;--bg-gradient-start: #0f172a;--bg-gradient-end: #020617;--bg-main: #020617;--bg-card: rgba(30, 41, 59, .85);--bg-input: #1e293b;--bg-input-focus: #334155;--bg-table-header: #0f172a;--bg-hover-light: rgba(255, 255, 255, .05);--text-main: #f8fafc;--text-muted: #94a3b8;--on-primary: #020617;--error: #fb7185;--success: #4ade80;--border-light: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .15);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .5);--glass: rgba(30, 41, 59, .6);--glass-border: rgba(255, 255, 255, .1)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,var(--bg-gradient-start) 0%,var(--bg-gradient-end) 100%);background-attachment:fixed;color:var(--text-main);transition:background .3s ease,color .3s ease}#root{display:flex;flex-direction:column;min-height:100vh}h1{font-size:1.75rem;font-weight:700;color:var(--primary-dark);letter-spacing:-.02em}h2{font-size:1.4rem;font-weight:600;color:var(--text-main)}h3{font-size:1.1rem;font-weight:600;color:var(--text-main)}.app-container{max-width:600px;margin:0 auto;width:100%;padding-bottom:100px;flex:1;padding-top:10px}.header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--glass);padding:1.25rem;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:10;text-align:center;border-bottom:1px solid var(--glass-border);margin-bottom:1rem}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:75px;background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;justify-content:space-around;align-items:center;box-shadow:0 -10px 40px #0000001a;z-index:1000;border-top-left-radius:24px;border-top-right-radius:24px;border-top:1px solid var(--glass-border);padding:0 10px}.dark .bottom-nav{background:#1e293bcc;box-shadow:0 -10px 40px #0006}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted);text-decoration:none;font-size:.7rem;font-weight:500;gap:6px;border:none;background:none;cursor:pointer;flex:1;height:100%;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;opacity:.6}.nav-item:after{content:"";position:absolute;top:8px;left:50%;transform:translate(-50%);width:40px;height:40px;background:var(--primary);border-radius:12px;opacity:0;z-index:-1;transition:all .4s cubic-bezier(.4,0,.2,1)}.nav-item.active{color:var(--primary);opacity:1;font-weight:700}.nav-item.active:after{opacity:.1;width:45px;height:45px}.nav-item svg{width:22px;height:22px;transition:all .4s cubic-bezier(.4,0,.2,1)}.nav-item.active svg{transform:translateY(-2px) scale(1.1);filter:drop-shadow(0 0 8px rgba(67,97,238,.4))}.card{background:var(--bg-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:1.5rem;margin:1rem;box-shadow:var(--shadow-md);border:1px solid var(--border-light);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1),background .3s ease}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.button{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:var(--on-primary);border:none;padding:.85rem 1.75rem;border-radius:12px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 15px #4361ee4d;display:inline-flex;align-items:center;justify-content:center;gap:8px}.button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #4361ee66}.button:active{transform:translateY(0)}.button.secondary{background:transparent;color:var(--primary);border:2px solid var(--primary);box-shadow:none}.button.secondary:hover{background:var(--bg-hover-light)}.input-group{margin-bottom:1.25rem}.input-group label{display:block;font-size:.9rem;margin-bottom:6px;color:var(--text-muted);font-weight:600}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%234361ee' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:1.2rem;padding-right:3rem!important}.input-group input,.input-group select,.select-premium{width:100%;padding:.85rem;border:2px solid var(--border-light);background:var(--bg-input);color:var(--text-main);border-radius:12px;font-size:1rem;font-family:inherit;outline:none;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-sm)}.input-group input:focus,.input-group select:focus,.select-premium:focus{background:var(--bg-input-focus);border-color:var(--primary-light);box-shadow:0 0 0 4px #4361ee1a;transform:translateY(-1px)}.report-table{width:100%;border-collapse:separate;border-spacing:0;margin-top:1.5rem;font-size:.9rem;border-radius:12px;overflow:hidden;border:1px solid var(--border-light)}.report-table th{background:var(--bg-table-header);padding:12px;text-align:left;font-weight:600;color:var(--text-muted);border-bottom:2px solid var(--border-light)}.report-table td{padding:12px;border-bottom:1px solid var(--border-light);background:var(--bg-card);color:var(--text-main)}.report-table tr:last-child td{border-bottom:none}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;padding:16px}.subject-card{background:var(--bg-card);border-radius:20px;padding:2rem 1.25rem;text-align:center;box-shadow:var(--shadow-sm);border:1px solid var(--border-light);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.subject-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:var(--primary-light)}.subject-card .icon{margin-bottom:16px;color:var(--primary);background:var(--bg-input);width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:16px;margin-left:auto;margin-right:auto}.modal-overlay{animation:fadeIn .3s ease}.modal-content{animation:slideUp .3s cubic-bezier(.4,0,.2,1)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.login-card{width:100%;max-width:400px;padding:2.5rem;border-radius:24px;text-align:center;background:var(--bg-card);box-shadow:var(--shadow-xl);border:1px solid var(--border-light)}.login-header{margin-bottom:2rem}.login-logo{width:70px;height:70px;background:var(--bg-input);border-radius:20px;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}.login-header h2{margin-bottom:8px}.login-header p{color:var(--text-muted);font-size:.95rem}.login-form{margin-top:2rem}.login-form .input-group{position:relative;margin-bottom:1.5rem}.login-form input{padding-left:3.5rem!important;color:var(--text-main)}.input-icon{position:absolute;left:1.25rem;top:50%;transform:translateY(-50%);color:var(--primary);z-index:5}.login-btn{width:100%;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;border:none;padding:1rem;border-radius:12px;font-size:1.1rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:12px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #4361ee4d}.login-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #4361ee66}.text-btn{background:none;border:none;color:var(--primary);font-weight:600;margin-top:1.5rem;cursor:pointer;font-size:.9rem}.error-message{color:var(--error);background:#ef233c1a;padding:10px;border-radius:8px;font-size:.85rem;margin-bottom:1.5rem}.glass{background:var(--glass);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:1px solid var(--glass-border)}.role-selector{display:flex;background:var(--bg-input);padding:6px;border-radius:12px;margin-bottom:2rem;gap:4px}.role-btn{flex:1;padding:10px;border-radius:8px;border:none;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:600;color:var(--text-muted);transition:all .2s ease}.role-btn.active{background:var(--bg-card);color:var(--primary);box-shadow:var(--shadow-sm)}.header h1{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-weight:800!important;font-size:1.5rem!important;letter-spacing:-.03em;margin:0}.header-actions{display:flex;align-items:center;gap:12px}.icon-btn{background:var(--bg-hover-light);border:1px solid var(--glass-border);color:var(--text-muted);width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-sm)}.icon-btn:hover{background:var(--primary)!important;color:#fff!important;transform:translateY(-2px);box-shadow:0 8px 20px #4361ee40;border-color:var(--primary)}.icon-btn:active{transform:translateY(1px)}.icon-btn svg{width:18px;height:18px;transition:transform .3s ease}.icon-btn:hover svg{transform:scale(1.1)}@media(max-width:600px){.app-container{padding-left:10px;padding-right:10px}.card{margin:.75rem .5rem;padding:1.25rem}.grid{grid-template-columns:1fr!important;padding:10px}}@media(max-width:480px){:root{font-size:15px}h1{font-size:1.4rem!important}h2{font-size:1.2rem!important}h3{font-size:1.1rem!important}.header{padding:1rem .75rem}.header h1{font-size:1.2rem!important}.bottom-nav{height:70px;border-top-left-radius:20px;border-top-right-radius:20px}.nav-item{font-size:.65rem}.nav-item svg{width:20px;height:20px}.stats-grid{grid-template-columns:1fr!important;gap:12px}.modal-content,.card{border-radius:16px}.button{padding:.75rem 1.25rem;font-size:.9rem}.input-group{margin-bottom:1rem}.input-group input,.input-group select{padding:.75rem}}.table-container{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:1rem;border-radius:12px}.report-table{min-width:450px}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}@media(max-width:480px){.setup-screen,.attendance-screen{padding-bottom:120px!important}.stats-grid{gap:12px!important}.login-card{padding:1.5rem!important}.setup-screen .card:first-child{background:var(--bg-card);border-radius:12px;margin:10px 8px}.header{flex-direction:column;align-items:flex-start!important;gap:12px;padding:1rem}.header h1{font-size:1.1rem!important;margin:0}.header-actions{width:100%;justify-content:flex-end}.card{padding:1rem!important;margin:.5rem!important}}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.max-w-email{max-width:150px}@media(min-width:480px){.max-w-email{max-width:250px}}
