.calendar-root[data-v-79971f8d]{width:100%}.calendar-header[data-v-79971f8d]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calendar-title[data-v-79971f8d]{font-size:1.3rem;font-weight:700;color:#42b983}.calendar-nav[data-v-79971f8d]{background:none;border:none;font-size:1.3rem;color:#42b983;cursor:pointer;padding:0 10px;transition:color .2s}.calendar-nav[data-v-79971f8d]:hover{color:#2c8c6d}.calendar-grid[data-v-79971f8d]{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-day[data-v-79971f8d]{text-align:center;padding:8px 0;font-size:1.05rem;border-radius:6px;min-width:36px;min-height:36px;background:#f8fafc;color:#333}.calendar-day-label[data-v-79971f8d]{font-weight:700;color:#42b983;background:#f0f9f5}.calendar-day.today[data-v-79971f8d]{background:#42b983;color:#fff;font-weight:700}.loading[data-v-2aba11c8],.error[data-v-2aba11c8],.no-data[data-v-2aba11c8]{text-align:center;padding:20px;color:#666}.error[data-v-2aba11c8]{color:#e74c3c}.table-container[data-v-2aba11c8]{overflow-x:auto;width:100%}.commute-table[data-v-2aba11c8]{width:100%;border-collapse:collapse;table-layout:fixed}.commute-table th[data-v-2aba11c8],.commute-table td[data-v-2aba11c8]{padding:.25rem;border-bottom:1px solid #eee;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.commute-table th[data-v-2aba11c8]{border:2px solid #eee;background-color:#f8f9fa;font-weight:600;color:#333;text-align:center}.commute-table tr[data-v-2aba11c8]:hover{background-color:#f9f9f9}.commute-table th.col-date[data-v-2aba11c8],.commute-table td.col-date[data-v-2aba11c8]{width:12%;text-align:center}.commute-table th.col-checkin[data-v-2aba11c8],.commute-table td.col-checkin[data-v-2aba11c8],.commute-table th.col-checkout[data-v-2aba11c8],.commute-table td.col-checkout[data-v-2aba11c8],.commute-table th.col-worktime[data-v-2aba11c8],.commute-table td.col-worktime[data-v-2aba11c8]{width:15%;text-align:center}.commute-table th.col-status[data-v-2aba11c8],.commute-table td.col-status[data-v-2aba11c8],.commute-table th.col-actions[data-v-2aba11c8],.commute-table td.col-actions[data-v-2aba11c8]{width:12%;text-align:center}.date-display[data-v-2aba11c8]{display:flex;flex-direction:column;line-height:1.2;align-items:center}.date-part[data-v-2aba11c8]{font-weight:500;color:#333}.date-part.muted[data-v-2aba11c8]{color:#9ca3af;font-size:.85em}.day-part[data-v-2aba11c8]{font-size:.8em;color:#666;margin-top:2px}.day-part.saturday[data-v-2aba11c8]{color:#3498db;font-weight:600}.day-part.sunday[data-v-2aba11c8]{color:#e74c3c;font-weight:600}.date-original[data-v-2aba11c8]{font-weight:500;color:#333}.date-my[data-v-2aba11c8]{font-size:.8em;color:#666;margin-top:2px}.date-my.highlight[data-v-2aba11c8]{color:#3498db;font-weight:700;font-size:1em}.time-display[data-v-2aba11c8]{font-weight:500;color:#333}.time-display.late[data-v-2aba11c8]{color:#e74c3c;font-weight:600}.worktime-display[data-v-2aba11c8]{font-weight:500;color:#333}.status-badge[data-v-2aba11c8]{display:inline-block;padding:4px 12px;border-radius:16px;font-size:12px;font-weight:600;text-align:center}.status-badge.normal[data-v-2aba11c8]{background-color:#42b98326;color:#42b983}.status-badge.late[data-v-2aba11c8]{background-color:#f8797926;color:#e74c3c}.status-badge.working[data-v-2aba11c8]{background-color:#3498db26;color:#3498db}.status-badge.absent[data-v-2aba11c8]{background-color:#95a5a626;color:#95a5a6}.status-badge.overtime[data-v-2aba11c8]{background-color:#e67e2238;color:#e67e22}.status-badge.none[data-v-2aba11c8]{background-color:#95a5a626;color:#95a5a6}.commute-table tr.expanded[data-v-2aba11c8]{background-color:#f5f9ff}.commute-table tr.detail-row[data-v-2aba11c8]{background-color:#f8fafc}.detail-content[data-v-2aba11c8]{padding:12px 16px!important;border-top:none!important}.detail-grid[data-v-2aba11c8]{display:grid;grid-template-columns:1fr;gap:12px}.detail-item[data-v-2aba11c8]{font-size:14px;display:flex;gap:12px}.detail-label[data-v-2aba11c8]{font-weight:600;color:#555;min-width:80px}.detail-value[data-v-2aba11c8]{flex:1}.note-content[data-v-2aba11c8]{white-space:pre-wrap;line-height:1.5}.action-button[data-v-2aba11c8]{background:none;border:none;cursor:pointer;padding:6px;border-radius:4px;color:#666;transition:all .2s}.action-button[data-v-2aba11c8]:hover{background-color:#f0f0f0;color:#42b983}.edit-button[data-v-2aba11c8]:hover{background-color:#dbeafe;color:#1d4ed8}.commute-table th.col-actions[data-v-2aba11c8],.commute-table td.col-actions[data-v-2aba11c8]{min-width:120px}.summary-section[data-v-2aba11c8]{margin-top:30px;padding:20px;background-color:#f8fafc;border-radius:8px;box-shadow:0 2px 8px #0000000a}.summary-section h3[data-v-2aba11c8]{margin-bottom:20px;color:#333;font-size:1.2rem}.summary-stats[data-v-2aba11c8]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.stat-item[data-v-2aba11c8]{text-align:center;padding:15px;background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000f}.stat-label[data-v-2aba11c8]{font-size:.9rem;color:#666;margin-bottom:8px}.stat-value[data-v-2aba11c8]{font-size:1.5rem;font-weight:600;color:#333}.stat-value.late-count[data-v-2aba11c8]{color:#e74c3c}.form-group[data-v-2aba11c8]{margin-bottom:16px}.form-group label[data-v-2aba11c8]{display:block;margin-bottom:6px;font-weight:600;color:#333}.cancel-button[data-v-2aba11c8],.save-button[data-v-2aba11c8]{padding:10px 20px;border-radius:6px;font-weight:600;cursor:pointer;transition:all .3s}.cancel-button[data-v-2aba11c8]{background-color:#f1f1f1;color:#666;border:none}.cancel-button[data-v-2aba11c8]:hover{background-color:#e0e0e0}.save-button[data-v-2aba11c8]{background-color:#42b983;color:#fff;border:none}.save-button[data-v-2aba11c8]:hover{background-color:#3aa876}.select-wrapper[data-v-2aba11c8]{position:relative;flex:1;min-width:120px}.select-input[data-v-2aba11c8]{width:100%;padding:10px 30px 10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;transition:all .3s;background-color:#fff;color:#333;appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer}.select-input[data-v-2aba11c8]:focus{border-color:#42b983;box-shadow:0 0 0 2px #42b98333;outline:none}.select-arrow[data-v-2aba11c8]{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#666;pointer-events:none;font-size:10px;transition:all .3s}.select-wrapper:hover .select-arrow[data-v-2aba11c8]{color:#42b983}.select-wrapper:hover .select-input[data-v-2aba11c8]{border-color:#42b983}@media (max-width: 768px){.summary-stats[data-v-2aba11c8]{grid-template-columns:repeat(2,1fr);gap:15px}.stat-item[data-v-2aba11c8]{padding:12px}.stat-value[data-v-2aba11c8]{font-size:1.2rem}.commute-table th[data-v-2aba11c8],.commute-table td[data-v-2aba11c8]{padding:8px;font-size:13px;white-space:normal;text-overflow:initial}.detail-item[data-v-2aba11c8]{flex-direction:column;gap:6px}.detail-label[data-v-2aba11c8]{min-width:auto}}@media (max-width: 480px){.commute-table thead[data-v-2aba11c8]{display:none}.commute-table[data-v-2aba11c8],.commute-table tbody[data-v-2aba11c8],.commute-table tr[data-v-2aba11c8]{display:block;width:100%}.table-container[data-v-2aba11c8]{overflow-x:visible}.commute-table tr[data-v-2aba11c8]{margin-bottom:16px;border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px;position:relative;background-color:#fff;box-shadow:0 4px 12px #0f172a0d}.commute-table td[data-v-2aba11c8]{display:flex;align-items:flex-start;gap:12px;border:none;padding:6px 0;text-align:left;position:relative;white-space:normal;overflow:visible;text-overflow:initial;word-break:keep-all}.commute-table td[data-v-2aba11c8]:before{content:attr(data-label);flex:0 0 88px;font-weight:600;font-size:12px;color:#6b7280;text-align:left;line-height:1.4}.commute-table td.col-actions[data-v-2aba11c8]{gap:8px}.commute-table td.col-actions[data-v-2aba11c8]:before{margin-top:4px}.commute-table td.col-actions .action-button[data-v-2aba11c8]{margin-right:0}.commute-table tr.detail-row[data-v-2aba11c8]{background:#f8fafc;box-shadow:none}.commute-table tr.detail-row td[data-v-2aba11c8]{display:block;padding:8px 10px!important}.commute-table tr.detail-row td[data-v-2aba11c8]:before{display:none}.summary-stats[data-v-2aba11c8]{grid-template-columns:1fr}}.leave-info-section[data-v-aa781c93]{width:100%;margin-top:24px;background:#f8fafc;border-radius:8px;padding:16px 10px 10px;box-shadow:0 1px 4px #42b9830f}.leave-info-title[data-v-aa781c93]{font-size:1.1rem;color:#42b983;font-weight:700;margin-bottom:10px}.leave-info-list[data-v-aa781c93]{list-style:none;padding:0;margin:0}.leave-info-list li[data-v-aa781c93]{padding:6px 0;border-bottom:1px solid #e0e0e0;color:#444;font-size:.98rem;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.leave-info-list li[data-v-aa781c93]:last-child{border-bottom:none}.leave-name[data-v-aa781c93]{font-weight:600;color:#2c8c6d}.leave-date[data-v-aa781c93]{color:#666}.leave-type[data-v-aa781c93]{color:#42b983;font-weight:500}.leave-reason[data-v-aa781c93]{color:#888}.leave-none[data-v-aa781c93]{color:#aaa;text-align:center;width:100%;padding:10px 0}.leave-info-section[data-v-e67aaebd]{width:100%;margin-top:24px;background:#f8fafc;border-radius:8px;padding:16px 10px 10px;box-shadow:0 1px 4px #42b9830f}.leave-info-title[data-v-e67aaebd]{font-size:1.1rem;color:#42b983;font-weight:700;margin-bottom:10px}.leave-info-list[data-v-e67aaebd]{list-style:none;padding:0;margin:0}.leave-info-list li[data-v-e67aaebd]{padding:6px 0;border-bottom:1px solid #e0e0e0;color:#444;font-size:.98rem;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.leave-info-list li[data-v-e67aaebd]:last-child{border-bottom:none}.leave-name[data-v-e67aaebd]{font-weight:600;color:#2c8c6d}.leave-date[data-v-e67aaebd]{color:#666}.leave-type[data-v-e67aaebd]{color:#42b983;font-weight:500}.leave-reason[data-v-e67aaebd]{color:#888}.leave-none[data-v-e67aaebd]{color:#aaa;text-align:center;width:100%;padding:10px 0}.private-content-container[data-v-3ff62182]{position:relative;max-width:1200px;margin:40px auto 0;padding:32px 24px;border-radius:32px;background:#ffffffd1;box-shadow:0 40px 80px #0f172a24;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);overflow:hidden}.private-content-flex[data-v-3ff62182]{display:flex;gap:32px;align-items:flex-start;flex-wrap:wrap}.content-card[data-v-3ff62182]{background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:25px;margin-bottom:20px;flex:1 1 340px;min-width:0}h3[data-v-3ff62182]{color:#42b983;margin:40px 0 0}.private-data[data-v-3ff62182]{padding:10px;display:flex;justify-content:flex-end;font-size:.8rem}.login-icon[data-v-3ff62182]{font-size:1.3rem;color:#42b983;margin-right:4px}.login-label[data-v-3ff62182]{color:#2c8c6d;font-weight:600;margin-right:6px}.login-time[data-v-3ff62182]{white-space:nowrap;font-weight:500;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}h4[data-v-3ff62182]{color:#555;margin-bottom:10px}p[data-v-3ff62182]{margin:8px 0;color:#666}ul[data-v-3ff62182]{list-style-type:none;padding:0}li[data-v-3ff62182]{display:inline-block;margin:0 10px}a[data-v-3ff62182]{color:#42b983}.api-test-section[data-v-3ff62182]{margin:30px 0;padding:20px;background-color:#f5f5f5;border-radius:8px;text-align:left}.api-buttons[data-v-3ff62182]{margin-bottom:20px}.api-button[data-v-3ff62182]{background-color:#42b983;color:#fff;border:none;padding:10px 15px;margin-right:10px;border-radius:4px;cursor:pointer;font-weight:700}.api-button[data-v-3ff62182]:hover{background-color:#3aa876}.loading[data-v-3ff62182]{margin:10px 0;font-style:italic;color:#666}.error[data-v-3ff62182]{margin:10px 0;padding:10px;background-color:#ffebee;border-left:4px solid #f44336;color:#d32f2f}.response-data[data-v-3ff62182]{margin:10px 0;padding:15px;background-color:#e8f5e9;border-radius:4px;overflow-x:auto}.response-data pre[data-v-3ff62182]{margin:0}.items-list[data-v-3ff62182]{margin:10px 0}.items-list ul[data-v-3ff62182]{list-style-type:disc;padding-left:20px}.items-list li[data-v-3ff62182]{display:block;margin:5px 0}.quote-section[data-v-3ff62182]{background:linear-gradient(120deg,#e0f7fa,#f8fafc);border-radius:14px;box-shadow:0 2px 12px #42b98314;padding:24px 20px 18px;display:flex;align-items:center;justify-content:center;min-height:70px;position:relative}.quote-text[data-v-3ff62182]{font-size:1.25rem;color:#2c8c6d;font-weight:600;text-align:center;margin:0;line-height:1.7;letter-spacing:-.01em;display:flex;align-items:center;justify-content:center}.quote-icon[data-v-3ff62182]{font-size:2.2rem;color:#42b983;margin:0 10px;font-family:serif;opacity:.25}.staff-features[data-v-3ff62182]{padding:10px 0 0}.staff-title[data-v-3ff62182]{font-size:1.2rem;font-weight:700;color:#42b983;margin-bottom:18px}.staff-tabs[data-v-3ff62182]{display:flex;gap:.2rem}.staff-tab[data-v-3ff62182]{background:#f5f5f5;border:none;border-radius:.5rem .5rem 0 0;padding:.5rem 1rem;transition:background .2s ease,color .2s ease,box-shadow .2s ease}.staff-tab.active[data-v-3ff62182]{background-color:#42b983;color:#fff;font-weight:700}.staff-tab-content[data-v-3ff62182]{background:#fff;border-radius:0 0 8px 8px;box-shadow:0 2px 8px #0000000a}.calendar-card[data-v-3ff62182]{min-width:340px;max-width:400px;flex:1 1 340px;background:#fff;border-radius:12px;box-shadow:0 2px 12px #00000014;padding:28px 18px 24px;margin-top:0;display:flex;flex-direction:column;align-items:center;min-width:0}.calendar-root[data-v-3ff62182]{width:100%}.calendar-header[data-v-3ff62182]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calendar-title[data-v-3ff62182]{font-size:1.3rem;font-weight:700;color:#42b983}.calendar-nav[data-v-3ff62182]{background:none;border:none;font-size:1.3rem;color:#42b983;cursor:pointer;padding:0 10px;transition:color .2s}.calendar-nav[data-v-3ff62182]:hover{color:#2c8c6d}.calendar-grid[data-v-3ff62182]{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-day[data-v-3ff62182]{text-align:center;padding:8px 0;font-size:1.05rem;border-radius:6px;min-width:36px;min-height:36px;background:#f8fafc;color:#333}.calendar-day-label[data-v-3ff62182]{font-weight:700;color:#42b983;background:#f0f9f5}.calendar-day.today[data-v-3ff62182]{background:#42b983;color:#fff;font-weight:700}.info-flex-row[data-v-3ff62182]{display:flex;flex-direction:column;gap:16px;width:100%}.info-flex-row[data-v-3ff62182]>*{width:100%;min-width:0}@media (max-width: 900px){.private-content-flex[data-v-3ff62182]{flex-direction:column;gap:18px}.content-card[data-v-3ff62182],.calendar-card[data-v-3ff62182]{max-width:100%;min-width:0;width:100%;box-sizing:border-box;margin-bottom:0}.calendar-card[data-v-3ff62182]{padding:18px 6px}.info-flex-row[data-v-3ff62182]{gap:12px}}@media (max-width: 600px){.private-content-container[data-v-3ff62182]{padding:0}.content-card[data-v-3ff62182],.calendar-card[data-v-3ff62182]{padding:12px 4px}}.pointer-events-none[data-v-93e00677]{pointer-events:none}.user-info[data-v-2692b8f0]{border-radius:8px;padding:4px 8px;transition:all .2s ease;background-color:#f3f4f680}.dark .user-info[data-v-2692b8f0]{background-color:#37415180}.profile-image[data-v-2692b8f0]{width:32px;height:32px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:2px solid #fff;box-shadow:0 1px 3px #0000001a}.dark .profile-image[data-v-2692b8f0]{border-color:#374151}.profile-placeholder[data-v-2692b8f0]{width:32px;height:32px;border-radius:50%;background-color:#e5e7eb;border:2px solid #fff;box-shadow:0 1px 3px #0000001a}.dark .profile-placeholder[data-v-2692b8f0]{background-color:#4b5563;border-color:#374151}.user-details h3[data-v-2692b8f0],.user-details p[data-v-2692b8f0]{margin:0;line-height:1.2}.logout-btn[data-v-2692b8f0]{background-color:#ef4444;color:#fff;border:none;border-radius:6px;padding:4px 8px;font-size:12px;cursor:pointer;transition:background-color .2s;display:flex;align-items:center;justify-content:center}.logout-btn[data-v-2692b8f0]:hover{background-color:#dc2626}@media (max-width: 640px){.logout-btn[data-v-2692b8f0]{padding:4px 6px}}.brand-name[data-v-2692b8f0]{font-weight:600;letter-spacing:-.3px;background:linear-gradient(135deg,#1e3a8a,#374151,#1f2937);-webkit-background-clip:text;background-clip:text;color:transparent;transition:all .3s cubic-bezier(.4,0,.2,1);font-family:Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif;text-shadow:0 1px 2px rgba(0,0,0,.1)}.brand-name[data-v-2692b8f0]:hover{transform:translateY(-1px);background:linear-gradient(135deg,#1e40af,#4b5563,#111827);-webkit-background-clip:text;background-clip:text;filter:brightness(1.1)}.dark .brand-name[data-v-2692b8f0]{background:linear-gradient(135deg,#60a5fa,#9ca3af,#e5e7eb);-webkit-background-clip:text;background-clip:text}.dark .brand-name[data-v-2692b8f0]:hover{background:linear-gradient(135deg,#93c5fd,#d1d5db,#f9fafb);-webkit-background-clip:text;background-clip:text}@media (max-width: 1154px){.brand-name[data-v-2692b8f0]{display:none!important}}.toast-container{position:fixed;top:1rem;right:1rem;z-index:9999;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;margin-bottom:.5rem;border-radius:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;max-width:24rem;min-width:16rem}.toast-success{background-color:#10b981f2;color:#fff;border-left:4px solid #059669}.toast-error{background-color:#ef4444f2;color:#fff;border-left:4px solid #dc2626}.toast-warning{background-color:#f59e0bf2;color:#fff;border-left:4px solid #d97706}.toast-info{background-color:#3b82f6f2;color:#fff;border-left:4px solid #2563eb}.toast-icon{flex-shrink:0;margin-top:.125rem}.toast-content{flex:1;min-width:0}.toast-message{font-weight:500;font-size:.875rem;line-height:1.25rem}.toast-description{font-size:.75rem;line-height:1rem;margin-top:.25rem;opacity:.9}.toast-close{flex-shrink:0;padding:.25rem;border-radius:.25rem;background:transparent;border:none;color:currentColor;cursor:pointer;opacity:.7;transition:opacity .2s}.toast-close:hover{opacity:1}.toast-closable{cursor:pointer}.toast-enter-active{transition:all .3s ease-out}.toast-leave-active{transition:all .3s ease-in}.toast-enter-from,.toast-leave-to{transform:translate(100%);opacity:0}.toast-move{transition:transform .3s ease}@media (max-width: 640px){.toast-container{top:.5rem;right:.5rem;left:.5rem}.toast{max-width:none;min-width:0}}.icon-root[data-v-2b10e54d]{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}.icon-svg[data-v-2b10e54d] svg{display:block}
