*{box-sizing:border-box}body,html{background:#f4f6fb;color:#0f172a;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;height:100%;margin:0;overflow:hidden;padding:0}.app-shell{background:linear-gradient(135deg,#f4f6fb,#e8ecf9);display:flex;min-height:100vh;position:relative}.app-shell:before{animation:floatBackground 18s ease-in-out infinite;background:radial-gradient(circle at 20% 30%,#3b82f614 0,#0000 55%),radial-gradient(circle at 80% 70%,#2563eb14 0,#0000 55%);content:"";inset:0;pointer-events:none;position:fixed;z-index:0}@keyframes floatBackground{0%,to{opacity:.9;transform:translateY(0)}50%{opacity:1;transform:translateY(-18px)}}.sidebar{background:linear-gradient(180deg,#111827,#1f2a44);box-shadow:12px 0 32px #0f172a26;display:flex;flex-direction:column;height:100vh;left:0;position:fixed;top:0;transition:transform .3s ease;width:260px;z-index:1002}.sidebar,.sidebar.open{transform:translateX(0)}.sidebar-header{border-bottom:1px solid #ffffff14;justify-content:space-between;padding:24px}.sidebar-brand,.sidebar-header{align-items:center;display:flex}.sidebar-brand{gap:14px}.sidebar-icon{align-items:center;background:linear-gradient(135deg,#2563eb,#4c1d95);border-radius:12px;box-shadow:0 10px 20px #3b82f659;display:flex;font-size:22px;height:44px;justify-content:center;width:44px}.sidebar-brand-text{color:#f9fafb;display:flex;flex-direction:column}.sidebar-title{font-size:1.1rem;font-weight:700;letter-spacing:-.01em;margin:0}.sidebar-subtitle{color:#e2e8f0b3;font-size:.75rem}.sidebar-close{background:#ffffff14;border:none;border-radius:10px;color:#cbd5f5;cursor:pointer;display:none;font-size:18px;height:34px;width:34px}.sidebar-close:hover{background:#ffffff2e}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:6px;overflow-y:auto;padding:18px 16px}.sidebar-menu-item{align-items:center;background:#0000;border:none;border-radius:14px;color:#e2e8f0bf;cursor:pointer;display:flex;font-size:.92rem;gap:12px;padding:14px 16px;position:relative;transition:all .25s ease}.sidebar-menu-item:hover{background:#ffffff14;color:#fff}.sidebar-menu-item.active{background:linear-gradient(135deg,#3b82f633,#6366f133);color:#fff;font-weight:600}.sidebar-menu-item.active:before{background:linear-gradient(180deg,#60a5fa,#a855f7);border-radius:4px;content:"";height:60%;left:-6px;position:absolute;top:50%;transform:translateY(-50%);width:3px}.menu-icon{font-size:1.15rem}.menu-label{flex:1 1;text-align:left}.sidebar-footer{border-top:1px solid #ffffff14;padding:20px 24px}.sidebar-footnote{color:#e2e8f073;font-size:.78rem;letter-spacing:.05em;margin:0;text-transform:uppercase}.sidebar-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a8c;inset:0;position:fixed;z-index:1001}.main-wrapper{display:flex;flex:1 1;flex-direction:column;margin-left:0;min-height:100vh;position:relative;z-index:1}.top-nav{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#ffffffd1;border-bottom:1px solid #0f172a0d;box-shadow:0 6px 24px #0f172a14;justify-content:space-between;padding:18px 28px;position:-webkit-sticky;position:sticky;top:0;z-index:999}.nav-left,.top-nav{align-items:center;display:flex}.nav-left{gap:18px}.menu-toggle{background:#3b82f61f;border:none;border-radius:12px;color:#2563eb;cursor:pointer;display:none;font-size:1.3rem;height:42px;transition:all .25s ease;width:42px}.menu-toggle:hover{background:#3b82f633}.nav-brand{gap:16px}.brand-icon,.nav-brand{align-items:center;display:flex}.brand-icon{background:linear-gradient(135deg,#2563eb,#4338ca);border-radius:14px;box-shadow:0 10px 20px #3b82f640;color:#fff;font-size:1.3rem;height:48px;justify-content:center;width:48px}.brand-text{display:flex;flex-direction:column}.brand-title{color:#0f172a;font-size:1.2rem;font-weight:700;letter-spacing:-.01em;margin:0}.brand-subtitle{color:#64748b;font-size:.75rem;font-weight:500;margin:0}.status-indicator-badge{align-items:center;background:#10b9812e;border:1px solid #6ee7b780;border-radius:999px;color:#047857;display:flex;font-size:.9rem;font-weight:600;gap:8px;padding:8px 18px}.status-indicator-badge.scanning{animation:pulse 2s ease-in-out infinite;background:#3b82f62e;border-color:#93c5fd99;color:#1d4ed8}.status-dot{background:currentColor;border-radius:50%;height:10px;width:10px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.tab-strip{display:flex;gap:12px;overflow-x:auto;padding:16px 28px;scrollbar-width:thin}.tab-strip::-webkit-scrollbar{height:6px}.tab-strip::-webkit-scrollbar-thumb{background:#94a3b866;border-radius:999px}.tab-chip{align-items:center;background:#ffffffd9;border:1px solid #94a3b840;border-radius:12px;color:#475569;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:500;gap:8px;padding:10px 18px;transition:all .25s ease}.tab-chip:hover{background:#3b82f61a;border-color:#3b82f666;color:#2563eb}.tab-chip.active{background:linear-gradient(135deg,#3b82f626,#6366f133);border-color:#3b82f680;box-shadow:0 8px 20px #3b82f626;color:#1d4ed8}.chip-icon{font-size:1.1rem}.main-content{align-items:center;display:flex;flex:1 1;justify-content:center;overflow-y:auto;padding:32px 28px 120px;position:relative;z-index:1}.about-screen,.attendance-screen,.home-screen,.reports-screen{animation:sectionFade .45s ease}.attendance-screen{align-items:center;display:flex;justify-content:center;width:100%}@keyframes sectionFade{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.home-hero{margin-bottom:56px;text-align:center}.hero-icon-wrapper{display:inline-block;margin-bottom:24px;position:relative}.hero-icon{align-items:center;animation:floatIcon 3s ease-in-out infinite;background:linear-gradient(135deg,#2563eb,#4f46e5 85%);border-radius:26px;box-shadow:0 18px 45px #3b82f659;color:#fff;display:flex;font-size:54px;height:110px;justify-content:center;width:110px}.icon-ring{animation:pulseRing 2.6s ease-in-out infinite;border:2px solid #3b82f659;border-radius:32px;inset:-12px;position:absolute}@keyframes floatIcon{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulseRing{0%,to{opacity:.55;transform:scale(1)}50%{opacity:.85;transform:scale(1.05)}}.hero-title{color:#0f172a;font-size:2.6rem;font-weight:800;letter-spacing:-.03em;margin:0 0 16px}.hero-subtitle{color:#475569;font-size:1.08rem;line-height:1.7;margin:0 auto;max-width:580px}.feature-grid{grid-gap:22px;display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.feature-card{background:#ffffffe6;border:1px solid #94a3b82e;border-radius:20px;box-shadow:0 12px 28px #0f172a14;padding:28px;text-align:left;transition:transform .25s ease,box-shadow .25s ease}.feature-card:hover{box-shadow:0 18px 34px #2563eb2e;transform:translateY(-6px)}.feature-icon{font-size:36px;margin-bottom:12px}.feature-title{color:#1e293b;font-size:1.18rem;font-weight:700;margin:0 0 10px}.feature-description{color:#64748b;line-height:1.7;margin:0}.cta-section{margin-top:48px;text-align:center}.primary-cta-button{align-items:center;background:linear-gradient(135deg,#2563eb,#4f46e5 90%);border:none;border-radius:18px;box-shadow:0 18px 38px #2563eb59;color:#fff;cursor:pointer;display:inline-flex;font-size:1.08rem;font-weight:600;gap:12px;padding:18px 46px;transition:transform .2s ease,box-shadow .2s ease}.primary-cta-button:hover{box-shadow:0 24px 46px #2563eb66;transform:translateY(-3px)}.cta-hint{color:#64748b;font-size:.88rem;margin-top:10px}.attendance-start,.camera-stopped{align-items:center;display:flex;justify-content:center;min-height:70vh}.start-card,.stopped-card{background:#ffffffeb;border:1px solid #94a3b833;border-radius:24px;box-shadow:0 22px 50px #0f172a1f;max-width:520px;padding:44px 36px;text-align:center;width:100%}.start-icon,.stopped-icon{align-items:center;background:linear-gradient(135deg,#2563eb,#4f46e5);border-radius:22px;box-shadow:0 16px 40px #2563eb59;color:#fff;display:inline-flex;font-size:42px;height:86px;justify-content:center;margin-bottom:22px;width:86px}.stopped-icon{background:linear-gradient(135deg,#10b981,#1d4ed8)}.start-title,.stopped-title{color:#0f172a;font-size:1.6rem;font-weight:700;margin:0 0 12px}.start-description,.stopped-description{color:#64748b;line-height:1.7;margin:0 0 28px}.control-button,.retry-button,.start-attendance-button{border:none;border-radius:14px;cursor:pointer;font-size:1rem;font-weight:600;padding:14px 34px;transition:transform .2s ease,box-shadow .2s ease}.retry-button,.start-attendance-button{background:linear-gradient(135deg,#2563eb,#4f46e5 90%);box-shadow:0 16px 32px #3b82f640;color:#fff}.retry-button:hover,.start-attendance-button:hover{transform:translateY(-3px)}.camera-container{aspect-ratio:16/9;background:#000;border-radius:24px;box-shadow:0 24px 60px #0f172a4d;height:calc(100vh - 120px);margin:0 auto;max-width:1200px;min-height:400px;overflow:hidden;position:relative;width:100%}.detection-frame{align-items:center;border:3px solid #3b82f68c;border-radius:0;bottom:0;box-sizing:border-box;display:flex;height:100%;justify-content:center;pointer-events:none;top:0;width:100%}.detection-frame,.scanning-line{left:0;position:absolute;right:0}.scanning-line{animation:scan 2.4s ease-in-out infinite;background:linear-gradient(90deg,#0000,#60a5fa,#0000);box-shadow:0 0 14px #3b82f6b3;height:3px}@keyframes scan{0%,to{opacity:0;top:0}10%{opacity:1}50%{top:100%}85%{opacity:1}}.processing-overlay{align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172abf;display:flex;inset:0;justify-content:center;position:absolute}.processing-content{color:#fff;text-align:center}.spinner{animation:spin .8s linear infinite;border:4px solid #94a3b84d;border-radius:999px;border-top-color:#2563eb;height:58px;margin:0 auto 14px;width:58px}@keyframes spin{to{transform:rotate(1turn)}}.processing-text{font-size:1.05rem;letter-spacing:.03em}.bottom-controls{display:flex;justify-content:center;margin-top:24px}.control-button{background:#ef44441f;box-shadow:0 10px 24px #ef44442e;color:#b91c1c}.control-button:hover{transform:translateY(-2px)}.reports-header{margin-bottom:32px;text-align:center}.reports-title{color:#0f172a;font-size:2rem;font-weight:700;margin:0 0 8px}.reports-subtitle{color:#64748b;margin:0}.reports-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.report-card{background:#fffffff2;border:1px solid #94a3b82e;border-radius:20px;box-shadow:0 16px 36px #0f172a1f;padding:28px}.report-metric{color:#1e293b;font-size:1.1rem;font-weight:700;margin:0 0 12px}.report-text{color:#64748b;line-height:1.6;margin:0}.reports-footer{margin-top:28px;text-align:center}.reports-note{color:#2563eb;font-weight:600;margin:0}.reports-tab-header{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:18px}.tab-button{background:#ffffffe6;border:1px solid #94a3b81f;border-radius:12px;color:#475569;cursor:pointer;font-weight:600;padding:8px 14px;transition:all .18s ease}.tab-button:hover{box-shadow:0 8px 20px #2563eb0f;transform:translateY(-2px)}.tab-button.active{background:linear-gradient(135deg,#3b82f61f,#6366f11f);border-color:#3b82f640;color:#1d4ed8}.reports-tab-panel{background:#fffffff2;border:1px solid #94a3b814;border-radius:12px;padding:18px}.report-section{margin:8px 0}.about-content{background:#ffffffeb;border:1px solid #94a3b82e;border-radius:24px;box-shadow:0 22px 48px #0f172a1f;padding:40px}.about-screen{display:block}.about-content{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 50px);overflow-y:auto;padding-right:12px}.about-content::-webkit-scrollbar{width:10px}.about-content::-webkit-scrollbar-track{background:#0000}.about-content::-webkit-scrollbar-thumb{background:#0f172a1f;border:2px solid #ffffffe6;border-radius:999px}.about-content{scrollbar-color:#0f172a1f #0000;scrollbar-width:thin}.about-header{margin-bottom:36px;text-align:center}.about-title{font-size:1.9rem;font-weight:700;margin:0 0 10px}.about-subtitle{color:#64748b;margin:0}.about-section{margin-bottom:28px}.section-title{color:#1f2937;font-size:1.15rem;font-weight:600;margin:0 0 10px}.section-text{color:#64748b;line-height:1.7;margin:0}.feature-list{color:#64748b;margin:0;padding-left:20px}.feature-list li{margin-bottom:10px}.about-footer{color:#475569;font-size:.9rem;margin-top:28px;text-align:center}.about-company{align-items:flex-start;display:flex;flex-wrap:wrap;gap:28px;justify-content:space-between}.company-info{flex:1 1 360px;min-width:220px}.company-name{align-items:center;display:flex;gap:10px;margin-bottom:8px}.company-address{color:#475569;margin-bottom:12px}.contact-info{flex:1 1 320px;min-width:220px}.contact-grid{grid-gap:12px;align-items:start;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.contact-item{align-items:center;background:#2563eb08;border-radius:12px;color:inherit;display:flex;gap:12px;min-width:0;padding:8px 10px;text-decoration:none}.contact-item .contact-icon{font-size:1.25rem}.contact-details{display:flex;flex-direction:column;min-width:0}.contact-label{color:#64748b;font-size:.75rem}.contact-value{color:#0f172a;font-weight:600;white-space:normal;word-break:break-word}@media (max-width:1024px){.about-content{padding:28px}}@media (max-width:768px){.about-content{padding:20px}.about-company{flex-direction:column;gap:18px}.contact-grid{grid-template-columns:1fr}}@media (max-width:480px){.about-content{padding:16px}.about-title{font-size:1.5rem}.company-name{font-size:1rem}.contact-item{padding:10px}}.bottom-tab-navigation{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;border-top:1px solid #0f172a14;bottom:0;box-shadow:0 -12px 30px #0f172a1a;display:none;left:0;padding:10px 0 calc(10px + env(safe-area-inset-bottom));position:fixed;right:0;z-index:1200}.bottom-tab-button{align-items:center;background:none;border:none;color:#64748b;cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-size:.75rem;font-weight:500;gap:4px}.bottom-tab-button.active{color:#2563eb}.bottom-tab-icon{font-size:1.35rem}.toast-container{bottom:24px;display:flex;flex-direction:column-reverse;gap:12px;left:50%;max-width:480px;pointer-events:none;position:fixed;transform:translateX(-50%);transition:all .3s ease;width:calc(100% - 48px);z-index:1500}.toast{align-items:flex-start;animation:toastIn .3s ease;background:#fffffff2;border:1px solid #94a3b833;border-radius:16px;box-shadow:0 16px 32px #0f172a1f;max-width:420px;padding:16px 18px;pointer-events:auto;width:100%}.toast,.toast-header{display:flex;gap:12px}.toast-header{align-items:center}.toast-photo{border:2px solid #3b82f633;border-radius:50%;height:52px;overflow:hidden;width:52px}.toast-photo img{height:100%;object-fit:cover;width:100%}.toast-details{align-items:center;border-top:1px solid #94a3b826;color:#64748b;display:flex;font-size:.8rem;justify-content:space-between;margin-top:8px;padding-top:8px}.toast-confidence{color:#059669;font-weight:600}.toast-timestamp{color:#6b7280}.toast.hero{background:linear-gradient(135deg,#2563eb1a,#4f46e51a),#fff;border:1px solid #3b82f640;border-radius:20px;box-shadow:0 28px 60px #2563eb40;max-width:560px;min-width:420px;padding:24px 28px}.toast.info.hero{background:linear-gradient(135deg,#3b82f614,#6366f114),#fff;border:1px solid #3b82f633}.toast.info .toast-message{margin-top:8px}.toast .time-info{color:#3b82f6;font-weight:600;margin-top:4px}.toast.hero .toast-icon{font-size:1rem;height:32px;width:32px}.toast.hero .toast-title{color:#0f172a;font-size:1.15rem;font-weight:800;letter-spacing:-.01em}.toast.hero .toast-message{color:#1f2937;font-size:1rem}.toast.success .toast-icon{background:#10b98126;color:#047857}.toast.error .toast-icon{background:#ef44442e;color:#b91c1c}.toast.info .toast-icon{background:#3b82f62e;color:#1d4ed8}.toast-icon{align-items:center;border-radius:999px;display:flex;font-weight:700;height:26px;justify-content:center;width:26px}.toast-title{color:#0f172a;font-size:.95rem;font-weight:600;margin:0}.toast-message{color:#475569;font-size:.85rem;line-height:1.6;margin:4px 0 0;white-space:pre-line;word-break:break-word}.toast-close{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:1rem}@keyframes toastIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1024px){.main-wrapper{margin-left:0}.sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}.menu-toggle,.sidebar-close{align-items:center;display:inline-flex;justify-content:center}}@media (max-width:768px){.main-content{padding:24px 20px 120px}.tab-strip{padding:14px 20px}.tab-chip{font-size:.85rem;padding:10px 16px}.toast-container{background:linear-gradient(180deg,#0000001a,#0000);bottom:auto;flex-direction:column;left:0;max-width:none;padding:12px;right:0;top:0;width:100%}.toast{animation:toastInFromTop .3s ease;border-radius:12px;margin:0 auto}@keyframes toastInFromTop{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.toast.exiting{animation:toastOutToTop .3s ease forwards}@keyframes toastOutToTop{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}.hero-title{font-size:2.2rem}.feature-grid{grid-template-columns:1fr}.about-content,.start-card,.stopped-card{padding:32px 24px}.camera-container{border-radius:0;height:calc(100vh - 80px);margin:-24px -20px;max-width:none;width:100vw}.detection-frame{border-radius:0;bottom:0;height:100%;left:0;right:0;top:0;width:100%}.camera-feed{border-radius:0}.bottom-controls{background:linear-gradient(0deg,#000000bf,#0000);bottom:80px;left:0;margin:0;padding:16px;position:fixed;right:0;z-index:10}.control-button{margin:0 auto;max-width:200px;width:100%}.stopped-card{margin:16px;max-width:calc(100% - 32px)}.bottom-tab-navigation{display:flex}.toast-container{left:16px;right:16px;transform:none;width:auto}.toast,.toast.hero{min-width:auto;width:100%}.toast.hero{border-radius:14px;max-width:none;padding:18px 16px}.toast.hero .toast-title{font-size:1rem}.toast.hero .toast-message{font-size:.9rem}}@media (max-width:480px){.hero-title{font-size:1.9rem}.primary-cta-button,.retry-button,.start-attendance-button{justify-content:center;width:100%}.camera-container{height:calc(100vh - 60px)}.processing-overlay{padding:16px}.processing-content{width:100%}.spinner{border-width:3px;height:42px;width:42px}.processing-text{font-size:.95rem}.bottom-controls{bottom:70px;padding:12px}.toast.hero{border-radius:12px;padding:16px 14px}.toast.hero .toast-title{font-size:.95rem}.toast.hero .toast-message{font-size:.875rem}}@media (orientation:landscape) and (max-height:500px){.camera-container{height:100vh;margin:0}.bottom-controls{bottom:16px}.stopped-card{margin:10px;padding:20px}.stopped-icon{font-size:32px;height:60px;margin-bottom:16px;width:60px}.stopped-title{font-size:1.3rem;margin-bottom:8px}.stopped-description{font-size:.9rem;margin-bottom:16px}}button:focus-visible{outline:3px solid #3b82f666;outline-offset:2px}.main-content{scroll-behavior:smooth}
/*# sourceMappingURL=main.28522298.css.map*/