body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#f5f7fa,#e4edf5);color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app-container{background:#fffffff2;border-radius:16px;box-shadow:0 4px 20px #00000014;box-sizing:border-box;margin:0 auto;max-width:800px;min-height:100vh;padding:20px}.app-header{border-bottom:2px solid #eaeaea;margin-bottom:30px;padding-bottom:20px;text-align:center}.app-header h1{color:#1976d2;font-size:28px;font-weight:700;margin:0 0 10px}.user-info{background:#f0f8ff;border-radius:20px;color:#666;display:inline-block;font-size:16px;padding:8px 16px}.app-main{display:flex;flex-direction:column;gap:24px}.proxy-toggle{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 2px 8px #0000000d;display:flex;gap:12px;padding:16px}.toggle-switch{display:inline-block;height:26px;position:relative;width:50px}.toggle-switch input{height:0;opacity:0;width:0}.slider{background-color:#ccc;border-radius:34px;bottom:0;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{position:absolute;transition:.4s}.slider:before{background-color:#fff;border-radius:50%;bottom:4px;content:"";height:18px;left:4px;width:18px}input:checked+.slider{background-color:#1976d2}input:checked+.slider:before{transform:translateX(24px)}.proxy-section{background:#f8fdff;border:1px solid #b3e0ff;border-radius:12px;box-shadow:0 2px 8px #1976d21a;padding:20px}.proxy-section label{color:#1976d2;display:block;font-weight:600;margin-bottom:10px}.proxy-section select{background:#fff;border:2px solid #1976d2;border-radius:8px;font-size:16px;padding:12px;transition:border-color .3s;width:100%}.proxy-section select:focus{border-color:#0d47a1;box-shadow:0 0 0 3px #1976d233;outline:none}.clock-section{background:#fff;border:1px solid #e0e0e0;border-radius:16px;box-shadow:0 4px 15px #00000014;padding:30px}.location-section{margin-bottom:24px}.location-fixed{background:#e8f4ff;border-left:4px solid #1976d2;color:#1976d2;font-size:18px;font-weight:600}.location-fixed,.location-warning{border-radius:10px;margin:0;padding:12px 20px}.location-warning{background:#fff8e1;border-left:4px solid #ff9800;color:#ff9800;font-size:16px}.clock-button-container{display:flex;justify-content:center;margin:30px 0}.clock-button{border:none;border-radius:12px;box-shadow:0 6px 20px #00000026;cursor:pointer;font-size:20px;font-weight:700;min-width:200px;padding:18px 60px;transition:all .3s}.clock-button:hover:not(:disabled){box-shadow:0 8px 25px #0003;transform:translateY(-2px)}.clock-button:disabled{box-shadow:none!important;cursor:not-allowed;opacity:.6;transform:none!important}.btn-in{background:linear-gradient(135deg,#4caf50,#2e7d32);color:#fff}.btn-out{background:linear-gradient(135deg,#f44336,#c62828);color:#fff}.distance-display{margin:20px 0;text-align:center}.distance-msg{color:#666;font-size:16px;margin:0}.distance-info{background:#f8f9fa;border:2px solid #e9ecef;border-radius:12px;padding:20px}.distance-value{font-size:20px;font-weight:700;margin:0 0 10px}.distance-value.in-range{color:#4caf50}.distance-value.out-range{color:#f44336}.distance-ok{color:#4caf50;font-weight:600;margin:0}.distance-fail{color:#f44336;font-weight:600;margin:0}.result-message{animation:fadeIn .5s;border-radius:10px;font-weight:600;margin:20px 0;padding:16px;text-align:center}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.result-message.success{background:#e8f5e9;border:2px solid #4caf50;color:#2e7d32}.result-message.error{background:#ffebee;border:2px solid #f44336;color:#c62828}.info-section{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.info-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 4px 12px #00000014;padding:24px}.info-card h4{color:#1976d2;font-size:18px;font-weight:600;margin:0 0 16px}.work-hours{color:#1976d2;font-size:32px;font-weight:700;margin:0;text-align:center}.status-error{color:#f44336;font-weight:600}.status-loading{color:#ff9800}.status-warning{color:#ff9800;font-weight:600}.status-ok{color:#4caf50;font-weight:600}.accuracy-info{font-size:14px;margin:12px 0}.accuracy-good{color:#4caf50;font-weight:600}.accuracy-fair{color:#ff9800;font-weight:600}.accuracy-poor{color:#f44336;font-weight:600}.btn-retry{background:#1976d2;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;margin-top:12px;padding:12px;transition:background-color .3s;width:100%}.btn-retry:hover:not(:disabled){background:#1565c0}.btn-retry:disabled{cursor:not-allowed;opacity:.6}.btn-proxy-reason{background:#ff9800;border:none;border-radius:10px;box-shadow:0 4px 12px #ff980033;color:#fff;cursor:pointer;font-size:16px;font-weight:700;padding:16px;transition:all .3s;width:100%}.btn-proxy-reason:hover{background:#f57c00;box-shadow:0 6px 16px #ff98004d;transform:translateY(-2px)}@media (max-width:768px){.app-container{border-radius:0;margin:0;padding:15px}.clock-button{font-size:18px;min-width:180px;padding:16px 40px}.info-section{grid-template-columns:1fr}}@media (max-width:480px){.app-header h1{font-size:24px}.clock-button{font-size:16px;min-width:160px;padding:14px 30px}.work-hours{font-size:28px}}.offline-indicator{animation:slideDown .3s;background:#f44336;color:#fff;font-weight:600;left:0;padding:8px 20px;position:fixed;right:0;text-align:center;top:0;z-index:10000}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.offline-indicator.online{background:#4caf50}.app-container.with-pwa-prompt{padding-bottom:80px}@media (hover:none){.btn-proxy-reason:hover,.btn-retry:hover:not(:disabled),.clock-button:hover:not(:disabled){transform:none}}@media (prefers-contrast:high){.app-container{background:#fff}.app-container,.clock-button,.info-card{border:2px solid #000}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.nfc-validation-section{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 4px 12px #00000014;margin-bottom:24px;padding:20px}.nfc-validation-section h3{color:#1976d2;font-size:18px;font-weight:600;margin:0 0 16px;text-align:center}.nfc-validating{animation:pulse 1.5s infinite;color:#1976d2;font-weight:500;padding:20px;text-align:center}@keyframes pulse{0%{opacity:1}50%{opacity:.6}to{opacity:1}}.nfc-validation-result{border-radius:8px;font-weight:500;margin:8px 0;padding:16px}.nfc-validation-result.success{background:#e8f5e9;border:2px solid #4caf50;color:#2e7d32}.nfc-validation-result.error{background:#ffebee;border:2px solid #f44336;color:#c62828}.nfc-validation-result strong{margin-right:8px}.validation-window-info{border-top:1px solid #0000001a;font-size:14px;margin-top:12px;padding-top:12px}.validation-window-info p{font-weight:400;margin:4px 0}.nfc-prompt{color:#666;padding:20px;text-align:center}.nfc-prompt p{font-size:16px;margin:0 0 16px}.btn-scan-nfc{background:#1976d2;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .3s}.btn-scan-nfc:hover:not(:disabled){background:#1565c0;box-shadow:0 4px 12px #1976d233;transform:translateY(-2px)}.btn-scan-nfc:disabled{background:#9e9e9e;box-shadow:none!important;cursor:not-allowed;transform:none!important}.validation-status{background:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;margin:16px 0;padding:16px}.validation-success{color:#4caf50}.validation-pending,.validation-success{font-size:16px;font-weight:600;text-align:center}.validation-pending{color:#ff9800}.time-remaining{color:#f57c00;font-weight:700}.clock-button.enabled{animation:pulse-button 2s infinite}.clock-button.disabled{cursor:not-allowed;opacity:.6}@keyframes pulse-button{0%{box-shadow:0 6px 20px #00000026}50%{box-shadow:0 6px 25px #4caf504d}to{box-shadow:0 6px 20px #00000026}}@media (max-width:768px){.nfc-validation-section{padding:16px}.btn-scan-nfc{padding:16px;width:100%}}@media (max-width:480px){.validation-status{font-size:14px}.nfc-validation-result{padding:12px}.validation-window-info{font-size:12px}}@media (prefers-color-scheme:dark){.nfc-validation-section{background:#1e1e1e;border-color:#333}.nfc-validation-section h3{color:#64b5f6}.validation-status{background:#252525;border-color:#333}.validation-success{color:#4caf50}.validation-pending{color:#ff9800}.nfc-prompt{color:#aaa}.nfc-validation-result.success{background:#1b3d1b;border-color:#4caf50;color:#4caf50}.nfc-validation-result.error{background:#3c1c1c;border-color:#ef5350;color:#ef5350}.validation-window-info{border-color:#404040}}.modal-overlay{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:modalSlideIn .3s ease;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;max-width:400px;width:100%}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:16px 20px}.modal-header h3{color:#333;font-size:18px;margin:0}.modal-close{background:none;border:none;color:#999;cursor:pointer;font-size:24px;line-height:1;padding:0}.modal-close:hover{color:#333}.modal-body{padding:20px}.warning-text{background:#fff3e0;border-radius:8px;color:#e65100;font-size:16px;font-weight:600;padding:12px;text-align:center}.question-section,.warning-text{margin-bottom:20px}.question-section p{color:#555;font-weight:500;margin:0 0 10px}.button-group{display:flex;gap:10px}.button-group button{background:#fff;border:2px solid #ddd;border-radius:8px;cursor:pointer;flex:1 1;font-size:14px;padding:12px 16px;transition:all .2s}.button-group button:hover{border-color:#1976d2}.button-group button.selected{background:#e3f2fd;border-color:#1976d2;color:#1976d2;font-weight:600}.modal-actions{display:flex;gap:12px;margin-top:24px}.modal-actions button{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:16px;font-weight:600;padding:14px;transition:all .2s}.btn-cancel{background:#f5f5f5;color:#666}.btn-cancel:hover{background:#eee}.btn-confirm{background:#1976d2;color:#fff}.btn-confirm:hover{background:#1565c0}.btn-confirm:disabled{background:#bdbdbd;cursor:not-allowed}.reason-options{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-bottom:16px}.reason-options button{background:#fff;border:2px solid #ddd;border-radius:8px;cursor:pointer;padding:12px;transition:all .2s}.reason-options button:hover{border-color:#1976d2}.reason-options button.selected{background:#e3f2fd;border-color:#1976d2;color:#1976d2;font-weight:600}.custom-reason-input{border:2px solid #ddd;border-radius:8px;box-sizing:border-box;font-size:14px;padding:12px;width:100%}.custom-reason-input:focus{border-color:#1976d2;outline:none}body{align-items:center;background-color:#f3f4f6;display:flex;justify-content:center;margin:0;min-height:100vh}.register-card{background:#fff;border-radius:16px;box-shadow:0 8px 28px #0000001f;box-sizing:border-box;margin:20px auto;max-width:420px;padding:32px 24px;text-align:center;width:100%}.register-card h1{color:#1f2937;font-size:1.4rem;margin:0 0 4px}.register-subtitle{color:#6b7280;font-size:.95rem;margin:0 0 24px}.register-form{display:flex;flex-direction:column;gap:16px;text-align:left}.register-form label{color:#374151;display:flex;flex-direction:column;font-size:.9rem;font-weight:600;gap:6px}.register-form input{border:1.5px solid #d1d5db;border-radius:10px;box-sizing:border-box;font-size:1.05rem;min-height:48px;outline:none;padding:14px 12px;transition:border-color .15s}.register-form input:focus{border-color:#2563eb}.register-error{background:#fee2e2;border-radius:8px;color:#b91c1c;font-size:.9rem;padding:10px 12px}.btn-register{background:#2563eb;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1.05rem;font-weight:700;margin-top:4px;min-height:50px;padding:15px}.btn-register:disabled{background:#9ca3af;cursor:not-allowed}.register-note{color:#9ca3af;font-size:.8rem;line-height:1.5;margin-top:18px}.reg-rejected,.reg-waiting{padding:24px 0}.reg-rejected h2,.reg-waiting h2{color:#1f2937;font-size:1.15rem;margin:16px 0 8px}.reg-rejected p,.reg-waiting p{color:#6b7280;font-size:.92rem;line-height:1.6;margin:4px 0}.reg-hint{color:#9ca3af!important;font-size:.82rem!important}.reg-icon{font-size:2.6rem}.reg-spinner{animation:reg-spin .9s linear infinite;border:4px solid #e5e7eb;border-radius:50%;border-top-color:#2563eb;height:44px;margin:0 auto;width:44px}@keyframes reg-spin{to{transform:rotate(1turn)}}.btn-link{background:none;border:none;color:#2563eb;cursor:pointer;font-size:.9rem;margin-top:20px;min-height:44px;text-decoration:underline}.pwa-install-prompt{animation:slideUp .5s ease-out;background:linear-gradient(135deg,#1976d2,#2196f3);border-radius:12px;bottom:20px;box-shadow:0 8px 32px #1976d24d;color:#fff;max-width:400px;position:fixed;right:20px;width:90%;z-index:9999}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.pwa-install-content{padding:20px;position:relative}.pwa-install-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:16px}.pwa-install-header h3{color:#fff;font-size:18px;font-weight:600;line-height:1.3;margin:0}.pwa-close-btn{background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:24px;line-height:1;padding:0 8px;transition:background-color .2s}.pwa-close-btn:hover{background:#ffffff4d}.pwa-install-body{font-size:14px;line-height:1.5}.pwa-install-body p{color:#fffffff2;margin:0 0 16px}.android-instructions,.ios-instructions{background:#ffffff1a;border-radius:8px;margin-bottom:16px;padding:16px}.android-instructions h4,.ios-instructions h4{color:#fff;font-size:15px;font-weight:600;margin:0 0 12px}.android-instructions ul,.ios-instructions ol{color:#ffffffe6;margin:0;padding-left:20px}.android-instructions li,.ios-instructions li{line-height:1.4;margin-bottom:8px}.android-instructions li{align-items:center;display:flex}.android-instructions li:before{content:"✓";font-weight:700;margin-right:8px}.pwa-install-footer{display:flex;gap:12px;margin-top:16px}.pwa-install-btn{background:#fff;border:none;border-radius:8px;color:#1976d2;cursor:pointer;flex:1 1;font-size:15px;font-weight:600;padding:12px 20px;text-align:center;transition:all .2s}.pwa-install-btn:hover{background:#f0f8ff;box-shadow:0 4px 12px #1976d233;transform:translateY(-1px)}.pwa-dismiss-btn{background:#0000;border:2px solid #ffffff4d;border-radius:8px;color:#fff;cursor:pointer;flex:1 1;font-size:15px;font-weight:600;padding:12px 20px;transition:all .2s}.pwa-dismiss-btn:hover{background:#ffffff1a;border-color:#ffffff80}@media (max-width:480px){.pwa-install-prompt{bottom:10px;left:10px;right:10px;width:auto}.pwa-install-footer{flex-direction:column}.pwa-dismiss-btn,.pwa-install-btn{width:100%}}@media (prefers-color-scheme:dark){.pwa-install-prompt{background:linear-gradient(135deg,#1565c0,#1976d2);box-shadow:0 8px 32px #1565c066}.pwa-install-btn:hover{background:#e3f2fd}}
/*# sourceMappingURL=main.5c2cb8df.css.map*/