body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root,body,html{height:100%;width:100%}#root{display:block;position:relative}.dashboard-wrapper{background:linear-gradient(135deg,#e3f2fd,#bbdefb);background-image:radial-gradient(circle at 20% 50%,#ffffff4d 0,#0000 50%),radial-gradient(circle at 80% 80%,#fff3 0,#0000 50%);box-sizing:border-box;display:flex;flex-direction:row;font-family:Segoe UI,sans-serif;height:auto;margin:0;overflow:visible;padding:0;width:100%}.dashboard-content{box-sizing:border-box;display:block;margin-left:280px;margin-top:70px;padding:16px;width:calc(100% - 280px)}.faculty-topbar{align-items:center;background:linear-gradient(135deg,#1e3a8a,#2563eb);box-shadow:0 2px 10px #00000026;box-sizing:border-box;display:flex;height:70px;left:0;margin:0;overflow:hidden;padding:0 40px;position:fixed;right:0;top:0;width:100%;z-index:1000}.faculty-topbar img{height:50px;margin-right:16px;object-fit:contain;width:auto}.faculty-topbar h2{color:#fff;font-size:22px;font-weight:600;margin:0}.faculty-sidebar{align-items:center;background:linear-gradient(180deg,#e3f2fd,#bbdefb);color:#1e3a8a;display:flex;flex-direction:column;height:calc(100vh - 70px);left:0;overflow-y:auto;padding:28px 20px;position:fixed;top:70px;width:280px}.faculty-sidebar .profile-section{border-bottom:1px solid #1e3a8a26;margin-bottom:24px;padding-bottom:24px;text-align:center;width:100%}.faculty-sidebar .profile-img{background:#2563eb;border:4px solid #ffffffe6;border-radius:16px;box-shadow:0 4px 15px #00000026;display:block;height:120px;margin:0 auto 18px;object-fit:cover;width:120px}.faculty-sidebar h3{color:#1e3a8a;font-size:20px;font-weight:700;letter-spacing:.2px;line-height:1.3;margin:0 0 8px;text-align:center;width:100%}.faculty-id,.faculty-label{color:#1e3a8a;font-size:13px;font-weight:500;letter-spacing:.1px;margin:4px 0;opacity:.8;text-align:center;width:100%}.faculty-sidebar .sidebar-menu{display:flex;flex:1 1;flex-direction:column;gap:10px;margin-bottom:20px;overflow-y:auto;padding-right:4px;width:100%}.faculty-sidebar .sidebar-menu::-webkit-scrollbar{width:6px}.faculty-sidebar .sidebar-menu::-webkit-scrollbar-thumb{background:#1e3a8a33;border-radius:3px}.faculty-sidebar .sidebar-menu::-webkit-scrollbar-track{background:#0000}.faculty-sidebar .sidebar-btn{align-items:center;background:#fff9;border:none;border-radius:12px;box-shadow:0 2px 8px #00000014;color:#1e3a8a;cursor:pointer;display:flex;flex-shrink:0;font-size:15px;font-weight:500;gap:12px;height:50px;justify-content:space-between;padding:0 16px;position:relative;text-decoration:none;transition:all .2s ease;white-space:nowrap;width:100%}.faculty-sidebar .sidebar-btn .icon{align-items:center;display:flex;flex-shrink:0;font-size:20px;justify-content:center;min-width:24px}.faculty-sidebar .sidebar-btn .label{flex:1 1;font-size:15px;font-weight:500;text-align:left}.faculty-sidebar .sidebar-btn .arrow{flex-shrink:0;font-size:20px;font-weight:300;opacity:.6}.faculty-sidebar .sidebar-btn:hover{background:#fffc;box-shadow:0 4px 12px #0000001f;transform:translateX(3px)}.faculty-sidebar .sidebar-btn.active{background:#2563eb;box-shadow:0 6px 20px #2563eb4d;color:#fff;font-weight:700}.faculty-sidebar .sidebar-btn.active .arrow,.faculty-sidebar .sidebar-btn.active .icon{color:#fff;opacity:1}.faculty-sidebar .logout-btn{align-items:center;background:#fff9;border:none;border-radius:12px;box-shadow:0 2px 8px #00000014;color:#dc2626;cursor:pointer;display:flex;flex-shrink:0;font-size:15px;font-weight:600;gap:12px;height:50px;justify-content:flex-start;margin-top:auto;padding:0 16px;transition:all .2s ease;width:100%}.faculty-sidebar .logout-btn:hover{background:#fffc;box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}.faculty-sidebar .logout-btn .icon{align-items:center;display:flex;font-size:20px;justify-content:center;min-width:24px}.faculty-sidebar .logout-btn .label{flex:1 1;font-size:15px;font-weight:600;text-align:left}.faculty-main-content{box-sizing:border-box;margin-left:280px;margin-top:70px;overflow:auto;padding:16px;width:calc(100% - 280px)}.faculty-dashboard{align-items:stretch;display:flex;flex-direction:column;width:100%}.faculty-dashboard h1{color:#1e3a8a;font-size:36px;font-weight:700;margin:0;padding:16px 20px 12px;text-align:center}.welcome-section{margin:0;padding:0 20px;text-align:center}.welcome-section h2{color:#1e3a8a;font-size:28px;font-weight:600;margin:12px 0}.attendance-card{background:#fff;border-radius:20px;box-shadow:0 10px 30px #0000001a;flex-direction:column;margin:40px auto;max-width:100%;padding:20px;width:100%}.attendance-card h3,.card-title{margin-bottom:30px;text-align:center}.attendance-card h3{font-size:24px}.stat-number{color:#2563eb;display:block;font-size:60px;margin-bottom:8px}.stats-grid{grid-gap:30px;align-items:center;display:grid;gap:30px;grid-template-columns:1fr 1fr;justify-content:center;width:100%}.stat-item{border-radius:20px;padding:25px;text-align:center}.present{background:#7feb88}.absent{background:#e2747d}.stat-number{font-size:80px;font-weight:700}.stat-label{color:#666;display:block;font-size:14px;margin-top:10px}.action-icon{font-size:48px}.action-label{color:#1e3a8a;font-size:16px;font-weight:600}.scan-attendance-page{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;margin:0 auto;max-width:100%;padding:30px 20px;width:100%}.scan-attendance-page h1{color:#1e3a8a;font-size:36px;font-weight:700;margin-bottom:30px;text-align:center}.qr-card{border-radius:20px;box-shadow:0 10px 30px #0000001a;flex-direction:column;margin:20px 0;padding:40px;text-align:center}.qr-card h2{color:#1e3a8a;font-size:26px;margin-bottom:10px}.qr-card p{color:#64748b;font-size:16px;margin-bottom:10px}.qr-container{margin:25px 0}.qr-card strong{color:#1e3a8a}.manual-entry-card{margin:12px 0;max-width:100%;width:100%}.manual-attendance-card h2{color:#1e3a8a;font-size:22px;margin-bottom:15px}.manual-attendance-card input{border:1px solid #ccc;border-radius:10px;font-size:16px;margin:15px 0;outline:none;padding:15px;width:100%}.manual-attendance-card input:focus{border-color:#2563eb}.manual-attendance-card button{background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;padding:15px;transition:.2s;width:100%}.manual-attendance-card button:hover{box-shadow:0 5px 15px #2563eb4d;transform:translateY(-2px)}.status-box{background:#f1f5f9;border-radius:10px;font-weight:500;margin-top:15px;padding:12px}.status-box.success{background:#d1fae5;color:#065f46}.status-box.warning{background:#fef3c7;color:#92400e}.status-box.error{background:#fee2e2;color:#991b1b}@media (max-width:768px){.scan-attendance-page{padding:20px 15px}.manual-attendance-card,.qr-card{padding:20px}.scan-attendance-page h1{font-size:28px}.qr-card h2{font-size:22px}}.faculty-profile{align-items:center;box-sizing:border-box;display:flex;justify-content:center;min-height:calc(100vh - 70px);padding:24px 20px}.faculty-profile-card{background:#fff;border-radius:18px;box-shadow:0 10px 30px #00000014;box-sizing:border-box;display:flex;flex-direction:column;gap:18px;max-height:calc(100vh - 120px);max-width:760px;overflow:hidden;padding:28px 28px 24px;width:100%}.faculty-profile-card h2{color:#1e3a8a;font-size:24px;font-weight:700;margin:0;text-align:center}.faculty-profile .profile-image-container{display:flex;justify-content:center;margin-top:8px}.faculty-profile .profile-img{border:4px solid #2563eb40;border-radius:50%;box-shadow:0 12px 30px #2563eb24;height:140px;object-fit:cover;width:140px}.faculty-profile .profile-placeholder{align-items:center;background:linear-gradient(135deg,#e3f2fd,#bbdefb);border:4px dashed #2563eb40;border-radius:50%;color:#1e3a8a99;display:flex;font-size:48px;height:140px;justify-content:center;width:140px}.faculty-profile .profile-form{display:flex;flex-direction:column;gap:12px}.faculty-profile .profile-form label{color:#1e3a8a;font-size:13px;font-weight:600}.faculty-profile .profile-form input[type=file],.faculty-profile .profile-form input[type=text],.faculty-profile .profile-form select{background:#f6fbff;border:1px solid #1e3a8a33;border-radius:12px;color:#1e3a8a;font-size:14px;height:38px;padding:8px 12px;width:100%}.faculty-profile .profile-form input[type=file]{padding:10px 12px}.faculty-profile .profile-actions{display:flex;justify-content:center;margin-top:10px}.faculty-profile .profile-actions button{background:#2563eb;border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:15px;padding:10px 24px;transition:background .2s ease}.faculty-profile .profile-actions button:hover{background:#1e40af}.faculty-profile .profile-form input:disabled,.faculty-profile .profile-form select:disabled{background:#eef4ff;color:#1e3a8a99}.detected-info strong{color:#059669;font-weight:600}.attendance-summary-card{background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014;box-sizing:border-box;margin:12px 20px;padding:20px}.attendance-summary-card h3{color:#1e3a8a;font-size:20px;font-weight:600;margin:0 0 20px}.manual-entry-card{background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014;box-sizing:border-box;margin:12px 24px;padding:20px;width:1000px}.manual-entry-card h2{color:#1e3a8a;font-size:20px;font-weight:600;margin:0 0 20px}.manual-entry-form{display:flex;flex-wrap:wrap;gap:12px}.manual-entry-form input{border:1px solid #cbd5e0;border-radius:8px;flex:1 1 200px;font-size:16px;padding:10px 14px}.manual-entry-btn{background:#2563eb;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;padding:10px 20px;transition:background .2s ease}.manual-entry-btn:hover{background:#1e40af}.summary-stats{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}.summary-item{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-radius:16px;padding:20px;text-align:center}.summary-item.present{background:linear-gradient(135deg,#d1fae5,#a7f3d0)}.summary-item.absent{background:linear-gradient(135deg,#fee2e2,#fecaca)}.summary-label{color:#64748b;display:block;font-size:14px;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.summary-value{color:#2563eb;display:block;font-size:42px;font-weight:700}.summary-item.present .summary-value{color:#059669}.summary-item.absent .summary-value{color:#dc2626}.manual-input-section{background:#0000;box-sizing:border-box;display:flex;gap:12px;margin:12px 20px;padding:0}.manual-input{background:#fff;border:2px solid #e2e8f0;border-radius:12px;flex:1 1;font-size:16px;padding:14px 18px}.manual-input:focus{border-color:#1e3a8a;outline:none}.manual-submit-btn{background:#1e3a8a;border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px 28px;transition:all .2s ease}.manual-submit-btn:hover{background:#1e40af;transform:translateY(-1px)}.attendance-records-page{box-sizing:border-box;display:block;margin:0;padding:0}.attendance-records-page h1{color:#1e3a8a;font-size:36px;font-weight:700;margin:0;padding:16px 20px 12px;text-align:center}.records-date-header h2{color:#1e3a8a;font-size:24px;font-weight:600;margin:0 0 12px;padding:0}.total-attendance-card{background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014;box-sizing:border-box;margin:12px 0;max-width:100%;padding:20px;width:100%}.total-attendance-content{align-items:center;display:flex;gap:20px}.total-icon{font-size:64px}.total-attendance-content h3{color:#1e3a8a;font-size:20px;font-weight:600;margin:0 0 8px}.total-count{color:#1e3a8a;font-size:48px;font-weight:700;margin:0}.check-icon{font-size:48px;margin-left:auto}.records-filters{background:#0000;box-sizing:border-box;display:flex;gap:12px;margin:12px 20px;padding:0}.search-input{background:#fff;border:2px solid #e2e8f0;border-radius:12px;flex:1 1;font-size:16px;padding:14px 18px}.search-input:focus{border-color:#1e3a8a;outline:none}.date-filter{background:#fff;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;font-size:16px;padding:14px 18px}.date-filter:focus{border-color:#1e3a8a;outline:none}.records-table-container{background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014;box-sizing:border-box;margin:12px 20px;overflow-x:auto;padding:16px}.attendance-table{border-collapse:collapse;table-layout:auto;width:100%}.attendance-table thead{background:linear-gradient(135deg,#e3f2fd,#bbdefb)}.attendance-table th{color:#1e3a8a;font-size:14px;font-weight:600;letter-spacing:.5px;padding:16px;text-align:left;text-transform:uppercase}.attendance-table td{border-bottom:1px solid #f1f5f9;color:#334155;font-size:15px;padding:16px}.attendance-table tbody tr:hover{background:#f8fafc}.attendance-table .no-data{color:#94a3b8;font-style:italic;padding:40px;text-align:center}.pagination{align-items:center;background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014;box-sizing:border-box;display:flex;justify-content:space-between;margin:12px 20px 20px;padding:16px 20px}.page-info{color:#1e3a8a;font-size:16px;font-weight:600}.pagination-controls{display:flex;gap:8px}.page-btn{background:#fff;border:2px solid #e2e8f0;border-radius:8px;color:#1e3a8a;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .2s ease}.page-btn:hover:not(:disabled){background:#e3f2fd;border-color:#1e3a8a}.page-btn:disabled{cursor:not-allowed;opacity:.5}.page-btn.active{background:#1e3a8a;border-color:#1e3a8a;color:#fff}@media (max-width:1024px){.faculty-sidebar{padding:15px 8px;width:90px}.faculty-id,.faculty-label,.faculty-sidebar .arrow,.faculty-sidebar .label,.faculty-sidebar h3{display:none}.faculty-sidebar .profile-img{height:60px;width:60px}.dashboard-content,.faculty-main-content,.main-content{margin-left:90px!important;padding:12px!important;width:calc(100% - 90px)!important}}@media (max-width:768px){.faculty-topbar{height:60px;padding:0 12px}.faculty-topbar h2{font-size:15px}.faculty-topbar img{height:34px}.faculty-sidebar{padding:12px 6px;width:75px}.faculty-id,.faculty-label,.faculty-sidebar .arrow,.faculty-sidebar .label,.faculty-sidebar h3{display:none}.faculty-sidebar .profile-img{height:50px;width:50px}.faculty-sidebar .logout-btn,.faculty-sidebar .sidebar-btn{height:55px!important;justify-content:center!important;margin:10px auto!important;padding:0!important;width:55px!important}.dashboard-wrapper{display:flex!important}.dashboard-content,.faculty-main-content,.main-content{box-sizing:border-box!important;margin-left:75px!important;max-width:calc(100% - 75px)!important;overflow-x:hidden!important;padding:14px!important;width:calc(100% - 75px)!important}.stats-grid,.summary-stats{grid-template-columns:1fr!important}.attendance-card,.attendance-summary-card,.manual-attendance-card,.manual-entry-card,.qr-card,.records-table-container,.total-attendance-card{border-radius:20px!important;box-sizing:border-box;margin:12px auto!important;max-width:100%!important;padding:18px!important;width:100%!important}.stat-number,.summary-value{font-size:36px!important}h1{font-size:24px!important}table{font-size:12px!important;width:100%!important}td,th{padding:6px!important;word-break:break-word}.qr-container svg{height:180px!important;width:180px!important}body{overflow-x:hidden}}@media (max-width:480px){.faculty-sidebar{width:65px}.faculty-sidebar .profile-img{height:42px;width:42px}.dashboard-content,.faculty-main-content,.main-content{margin-left:65px!important;padding:8px!important;width:calc(100% - 65px)!important}.attendance-card,.attendance-summary-card,.manual-attendance-card,.manual-entry-card,.qr-card,.records-table-container,.total-attendance-card{padding:12px!important}.faculty-topbar h2{font-size:13px}.faculty-topbar{padding:0 10px}.stat-number,.summary-value{font-size:28px!important}h1{font-size:20px!important}}@media screen and (max-width:768px){.attendance-table{display:block;overflow-x:auto;white-space:nowrap}.manual-entry-form,.manual-input-section,.records-filters{flex-direction:column!important}.date-filter,.manual-entry-form input,.manual-input,.search-input{width:100%!important}.total-attendance-content{flex-direction:column;text-align:center}.pagination{flex-direction:column;gap:10px}.pagination-controls{flex-wrap:wrap;justify-content:center}.qr-container svg{height:160px!important;width:160px!important}}.bottom-nav{align-items:center;background:#fff;border-top:1px solid #ddd;bottom:0;display:flex;height:60px;justify-content:space-around;position:fixed;width:100%;z-index:1000}@media screen and (min-width:769px){.attendance-card,.attendance-records-page,.attendance-summary-card,.dashboard-content,.faculty-main-content,.records-table-container{max-width:100%!important;width:100%!important}}.auth-page-wrapper{align-items:center;background:linear-gradient(135deg,#e3f2fd,#bbdefb);box-sizing:border-box;display:flex;justify-content:center;min-height:100vh;width:100%}.auth-card{background:#fff;border-radius:20px;box-shadow:0 15px 35px #0000001f;display:flex;flex-direction:column;max-width:90%;padding:40px;width:380px}.tab-buttons{background:#f1f5f9;border-radius:12px;display:flex;margin-bottom:25px;padding:5px}.tab-buttons button{background:#0000;border:none;border-radius:10px;color:#64748b;cursor:pointer;flex:1 1;font-weight:600;padding:12px}.tab-buttons .active{background:#1a5694;color:#fff}.auth-card input{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;font-size:14px;margin:10px 0;padding:12px 15px;width:100%}.auth-card input:focus{background:#fff;border-color:#1a5694;outline:none}.role-box{display:flex;gap:12px;margin:15px 0}.role-box button{background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;cursor:pointer;flex:1 1;font-weight:500;padding:10px}.role-box .active-role{background:#ebf4ff;border-color:#1a5694;color:#1a5694}.main-btn{background:#1a5694;border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;margin-top:15px;padding:14px;width:100%}.main-btn:hover{background:#134171}.divider{color:#94a3b8;font-size:12px;margin:20px 0 10px;text-align:center}.google-btn{align-items:center;background:#fff;border:1px solid #cbd5e0;border-radius:10px;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:10px 14px;width:100%}.google-btn img{height:18px;width:18px}.google-btn:hover{background:#f8fafc}.error-text{color:#ef4444;font-size:13px;margin-bottom:10px}body{font-family:Segoe UI,sans-serif;margin:0}.navbar{align-items:center;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;padding:15px 40px}.logo{color:#6c4df6}.navbar button{background:none;border:none;cursor:pointer;margin-left:10px;padding:8px 16px}.register-btn{background:#6c4df6;border-radius:6px;color:#fff}.hero{background:linear-gradient(90deg,#f3f4f6,#ede9fe);padding:120px 20px;text-align:center}.badge{background:#ede9fe;border-radius:20px;color:#6c4df6;padding:6px 16px}.hero h1{color:#5b4ae6;font-size:48px}.hero p{color:#555;margin:20px auto;max-width:600px}.hero-buttons{margin-top:20px}.get-btn{background:#6c4df6;border:none;border-radius:8px;color:#fff;margin-right:10px;padding:12px 24px}.login-btn{background:#fff;border:1px solid #6c4df6;border-radius:8px;color:#6c4df6;padding:12px 24px}.features{padding:80px 20px;text-align:center}.feature-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr);margin:auto;max-width:800px}.feature-card{border-radius:12px;box-shadow:0 4px 12px #0000001a;padding:20px}.how{background:#f9fafb;padding:80px 20px;text-align:center}.steps{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr);margin:auto;max-width:800px}.step{background:#fff;border-radius:10px;padding:15px}.footer{background:#111827;color:#fff;padding:20px;text-align:center}.logo-box{align-items:center;display:flex;flex-direction:column;margin-bottom:10px}.hero-logo{height:90px;width:90px}.college-name{color:#6c4df6;font-size:25px;font-weight:600;margin-top:5px}.install-btn{background:#111827;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;margin-left:10px;padding:12px 24px}*{box-sizing:border-box}#root,body,html{background:#f4f6fb;font-family:Segoe UI,sans-serif;height:100%;margin:0;overflow-x:hidden;padding:0;width:100%}.dashboard-container{background:#f4f6fb;min-height:100vh;width:100%}.topbar{align-items:center;background:#fff;box-shadow:0 2px 10px #00000014;display:flex;height:70px;padding:0 40px;width:100%}.topbar img{height:42px;margin-right:14px}.topbar h2{color:#000;font-size:20px;font-weight:600}.dashboard-body{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:240px 1fr 260px;width:100%}.sidebar{--sidebar-expanded:240px;--sidebar-medium:200px;--sidebar-collapsed:80px;align-items:stretch;background:linear-gradient(180deg,#1e3a8a,#1e40af);border:none;border-radius:0;box-shadow:none;box-sizing:border-box;color:#fff;display:flex;flex-direction:column;flex-shrink:0;height:110vh;margin:0;min-height:100vh;overflow-x:hidden;overflow-y:visible;padding:20px 16px;position:relative;transition:width .24s ease,padding .24s ease;width:var(--sidebar-expanded)}.sidebar .profile-section{border-bottom:1px solid #ffffff26;margin-bottom:24px;padding-bottom:24px;text-align:center;width:100%}.profile-img{border:4px solid #ffffff4d;border-radius:16px;box-shadow:0 4px 15px #0003;display:block;height:120px;margin:0 auto 18px;object-fit:cover;width:120px}.sidebar h3{color:#fff;font-size:20px;font-weight:700;letter-spacing:.2px;line-height:1.3;margin:0 0 8px;text-align:center;width:100%}.sidebar-busNo,.sidebar-college,.sidebar-regNo{color:#fffffff2;font-size:13px;font-weight:500;letter-spacing:.1px;margin:4px 0;opacity:.95;text-align:center;width:100%}.edit-profile-btn{background:#ffffff3d;border:none;border-radius:12px;box-shadow:0 4px 12px #00000026;box-sizing:border-box;color:#fff;cursor:pointer;font-size:14px;font-weight:600;height:42px;margin-top:18px;padding:0 16px;transition:all .2s ease;width:100%}.edit-profile-btn:hover{background:#ffffff59;box-shadow:0 6px 16px #0003;transform:translateY(-1px)}.sidebar-menu{display:flex;flex:1 1;flex-direction:column;flex-grow:1;gap:10px;margin-bottom:20px;overflow:hidden;padding-right:4px;width:100%}.sidebar-menu::-webkit-scrollbar{width:6px}.sidebar-menu::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.sidebar-menu::-webkit-scrollbar-track{background:#0000}.sidebar-btn{background:#ffffff2e;border:none;border-radius:12px;box-shadow:0 2px 8px #0000001a;color:#fff;cursor:pointer;font-size:15px;font-weight:500;gap:12px;height:50px;justify-content:space-between;padding:0 16px;position:relative;transition:all .2s ease;white-space:nowrap;width:100%}.sidebar-btn,.sidebar-btn .icon{align-items:center;display:flex;flex-shrink:0}.sidebar-btn .icon{font-size:20px;justify-content:center;min-width:24px}.sidebar-btn .label{flex:1 1;font-size:15px;font-weight:500;text-align:left}.sidebar-btn .arrow{flex-shrink:0;font-size:20px;font-weight:300;opacity:.6}.sidebar-btn:hover{background:#ffffff47;box-shadow:0 4px 12px #00000026;transform:translateX(3px)}.sidebar-btn.active{background:#fff;box-shadow:0 6px 20px #00000026;color:#1e3a8a;font-weight:700}.sidebar-btn.active .icon{color:#1e3a8a}.sidebar-btn.active .arrow{color:#1e3a8a;opacity:1}.logout-btn{align-items:center;background:#ffffff2e;border:none;border-radius:12px;box-shadow:0 2px 8px #0000001a;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:15px;font-weight:600;gap:12px;height:50px;justify-content:flex-start;margin-top:auto;padding:0 16px;transition:all .2s ease;width:100%}.logout-btn:hover{background:#ffffff47;box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.logout-btn .icon{align-items:center;display:flex;font-size:20px;justify-content:center;min-width:24px}.logout-btn .label{flex:1 1;font-size:15px;font-weight:600;text-align:left}.status-label{background:#ff646433;border-radius:10px;color:#fff;font-size:12px;font-weight:500;margin-bottom:8px;margin-top:8px;padding:10px 12px;text-align:center;width:100%}.main-content{display:block;min-width:0;width:100%}.main-content.centered{align-items:center;padding-bottom:0;padding-top:0}.content-wrapper{max-width:none;width:100%}.card{background:#fff;border-radius:22px;box-shadow:0 20px 40px #0000001a;height:auto;margin:0;overflow:visible;padding:32px;width:100%}.profile-card{max-width:none;width:100%}.profile-card h2{color:#2f3e6c;font-size:20px;margin-bottom:16px;text-align:center}.profile-grid{grid-gap:20px;align-items:center;display:grid;gap:20px;grid-template-columns:1fr}.profile-vertical{align-items:stretch;display:flex;flex-direction:column}.profile-image-container{margin-bottom:8px}.profile-card .profile-img{border:4px solid #2f66e033;border-radius:16px;box-shadow:0 8px 24px #2f66e026;display:block;height:140px;object-fit:cover;width:140px}.profile-form{width:100%}.profile-form label{color:#333;font-size:13px;font-weight:600;margin-bottom:1px}.profile-form input[type=file],.profile-form input[type=text]{border:1px solid #dcdfe8;border-radius:10px;font-size:14px;height:36px;padding:7px 10px;width:100%}.profile-actions{display:flex;justify-content:center;width:100%}.profile-actions button{background:#2f66e0;border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:14px;padding:8px 20px;transition:background .2s ease}.profile-actions button:hover{background:#234fc0}.profile-form input:disabled{background:#f3f6fa;color:#6b7280}.profile-left,.profile-left img,.profile-placeholder{align-items:center;display:flex;justify-content:center}.profile-left img,.profile-placeholder{background:linear-gradient(135deg,#e8f0ff,#f3f6ff);border:3px solid #2f66e026;border-radius:16px;box-shadow:0 6px 18px #00000014;height:110px;object-fit:cover;overflow:hidden;position:relative;width:110px}.profile-placeholder:before{background:linear-gradient(135deg,#2f66e0,#1e40af);border-radius:50%;content:"";height:45px;opacity:.3;position:absolute;top:12px;width:45px}.profile-placeholder:after{content:"👤";font-size:48px;opacity:.4;position:relative;z-index:2}.profile-card .profile-placeholder{align-items:center;background:linear-gradient(135deg,#e8f0ff,#f3f6ff);border:4px solid #2f66e033;border-radius:50%;box-shadow:0 8px 24px #2f66e026;display:flex;height:140px;justify-content:center;overflow:hidden;position:relative;width:140px}.profile-card .profile-placeholder:before{background:radial-gradient(circle,#2f66e040 0,#2f66e01a 100%);border-radius:50%;content:"";height:60px;opacity:.5;position:absolute;top:15px;width:60px}.profile-card .profile-placeholder:after{content:"👤";font-size:64px;opacity:.5;position:relative;z-index:2}.profile-right label{color:#6b7280;display:block;font-size:13px;font-weight:600;margin-bottom:6px}.profile-right input{border:1px solid #dcdfe8;border-radius:10px;font-size:14px;height:40px;padding:8px 12px;transition:all .2s ease;width:100%}.profile-right input:focus{border-color:#2f66e0;box-shadow:0 0 0 2px #2f66e026;outline:none}.welcome-card{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:300px;text-align:center}.welcome-card h2{color:#2f3e6c;font-size:28px;margin-bottom:16px}.welcome-card p{color:#666;font-size:16px;margin:0}.card h2{color:#2f3e6c;font-size:22px;margin-bottom:20px}.card label{margin-bottom:6px;margin-top:14px}.card input{border:1px solid #dcdfe8;border-radius:10px;font-size:14px;height:42px;padding:10px 14px;width:100%}.card input[disabled]{background:#f3f6fa;color:#6b7280}.card label{display:block;font-weight:600;margin-bottom:8px;margin-top:12px}.card input:disabled{background:#f3f5fa}.card button{background:#2f66e0;border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:15px;margin-top:22px;padding:12px 22px}.card button:hover{background:#234fc0}.btn{border:none;border-radius:12px;cursor:pointer;font-size:15px;margin:5px;padding:12px 22px}.btn-primary{background:#2f66e0;color:#fff}.btn-primary:hover{background:#234fc0}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#5a6268}.btn:disabled{background:#ccc;cursor:not-allowed}.form-control{border:1px solid #ccc;border-radius:8px;font-size:16px;margin-bottom:16px;padding:10px;width:100%}.or-divider{color:#666;font-size:18px;font-weight:700;margin:20px 0;text-align:center}.button-row{display:flex;gap:10px;justify-content:center;margin-top:10px}.scan-placeholder{background:#f0f0f0;border:2px dashed #ccc;border-radius:8px;color:#666;font-size:16px;padding:40px;text-align:center}.file-input{border:1px solid #ccc;border-radius:8px;margin:10px 0;padding:10px;width:100%}.upload-note{color:#666;font-size:14px;margin-top:5px}.right-panel{align-self:start;display:flex;flex-direction:column;flex-shrink:0;gap:12px;height:fit-content;max-width:260px;overflow:visible;position:sticky;top:100px;width:100%}@media screen and (max-width:768px){.right-panel{display:none!important}}.calendar-box{background:#fff;border-radius:18px;box-shadow:0 4px 16px #00000014;padding:20px;width:100%}.calendar-box h3{color:#2f3e6c;font-size:17px;font-weight:700;margin:0 0 16px;text-align:center}.calendar-grid{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(7,1fr);margin-bottom:16px}.day-name{font-size:12px;font-weight:700;height:28px;text-align:center}.calendar-grid div,.day-name{align-items:center;color:#2f3e6c;display:flex;justify-content:center}.calendar-grid div{background:#f5f7fc;border-radius:8px;font-size:13px;font-weight:500;height:32px}.calendar-grid div.today{background:#2f66e0;box-shadow:0 3px 10px #2f66e04d;color:#fff;font-weight:700}.today-text{color:#999;font-size:12px;font-weight:500;margin:0;text-align:center}.today-events-box{background:#fff;border-radius:18px;box-shadow:0 4px 16px #00000014;display:none;margin-top:12px;padding:20px;width:100%}.today-events-box h4{color:#2f3e6c;font-size:15px;font-weight:700;margin:0 0 12px}.event-date{color:#666;font-size:13px;font-weight:500;margin:0}.qr-card{background:#fff;border-radius:18px;box-shadow:0 10px 30px #00000014;justify-content:center;margin:40px auto;max-width:520px;padding:28px 24px}.qr-card,.qr-content{align-items:center;display:flex;width:100%}.qr-content{flex-direction:column;max-width:420px;text-align:center}.qr-content h2{color:#2f3e6c;font-size:24px;margin-bottom:4px}.qr-subtitle{color:#666;font-size:13px;font-weight:500;margin:0 0 20px}.qr-box{align-items:center;background:#f4f6fb;border-radius:14px;display:flex;justify-content:center;margin-bottom:14px;margin-left:auto;margin-right:auto;max-width:260px;padding:14px}.qr-box img{height:220px;width:220px}.qr-info{margin-top:12px;width:100%}.qr-regNo{background:#f3f6fb;border-radius:8px;color:#555;display:inline-block;font-size:13px;font-weight:500;margin:0 0 8px;padding:5px 10px}.qr-regNo strong{color:#2f66e0;font-size:16px;font-weight:700}.qr-note{color:#28a745;font-size:12px;font-weight:500;margin:0}.scan-container{align-items:stretch;display:flex;flex-wrap:wrap;gap:30px;justify-content:center;margin-top:20px}.qr-display-card{align-items:center;background:#fff;border-radius:18px;box-shadow:0 10px 30px #00000014;display:flex;flex-direction:column;margin:40px auto;max-width:400px;padding:28px 24px;text-align:center;width:100%}.qr-display-card h2{color:#2f3e6c;font-size:24px;margin-bottom:8px}.qr-display-card p{color:#666;font-size:14px;margin:0 0 20px}.qr-container{align-items:center;background:#f4f6fb;border-radius:14px;display:flex;justify-content:center;margin-bottom:16px;padding:20px}.qr-text{background:#f3f6fb;border-radius:8px;color:#2f66e0;display:inline-block;font-size:16px;font-weight:600;padding:8px 16px}@media (max-width:520px){.qr-card{margin:30px 16px;padding:24px 16px}.qr-content{max-width:100%}.qr-display-card{margin:30px 16px;padding:24px 16px}}.attendance-card{align-items:center;display:flex;justify-content:center}.attendance-content{width:100%}.attendance-content h2{color:#2f3e6c;font-size:26px;margin-bottom:24px;text-align:center}.month-year-selector{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;margin-bottom:24px}.selector-group{align-items:center;display:flex;flex-direction:column;gap:8px}.selector-group label{color:#2f3e6c;font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.selector-group select{background:#fff;border:2px solid #e1e5e9;border-radius:8px;color:#2f3e6c;cursor:pointer;font-size:16px;font-weight:500;min-width:120px;padding:8px 12px;transition:all .2s ease}.selector-group select:focus{border-color:#2f66e0;box-shadow:0 0 0 3px #2f66e01a;outline:none}.loading-state{padding:40px 20px;text-align:center}.loading-state p{color:#999;font-size:15px;margin:0}.attendance-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:24px}.stat-box{padding:20px}.attendance-percentage{margin-top:8px}.stat-box{background:linear-gradient(135deg,#2f66e0,#1f4db8);border-radius:16px;box-shadow:0 6px 16px #2f66e026;color:#fff;padding:24px;text-align:center}.stat-label{font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:8px;opacity:.9;text-transform:uppercase}.stat-value{font-size:42px;font-weight:700;margin-bottom:8px}.stat-value.present{color:#4ade80}.stat-desc{font-size:12px;font-weight:500;opacity:.85}.attendance-percentage{background:#f8f9fb;border-radius:16px;padding:24px;text-align:center}.percentage-label{color:#666;font-size:14px;font-weight:600;letter-spacing:.3px;margin-bottom:12px;text-transform:uppercase}.percentage-box{background:linear-gradient(135deg,#2f66e0,#1f4db8);border-radius:14px;box-shadow:0 6px 16px #2f66e026;padding:20px}.percentage-value{color:#fff;font-size:48px;font-weight:700}.attendance-marking-card{align-items:center;display:flex;justify-content:center}.attendance-marking-card .attendance-content{margin:auto;max-width:900px;width:100%}.attendance-form{margin-bottom:24px}.form-group{margin-bottom:20px}.form-group label{color:#2f3e6c;display:block;font-size:16px;font-weight:600;margin-bottom:8px}.form-group input{background:#fff;border:2px solid #e1e5e9;border-radius:8px;color:#2f3e6c;font-size:16px;font-weight:500;padding:12px 16px;transition:all .2s ease;width:100%}.form-group input:focus{border-color:#2f66e0;box-shadow:0 0 0 3px #2f66e01a;outline:none}.form-group input:disabled{background:#f8f9fb;color:#999;cursor:not-allowed}.mark-attendance-btn{background:linear-gradient(135deg,#2f66e0,#1f4db8);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;letter-spacing:.5px;padding:14px 20px;text-transform:uppercase;transition:all .2s ease;width:100%}.mark-attendance-btn:hover:not(:disabled){box-shadow:0 6px 16px #2f66e04d;transform:translateY(-1px)}.mark-attendance-btn:disabled{background:#ccc;box-shadow:none;cursor:not-allowed;transform:none}.message{border-radius:8px;font-weight:500;margin-bottom:20px;padding:12px 16px}.message.success{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.message.error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.message.warning{background:#fff3cd;border:1px solid #ffeaa7;color:#856404}.instructions{background:#f8f9fb;border-left:4px solid #2f66e0;border-radius:12px;padding:20px}.instructions h3{color:#2f3e6c;font-size:16px;font-weight:600;margin:0 0 12px}.instructions ol{margin:0;padding-left:20px}.instructions li{color:#666;line-height:1.4;margin-bottom:8px}.error-message{background:#ef44441a;border:1px solid #ef4444;border-radius:10px;color:#dc2626;font-size:13px;font-weight:500;margin-top:16px;padding:12px}@media (min-width:1200px){.sidebar{width:var(--sidebar-expanded)}}@media (min-width:900px) and (max-width:1199px){.sidebar{width:var(--sidebar-medium)}}@media (max-width:400px){.sidebar{padding:18px 10px;width:var(--sidebar-collapsed)}.profile-img{border-width:3px;height:56px;margin:12px auto;width:56px}.edit-profile-btn,.sidebar h3,.sidebar-busNo,.sidebar-regNo{display:none}.sidebar-menu{gap:8px;padding-right:2px}.sidebar-btn{border-radius:10px;height:48px;justify-content:center;padding:0 8px}.sidebar-btn .arrow,.sidebar-btn .label{display:none}.sidebar-btn .icon{height:40px;min-width:40px;width:40px}.logout-btn{height:44px;justify-content:center;padding:0}.logout-btn .label{display:none}.dashboard-body{padding-left:18px;padding-right:18px}.main-content{max-width:calc(100% - var(--sidebar-collapsed) - 340px)}}.qr-scan-page{background:#fff;border-radius:24px;box-shadow:0 25px 50px #0f172a14;margin:0 auto;max-width:780px;padding:26px 24px;width:100%}.qr-scan-page h1{color:#1f2a45;font-size:24px;font-weight:700;margin:0}.qr-scan-page .qr-subtitle{color:#5b6b86;font-size:14px;line-height:1.5;margin:10px 0 24px;max-width:600px}.scan-options{background:#eaf0ff;border-radius:20px;display:flex;gap:10px;margin-bottom:18px;padding:6px}.scan-option-btn{background:#0000;border:none;border-radius:16px;color:#1e3a8a;cursor:pointer;flex:1 1;font-size:14px;font-weight:600;padding:12px 14px;transition:all .25s ease}.scan-option-btn:hover{background:#2f66e01f}.scan-option-btn:disabled{cursor:not-allowed;opacity:.5}.camera-warning{background:#fff2f4;border:1px solid #f7c0c9;border-radius:16px;color:#922d3e;font-size:13px;margin-top:12px;padding:14px 16px}.status-message{border-radius:16px;font-size:14px;line-height:1.4;margin-top:18px;padding:12px 14px}.status-message.success{background:#228b661f;border:1px solid #228b6640;color:#1b4f3f}.status-message.error{background:#c61f2a1f;border:1px solid #c61f2a40;color:#5c1120}.status-message.info{background:#1c62d71a;border:1px solid #1c62d733;color:#1b3c68}.scan-frame{background:#0000;border:2px dashed #70798e59;border-radius:18px;margin-top:18px;padding:18px;text-align:center}.qr-preview{background:#0000;border:1px solid #70798e40;border-radius:14px;height:260px;overflow:hidden;width:100%}.toast{align-items:center;border-radius:16px;box-shadow:0 12px 30px #0000001f;display:flex;font-weight:600;justify-content:center;left:50%;max-width:90%;min-width:280px;padding:12px 16px;position:fixed;text-align:center;top:20px;transform:translateX(-50%);z-index:9999}.toast.success{background:#228b661f;border:1px solid #228b6640;color:#1b4f3f}.toast.error{background:#c61f2a1f;border:1px solid #c61f2a40;color:#5c1120}.college-dropdown{border:1px solid #ccc;border-radius:8px;font-size:16px;margin-bottom:16px;padding:10px;width:100%}@media screen and (max-width:768px){body,html{overflow-x:hidden!important}.dashboard-body{display:flex;flex-direction:row}.sidebar{border-radius:0!important;min-width:72px!important;overflow:hidden;padding:12px 6px!important;width:72px!important}.edit-profile-btn,.logout-btn .label,.sidebar h3,.sidebar-btn .arrow,.sidebar-btn .label,.sidebar-busNo,.sidebar-college,.sidebar-regNo{display:none!important}.profile-img{border-radius:14px!important;height:52px!important;margin-bottom:10px!important;width:52px!important}.logout-btn,.sidebar-btn{align-items:center!important;border-radius:14px!important;height:54px!important;justify-content:center!important;margin:10px auto!important;padding:0!important;width:54px!important}.logout-btn .icon,.sidebar-btn .icon{font-size:22px!important}.topbar{height:62px!important;padding:0 10px!important}.topbar img{height:34px!important}.topbar h2{font-size:15px!important;line-height:1.3!important}.main-content{flex:1 1!important;max-width:100%!important;overflow-x:hidden!important;padding:10px!important}.content-wrapper,.main-content{width:100%!important}.attendance-card,.attendance-marking-card,.card,.manual-entry-card,.profile-card,.qr-card,.qr-display-card,.records-table-container{border-radius:22px!important;box-sizing:border-box!important;margin:12px 0!important;max-width:100%!important;padding:22px!important;width:100%!important}h1{font-size:26px!important;line-height:1.3!important}h1,h2{text-align:center!important}h2{font-size:22px!important}h3{font-size:18px!important}.qr-box img,.qr-container svg{height:180px!important;width:180px!important}.records-table-container{overflow-x:auto!important}table{border-collapse:collapse!important;font-size:12px!important;width:100%!important}td,th{padding:6px!important;text-align:center!important;word-break:break-word!important}.profile-form input,.profile-form select{font-size:14px!important;padding:10px!important}button{font-size:14px!important}.attendance-stats,.summary-stats{grid-template-columns:1fr!important}.stat-value,.summary-value{font-size:32px!important}}@media screen and (max-width:480px){.sidebar{min-width:65px!important;width:65px!important}.main-content{max-width:calc(100% - 65px)!important;padding:8px!important;width:calc(100% - 65px)!important}.profile-img{height:46px!important;width:46px!important}.logout-btn,.sidebar-btn{height:48px!important;width:48px!important}.topbar h2{font-size:13px!important}h1{font-size:22px!important}h2{font-size:18px!important}.attendance-card,.attendance-marking-card,.card,.profile-card,.qr-card,.qr-display-card{padding:12px!important}.qr-box img,.qr-container svg{height:150px!important;width:150px!important}td,th{font-size:11px!important}}@media screen and (max-width:768px){.dashboard-body{align-items:flex-start!important;display:flex!important;gap:0!important}.content-wrapper,.dashboard-body,.main-layout{width:100%!important}.right-panel{display:none!important}.main-content{margin:0!important;max-width:calc(100vw - 82px)!important;overflow-x:hidden!important;padding:10px!important;width:calc(100vw - 82px)!important}.profile-section{padding:8px 0!important}.attendance-card,.attendance-marking-card,.card,.manual-entry-card,.profile-card,.qr-card,.qr-display-card,.records-table-container{border-radius:24px!important;box-sizing:border-box!important;display:block!important;margin:12px auto!important;max-width:calc(100vw - 100px)!important;min-width:calc(100vw - 100px)!important;padding:22px!important;width:calc(100vw - 100px)!important}.profile-grid{grid-gap:20px!important;display:grid!important;gap:20px!important;grid-template-columns:1fr!important}.profile-left{justify-content:center!important;margin-bottom:12px!important}.qr-box img,.qr-container svg{height:180px!important;width:180px!important}.records-table-container{-webkit-overflow-scrolling:touch;overflow-x:auto!important}table{min-width:500px!important;width:100%!important}td,th{padding:6px!important;text-align:center!important;word-break:break-word!important}button{border-radius:12px!important;min-height:44px!important}body,html{overflow-x:hidden!important}*{box-sizing:border-box;max-width:100%}.attendance-card,.card,.qr-card{box-shadow:0 6px 18px #00000014!important}.sidebar-btn.active{transform:scale(1.05)}}
/*# sourceMappingURL=main.99f10b0d.css.map*/