:root{--bg:#06101c;--panel:#0b1826;--line:rgba(255,255,255,.1);--text:#e7f2f7;--muted:#8798a8;--cyan:#67e8f9;--green:#6ee7b7;--amber:#fcd34d;--red:#fca5a5;--violet:#c4b5fd}*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:radial-gradient(circle at 15% -10%,rgba(34,211,238,.12),transparent 34%),linear-gradient(180deg,#071421,#050b13);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,sans-serif;min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{width:min(1440px,calc(100% - 40px));margin:auto}.header{height:80px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:12px;align-items:center}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:var(--cyan);color:#06101c;font-size:23px}.brand strong{font-family:Georgia,serif;font-size:20px}.brand small,.eyebrow{display:block;margin-top:3px;color:#64748b;font-size:10px;text-transform:uppercase;letter-spacing:.2em;font-weight:800}.nav-link{font-size:14px;color:#94a3b8}.nav-link:hover{color:white}.grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.72fr);gap:24px;padding:18px 0 42px}.panel{border:1px solid var(--line);background:rgba(255,255,255,.045);border-radius:20px;box-shadow:0 25px 70px rgba(0,0,0,.18)}.scanner{position:relative;min-height:680px;overflow:hidden}.scanner-title{position:absolute;z-index:3;top:28px;left:30px}.scanner-title h1{font:600 clamp(40px,5vw,68px)/1 Georgia,serif;margin:10px 0 0}.camera{position:absolute;inset:0;background:radial-gradient(circle,rgba(26,61,77,.8),#07111d 66%);display:grid;place-items:center;overflow:hidden}.camera video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform:scaleX(-1)}.face-target{position:relative;z-index:2;width:min(74%,450px);height:min(72%,480px);border:1px solid rgba(103,232,249,.4);border-radius:46% 46% 40% 40%;box-shadow:0 0 100px rgba(34,211,238,.09) inset,0 0 90px rgba(34,211,238,.08)}.face-target:before,.face-target:after{content:"";position:absolute;inset:-8px;border:2px solid var(--cyan);border-top-color:transparent;border-bottom-color:transparent;border-radius:46%}.face-target:after{inset:30%;border-color:transparent;border-top-color:rgba(103,232,249,.8);border-radius:0;animation:scan 3s ease-in-out infinite}@keyframes scan{0%,100%{transform:translateY(-100px);opacity:.2}50%{transform:translateY(100px);opacity:1}}.scanner-actions{position:absolute;z-index:4;left:0;right:0;bottom:0;padding:90px 30px 28px;background:linear-gradient(transparent,rgba(5,11,19,.96) 55%);display:flex;gap:18px;align-items:flex-end;justify-content:space-between}.scanner-actions p{margin:5px 0;color:var(--muted);font-size:14px}.button-row{display:flex;gap:9px;flex-wrap:wrap}.btn{border:0;border-radius:11px;padding:12px 17px;font-weight:750;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-green{background:var(--green);color:#042c22}.btn-amber{background:var(--amber);color:#3b2b03}.btn-cyan{background:var(--cyan);color:#06101c}.btn-light{background:white;color:#0f172a}.btn-ghost{background:rgba(255,255,255,.06);border:1px solid var(--line);color:white}.btn-violet{background:var(--violet);color:#20134a}.sidebar{display:flex;flex-direction:column;gap:16px}.result{padding:25px}.result h2{font:600 30px Georgia,serif;margin:10px 0 0}.result-box{margin-top:24px;border:1px solid var(--line);border-radius:16px;padding:20px;background:rgba(0,0,0,.12)}.result-name{font:600 32px Georgia,serif}.muted{color:var(--muted)}.badge{display:inline-block;margin-top:12px;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:800}.success{background:rgba(110,231,183,.1);color:var(--green);border:1px solid rgba(110,231,183,.2)}.danger{background:rgba(252,165,165,.1);color:var(--red);border:1px solid rgba(252,165,165,.2)}.notice{padding:17px;display:flex;gap:10px;color:var(--muted);font-size:12px;line-height:1.6;border-color:rgba(110,231,183,.12);background:rgba(110,231,183,.045)}.admin-header{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);background:rgba(6,16,28,.92);backdrop-filter:blur(14px)}.admin-wrap{padding:34px 0}.admin-hero{display:flex;align-items:end;justify-content:space-between;gap:20px}.admin-hero h1{font:600 clamp(38px,5vw,58px) Georgia,serif;margin:10px 0}.admin-hero p{max-width:720px;color:var(--muted);line-height:1.65}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:28px 0}.metric{padding:20px}.metric label{color:var(--muted);font-size:13px}.metric strong{display:block;font:600 44px Georgia,serif;margin-top:10px}.admin-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.7fr);gap:18px}.section-head{padding:20px;border-bottom:1px solid var(--line);display:flex;align-items:end;justify-content:space-between;gap:15px}.section-head h2{font:600 27px Georgia,serif;margin:0}.section-head p{color:var(--muted);font-size:13px;margin:5px 0 0}.filters{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.field{display:grid;gap:6px}.field label{color:#a7b6c6;font-size:12px;font-weight:700}.input{width:100%;border:1px solid var(--line);background:rgba(0,0,0,.18);color:white;border-radius:10px;padding:11px 12px;outline:none}.input:focus{border-color:rgba(103,232,249,.5)}.table-wrap{max-height:560px;overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:13px 16px;text-align:left;border-bottom:1px solid rgba(255,255,255,.07);font-size:13px}.table th{position:sticky;top:0;background:#0b1826;color:#718196;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.employee-list{max-height:640px;overflow:auto;padding:13px}.employee{padding:15px;border:1px solid rgba(255,255,255,.07);border-radius:14px;margin-bottom:8px;background:rgba(0,0,0,.1);display:flex;justify-content:space-between;gap:10px}.employee h3{font-size:14px;margin:0}.employee p{font-size:12px;color:var(--muted);margin:5px 0}.footer-actions{padding:14px 18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.empty{padding:60px 20px;text-align:center;color:#667789}.modal{position:fixed;z-index:50;inset:0;background:rgba(0,0,0,.7);display:none;place-items:center;padding:20px}.modal.open{display:grid}.modal-card{width:min(680px,100%);max-height:92vh;overflow:auto;background:#0a1623;border:1px solid var(--line);border-radius:20px;padding:24px}.modal-card h2{font:600 28px Georgia,serif;margin:0 0 7px}.modal-card>p{color:var(--muted);font-size:13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}.enroll-camera{position:relative;min-height:330px;border-radius:15px;overflow:hidden;background:#030912}.enroll-camera video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform:scaleX(-1)}.enroll-camera .face-target{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:70%;height:75%}.form-fields{display:grid;gap:12px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(430px,100%);padding:28px}.login-card h1{font:600 36px Georgia,serif;margin:18px 0 8px}.login-card p{color:var(--muted);font-size:14px;line-height:1.6}.login-card form{display:grid;gap:14px;margin-top:24px}.error{color:var(--red);font-size:13px}.toast{position:fixed;z-index:99;top:20px;left:50%;transform:translate(-50%,-20px);opacity:0;pointer-events:none;padding:12px 16px;border-radius:11px;background:#14263a;border:1px solid var(--line);box-shadow:0 20px 45px rgba(0,0,0,.3);transition:.2s}.toast.show{transform:translate(-50%,0);opacity:1}.toast.bad{color:var(--red)}@media(max-width:1000px){.grid,.admin-grid{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.shell{width:min(100% - 24px,1440px)}.scanner{min-height:650px}.scanner-actions,.admin-hero,.section-head{align-items:stretch;flex-direction:column}.scanner-title{left:20px}.scanner-actions{padding-inline:20px}.face-target{width:86%;height:65%}.metrics{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.header .nav-link{font-size:12px}.button-row .btn{flex:1}.filters{align-items:stretch}.filters .field{flex:1}.admin-hero .button-row{width:100%}}

[hidden]{display:none!important}
