:root{--app-font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-family:var(--app-font);color:#ffffffe6;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#050806}*{box-sizing:border-box;font-family:inherit}html{background:#050806;min-width:320px;min-height:100%}body{min-width:320px;min-height:100vh;font-family:var(--app-font);background:radial-gradient(circle at 15% 12%,#2a694033,#0000 32%),radial-gradient(circle at 85% 72%,#224b3221,#0000 35%),linear-gradient(145deg,#080b09 0%,#020403 100%);margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit}button:focus-visible,input:focus-visible{outline-offset:2px;outline:2px solid #70dc91}#root{width:100%;min-height:100vh}.app-container{z-index:1;box-sizing:border-box;width:min(1100px,100%);min-height:100vh;margin:0 auto;padding:24px 20px 48px;position:relative}.app-header{justify-content:space-between;align-items:center;gap:24px;padding:4px 8px;display:flex}.app-kicker{color:#70dc91;letter-spacing:.18em;text-transform:uppercase;margin:0 0 3px;font-size:11px;font-weight:800}.app-title{color:#f5fff8;letter-spacing:-.04em;margin:0;font-size:clamp(1.7rem,4vw,2.45rem)}.session-control{align-items:center;gap:12px;display:flex}.session-control span,.session-control small{text-align:right;display:block}.session-control span{color:#f3fff6;font-size:13px;font-weight:700}.session-control small{color:#ffffff7a;text-transform:uppercase;font-size:10px;font-weight:600}.primary-action,.secondary-action{color:#fff;font:inherit;cursor:pointer;border:0;border-radius:12px;font-weight:750;transition:transform .16s,background .16s,box-shadow .16s}.primary-action{background:linear-gradient(135deg,#399a5a,#5fc67e);padding:12px 20px;box-shadow:0 10px 30px #399a5a38}.secondary-action{background:#ffffff0e;border:1px solid #ffffff21;width:auto;margin:0;padding:10px 15px}.primary-action:hover:not(:disabled),.secondary-action:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 32px #399a5a47}.primary-action:disabled{opacity:.45;cursor:not-allowed}.login-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#09100cdb;border:1px solid #70dc912e;border-radius:18px;grid-template-columns:minmax(220px,1fr) minmax(170px,.75fr) minmax(170px,.75fr) auto;align-items:end;gap:14px;margin:22px 8px 0;padding:20px;display:grid;box-shadow:0 18px 60px #0000003d}.login-panel h2,.login-panel p{margin:0}.login-panel h2{color:#fff;font-size:20px}.login-panel>div>p:last-child{color:#ffffff8a;margin-top:4px;font-size:12px}.login-panel label{color:#ffffffa6;gap:6px;font-size:12px;font-weight:650;display:grid}.login-panel input{color:#fff;min-width:0;font:inherit;background:#ffffff0e;border:1px solid #ffffff21;border-radius:10px;outline:none;padding:11px 12px}.login-panel input:focus{border-color:#70dc91bf;box-shadow:0 0 0 3px #70dc911a}.login-error{color:#faa;grid-column:2/-1;font-size:12px}@media (max-width:850px){.login-panel{grid-template-columns:1fr 1fr}.login-panel>div,.login-error{grid-column:1/-1}}@media (max-width:600px){.app-container{padding:16px 10px 36px}.app-header,.session-control{align-items:flex-start}.app-header{flex-direction:column}.session-control{justify-content:space-between;width:100%}.login-panel{grid-template-columns:1fr;margin-inline:0}.login-panel>div,.login-error{grid-column:auto}}.manual-section{box-sizing:border-box;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);text-align:left;background:#0a110ed1;border:1px solid #ffffff1c;border-radius:24px;width:min(920px,100% - 32px);margin:24px auto 64px;padding:28px;box-shadow:0 24px 80px #00000047}.manual-heading,.employee-list-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.manual-heading h2,.employee-list-heading h3{color:#f4fff7;margin:0}.eyebrow{color:#70dc91;letter-spacing:.14em;text-transform:uppercase;margin:0 0 4px;font-size:12px;font-weight:800}.admin-badge,.employee-list-heading span{color:#9ef0b7;background:#70dc911a;border:1px solid #70dc914d;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}.manual-grid{grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);gap:28px;margin-top:24px;display:grid}.employee-form{gap:16px;display:grid}.employee-form label{color:#ffffffb8;gap:7px;font-size:13px;font-weight:650;display:grid}.employee-form input{box-sizing:border-box;color:#fff;width:100%;font:inherit;background:#ffffff0e;border:1px solid #ffffff24;border-radius:12px;outline:none;padding:12px 14px}.employee-form input:focus{border-color:#70dc91cc;box-shadow:0 0 0 3px #70dc911f}.file-field input{padding:9px}.file-field input::file-selector-button{color:#b7f5ca;cursor:pointer;background:#70dc9124;border:0;border-radius:8px;margin-right:12px;padding:8px 12px}.manual-preview{object-fit:cover;border-radius:14px;width:100%;max-height:230px}.primary-action{width:100%;max-width:none;margin:0}.form-message{border-radius:10px;margin:0;padding:10px 12px;font-size:13px}.form-message--error{color:#faa;background:#ff505014;border:1px solid #ff66664d}.form-message--success{color:#a9efbe;background:#70dc9114;border:1px solid #70dc914d}.employee-list-panel{background:#ffffff08;border:1px solid #ffffff14;border-radius:16px;min-height:280px;padding:18px}.employee-list{gap:9px;max-height:390px;margin:16px 0 0;padding:0;list-style:none;display:grid;overflow:auto}.employee-list li{background:#ffffff0a;border-radius:12px;align-items:center;gap:12px;padding:11px;display:flex}.employee-avatar{color:#fff;background:linear-gradient(135deg,#2f8f50,#65ca83);border-radius:11px;flex:none;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.employee-list strong,.employee-list small{display:block}.employee-list strong{color:#fff;font-size:14px}.employee-list small,.empty-employees{color:#ffffff85}@media (max-width:760px){.manual-grid{grid-template-columns:1fr}.manual-section{width:calc(100% - 20px);padding:20px}}.webcam-container{flex-direction:column;justify-content:center;align-items:center;gap:30px;min-height:100vh;padding:40px 20px;display:flex;position:relative}.webcam-card{width:320px;height:450px;position:relative;overflow:visible}.webcam-card .reflective-card-content{flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:16px;display:flex}.webcam-video{aspect-ratio:4/3;object-fit:cover;border-radius:16px;width:100%;height:auto;transform:scaleX(-1)}.controls-section{z-index:10;flex-direction:column;align-items:center;gap:20px;display:flex}.mode-selector{gap:10px;padding:0;display:flex}.mode-selector label{cursor:pointer;transition:all .3s;position:relative}.mode-selector label input{opacity:0;pointer-events:none;position:absolute}.mode-selector label span{color:#ffffffb3;text-align:center;background:#ffffff0e;border:1px solid #ffffff21;border-radius:12px;min-width:150px;padding:12px 20px;font-size:16px;font-weight:750;transition:transform .16s,background .16s,box-shadow .16s;display:block}.mode-selector label.active span{color:#fff;background:linear-gradient(135deg,#399a5a,#5fc67e);border-color:#0000;box-shadow:0 10px 30px #399a5a38}.mode-selector label:not(.active):hover span{color:#fff;background:#70dc911a;transform:translateY(-1px)}.capture-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#399a5a,#5fc67e);border:none;border-radius:12px;width:min(100%,310px);margin:0;padding:12px 20px;font-size:16px;font-weight:750;transition:transform .16s,background .16s,box-shadow .16s;position:relative;overflow:hidden;box-shadow:0 10px 30px #399a5a38}.capture-button:before{content:"";background:linear-gradient(135deg,#0000,#fff3,#0000);transition:transform .6s;position:absolute;inset:0;transform:translate(-100%)}.capture-button:hover:not(:disabled):before{transform:translate(100%)}.capture-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 32px #399a5a47}.capture-button:active:not(:disabled){transform:translateY(0)}.capture-button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.camera-error{text-align:center;color:#ffb347;background:#212121d9;border:1px solid #ffb34766;border-radius:12px;flex-direction:column;gap:10px;max-width:360px;padding:12px 16px 16px;font-size:14px;line-height:1.4;display:flex}.camera-error p{margin:0}.recognize-error{max-width:auto;text-align:center;color:#ff6f61;background:#212121d9;border:1px solid #ff6f6166;border-radius:12px;flex-direction:column;gap:10px;margin:2px;padding:5px;font-size:14px;line-height:1.4;display:flex}.result-placeholder.disable{display:none}.retry-camera-button{color:#fff;cursor:pointer;background:#ffffff0d;border:1px solid #fff3;border-radius:999px;align-self:center;padding:8px 18px;font-size:13px;transition:all .2s}.retry-camera-button:hover{background:#ffffff26}.result-panel{color:#fff;text-align:center;background:#191919b3;border:1px solid #ffffff14;border-radius:18px;flex-direction:column;align-items:center;gap:18px;width:100%;margin-top:20px;padding:20px;display:flex}.result-panel-upper{justify-content:center;align-items:center;width:100%;display:flex}.result-panel-lower{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.result-title{color:#8ab6ff;font-size:18px;font-weight:700}.result-label{margin:0;font-size:16px;font-weight:600}.result-sub{color:#ffffffb3;margin:2px 0 0;font-size:13px}.result-metrics{justify-content:center;gap:30px;display:flex}.metric-label{text-transform:uppercase;letter-spacing:.5px;color:#fff9;font-size:12px;display:block}.metric-value{color:#fff;font-size:22px;font-weight:800}.metric-value--good{color:#4caf50}.result-placeholder{color:#fff9;justify-content:center;align-items:center;margin:50px 5px 20px;font-size:14px;display:flex}.result-card{width:90%;max-width:700px;padding:30px;animation:.5s ease-out slideIn}@keyframes slideIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.result-content{flex-direction:column;gap:25px;display:flex}.captured-image-container{justify-content:center;width:100%;display:flex}.captured-image{border:2px solid #4caf504d;border-radius:16px;max-width:300px;max-height:300px;box-shadow:0 8px 24px #0003}.result-info{background:#14141499;border:1px solid #ffffff1a;border-radius:16px;padding:25px}.result-header{border-bottom:1px solid #ffffff1a;align-items:center;gap:15px;margin-bottom:20px;padding-bottom:15px;display:flex}.result-icon{font-size:32px}.result-header h3{color:#fff;margin:0;font-size:24px;font-weight:700}.result-details{flex-direction:column;gap:15px;display:flex}.detail-item{background:#ffffff0d;border-radius:10px;justify-content:space-between;align-items:center;padding:12px 15px;transition:all .3s;display:flex}.detail-item:hover{background:#ffffff14;transform:translate(5px)}.detail-label{color:#ffffffb3;font-size:15px;font-weight:600}.detail-value{color:#fff;font-size:16px;font-weight:700}.detail-value.highlight{color:#4caf50;font-size:20px}.detail-value.percentage{background:linear-gradient(135deg,#4caf50,#81c784);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:28px}.count-up-similarity,.count-up-probability{letter-spacing:.5px;font-weight:800}.result-info.success{border-left:4px solid #4caf50}.result-info.recognition{border-left:4px solid #2196f3}.result-info.empty{border-left:4px solid #f44336}.empty-message{color:#fff9;margin:10px 0 0;font-size:15px}.input-new-face{color:#fff;background:#ffffff0d;border:1px solid #fff3;border-radius:20px;outline:none;width:100%;max-width:300px;padding:12px 15px;font-size:15px;transition:all .3s}.input-new-face:focus{border-color:#4caf50;box-shadow:0 0 8px #4caf5066}.new-face-fields{gap:10px;width:min(100%,330px);display:grid}.new-face-fields .input-new-face{box-sizing:border-box;width:100%;max-width:none}@media (max-width:768px){.webcam-card{width:90vw;max-width:400px;height:90vw;max-height:400px}.mode-selector{border-radius:20px;flex-direction:column;width:100%;max-width:300px}.mode-selector label span{text-align:center}.capture-button{width:100%;max-width:300px}.result-card{width:95%}.captured-image{max-width:250px;max-height:250px}.detail-item{text-align:center;flex-direction:column;gap:8px}}.reflective-card{perspective:1100px;isolation:isolate;position:relative}.reflective-card-surface,.reflective-card-aura{transform:rotateX(var(--card-rotate-x,0deg))rotateY(var(--card-rotate-y,0deg));transform-style:preserve-3d;will-change:transform;transition:transform .16s cubic-bezier(.2,.8,.2,1)}.reflective-card-surface{box-sizing:border-box;width:100%;height:100%;-webkit-backdrop-filter:blur(var(--blur-strength,12px));backdrop-filter:blur(var(--blur-strength,12px));background:linear-gradient(145deg,#ffffff1c,#ffffff09),#080e0cb8;border:1px solid #ffffff29;border-radius:24px;position:relative;overflow:hidden;box-shadow:0 24px 70px #00000057}.reflective-card-surface:before{content:"";z-index:1;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,calc(var(--metalness,1)*.16))0%,transparent 42%,rgba(117,255,170,calc(var(--metalness,1)*.06))100%);opacity:var(--roughness,.75);pointer-events:none;position:absolute;inset:0}.reflective-card-content{z-index:2;box-sizing:border-box;width:100%;height:100%;position:relative}.reflective-card-glare,.reflective-card-shine{z-index:3;border-radius:inherit;opacity:0;pointer-events:none;transition:opacity .18s;position:absolute;inset:0}.reflective-card-glare{background:radial-gradient(circle 180px at var(--glare-x,50%)var(--glare-y,50%),#ffffff47 0%,#b4ffd617 34%,transparent 72%);mix-blend-mode:screen}.reflective-card-shine{background:linear-gradient(118deg,#0000 26%,#ffffff0a 42%,#ffffff29 50%,#ffffff08 58%,#0000 72%) 0 0/220% 220%;background-position:var(--glare-x,50%)var(--glare-y,50%);mix-blend-mode:soft-light}.reflective-card.is-hovering .reflective-card-glare{opacity:.85}.reflective-card.is-hovering .reflective-card-shine{opacity:.65}.reflective-card-aura{z-index:-1;opacity:0;pointer-events:none;border-radius:28px;position:absolute;inset:-4px}.reflective-card.glow-active .reflective-card-aura{opacity:1;border:2px solid #70ff9d7a;animation:2.4s ease-in-out infinite alternate recognized-pulse;box-shadow:0 0 26px #46dc7659,0 24px 70px #23964640,0 0 100px #4caf5033}@keyframes recognized-pulse{0%{opacity:.62}to{opacity:1}}@media (prefers-reduced-motion:reduce){.reflective-card-surface,.reflective-card-aura{transition:none;transform:none}.reflective-card.glow-active .reflective-card-aura{animation:none}}.particles-container{z-index:0;pointer-events:none;width:100vw;height:100vh;position:fixed;top:0;left:0}
