:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.loading-container{position:fixed;top:0;left:0;width:100vw;height:100vh;background:linear-gradient(135deg,#1e293b,#0f172a);display:flex;align-items:center;justify-content:center;z-index:9999}.loading-logo-container{text-align:center}.loading-logo{width:120px;height:120px;border-radius:50%;border:4px solid #667eea;padding:15px;animation:zoom 1.5s ease-in-out infinite;margin-bottom:20px;box-shadow:0 0 20px #667eea99}.loading-text{color:#fff;font-size:18px;font-weight:500}@keyframes zoom{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.body{height:100%}.form-header h2{font-size:1.55rem;font-weight:600;letter-spacing:-.3px;color:#0f172a;margin-bottom:.3rem}.form-header p{font-size:.9rem;font-weight:500;color:#475569}.input-group{margin-bottom:1rem;position:relative}.input-group input{width:100%;padding:.85rem .9rem;padding-right:42px;border-radius:8px;font-size:1rem;font-weight:500;letter-spacing:.2px;color:#6f727a;border:1px solid #e5e7eb;transition:border-color .25s ease,box-shadow .25s ease}.input-group input::placeholder{color:#6b7280}.input-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea40}.input-group label{position:absolute;top:50%;left:12px;transform:translateY(-50%);padding:0 6px;font-size:.85rem;color:#6b7280;pointer-events:none;transition:all .25s ease}.input-group input:focus+label,.input-group input:not(:placeholder-shown)+label{top:-8px;font-size:.75rem;color:#667eea}.password-group{position:relative}.toggle-password{position:absolute;right:12px;top:50%;transform:translateY(-50%);cursor:pointer;font-size:16px;color:#6b7280}.toggle-password:hover{color:#667eea}.login-btn{width:100%;padding:.8rem;margin-top:.6rem;border-radius:8px;border:none;background:#667eea;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:background .25s ease}.message{margin-top:1rem;padding:12px;border-radius:6px;background:#ef44441f;color:#dc2626;border:1px solid rgba(239,68,68,.3);font-size:14px;text-align:center}@media(prefers-color-scheme:light){.login-form{background:#fffffff2}}*/ *{margin:0;padding:0;box-sizing:border-box}body,html{height:100%}.login-container{min-height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;background-image:url(/assets/bg.jpg);background-size:cover;background-position:center;background-repeat:no-repeat}.login-form{background:#ffffff0d;padding:2rem;border-radius:12px;box-shadow:0 20px 40px #0000001a;width:400px;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.1)}.form-header{text-align:center;margin-bottom:2rem}.logo-container{display:flex;justify-content:center;margin-bottom:1.5rem}.logo{width:80px;height:80px;border-radius:50%;border:3px solid #667eea;padding:10px;animation:blink 1.5s infinite}@keyframes blink{0%,50%{border-color:#667eea;box-shadow:0 0 10px #667eea80}51%,to{border-color:transparent;box-shadow:none}}.form-header h2{color:#333;margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.form-header p{color:#666;margin:0;font-size:.9rem}.input-group{margin-bottom:1rem}.input-group input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;transition:border-color .3s ease;box-sizing:border-box}.input-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.login-btn{width:100%;padding:.75rem;background:#667eea;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .3s ease;margin-top:.5rem}.login-btn:hover{background:#5a6fd8}.login-btn:disabled{background:#94a3b8;cursor:not-allowed}.attribution{position:absolute;bottom:10px;right:10px;font-size:12px}.attribution a{color:#ffffffb3;text-decoration:none}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(180deg)}}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.time-tracking{background:#ffffff26;border-radius:12px;padding:20px;margin:15px 0;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 32px #0000004d}.time-tracking h3{margin:0 0 15px;color:#7aa2ff;font-size:18px;font-weight:600;text-align:center}.time-info{display:flex;flex-direction:column;gap:12px}.time-item{background:#ffffff14;padding:12px 16px;border-radius:8px;border:1px solid rgba(255,255,255,.1);transition:all .3s ease}.time-item:hover{background:#ffffff1f;transform:translateY(-1px)}.time-item.current-time{background:#7aa2ff26;border-color:#7aa2ff4d}@media(max-width:480px){.time-item{flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px}}.time-item span{font-size:15px;color:#fff;font-weight:500}.attendance-calendar{background:#ffffff26;border-radius:12px;padding:20px;margin:0;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 32px #0000004d;min-height:400px}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.calendar-header button{background:#667eea;color:#fff;border:none;border-radius:4px;padding:8px 12px;cursor:pointer;width:auto;margin:0}.calendar-header button:hover{background:#5a6fd8}.calendar-actions{text-align:center;margin-bottom:15px}.mark-attendance-btn{background:#22c55e;color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer;font-size:14px;width:auto;margin:0}.mark-attendance-btn:hover{background:#16a34a}.calendar-grid{border:1px solid rgba(255,255,255,.2);border-radius:4px;overflow:hidden}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:#ffffff1a}.weekday{padding:8px;text-align:center;font-weight:700;font-size:12px;border-right:1px solid rgba(255,255,255,.2);color:#333}.weekday:last-child{border-right:none}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr)}@media(max-width:768px){.attendance-calendar{padding:15px}.calendar-header h3{font-size:1rem}.calendar-day{padding:8px;font-size:12px;min-height:25px}.weekday{padding:6px;font-size:10px}}@media(max-width:480px){.time-tracking{padding:10px;margin:10px 0}.attendance-calendar{padding:10px}.calendar-day{padding:5px;font-size:11px;min-height:20px}.mark-attendance-btn{padding:6px 12px;font-size:12px}}.calendar-day{padding:10px;text-align:center;border-right:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2);min-height:30px;display:flex;align-items:center;justify-content:center;font-size:14px;background:#ffffff0d;color:#333}.calendar-day:nth-child(7n){border-right:none}.calendar-day.empty{background:#ffffff05}.calendar-day.present{background:#22c55e;color:#fff;font-weight:700}.calendar-day.today{background:#fbbf24;color:#fff;font-weight:700}.calendar-day.present.today{background:#16a34a;color:#fff}.calendar-legend{display:flex;gap:15px;margin-top:10px;justify-content:center}.legend-item{display:flex;align-items:center;gap:5px;font-size:12px;color:#333}.legend-color{width:12px;height:12px;border-radius:2px}.legend-color.present{background:#22c55e}.legend-color.today{background:#fbbf24}.loading{text-align:center;padding:20px;color:#666;font-size:14px}.punch-timings{background:#ffffff1a;border-radius:8px;padding:15px;margin:15px 0;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:1px solid rgba(255,255,255,.1)}.timing-display{margin:15px 0}.timing-item{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1)}.timing-item:last-child{border-bottom:none}.timing-item span{color:#fff;font-size:14px}.punch-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.punch-buttons button{margin:0;padding:10px;font-size:13px}@media(max-width:480px){.punch-buttons{grid-template-columns:1fr}}.admin-timings{background:#ffffff1a;border-radius:8px;padding:15px;margin:15px 0;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:1px solid rgba(255,255,255,.1)}.timings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.timing-section{background:#ffffff0d;border-radius:6px;padding:15px;border:1px solid rgba(255,255,255,.1)}.timing-section h4{color:#7aa2ff;margin:0 0 15px;font-size:16px;text-align:center}@media(max-width:768px){.timings-grid{grid-template-columns:1fr;gap:15px}}.timings-list{max-height:300px;overflow-y:auto}.timing-card{background:#ffffff0d;padding:10px;margin:8px 0;border-radius:6px;border:1px solid rgba(255,255,255,.1)}.employee-name{color:#7aa2ff;font-weight:600;margin-bottom:5px}.timing-details{display:grid;grid-template-columns:1fr 1fr;gap:5px;font-size:12px;color:#fff}.no-data{text-align:center;color:#fff;opacity:.7;padding:20px}@media(max-width:480px){.timing-details{grid-template-columns:1fr}}.leave-list{max-height:300px;overflow-y:auto}.leave-item{background:#ffffff0d;padding:12px;margin:8px 0;border-radius:6px;border:1px solid rgba(255,255,255,.1)}.leave-dates{color:#7aa2ff;font-weight:600;margin-bottom:5px}.leave-reason{color:#fff;font-size:14px;margin-bottom:8px}.leave-status{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:700;display:inline-block}.leave-status.pending{background:#fbbf24;color:#000}.leave-status.approved{background:#22c55e;color:#fff}.leave-status.rejected{background:#ef4444;color:#fff}.leave-management{max-height:400px;overflow-y:auto;padding-right:10px}.admin-leave-item{background:#ffffff0d;padding:15px;margin:10px 0;border-radius:8px;border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;align-items:flex-start;gap:10px}.leave-info{flex:1;font-size:.9em;color:#fff}.leave-actions{display:flex;gap:8px}.approve-btn{background-color:#4caf50;border:none;color:#fff;padding:8px 16px;text-align:center;text-decoration:none;display:inline-block;font-size:14px;margin:4px 2px;cursor:pointer;border-radius:8px;transition:background-color .3s}.approve-btn:hover{background-color:#45a049}.reject-btn{background-color:#f44336;border:none;color:#fff;padding:8px 16px;text-align:center;text-decoration:none;display:inline-block;font-size:14px;margin:4px 2px;cursor:pointer;border-radius:8px;transition:background-color .3s}.reject-btn:hover{background-color:#da190b}@media(max-width:768px){.admin-leave-item{flex-direction:column;align-items:flex-start;gap:10px}.leave-actions{width:100%;justify-content:flex-end}}.navbar{position:fixed;top:0;left:0;right:0;background:#0f172afa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.15);padding:12px 30px;display:flex;justify-content:space-between;align-items:center;z-index:1000;height:70px;box-shadow:0 4px 20px #0000004d}.nav-brand h3{color:#7aa2ff;margin:0;font-size:18px}.nav-brand span{color:#fff;font-size:12px;opacity:.8}.nav-links{display:flex;gap:10px}.nav-links button{width:auto;padding:8px 16px;margin:0;font-size:13px}@media(max-width:768px){.navbar{padding:10px 15px}.nav-brand h3{font-size:16px}.nav-links{gap:5px}.nav-links button{padding:6px 12px;font-size:12px}}.theme-toggle{background:#ffffff1a!important;border:1px solid rgba(255,255,255,.2)!important;border-radius:50%!important;width:40px!important;height:40px!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:18px!important;padding:0!important;color:#fff!important}body.light .theme-toggle{background:#0000001a!important;border:1px solid rgba(0,0,0,.2)!important;color:#1e293b!important}footer{position:fixed;bottom:0;left:0;right:0;background:#0f172af2;color:#fff;text-align:center;padding:12px;font-size:12px;border-top:1px solid rgba(255,255,255,.1);z-index:999;height:40px}body.light footer{background:#fffffff2!important;color:#1e293b!important;border-top:1px solid rgba(0,0,0,.1)!important}body.light,body.light .dashboard,body.light .admin,body.light .analytics,body.light .face-attendance{background:linear-gradient(135deg,#f8fafc,#e2e8f0)!important}body.light .card{background:#ffffffe6!important;color:#1e293b!important}body.light .navbar{background:#fffffff2!important;border-bottom:1px solid rgba(0,0,0,.1)!important}body.light .nav-brand h3{color:#3b82f6!important}body.light .nav-brand span{color:#64748b!important}body.light .time-tracking,body.light .attendance-calendar,body.light .punch-timings,body.light .admin-timings{background:#fffc!important;border:1px solid rgba(0,0,0,.1)!important}body.light .time-item span,body.light .timing-item span,body.light .employee-name,body.light .timing-details,body.light .section-title,body.light .card h2,body.light .card h3,body.light .card h4,body.light .card p,body.light .card span,body.light .no-data,body.light .loading,body.light .leave-dates,body.light .message,body.light .weekday,body.light .leave-info{color:#1e293b!important}body.light .leave-item,body.light .timing-card,body.light .admin-leave-item{background:#0000000d!important;border:1px solid rgba(0,0,0,.1)!important}body.light .leave-reason{color:#64748b!important}body.light input,body.light textarea{background:#0000000d!important;color:#1e293b!important;border:1px solid rgba(0,0,0,.2)!important}body.light input::placeholder,body.light textarea::placeholder{color:#64748b!important}body.light .calendar-day{color:#1e293b!important;background:#00000005!important}.admin{min-height:100vh;width:100vw;display:flex;flex-direction:column;padding:0;background:linear-gradient(135deg,#1e293b,#0f172a)}.admin-layout{display:flex;gap:20px;width:100%;max-width:100%;padding:20px;align-items:flex-start;margin-top:0;min-height:calc(100vh - 160px);flex:1}.admin-main{width:65%;min-height:auto;max-height:calc(100vh - 160px);overflow-y:auto}.admin-side{width:35%;min-height:auto;max-height:calc(100vh - 160px);overflow-y:auto}@media(max-width:1024px){.admin-layout{flex-direction:column}.admin-main,.admin-side{width:100%;max-height:none}}*{margin:0;padding:0;box-sizing:border-box;font-family:Segoe UI,Arial,sans-serif}body,html{min-height:100vh;background:linear-gradient(135deg,#1e293b,#0f172a)}.App{min-height:100vh}.dashboard,.admin,.analytics,.face-attendance{min-height:100vh;width:100vw;display:flex;flex-direction:column;padding:0;margin-top:350px;background:linear-gradient(135deg,#1e293b,#0f172a)}.card{width:100%;min-height:auto;display:flex;flex-direction:column;padding:35px 30px;background:#0f172abf;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:20px;box-shadow:0 40px 120px #000000a6,inset 0 0 0 1px #ffffff14;animation:fadeSlide .9s ease}.dashboard-layout{display:flex;gap:20px;width:100%;max-width:100%;padding:20px;align-items:flex-start;margin-bottom:320px;min-height:calc(50vh - 200px);flex:1}@media(max-width:768px){.dashboard-layout{gap:10px;padding:10px}}.main-card{width:65%;min-height:auto;max-height:calc(100vh - 160px);overflow-y:auto}.side-panel{width:35%;min-height:auto;display:flex;flex-direction:column;gap:20px;max-height:calc(100vh - 160px);overflow-y:auto}.side-panel .card{min-height:auto;padding:20px}@media(max-width:768px){.card{padding:20px}}@media(max-width:1024px){.main-card,.side-panel{width:100%}.dashboard-layout{flex-direction:column;align-items:center}.side-panel{width:100%;flex-direction:column}.side-panel .card{width:100%;margin:0 auto}}@media(max-width:480px){.card,.main-card{width:100%;min-height:auto;min-width:auto}}input,textarea{width:100%;padding:14px 16px;margin-bottom:14px;background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.15);border-radius:10px;outline:none;transition:all .3s ease}input::placeholder,textarea::placeholder{color:#fff9}input:focus,textarea:focus{border-color:#7aa2ff;background:#ffffff1f}button{width:100%;padding:14px;margin-bottom:14px;border-radius:12px;border:none;background:linear-gradient(135deg,#6f8cff,#4f6cff);color:#fff;font-weight:600;font-size:15px;cursor:pointer;transition:all .3s ease}button:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 15px 40px #4f6cff80}button:disabled{background:#94a3b8;cursor:not-allowed;transform:none;box-shadow:none}.logout{background:linear-gradient(135deg,#ef4444,#dc2626)}.message{background:#ef44441a;color:#dc2626;padding:12px;border-radius:6px;margin-top:1rem;border:1px solid rgba(239,68,68,.2);font-size:14px;text-align:center}.error{background:#ef44441a;color:#dc2626;padding:12px;border-radius:6px;margin-top:1rem;border:1px solid rgba(239,68,68,.2)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-top:20px}@media(max-width:768px){.stats{grid-template-columns:1fr;gap:10px}}.stat-item{background:#ffffff1a;padding:15px;border-radius:8px;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.stat-item h3{margin:0 0 10px;color:#667eea;font-size:14px}.stat-item p{margin:0;font-size:24px;font-weight:700;color:#667eea}@keyframes fadeSlide{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.card h2{text-align:center;color:#7aa2ff;font-size:26px;font-weight:600;margin-bottom:10px}.card h3{text-align:center;color:#fff;font-size:16px;font-weight:500;margin-bottom:25px;opacity:.8}.section-title{text-align:center;margin:20px 0 15px;font-weight:600;opacity:.9;color:#fff}form{display:flex;flex-direction:column}video{border-radius:8px;margin:15px 0}.admin-layout{display:flex;gap:20px;width:100%}.admin-main-card,.admin-side-panel{width:50%}@media(max-width:1024px){.admin-layout{flex-direction:column}.admin-main-card,.admin-side-panel{width:100%}}
