.login-page[data-v-cc3e0f2c]{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;background:linear-gradient(160deg,#00534C 0%,#169e88 100%)}.login-logo[data-v-cc3e0f2c]{text-align:center;margin-bottom:40px;color:#fff}.login-logo img[data-v-cc3e0f2c]{width:72px;height:72px;border-radius:16px;-o-object-fit:cover;object-fit:cover;margin-bottom:12px}.login-logo h1[data-v-cc3e0f2c]{font-size:28px;font-weight:700;color:#fff}.login-logo p[data-v-cc3e0f2c]{color:#fff9;font-size:14px}.login-form[data-v-cc3e0f2c]{width:100%;max-width:360px;display:flex;flex-direction:column;gap:16px}.field[data-v-cc3e0f2c]{display:flex;flex-direction:column;gap:6px}.field label[data-v-cc3e0f2c]{color:#fffc;font-size:13px;font-weight:500}.field input[data-v-cc3e0f2c]{padding:14px 16px;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;font-size:16px;outline:none}.field input[data-v-cc3e0f2c]:focus{border-color:#3b82f6}.field input[data-v-cc3e0f2c]::-moz-placeholder{color:#ffffff4d}.field input[data-v-cc3e0f2c]::placeholder{color:#ffffff4d}.error-msg[data-v-cc3e0f2c]{color:#f87171;font-size:13px;text-align:center}.btn-primary[data-v-cc3e0f2c]{padding:14px;border-radius:10px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.4)!important;color:#fff;font-size:16px;font-weight:600;border:none;cursor:pointer;transition:opacity .2s}.btn-primary[data-v-cc3e0f2c]:disabled{opacity:.6;cursor:default}.next-shift-card[data-v-c8efc44f]{background:linear-gradient(135deg,#1a1a2e,#16213e);color:#fff}.next-shift-label[data-v-c8efc44f]{font-size:11px;text-transform:uppercase;letter-spacing:1px;opacity:.6;margin-bottom:6px}.next-shift-date[data-v-c8efc44f]{font-size:18px;font-weight:600;text-transform:capitalize;margin-bottom:4px}.next-shift-time[data-v-c8efc44f]{font-size:28px;font-weight:700;margin-bottom:8px}.next-shift-position[data-v-c8efc44f]{display:inline-block;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600;margin-bottom:6px}.next-shift-note[data-v-c8efc44f]{font-size:13px;opacity:.7;margin-top:6px}.section-title[data-v-c8efc44f]{font-size:14px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.hours-summary[data-v-c8efc44f]{display:flex;flex-direction:column;align-items:center;padding:8px 0}.hours-big[data-v-c8efc44f]{font-size:40px;font-weight:700;color:#1a1a2e}.hours-sub[data-v-c8efc44f]{font-size:13px;color:#999}.shift-row[data-v-c8efc44f]{display:flex;align-items:center;gap:12px;padding:12px 16px}.shift-row-day[data-v-c8efc44f]{flex:1;font-size:14px;color:#555;text-transform:capitalize}.shift-row-time[data-v-c8efc44f]{font-size:14px;font-weight:600}.shift-dot[data-v-c8efc44f]{width:8px;height:8px;border-radius:50%}.empty-card[data-v-c8efc44f]{color:#999;font-size:14px;text-align:center}.loading-text[data-v-c8efc44f]{color:#bbb;font-size:14px;padding:12px 0}.cal-header[data-v-acb81c85]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.view-toggle[data-v-acb81c85]{display:flex;background:#f0f2f5;border-radius:8px;padding:2px}.view-toggle button[data-v-acb81c85]{padding:5px 12px;border:none;background:transparent;border-radius:6px;font-size:13px;cursor:pointer;color:#666}.view-toggle button.active[data-v-acb81c85]{background:white;color:#1a1a2e;font-weight:600;box-shadow:0 1px 3px #0000001a}.list-subtitle[data-v-acb81c85]{font-size:13px;color:#999;margin-bottom:12px}.date-nav[data-v-acb81c85]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.nav-btn[data-v-acb81c85]{width:32px;height:32px;border:none;background:#f0f2f5;border-radius:8px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}.date-label[data-v-acb81c85]{font-weight:600;font-size:15px;text-transform:capitalize}.shift-item[data-v-acb81c85]{display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:box-shadow .15s}.shift-item[data-v-acb81c85]:active{box-shadow:0 2px 8px #00000026}.shift-item-date[data-v-acb81c85]{font-size:12px;color:#999;text-transform:capitalize;margin-bottom:2px}.shift-item-time[data-v-acb81c85]{font-size:16px;font-weight:600}.shift-item-pos[data-v-acb81c85]{font-size:12px;margin-top:2px}.clocked-badge[data-v-acb81c85]{font-size:11px;padding:3px 8px;border-radius:12px;background:#fef3c7;color:#92400e}.clocked-badge.approved[data-v-acb81c85]{background:#d1fae5;color:#065f46}.cal-weekdays[data-v-acb81c85]{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:11px;color:#999;font-weight:600;margin-bottom:4px}.cal-days[data-v-acb81c85]{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-cell[data-v-acb81c85]{min-height:60px;padding:4px 3px;border-radius:6px;background:#fafafa;cursor:default;transition:filter .1s}.cal-cell.has-shift[data-v-acb81c85]{cursor:pointer}.cal-cell.has-shift[data-v-acb81c85]:active{filter:brightness(.95)}.cal-cell.today[data-v-acb81c85]{border:2px solid #169e88}.cal-cell.today .cal-day-num[data-v-acb81c85]{color:#169e88;font-weight:700}.cal-cell.other-month[data-v-acb81c85]{opacity:.35}.cal-day-num[data-v-acb81c85]{font-size:12px;margin-bottom:2px;display:block;text-align:center}.cal-shift-info[data-v-acb81c85]{font-size:9px;font-weight:600;line-height:1.3;text-align:center;margin-top:1px}.cal-shift-more[data-v-acb81c85]{font-size:8px;text-align:center;color:#999;margin-top:1px}.modal-overlay[data-v-acb81c85]{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.4);z-index:200;display:flex;align-items:flex-end}.modal-sheet[data-v-acb81c85]{background:white;border-radius:20px 20px 0 0;padding:16px 24px 32px;width:100%;max-width:480px;margin:0 auto}.modal-handle[data-v-acb81c85]{width:40px;height:4px;background:#ddd;border-radius:2px;margin:0 auto 16px}.modal-date[data-v-acb81c85]{font-size:13px;color:#999;text-transform:capitalize;margin-bottom:4px}.modal-time[data-v-acb81c85]{font-size:28px;font-weight:700;margin-bottom:8px}.modal-pos[data-v-acb81c85]{display:inline-block;color:#fff;padding:4px 12px;border-radius:20px;font-size:13px;margin-bottom:16px}.modal-section[data-v-acb81c85]{border-top:1px solid #f0f0f0;padding-top:12px;margin-top:12px;font-size:14px;line-height:1.8}.modal-label[data-v-acb81c85]{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#999;margin-bottom:4px}.modal-close[data-v-acb81c85]{width:100%;margin-top:20px;padding:13px;border:1px solid #e0e0e0;border-radius:10px;background:white;font-size:15px;cursor:pointer}.empty-card[data-v-acb81c85],.loading-text[data-v-acb81c85]{color:#bbb;text-align:center;padding:24px}.shift-note-icon[data-v-acb81c85]{font-size:16px}.date-nav[data-v-e80b98a9]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.nav-btn[data-v-e80b98a9]{width:32px;height:32px;border:none;background:#f0f2f5;border-radius:8px;font-size:18px;cursor:pointer}.date-label[data-v-e80b98a9]{font-weight:600;font-size:15px;text-transform:capitalize}.summary-card[data-v-e80b98a9]{text-align:center;padding:24px 16px}.summary-hours[data-v-e80b98a9]{font-size:48px;font-weight:700;color:#1a1a2e}.summary-sub[data-v-e80b98a9]{color:#999;font-size:13px;margin-top:4px}.entry-row[data-v-e80b98a9]{display:flex;align-items:center;gap:8px}.entry-date[data-v-e80b98a9]{flex:1;font-size:13px;color:#666;text-transform:capitalize}.entry-times[data-v-e80b98a9]{font-size:14px;font-weight:500}.entry-right[data-v-e80b98a9]{display:flex;align-items:center;gap:6px;margin-left:auto}.entry-dot[data-v-e80b98a9]{width:8px;height:8px;border-radius:50%}.entry-hours[data-v-e80b98a9]{font-size:14px;font-weight:600;color:#1a1a2e;min-width:40px;text-align:right}.empty-card[data-v-e80b98a9],.loading-text[data-v-e80b98a9]{color:#bbb;text-align:center;padding:24px}.message-item[data-v-80dfe5e8]{position:relative;cursor:pointer;transition:box-shadow .15s}.message-item.unread[data-v-80dfe5e8]{border-left:3px solid #3b82f6}.msg-top[data-v-80dfe5e8]{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:4px}.msg-subject[data-v-80dfe5e8]{font-size:15px;font-weight:600;flex:1}.msg-date[data-v-80dfe5e8]{font-size:11px;color:#999;white-space:nowrap}.msg-sender[data-v-80dfe5e8]{font-size:12px;color:#999}.unread-dot[data-v-80dfe5e8]{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:8px;height:8px;background:#3b82f6;border-radius:50%}.modal-overlay[data-v-80dfe5e8]{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.4);z-index:200;display:flex;align-items:flex-end}.modal-sheet[data-v-80dfe5e8]{background:white;border-radius:20px 20px 0 0;padding:16px 24px 40px;width:100%;max-width:480px;margin:0 auto;max-height:80dvh;overflow-y:auto}.modal-handle[data-v-80dfe5e8]{width:40px;height:4px;background:#ddd;border-radius:2px;margin:0 auto 16px}.modal-subject[data-v-80dfe5e8]{font-size:20px;font-weight:700;margin-bottom:6px}.modal-meta[data-v-80dfe5e8]{font-size:12px;color:#999;margin-bottom:16px}.modal-body[data-v-80dfe5e8]{font-size:15px;line-height:1.7;white-space:pre-wrap;color:#333}.modal-close[data-v-80dfe5e8]{width:100%;margin-top:24px;padding:13px;border:1px solid #e0e0e0;border-radius:10px;background:white;font-size:15px;cursor:pointer}.empty-card[data-v-80dfe5e8],.loading-text[data-v-80dfe5e8]{color:#bbb;text-align:center;padding:24px}.profile-card[data-v-2dccb66e]{display:flex;flex-direction:column;align-items:center;padding:24px;margin-bottom:12px}.avatar[data-v-2dccb66e]{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;font-weight:700;margin-bottom:12px}.profile-name[data-v-2dccb66e]{font-size:18px;font-weight:700}.profile-email[data-v-2dccb66e]{font-size:13px;color:#999;margin-top:4px}.setting-row[data-v-2dccb66e]{display:flex;justify-content:space-between;align-items:center}.setting-label[data-v-2dccb66e]{font-size:15px;font-weight:600}.setting-sub[data-v-2dccb66e]{font-size:12px;color:#999;margin-top:2px}.toggle-btn[data-v-2dccb66e]{padding:6px 14px;border-radius:20px;border:1px solid #169e88;color:#169e88;background:white;font-size:13px;cursor:pointer}.toggle-btn.on[data-v-2dccb66e]{background:#169e88;color:#fff}.field[data-v-2dccb66e]{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field label[data-v-2dccb66e]{font-size:13px;color:#666}.field input[data-v-2dccb66e]{padding:11px 14px;border:1px solid #e0e0e0;border-radius:8px;font-size:15px;outline:none}.field input[data-v-2dccb66e]:focus{border-color:#169e88}.btn-primary[data-v-2dccb66e]{width:100%;padding:13px;background:#169e88;color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;margin-top:4px}.btn-primary[data-v-2dccb66e]:disabled{opacity:.6;cursor:default}.btn-danger[data-v-2dccb66e]{width:100%;padding:13px;background:white;color:#ef4444;border:1px solid #ef4444;border-radius:10px;font-size:15px;cursor:pointer;margin-top:4px}.error-msg[data-v-2dccb66e]{color:#ef4444;font-size:13px;margin-bottom:8px}.success-msg[data-v-2dccb66e]{color:#10b981;font-size:13px;margin-bottom:8px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f0f2f5;color:#1a1a2e;min-height:100dvh}.app-shell{min-height:100dvh;display:flex;flex-direction:column;max-width:600px;margin:0 auto;background:#fff;position:relative}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:600px;display:flex;background:#fff;border-top:1px solid #e8e8e8;padding-bottom:env(safe-area-inset-bottom);z-index:100}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;color:#999;text-decoration:none;font-size:10px;position:relative}.nav-item svg{width:22px;height:22px;fill:currentColor}.nav-item.active{color:#169e88}.badge{background:#ef4444;color:#fff;font-size:10px;padding:1px 5px;border-radius:10px;min-width:18px;text-align:center}.page{flex:1;padding:16px;padding-bottom:calc(70px + env(safe-area-inset-bottom));overflow-y:auto}.page-header{font-size:22px;font-weight:700;margin-bottom:16px;color:#1a1a2e}.card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 1px 4px #00000014;margin-bottom:12px}.fade-enter-active,.fade-leave-active{transition:opacity .15s}.fade-enter-from,.fade-leave-to{opacity:0}
