:root{--bg-dark: #e0f2fe;--bg-panel: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .8);--text-primary: #0f172a;--text-secondary: #475569;--accent-gold: #0ea5e9;--accent-gold-glow: rgba(14, 165, 233, .4);--accent-blue: #3b82f6;--accent-green: #22c55e;--accent-green-glow: rgba(34, 197, 94, .4);--accent-red: #ef4444}*{box-sizing:border-box;margin:0;padding:0}@keyframes aurora{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}body{font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:var(--bg-dark);background-image:radial-gradient(circle at 15% 15%,rgba(14,165,233,.2),transparent 40%),radial-gradient(circle at 85% 85%,rgba(34,197,94,.2),transparent 40%),radial-gradient(circle at 50% 50%,rgba(59,130,246,.1),transparent 60%);background-size:200% 200%;animation:aurora 15s ease infinite;color:var(--text-primary);min-height:100vh;overflow-x:hidden;position:relative}body:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(var(--text-secondary) 1px,transparent 1px);background-size:30px 30px;opacity:.15;z-index:-1;pointer-events:none}.app-container{display:flex;min-height:100vh}.glass-panel{background:var(--bg-panel);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);border-radius:24px;box-shadow:0 10px 40px -10px #00000014,inset 0 1px #fff;transition:transform .3s cubic-bezier(.175,.885,.32,1.275),box-shadow .3s ease}.glass-panel:hover{box-shadow:0 15px 50px -10px #0ea5e926,inset 0 1px #fff}h1,h2,h3,h4{font-weight:700;letter-spacing:-.03em}h1{font-size:2.8rem;background:linear-gradient(135deg,#0ea5e9,#22c55e);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:1rem;filter:drop-shadow(0 2px 4px rgba(14,165,233,.2))}.sidebar{width:280px;padding:2rem;border-right:1px solid rgba(255,255,255,.5);display:flex;flex-direction:column;gap:2rem;background:linear-gradient(180deg,#fff6,#ffffff1a);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.sidebar-logo{display:flex;align-items:center;gap:1rem;font-size:1.5rem;font-weight:800;color:var(--accent-gold);text-shadow:0 2px 10px rgba(14,165,233,.2)}.nav-links{display:flex;flex-direction:column;gap:.8rem}.nav-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.2rem;border-radius:14px;color:var(--text-secondary);text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);font-weight:600;position:relative;overflow:hidden}.nav-item:hover{background:#fff9;color:var(--text-primary);transform:translate(8px);box-shadow:0 4px 15px #00000008}.nav-item.active{background:linear-gradient(135deg,#0ea5e926,#22c55e26);color:var(--accent-gold);border:1px solid rgba(255,255,255,.8);box-shadow:0 8px 20px #0ea5e91a}.main-content{flex:1;padding:3rem;display:flex;flex-direction:column}.scanner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;position:relative}.rfid-input-hidden{position:absolute;opacity:0;top:-1000px}.scan-pulse{width:320px;height:320px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;background:#fff9;box-shadow:inset 0 0 50px #0ea5e91a,0 15px 40px #0000000d;transition:all .5s cubic-bezier(.4,0,.2,1);overflow:hidden}.scan-pulse:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:50%;border:3px dashed rgba(14,165,233,.3);animation:spin 10s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.scan-pulse.idle:after{content:"";position:absolute;top:50%;left:50%;width:160px;height:2px;background:linear-gradient(90deg,transparent,var(--accent-gold));transform-origin:0% 50%;animation:radarSweep 2s linear infinite;z-index:1;box-shadow:0 0 20px 2px var(--accent-gold-glow)}@keyframes radarSweep{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.scan-pulse.success{background:#22c55e26;border:4px solid var(--accent-green);box-shadow:0 0 60px var(--accent-green-glow),inset 0 0 30px #fffc;transform:scale(1.05)}.scan-pulse.error{background:#ef444426;border:4px solid var(--accent-red);box-shadow:0 0 60px #ef44444d;transform:scale(1.05)}.student-card{text-align:center;animation:popIn .6s cubic-bezier(.175,.885,.32,1.275) forwards;z-index:10}@keyframes popIn{0%{opacity:0;transform:scale(.5) translateY(40px)}to{opacity:1;transform:scale(1) translateY(0)}}.student-avatar{width:130px;height:130px;border-radius:65px;background:#fff;border:4px solid var(--accent-gold);box-shadow:0 10px 25px var(--accent-gold-glow);margin:0 auto 1.5rem;display:flex;align-items:center;justify-content:center;font-size:3.5rem;color:var(--accent-gold);font-weight:700}.status-badge{display:inline-block;padding:.6rem 2rem;border-radius:30px;font-weight:700;letter-spacing:2px;margin-top:1rem;box-shadow:0 4px 15px #0000000d}.status-badge.masuk{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border:none}.status-badge.pulang{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none}.table-container{width:100%;overflow-x:auto;border-radius:16px;background:#fff6;padding:1rem}table{width:100%;border-collapse:separate;border-spacing:0 8px}th,td{padding:1.2rem 1.5rem;text-align:left}th{background:transparent;color:var(--text-secondary);font-weight:700;text-transform:uppercase;font-size:.8rem;letter-spacing:1.5px}td{background:#ffffffb3;border-top:1px solid rgba(255,255,255,1);border-bottom:1px solid rgba(0,0,0,.02)}td:first-child{border-top-left-radius:12px;border-bottom-left-radius:12px}td:last-child{border-top-right-radius:12px;border-bottom-right-radius:12px}tr{transition:all .3s cubic-bezier(.175,.885,.32,1.275)}tr:hover td{background:#fff;transform:translateY(-2px);box-shadow:0 5px 15px #00000008}.form-group{margin-bottom:1.5rem}.form-label{display:block;margin-bottom:.5rem;color:var(--text-primary);font-weight:600;font-size:.95rem}.form-input{width:100%;background:#fff;border:2px solid rgba(14,165,233,.1);color:var(--text-primary);padding:1rem 1.2rem;border-radius:12px;font-family:inherit;font-size:1rem;transition:all .3s ease;box-shadow:inset 0 2px 4px #00000005}.form-input:focus{outline:none;border-color:var(--accent-gold);box-shadow:0 0 0 4px var(--accent-gold-glow);transform:translateY(-1px)}.btn{background:linear-gradient(135deg,#0ea5e9,#22c55e);color:#fff;border:none;padding:.8rem 2rem;border-radius:12px;font-weight:700;font-size:1rem;cursor:pointer;transition:all .3s cubic-bezier(.175,.885,.32,1.275);display:inline-flex;align-items:center;gap:.6rem;position:relative;overflow:hidden;box-shadow:0 6px 20px #0ea5e94d}.btn:after{content:"";position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transform:skew(-20deg);transition:all .6s ease}.btn:hover:after{left:150%}.btn:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 10px 25px #22c55e66}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 6px 20px #ef44444d}.btn-danger:hover{box-shadow:0 10px 25px #ef444466}
