.login-container[data-v-c1485409]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:linear-gradient(135deg,#1976d2,#0d47a1)}.login-card[data-v-c1485409]{background:#fff;border-radius:16px;padding:2rem;width:100%;max-width:360px;box-shadow:0 10px 40px #0003}.logo[data-v-c1485409]{text-align:center;color:#1976d2;margin-bottom:1rem}h1[data-v-c1485409]{text-align:center;font-size:1.5rem;color:#333;margin-bottom:.25rem}.subtitle[data-v-c1485409]{text-align:center;color:#666;margin-bottom:2rem;font-size:.875rem}.form-group[data-v-c1485409]{margin-bottom:1.25rem}.form-group label[data-v-c1485409]{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.form-group input[data-v-c1485409]{width:100%;padding:.875rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .2s}.form-group input[data-v-c1485409]:focus{outline:none;border-color:#1976d2}.error[data-v-c1485409]{color:#d32f2f;font-size:.875rem;margin-bottom:1rem;text-align:center}.btn-primary[data-v-c1485409]{width:100%;padding:1rem;background:#1976d2;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-primary[data-v-c1485409]:hover:not(:disabled){background:#1565c0}.btn-primary[data-v-c1485409]:disabled{background:#90caf9;cursor:not-allowed}[data-v-8d68f327]{box-sizing:border-box}.dashboard[data-v-8d68f327]{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:#f0f4f8}.install-banner[data-v-8d68f327]{position:fixed;top:0;left:0;right:0;background:#fff;padding:1rem;box-shadow:0 4px 20px #00000026;z-index:1000;display:flex;flex-direction:column;gap:.75rem}.install-content[data-v-8d68f327]{display:flex;align-items:center;gap:.75rem}.install-icon[data-v-8d68f327]{width:48px;height:48px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.install-text[data-v-8d68f327]{display:flex;flex-direction:column;gap:.125rem}.install-text strong[data-v-8d68f327]{font-size:1rem;color:#1e293b}.install-text span[data-v-8d68f327]{font-size:.8125rem;color:#64748b}.install-actions[data-v-8d68f327]{display:flex;gap:.75rem}.btn-dismiss[data-v-8d68f327]{flex:1;padding:.75rem;border:2px solid #e2e8f0;background:#fff;border-radius:10px;font-size:.9375rem;font-weight:600;color:#64748b;cursor:pointer}.btn-install[data-v-8d68f327]{flex:1;padding:.75rem;border:none;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;font-size:.9375rem;font-weight:600;color:#fff;cursor:pointer}.header[data-v-8d68f327]{position:relative;padding:1rem 1.25rem;padding-top:calc(1rem + env(safe-area-inset-top));color:#fff;overflow:hidden}.header-bg[data-v-8d68f327]{position:absolute;inset:0;background:linear-gradient(135deg,#667eea,#764ba2);z-index:0}.header-content[data-v-8d68f327]{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center}.user-section[data-v-8d68f327]{display:flex;align-items:center;gap:.875rem}.avatar[data-v-8d68f327]{width:40px;height:40px;background:#fff3;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.greeting[data-v-8d68f327]{display:flex;flex-direction:column}.greeting-text[data-v-8d68f327]{font-size:.8125rem;opacity:.9}.user-name[data-v-8d68f327]{font-size:1.25rem;font-weight:700}.btn-logout[data-v-8d68f327]{width:44px;height:44px;background:#ffffff26;border:none;border-radius:12px;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background .2s}.btn-logout[data-v-8d68f327]:hover{background:#ffffff40}.date-display[data-v-8d68f327]{position:relative;z-index:1;display:flex;align-items:center;gap:.5rem;margin-top:.5rem;font-size:.8125rem;opacity:.9}.offline-section[data-v-8d68f327]{padding:0 1rem;margin-top:-8px;margin-bottom:8px;position:relative;z-index:2}.main[data-v-8d68f327]{flex:1;padding:1rem;padding-bottom:calc(90px + env(safe-area-inset-bottom));margin-top:-16px;position:relative;z-index:1}.status-card[data-v-8d68f327]{position:relative;border-radius:16px;padding:.875rem;margin-bottom:1rem;overflow:hidden;box-shadow:0 4px 20px #0000001a}.status-bg[data-v-8d68f327]{position:absolute;inset:0;z-index:0}.status-out .status-bg[data-v-8d68f327]{background:linear-gradient(135deg,#f1f5f9,#e2e8f0)}.status-in .status-bg[data-v-8d68f327]{background:linear-gradient(135deg,#dcfce7,#bbf7d0)}.status-break .status-bg[data-v-8d68f327]{background:linear-gradient(135deg,#fef3c7,#fde68a)}.status-content[data-v-8d68f327]{position:relative;z-index:1;display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.status-icon[data-v-8d68f327]{width:40px;height:40px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000001a}.status-dot[data-v-8d68f327]{width:16px;height:16px;border-radius:50%;background:#94a3b8}.status-in .status-dot[data-v-8d68f327]{background:#22c55e}.status-break .status-dot[data-v-8d68f327]{background:#f59e0b}.status-dot.pulse[data-v-8d68f327]{animation:pulse-8d68f327 2s ease-in-out infinite}@keyframes pulse-8d68f327{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.7}}.status-info[data-v-8d68f327]{flex:1;display:flex;flex-direction:column}.status-label[data-v-8d68f327]{font-size:.75rem;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.status-text[data-v-8d68f327]{font-size:1.25rem;font-weight:700;color:#1e293b}.status-time[data-v-8d68f327]{display:flex;flex-direction:column;align-items:flex-end}.time-label[data-v-8d68f327]{font-size:.75rem;color:#64748b}.time-value[data-v-8d68f327]{font-size:1.125rem;font-weight:700;color:#1e293b}.break-section-card[data-v-8d68f327]{position:relative;z-index:1;display:flex;align-items:center;gap:.75rem;background:#fff;border-radius:12px;padding:.625rem;margin-bottom:.625rem;border:2px solid #e2e8f0;transition:all .3s ease}.break-section-card.active[data-v-8d68f327]{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#f59e0b}.break-progress[data-v-8d68f327]{position:relative;width:60px;height:60px;flex-shrink:0}.break-progress-ring[data-v-8d68f327]{transform:rotate(-90deg);width:100%;height:100%}.break-progress-bg[data-v-8d68f327]{fill:none;stroke:#e2e8f0;stroke-width:8;transition:stroke .3s ease}.break-section-card.active .break-progress-bg[data-v-8d68f327]{stroke:#fde68a}.break-progress-fill[data-v-8d68f327]{fill:none;stroke:#94a3b8;stroke-width:8;stroke-linecap:round;stroke-dasharray:264;transition:stroke-dashoffset .5s ease,stroke .3s ease}.break-section-card.active .break-progress-fill[data-v-8d68f327]{stroke:#f59e0b}.break-progress-text[data-v-8d68f327]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.break-progress-time[data-v-8d68f327]{font-size:1rem;font-weight:700;color:#64748b;font-family:SF Mono,Fira Code,monospace;line-height:1;transition:color .3s ease}.break-section-card.active .break-progress-time[data-v-8d68f327],.break-progress-time.live[data-v-8d68f327]{color:#92400e}.break-progress-label[data-v-8d68f327]{font-size:.5rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;transition:color .3s ease}.break-section-card.active .break-progress-label[data-v-8d68f327]{color:#b45309}.break-info-section[data-v-8d68f327]{flex:1;display:flex;flex-direction:column;gap:.5rem}.break-info-detail[data-v-8d68f327]{display:flex;flex-direction:column}.break-info-value[data-v-8d68f327]{font-size:1.125rem;font-weight:700;color:#1e293b;transition:color .3s ease}.break-section-card.active .break-info-value[data-v-8d68f327]{color:#92400e}.break-info-label[data-v-8d68f327]{font-size:.75rem;color:#64748b;transition:color .3s ease}.break-section-card.active .break-info-label[data-v-8d68f327]{color:#b45309}.worked-section[data-v-8d68f327]{position:relative;z-index:1;display:flex;align-items:center;gap:.75rem;background:#fff;border-radius:12px;padding:.625rem}.worked-progress[data-v-8d68f327]{position:relative;width:60px;height:60px;flex-shrink:0}.progress-ring[data-v-8d68f327]{transform:rotate(-90deg);width:100%;height:100%}.progress-bg[data-v-8d68f327]{fill:none;stroke:#e2e8f0;stroke-width:8}.progress-fill[data-v-8d68f327]{fill:none;stroke:url(#gradient);stroke-width:8;stroke-linecap:round;stroke-dasharray:264;transition:stroke-dashoffset .5s ease}.status-in .progress-fill[data-v-8d68f327]{stroke:#22c55e}.status-break .progress-fill[data-v-8d68f327]{stroke:#f59e0b}.status-out .progress-fill[data-v-8d68f327]{stroke:#667eea}.progress-text[data-v-8d68f327]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.progress-hours[data-v-8d68f327]{font-size:1rem;font-weight:700;color:#1e293b;line-height:1}.progress-label[data-v-8d68f327]{font-size:.625rem;color:#64748b;text-transform:uppercase}.worked-info[data-v-8d68f327]{flex:1;display:flex;flex-direction:column;gap:.5rem}.worked-detail[data-v-8d68f327]{display:flex;flex-direction:column}.detail-value[data-v-8d68f327]{font-size:1.125rem;font-weight:700;color:#1e293b}.detail-value.live[data-v-8d68f327]{color:#667eea;font-family:SF Mono,Fira Code,monospace}.detail-label[data-v-8d68f327]{font-size:.75rem;color:#64748b}.action-section[data-v-8d68f327]{margin-bottom:.875rem}.btn-main[data-v-8d68f327]{width:100%;padding:.875rem 1rem;border:none;border-radius:14px;display:flex;align-items:center;gap:.75rem;cursor:pointer;transition:all .3s;box-shadow:0 6px 20px #00000026}.btn-main[data-v-8d68f327]:disabled{opacity:.7;cursor:not-allowed}.btn-main[data-v-8d68f327]:active:not(:disabled){transform:scale(.98)}.btn-main.clock-in[data-v-8d68f327]{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.btn-main.clock-out[data-v-8d68f327]{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.btn-main.end-break[data-v-8d68f327]{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.btn-icon[data-v-8d68f327]{width:48px;height:48px;background:#fff3;border-radius:12px;display:flex;align-items:center;justify-content:center}.btn-icon svg[data-v-8d68f327]{width:28px;height:28px}.btn-text[data-v-8d68f327]{font-size:1.125rem;font-weight:700}.btn-hint[data-v-8d68f327]{display:none;font-size:.75rem;opacity:.8}@media(min-width:400px){.btn-text[data-v-8d68f327]{font-size:1.25rem}.btn-hint[data-v-8d68f327]{display:block;position:absolute;right:1rem;font-size:.75rem}}@media(min-width:480px){.btn-hint[data-v-8d68f327]{right:1.5rem;font-size:.875rem}}.break-section[data-v-8d68f327]{margin-bottom:1.5rem}.section-title[data-v-8d68f327]{display:block;font-size:.8125rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.75rem}.break-buttons[data-v-8d68f327]{display:flex;gap:.75rem}.btn-break[data-v-8d68f327]{flex:1;display:flex;align-items:center;gap:.75rem;padding:1rem;background:#fff;border:2px solid #e2e8f0;border-radius:14px;cursor:pointer;transition:all .2s}.btn-break[data-v-8d68f327]:hover:not(:disabled){border-color:#667eea;background:#f8fafc}.btn-break[data-v-8d68f327]:disabled{opacity:.5;cursor:not-allowed}.break-icon[data-v-8d68f327]{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center}.break-icon.generic[data-v-8d68f327]{background:#f3e8ff;color:#9333ea}.break-icon.short[data-v-8d68f327]{background:#dbeafe;color:#2563eb}.break-icon.lunch[data-v-8d68f327]{background:#fef3c7;color:#d97706}.break-info[data-v-8d68f327]{display:flex;flex-direction:column;align-items:flex-start}.break-name[data-v-8d68f327]{font-size:.9375rem;font-weight:600;color:#1e293b}.break-desc[data-v-8d68f327]{font-size:.75rem;color:#64748b}.error-card[data-v-8d68f327]{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;color:#dc2626;font-size:.875rem}.bottom-nav[data-v-8d68f327]{position:fixed;bottom:0;left:0;right:0;display:flex;background:#fff;box-shadow:0 -4px 20px #00000014;padding:.75rem 1rem;padding-bottom:calc(.75rem + env(safe-area-inset-bottom));z-index:100}.nav-item[data-v-8d68f327]{flex:1;display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem;text-decoration:none;color:#94a3b8;font-size:.6875rem;font-weight:500;transition:all .2s}.nav-item.router-link-active[data-v-8d68f327]{color:#667eea}.nav-item.router-link-active svg[data-v-8d68f327]{transform:scale(1.1)}.slide-down-enter-active[data-v-8d68f327],.slide-down-leave-active[data-v-8d68f327]{transition:all .3s ease}.slide-down-enter-from[data-v-8d68f327],.slide-down-leave-to[data-v-8d68f327]{transform:translateY(-100%);opacity:0}.fade-enter-active[data-v-8d68f327],.fade-leave-active[data-v-8d68f327]{transition:opacity .3s ease}.fade-enter-from[data-v-8d68f327],.fade-leave-to[data-v-8d68f327]{opacity:0}.offline-banner[data-v-84c54c5e]{position:fixed;top:0;left:0;right:0;padding:10px 16px;z-index:1000;font-size:14px;font-weight:500}.offline-banner.offline[data-v-84c54c5e]{background:linear-gradient(135deg,#ff6b6b,#ee5a5a);color:#fff}.offline-banner.pending[data-v-84c54c5e]{background:linear-gradient(135deg,#ffc107,#ffb300);color:#333}.offline-banner.error[data-v-84c54c5e]{background:linear-gradient(135deg,#ff6b6b,#ee5a5a);color:#fff}.banner-content[data-v-84c54c5e]{display:flex;align-items:center;justify-content:center;gap:8px;max-width:600px;margin:0 auto}.icon[data-v-84c54c5e]{font-size:16px}.text[data-v-84c54c5e]{flex:1;text-align:center}.sync-btn[data-v-84c54c5e]{background:#ffffffe6;border:none;padding:6px 12px;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.sync-btn[data-v-84c54c5e]:active{transform:scale(.98)}.slide-enter-active[data-v-84c54c5e],.slide-leave-active[data-v-84c54c5e]{transition:transform .3s ease,opacity .3s ease}.slide-enter-from[data-v-84c54c5e],.slide-leave-to[data-v-84c54c5e]{transform:translateY(-100%);opacity:0}*{box-sizing:border-box}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.5;font-weight:400;color:#333;background-color:#f5f5f5;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;min-height:100vh;overflow-x:hidden}body{display:block}#app{min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit}@supports (padding: env(safe-area-inset-bottom)){.nav{padding-bottom:calc(.5rem + env(safe-area-inset-bottom))}}::-webkit-scrollbar{width:0;background:transparent}
