:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;--bg: #f7f9fb;--text: #1f2937;--header-bg: #4da3ff;--sidebar-bg: #f5f5f5;--border: #dcdcdc;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--card-bg: #ffffff;--card-border: #e5e7eb;--card-text: #1f2937}.dark{--bg: #0f172a;--text: #e5e7eb;--header-bg: #020617;--sidebar-bg: #020617;--border: #334155;--card-bg: #0b1220;--card-border: #1e293b;--card-text: #e5e7eb}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%}body{background:var(--bg);color:var(--text)}#app{width:100%;height:100%}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}button:focus-visible{outline:2px solid #4da3ff}.status-work{color:#16a34a;background-color:color-mix(in srgb,#16a34a 15%,transparent)}.status-break{color:#f59e0b;background-color:color-mix(in srgb,#f59e0b 16%,transparent)}.status-out{color:#ef4444;background-color:color-mix(in srgb,#ef4444 15%,transparent)}.dot{width:8px;height:8px;border-radius:50%}.dot.status-work{background:#16a34a}.dot.status-break{background:#f59e0b}.dot.status-out{background:#ef4444}.spinner[data-v-672906cd]{border-radius:50%;animation:spin-672906cd .8s linear infinite;margin:auto;display:inline-block}@keyframes spin-672906cd{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-button[data-v-be9328e9]{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:6px;cursor:pointer;font-size:14px;border:none;transition:.2s}.primary[data-v-be9328e9]{background:#4da3ff;color:#fff}.primary[data-v-be9328e9]:hover{background:#1f8bff}.secondary[data-v-be9328e9]{background:#eee;color:#333}.danger[data-v-be9328e9]{background:#ff4d4d;color:#fff}.outline[data-v-be9328e9]{background:#fff;border:1px solid #ccc;color:#333}.text[data-v-be9328e9]{background:none;color:#4da3ff}.small[data-v-be9328e9]{padding:4px 10px;font-size:12px}.large[data-v-be9328e9]{padding:12px 18px;font-size:16px}.disabled[data-v-be9328e9]{opacity:.5;cursor:not-allowed}.block[data-v-be9328e9]{width:100%}.loading[data-v-be9328e9]{cursor:wait}.icon[data-v-be9328e9]{display:inline-flex;align-items:center}.app-input[data-v-8317d1b7]{border:none;border-bottom:2px solid #ddd;padding:10px 4px;font-size:15px;background:transparent;transition:border-color .2s}.app-input[data-v-8317d1b7]:focus{outline:none;border-bottom-color:#4da3ff}.textarea[data-v-fd2d0c88]{width:100%;min-height:80px;border:1px solid #ddd;padding:8px;font-size:14px;resize:vertical}.textarea[data-v-fd2d0c88]:focus{outline:none;border-color:#4da3ff}.select[data-v-9daf04d2]{width:100%;border:1px solid #ddd;padding:8px;font-size:14px}.select[data-v-9daf04d2]:focus{outline:none;border-color:#4da3ff}.checkbox[data-v-12358c13]{display:flex;align-items:center;gap:6px;cursor:pointer}.checkbox input[data-v-12358c13]{cursor:pointer}.label[data-v-12358c13]{font-size:14px}.radio-group[data-v-914f1335]{display:flex;gap:12px}.radio[data-v-914f1335]{display:flex;align-items:center;gap:4px;cursor:pointer}.date-input[data-v-1041e07e]{width:100%;border:1px solid #ddd;padding:8px}.date-input[data-v-1041e07e]:focus{outline:none;border-color:#4da3ff}.time-input[data-v-6a28d37d]{width:100%;border:1px solid #ddd;padding:8px}.time-input[data-v-6a28d37d]:focus{outline:none;border-color:#4da3ff}.number-input[data-v-d8db7f2a]{width:100%;border:1px solid #ddd;padding:8px;font-size:14px}.number-input[data-v-d8db7f2a]:focus{outline:none;border-color:#4da3ff}.table-wrapper[data-v-1289b4ea]{width:100%;position:relative}.summary[data-v-1289b4ea]{margin-bottom:8px;font-size:14px;color:#666}.loading[data-v-1289b4ea]{padding:20px;text-align:center}.app-table[data-v-1289b4ea]{width:100%;border-collapse:separate;border-spacing:0}.app-table th[data-v-1289b4ea]{text-align:left;font-size:12px;color:#888;font-weight:600;padding:12px 16px}.app-table td[data-v-1289b4ea]{padding:14px 16px;background:#fff}.app-table tbody tr[data-v-1289b4ea]{transition:background .2s}.app-table tbody tr[data-v-1289b4ea]:hover{background:#f8fafc}.app-table tr:not(:last-child) td[data-v-1289b4ea]{border-bottom:1px solid #f0f0f0}.sort-icon[data-v-1289b4ea]{margin-left:6px;font-size:12px}.pagination[data-v-1289b4ea]{margin-top:12px;display:flex;justify-content:flex-end}.overlay[data-v-1289b4ea]{position:absolute;inset:0;background:#fff9;display:flex;justify-content:center;align-items:center}.pagination[data-v-69768ec6]{display:flex;gap:12px;align-items:center}button[data-v-69768ec6]:disabled{opacity:.5}.badge[data-v-efb9d310]{padding:4px 8px;font-size:12px;border-radius:4px}.default[data-v-efb9d310]{background:#eee;color:#333}.success[data-v-efb9d310]{background:#4caf50;color:#fff}.danger[data-v-efb9d310]{background:#f44336;color:#fff}.warning[data-v-efb9d310]{background:#ff9800;color:#fff}.card[data-v-31eb3512]{background:#fff;border-radius:8px;padding:16px;box-shadow:0 2px 8px #0000000d}.row[data-v-8db55d14]{display:flex;padding:8px 0;border-bottom:1px solid #eee}.label[data-v-8db55d14]{width:160px;color:#666}.value[data-v-8db55d14]{flex:1}.form-field[data-v-ef979826]{display:flex;flex-direction:column;gap:6px}.label[data-v-ef979826]{font-size:13px;color:#555}.control[data-v-ef979826]{display:flex}.error[data-v-ef979826]{font-size:12px;color:#e53935}.toast[data-v-9b0e1911]{position:fixed;bottom:20px;right:20px;background:#333;color:#fff;padding:10px 14px;border-radius:6px}.toolbar[data-v-3a66ac1e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.left[data-v-3a66ac1e],.right[data-v-3a66ac1e]{display:flex;gap:8px}.header[data-v-e762b28d]{display:flex;justify-content:space-between;margin-bottom:16px}.actions[data-v-e762b28d]{display:flex;gap:8px}.header[data-v-3d637722]{height:72px;background:var(--header-bg);display:flex;justify-content:space-between;align-items:center;padding:0 24px;position:relative;z-index:3000}@media(max-width:768px){.header[data-v-3d637722]{height:56px;padding:0 16px}}.left[data-v-3d637722],.right[data-v-3d637722]{display:flex;align-items:center;gap:14px}.logo[data-v-3d637722]{height:40px}.logo-link[data-v-3d637722]{display:flex;align-items:center}.hamburger[data-v-3d637722]{font-size:22px;background:none;border:none;color:#fff}.user-trigger[data-v-3d637722]{display:flex;align-items:center;gap:6px;cursor:pointer}.avatar[data-v-3d637722]{width:32px;height:32px;border-radius:50%;background:#4f8cff;color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center}.avatar.large[data-v-3d637722]{width:48px;height:48px;font-size:18px}.caret[data-v-3d637722]{opacity:.7}.dropdown[data-v-3d637722]{position:absolute;right:24px;top:80px;background:var(--card-bg);border-radius:12px;width:240px;box-shadow:0 10px 30px #00000059;padding:8px 0}@media(max-width:768px){.dropdown[data-v-3d637722]{left:0;right:0;top:56px;width:100%;border-radius:0 0 16px 16px}}.dropdown-header[data-v-3d637722]{display:flex;gap:12px;padding:12px}.user-info .name[data-v-3d637722]{font-weight:600}.user-info .email[data-v-3d637722]{font-size:12px;opacity:.7}.dropdown button[data-v-3d637722]{width:100%;padding:10px 14px;background:none;border:none;text-align:left;cursor:pointer}.dropdown button[data-v-3d637722]:hover{background:#ffffff14}.dropdown .danger[data-v-3d637722]{color:#ffb3b3}.dropdown hr[data-v-3d637722]{border:none;border-top:1px solid rgba(255,255,255,.1);margin:6px 0}.sidebar[data-v-e0c93043]{width:220px;background:linear-gradient(180deg,#1f2933,#111827);color:#ffffffe6;border-right:1px solid rgba(255,255,255,.08);transition:transform .3s ease;box-shadow:2px 0 12px #00000059}@media(min-width:769px){.sidebar[data-v-e0c93043]{position:relative;height:100%}.sidebar.closed[data-v-e0c93043]{transform:translate(-220px)}.sidebar.open[data-v-e0c93043]{transform:translate(0)}}@media(max-width:768px){.sidebar[data-v-e0c93043]{position:fixed;top:56px;left:0;height:calc(100vh - 56px);z-index:3000;transform:translate(-100%)}.sidebar.open[data-v-e0c93043]{transform:translate(0)}}.menu[data-v-e0c93043]{list-style:none;padding:8px;margin:0}.menu-group[data-v-e0c93043]{margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.08)}.menu-group-header[data-v-e0c93043]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer}.menu-group-header[data-v-e0c93043]:hover{background:#ffffff14}.menu-items[data-v-e0c93043]{margin-left:28px;margin-top:4px;padding-left:10px;border-left:1px solid rgba(255,255,255,.1)}.menu-link.router-link-active[data-v-e0c93043]{color:#fff;font-weight:600}.footer[data-v-e6b8c888]{height:40px;background:#f5f5f5;display:flex;align-items:center;justify-content:center;color:#666;border-top:1px solid #ddd}@media(max-width:768px){.footer[data-v-e6b8c888]{display:none}}.layout[data-v-03be87ba]{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:var(--bg);color:var(--text)}.header[data-v-03be87ba],.footer[data-v-03be87ba]{flex-shrink:0}.body[data-v-03be87ba]{display:flex;flex:1;position:relative;min-height:0}.content[data-v-03be87ba]{flex:1;padding:32px;overflow-y:auto;-webkit-overflow-scrolling:touch;transition:margin-left .3s ease;min-height:0}@media(min-width:769px){.layout-sidebar[data-v-03be87ba]{position:relative;flex-shrink:0;width:220px}.body.sidebar-closed .content[data-v-03be87ba]{margin-left:-220px}}@media(max-width:768px){.layout-sidebar[data-v-03be87ba]{position:fixed;top:var(--header-height, 56px);left:0;width:220px;height:calc(100vh - var(--header-height, 56px));z-index:3000;transition:transform .3s ease}.content[data-v-03be87ba]{padding:20px 20px 96px;margin-left:0!important}}.overlay[data-v-03be87ba]{position:fixed;inset:0;background:#00000073;z-index:2000}.punch-panel[data-v-488797db]{display:flex;flex-direction:column;gap:20px;align-items:center}.buttons[data-v-488797db]{display:flex;flex-direction:column;gap:16px}.row[data-v-488797db]{display:flex;gap:16px}.btn[data-v-488797db]{width:140px;height:52px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;border-radius:10px;line-height:1;transition:background-color .15s ease,box-shadow .15s ease,transform .05s ease}.btn[data-v-488797db]:not(:disabled){box-shadow:0 2px 6px #00000026}.btn[data-v-488797db]:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 4px 10px #0000002e}.in[data-v-488797db]{background:#4caf50;color:#fff}.out[data-v-488797db]{background:#f44336;color:#fff}.break[data-v-488797db]{background:#ff9800;color:#fff}.return[data-v-488797db]{background:#2196f3;color:#fff}.btn[data-v-488797db]:disabled{background:#e0e0e0!important;color:#888!important;box-shadow:none;transform:none;cursor:not-allowed}.error[data-v-488797db]{color:#e53935;text-align:center;font-size:14px}@media(max-width:768px){.punch-panel[data-v-488797db]{align-items:stretch}.row[data-v-488797db]{width:100%}.btn[data-v-488797db]{width:100%;height:64px;font-size:18px}}.punch-bar[data-v-58717317]{position:fixed;left:0;right:0;bottom:0;padding:12px;background:linear-gradient(180deg,#0000,#00000059);z-index:2000}.punch-main[data-v-58717317]{width:100%;height:56px;font-size:18px;font-weight:600;border-radius:12px;border:none;background:#4f8cff;color:#fff}.loading[data-v-58717317]{opacity:.8}.sheet-overlay[data-v-58717317]{position:fixed;inset:0;background:#00000073;z-index:3000}.bottom-sheet[data-v-58717317]{position:fixed;left:0;right:0;bottom:0;background:var(--card-bg);border-radius:16px 16px 0 0;padding:16px;z-index:4000}.sheet-handle[data-v-58717317]{width:40px;height:4px;margin:0 auto 12px;background:#ffffff4d;border-radius:2px}.sheet-title[data-v-58717317]{text-align:center;margin-bottom:12px}.sheet-btn[data-v-58717317]{width:100%;height:52px;margin-bottom:10px;border-radius:10px;border:none;font-size:16px;font-weight:600;color:#fff}.in[data-v-58717317]{background:#4caf50}.out[data-v-58717317]{background:#f44336}.break[data-v-58717317]{background:#ff9800}.return[data-v-58717317]{background:#2196f3}.error[data-v-58717317]{color:#e53935;text-align:center;margin-top:8px}.toast[data-v-58717317]{position:fixed;left:50%;bottom:100px;transform:translate(-50%);padding:12px 18px;border-radius:20px;font-size:14px;font-weight:600;color:#fff;z-index:5000;box-shadow:0 6px 16px #00000059}.dashboard-header[data-v-a4545a25]{padding:16px 32px;margin-bottom:16px;border-bottom:1px solid var(--border)}.datetime-area[data-v-a4545a25]{display:flex;flex-direction:column;gap:6px}.date-line[data-v-a4545a25]{display:flex;gap:8px;align-items:baseline}.date[data-v-a4545a25]{font-size:18px;font-weight:600}.weekday[data-v-a4545a25]{font-size:14px;opacity:.7}.time-line[data-v-a4545a25]{display:flex;align-items:center;gap:12px}.time[data-v-a4545a25]{font-size:32px;font-weight:700}.status-chip[data-v-a4545a25]{padding:4px 14px;border-radius:999px;font-size:14px;font-weight:600}.status-work[data-v-a4545a25]{color:#16a34a;background:color-mix(in srgb,#16a34a 15%,transparent)}.status-break[data-v-a4545a25]{color:#f59e0b;background:color-mix(in srgb,#f59e0b 15%,transparent)}.status-out[data-v-a4545a25]{color:#ef4444;background:color-mix(in srgb,#ef4444 15%,transparent)}.status-none[data-v-a4545a25]{color:#64748b;background:color-mix(in srgb,#64748b 14%,transparent)}.elapsed[data-v-a4545a25]{margin-top:4px;font-size:13px;opacity:.8;font-weight:500}@media(max-width:768px){.dashboard-header[data-v-a4545a25]{text-align:center}.datetime-area[data-v-a4545a25]{align-items:center}.time[data-v-a4545a25]{font-size:24px}.time-line[data-v-a4545a25]{justify-content:center}}.notice-bar[data-v-6592a782]{display:flex;flex-direction:column;gap:8px;padding:12px 32px;margin-bottom:24px}.notice[data-v-6592a782]{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:8px;font-size:14px}.notice[data-v-6592a782]{background:var(--card-bg);border-left:4px solid #60a5fa;color:var(--card-text)}.dark .notice[data-v-6592a782]{background:#0f172a}.notice.warning[data-v-6592a782]{background:#fff7e6;color:#9a6b15}.notice.error[data-v-6592a782]{background:#fdecea;color:#b71c1c}.notice.info[data-v-6592a782]{background:#eef6ff;color:#1e5bb8}.icon[data-v-6592a782]{font-size:18px}.message[data-v-6592a782]{line-height:1.4}@media(max-width:768px){.notice-bar[data-v-6592a782]{padding:8px 16px}}.notice-bar[data-v-c061e1d8]{display:flex;flex-direction:column;gap:8px;padding:12px 32px;margin-bottom:24px}.notice[data-v-c061e1d8]{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:8px;font-size:14px}.notice[data-v-c061e1d8]{background:var(--card-bg);border-left:4px solid #60a5fa;color:var(--card-text)}.dark .notice[data-v-c061e1d8]{background:#0f172a}.notice.warning[data-v-c061e1d8]{background:#fff7e6;color:#9a6b15}.notice.error[data-v-c061e1d8]{background:#fdecea;color:#b71c1c}.notice.info[data-v-c061e1d8]{background:#eef6ff;color:#1e5bb8}.icon[data-v-c061e1d8]{font-size:18px}.message[data-v-c061e1d8]{line-height:1.4}@media(max-width:768px){.notice-bar[data-v-c061e1d8]{padding:8px 16px}}.timeline-card[data-v-52e20d37]{display:flex;flex-direction:column}.status-bar[data-v-52e20d37]{padding:14px 16px;border-radius:10px;margin-bottom:14px;display:flex;justify-content:space-between;align-items:center}.status-bar.work[data-v-52e20d37]{background:#e8f5e9;color:#2e7d32}.status-bar.out[data-v-52e20d37]{background:#fdecea;color:#c62828}.status-bar.break[data-v-52e20d37]{background:#fff3e0;color:#ef6c00}.status-main[data-v-52e20d37]{display:flex;align-items:center;gap:8px}.status-icon[data-v-52e20d37]{font-size:18px}.status-label[data-v-52e20d37]{font-weight:600}.status-time[data-v-52e20d37]{font-size:13px;opacity:.7}.elapsed[data-v-52e20d37]{font-size:12px;margin-top:4px;opacity:.8}.timeline[data-v-52e20d37]{list-style:none;padding:0}.item[data-v-52e20d37]{display:flex;gap:14px;align-items:center;margin-bottom:10px}.time[data-v-52e20d37]{width:64px;font-weight:600}.dot[data-v-52e20d37]{width:8px;height:8px;border-radius:50%}.dot.IN[data-v-52e20d37]{background:#4caf50}.dot.OUT[data-v-52e20d37]{background:#f44336}.dot.BREAK_IN[data-v-52e20d37]{background:#ff9800}.dot.BREAK_OUT[data-v-52e20d37]{background:#2196f3}.dot.work[data-v-52e20d37]{background:#4caf50}.dot.out[data-v-52e20d37]{background:#f44336}.dot.break[data-v-52e20d37]{background:#ff9800}.summary[data-v-52e20d37]{margin-top:12px;display:flex;gap:24px;font-size:13px}.status-badge[data-v-8b977ec2]{position:absolute;top:6px;right:6px;display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;font-size:11px;background:#0000000d}.size-sm[data-v-8b977ec2]{font-size:10px;width:16px;height:16px}.size-md[data-v-8b977ec2]{font-size:12px;width:20px;height:20px}.size-lg[data-v-8b977ec2]{font-size:14px;width:24px;height:24px}.label[data-v-8b977ec2]{margin-left:4px}.status-normal[data-v-8b977ec2]{background:#3b82f626;color:#3b82f6}.status-normal[data-v-8b977ec2]:before{content:"●"}.status-warn[data-v-8b977ec2]{background:#f59e0b26;color:#f59e0b}.status-warn[data-v-8b977ec2]:before{content:"⏰"}.status-error[data-v-8b977ec2]{background:#ef444426;color:#ef4444}.status-error[data-v-8b977ec2]:before{content:"⚠"}.status-pending[data-v-8b977ec2]{background:#94a3b826;color:#94a3b8}.status-pending[data-v-8b977ec2]:before{content:"…"}.event-card[data-v-f236ad94]{position:relative;border-radius:10px;padding:6px 8px;display:flex;align-items:center;justify-content:center;min-height:64px;font-size:12px;font-weight:600}.content[data-v-f236ad94]{text-align:center}.main[data-v-f236ad94]{font-size:16px;font-weight:700}.sub[data-v-f236ad94]{font-size:10px;opacity:.6;margin-top:2px}.badge[data-v-f236ad94]{position:absolute;top:6px;left:6px}.status-bar[data-v-f236ad94]{position:absolute;top:0;left:0;height:4px;width:100%;border-radius:10px 10px 0 0}.row[data-v-f236ad94]{display:flex;justify-content:space-between}.label[data-v-f236ad94]{opacity:.6}.value[data-v-f236ad94]{font-weight:700}.meta[data-v-f236ad94]{font-size:10px;opacity:.7}.alert[data-v-f236ad94]{font-size:10px;color:#b91c1c;font-weight:700}.alert-dot[data-v-f236ad94]{position:absolute;bottom:6px;right:6px;width:6px;height:6px;border-radius:50%}.att-error .alert-dot[data-v-f236ad94]{background:#ef4444}.att-warn .alert-dot[data-v-f236ad94]{background:#f59e0b}.att-normal[data-v-f236ad94]{background:#eef6ff;color:#1e3a8a}.att-normal .status-bar[data-v-f236ad94]{background:#3b82f6}.att-early_leave[data-v-f236ad94]{background:#fffbeb;color:#92400e}.att-early_leave .status-bar[data-v-f236ad94]{background:#f59e0b}.att-missing[data-v-f236ad94]{background:#fff1f2;color:#991b1b}.att-missing .status-bar[data-v-f236ad94]{background:#ef4444}.att-pending[data-v-f236ad94]{background:#f3f4f6;color:#475569}.att-pending .status-bar[data-v-f236ad94]{background:#94a3b8}.att-warn[data-v-f236ad94]{background:#fffbeb;color:#92400e}.att-warn .status-bar[data-v-f236ad94]{background:#f59e0b}.att-error[data-v-f236ad94]{background:#fff1f2;color:#991b1b}.att-error .status-bar[data-v-f236ad94]{background:#ef4444}[data-v-f236ad94] .fc-daygrid-event{width:100%;height:100%}[data-v-f236ad94] .fc-daygrid-event{display:block!important}[data-v-f236ad94] .fc-daygrid-event>div{height:100%}@media(max-width:480px){.modal[data-v-f236ad94]{width:90%;padding:16px}.card-row[data-v-f236ad94]{flex-direction:column;gap:12px}.card-item[data-v-f236ad94]{text-align:left}}[data-v-6e1ded52] .fc-daygrid-day-frame{cursor:pointer}[data-v-6e1ded52] .fc-daygrid-event{width:100%;height:100%}[data-v-6e1ded52] .fc-daygrid-day:hover{background:#2563eb14}.overlay[data-v-dbd634ab]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:99999}.modal[data-v-dbd634ab]{width:420px;background:#fff;border-radius:16px;padding:20px}.header[data-v-dbd634ab]{display:flex;justify-content:space-between;align-items:center}.date[data-v-dbd634ab]{font-size:18px;font-weight:700}.day-status[data-v-dbd634ab]{font-size:12px;opacity:.6}.section[data-v-dbd634ab]{margin-top:16px}.section-title[data-v-dbd634ab]{font-size:12px;margin-bottom:6px;color:#64748b}.text-muted[data-v-dbd634ab]{font-size:13px;color:#475569}.card[data-v-dbd634ab]{margin-top:12px;background:#f8fafc;border-radius:12px;padding:12px}.card-row[data-v-dbd634ab]{display:flex;justify-content:space-between}.card-item[data-v-dbd634ab]{text-align:center;flex:1}.card-item .label[data-v-dbd634ab]{font-size:11px;color:#94a3b8}.card-item strong[data-v-dbd634ab]{font-size:16px;display:block;margin-top:2px}.chips[data-v-dbd634ab]{display:flex;gap:6px;margin-top:6px}.chip[data-v-dbd634ab]{padding:4px 8px;border-radius:999px;font-size:11px}.chip.danger[data-v-dbd634ab]{background:#fee2e2;color:#b91c1c}.chip.warn[data-v-dbd634ab]{background:#fef3c7;color:#92400e}.chip.info[data-v-dbd634ab]{background:#dbeafe;color:#1e3a8a}.actions[data-v-dbd634ab]{margin-top:20px;display:flex;gap:10px}.primary[data-v-dbd634ab]{background:#2563eb;color:#fff;padding:8px 12px;border-radius:8px}.dashboard-inner[data-v-cc95da9e]{margin:0 auto;padding:0 32px 32px;display:flex;flex-direction:column;gap:24px}.dashboard[data-v-cc95da9e]{display:grid;gap:32px}.row[data-v-cc95da9e]{display:grid;grid-template-columns:520px minmax(360px,1fr);gap:32px;align-items:start}.card[data-v-cc95da9e]{background:var(--card-bg);color:var(--card-text);border:1px solid var(--card-border);border-radius:16px;padding:24px}.card h2[data-v-cc95da9e]{font-size:18px;margin-bottom:16px}.card.punch[data-v-cc95da9e]{padding:32px 24px}.placeholder[data-v-cc95da9e]{opacity:.7}@media(min-width:1025px){.dashboard[data-v-cc95da9e]{grid-template-columns:minmax(360px,420px) 1fr;grid-template-areas:"punch   calendar" "cards   calendar";align-items:start}.punch[data-v-cc95da9e]{grid-area:punch}.cards[data-v-cc95da9e]{grid-area:cards;display:flex;flex-direction:column;gap:32px}.calendar[data-v-cc95da9e]{grid-area:calendar}}@media(max-width:1024px){.dashboard-inner[data-v-cc95da9e]{padding:0 16px 96px}.row[data-v-cc95da9e],.dashboard[data-v-cc95da9e]{grid-template-columns:1fr}.cards[data-v-cc95da9e]{display:flex;flex-direction:column;gap:24px}}.login-page[data-v-24d83382]{min-height:100vh;display:flex;font-family:system-ui,-apple-system,BlinkMacSystemFont}.login-left[data-v-24d83382]{flex:1;background:linear-gradient(135deg,#2f80ed,#56ccf2);display:flex;align-items:center;justify-content:center;color:#fff}.brand[data-v-24d83382]{text-align:center;max-width:420px;padding:40px}.brand .logo[data-v-24d83382]{height:72px;margin-bottom:16px}.brand .tagline[data-v-24d83382]{font-size:18px;line-height:1.6;opacity:.95}.login-right[data-v-24d83382]{flex:0 0 480px;display:flex;align-items:center;justify-content:center;background:#fff}.login-card[data-v-24d83382]{width:100%;max-width:380px;padding:40px;background:#fff;border-radius:12px}.card-brand[data-v-24d83382]{display:none;text-align:center;margin-bottom:24px}.card-brand .logo[data-v-24d83382]{height:56px;margin-bottom:8px}.card-brand .tagline[data-v-24d83382]{font-size:14px;color:#666}.field-error input[data-v-24d83382]{border-bottom-color:#e53935!important}.error[data-v-24d83382]{margin-top:16px;color:#e53935;font-size:14px}.error-banner[data-v-24d83382]{background:#fdecea;color:#d32f2f;border:1px solid #f5c2c7;padding:12px;border-radius:6px;margin-bottom:16px;font-size:14px}.caps-warning[data-v-24d83382]{font-size:12px;color:#ff9800;margin-bottom:8px}@keyframes shake-24d83382{0%{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}to{transform:translate(0)}}.login-card.shake[data-v-24d83382]{animation:shake-24d83382 .3s ease-in-out}@media(max-width:768px){.login-page[data-v-24d83382]{flex-direction:column;background:linear-gradient(135deg,#2f80ed,#56ccf2)}.login-left[data-v-24d83382]{display:none}.login-right[data-v-24d83382]{flex:1;background:transparent;padding:40px 0}.login-card[data-v-24d83382]{margin:0 16px;box-shadow:0 24px 48px #00000040}.card-brand[data-v-24d83382]{display:block}}.auto-punch[data-v-19958689]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(135deg,#2f80ed,#56ccf2)}.result-card[data-v-19958689]{width:100%;max-width:480px;background:#fff;border-radius:24px;padding:40px;text-align:center;box-shadow:0 20px 50px #0000002e}.logo[data-v-19958689]{height:64px;margin-bottom:12px}.subtitle[data-v-19958689]{color:#6b7280;font-size:14px;letter-spacing:1px;margin-bottom:32px}.loading-title[data-v-19958689]{color:#1565c0;margin:20px 0}.success-title[data-v-19958689]{color:#2e7d32;margin-bottom:24px;font-size:28px}.error-title[data-v-19958689]{color:#d32f2f;margin-bottom:16px;font-size:28px}.error-message[data-v-19958689]{color:#444;line-height:1.8;margin-bottom:24px}.info-row[data-v-19958689]{margin-top:20px;padding-top:20px;border-top:1px solid #eeeeee}.label[data-v-19958689]{font-size:12px;color:#9ca3af;text-transform:uppercase;letter-spacing:.08em}.value[data-v-19958689]{margin-top:8px;font-size:20px;font-weight:700;color:#1f2937}@media(max-width:768px){.result-card[data-v-19958689]{padding:32px 24px}.logo[data-v-19958689]{height:56px}.success-title[data-v-19958689],.error-title[data-v-19958689]{font-size:24px}.value[data-v-19958689]{font-size:18px}}
