.flash-fade-enter-active[data-v-1d217866],.flash-fade-leave-active[data-v-1d217866]{transition:opacity .4s ease}.flash-fade-enter-from[data-v-1d217866],.flash-fade-leave-to[data-v-1d217866]{opacity:0}.login-page[data-v-4b989c95]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f0f1f5;padding:20px}.login-container[data-v-4b989c95]{display:flex;width:100%;max-width:960px;min-height:580px;background:#fff;border-radius:16px;box-shadow:0 20px 60px #00000014,0 1px 3px #0000000a;overflow:hidden}.login-brand[data-v-4b989c95]{flex:0 0 420px;background:linear-gradient(145deg,#4a3aad,#6259ca,#7c71d8);color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:48px 40px 32px;position:relative;overflow:hidden}.login-brand[data-v-4b989c95]:before{content:"";position:absolute;top:-80px;right:-80px;width:250px;height:250px;border-radius:50%;background:#ffffff0d}.login-brand[data-v-4b989c95]:after{content:"";position:absolute;bottom:-60px;left:-60px;width:200px;height:200px;border-radius:50%;background:#ffffff0a}.login-brand-content[data-v-4b989c95]{position:relative;z-index:1}.login-brand-logo[data-v-4b989c95]{width:56px;height:56px;border-radius:14px;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;letter-spacing:1px;margin-bottom:28px;border:1px solid rgba(255,255,255,.1)}.login-brand-title[data-v-4b989c95]{font-size:30px;font-weight:800;letter-spacing:1px;margin-bottom:6px}.login-brand-subtitle[data-v-4b989c95]{font-size:14px;opacity:.7;font-weight:400;margin-bottom:0}.login-brand-divider[data-v-4b989c95]{width:40px;height:3px;background:#ffffff4d;border-radius:2px;margin:32px 0}.login-brand-features[data-v-4b989c95]{display:flex;flex-direction:column;gap:16px}.login-brand-feature[data-v-4b989c95]{display:flex;align-items:center;gap:12px;font-size:13px;opacity:.8}.login-brand-feature i[data-v-4b989c95]{width:34px;height:34px;border-radius:8px;background:#ffffff1a;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.login-brand-footer[data-v-4b989c95]{position:relative;z-index:1;font-size:11px;opacity:.4}.login-form-panel[data-v-4b989c95]{flex:1;display:flex;align-items:center;justify-content:center;padding:48px 40px}.login-form-wrapper[data-v-4b989c95]{width:100%;max-width:360px}.login-mobile-logo[data-v-4b989c95]{display:none;align-items:center;gap:10px;margin-bottom:32px}.login-mobile-logo-icon[data-v-4b989c95]{width:40px;height:40px;border-radius:10px;background:#6259ca;color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800}.login-mobile-logo-text[data-v-4b989c95]{font-size:22px;font-weight:800;color:#1a1a2e}.login-form-header[data-v-4b989c95]{margin-bottom:32px}.login-form-header h2[data-v-4b989c95]{font-size:24px;font-weight:700;color:#1a1a2e;margin-bottom:6px}.login-form-header p[data-v-4b989c95]{font-size:14px;color:#8a8a9e;margin-bottom:0}.login-error[data-v-4b989c95]{background:#fef2f2;border:1px solid #fee2e2;color:#dc2626;padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:20px;display:flex;align-items:center}.login-field[data-v-4b989c95]{margin-bottom:20px}.login-field label[data-v-4b989c95]{display:block;font-size:13px;font-weight:600;color:#3a3a52;margin-bottom:6px}.login-forgot[data-v-4b989c95]{font-size:12px;color:#6259ca;text-decoration:none;font-weight:500}.login-forgot[data-v-4b989c95]:hover{color:#4a3aad;text-decoration:underline}.login-input-wrap[data-v-4b989c95]{display:flex;align-items:center;border:1.5px solid #e3e3ef;border-radius:10px;padding:0 14px;height:46px;background:#fafaff;transition:border-color .2s,box-shadow .2s}.login-input-wrap[data-v-4b989c95]:focus-within{border-color:#6259ca;box-shadow:0 0 0 3px #6259ca1a;background:#fff}.login-input-wrap--error[data-v-4b989c95]{border-color:#dc2626}.login-input-wrap i[data-v-4b989c95]{color:#b0b0c8;font-size:16px;margin-right:10px;flex-shrink:0}.login-input-wrap input[data-v-4b989c95]{flex:1;border:none;background:transparent;outline:none;font-size:14px;color:#1a1a2e;height:100%}.login-input-wrap input[data-v-4b989c95]::placeholder{color:#b8b8cc}.login-toggle-pw[data-v-4b989c95]{background:none;border:none;cursor:pointer;padding:0;color:#b0b0c8;font-size:15px;flex-shrink:0;transition:color .15s}.login-toggle-pw[data-v-4b989c95]:hover{color:#6259ca}.login-remember[data-v-4b989c95]{margin-bottom:24px}.login-checkbox[data-v-4b989c95]{display:flex;align-items:center;gap:8px;font-size:13px;color:#6b6b80;cursor:pointer;-webkit-user-select:none;user-select:none}.login-checkbox input[data-v-4b989c95]{display:none}.login-checkmark[data-v-4b989c95]{width:18px;height:18px;border:1.5px solid #d0d0e0;border-radius:5px;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.login-checkbox input:checked+.login-checkmark[data-v-4b989c95]{background:#6259ca;border-color:#6259ca}.login-checkbox input:checked+.login-checkmark[data-v-4b989c95]:after{content:"";width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);margin-top:-1px}.login-submit[data-v-4b989c95]{width:100%;height:48px;border:none;border-radius:10px;background:linear-gradient(135deg,#6259ca,#7c71d8);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s;display:flex;align-items:center;justify-content:center}.login-submit[data-v-4b989c95]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #6259ca59}.login-submit[data-v-4b989c95]:active:not(:disabled){transform:translateY(0)}.login-submit[data-v-4b989c95]:disabled{opacity:.7;cursor:not-allowed}.login-submit-loading[data-v-4b989c95]{display:flex;align-items:center;gap:8px}.login-spinner[data-v-4b989c95]{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-4b989c95 .6s linear infinite}@keyframes spin-4b989c95{to{transform:rotate(360deg)}}.login-quick[data-v-4b989c95]{margin-top:28px;padding-top:20px;border-top:1px solid #f0f0f5;display:flex;align-items:center;gap:12px}.login-quick-label[data-v-4b989c95]{font-size:11px;color:#b0b0c8;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.login-quick-btn[data-v-4b989c95]{padding:5px 14px;border:1px solid #e3e3ef;border-radius:6px;background:#fafaff;font-size:12px;color:#6259ca;cursor:pointer;font-weight:500;transition:all .15s}.login-quick-btn[data-v-4b989c95]:hover{background:#6259ca;color:#fff;border-color:#6259ca}@media (max-width: 768px){.login-page[data-v-4b989c95]{padding:0;background:#fff}.login-container[data-v-4b989c95]{flex-direction:column;border-radius:0;box-shadow:none;min-height:100vh}.login-brand[data-v-4b989c95]{display:none}.login-mobile-logo[data-v-4b989c95]{display:flex}.login-form-panel[data-v-4b989c95]{padding:60px 24px 40px;align-items:flex-start}}.card.custom-card[data-v-cf2e4950]{border:1px solid #e3e3e3;box-shadow:0 1px 3px #0000000f}.card.custom-card .card-header[data-v-cf2e4950]{background:#f8f9fa;border-bottom:1px solid #eee}[data-v-cf2e4950] thead{background:#eef0f3}[data-v-cf2e4950] thead th{font-weight:600;color:#495057;border-bottom:2px solid #dee2e6}.bg-primary-light[data-v-5e7e3fd4]{background-color:#007bff0d}.cursor-pointer[data-v-5e7e3fd4]{cursor:pointer}@media print{.no-print{display:none!important}.job-sheet{padding:0;margin:0}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.kanban-card[data-v-778d1109]{background:#fff;border:1px solid #e3e8ef;border-radius:8px;padding:10px 12px;cursor:pointer;transition:box-shadow .15s ease,transform .15s ease;font-size:12px;margin-bottom:8px}.kanban-card[data-v-778d1109]:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.kanban-card--overdue[data-v-778d1109]{border-left:3px solid #dc3545}.kanban-card__cover[data-v-778d1109]{margin:-10px -12px 8px;border-radius:8px 8px 0 0;overflow:hidden;height:100px}.kanban-card__cover img[data-v-778d1109]{width:100%;height:100%;object-fit:cover}.kanban-card__labels[data-v-778d1109]{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.kanban-card__label[data-v-778d1109]{display:inline-block;height:8px;min-width:32px;border-radius:4px}.kanban-card__order-number[data-v-778d1109]{font-weight:700;font-size:13px;color:#1a1a2e;margin-bottom:2px}.kanban-card__customer[data-v-778d1109]{color:#6c757d;font-size:11.5px;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kanban-card__divider[data-v-778d1109]{margin:6px 0;border-color:#eee}.kanban-card__dates[data-v-778d1109]{display:flex;align-items:center;gap:6px;margin-bottom:6px;flex-wrap:wrap}.kanban-card__date-range[data-v-778d1109]{color:#6c757d;font-size:11px}.kanban-card__date-range i[data-v-778d1109]{margin-right:3px;font-size:10px}.kanban-card__checklist[data-v-778d1109]{margin-bottom:6px}.kanban-card__checklist-bar[data-v-778d1109]{height:5px;background:#e9ecef;border-radius:3px;overflow:hidden;margin-bottom:2px}.kanban-card__checklist-fill[data-v-778d1109]{height:100%;border-radius:3px;transition:width .3s ease}.kanban-card__checklist-text[data-v-778d1109]{font-size:10px;color:#888}.kanban-card__tags[data-v-778d1109]{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px}.kanban-card__footer[data-v-778d1109]{display:flex;justify-content:space-between;align-items:center}.kanban-card__staff[data-v-778d1109]{display:flex;gap:4px}.kanban-card__avatar[data-v-778d1109]{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#6c5ce7;color:#fff;font-size:10px;font-weight:600}.kanban-card__meta[data-v-778d1109]{display:flex;align-items:center;gap:8px}.kanban-card__attachments[data-v-778d1109]{color:#888;font-size:11px}.kanban-card__attachments i[data-v-778d1109]{margin-right:2px}.kanban-card__deposit[data-v-778d1109]{display:flex;align-items:center;margin-top:4px}.kanban-column[data-v-9694da0f]{min-width:280px;max-width:280px;background:#fff;border-radius:10px;box-shadow:0 1px 4px #0000000f;display:flex;flex-direction:column;max-height:calc(100vh - 180px);flex-shrink:0}.kanban-column--collapsed[data-v-9694da0f]{max-height:auto}.kanban-column--collapsed .kanban-column__body[data-v-9694da0f]{display:none}.kanban-column__header[data-v-9694da0f]{position:sticky;top:0;z-index:10;background:#fff;padding:12px 14px 8px;border-bottom:1px solid #f0f0f0;border-radius:10px 10px 0 0;cursor:pointer;-webkit-user-select:none;user-select:none}.kanban-column__header-top[data-v-9694da0f]{display:flex;justify-content:space-between;align-items:center}.kanban-column__title[data-v-9694da0f]{display:flex;align-items:center;gap:6px}.kanban-column__dot[data-v-9694da0f]{width:10px;height:10px;border-radius:50%;flex-shrink:0}.kanban-column__name[data-v-9694da0f]{font-weight:700;font-size:13px;color:#1a1a2e}.kanban-column__count[data-v-9694da0f]{background:#eef0f4;color:#555;font-size:11px;font-weight:600;padding:1px 7px;border-radius:10px}.kanban-column__toggle[data-v-9694da0f]{background:none;border:none;color:#888;cursor:pointer;padding:2px;font-size:14px}.kanban-column__toggle[data-v-9694da0f]:hover{color:#333}.kanban-column__owner[data-v-9694da0f]{font-size:10.5px;color:#999;margin-top:2px}.kanban-column__body[data-v-9694da0f]{flex:1;overflow-y:auto;padding:8px 10px}.kanban-column__list[data-v-9694da0f]{min-height:40px}.kanban-column__empty[data-v-9694da0f]{text-align:center;color:#adb5bd;font-size:12px;padding:24px 0}.kanban-column__body[data-v-9694da0f]::-webkit-scrollbar{width:4px}.kanban-column__body[data-v-9694da0f]::-webkit-scrollbar-track{background:transparent}.kanban-column__body[data-v-9694da0f]::-webkit-scrollbar-thumb{background:#d0d0d0;border-radius:4px}.kanban-ghost{opacity:.4;background:#e8f4ff!important;border:2px dashed #0d6efd!important;border-radius:8px;transform:rotate(2deg)}.kanban-drag{opacity:.9;box-shadow:0 8px 25px #00000026!important;transform:rotate(-2deg)}.kanban-board[data-v-35976577]{display:flex;gap:12px;overflow-x:auto;align-items:flex-start;background:#f0f2f5;border-radius:8px;padding:16px;min-height:calc(100vh - 240px)}.kanban-board[data-v-35976577]::-webkit-scrollbar{height:6px}.kanban-board[data-v-35976577]::-webkit-scrollbar-track{background:#e9ecef;border-radius:3px}.kanban-board[data-v-35976577]::-webkit-scrollbar-thumb{background:silver;border-radius:3px}.kanban-board[data-v-35976577]::-webkit-scrollbar-thumb:hover{background:#999}.kanban-error-toast[data-v-35976577]{position:fixed;bottom:24px;right:24px;z-index:9999;max-width:420px;animation:slideUp-35976577 .3s ease}@keyframes slideUp-35976577{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.btn-close-sm[data-v-35976577]{font-size:10px;padding:8px}.dev-notes-overlay[data-v-35976577]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:10000;display:flex;align-items:center;justify-content:center;animation:fadeIn-35976577 .2s ease}@keyframes fadeIn-35976577{0%{opacity:0}to{opacity:1}}.dev-notes-modal[data-v-35976577]{background:#fff;border-radius:10px;width:720px;max-width:90vw;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000040;animation:scaleIn-35976577 .2s ease}@keyframes scaleIn-35976577{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.dev-notes-header[data-v-35976577]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e9ecef}.dev-notes-body[data-v-35976577]{padding:20px;overflow-y:auto}.sortable-header[data-v-b278e9e9]{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.sortable-header[data-v-b278e9e9]:hover{background:#f8f9fa}.sort-icon[data-v-b278e9e9]{display:inline-block;margin-left:4px;font-size:11px}.sort-icon--active[data-v-b278e9e9]{color:#0d6efd}.task-row[data-v-b278e9e9]{cursor:pointer;transition:background .15s}.task-row:hover td[data-v-b278e9e9]{background-color:#f8f9ff}.expanded-row td[data-v-b278e9e9]{background-color:#f0f2ff!important;border-bottom:none}.expanded-detail td[data-v-b278e9e9]{background-color:#fafbff}.expanded-content[data-v-b278e9e9]{padding:16px 20px 20px;border-top:2px solid #6259ca}.detail-section[data-v-b278e9e9]{background:#fff;border:1px solid #e9ecef;border-radius:6px;padding:12px}.detail-title[data-v-b278e9e9]{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#6259ca;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #f0f0f0}.detail-grid[data-v-b278e9e9]{display:grid;grid-template-columns:100px 1fr;gap:4px 8px;font-size:12px}.detail-label[data-v-b278e9e9]{color:#71717a;font-weight:500}.checklist-bar[data-v-b278e9e9]{width:60px;height:5px;background:#e9ecef;border-radius:3px;overflow:hidden}.checklist-bar-lg[data-v-b278e9e9]{width:100%;height:6px;background:#e9ecef;border-radius:3px;overflow:hidden}.checklist-fill[data-v-b278e9e9]{height:100%;border-radius:3px;transition:width .3s}.calendar-card[data-v-7d0dd534]{border:1px solid #e3e3e3;box-shadow:0 2px 8px #0000000f;border-radius:8px;overflow:hidden}.calendar-grid[data-v-7d0dd534]{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-header-cell[data-v-7d0dd534]{background:#f1f2f6;border-right:1px solid #e3e3e3;border-bottom:2px solid #ddd;padding:10px 8px;text-align:center;text-transform:uppercase;letter-spacing:1px;font-size:11px;font-weight:700;color:#6c757d}.calendar-header-cell[data-v-7d0dd534]:last-child{border-right:none}.calendar-cell[data-v-7d0dd534]{min-height:130px;border-right:1px solid #eee;border-bottom:1px solid #eee;padding:6px 8px;background:#fff;transition:background .15s}.calendar-cell[data-v-7d0dd534]:last-child{border-right:none}.calendar-cell[data-v-7d0dd534]:hover{background:#fafaff}.calendar-cell--muted[data-v-7d0dd534]{background:#f9f9fb}.calendar-cell--muted .calendar-date-number[data-v-7d0dd534]{color:#ccc}.calendar-cell--today[data-v-7d0dd534]{background:#eef0ff;box-shadow:inset 0 0 0 2px #6259ca33}.calendar-date[data-v-7d0dd534]{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.calendar-date-number[data-v-7d0dd534]{font-size:13px;font-weight:600;color:#495057;line-height:1}.calendar-date-number--today[data-v-7d0dd534]{background:#6259ca;color:#fff;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px}.calendar-date-count[data-v-7d0dd534]{font-size:10px;color:#999;background:#f0f0f0;padding:1px 6px;border-radius:10px}.calendar-events[data-v-7d0dd534]{display:flex;flex-direction:column;gap:3px}.calendar-event[data-v-7d0dd534]{font-size:11px;padding:3px 8px;border-radius:4px;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.5;transition:transform .1s,box-shadow .1s}.calendar-event[data-v-7d0dd534]:hover{transform:translateY(-1px);box-shadow:0 2px 6px #0000001f;z-index:1;position:relative}.calendar-event--start[data-v-7d0dd534]{border-radius:4px 0 0 4px}.calendar-event--end[data-v-7d0dd534]{border-radius:0 4px 4px 0}.calendar-event--mid[data-v-7d0dd534]{border-radius:0}.calendar-event--queued[data-v-7d0dd534]{background:linear-gradient(135deg,#e8f4fd,#d1ecf8);color:#0c5460;border-left:3px solid #17a2b8}.calendar-event--in_progress[data-v-7d0dd534]{background:linear-gradient(135deg,#fff8e1,#fff3cd);color:#7a6100;border-left:3px solid #ffc107}.calendar-event--on_hold[data-v-7d0dd534]{background:linear-gradient(135deg,#ededed,#e2e3e5);color:#383d41;border-left:3px solid #6c757d}.calendar-event--completed[data-v-7d0dd534]{background:linear-gradient(135deg,#e8f5e9,#d4edda);color:#155724;border-left:3px solid #28a745}.calendar-event-badge[data-v-7d0dd534]{font-weight:700;margin-right:4px}.calendar-event-desc[data-v-7d0dd534]{opacity:.85}.calendar-event-cont[data-v-7d0dd534]{display:block;height:4px}.calendar-overflow[data-v-7d0dd534]{font-size:10px;color:#888;font-style:italic;padding:1px 8px;cursor:default}.summary-dot[data-v-7d0dd534]{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px;vertical-align:middle}.summary-dot--queued[data-v-7d0dd534]{background:#17a2b8}.summary-dot--in_progress[data-v-7d0dd534]{background:#ffc107}.summary-dot--on_hold[data-v-7d0dd534]{background:#6c757d}.summary-dot--completed[data-v-7d0dd534]{background:#28a745}.legend-bar[data-v-7d0dd534]{display:inline-block;width:14px;height:4px;border-radius:2px;margin-right:4px;vertical-align:middle}.legend-bar--queued[data-v-7d0dd534]{background:#17a2b8}.legend-bar--in_progress[data-v-7d0dd534]{background:#ffc107}.legend-bar--on_hold[data-v-7d0dd534]{background:#6c757d}.legend-bar--completed[data-v-7d0dd534]{background:#28a745}
