*{box-sizing:border-box;margin:0;padding:0}body{background:#f0f4f8;color:#1a202c;font-family:Segoe UI,sans-serif}.app,body{min-height:100vh}.app{align-items:center;background:linear-gradient(135deg,#1e3a5f,#2d6a4f);display:flex;justify-content:center;padding:20px}.auth-container{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0003;max-width:420px;padding:40px;width:100%}.auth-header{margin-bottom:28px;text-align:center}.logo{font-size:48px;margin-bottom:12px}.auth-header h1{color:#1e3a5f;font-size:24px;font-weight:700;margin-bottom:4px}.auth-header p{color:#718096;font-size:14px}.auth-tabs{background:#f0f4f8;border-radius:10px;display:flex;margin-bottom:24px;padding:4px}.auth-tabs button{background:#0000;border:none;border-radius:8px;color:#718096;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:10px;transition:all .2s}.auth-tabs button.active{background:#fff;box-shadow:0 2px 8px #0000001a;color:#1e3a5f}.form-group{margin-bottom:16px}.form-group label{color:#4a5568;display:block;font-size:13px;font-weight:600;margin-bottom:6px}.form-group input,.form-group select{background:#fff;border:1.5px solid #e2e8f0;border-radius:8px;font-size:14px;outline:none;padding:11px 14px;transition:border-color .2s;width:100%}.form-group input:focus,.form-group select:focus{border-color:#1e3a5f}.btn{border:none;border-radius:8px;cursor:pointer;font-size:15px;font-weight:600;padding:12px;transition:all .2s;width:100%}.btn-primary{background:#1e3a5f;color:#fff}.btn-primary:hover{background:#2d5282}.btn-secondary{background:#e2e8f0;color:#4a5568}.btn-danger{background:#e53e3e;color:#fff}.btn-success{background:#2d6a4f;color:#fff}.btn:disabled{cursor:not-allowed;opacity:.6}.error{color:#e53e3e}.error,.success{font-size:13px;margin-top:8px}.success{color:#2d6a4f}.dashboard{background:#f0f4f8;min-height:100vh}.navbar{align-items:center;background:#1e3a5f;color:#fff;display:flex;justify-content:space-between;padding:16px 24px}.navbar h2{font-size:18px}.navbar span{font-size:13px;opacity:.8}.navbar-right{align-items:center;display:flex;gap:16px}.logout-btn{background:#ffffff26;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;padding:8px 16px}.logout-btn:hover{background:#ffffff40}.content{margin:0 auto;max-width:1100px;padding:24px}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.tabs button{background:#fff;border:1.5px solid #e2e8f0;border-radius:8px;color:#718096;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.tabs button.active{background:#1e3a5f;border-color:#1e3a5f;color:#fff}.card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;margin-bottom:16px;padding:24px}.card h3{color:#1e3a5f;font-size:18px;font-weight:600;margin-bottom:20px}.stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:24px}.stat-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:20px;text-align:center}.stat-card .number{color:#1e3a5f;font-size:32px;font-weight:700}.stat-card .label{color:#718096;font-size:13px;margin-top:4px}table{border-collapse:collapse;font-size:14px;width:100%}th{background:#f7fafc;border-bottom:1.5px solid #e2e8f0;font-weight:600;text-align:left}td,th{color:#4a5568;padding:12px}td{border-bottom:1px solid #f0f4f8}tr:hover td{background:#f7fafc}.badge{border-radius:20px;display:inline-block;font-size:12px;font-weight:600;padding:3px 10px}.badge-present{background:#c6f6d5;color:#276749}.badge-absent{background:#fed7d7;color:#9b2335}.badge-admin{background:#bee3f8;color:#2c5282}.badge-faculty{background:#faf089;color:#744210}.badge-student{background:#e9d8fd;color:#553c9a}.form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.action-btn{border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;margin-right:6px;padding:6px 14px}.action-btn-danger{background:#fed7d7;color:#c53030}.action-btn-primary{background:#bee3f8;color:#2c5282}.camera-box{background:#1a202c;border-radius:12px;margin:16px 0;overflow:hidden;position:relative;text-align:center}.camera-box canvas,.camera-box video{display:block;max-height:260px;object-fit:cover;width:100%}.camera-label{color:#718096;font-size:13px;margin-bottom:8px}.captured-img{border:2px solid #2d6a4f;border-radius:8px;max-height:200px;object-fit:cover;width:100%}.attendance-pct{font-size:22px;font-weight:700}.pct-good{color:#2d6a4f}.pct-warn{color:#d69e2e}.pct-bad{color:#e53e3e}.alert{border-radius:8px;font-size:14px;margin-bottom:16px;padding:12px 16px}.alert-warning{background:#fef3cd;border:1px solid #ffc107;color:#856404}.alert-info{background:#cfe2ff;border:1px solid #b6d4fe;color:#084298}@media (max-width:600px){.form-row{grid-template-columns:1fr}.content{padding:16px}.auth-container{padding:24px}}
/*# sourceMappingURL=main.29188c28.css.map*/