:root{--bg-primary: #060a17;--bg-secondary: #0b1124;--bg-card: #0f1a33;--bg-card-hover: #132242;--border-color: #1a2d54;--border-glow: #00aaff;--text-primary: #e8f0fe;--text-secondary: #8ba4c7;--text-muted: #5a7a9a;--accent-cyan: #00d4ff;--accent-blue: #0088ff;--accent-green: #00e676;--accent-red: #ff5252;--accent-orange: #ffab00;--accent-purple: #7c4dff;--gradient-primary: linear-gradient(135deg, #00d4ff, #0088ff);--gradient-danger: linear-gradient(135deg, #ff5252, #d50000);--gradient-success: linear-gradient(135deg, #00e676, #00c853);--shadow-card: 0 4px 24px rgba(0, 170, 255, .08);--shadow-glow: 0 0 20px rgba(0, 170, 255, .15);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--transition: .3s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{font-family:Cairo,Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow-x:hidden;line-height:1.6}#helixCanvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;opacity:.35}.dna-particles{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.container{position:relative;z-index:2;max-width:520px;margin:0 auto;padding:20px 16px;min-height:100vh;display:flex;flex-direction:column}.header{display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin-bottom:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:var(--transition)}.header:hover{border-color:var(--accent-cyan);box-shadow:var(--shadow-glow)}.logo{display:flex;align-items:center;gap:12px}.logo-img{width:44px;height:44px;border-radius:var(--radius-sm);object-fit:contain}.logo-title{font-family:Orbitron,monospace;font-size:1.1rem;font-weight:700;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.2}.logo-subtitle{font-size:.7rem;color:var(--text-secondary);letter-spacing:.5px}.user-info{display:flex;align-items:center;gap:10px}.user-avatar{width:40px;height:40px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-family:Orbitron,monospace;font-weight:700;font-size:.9rem;color:var(--bg-primary)}.user-name{font-size:.85rem;font-weight:600}.user-role{font-size:.7rem;color:var(--accent-cyan)}.status-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:16px;border-left:3px solid var(--accent-blue);transition:var(--transition)}.status-banner.success{border-left-color:var(--accent-green)}.status-banner.warning{border-left-color:var(--accent-orange)}.status-banner.error{border-left-color:var(--accent-red)}.status-icon{font-size:1.3rem}.status-title{font-size:.85rem;font-weight:600}.status-message{font-size:.75rem;color:var(--text-secondary);margin-top:2px}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin-bottom:16px;overflow:hidden;transition:var(--transition)}.card:hover{border-color:#00aaff4d}.glow-card{box-shadow:var(--shadow-card)}.card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color)}.card-title{font-family:Orbitron,monospace;font-size:.9rem;font-weight:600;color:var(--accent-cyan)}.card-subtitle{font-size:.75rem;color:var(--text-muted);margin-top:4px}.card-body{padding:20px}.form-section{animation:fadeSlideIn .4s ease}.form-title{font-size:.95rem;font-weight:600;margin-bottom:16px;color:var(--text-primary)}.input-group{margin-bottom:14px}.input-group label{display:block;font-size:.75rem;font-weight:500;color:var(--text-secondary);margin-bottom:6px;letter-spacing:.3px}.biotech-input{width:100%;padding:12px 14px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem;font-family:Cairo,Inter,sans-serif;transition:var(--transition);outline:none}.biotech-input:focus{border-color:var(--accent-cyan);box-shadow:0 0 0 3px #00d4ff26}.biotech-input::placeholder{color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border:1px solid transparent;border-radius:var(--radius-sm);font-family:Cairo,Inter,sans-serif;font-size:.85rem;font-weight:500;cursor:pointer;transition:var(--transition);white-space:nowrap;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--gradient-primary);color:var(--bg-primary);font-weight:600}.btn-primary:hover:not(:disabled){box-shadow:0 0 24px #00d4ff59;transform:translateY(-1px)}.btn-secondary{background:transparent;border-color:var(--border-color);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){border-color:var(--accent-cyan);color:var(--accent-cyan)}.btn-success{background:var(--gradient-success);color:var(--bg-primary);font-weight:600}.btn-success:hover:not(:disabled){box-shadow:0 0 24px #00e67659;transform:translateY(-1px)}.btn-danger{background:var(--gradient-danger);color:#fff;font-weight:600}.btn-danger:hover:not(:disabled){box-shadow:0 0 24px #ff525259;transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--accent-cyan);font-size:.75rem}.btn-ghost:hover{background:#00d4ff1a}.btn-large{width:100%;padding:16px 24px;font-size:1rem}.btn-small{padding:6px 12px;font-size:.75rem}.btn-icon{font-size:1.2em}.btn-label{display:block;font-weight:600}.btn-sublabel{display:block;font-size:.7rem;font-weight:400;opacity:.75;margin-top:2px}.action-buttons{display:flex;flex-direction:column;gap:10px;margin-top:16px}.status-display{display:flex;align-items:center;gap:14px;padding:16px;background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:8px}.status-indicator{position:relative;width:48px;height:48px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.status-dot{width:16px;height:16px;border-radius:50%;background:var(--text-muted);transition:var(--transition)}.status-dot.checked-in{background:var(--accent-green);box-shadow:0 0 12px #00e67699}.status-dot.checked-out{background:var(--text-muted)}.pulse-ring{position:absolute;width:44px;height:44px;border-radius:50%;border:2px solid var(--text-muted);opacity:.3;animation:none}.pulse-ring.active{border-color:var(--accent-green);animation:pulse 2s infinite}.status-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.status-value{font-size:1rem;font-weight:600;margin-top:2px}.status-value.checked-in{color:var(--accent-green)}.status-time{font-size:.75rem;color:var(--text-secondary);margin-top:2px}.duration-display{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-top:12px;background:linear-gradient(135deg,#00d4ff14,#0088ff0d);border:1px solid rgba(0,212,255,.2);border-radius:var(--radius-md)}.duration-icon{font-size:1.5rem}.duration-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.duration-value{font-family:Orbitron,monospace;font-size:1.3rem;font-weight:700;color:var(--accent-cyan);margin-top:2px}.alert{padding:12px 14px;border-radius:var(--radius-sm);font-size:.85rem;line-height:1.5}.alert-info{background:#00d4ff1a;border:1px solid rgba(0,212,255,.25);color:var(--accent-cyan)}.alert-success{background:#00e6761a;border:1px solid rgba(0,230,118,.25);color:var(--accent-green)}.alert-error{background:#ff52521a;border:1px solid rgba(255,82,82,.25);color:var(--accent-red)}.alert-warning{background:#ffab001a;border:1px solid rgba(255,171,0,.25);color:var(--accent-orange)}.activity-list{display:flex;flex-direction:column;gap:8px}.activity-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-secondary);border-radius:var(--radius-sm);font-size:.8rem;transition:var(--transition)}.activity-item:hover{background:var(--bg-card-hover)}.activity-item .date{font-family:Orbitron,monospace;font-size:.65rem;color:var(--text-muted);min-width:70px}.activity-item .status-badge{font-size:.65rem;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px}.activity-item .status-badge.present{background:#00e67626;color:var(--accent-green)}.activity-item .status-badge.late{background:#ffab0026;color:var(--accent-orange)}.activity-item .status-badge.absent{background:#ff525226;color:var(--accent-red)}.activity-item .status-badge.half-day{background:#7c4dff26;color:var(--accent-purple)}.activity-item .status-badge.pending{background:#00d4ff26;color:var(--accent-cyan)}.activity-item .time{color:var(--text-secondary);font-size:.7rem;margin-left:auto}.activity-item .deduction{color:var(--accent-red);font-size:.7rem}.loading-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#060a17d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);align-items:center;justify-content:center;flex-direction:column;gap:16px}.loading-overlay.active{display:flex}.loading-spinner{width:48px;height:48px;border:3px solid var(--border-color);border-top-color:var(--accent-cyan);border-radius:50%;animation:spin .8s linear infinite}.loading-text{font-size:.9rem;color:var(--text-secondary);animation:pulse 1.5s infinite}.footer{text-align:center;padding:20px 16px;font-size:.7rem;color:var(--text-muted);margin-top:auto}.footer-links{margin-top:8px}.footer-links a{color:var(--text-secondary);text-decoration:none;transition:var(--transition)}.footer-links a:hover{color:var(--accent-cyan)}.footer-links span{margin:0 8px;opacity:.3}.salary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.salary-card{padding:14px;background:var(--bg-secondary);border-radius:var(--radius-sm);text-align:center;border:1px solid var(--border-color)}.salary-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:6px}.salary-value{font-family:Orbitron,monospace;font-size:1.3rem;font-weight:700}.salary-value.present{color:var(--accent-green)}.salary-value.late{color:var(--accent-orange)}.salary-value.absent,.salary-value.deduction{color:var(--accent-red)}.salary-value.net{color:var(--accent-green)}.salary-value.state{font-size:.9rem;line-height:1.3;white-space:normal}.salary-value.state.pending{color:var(--accent-orange)}.salary-value.state.approved{color:var(--accent-cyan)}.salary-value.state.paid{color:var(--accent-green)}.salary-value.state.unavailable{color:var(--text-secondary)}.salary-month-picker{display:flex;align-items:center;justify-content:center;gap:12px;padding-top:8px;border-top:1px solid var(--border-color)}.salary-month-label{font-family:Orbitron,monospace;font-size:.8rem;color:var(--accent-cyan);min-width:100px;text-align:center}.history-controls{display:flex;align-items:center;gap:4px}.history-month-label{font-family:Orbitron,monospace;font-size:.75rem;color:var(--accent-cyan);min-width:80px;text-align:center}.history-stats{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.stat-chip{font-size:.7rem;padding:4px 10px;border-radius:12px;background:var(--bg-secondary);border:1px solid var(--border-color)}.stat-chip strong{font-family:Orbitron,monospace}.present-chip{border-color:#00e6764d;color:var(--accent-green)}.late-chip{border-color:#ffab004d;color:var(--accent-orange)}.absent-chip{border-color:#ff52524d;color:var(--accent-red)}.text-center{text-align:center}.text-sm{font-size:.75rem}.text-muted{color:var(--text-muted)}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}@media (min-width: 768px){.container{padding:32px 24px}.action-buttons{flex-direction:row}.btn-large{width:auto;flex:1}}@media (max-width: 380px){.logo-title{font-size:.95rem}.logo-subtitle{display:none}.header{padding:12px}.card-body{padding:14px}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.attendance-alert{margin-bottom:12px}
