.trace-panel[data-v-981242c3]{margin-top:18px;padding-top:16px;border-top:1px solid #e2e8f0}.feedback-layout[data-v-c95c8122]{display:grid;grid-template-columns:360px minmax(0,1fr);gap:20px}.feedback-list-panel[data-v-c95c8122],.detail-panel[data-v-c95c8122]{display:flex;flex-direction:column;gap:14px}.feedback-item[data-v-c95c8122]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px;border:1px solid #d8dee8;border-radius:8px;background:#fff;color:#111827;text-align:left}.feedback-item.active[data-v-c95c8122]{border-color:#2563eb;background:#eff6ff}.feedback-item div[data-v-c95c8122],.comment-item div[data-v-c95c8122]{display:flex;flex-direction:column;gap:4px}.feedback-item small[data-v-c95c8122],.detail-block small[data-v-c95c8122],.comment-item small[data-v-c95c8122],.feedback-item span[data-v-c95c8122]{color:#64748b;font-size:12px}.detail-block[data-v-c95c8122]{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:8px;background:#f8fafc}.detail-block h4[data-v-c95c8122],.detail-block p[data-v-c95c8122],.comment-item p[data-v-c95c8122]{margin:0}.image-grid[data-v-c95c8122]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.image-grid img[data-v-c95c8122]{width:100%;aspect-ratio:1;border-radius:8px;object-fit:cover;background:#f1f5f9}.comments[data-v-c95c8122]{display:flex;flex-direction:column;gap:12px}.compact[data-v-c95c8122]{margin-top:8px}.comment-item[data-v-c95c8122]{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:8px;background:#f8fafc}@media(max-width:900px){.feedback-layout[data-v-c95c8122]{grid-template-columns:1fr}}.image-field[data-v-2341e900]{display:grid;grid-template-columns:88px 1fr;gap:12px;align-items:center}.material-preview[data-v-2341e900],.table-image[data-v-2341e900]{width:72px;height:72px;border:1px solid #d8dee8;border-radius:6px;object-fit:cover;background:#f8fafc}.material-placeholder[data-v-2341e900]{display:grid;place-items:center;width:72px;height:72px;border:1px dashed #b8c4d6;border-radius:6px;color:#64748b;background:#f8fafc;font-size:12px}.table-image[data-v-2341e900]{width:48px;height:48px}.inventory-page[data-v-2341e900]{display:flex;flex-direction:column;height:calc(100vh - 72px);min-height:0}.inventory-page .management-grid[data-v-2341e900]{flex:1;min-height:0;overflow:auto;padding-right:6px}.hidden-file[data-v-2341e900]{display:none}.category-manager[data-v-2341e900]{margin-top:24px;padding-top:20px;border-top:1px solid #d8dee8}.table-panel[data-v-2341e900]{align-self:start}.material-panel[data-v-2341e900]{display:flex;flex-direction:column;align-self:stretch;min-height:0}.claim-panel[data-v-2341e900]{grid-column:1 / -1}.stocktake-panel[data-v-2341e900]{grid-column:1 / -1;min-height:420px}.stocktake-grid[data-v-2341e900]{display:grid;grid-template-columns:320px minmax(0,1fr);gap:14px;min-height:0}.stocktake-list[data-v-2341e900],.stocktake-detail[data-v-2341e900]{min-height:0;overflow:auto}.stocktake-card[data-v-2341e900]{display:flex;flex-direction:column;gap:6px;margin-bottom:8px;padding:10px 12px;border:1px solid #d8dee8;border-radius:8px;background:#fff;cursor:pointer}.stocktake-card.active[data-v-2341e900]{border-color:#2563eb;background:#eff6ff}.stocktake-card strong[data-v-2341e900],.stocktake-heading strong[data-v-2341e900]{color:#111827}.stocktake-card small[data-v-2341e900],.stocktake-heading small[data-v-2341e900]{color:#64748b}.stocktake-heading[data-v-2341e900]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.stocktake-heading div[data-v-2341e900]{display:flex;flex-direction:column;gap:4px}.stocktake-scroll[data-v-2341e900]{max-height:340px;overflow-x:auto}.stocktake-scroll input[data-v-2341e900]{min-height:34px}.material-scroll[data-v-2341e900],.claim-scroll[data-v-2341e900]{overflow-x:auto}.material-scroll th[data-v-2341e900],.material-scroll td[data-v-2341e900],.claim-scroll th[data-v-2341e900],.claim-scroll td[data-v-2341e900]{padding:10px 12px}.total-stock[data-v-2341e900]{margin-left:12px;color:#dc2626;font-weight:900}.stock-label[data-v-2341e900]{display:block;margin-bottom:2px;color:#64748b;font-size:12px}.current-stock[data-v-2341e900]{display:block;margin-top:2px;color:#64748b;font-size:12px;font-weight:800}.claim-toolbar[data-v-2341e900]{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(160px,1fr) 150px 150px auto;gap:10px;margin-bottom:14px}.claim-stats[data-v-2341e900]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.claim-stats span[data-v-2341e900]{padding:10px 12px;border:1px solid #d8dee8;border-radius:6px;color:#1e3a8a;background:#eff6ff;font-weight:800}.compact-heading[data-v-2341e900]{margin-bottom:12px}.primary-action.slim[data-v-2341e900]{margin-top:8px}.category-list[data-v-2341e900]{display:grid;gap:8px;margin-top:14px}.category-row[data-v-2341e900]{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #eef2f7}.category-row span[data-v-2341e900]{font-weight:700}.category-row small[data-v-2341e900]{color:#64748b}.link-action[data-v-2341e900]{display:block;margin-top:4px;padding:0;border:0;color:#2563eb;background:transparent;font-size:12px;font-weight:700}.sort-header[data-v-2341e900]{padding:0;border:0;color:inherit;background:transparent;font:inherit;font-weight:800;cursor:pointer}.negative-change[data-v-2341e900]{color:#dc2626;font-weight:800}.positive-change[data-v-2341e900]{color:#16a34a;font-weight:800}.cancelled-row[data-v-2341e900]{color:#94a3b8;background:#f8fafc}.cancelled-row strong[data-v-2341e900],.cancelled-row small[data-v-2341e900]{color:#94a3b8}.pagination-bar[data-v-2341e900]{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:12px;color:#475569;font-size:13px;font-weight:700}.pagination-bar button[data-v-2341e900]{min-height:32px;padding:0 10px;border:1px solid #cbd5e1;border-radius:6px;color:#334155;background:#fff;cursor:pointer}.pagination-bar button[data-v-2341e900]:disabled{color:#94a3b8;background:#f8fafc;cursor:not-allowed}.compact-pagination[data-v-2341e900]{justify-content:space-between;gap:6px}@media(max-width:960px){.claim-panel[data-v-2341e900],.stocktake-panel[data-v-2341e900]{grid-column:auto}.stocktake-grid[data-v-2341e900]{grid-template-columns:1fr}}.log-toolbar[data-v-c7255bc7]{flex-wrap:wrap}.log-panel[data-v-c7255bc7]{min-width:0}.log-table-wrap[data-v-c7255bc7]{max-height:660px;overflow:auto}.log-table-wrap table[data-v-c7255bc7]{width:100%;min-width:1180px;border-collapse:collapse}.log-table-wrap th[data-v-c7255bc7],.log-table-wrap td[data-v-c7255bc7]{padding:10px;border-bottom:1px solid #e2e8f0;color:#334155;text-align:left;vertical-align:top}.log-table-wrap th[data-v-c7255bc7]{position:sticky;top:0;z-index:1;background:#f8fafc;color:#64748b;font-size:13px;font-weight:800}.log-table-wrap td strong[data-v-c7255bc7],.log-table-wrap td small[data-v-c7255bc7]{display:block}.log-table-wrap td small[data-v-c7255bc7]{margin-top:4px;color:#64748b;font-size:12px}.body-cell[data-v-c7255bc7]{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inline-field[data-v-73e6aaa5]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.inline-field button[data-v-73e6aaa5]{min-height:40px;padding:0 12px;border:1px solid #bfdbfe;border-radius:6px;color:#1d4ed8;background:#eff6ff;font-weight:700}.compact-toolbar[data-v-73e6aaa5]{margin:12px 0 0}.log-toolbar[data-v-73e6aaa5]{grid-template-columns:180px minmax(220px,1fr) 160px auto auto;align-items:center;margin:12px 0 14px}.patrol-photo-list[data-v-73e6aaa5]{display:flex;align-items:center;gap:8px;min-width:132px}.patrol-photo[data-v-73e6aaa5]{width:44px;height:44px;padding:0;border:1px solid #d8dee8;border-radius:6px;overflow:hidden;background:#f8fafc;cursor:pointer}.patrol-photo img[data-v-73e6aaa5]{width:100%;height:100%;object-fit:cover;display:block}.patrol-photo-list span[data-v-73e6aaa5],.image-empty[data-v-73e6aaa5]{color:#64748b;font-size:12px;white-space:nowrap}.scope-block[data-v-73e6aaa5]{display:grid;gap:8px}.scope-block>span[data-v-73e6aaa5]{font-weight:700;color:#0f172a}.scope-block>small[data-v-73e6aaa5],.scope-grid small[data-v-73e6aaa5]{color:#64748b}.scope-grid[data-v-73e6aaa5]{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px;max-height:132px;overflow:auto;padding:8px;border:1px solid #dbe3ef;border-radius:6px;background:#f8fafc}.scope-item[data-v-73e6aaa5]{display:flex;align-items:center;gap:6px;min-height:30px;margin:0;font-size:13px;color:#1e293b}.scope-item span[data-v-73e6aaa5]{display:grid;gap:2px}.scope-item span small[data-v-73e6aaa5]{color:#64748b;font-size:12px}.scope-item input[data-v-73e6aaa5]{width:14px;height:14px}.mini-pagination[data-v-73e6aaa5]{display:flex;align-items:center;justify-content:flex-end;gap:8px;font-size:13px;color:#475569}.mini-pagination button[data-v-73e6aaa5]{min-height:28px;padding:0 10px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#1d4ed8;font-weight:700}.mini-pagination button[data-v-73e6aaa5]:disabled{color:#94a3b8;background:#f8fafc}.full-panel[data-v-73e6aaa5],.full-span[data-v-2951b8f3]{grid-column:1 / -1}.schedule-toolbar[data-v-46ed9dda]{flex-wrap:wrap}.month-input[data-v-46ed9dda]{max-width:150px}.schedule-layout[data-v-46ed9dda]{display:grid;gap:14px}.template-panel[data-v-46ed9dda]{min-width:0}.template-grid[data-v-46ed9dda]{display:grid;grid-template-columns:112px 182px repeat(3,minmax(96px,118px)) minmax(150px,1fr) minmax(150px,1fr) 76px 76px;gap:8px;align-items:end}.template-grid label[data-v-46ed9dda]{display:grid;gap:4px;color:#334155;font-size:12px;font-weight:700}.template-grid input[data-v-46ed9dda],.template-grid select[data-v-46ed9dda]{width:100%;min-height:34px}.quick-shift-buttons[data-v-46ed9dda]{display:grid;grid-template-columns:34px repeat(5,26px);gap:4px;align-items:end;color:#334155;font-size:12px;font-weight:700}.quick-shift[data-v-46ed9dda]{display:grid;width:26px;height:34px;place-items:center;border:1px solid transparent;border-radius:5px;cursor:pointer;font-weight:800}.quick-shift.active[data-v-46ed9dda]{border-color:#0f172a;box-shadow:inset 0 0 0 1px #0f172a}.quick-shift.shift-day[data-v-46ed9dda]{background:#dbeafe;color:#1d4ed8}.quick-shift.shift-middle[data-v-46ed9dda]{background:#dcfce7;color:#15803d}.quick-shift.shift-night[data-v-46ed9dda]{background:#ede9fe;color:#6d28d9}.quick-shift.shift-rest[data-v-46ed9dda]{background:#e5e7eb;color:#475569}.quick-shift.shift-custom[data-v-46ed9dda]{background:#fef3c7;color:#b45309}.danger-lite[data-v-46ed9dda]{color:#b91c1c;border-color:#fecaca;background:#fff7f7}.selected-cell[data-v-46ed9dda]{display:flex;gap:12px;align-items:center;margin-top:8px;color:#475569;font-size:13px}.selected-cell strong[data-v-46ed9dda]{color:#0f172a}.schedule-panel[data-v-46ed9dda]{min-width:0;--person-col-width: 128px;--day-col-width: clamp(36px, calc((100vw - 620px) / 31), 54px)}.schedule-heading-right[data-v-46ed9dda]{display:flex;gap:12px;align-items:center;color:#64748b;font-size:13px}.shift-legend[data-v-46ed9dda]{display:flex;gap:4px;align-items:center}.legend-item[data-v-46ed9dda]{display:inline-grid;width:22px;height:22px;place-items:center;border-radius:4px;font-size:12px;font-weight:800}.legend-item.shift-day[data-v-46ed9dda]{background:#dbeafe;color:#1d4ed8}.legend-item.shift-middle[data-v-46ed9dda]{background:#dcfce7;color:#15803d}.legend-item.shift-night[data-v-46ed9dda]{background:#ede9fe;color:#6d28d9}.legend-item.shift-rest[data-v-46ed9dda]{background:#e5e7eb;color:#475569}.legend-item.shift-custom[data-v-46ed9dda]{background:#fef3c7;color:#b45309}.matrix-wrap[data-v-46ed9dda]{max-height:590px;overflow:auto;border:1px solid #d8e1ee;border-radius:8px;background:#fff}.schedule-matrix[data-v-46ed9dda]{width:max-content;min-width:0;table-layout:fixed;border-collapse:separate;border-spacing:0}.schedule-matrix th[data-v-46ed9dda],.schedule-matrix td[data-v-46ed9dda]{box-sizing:border-box;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}.schedule-matrix thead th[data-v-46ed9dda]{position:sticky;top:0;z-index:3;background:#f8fafc;color:#334155;font-weight:800}.person-col[data-v-46ed9dda]{position:sticky;left:0;z-index:4;width:var(--person-col-width);min-width:var(--person-col-width);max-width:var(--person-col-width);background:#f8fafc;text-align:left}.date-col[data-v-46ed9dda]{width:var(--day-col-width);min-width:var(--day-col-width);max-width:var(--day-col-width);height:42px;text-align:center}.date-col strong[data-v-46ed9dda]{font-size:12px}.date-col strong[data-v-46ed9dda],.date-col small[data-v-46ed9dda],.person-cell strong[data-v-46ed9dda],.person-cell small[data-v-46ed9dda]{display:block}.date-col small[data-v-46ed9dda],.person-cell small[data-v-46ed9dda]{margin-top:2px;color:#64748b;font-size:10px;font-weight:600}.person-cell[data-v-46ed9dda]{z-index:2;padding:7px;vertical-align:middle;background:#fff}.person-cell strong[data-v-46ed9dda]{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.person-cell small[data-v-46ed9dda]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-cell[data-v-46ed9dda]{width:var(--day-col-width);min-width:var(--day-col-width);max-width:var(--day-col-width);height:40px;padding:0;background:#fff;vertical-align:top}.schedule-cell.empty[data-v-46ed9dda]{background:#fbfdff}.schedule-cell.active[data-v-46ed9dda]{box-shadow:inset 0 0 0 2px #2563eb}.schedule-cell.rest[data-v-46ed9dda]{background:#f1f5f9}.schedule-cell.warning[data-v-46ed9dda]{background:#fff7ed}.cell-button[data-v-46ed9dda]{width:100%;height:100%;min-width:0;min-height:40px;appearance:none;box-sizing:border-box;border:0;border-radius:0;background:#eff6ff;color:#1e3a8a;cursor:pointer;text-align:center;padding:0;font-weight:800;display:grid;place-items:center}.empty .cell-button[data-v-46ed9dda]{display:grid;place-items:center;background:#f8fafc;color:#94a3b8;text-align:center}.cell-button strong[data-v-46ed9dda],.cell-button small[data-v-46ed9dda]{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-button strong[data-v-46ed9dda]{font-size:15px;line-height:1}.cell-button small[data-v-46ed9dda]{margin-top:2px;font-size:10px}.cell-button.shift-day[data-v-46ed9dda]{background:#dbeafe;color:#1d4ed8}.cell-button.shift-middle[data-v-46ed9dda]{background:#dcfce7;color:#15803d}.cell-button.shift-night[data-v-46ed9dda]{background:#ede9fe;color:#6d28d9}.cell-button.shift-rest[data-v-46ed9dda]{background:#e5e7eb;color:#475569}.cell-button.shift-custom[data-v-46ed9dda]{background:#fef3c7;color:#b45309}.cell-button.status-leave[data-v-46ed9dda]{background:#ffedd5;color:#c2410c}.cell-button.status-cancelled[data-v-46ed9dda]{background:#fee2e2;color:#b91c1c;text-decoration:line-through}@media(max-width:1200px){.template-grid[data-v-46ed9dda]{grid-template-columns:repeat(4,minmax(96px,1fr))}.quick-shift-buttons[data-v-46ed9dda]{grid-template-columns:34px repeat(5,28px)}}.leave-page[data-v-5fbf5b2d]{min-width:0}.leave-summary[data-v-5fbf5b2d]{display:flex;gap:8px;align-items:center}.leave-summary span[data-v-5fbf5b2d],.leave-summary strong[data-v-5fbf5b2d]{padding:7px 10px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;font-size:13px}.leave-summary strong[data-v-5fbf5b2d]{color:#b45309;border-color:#fed7aa;background:#fff7ed}.leave-tabs[data-v-5fbf5b2d]{display:flex;gap:4px;margin-bottom:14px;border-bottom:1px solid #cbd5e1}.leave-tabs button[data-v-5fbf5b2d]{padding:10px 16px;border:0;border-bottom:3px solid transparent;background:transparent;color:#475569;font-weight:700;cursor:pointer}.leave-tabs button.active[data-v-5fbf5b2d]{color:#1d4ed8;border-bottom-color:#2563eb}.leave-toolbar[data-v-5fbf5b2d]{display:grid;grid-template-columns:180px 130px 130px 145px 145px minmax(190px,1fr) auto}.leave-toolbar input[data-v-5fbf5b2d],.leave-toolbar select[data-v-5fbf5b2d]{width:100%}.approval-panel[data-v-5fbf5b2d]{display:grid;grid-template-columns:minmax(260px,1fr) minmax(240px,1fr) auto auto auto;gap:10px;align-items:center;margin-bottom:14px;padding:14px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff}.approval-panel div[data-v-5fbf5b2d]{display:grid;gap:3px}.approval-panel span[data-v-5fbf5b2d]{color:#475569;font-size:13px}.approval-panel textarea[data-v-5fbf5b2d]{min-height:58px;padding:8px;border:1px solid #cbd5e1;border-radius:6px;resize:vertical}.approval-panel button[data-v-5fbf5b2d],.table-action[data-v-5fbf5b2d],.add-approver button[data-v-5fbf5b2d],.reset-button[data-v-5fbf5b2d],.flow-list button[data-v-5fbf5b2d]{min-height:34px;padding:0 11px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;cursor:pointer}.approval-panel .approve[data-v-5fbf5b2d]{color:#fff;border-color:#15803d;background:#15803d}.approval-panel .reject[data-v-5fbf5b2d]{color:#fff;border-color:#b91c1c;background:#b91c1c}.leave-table[data-v-5fbf5b2d]{min-width:1180px}.reason-cell[data-v-5fbf5b2d]{max-width:260px;white-space:normal;line-height:1.5}.leave-status[data-v-5fbf5b2d]{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:13px;font-weight:700}.leave-status.pending[data-v-5fbf5b2d]{color:#92400e;background:#fef3c7}.leave-status.approved[data-v-5fbf5b2d]{color:#166534;background:#dcfce7}.leave-status.rejected[data-v-5fbf5b2d]{color:#991b1b;background:#fee2e2}.leave-status.cancelled[data-v-5fbf5b2d]{color:#475569;background:#e2e8f0}.rule-layout[data-v-5fbf5b2d]{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:16px}.rule-people[data-v-5fbf5b2d],.rule-editor[data-v-5fbf5b2d]{padding:18px}.rule-people[data-v-5fbf5b2d]{align-self:start;display:grid;gap:14px}.rule-people select[data-v-5fbf5b2d],.add-approver select[data-v-5fbf5b2d]{min-height:40px;padding:0 10px;border:1px solid #cbd5e1;border-radius:6px;background:#fff}.rule-people p[data-v-5fbf5b2d],.rule-footer span[data-v-5fbf5b2d]{margin:0;color:#64748b;font-size:13px;line-height:1.7}.rule-editor[data-v-5fbf5b2d]{display:grid;gap:16px}.policy-note[data-v-5fbf5b2d]{margin:0;padding:10px 12px;border-left:4px solid #2563eb;color:#334155;background:#eff6ff;font-size:13px;line-height:1.6}.panel-heading>div[data-v-5fbf5b2d]{display:grid;gap:4px}.add-approver[data-v-5fbf5b2d]{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:8px}.add-approver button[data-v-5fbf5b2d]{color:#fff;border-color:#2563eb;background:#2563eb}.flow-list[data-v-5fbf5b2d]{display:grid;gap:8px;margin:0;padding:0;list-style:none}.flow-list li[data-v-5fbf5b2d]{display:grid;grid-template-columns:34px minmax(180px,1fr) 36px 36px 36px;gap:8px;align-items:center;padding:10px;border:1px solid #d8dee8;border-radius:6px;background:#f8fafc}.flow-list li div[data-v-5fbf5b2d]{display:grid;gap:3px}.flow-list small[data-v-5fbf5b2d]{color:#64748b}.step-no[data-v-5fbf5b2d]{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;color:#fff;background:#2563eb;font-weight:800}.flow-list button[data-v-5fbf5b2d]{width:34px;padding:0}.flow-list button.remove[data-v-5fbf5b2d]{color:#b91c1c;border-color:#fecaca}.rule-footer[data-v-5fbf5b2d]{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:12px;border-top:1px solid #e2e8f0}.rule-footer .primary-action[data-v-5fbf5b2d]{width:150px}@media(max-width:1250px){.leave-toolbar[data-v-5fbf5b2d]{grid-template-columns:repeat(3,minmax(150px,1fr))}.approval-panel[data-v-5fbf5b2d]{grid-template-columns:1fr 1fr}}@media(max-width:900px){.rule-layout[data-v-5fbf5b2d]{grid-template-columns:1fr}.leave-toolbar[data-v-5fbf5b2d]{grid-template-columns:1fr 1fr}}@media(max-width:600px){.topbar[data-v-5fbf5b2d]{align-items:stretch;flex-direction:column;gap:14px}.leave-summary[data-v-5fbf5b2d]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.leave-summary span[data-v-5fbf5b2d],.leave-summary strong[data-v-5fbf5b2d]{display:grid;min-height:44px;place-items:center;padding:6px;text-align:center}}.statistics-page[data-v-3b4c0e6d]{display:flex;flex-direction:column;gap:16px}.topbar{margin-bottom:4px}.toolbar{position:sticky;top:0;z-index:5;flex-wrap:wrap;margin-bottom:0;padding:12px;border:1px solid #d8dee8;border-radius:8px;background:#edf1f5f0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.metric-grid[data-v-3b4c0e6d]{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px}.metric-card[data-v-3b4c0e6d]{display:flex;flex-direction:column;gap:8px;min-height:96px;padding:16px;border:1px solid #d8dee8;border-radius:8px;background:#fff;box-shadow:0 8px 20px #1f29370a}.metric-card span[data-v-3b4c0e6d],.metric-card small[data-v-3b4c0e6d]{color:#64748b}.metric-card strong[data-v-3b4c0e6d]{color:#111827;font-size:30px;line-height:1}.metric-card.danger[data-v-3b4c0e6d]{border-color:#fecaca;background:#fff7f7}.metric-card.danger strong[data-v-3b4c0e6d]{color:#dc2626}.overdue-panel[data-v-3b4c0e6d]{border-color:#fecaca}.overdue-item span[data-v-3b4c0e6d]{color:#dc2626}.analysis-grid[data-v-3b4c0e6d]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.chart-panel[data-v-3b4c0e6d],.list-panel[data-v-3b4c0e6d]{min-width:0;padding:16px}.compact-panel[data-v-3b4c0e6d]{min-height:230px;max-height:270px;overflow:hidden}.data-panel[data-v-3b4c0e6d]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:300px;max-height:340px}.employee-panel[data-v-3b4c0e6d]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:430px;max-height:500px;padding:16px}.wide-panel[data-v-3b4c0e6d]{grid-column:span 2}.bar-list[data-v-3b4c0e6d],.trend-list[data-v-3b4c0e6d],.compact-list[data-v-3b4c0e6d]{display:flex;flex-direction:column;gap:10px;min-height:0;margin-top:14px;overflow:auto}.bar-row[data-v-3b4c0e6d],.trend-item[data-v-3b4c0e6d],.compact-item[data-v-3b4c0e6d]{display:flex;align-items:center;justify-content:space-between;gap:12px}.bar-row span[data-v-3b4c0e6d],.compact-item strong[data-v-3b4c0e6d],.compact-item small[data-v-3b4c0e6d]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-row span[data-v-3b4c0e6d],.trend-item span[data-v-3b4c0e6d],.compact-item small[data-v-3b4c0e6d]{color:#64748b}.bar-row strong[data-v-3b4c0e6d],.trend-item strong[data-v-3b4c0e6d],.compact-item span[data-v-3b4c0e6d]{color:#111827;font-weight:800}.bar-track[data-v-3b4c0e6d]{flex:1;height:9px;overflow:hidden;border-radius:999px;background:#edf2f7}.bar-fill[data-v-3b4c0e6d]{height:100%;border-radius:999px}.bar-fill.blue[data-v-3b4c0e6d]{background:#2563eb}.bar-fill.green[data-v-3b4c0e6d]{background:#16a34a}.bar-fill.orange[data-v-3b4c0e6d]{background:#f97316}.bar-fill.slate[data-v-3b4c0e6d]{background:#475569}.bar-fill.violet[data-v-3b4c0e6d]{background:#7c3aed}.bar-fill.teal[data-v-3b4c0e6d]{background:#0f766e}.trend-item span[data-v-3b4c0e6d]{width:52px}.trend-item strong[data-v-3b4c0e6d]{min-width:36px;text-align:right}.compact-item[data-v-3b4c0e6d]{align-items:flex-start;min-height:58px;padding:10px 0;border-bottom:1px solid #e2e8f0}.compact-item[data-v-3b4c0e6d]:last-child{border-bottom:0}.compact-item div[data-v-3b4c0e6d]{display:flex;min-width:0;flex:1;flex-direction:column;gap:4px}.compact-item strong[data-v-3b4c0e6d]{color:#111827}.compact-item span[data-v-3b4c0e6d]{flex-shrink:0;max-width:220px;text-align:right}.order-item span[data-v-3b4c0e6d]{color:#475569;font-size:13px}.employee-table-wrap[data-v-3b4c0e6d]{min-height:0;margin-top:12px;overflow-x:auto;overflow-y:auto}.employee-table-wrap table[data-v-3b4c0e6d]{width:100%;min-width:880px;border-collapse:collapse}.employee-table-wrap th[data-v-3b4c0e6d],.employee-table-wrap td[data-v-3b4c0e6d]{padding:10px;border-bottom:1px solid #e2e8f0;color:#334155;text-align:left;white-space:nowrap}.employee-table-wrap th[data-v-3b4c0e6d]{position:sticky;top:0;z-index:1;background:#f8fafc;color:#64748b;font-size:13px;font-weight:800}.local-pagination[data-v-3b4c0e6d]{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:36px;margin-top:12px;padding-top:10px;border-top:1px solid #e2e8f0;color:#64748b;font-size:13px;font-weight:700}.local-pagination button[data-v-3b4c0e6d]{min-height:30px;padding:0 10px;border:1px solid #cbd5e1;border-radius:6px;color:#334155;background:#fff;cursor:pointer}.local-pagination button[data-v-3b4c0e6d]:disabled{color:#94a3b8;background:#f8fafc;cursor:not-allowed}.employee-table-wrap td strong[data-v-3b4c0e6d],.employee-table-wrap td small[data-v-3b4c0e6d]{display:block}.employee-table-wrap td strong[data-v-3b4c0e6d]{color:#111827}.employee-table-wrap td small[data-v-3b4c0e6d]{margin-top:4px;color:#64748b;font-size:12px}@media(max-width:1100px){.metric-grid[data-v-3b4c0e6d]{grid-template-columns:repeat(2,minmax(150px,1fr))}.analysis-grid[data-v-3b4c0e6d]{grid-template-columns:1fr}.wide-panel[data-v-3b4c0e6d]{grid-column:auto}}.role-scope-summary[data-v-1fadf881]{display:grid;gap:5px;padding:12px;border:1px solid #cbd5e1;border-left:4px solid #2563eb;border-radius:6px;background:#f8fafc;color:#334155}.role-scope-summary strong[data-v-1fadf881]{color:#0f172a}.role-scope-summary small[data-v-1fadf881]{color:#64748b}.permission-grid[data-v-1fadf881]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.permission-item[data-v-1fadf881]{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px!important;padding:8px 10px;border:1px solid #d8dee8;border-radius:6px;background:#f8fafc}.permission-item input[data-v-1fadf881]{width:auto;min-height:auto}.hidden-file[data-v-1fadf881]{display:none}.application-panel[data-v-1fadf881]{margin-bottom:16px}.application-toolbar[data-v-1fadf881]{display:grid;grid-template-columns:minmax(220px,1fr) 160px auto;gap:10px;margin-bottom:12px}.approval-backdrop[data-v-1fadf881]{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:16px;background:#0f172a7a}.approval-dialog[data-v-1fadf881]{width:min(560px,100%);max-height:calc(100vh - 32px);overflow-y:auto;padding:22px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;box-shadow:0 20px 48px #0f172a38}.approval-dialog-heading[data-v-1fadf881],.approval-actions[data-v-1fadf881]{display:flex;align-items:center;justify-content:space-between;gap:12px}.approval-dialog-heading small[data-v-1fadf881],.application-summary span[data-v-1fadf881]{color:#64748b}.approval-dialog-heading h3[data-v-1fadf881]{margin:4px 0 0}.dialog-close[data-v-1fadf881]{width:36px;min-width:36px;height:36px;padding:0;border:0;background:transparent;color:#64748b;font-size:26px;line-height:1}.application-summary[data-v-1fadf881]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0;padding:12px;border:1px solid #dbe4f0;border-radius:6px;background:#f8fafc}.application-summary div[data-v-1fadf881]{display:grid;gap:4px;min-width:0}.application-summary strong[data-v-1fadf881]{overflow-wrap:anywhere}.approval-form-grid[data-v-1fadf881]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.approval-form-grid label[data-v-1fadf881]{display:grid;gap:7px}.approval-actions[data-v-1fadf881]{justify-content:flex-end;margin-top:22px}.approval-actions .primary-action[data-v-1fadf881]{width:auto;min-width:120px}@media(max-width:640px){.application-summary[data-v-1fadf881],.approval-form-grid[data-v-1fadf881]{grid-template-columns:1fr}}.image-preview-group[data-v-dce4bbe5]{display:flex;flex-wrap:wrap;gap:10px;min-width:150px}.image-preview[data-v-dce4bbe5]{display:grid;grid-template-columns:52px minmax(48px,1fr);align-items:center;gap:8px;color:#334155;text-decoration:none}.image-preview img[data-v-dce4bbe5]{width:52px;height:52px;border-radius:6px;object-fit:cover;background:#f1f5f9}.image-preview span[data-v-dce4bbe5],.image-empty[data-v-dce4bbe5]{color:#64748b;font-size:12px;white-space:nowrap}.source-tag[data-v-dce4bbe5]{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;color:#1e40af;background:#dbeafe;font-size:12px;font-weight:800;white-space:nowrap}.source-tag.external[data-v-dce4bbe5]{color:#166534;background:#dcfce7}.source-tag.admin[data-v-dce4bbe5]{color:#7c2d12;background:#ffedd5}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;color:#1f2937;background:#edf1f5;font-family:Microsoft YaHei,PingFang SC,Arial,sans-serif}.app-shell{min-height:100vh;display:grid;grid-template-rows:minmax(0,1fr) auto}.site-footer{padding:14px 20px;border-top:1px solid #d8dee8;background:#fff;text-align:center;font-size:13px}.site-footer a{color:#64748b;text-decoration:none}.site-footer a:hover,.site-footer a:focus-visible{color:#1d4ed8;text-decoration:underline}button,input,textarea,select{font:inherit}.login-page{min-height:0;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,460px);align-items:center;gap:48px;width:min(1120px,100%);margin:0 auto;padding:48px 24px}.login-intro{min-width:0}.eyebrow{margin:0 0 12px;color:#2563eb;font-size:14px;font-weight:700}h1{margin:0;color:#111827;font-size:40px;line-height:1.25;letter-spacing:0}.summary{margin:18px 0 0;color:#4b5563;font-size:16px;line-height:1.8}.intro-list{display:inline-flex;flex-wrap:wrap;gap:12px;margin-top:28px}.intro-list span{padding:8px 12px;border:1px solid #ccd6e3;border-radius:8px;color:#334155;background:#fff;font-size:14px;font-weight:700}.login-card{padding:28px;border:1px solid #d8dee8;border-radius:8px;background:#fff;box-shadow:0 18px 45px #1f293714}.card-heading{margin-bottom:24px}.card-heading h2{margin:0;color:#111827;font-size:24px;line-height:1.3;letter-spacing:0}.login-form{display:grid;gap:18px}.login-form label{display:grid;gap:8px;color:#374151;font-size:14px;font-weight:700}.login-form input{width:100%;height:44px;padding:0 12px;border:1px solid #cbd5e1;border-radius:6px;outline:none;color:#111827;background:#fff}.login-form input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb24}.login-form button{height:44px;border:0;border-radius:6px;color:#fff;background:#2563eb;font-weight:700;cursor:pointer}.login-form button:disabled{cursor:not-allowed;background:#93a4bd}.message{margin:16px 0 0;padding:10px 12px;border-radius:6px;font-size:14px;font-weight:700}.message.success{color:#166534;background:#dcfce7}.message.error{color:#991b1b;background:#fee2e2}.user-panel{display:grid;gap:4px;margin-top:16px;padding:12px;border:1px solid #d8dee8;border-radius:6px;background:#f8fafc}.user-panel span,.user-panel small{color:#64748b;font-size:13px}.user-panel strong{color:#111827;font-size:16px}@media(max-width:800px){.login-page{grid-template-columns:1fr;gap:28px}h1{font-size:26px}}.admin-layout{min-height:0;display:grid;grid-template-columns:240px minmax(0,1fr);background:#edf1f5}.sidebar{display:flex;flex-direction:column;gap:28px;padding:24px;border-right:1px solid #d8dee8;background:#fff}.sidebar h1{font-size:22px}.side-nav{display:grid;gap:8px}.side-nav button{min-height:40px;padding:0 12px;border:0;border-radius:6px;color:#475569;background:transparent;text-align:left;font-weight:700}.side-nav button.active{color:#1d4ed8;background:#eff6ff}.side-nav button:disabled{color:#94a3b8;cursor:not-allowed}.content-area{min-width:0;padding:24px}.topbar,.toolbar,.panel-heading,.topbar-user,.row-actions{display:flex;align-items:center}.topbar{justify-content:space-between;gap:16px;margin-bottom:20px}.topbar h2{margin:0;color:#111827;font-size:28px;letter-spacing:0}.topbar-user{gap:12px}.topbar-user span{color:#475569;font-weight:700}.topbar-user button,.toolbar button,.row-actions button,.text-button{min-height:36px;padding:0 12px;border:1px solid #cbd5e1;border-radius:6px;color:#334155;background:#fff;cursor:pointer}.toolbar{gap:10px;margin-bottom:16px}.toolbar input{width:min(360px,100%);height:40px;padding:0 12px;border:1px solid #cbd5e1;border-radius:6px;outline:none;background:#fff}.toolbar select{width:min(260px,100%);height:40px;padding:0 10px;border:1px solid #cbd5e1;border-radius:6px;outline:none;background:#fff}.toolbar button{color:#fff;border-color:#2563eb;background:#2563eb;font-weight:700}.toolbar button.secondary{color:#1d4ed8;border-color:#bfdbfe;background:#eff6ff}.management-grid{display:grid;grid-template-columns:minmax(320px,380px) minmax(0,1fr);gap:18px}.panel{border:1px solid #d8dee8;border-radius:8px;background:#fff;box-shadow:0 12px 28px #1f29370f}.form-panel{display:grid;align-self:start;gap:16px;padding:20px}.form-stack{display:grid;align-self:start;gap:18px}.panel-heading{justify-content:space-between;gap:12px}.panel-heading h3{margin:0;color:#111827;font-size:18px}.sub-heading{margin-top:26px}.panel-heading span,.text-button{color:#64748b;font-size:13px}.form-panel label{display:grid;gap:8px;color:#374151;font-size:14px;font-weight:700}.form-panel input,.form-panel select,.form-panel textarea{width:100%;min-height:40px;padding:9px 10px;border:1px solid #cbd5e1;border-radius:6px;outline:none;color:#111827;background:#fff}.form-panel textarea{resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.primary-action{height:42px;border:0;border-radius:6px;color:#fff;background:#2563eb;font-weight:700;cursor:pointer}.primary-action:disabled{background:#93a4bd;cursor:not-allowed}.table-panel{min-width:0;padding:20px}.global-user{justify-content:flex-end;margin-bottom:16px}.context-pill{padding:8px 12px;border:1px solid #bfdbfe;border-radius:999px;color:#1d4ed8;background:#eff6ff;font-size:14px;font-weight:700}.table-wrap{width:100%;margin-top:16px;overflow-x:auto}table{width:100%;min-width:720px;border-collapse:collapse}th,td{padding:14px 12px;border-bottom:1px solid #e2e8f0;text-align:left;vertical-align:middle}th{color:#64748b;font-size:13px;background:#f8fafc}td{color:#334155;font-size:14px}td strong,td small{display:block}td strong{color:#111827}td small{margin-top:4px;color:#64748b}.status-tag{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:999px;color:#166534;background:#dcfce7;font-size:13px;font-weight:700}.status-tag.disabled{color:#7f1d1d;background:#fee2e2}.stock-number{color:#166534;font-weight:800}.stock-number.warning{color:#b91c1c}.row-actions{gap:8px}.wrap-actions{flex-wrap:wrap}.row-actions button{font-size:13px}.row-actions button.danger{color:#b91c1c;border-color:#fecaca}.empty-cell{height:120px;color:#64748b;text-align:center}.pagination-bar{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:12px;color:#475569;font-size:13px;font-weight:700}.pagination-bar button{min-height:32px;padding:0 10px;border:1px solid #cbd5e1;border-radius:6px;color:#334155;background:#fff;cursor:pointer}.pagination-bar button:disabled{color:#94a3b8;background:#f8fafc;cursor:not-allowed}.pagination-bar.compact-pagination{justify-content:space-between;gap:6px}@media(max-width:980px){.admin-layout{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid #d8dee8}.side-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.management-grid{grid-template-columns:1fr}}
