:root{color-scheme:dark}html,body{height:100%}body{margin:0;background:radial-gradient(1200px 700px at 20% 0%,rgba(0,212,170,.12),transparent 55%),radial-gradient(900px 600px at 80% 20%,rgba(88,166,255,.1),transparent 50%),#0c1117;font-family:ui-sans-serif,system-ui,-apple-system,PingFang SC,Microsoft YaHei,Arial,sans-serif}*{box-sizing:border-box}#app{min-height:100%}.app-dlg-mask[data-v-e33c1b90]{position:fixed;inset:0;z-index:99990;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000094;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:app-dlg-fade-in-e33c1b90 .18s ease-out}@keyframes app-dlg-fade-in-e33c1b90{0%{opacity:0}to{opacity:1}}.app-dlg-window[data-v-e33c1b90]{width:min(420px,100%);max-height:min(85vh,560px);display:flex;flex-direction:column;background:linear-gradient(165deg,#1c2128fa,#12161cfc);border:1px solid rgba(255,255,255,.12);border-radius:16px;box-shadow:0 0 0 1px #00d4aa0f,0 24px 64px #0000008c,0 0 80px #00d4aa0a;overflow:hidden;animation:app-dlg-pop-e33c1b90 .22s cubic-bezier(.22,1,.36,1)}@keyframes app-dlg-pop-e33c1b90{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.app-dlg-window--alert[data-v-e33c1b90]{width:min(400px,100%)}.app-dlg-window--auth[data-v-e33c1b90]{width:min(460px,100%)}.app-dlg-head[data-v-e33c1b90]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px 12px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.app-dlg-title[data-v-e33c1b90]{margin:0;font-size:17px;font-weight:700;letter-spacing:-.02em;color:#fffffff0}.app-dlg-close[data-v-e33c1b90]{flex-shrink:0;width:36px;height:36px;display:grid;place-items:center;margin:-6px -8px -6px 0;border:none;border-radius:10px;background:transparent;color:#ffffff73;font-size:22px;line-height:1;cursor:pointer;transition:color .15s,background .15s}.app-dlg-close[data-v-e33c1b90]:hover{color:#ffffffe6;background:#ffffff0f}.app-dlg-body[data-v-e33c1b90]{padding:18px 20px 20px;overflow-y:auto;flex:1;min-height:0}.app-dlg-msg[data-v-e33c1b90]{margin:0;font-size:14px;line-height:1.65;color:#ffffffc7;white-space:pre-wrap;word-break:break-word}.app-dlg-foot[data-v-e33c1b90]{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:14px 18px 16px;border-top:1px solid rgba(255,255,255,.08);background:#0003;flex-shrink:0}.app-dlg-foot--single[data-v-e33c1b90]{justify-content:center}.app-dlg-btn[data-v-e33c1b90]{min-width:88px;padding:10px 18px;border-radius:10px;font-size:14px;font-weight:650;cursor:pointer;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:#ffffffe0;transition:background .15s,border-color .15s,transform .1s}.app-dlg-btn[data-v-e33c1b90]:hover{background:#ffffff1a;border-color:#fff3}.app-dlg-btn[data-v-e33c1b90]:active{transform:scale(.98)}.app-dlg-btn-primary[data-v-e33c1b90]{border-color:#00d4aa73;background:linear-gradient(180deg,#00d4aa38,#00b49124);color:#e8fff9;text-shadow:0 1px 2px rgba(0,0,0,.25)}.app-dlg-btn-primary[data-v-e33c1b90]:hover{border-color:#00d4aaa6;background:linear-gradient(180deg,#00d4aa52,#00b49138)}.app-dlg-btn-primary.is-danger[data-v-e33c1b90]{border-color:#f8514980;background:linear-gradient(180deg,#f8514947,#b428282e);color:#fff}.app-dlg-btn-primary.is-danger[data-v-e33c1b90]:hover{border-color:#f85149bf;background:linear-gradient(180deg,#f8514961,#b4282842)}.app-dlg-btn-primary.is-warning[data-v-e33c1b90]{border-color:#d299228c;background:linear-gradient(180deg,#d2992247,#a064142e);color:#fff8e8}.app-dlg-btn-primary.is-warning[data-v-e33c1b90]:hover{border-color:#d29922bf;background:linear-gradient(180deg,#d2992261,#a0641442)}.app-auth-form[data-v-e33c1b90]{display:grid;gap:10px;margin-top:14px}.app-auth-field[data-v-e33c1b90]{display:grid;gap:6px}.app-auth-field>span[data-v-e33c1b90]{font-size:12px;color:#ffffffb3}.app-auth-input[data-v-e33c1b90]{width:100%;border-radius:10px;padding:10px 12px;border:1px solid rgba(255,255,255,.16);background:#ffffff0f;color:#fffffff2;outline:none}.app-auth-input[data-v-e33c1b90]:focus{border-color:#00d4aa8c;box-shadow:0 0 0 3px #00d4aa29}.page-head[data-v-763941a4]{margin-bottom:14px;border-radius:18px;padding:16px 16px 14px;border:1px solid #e5e7eb;background:radial-gradient(900px 220px at 10% 0%,rgba(129,140,248,.18),transparent 60%),radial-gradient(900px 240px at 90% 30%,rgba(56,189,248,.16),transparent 55%),#fff;box-shadow:0 18px 40px #94a3b873}.page-head-inner[data-v-763941a4]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.head-left[data-v-763941a4]{display:grid;gap:8px}.head-sub[data-v-763941a4]{margin:0;color:#6b7280;font-size:13px;line-height:1.5}.head-tags[data-v-763941a4]{display:flex;gap:8px;flex-wrap:wrap}.chip[data-v-763941a4]{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;border:1px solid #e5e7eb;background:#f3f4f6;color:#374151;font-size:12px;font-weight:700}.chip-warn[data-v-763941a4]{border-color:#facc15;background:#fef9c3;color:#854d0e}.chip-ok[data-v-763941a4]{border-color:#4ade80;background:#dcfce7;color:#166534}.head-title[data-v-763941a4]{margin:0;font-size:22px;font-weight:900;letter-spacing:-.02em;color:#111827}.head-actions[data-v-763941a4]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.head-actions[data-v-763941a4] .btn--head{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:7px 12px;font-size:13px;line-height:1.2;white-space:nowrap;width:auto;height:auto;min-width:0;min-height:0;border-radius:999px}.head-actions[data-v-763941a4] .btn--head .btn-ico{width:14px;height:14px;flex-shrink:0}.page[data-v-d6decd54]{padding:24px;background:#f5f7fb;color:#111827}.error-banner[data-v-d6decd54]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid #fecaca;background:#fef2f2;box-shadow:0 8px 18px #f8717126;margin-bottom:14px}.error-dot[data-v-d6decd54]{width:10px;height:10px;border-radius:999px;background:#ef4444;box-shadow:0 0 0 6px #ef444429}.error-text[data-v-d6decd54]{flex:1;color:#b91c1c;font-size:13px}.error-link[data-v-d6decd54]{color:#2563eb;text-decoration:none;font-size:13px;font-weight:650;white-space:nowrap}.error-link[data-v-d6decd54]:hover{text-decoration:underline}.page-header[data-v-d6decd54]{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.title h1[data-v-d6decd54]{margin:0 0 6px;font-size:26px;letter-spacing:-.02em;color:#111827}.title p[data-v-d6decd54]{margin:0;color:#6b7280}.module-select[data-v-d6decd54]{display:flex;align-items:center;gap:8px}.label[data-v-d6decd54]{color:#6b7280;font-size:13px}.card[data-v-d6decd54]{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:18px;box-shadow:0 10px 25px #0f172a14}.mp-stats-hint[data-v-d6decd54]{font-size:13px;line-height:1.5;margin:0 0 14px}.mp-date-input[data-v-d6decd54]{padding:8px 10px;border-radius:8px;border:1px solid #d1d5db;font-size:13px;min-width:140px}.card-head[data-v-d6decd54]{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.card-head-personnel-top[data-v-d6decd54]{align-items:flex-start}.card-head-personnel-top .card-desc[data-v-d6decd54]{margin:6px 0 0;font-size:12px;max-width:52em;line-height:1.45}.card-desc[data-v-d6decd54]{margin:6px 0 0;font-size:12px;max-width:48em;line-height:1.45}.overtime-settings-panel[data-v-d6decd54]{margin-bottom:14px;padding:14px;border-radius:12px;border:1px solid #e0e7ff;background:#f8fafc}.overtime-settings-grid[data-v-d6decd54]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 16px;margin-bottom:10px}.field-inline .label[data-v-d6decd54]{display:block;margin-bottom:6px;font-size:13px;color:#475569}.field-inline .hint[data-v-d6decd54]{display:block;margin-top:4px;font-size:11px;line-height:1.35}.small-input[data-v-d6decd54]{width:100%;max-width:140px;padding:8px 10px;border-radius:8px;border:1px solid #d1d5db;font-size:14px}.overtime-formula[data-v-d6decd54]{margin:0 0 12px;font-size:12px;line-height:1.5}.overtime-summary-strip[data-v-d6decd54]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.detail-overtime-wrap[data-v-d6decd54]{margin-bottom:20px;max-height:min(420px,50vh)}.card-personnel .personnel-pager[data-v-d6decd54]{display:flex;justify-content:flex-end;margin-top:12px;padding-top:12px;border-top:1px solid #e5e7eb}.card-personnel .personnel-pager .pager[data-v-d6decd54]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}h2[data-v-d6decd54]{margin:0;font-size:16px;color:#111827}.filters[data-v-d6decd54]{display:flex;gap:8px;flex-wrap:wrap}.pager[data-v-d6decd54]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.muted[data-v-d6decd54]{color:#9ca3af;font-size:13px}.strong[data-v-d6decd54]{font-weight:650}.accent[data-v-d6decd54]{color:#2563eb;font-weight:650}.empty[data-v-d6decd54]{padding:18px 4px;color:#9ca3af}.table-wrap[data-v-d6decd54]{overflow:auto}.table[data-v-d6decd54]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-d6decd54],.table td[data-v-d6decd54]{padding:10px;border-bottom:1px solid #e5e7eb;text-align:left;white-space:nowrap;vertical-align:middle}.table th[data-v-d6decd54]{color:#6b7280;font-weight:600;background-color:#f3f4f6}.table tbody tr[data-v-d6decd54]:nth-child(2n){background-color:#f9fafb}.table tbody tr[data-v-d6decd54]:hover{background-color:#e5f0ff}.avatar[data-v-d6decd54]{width:34px;height:34px;border-radius:999px;object-fit:cover;display:inline-block;border:1px solid #e5e7eb;background:#f9fafb}.avatar.ph[data-v-d6decd54]{display:inline-flex;align-items:center;justify-content:center;color:#9ca3af;font-size:12px}.table th[data-v-d6decd54]:first-child,.table td[data-v-d6decd54]:first-child{width:52px}.modal-mask[data-v-d6decd54]{position:fixed;inset:0;background:#0f172a52;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:50}.drawer[data-v-d6decd54]{width:560px;max-width:calc(100vw - 48px);max-height:calc(100vh - 48px);display:flex;flex-direction:column;background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 22px 60px #0f172a52;overflow:hidden;animation:modalIn-d6decd54 .18s ease-out}.drawer-head[data-v-d6decd54]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px 10px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.drawer-title[data-v-d6decd54]{color:#111827;font-weight:900;letter-spacing:-.02em}.drawer-sub[data-v-d6decd54]{margin-top:4px}.drawer-body[data-v-d6decd54]{flex:1;overflow:auto;display:grid;grid-template-columns:220px 1fr;gap:14px;padding:16px}.avatar-panel[data-v-d6decd54]{border:1px solid #e5e7eb;background:#f9fafb;border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:10px}.avatar-big[data-v-d6decd54]{width:100%;aspect-ratio:1 / 1;border-radius:18px;overflow:hidden;border:1px solid #e5e7eb;background:#f3f4f6;display:grid;place-items:center}.avatar-big img[data-v-d6decd54]{width:100%;height:100%;object-fit:cover;display:block}.avatar-big-ph[data-v-d6decd54]{color:#9ca3af;font-size:14px}.upload-btn[data-v-d6decd54]{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border-radius:14px;border:1px dashed #2563eb;background:#eff6ff;color:#1d4ed8;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none}.upload-btn.disabled[data-v-d6decd54]{opacity:.7;cursor:not-allowed}.upload-btn input[data-v-d6decd54]{display:none}.form-panel[data-v-d6decd54]{display:grid;gap:12px}.section[data-v-d6decd54]{border:1px solid #e5e7eb;background:#fff;border-radius:16px;padding:14px}.section-title[data-v-d6decd54]{color:#111827;font-weight:700;margin-bottom:10px}.grid2[data-v-d6decd54]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.hint[data-v-d6decd54]{margin-top:6px}.drawer-foot[data-v-d6decd54]{display:flex;justify-content:flex-end;gap:10px;padding:12px 16px 14px;border-top:1px solid #e5e7eb;background:#f9fafb}@media(max-width:640px){.drawer[data-v-d6decd54]{max-width:calc(100vw - 32px)}.drawer-body[data-v-d6decd54],.grid2[data-v-d6decd54]{grid-template-columns:1fr}}@keyframes modalIn-d6decd54{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.drawer[data-v-d6decd54]{animation:none}}.select[data-v-d6decd54]{background:#fff;border:1px solid #d1d5db;color:#111827;border-radius:10px;padding:8px 10px;outline:none;font-size:14px}.select.small[data-v-d6decd54]{padding:6px 10px;font-size:13px}.btn[data-v-d6decd54]{background:#fff;border:1px solid #d1d5db;color:#111827;border-radius:999px;padding:8px 12px;cursor:pointer;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:4px;transition:background .15s ease,box-shadow .15s ease,transform .08s ease}.btn[data-v-d6decd54]:hover:not(:disabled){background:#f3f4f6}.btn[data-v-d6decd54]:disabled{opacity:.5;cursor:not-allowed}@media(max-width:760px){.page[data-v-d6decd54]{padding:18px}.stats-checkin-body[data-v-d6decd54]{grid-template-columns:1fr}.stats-checkin-toprow[data-v-d6decd54]{flex-direction:column;align-items:stretch}.stats-checkin-toolbar[data-v-d6decd54]{width:100%;justify-content:flex-start}.stats-select--view[data-v-d6decd54]{flex:1 1 100px;width:auto}.stats-select--range[data-v-d6decd54]{flex:0 0 72px}.stats-select--person[data-v-d6decd54]{flex:1 1 100px;width:auto;max-width:none}.stats-select[data-v-d6decd54]{flex:1 1 100px;min-width:0}}.stats-checkin-card[data-v-d6decd54]{overflow:hidden;border:1px solid #e0e7ff;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 14px 40px #2563eb14,0 2px #fffc inset;padding:12px 14px}.stats-checkin-hero[data-v-d6decd54]{margin:-2px -2px 8px;padding:0 0 8px;border-bottom:1px solid #e5e7eb}.stats-checkin-toprow[data-v-d6decd54]{display:flex;align-items:center;justify-content:space-between;gap:8px 10px;flex-wrap:wrap}.stats-checkin-title[data-v-d6decd54]{margin:0;font-size:15px;font-weight:800;letter-spacing:-.02em;color:#0f172a;line-height:1.2}.stats-checkin-lead[data-v-d6decd54]{margin:6px 0 0;font-size:11px;line-height:1.35;color:#94a3b8}.stats-checkin-toolbar[data-v-d6decd54]{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end;flex:1 1 auto;min-width:0}.stats-select[data-v-d6decd54]{min-width:0;padding:4px 8px!important;font-size:12px!important;border-radius:8px;max-width:100%}.stats-select--view[data-v-d6decd54]{width:118px;flex:0 0 auto}.stats-select--range[data-v-d6decd54]{width:76px;flex:0 0 auto}.stats-select--person[data-v-d6decd54]{width:min(120px,28vw);flex:0 1 auto}.stats-refresh-btn[data-v-d6decd54]{border-radius:8px;padding:4px 10px!important;font-size:12px!important;font-weight:650;flex:0 0 auto;background:linear-gradient(180deg,#eff6ff,#dbeafe);border-color:#93c5fd;color:#1d4ed8}.stats-refresh-btn[data-v-d6decd54]:hover:not(:disabled){background:linear-gradient(180deg,#dbeafe,#bfdbfe)}.stats-range-bar[data-v-d6decd54]{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;padding:4px 8px;margin-bottom:10px;border-radius:8px;background:#f1f5f9;border:1px solid #e2e8f0;font-size:11px}.stats-range-label[data-v-d6decd54]{color:#64748b;font-weight:600}.stats-range-value[data-v-d6decd54]{font-variant-numeric:tabular-nums;color:#0f172a;font-weight:650}.stats-checkin-loading[data-v-d6decd54]{display:flex;align-items:center;justify-content:center;gap:12px;padding:36px 12px;color:#64748b;font-size:14px}.stats-spinner[data-v-d6decd54]{width:22px;height:22px;border-radius:50%;border:2px solid #e2e8f0;border-top-color:#2563eb;animation:stats-spin-d6decd54 .75s linear infinite}@keyframes stats-spin-d6decd54{to{transform:rotate(360deg)}}.stats-kpi-strip[data-v-d6decd54]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}.kpi-tile[data-v-d6decd54]{border-radius:12px;padding:12px 14px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 4px 14px #0f172a0a}.kpi-tile--primary[data-v-d6decd54]{border-color:#bfdbfe;background:linear-gradient(135deg,#eff6ff,#fff 55%);box-shadow:0 6px 18px #2563eb1a}.kpi-label[data-v-d6decd54]{display:block;font-size:12px;color:#64748b;font-weight:600;margin-bottom:4px}.kpi-value[data-v-d6decd54]{font-size:22px;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums}.kpi-tile--primary .kpi-value[data-v-d6decd54]{color:#1d4ed8}.stats-checkin-body[data-v-d6decd54]{display:grid;grid-template-columns:minmax(220px,.92fr) minmax(0,1.28fr);gap:12px;align-items:start}.stats-checkin-body--current[data-v-d6decd54]{grid-template-columns:minmax(220px,.92fr) minmax(0,1.28fr)}.stats-chart-aside[data-v-d6decd54]{border-radius:10px;padding:10px 10px 8px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 4px 14px #0f172a0a}.stats-panel-head[data-v-d6decd54]{margin-bottom:8px}.stats-panel-head h3[data-v-d6decd54]{margin:0 0 2px;font-size:13px;font-weight:800;color:#0f172a}.stats-panel-sub[data-v-d6decd54]{font-size:11px;line-height:1.35}.stats-empty[data-v-d6decd54]{padding:20px 8px!important;text-align:center;font-size:13px}.stats-svg-wrap[data-v-d6decd54]{width:100%;height:112px;margin-bottom:8px;border-radius:8px;overflow:hidden;border:1px solid #e2e8f0;background:#f8fafc}.stats-svg-wrap--rank[data-v-d6decd54]{height:auto;min-height:0;max-width:100%;aspect-ratio:340 / 132;overflow:visible;margin-bottom:10px}.stats-svg[data-v-d6decd54]{width:100%;height:100%;display:block}.stats-svg--rank[data-v-d6decd54]{height:auto;max-height:none}.stats-chart-rect[data-v-d6decd54]{fill:#f8fafc}.stats-grid-line[data-v-d6decd54]{stroke:#e2e8f0;stroke-width:1}.stats-axis-x[data-v-d6decd54]{stroke:#cbd5e1;stroke-width:1.25}.stats-guide-v[data-v-d6decd54]{stroke:#e2e8f0;stroke-width:1;stroke-dasharray:4 5}.stats-axis-y[data-v-d6decd54]{font-size:11px;font-weight:700;fill:#64748b}.stats-point-val[data-v-d6decd54]{font-size:11px;font-weight:800;fill:#1d4ed8}.stats-point-val--cyan[data-v-d6decd54]{fill:#0e7490}.stats-axis-xlabel[data-v-d6decd54]{font-size:9px;font-weight:650;fill:#334155}.stats-rank-tick[data-v-d6decd54]{font-size:8px;font-weight:700;fill:#94a3b8}.stats-line-dot[data-v-d6decd54]{fill:#fff;stroke:#2563eb;stroke-width:1.8}.stats-line-dot--cyan[data-v-d6decd54]{stroke:#0891b2}.stats-hbar-list[data-v-d6decd54]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:280px;overflow:auto}.stats-hbar-row[data-v-d6decd54]{display:grid;grid-template-columns:26px minmax(0,1fr) minmax(72px,2.2fr) 36px;gap:6px 8px;align-items:center;font-size:12px}.stats-hbar-rank[data-v-d6decd54]{font-size:10px;font-weight:800;color:#94a3b8;text-align:center;font-variant-numeric:tabular-nums}.stats-hbar-name[data-v-d6decd54]{color:#334155;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-hbar-track[data-v-d6decd54]{height:8px;border-radius:999px;background:#e2e8f0;overflow:hidden}.stats-hbar-fill[data-v-d6decd54]{height:100%;border-radius:inherit;background:linear-gradient(90deg,#3b82f6,#6366f1);min-width:4px;transition:width .35s ease}.stats-hbar-fill--cyan[data-v-d6decd54]{background:linear-gradient(90deg,#06b6d4,#2563eb)}.stats-hbar-num[data-v-d6decd54]{text-align:right;font-weight:800;font-variant-numeric:tabular-nums;color:#1e293b}.stats-table-panel[data-v-d6decd54]{min-width:0;border-radius:10px;padding:10px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 4px 14px #0f172a0a}.stats-table-wrap[data-v-d6decd54]{border-radius:8px;border:1px solid #e5e7eb;max-height:min(480px,58vh)}.stats-table[data-v-d6decd54]{font-size:12px}.stats-table th[data-v-d6decd54],.stats-table td[data-v-d6decd54]{padding:7px 8px}.stats-table th[data-v-d6decd54]{position:sticky;top:0;z-index:1;background:linear-gradient(180deg,#f8fafc,#f1f5f9);color:#475569;border-bottom:1px solid #e2e8f0;box-shadow:0 1px #e2e8f0}.stats-table td[data-v-d6decd54]{border-bottom:1px solid #f1f5f9}.stats-table tbody tr[data-v-d6decd54]:hover{background:linear-gradient(90deg,#eff6ff,#fff)}.stats-col-bar[data-v-d6decd54]{width:96px;text-align:left}.stats-td-name[data-v-d6decd54]{white-space:nowrap}.stats-td-project[data-v-d6decd54]{white-space:normal;max-width:220px;color:#334155;line-height:1.35}.stats-td-num[data-v-d6decd54]{font-variant-numeric:tabular-nums;white-space:nowrap}.stats-td-bar[data-v-d6decd54]{vertical-align:middle}.stats-row-bar-track[data-v-d6decd54]{height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden;min-width:56px}.stats-row-bar-fill[data-v-d6decd54]{height:100%;border-radius:inherit;background:linear-gradient(90deg,#93c5fd,#2563eb);min-width:4px;transition:width .35s ease}.stats-td-time[data-v-d6decd54]{white-space:nowrap;font-size:12px}.stats-td-addr[data-v-d6decd54]{white-space:normal;max-width:280px;line-height:1.35;font-size:12px}.stats-table--wide .stats-td-addr[data-v-d6decd54]{max-width:360px}@media(max-width:960px){.stats-kpi-strip[data-v-d6decd54],.stats-checkin-body[data-v-d6decd54],.stats-checkin-body--current[data-v-d6decd54]{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.stats-spinner[data-v-d6decd54]{animation:none;border-top-color:#94a3b8}.stats-hbar-fill[data-v-d6decd54],.stats-row-bar-fill[data-v-d6decd54]{transition:none}}.shell[data-v-629b91dd]{min-height:100vh;transition:background .35s ease;display:flex}.shell.dark[data-v-629b91dd]{background:radial-gradient(1200px 700px at 20% 0%,rgba(0,212,170,.12),transparent 55%),radial-gradient(900px 600px at 80% 20%,rgba(88,166,255,.1),transparent 50%),#0c1117}.shell.light[data-v-629b91dd]{background:#cbd5e1}.sidebar[data-v-629b91dd]{width:210px;flex:0 0 210px;min-height:100vh;position:sticky;top:0;align-self:flex-start;border-right:1px solid rgba(255,255,255,.08);transition:width .2s ease,flex-basis .2s ease;display:flex;flex-direction:column}.sidebar.collapsed[data-v-629b91dd]{width:62px;flex-basis:62px}.shell.light .sidebar[data-v-629b91dd]{border-right:1px solid #cbd5e1;background:#ebeff4}.shell.dark .sidebar[data-v-629b91dd]{background:#0c1117d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.logo[data-v-629b91dd]{display:flex;align-items:center;gap:10px;padding:14px 14px 12px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.shell.light .logo[data-v-629b91dd]{border-bottom:1px solid #cbd5e1}.logo-text[data-v-629b91dd]{font-weight:900;letter-spacing:-.03em}.shell.dark .logo-text[data-v-629b91dd]{color:#ffffffeb}.shell.light .logo-text[data-v-629b91dd]{color:#0f172a}.brand-lottie[data-v-629b91dd]{width:36px;height:36px;flex-shrink:0}.brand-lottie[data-v-629b91dd] svg{width:100%;height:100%;display:block}.side-scroll[data-v-629b91dd]{flex:1 1 auto;min-height:0;overflow-y:auto;padding:10px 10px 16px;display:flex;flex-direction:column;gap:8px}.side-item[data-v-629b91dd],.side-group-btn[data-v-629b91dd]{text-decoration:none;display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid transparent;background:transparent;cursor:pointer;font-size:14px}.side-ico[data-v-629b91dd]{width:22px;height:22px;display:flex;align-items:center;justify-content:center;flex:0 0 22px;font-size:16px}.side-svg[data-v-629b91dd]{width:18px;height:18px;display:block}.shell.dark .side-item[data-v-629b91dd],.shell.dark .side-group-btn[data-v-629b91dd]{color:#ffffffb3}.shell.light .side-item[data-v-629b91dd],.shell.light .side-group-btn[data-v-629b91dd]{color:#334155}.shell.dark .side-item[data-v-629b91dd]:hover,.shell.dark .side-group-btn[data-v-629b91dd]:hover{background:#ffffff0d;color:#ffffffeb}.shell.light .side-item[data-v-629b91dd]:hover,.shell.light .side-group-btn[data-v-629b91dd]:hover{background:#0000000a;color:#0f172a}.side-item.active[data-v-629b91dd]{color:#00d4aa;border-color:#00d4aa38;background:#00d4aa1a}.side-item--badge-wrap[data-v-629b91dd]{position:relative}.side-badge[data-v-629b91dd]{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#f85149;color:#fff;font-size:11px;font-weight:800;line-height:1;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 0 0 1px #0003}.side-badge--secondary[data-v-629b91dd]{background:#facc15;color:#000}.side-sub-badge[data-v-629b91dd]{margin-left:auto;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#f85149;color:#fff;font-size:10px;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center}.shell.light .side-badge[data-v-629b91dd]{box-shadow:0 0 0 1px #ffffff59}.shell.light .side-badge--secondary[data-v-629b91dd]{background:#f59e0b;color:#111827;box-shadow:0 0 0 1px #94a3b8b3}.sidebar.collapsed .side-item--badge-wrap .side-badge[data-v-629b91dd]{position:absolute;top:2px;right:2px;margin-left:0;min-width:16px;height:16px;font-size:10px;padding:0 4px}.side-text[data-v-629b91dd]{display:inline}.sidebar.collapsed .side-text[data-v-629b91dd],.sidebar.collapsed .chev[data-v-629b91dd],.sidebar.collapsed .side-sub[data-v-629b91dd]{display:none}.sidebar.collapsed .side-item[data-v-629b91dd],.sidebar.collapsed .side-group-btn[data-v-629b91dd]{justify-content:center;padding:10px 8px}.sidebar.collapsed .side-ico[data-v-629b91dd]{font-size:18px}.side-footer[data-v-629b91dd]{flex-shrink:0;margin-top:auto;padding:10px;border-top:1px solid rgba(255,255,255,.08)}.shell.light .side-footer[data-v-629b91dd]{border-top:1px solid #cbd5e1}.collapse-btn[data-v-629b91dd]{width:100%;height:44px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:#ffffff0d;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#ffffffc7}.shell.light .collapse-btn[data-v-629b91dd]{border-color:#cbd5e1;background:#e2e8f0;color:#334155}.collapse-btn[data-v-629b91dd]:hover{border-color:#00d4aa40;color:#00d4aa}.collapse-svg[data-v-629b91dd]{width:22px;height:22px;display:block;opacity:.9;transition:transform .2s ease,opacity .2s ease}.collapse-svg.collapsed[data-v-629b91dd]{transform:rotate(180deg)}.side-sub[data-v-629b91dd]{margin-top:6px;margin-left:0;display:flex;flex-direction:column;gap:6px;width:100%}.side-sub-item[data-v-629b91dd]{text-decoration:none;display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;padding:8px 12px 8px 44px;border-radius:10px;font-size:13px;border:1px solid transparent;text-align:left}.side-sub-ico[data-v-629b91dd]{width:18px;height:18px;display:inline-grid;place-items:center;flex:0 0 auto;opacity:.92}.side-sub-svg[data-v-629b91dd]{width:18px;height:18px;display:block}.shell.dark .side-sub-item[data-v-629b91dd]{color:#ffffffad}.shell.light .side-sub-item[data-v-629b91dd]{color:#475569}.side-sub-item[data-v-629b91dd]:hover{background:#00d4aa1a;border-color:#00d4aa29;color:#00d4aa}.chev[data-v-629b91dd]{opacity:.7;font-size:12px;margin-left:auto}.content[data-v-629b91dd]{flex:1;min-width:0;display:flex;flex-direction:column}.topbar2[data-v-629b91dd]{position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px 8px 12px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.shell.dark .topbar2[data-v-629b91dd]{background:#0c1117a6;border-bottom:1px solid rgba(255,255,255,.08)}.shell.light .topbar2[data-v-629b91dd]{background:#ebeff4f0;border-bottom:1px solid #cbd5e1}.tabs[data-v-629b91dd]{display:flex;align-items:center;gap:6px;overflow:auto;flex:1 1 auto;min-width:0;padding:2px}.tab[data-v-629b91dd]{appearance:none;border:1px solid transparent;background:transparent;cursor:pointer;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;white-space:nowrap}.shell.dark .tab[data-v-629b91dd]{color:#ffffffb3}.shell.light .tab[data-v-629b91dd]{color:#334155}.tab[data-v-629b91dd]:hover{border-color:#00d4aa33;background:#00d4aa14;color:#00d4aa}.tab.active[data-v-629b91dd]{border-color:#00d4aa47;background:#00d4aa1a;color:#00d4aa;font-weight:750}.tab-x[data-v-629b91dd]{opacity:.8;border:1px solid rgba(255,255,255,.15);width:18px;height:18px;border-radius:99px;display:flex;align-items:center;justify-content:center;line-height:1}.shell.light .tab-x[data-v-629b91dd]{border-color:#cbd5e1}.tab-x[data-v-629b91dd]:hover{opacity:1}.user2[data-v-629b91dd]{display:flex;align-items:center;gap:10px;flex:0 0 auto}.notif-wrap[data-v-629b91dd]{position:relative}.notif-btn[data-v-629b91dd]{position:relative;padding:6px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.15);background:#ffffff0a;color:#ffffffbf;cursor:pointer}.shell.light .notif-btn[data-v-629b91dd]{border-color:#cbd5e1;background:#e2e8f0;color:#334155}.notif-btn[data-v-629b91dd]:hover{border-color:#00d4aa40;color:#00d4aa}.notif-ico[data-v-629b91dd]{font-size:16px;line-height:1}.notif-badge[data-v-629b91dd]{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 6px;border-radius:999px;background:#f85149;color:#fff;font-size:11px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #0c111799}.shell.light .notif-badge[data-v-629b91dd]{box-shadow:0 0 0 2px #fffc}.notif-pop[data-v-629b91dd]{position:absolute;right:0;top:calc(100% + 8px);width:360px;max-height:420px;overflow:auto;border-radius:14px;border:1px solid rgba(148,163,184,.22);background:#0f172ad9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 18px 50px #00000059;z-index:80}.shell.light .notif-pop[data-v-629b91dd]{background:#fffffffa;border-color:#cbd5e1;box-shadow:0 18px 50px #0f172a29}.notif-head[data-v-629b91dd]{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid rgba(148,163,184,.18)}.shell.light .notif-head[data-v-629b91dd]{border-bottom:1px solid #e2e8f0}.notif-title[data-v-629b91dd]{font-weight:900;font-size:13px;color:#f8fafce6}.shell.light .notif-title[data-v-629b91dd]{color:#0f172a}.notif-all[data-v-629b91dd]{text-decoration:none;font-size:12px;font-weight:800;color:#5eead4eb;padding:6px 8px;border-radius:10px;border:1px solid rgba(94,234,212,.22);background:#5eead414}.shell.light .notif-all[data-v-629b91dd]{color:#1d4ed8;border-color:#1d4ed833;background:#1d4ed80f}.notif-all[data-v-629b91dd]:hover{border-color:#00d4aa59;color:#00d4aa}.shell.light .notif-all[data-v-629b91dd]:hover{border-color:#05966959;color:#059669}.notif-close[data-v-629b91dd]{border:none;background:transparent;cursor:pointer;font-size:18px;color:#94a3b8e6}.notif-empty[data-v-629b91dd]{padding:14px 12px;color:#94a3b8e6;font-size:12px}.shell.light .notif-empty[data-v-629b91dd]{color:#64748b}.notif-item[data-v-629b91dd]{width:100%;text-align:left;border:none;background:transparent;cursor:pointer;padding:10px 12px;border-bottom:1px solid rgba(148,163,184,.12)}.shell.light .notif-item[data-v-629b91dd]{border-bottom:1px solid #eef2f7}.notif-item[data-v-629b91dd]:hover{background:#38bdf81a}.shell.light .notif-item[data-v-629b91dd]:hover{background:#2563eb0f}.notif-item.unread .notif-item-title[data-v-629b91dd]{color:#5eead4}.shell.light .notif-item.unread .notif-item-title[data-v-629b91dd]{color:#1d4ed8}.notif-item-title[data-v-629b91dd]{font-weight:800;font-size:12px;color:#f8fafce0}.shell.light .notif-item-title[data-v-629b91dd]{color:#0f172a}.notif-item-body[data-v-629b91dd]{margin-top:4px;font-size:12px;color:#cbd5e1eb}.shell.light .notif-item-body[data-v-629b91dd]{color:#475569}.notif-item-time[data-v-629b91dd]{margin-top:6px;font-size:11px;color:#94a3b8e6}.shell.light .notif-item-time[data-v-629b91dd]{color:#94a3b8}.notif-reimb-sum[data-v-629b91dd]{margin-top:6px;display:flex;flex-direction:column;gap:3px}.notif-reimb-body[data-v-629b91dd]{margin-top:2px;font-size:12px;line-height:1.45;white-space:pre-line;color:#cbd5e1eb}.shell.light .notif-reimb-body[data-v-629b91dd]{color:#475569}.notif-kv[data-v-629b91dd]{display:flex;align-items:baseline;gap:8px;font-size:12px;line-height:1.35}.notif-kv .nk[data-v-629b91dd]{flex:0 0 auto;min-width:44px;font-size:11px;font-weight:800;color:#94a3b8f2}.shell.light .notif-kv .nk[data-v-629b91dd]{color:#64748b}.notif-kv .nv[data-v-629b91dd]{flex:1 1 auto;min-width:0;color:#e2e8f0eb;word-break:break-word}.shell.light .notif-kv .nv[data-v-629b91dd]{color:#0f172a}.notif-mono[data-v-629b91dd]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-variant-numeric:tabular-nums}.user-meta[data-v-629b91dd]{display:flex;flex-direction:column;align-items:flex-end;gap:2px;line-height:1.2}.user-position[data-v-629b91dd]{font-size:12px;opacity:.85}.shell.dark .user-position[data-v-629b91dd]{color:#ffffff80}.shell.light .user-position[data-v-629b91dd]{color:#64748b}.theme-btn2-trail[data-v-629b91dd]{margin-left:2px}.theme-btn2[data-v-629b91dd]{padding:6px 10px;border-radius:12px;border:1px solid transparent;background:transparent;cursor:pointer;font-size:16px;line-height:1}.shell.dark .theme-btn2[data-v-629b91dd]{border-color:#ffffff26}.shell.dark .theme-btn2[data-v-629b91dd]:hover{background:#ffffff0f}.shell.light .theme-btn2[data-v-629b91dd]{border-color:#cbd5e1}.shell.light .theme-btn2[data-v-629b91dd]:hover{background:#0000000a}.shell.dark .user-name[data-v-629b91dd]{color:#ffffffa6}.shell.light .user-name[data-v-629b91dd]{color:#64748b}.user-name[data-v-629b91dd]{font-size:13px}.user-profile-link[data-v-629b91dd]{text-decoration:none;display:inline-block;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;border-radius:8px;padding:4px 6px;margin:-4px -6px;transition:color .15s,background .15s}.shell.dark .user-profile-link[data-v-629b91dd]:hover{color:#00d4aa;background:#00d4aa14}.shell.light .user-profile-link[data-v-629b91dd]:hover{color:#059669;background:#05966914}.logout[data-v-629b91dd]{text-decoration:none;font-size:13px;padding:8px 10px;border-radius:12px;transition:border-color .2s,color .2s,background .2s}.shell.dark .logout[data-v-629b91dd]{color:#ffffffb8;border:1px solid rgba(255,255,255,.12);background:#ffffff0d}.shell.light .logout[data-v-629b91dd]{color:#475569;border:1px solid #cbd5e1;background:#e2e8f0}.logout[data-v-629b91dd]:hover{border-color:#00d4aa40;color:#00d4aa}.main[data-v-629b91dd]{width:100%;margin:0 auto;padding:18px;transition:background .35s ease}.shell.light .main[data-v-629b91dd]{background:#cbd5e1}.error-banner[data-v-629b91dd]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;border:1px solid rgba(248,81,73,.35);background:#f851491a;box-shadow:0 12px 28px #00000040;margin-bottom:14px}.error-dot2[data-v-629b91dd]{width:10px;height:10px;border-radius:99px;background:#f85149;box-shadow:0 0 0 6px #f851491f}.error-text[data-v-629b91dd]{flex:1;font-size:13px}.shell.dark .error-text[data-v-629b91dd]{color:#ffffffe0}.shell.light .error-text[data-v-629b91dd]{color:#b91c1c}.error-link[data-v-629b91dd]{color:#00d4aa;text-decoration:none;font-size:13px;font-weight:700;white-space:nowrap}.error-link[data-v-629b91dd]:hover{text-decoration:underline}.shell[data-v-629b91dd] input[type=checkbox]{cursor:pointer;width:16px;height:16px;flex-shrink:0}.shell.dark[data-v-629b91dd] input[type=checkbox]{accent-color:transparent;appearance:none;-webkit-appearance:none;border:2px solid rgba(255,255,255,.6);border-radius:4px;background:#fff3}.shell.dark[data-v-629b91dd] input[type=checkbox]:checked{background:#22c55e;border-color:#22c55e;box-shadow:0 0 0 2px #22c55e66;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23ffffff' stroke='%23ffffff' stroke-width='0.8' d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:12px 12px}.shell.light[data-v-629b91dd] input[type=checkbox]{accent-color:transparent;appearance:none;-webkit-appearance:none;border:2px solid #cbd5e1;border-radius:4px;background:#f1f4f8}.shell.light[data-v-629b91dd] input[type=checkbox]:checked{background:#00d4aa;border-color:#00d4aa;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23ffffff' d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:12px 12px}.shell.light[data-v-629b91dd] .page h1,.shell.light[data-v-629b91dd] .title h1{color:#0f172a!important}.shell.light[data-v-629b91dd] .page p,.shell.light[data-v-629b91dd] .title p,.shell.light[data-v-629b91dd] .head p{color:#64748b!important}.shell.light[data-v-629b91dd] .stat,.shell.light[data-v-629b91dd] .stat-card{background:#f1f4f8!important;border:1px solid #cbd5e1!important;box-shadow:0 4px 20px #0000000d!important}.shell.light[data-v-629b91dd] .stat .k,.shell.light[data-v-629b91dd] .stat-card .k{color:#64748b!important}.shell.light[data-v-629b91dd] .stat .v,.shell.light[data-v-629b91dd] .stat-card .v{color:#059669!important}.shell.light[data-v-629b91dd] .extra-k{color:#64748b!important}.shell.light[data-v-629b91dd] .extra-v{color:#059669!important}.shell.light[data-v-629b91dd] .card{background:#f1f4f8!important;border:1px solid #cbd5e1!important;box-shadow:0 4px 20px #0000000d!important}.shell.light[data-v-629b91dd] .card-head h2,.shell.light[data-v-629b91dd] .card h2,.shell.light[data-v-629b91dd] h2{color:#0f172a!important}.shell.light[data-v-629b91dd] .muted,.shell.light[data-v-629b91dd] .empty{color:#64748b!important}.shell.light[data-v-629b91dd] .table-wrap{background:#f1f4f8fa!important;border:1px solid #cbd5e1!important;box-shadow:0 4px 20px #0000000a!important}.shell.light[data-v-629b91dd] .table th{color:#64748b!important}.shell.light[data-v-629b91dd] .table td,.shell.light[data-v-629b91dd] .strong{color:#0f172a!important}.shell.light[data-v-629b91dd] .table .btn-sm{background:#e2e8f0!important;border:1px solid #cbd5e1!important;color:#334155!important;text-align:center!important}.shell.light[data-v-629b91dd] .table .btn-sm:hover{background:#cbd5e1!important}.shell.light[data-v-629b91dd] .table .btn-sm.success{color:#059669!important;border-color:#10b981!important}.shell.light[data-v-629b91dd] .table .btn-sm.success:hover{background:#10b9811a!important}.shell.light[data-v-629b91dd] .table .btn-sm.warning{color:#d97706!important;border-color:#f59e0b!important}.shell.light[data-v-629b91dd] .table .btn-sm.warning:hover{background:#f59e0b1a!important}.shell.light[data-v-629b91dd] .table .btn-sm.danger{color:#dc2626!important;border-color:#ef4444!important}.shell.light[data-v-629b91dd] .table .btn-sm.danger:hover{background:#ef444414!important}.shell.light[data-v-629b91dd] .table .result-badge{color:#334155!important}.shell.light[data-v-629b91dd] .table .result-badge.result-none{color:#64748b!important}.shell.light[data-v-629b91dd] .table .result-badge.result-ok{background:#22c55e1f!important;color:#059669!important}.shell.light[data-v-629b91dd] .table .result-badge.result-fail{background:#f871711f!important;color:#dc2626!important}.shell.light[data-v-629b91dd] .table .result-badge.result-disabled{color:#94a3b8!important}.shell.light[data-v-629b91dd] .row{background:#e8ecf2!important;border:1px solid #cbd5e1!important}.shell.light[data-v-629b91dd] .title{color:#0f172a!important}.shell.light[data-v-629b91dd] .label{color:#64748b!important}.shell.light[data-v-629b91dd] .input,.shell.light[data-v-629b91dd] input.input,.shell.light[data-v-629b91dd] .select,.shell.light[data-v-629b91dd] select.select{background:#e8ecf2!important;border:1px solid #cbd5e1!important;color:#0f172a!important}.shell.light[data-v-629b91dd] .btn{background:#dde3eb!important;border:1px solid #cbd5e1!important;color:#334155!important}.shell.light[data-v-629b91dd] .btn.primary{background:linear-gradient(135deg,#00d4aa,#00b894)!important;border-color:#00d4aa!important;color:#fff!important}.shell.light[data-v-629b91dd] .pill,.shell.light[data-v-629b91dd] .accent{color:#059669!important}.shell.light[data-v-629b91dd] .banner{background:#f8514914!important;border:1px solid rgba(248,81,73,.25)!important;color:#b91c1c!important}.shell.light[data-v-629b91dd] .modal-mask{background:#00000059}.shell.light[data-v-629b91dd] .modal,.shell.light[data-v-629b91dd] .drawer{background:#f1f4f8!important;border:1px solid #cbd5e1!important;box-shadow:0 25px 60px #0000001f!important}.shell.light[data-v-629b91dd] .modal-head,.shell.light[data-v-629b91dd] .drawer-head{border-bottom:1px solid #cbd5e1!important}.shell.light[data-v-629b91dd] .modal-title,.shell.light[data-v-629b91dd] .drawer-title{color:#0f172a!important}.shell.light[data-v-629b91dd] .drawer-sub{color:#64748b!important}.shell.light[data-v-629b91dd] .modal-body,.shell.light[data-v-629b91dd] .drawer-body{background:#f1f4f8!important}.shell.light[data-v-629b91dd] .modal-foot,.shell.light[data-v-629b91dd] .drawer-foot{border-top:1px solid #cbd5e1!important;background:#e8ecf2!important}.shell.light[data-v-629b91dd] .modal .icon,.shell.light[data-v-629b91dd] .drawer .icon,.shell.light[data-v-629b91dd] .modal .label,.shell.light[data-v-629b91dd] .drawer .label,.shell.light[data-v-629b91dd] .section-title{color:#64748b!important}.shell.light[data-v-629b91dd] .detail-modal .modal-body,.shell.light[data-v-629b91dd] .detail-modal .detail-grid,.shell.light[data-v-629b91dd] .detail-modal .detail-row .value,.shell.light[data-v-629b91dd] .detail-modal .detail-row span.value,.shell.light[data-v-629b91dd] .detail-modal .detail-row .value.address{color:#0f172a!important}.shell.light[data-v-629b91dd] .detail-modal .detail-row .value.link{color:#0284c7!important}.shell.light[data-v-629b91dd] .detail-modal .modal-head h3{color:#0f172a!important}.shell.light[data-v-629b91dd] .detail-modal .modal-close{color:#64748b!important}.shell.light[data-v-629b91dd] .detail-modal .modal-close:hover{color:#0f172a!important}.shell.light[data-v-629b91dd] .modal .input,.shell.light[data-v-629b91dd] .drawer .input,.shell.light[data-v-629b91dd] .modal input:not([type=checkbox]),.shell.light[data-v-629b91dd] .drawer input:not([type=checkbox]),.shell.light[data-v-629b91dd] .modal textarea,.shell.light[data-v-629b91dd] .drawer textarea{background:#e8ecf2!important;border:1px solid #cbd5e1!important;color:#0f172a!important}.shell.light[data-v-629b91dd] .modal input[type=checkbox]:checked,.shell.light[data-v-629b91dd] .drawer input[type=checkbox]:checked{background:#00d4aa!important;border-color:#00d4aa!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23ffffff' d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:center!important;background-size:12px 12px!important}.shell.light[data-v-629b91dd] .modal-banner{background:#f851491a!important;border:1px solid rgba(248,81,73,.3)!important;color:#b91c1c!important}.shell.light[data-v-629b91dd] .avatar-panel,.shell.light[data-v-629b91dd] .section,.shell.light[data-v-629b91dd] .form-panel .section{background:#e8ecf2!important;border:1px solid #cbd5e1!important}.shell.light[data-v-629b91dd] .avatar-big-ph,.shell.light[data-v-629b91dd] .hint,.shell.light[data-v-629b91dd] .muted{color:#64748b!important}.shell.light[data-v-629b91dd] .upload-btn{border-color:#00d4aa66!important;background:#00d4aa14!important;color:#059669!important}.shell.light[data-v-629b91dd] .modal .btn,.shell.light[data-v-629b91dd] .drawer .btn{background:#dde3eb!important;border:1px solid #cbd5e1!important;color:#334155!important}.shell.light[data-v-629b91dd] .modal .btn.primary,.shell.light[data-v-629b91dd] .drawer .btn.primary{background:linear-gradient(135deg,#00d4aa,#00b894)!important;border-color:#00d4aa!important;color:#fff!important}.shell.light[data-v-629b91dd] .modal .btn.danger,.shell.light[data-v-629b91dd] .drawer .btn.danger{border-color:#f8514966!important;background:#f8514914!important;color:#dc2626!important}.shell.light[data-v-629b91dd] .modal select,.shell.light[data-v-629b91dd] .drawer select{background:#e8ecf2!important;border:1px solid #cbd5e1!important;color:#0f172a!important}.shell.light[data-v-629b91dd] .pagination{background:#e8ecf2!important;border:1px solid #cbd5e1!important;border-top:none!important}.shell.light[data-v-629b91dd] .pagination-info,.shell.light[data-v-629b91dd] .pagination-page{color:#64748b!important}.shell.light[data-v-629b91dd] .pagination .btn{background:#f1f4f8!important;border:1px solid #cbd5e1!important;color:#334155!important}.shell.light[data-v-629b91dd] .pagination .btn:hover:not(:disabled){background:#00d4aa14!important;border-color:#00d4aa4d!important;color:#059669!important}.shell.light[data-v-629b91dd] .page-size-select{background:#f1f4f8!important;border:1px solid #cbd5e1!important;color:#334155!important}.shell.light[data-v-629b91dd] .col-check input[type=checkbox]{accent-color:#00d4aa!important}.shell.dark[data-v-629b91dd] .sync-all-list{background:#00000059!important;border:1px solid rgba(255,255,255,.2)!important;color:#fffffff2!important}.shell.dark[data-v-629b91dd] .sync-all-item{color:#fffffff2!important}.shell.dark[data-v-629b91dd] .sync-all-item .user-id{color:#ffffffa6!important}.shell.dark[data-v-629b91dd] .sync-all-empty{color:#fff9!important}.shell.light[data-v-629b91dd] .modal .form-row label{color:#334155!important}.shell.light[data-v-629b91dd] .modal .form-hint{color:#64748b!important}.shell.light[data-v-629b91dd] .sync-all-list{display:block!important;min-height:80px!important;background:#e2e8f0!important;border:1px solid #cbd5e1!important;color:#0f172a!important}.shell.light[data-v-629b91dd] .sync-all-item{color:#0f172a!important}.shell.light[data-v-629b91dd] .sync-all-item .user-id,.shell.light[data-v-629b91dd] .sync-all-empty{color:#64748b!important}.page[data-v-2f249071]{--dash-teal: #0d9488;--dash-teal-2: #14b8a6;--dash-ink: #0f172a;--dash-muted: #64748b;--dash-line: #e2e8f0;padding:8px 0 32px;background:radial-gradient(900px 420px at 8% -10%,rgba(20,184,166,.16),transparent 55%),radial-gradient(700px 360px at 92% 0%,rgba(56,189,248,.1),transparent 50%),linear-gradient(180deg,#f0fdfa,#f8fafc 42%,#f1f5f9);min-height:calc(100vh - 120px);font-family:Avenir Next,PingFang SC,Hiragino Sans GB,Noto Sans SC,Segoe UI,sans-serif}.stats[data-v-2f249071]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 16px}.stat[data-v-2f249071]{position:relative;overflow:hidden;background:#ffffffeb;border:1px solid var(--dash-line);border-radius:18px;padding:18px 20px;box-shadow:0 10px 28px #0f172a0f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.stat[data-v-2f249071]:after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:18px 0 0 18px}.stat--count[data-v-2f249071]:after{background:linear-gradient(180deg,#14b8a6,#0d9488)}.stat--money[data-v-2f249071]:after{background:linear-gradient(180deg,#38bdf8,#0284c7)}.stat-label[data-v-2f249071]{display:flex;align-items:center;gap:8px}.stat-ico[data-v-2f249071]{width:26px;height:26px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#0f766e;background:#ccfbf1}.stat--money .stat-ico[data-v-2f249071]{color:#0369a1;background:#e0f2fe}.k[data-v-2f249071]{color:var(--dash-muted);font-size:13px;font-weight:600}.v[data-v-2f249071]{margin-top:10px;font-size:28px;font-weight:800;color:var(--dash-ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat-hint[data-v-2f249071]{margin-top:6px;font-size:12px;color:#94a3b8}.card[data-v-2f249071]{background:#fffffff0;border:1px solid var(--dash-line);border-radius:18px;padding:18px 18px 16px;box-shadow:0 12px 32px #0f172a0d}.flow-todo-card[data-v-2f249071]{margin-bottom:14px}.flow-todo-card.compact[data-v-2f249071]{padding-bottom:12px}.flow-todo-head[data-v-2f249071]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.flow-todo-head h2[data-v-2f249071]{margin:0;font-size:16px;font-weight:800;color:var(--dash-ink);display:flex;align-items:center;gap:8px}.card-icon--approval[data-v-2f249071]{width:10px;height:10px;border-radius:99px;background:var(--dash-teal-2);box-shadow:0 0 0 4px #14b8a62e}.flow-todo-all[data-v-2f249071]{border:1px solid rgba(13,148,136,.28);background:#f0fdfa;color:#0f766e;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer}.flow-todo-all[data-v-2f249071]:hover{background:#ccfbf1}.flow-empty[data-v-2f249071]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#f0fdfa;border:1px dashed rgba(13,148,136,.35);color:#0f766e;font-size:13px;font-weight:600}.flow-empty-ico[data-v-2f249071]{width:22px;height:22px;border-radius:50%;background:#0d9488;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex-shrink:0}.flow-todo-list[data-v-2f249071]{display:flex;flex-direction:column;gap:8px}.flow-todo-item[data-v-2f249071]{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--dash-line);border-radius:14px;background:#f8fafc;cursor:pointer;text-align:left;appearance:none;-webkit-appearance:none;transition:border-color .15s ease,background .15s ease,transform .12s ease}.flow-todo-item[data-v-2f249071]:hover{border-color:#0d948873;background:#f0fdfa;transform:translateY(-1px)}.flow-todo-title[data-v-2f249071]{font-size:14px;font-weight:700;color:var(--dash-ink)}.flow-todo-sub[data-v-2f249071]{margin-top:4px;font-size:12px;color:var(--dash-muted)}.flow-todo-meta[data-v-2f249071]{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.flow-todo-tag[data-v-2f249071]{font-size:11px;font-weight:700;color:#0f766e;background:#ccfbf1;border:1px solid #99f6e4;border-radius:999px;padding:2px 8px}.flow-todo-time[data-v-2f249071]{white-space:nowrap}.card-head h2[data-v-2f249071]{margin:0}.head-count[data-v-2f249071]{margin-left:auto}.project-overview[data-v-2f249071]{margin-top:0}.project-filters[data-v-2f249071]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 14px}.pf-btn[data-v-2f249071]{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid var(--dash-line);background:#fff;color:var(--dash-ink);font-size:13px;font-weight:700;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.pf-btn[data-v-2f249071]:hover{background:#f8fafc;border-color:#cbd5e1}.pf-btn.pf-accept.active[data-v-2f249071]{border-color:#10b98173;background:#10b9811a;color:#047857}.pf-btn.pf-doing.active[data-v-2f249071]{border-color:#0d948880;background:#0d94881a;color:#0f766e}.pf-btn.pf-todo.active[data-v-2f249071]{border-color:#64748b73;background:#64748b1a;color:#475569}.pf-n[data-v-2f249071]{min-width:18px;height:18px;padding:0 6px;border-radius:999px;background:#f1f5f9;border:1px solid var(--dash-line);color:var(--dash-muted);font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}.pf-btn.active .pf-n[data-v-2f249071]{background:#fffc;border-color:transparent;color:inherit}.project-grid[data-v-2f249071]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.project-card[data-v-2f249071]{border:1px solid var(--dash-line);border-radius:16px;background:#fff;padding:14px;box-shadow:0 8px 22px #0f172a0d;cursor:pointer;outline:none;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.project-card[data-v-2f249071]:hover{transform:translateY(-3px);border-color:#0d948866;box-shadow:0 16px 36px #0d94881f}.project-card[data-v-2f249071]:focus-visible{border-color:var(--dash-teal);box-shadow:0 0 0 3px #0d948833,0 14px 30px #0f172a14}.project-card.tone-accept[data-v-2f249071]{border-top:3px solid #10b981}.project-card.tone-doing[data-v-2f249071]{border-top:3px solid var(--dash-teal)}.project-card.tone-todo[data-v-2f249071]{border-top:3px solid #94a3b8}.project-top[data-v-2f249071]{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.project-name[data-v-2f249071]{font-weight:800;color:var(--dash-ink);font-size:15px;line-height:1.35}.project-status[data-v-2f249071]{font-size:11px;font-weight:700;white-space:nowrap;padding:3px 8px;border-radius:999px;border:1px solid transparent}.st-accept[data-v-2f249071]{color:#047857;background:#d1fae5;border-color:#a7f3d0}.st-doing[data-v-2f249071]{color:#0f766e;background:#ccfbf1;border-color:#99f6e4}.st-todo[data-v-2f249071]{color:#475569;background:#f1f5f9;border-color:#e2e8f0}.project-mid[data-v-2f249071]{margin-top:12px}.bar[data-v-2f249071]{height:8px;border-radius:999px;background:#e2e8f0;overflow:hidden}.bar-in[data-v-2f249071]{height:100%;border-radius:999px;background:linear-gradient(90deg,#2dd4bf,#0d9488);transition:width .25s ease}.tone-accept .bar-in[data-v-2f249071]{background:linear-gradient(90deg,#34d399,#059669)}.tone-todo .bar-in[data-v-2f249071]{background:linear-gradient(90deg,#94a3b8,#64748b)}.project-metrics[data-v-2f249071]{margin-top:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.metric[data-v-2f249071]{padding:8px 10px;border-radius:12px;background:#f8fafc;border:1px solid transparent}.mk[data-v-2f249071]{font-size:11px;color:var(--dash-muted);font-weight:600}.mv[data-v-2f249071]{margin-top:4px;font-weight:800;color:var(--dash-ink);font-variant-numeric:tabular-nums;font-size:13px}.mv.accent[data-v-2f249071]{color:var(--dash-teal)}.project-people[data-v-2f249071]{margin-top:8px}.project-node-upd[data-v-2f249071]{margin-top:6px;display:flex;justify-content:flex-end;text-align:right}.node-list[data-v-2f249071]{margin-top:12px;display:grid;gap:8px;padding-top:10px;border-top:1px dashed #e2e8f0}.node[data-v-2f249071]{display:flex;gap:10px;align-items:flex-start}.node-dot[data-v-2f249071]{width:10px;height:10px;border-radius:999px;margin-top:4px;border:2px solid #cbd5e1;background:#fff;flex-shrink:0}.node-dot--todo[data-v-2f249071]{border-color:#cbd5e1;background:#fff}.node-dot--doing[data-v-2f249071]{border-color:#0d9488;background:#ccfbf1}.node-dot--done[data-v-2f249071]{border-color:#10b981;background:#d1fae5}.node-main[data-v-2f249071]{flex:1;min-width:0}.node-title[data-v-2f249071]{font-weight:700;color:var(--dash-ink);font-size:13px}.node-sub[data-v-2f249071]{line-height:1.45}.node-upd-right[data-v-2f249071]{flex-shrink:0;margin-left:auto;white-space:nowrap;text-align:right;padding-top:1px;font-size:12px}.node-desc[data-v-2f249071]{margin-top:2px;line-height:1.4;word-break:break-word}.node-more[data-v-2f249071]{padding-top:4px}.node-empty[data-v-2f249071]{margin-top:12px;padding:10px 12px;border-radius:12px;background:#f8fafc;border:1px dashed #cbd5e1;line-height:1.45}.card-head[data-v-2f249071]{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}h2[data-v-2f249071]{margin:0;font-size:16px;font-weight:800;color:var(--dash-ink);display:flex;align-items:center;gap:8px}.card-icon[data-v-2f249071]{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.card-icon--progress[data-v-2f249071]{background:var(--dash-teal-2);box-shadow:0 0 0 4px #14b8a629}.muted[data-v-2f249071]{color:#94a3b8;font-size:13px}.small[data-v-2f249071]{font-size:12px}.empty[data-v-2f249071]{padding:16px 4px;color:#94a3b8}.empty.soft[data-v-2f249071],.page-loading[data-v-2f249071]{text-align:center;padding:28px 12px;color:#94a3b8}.accent[data-v-2f249071]{color:var(--dash-teal);font-weight:700}@media(max-width:960px){.project-grid[data-v-2f249071]{grid-template-columns:1fr}}@media(max-width:760px){.stats[data-v-2f249071]{grid-template-columns:1fr}}.roadmap-page[data-v-1963d472]{padding:20px 0 40px;background:#f4f6f8;min-height:calc(100vh - 80px)}.top[data-v-1963d472]{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px}.top h1[data-v-1963d472]{margin:0;font-size:22px;font-weight:700;color:#0f172a}.top-actions[data-v-1963d472]{display:flex;gap:8px;flex-wrap:wrap}.layout[data-v-1963d472]{display:grid;grid-template-columns:260px 1fr;gap:16px;align-items:start}@media(max-width:960px){.layout[data-v-1963d472]{grid-template-columns:1fr}}.side[data-v-1963d472]{background:#fff;border-radius:16px;border:1px solid #e5e7eb;box-shadow:0 8px 24px #0f172a0a;overflow:hidden}.side-head[data-v-1963d472]{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border:none;background:#fff;font-weight:600;cursor:pointer}.side-body[data-v-1963d472]{padding:0 16px 16px}.field[data-v-1963d472]{margin-bottom:14px}.field .label[data-v-1963d472]{font-size:12px;color:#94a3b8;margin-bottom:4px}.field .label .count[data-v-1963d472]{display:inline-block;margin-left:4px;min-width:18px;padding:0 6px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:11px;font-weight:600}.field .val[data-v-1963d472]{font-size:14px;color:#0f172a}.field .val.muted[data-v-1963d472]{color:#94a3b8}.field .val.strong[data-v-1963d472]{font-size:20px;font-weight:700;color:#0d9488}.member-list[data-v-1963d472]{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:280px;overflow-y:auto}.member-list li[data-v-1963d472]{display:flex;align-items:center;gap:10px}.m-avatar[data-v-1963d472]{width:28px;height:28px;border-radius:50%;background:#ccfbf1;color:#0f766e;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.m-meta[data-v-1963d472]{display:flex;flex-direction:column;min-width:0}.m-name[data-v-1963d472]{font-size:13px;color:#0f172a;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-pos[data-v-1963d472]{font-size:11px;color:#94a3b8}.bar[data-v-1963d472]{margin-top:8px;height:6px;background:#e2e8f0;border-radius:999px;overflow:hidden}.bar i[data-v-1963d472]{display:block;height:100%;background:linear-gradient(90deg,#0d9488,#14b8a6)}.main[data-v-1963d472]{background:#fff;border-radius:18px;border:1px solid #e5e7eb;padding:20px 16px 28px;min-height:420px;box-shadow:0 12px 32px #0f172a0d;overflow-x:auto}.months[data-v-1963d472]{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;text-align:center;color:#64748b;font-size:13px;margin-bottom:8px}.timeline[data-v-1963d472]{position:relative;height:380px;margin:24px 12px 8px}.axis[data-v-1963d472]{position:absolute;left:0;right:0;top:50%;height:4px;background:#14b8a6;border-radius:999px;transform:translateY(-50%)}.node-wrap[data-v-1963d472]{position:absolute;top:0;bottom:0;width:0;transform:translate(-50%)}.node[data-v-1963d472]{position:absolute;top:50%;left:50%;width:14px;height:14px;border-radius:50%;background:#14b8a6;border:3px solid #ccfbf1;transform:translate(-50%,-50%);z-index:2}.node.risk[data-v-1963d472]{background:#94a3b8;border-color:#e2e8f0}.node.delay[data-v-1963d472]{background:#a78bfa;border-color:#ede9fe}.node.done[data-v-1963d472]{background:#0d9488}.stem[data-v-1963d472]{position:absolute;left:50%;width:0;border-left:2px dashed #5eead4;transform:translate(-50%)}.stem.above[data-v-1963d472]{bottom:50%;height:48px}.stem.below[data-v-1963d472]{top:50%;height:48px}.stage-card[data-v-1963d472]{position:absolute;left:50%;width:200px;padding:12px 12px 10px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;box-shadow:0 8px 20px #0f172a14;text-align:left;cursor:pointer;transform:translate(-50%)}.stage-card.above[data-v-1963d472]{bottom:calc(50% + 56px)}.stage-card.below[data-v-1963d472]{top:calc(50% + 56px)}.stage-card[data-v-1963d472]:hover{border-color:#99f6e4}.ms-tag[data-v-1963d472]{position:absolute;top:-10px;right:10px;font-size:11px;background:#fde68a;color:#92400e;padding:2px 8px;border-radius:6px}.card-top[data-v-1963d472]{display:flex;gap:10px;align-items:center}.avatar[data-v-1963d472]{width:36px;height:36px;border-radius:50%;background:#ccfbf1;color:#0f766e;display:flex;align-items:center;justify-content:center;overflow:hidden;font-weight:700;flex-shrink:0}.avatar img[data-v-1963d472]{width:100%;height:100%;object-fit:cover}.t1[data-v-1963d472]{font-size:13px;font-weight:700;color:#0f172a}.t2[data-v-1963d472]{font-size:11px;color:#94a3b8;margin-top:2px}.card-bar[data-v-1963d472]{position:relative;margin:10px 0 8px;height:6px;background:#e2e8f0;border-radius:999px;overflow:visible}.card-bar i[data-v-1963d472]{display:block;height:100%;background:#14b8a6;border-radius:999px}.card-bar .star[data-v-1963d472]{position:absolute;right:-2px;top:-8px;color:#f59e0b;font-size:12px}.card-foot[data-v-1963d472]{display:flex;justify-content:space-between;gap:6px;font-size:11px;color:#64748b}.card-foot .st[data-v-1963d472]{color:#0d9488;font-weight:600}.stage-card.risk .card-foot .st[data-v-1963d472],.stage-card.risk .t1[data-v-1963d472]{color:#64748b}.stage-card.delay .card-foot .st[data-v-1963d472]{color:#7c3aed}.legend[data-v-1963d472]{display:flex;justify-content:center;gap:18px;margin-top:18px;font-size:12px;color:#64748b}.legend .dot[data-v-1963d472]{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}.legend .dot.doing[data-v-1963d472]{background:#14b8a6}.legend .dot.risk[data-v-1963d472]{background:#cbd5e1}.legend .dot.delay[data-v-1963d472]{background:#c4b5fd}.legend .ms[data-v-1963d472]{display:inline-block;width:18px;height:10px;border-radius:3px;background:#fde68a;margin-right:6px;vertical-align:middle}.empty[data-v-1963d472],.empty-inline[data-v-1963d472]{text-align:center;color:#94a3b8;padding:48px 16px}.btn[data-v-1963d472]{padding:8px 14px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;font-size:13px}.btn.primary[data-v-1963d472]{background:linear-gradient(135deg,#0d9488,#14b8a6);color:#fff;border:none}.btn.danger[data-v-1963d472]{color:#b91c1c;border-color:#fecaca}.export-preview[data-v-1963d472]{width:min(480px,100%);background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 24px 64px #0f172a33}.export-preview-body[data-v-1963d472]{padding:16px}.export-preview-body .muted[data-v-1963d472]{color:#64748b;font-size:13px;margin:0 0 14px}.export-actions[data-v-1963d472]{display:flex;gap:8px}.modal-mask[data-v-1963d472]{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:80;padding:16px}.export-preview-mask[data-v-1963d472]{z-index:90}.modal[data-v-1963d472]{width:min(520px,100%);background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 24px 64px #0f172a33}.modal-head[data-v-1963d472]{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid #f1f5f9}.modal-body[data-v-1963d472]{padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.f[data-v-1963d472]{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#64748b}.f.span2[data-v-1963d472]{grid-column:span 2}.f.check[data-v-1963d472]{flex-direction:row;align-items:center;gap:8px;grid-column:span 2;color:#0f172a}.input[data-v-1963d472]{padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;color:#0f172a}.modal-foot[data-v-1963d472]{display:flex;gap:8px;padding:12px 16px;border-top:1px solid #f1f5f9;align-items:center}.spacer[data-v-1963d472]{flex:1}.icon[data-v-1963d472]{border:none;background:none;font-size:22px;cursor:pointer;color:#94a3b8}.print-only[data-v-1963d472]{display:none}@media print{.top-actions[data-v-1963d472],.modal-mask[data-v-1963d472],.no-print[data-v-1963d472]{display:none!important}.print-only[data-v-1963d472]{display:block!important;padding:14px 16px;font-weight:600}.roadmap-page[data-v-1963d472]{background:#fff;padding:0;min-height:0}}@media print{body.roadmap-printing *{visibility:hidden!important}body.roadmap-printing .roadmap-export-root,body.roadmap-printing .roadmap-export-root *{visibility:visible!important}body.roadmap-printing .roadmap-export-root{position:absolute!important;left:0!important;top:0!important;width:100%!important;margin:0!important;z-index:99999!important}body.roadmap-printing .shell .sidebar,body.roadmap-printing .shell .topbar2,body.roadmap-printing .shell .tabs,body.roadmap-printing .shell header,body.roadmap-printing .modal-mask{display:none!important}}.page[data-v-babf65c5]{position:relative;padding:18px 0 24px;min-height:calc(100dvh - 44px);overflow:hidden;background:radial-gradient(1200px 700px at 12% 18%,rgba(14,165,233,.16),transparent 56%),radial-gradient(900px 520px at 85% 12%,rgba(99,102,241,.14),transparent 52%),radial-gradient(900px 520px at 75% 88%,rgba(59,130,246,.12),transparent 52%),linear-gradient(180deg,#020617fa,#0f172afa 52%,#020617fa)}.stats-bg-deco[data-v-babf65c5]{position:absolute;inset:0;pointer-events:none;z-index:0}.stats-bg-stars[data-v-babf65c5]{position:absolute;inset:-40px;background:radial-gradient(1px 1px at 12% 18%,rgba(226,232,240,.65) 99%,transparent 100%),radial-gradient(1px 1px at 32% 48%,rgba(226,232,240,.45) 99%,transparent 100%),radial-gradient(1px 1px at 62% 24%,rgba(226,232,240,.55) 99%,transparent 100%),radial-gradient(1px 1px at 78% 36%,rgba(226,232,240,.45) 99%,transparent 100%),radial-gradient(1px 1px at 88% 72%,rgba(226,232,240,.55) 99%,transparent 100%);opacity:.22;filter:blur(.2px)}.stats-bg-horizon[data-v-babf65c5]{position:absolute;left:-10%;right:-10%;bottom:-35%;height:70%;background:radial-gradient(ellipse at center,#38bdf82e,#02061700 62%);filter:blur(6px);opacity:.8}.stats-bg-aurora[data-v-babf65c5]{position:absolute;inset:-20% -30%;background:conic-gradient(from 180deg at 50% 50%,#22d3ee24,#3b82f61f,#6366f11f,#22d3ee24);filter:blur(22px);opacity:.25}.stats-bg-orb[data-v-babf65c5]{position:absolute;width:220px;height:220px;border-radius:999px;filter:blur(22px);opacity:.65}.stats-bg-orb--a[data-v-babf65c5]{left:-70px;top:-80px;background:radial-gradient(circle,#0ea5e959,#0ea5e900)}.stats-bg-orb--b[data-v-babf65c5]{right:-80px;top:-60px;background:radial-gradient(circle,#6366f152,#6366f100)}.stats-bg-orb--c[data-v-babf65c5]{left:18%;bottom:-110px;background:radial-gradient(circle,#38bdf842,#38bdf800)}.stats-bg-orb--d[data-v-babf65c5]{right:12%;bottom:-120px;background:radial-gradient(circle,#3b82f63d,#3b82f600)}.head[data-v-babf65c5]{position:relative;overflow:hidden;margin-bottom:14px;border-radius:18px;padding:18px;border:1px solid rgba(148,163,184,.22);background:#0f172ac7;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 12px 40px #00000061,inset 0 1px #ffffff0f}.head-bg[data-v-babf65c5]{position:absolute;border-radius:999px;filter:blur(12px);pointer-events:none}.head-bg-1[data-v-babf65c5]{width:220px;height:220px;right:-70px;top:-90px;background:radial-gradient(circle,#0ea5e94d,#0ea5e900)}.head-bg-2[data-v-babf65c5]{width:180px;height:180px;right:120px;top:-70px;background:radial-gradient(circle,#6366f142,#6366f100)}.head-title[data-v-babf65c5]{position:relative;font-size:22px;font-weight:900;color:#f8fafcf5;letter-spacing:-.01em}.head-sub[data-v-babf65c5]{margin-top:6px;color:#94a3b8e6;font-size:13px}.range-tip[data-v-babf65c5]{margin-top:8px;color:#cbd5e1eb;font-size:12px;font-weight:700}.filters[data-v-babf65c5]{position:relative;margin-top:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sep[data-v-babf65c5]{color:#6b7280;font-size:12px}.input[data-v-babf65c5]{height:32px;padding:0 10px;border:1px solid rgba(71,85,105,.75);border-radius:8px;background:#02061759;color:#e2e8f0f2;font-size:13px}.btn[data-v-babf65c5]{height:32px;border:1px solid rgba(56,189,248,.55);border-radius:8px;background:#2563eb;color:#fff;padding:0 12px;font-size:13px;cursor:pointer}.btn[data-v-babf65c5]:hover{filter:brightness(1.05)}.cards[data-v-babf65c5]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.card[data-v-babf65c5]{position:relative;overflow:hidden;border:1px solid rgba(148,163,184,.2);border-radius:14px;background:#0f172ac7;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:12px;transition:transform .16s ease,box-shadow .16s ease;animation:cardIn-babf65c5 .35s ease both}.card[data-v-babf65c5]:hover{transform:translateY(-1px);box-shadow:0 12px 28px #00000047}.card-shine[data-v-babf65c5]{position:absolute;right:-20px;top:-36px;width:90px;height:90px;border-radius:999px;background:radial-gradient(circle,#e2e8f038,#fff0)}.k[data-v-babf65c5]{color:#94a3b8e6;font-size:12px;display:flex;align-items:center;gap:6px}.mini-dot[data-v-babf65c5]{width:6px;height:6px;border-radius:999px;background:currentColor;opacity:.75}.v[data-v-babf65c5]{margin-top:6px;color:#f8fafcf5;font-size:19px;font-weight:900}.tone-blue[data-v-babf65c5]{color:#2563eb}.tone-cyan[data-v-babf65c5]{color:#0891b2}.tone-violet[data-v-babf65c5]{color:#7c3aed}.tone-amber[data-v-babf65c5]{color:#d97706}.tone-emerald[data-v-babf65c5]{color:#059669}.tone-teal[data-v-babf65c5]{color:#0f766e}.tone-indigo[data-v-babf65c5]{color:#4f46e5}.chart-grid[data-v-babf65c5]{margin-top:0;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.analysis-grid[data-v-babf65c5]{margin-top:14px;display:grid;grid-template-columns:1.05fr 1.45fr;gap:12px;align-items:stretch}.left-stack[data-v-babf65c5],.right-stack[data-v-babf65c5]{display:grid;gap:12px;align-content:start;min-height:100%}.personnel-dynamics-panel[data-v-babf65c5]{display:flex;flex-direction:column}.finance-row[data-v-babf65c5]{display:grid;grid-template-columns:1fr;gap:12px;align-items:stretch}.board-table-panel h3[data-v-babf65c5]{margin-bottom:8px}.board-table[data-v-babf65c5]{width:100%;table-layout:fixed;border-collapse:collapse;border-radius:10px;overflow:hidden;font-size:12px}.board-table thead tr[data-v-babf65c5]{background:linear-gradient(180deg,#5b88e5,#4b74c9)}.board-table th[data-v-babf65c5]{color:#fff;font-weight:700;padding:8px;text-align:left}.board-table td[data-v-babf65c5]{padding:7px 8px;color:#e2e8f0eb;border-bottom:1px solid rgba(71,85,105,.55)}.board-table th[data-v-babf65c5]:first-child,.board-table td[data-v-babf65c5]:first-child{width:52px;text-align:center}.board-table th[data-v-babf65c5]:nth-child(3),.board-table td[data-v-babf65c5]:nth-child(3),.board-table th[data-v-babf65c5]:nth-child(4),.board-table td[data-v-babf65c5]:nth-child(4){text-align:right;font-variant-numeric:tabular-nums}.board-table tbody tr[data-v-babf65c5]:nth-child(odd){background:#1e293b5c}.board-table tbody tr[data-v-babf65c5]:nth-child(2n){background:#0f172a33}.board-table tbody tr:last-child td[data-v-babf65c5]{border-bottom:none}.panel[data-v-babf65c5]{margin-top:0;border:1px solid rgba(148,163,184,.2);border-radius:14px;background:#0f172ac7;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:14px;box-shadow:0 12px 34px #00000047,inset 0 1px #ffffff0f;display:flex;flex-direction:column}h3[data-v-babf65c5]{margin:0 0 10px;min-height:22px;display:flex;align-items:center;font-size:15px;color:#f8fafcf5}.panel-chart[data-v-babf65c5]{position:relative}.panel-chart-compact[data-v-babf65c5]{padding:14px;min-height:188px;height:100%}.panel-chart[data-v-babf65c5]:after{content:"";position:absolute;right:12px;top:12px;width:36px;height:36px;border-radius:999px;background:radial-gradient(circle,#94a3b81f,#94a3b800)}.panel-chart-compact .pie-wrap[data-v-babf65c5]{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:center}.panel-chart-compact .pie[data-v-babf65c5]{width:132px;height:132px;filter:drop-shadow(0 6px 12px rgba(59,130,246,.16))}.panel-chart-compact .legend[data-v-babf65c5]{display:grid;gap:8px}.panel-chart-compact .legend-row[data-v-babf65c5]{display:grid;grid-template-columns:14px 1fr;gap:8px;align-items:center}.dot[data-v-babf65c5]{width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 3px #94a3b81f}.panel-chart-compact .name[data-v-babf65c5]{color:#cbd5e1eb;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-chart-compact .num[data-v-babf65c5]{color:#e2e8f0f5;font-size:13px;font-weight:800}.pie-text[data-v-babf65c5]{fill:#fff;font-size:7px;font-weight:700;text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:#0003;stroke-width:.5}.dyn-sub[data-v-babf65c5]{margin:4px 0 10px}.dyn-marquee[data-v-babf65c5]{--dyn-visible: 10;--dyn-row-h: 54px;--dyn-gap: 8px;overflow:hidden;border-radius:12px;border:1px solid rgba(71,85,105,.45);background:#0206172e;height:calc(var(--dyn-visible) * (var(--dyn-row-h) + var(--dyn-gap)) + 20px)}.dyn-list[data-v-babf65c5]{list-style:none;margin:0;padding:10px;display:grid;gap:var(--dyn-gap)}.dyn-list--marquee[data-v-babf65c5]{animation:dyn-marquee-babf65c5 22s linear infinite;will-change:transform}.dyn-marquee:hover .dyn-list--marquee[data-v-babf65c5]{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.dyn-list--marquee[data-v-babf65c5]{animation:none!important;transform:none!important}}@keyframes dyn-marquee-babf65c5{0%{transform:translateY(0)}to{transform:translateY(-50%)}}.dyn-item[data-v-babf65c5]{display:grid;grid-template-columns:72px 1fr 126px;gap:10px;align-items:center;min-height:var(--dyn-row-h);padding:10px;border-radius:12px;background:#1e293b57;border:1px solid rgba(71,85,105,.38);box-shadow:inset 0 1px #ffffff0a}.dyn-item.active[data-v-babf65c5]{border-color:#38bdf88c;box-shadow:0 0 0 1px #38bdf82e,inset 0 1px #ffffff0f}.dyn-name[data-v-babf65c5]{font-size:12px;font-weight:900;color:#f8fafcf5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dyn-mid[data-v-babf65c5]{min-width:0}.dyn-time[data-v-babf65c5]{font-size:11px;color:#94a3b8e6;text-align:right;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dyn-time-pill[data-v-babf65c5]{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;background:#0f172a59;border:1px solid rgba(71,85,105,.45);box-shadow:inset 0 1px #ffffff0a;color:#e2e8f0e6}.dyn-pill[data-v-babf65c5]{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:3px 8px 3px 6px;border-radius:999px;border:1px solid rgba(56,189,248,.28);background:linear-gradient(180deg,#0284c738,#0f172a0d);box-shadow:inset 0 0 0 1px #0ea5e914;color:#e0f2fef2;font-size:11px;line-height:1.2}.dyn-pill-dot[data-v-babf65c5]{width:6px;height:6px;border-radius:999px;background:#38bdf8f2;box-shadow:0 0 0 3px #38bdf81f;flex:0 0 auto}.dyn-pill-tag[data-v-babf65c5]{font-size:10px;font-weight:900;letter-spacing:.06em;color:#bae6fdf2;flex:0 0 auto}.dyn-pill-name[data-v-babf65c5]{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.dyn-pill-days[data-v-babf65c5]{flex:0 0 auto;padding:1px 6px;border-radius:999px;background:#0f172a59;border:1px solid rgba(125,211,252,.22);color:#e0f2feeb;font-size:10px;font-weight:900;letter-spacing:.03em}.muted[data-v-babf65c5]{color:#94a3b8e6;font-size:12px}.bar-list[data-v-babf65c5]{display:grid;gap:10px}.bar-row[data-v-babf65c5]{display:grid;gap:6px}.bar-head[data-v-babf65c5]{display:flex;justify-content:space-between;gap:8px}.bar-track[data-v-babf65c5]{height:10px;border-radius:999px;background:#e5e7eb;overflow:hidden}.bar-fill[data-v-babf65c5]{height:100%;border-radius:inherit;background:linear-gradient(90deg,#38bdf8,#2563eb);box-shadow:0 0 8px #2563eb33;transition:width .45s ease}.panel-line[data-v-babf65c5]{margin-top:0}.finance-panel[data-v-babf65c5],.panel-line-half[data-v-babf65c5]{height:100%}.panel-line-half .line-wrap[data-v-babf65c5]{flex:1}.panel-line-half .line-svg[data-v-babf65c5]{height:100%;min-height:220px}.line-wrap[data-v-babf65c5]{display:grid;gap:8px}.line-svg[data-v-babf65c5]{width:100%;height:190px;border:1px solid rgba(148,163,184,.18);border-radius:10px;background:#f8fafc}.axis[data-v-babf65c5]{stroke:#94a3b8;stroke-width:.4}.grid[data-v-babf65c5]{stroke:#cbd5e1;stroke-width:.3;stroke-dasharray:1.2 1}.trend-line[data-v-babf65c5]{fill:none;stroke:#2563eb;stroke-width:.9;stroke-linecap:round;stroke-linejoin:round}.trend-dot[data-v-babf65c5]{fill:#2563eb}.line-labels[data-v-babf65c5]{display:flex;justify-content:space-between;color:#64748b;font-size:12px}.empty[data-v-babf65c5]{color:#9ca3af;padding:8px 0}.skeleton-page[data-v-babf65c5]{display:grid;gap:0}.skeleton-card[data-v-babf65c5],.skeleton-panel[data-v-babf65c5]{overflow:hidden}.sk-line[data-v-babf65c5],.sk-block[data-v-babf65c5]{border-radius:8px;background:linear-gradient(90deg,#e5e7eb 25%,#f1f5f9 37%,#e5e7eb 63%);background-size:400% 100%;animation:shimmer-babf65c5 1.2s ease infinite}.sk-line[data-v-babf65c5]{height:12px;margin-bottom:10px}.sk-line-sm[data-v-babf65c5]{width:38%}.sk-line-md[data-v-babf65c5]{width:26%}.sk-line-lg[data-v-babf65c5]{width:68%;height:24px}.sk-block[data-v-babf65c5]{width:100%;height:136px}.sk-block-sm[data-v-babf65c5]{height:96px}.card[data-v-babf65c5]:nth-child(1){animation-delay:.02s}.card[data-v-babf65c5]:nth-child(2){animation-delay:.06s}.card[data-v-babf65c5]:nth-child(3){animation-delay:.1s}.card[data-v-babf65c5]:nth-child(4){animation-delay:.14s}.card[data-v-babf65c5]:nth-child(5){animation-delay:.18s}.card[data-v-babf65c5]:nth-child(6){animation-delay:.22s}.card[data-v-babf65c5]:nth-child(7){animation-delay:.26s}@keyframes cardIn-babf65c5{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer-babf65c5{0%{background-position:100% 0}to{background-position:0 0}}@media(max-width:1100px){.cards[data-v-babf65c5]{grid-template-columns:repeat(2,minmax(0,1fr))}.analysis-grid[data-v-babf65c5],.finance-row[data-v-babf65c5]{grid-template-columns:1fr}}@media(max-width:760px){.cards[data-v-babf65c5],.chart-grid[data-v-babf65c5]{grid-template-columns:1fr}}.page-map-stage[data-v-ce322743]{padding:6px 8px 8px;min-height:calc(100dvh - 44px);display:flex;flex-direction:column;box-sizing:border-box}.mono[data-v-ce322743]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.dashboard[data-v-ce322743]{flex:1;display:flex;gap:0;align-items:stretch;flex-wrap:nowrap;min-height:0}.map-column[data-v-ce322743]{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.map-wrap[data-v-ce322743]{position:relative;flex:1;display:flex;flex-direction:column;min-height:calc(100dvh - 58px);border-radius:16px;overflow:hidden;border:1px solid rgba(56,189,248,.32);background:#030712;box-shadow:0 0 0 1px #0f172aa6,0 20px 56px #0000006b,inset 0 1px #ffffff14;animation:pm-frame-glow-ce322743 7s ease-in-out infinite alternate}.map-wrap--tiles-on .map-bg-deco[data-v-ce322743]{opacity:.28}@keyframes pm-frame-glow-ce322743{0%{box-shadow:0 0 0 1px #0f172aa6,0 20px 56px #0000006b,0 0 32px #38bdf824,inset 0 1px #ffffff14}to{box-shadow:0 0 0 1px #0f172aa6,0 24px 64px #0000007a,0 0 48px #818cf833,inset 0 1px #ffffff1a}}.map-bg-deco[data-v-ce322743]{position:absolute;inset:0;z-index:0;pointer-events:none;border-radius:inherit;overflow:hidden;box-shadow:inset 0 0 min(120px,18vw) #020617b8;background:radial-gradient(ellipse 125% 85% at 50% 108%,rgba(6,78,95,.55),transparent 52%),radial-gradient(ellipse 100% 75% at 10% 8%,rgba(56,189,248,.32),transparent 56%),radial-gradient(ellipse 80% 70% at 96% 92%,rgba(139,92,246,.26),transparent 58%),radial-gradient(ellipse 55% 48% at 78% 18%,rgba(251,191,36,.07),transparent 55%),radial-gradient(ellipse 50% 42% at 28% 62%,rgba(34,211,238,.1),transparent 62%),radial-gradient(ellipse 45% 38% at 52% 48%,rgba(14,165,233,.12),transparent 68%),linear-gradient(176deg,#010409,#051018 28%,#0a1f38 52%,#071426 78%,#020508)}.map-bg-stars[data-v-ce322743]{position:absolute;inset:0;z-index:1;opacity:.55;background-image:radial-gradient(circle at 6% 14%,rgba(248,250,252,.9) .55px,transparent 1.6px),radial-gradient(circle at 18% 9%,rgba(226,232,240,.55) .45px,transparent 1.4px),radial-gradient(circle at 31% 22%,rgba(255,255,255,.45) .5px,transparent 1.5px),radial-gradient(circle at 44% 11%,rgba(241,245,249,.5) .45px,transparent 1.3px),radial-gradient(circle at 58% 18%,rgba(226,232,240,.4) .5px,transparent 1.4px),radial-gradient(circle at 71% 8%,rgba(255,255,255,.55) .5px,transparent 1.5px),radial-gradient(circle at 86% 16%,rgba(248,250,252,.45) .45px,transparent 1.3px),radial-gradient(circle at 93% 28%,rgba(226,232,240,.35) .45px,transparent 1.2px),radial-gradient(circle at 12% 38%,rgba(255,255,255,.35) .45px,transparent 1.3px),radial-gradient(circle at 27% 44%,rgba(241,245,249,.4) .5px,transparent 1.4px),radial-gradient(circle at 52% 36%,rgba(226,232,240,.3) .45px,transparent 1.2px),radial-gradient(circle at 68% 42%,rgba(248,250,252,.38) .45px,transparent 1.3px),radial-gradient(circle at 81% 34%,rgba(255,255,255,.42) .5px,transparent 1.4px),radial-gradient(circle at 15% 58%,rgba(226,232,240,.28) .45px,transparent 1.2px),radial-gradient(circle at 38% 66%,rgba(248,250,252,.32) .45px,transparent 1.2px),radial-gradient(circle at 62% 58%,rgba(255,255,255,.3) .45px,transparent 1.2px),radial-gradient(circle at 88% 52%,rgba(241,245,249,.35) .45px,transparent 1.2px),radial-gradient(circle at 8% 72%,rgba(226,232,240,.22) .45px,transparent 1.1px),radial-gradient(circle at 48% 78%,rgba(248,250,252,.26) .45px,transparent 1.1px),radial-gradient(circle at 72% 70%,rgba(255,255,255,.24) .45px,transparent 1.1px);background-size:100% 100%;-webkit-mask-image:radial-gradient(ellipse 92% 82% at 50% 42%,#000 5%,rgba(0,0,0,.45) 55%,transparent 88%);mask-image:radial-gradient(ellipse 92% 82% at 50% 42%,#000 5%,rgba(0,0,0,.45) 55%,transparent 88%);animation:pm-stars-twinkle-ce322743 7s ease-in-out infinite alternate}@keyframes pm-stars-twinkle-ce322743{0%{opacity:.38}to{opacity:.62}}.map-bg-horizon[data-v-ce322743]{position:absolute;inset:0;z-index:2;background:linear-gradient(to top,rgba(4,40,58,.62) 0%,rgba(8,47,73,.22) 28%,rgba(15,23,42,.06) 52%,transparent 76%);opacity:.95}.map-bg-aurora[data-v-ce322743]{position:absolute;left:-25%;top:12%;width:150%;height:52%;z-index:4;opacity:.85;background:linear-gradient(108deg,transparent 0%,rgba(45,212,191,.06) 18%,rgba(56,189,248,.1) 42%,rgba(129,140,248,.09) 62%,rgba(52,211,153,.05) 82%,transparent 100%);filter:blur(36px);mix-blend-mode:screen;animation:pm-aurora-shift-ce322743 28s ease-in-out infinite}@keyframes pm-aurora-shift-ce322743{0%,to{transform:translate3d(-2%,0,0) rotate(-1deg);opacity:.75}50%{transform:translate3d(4%,3%,0) rotate(1.5deg);opacity:.95}}.map-bg-deco[data-v-ce322743]:before{content:"";position:absolute;inset:0;z-index:3;opacity:.48;background-image:linear-gradient(rgba(56,189,248,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(99,102,241,.06) 1px,transparent 1px),linear-gradient(rgba(148,163,184,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.07) 1px,transparent 1px);background-size:40px 40px,40px 40px,160px 160px,160px 160px;background-position:0 0,0 0,0 0,0 0;-webkit-mask-image:radial-gradient(ellipse 88% 78% at 50% 46%,#000 10%,transparent 80%);mask-image:radial-gradient(ellipse 88% 78% at 50% 46%,#000 10%,transparent 80%);animation:pm-grid-drift-ce322743 48s linear infinite}@keyframes pm-grid-drift-ce322743{0%{background-position:0 0,0 0,0 0,0 0}to{background-position:40px 40px,-40px 40px,80px 24px,-56px 32px}}.map-bg-deco[data-v-ce322743]:after{content:"";position:absolute;width:220%;height:220%;left:-60%;top:-60%;z-index:6;background:linear-gradient(122deg,transparent 0%,transparent 38%,rgba(255,255,255,.028) 46%,rgba(186,230,253,.1) 50%,rgba(255,255,255,.032) 54%,transparent 62%);mix-blend-mode:overlay;animation:pm-deco-shimmer-ce322743 22s ease-in-out infinite}@keyframes pm-deco-shimmer-ce322743{0%,to{transform:translate3d(-6%,0,0) rotate(11deg)}50%{transform:translate3d(10%,5%,0) rotate(11deg)}}.map-bg-orb[data-v-ce322743]{position:absolute;z-index:5;border-radius:50%;filter:blur(56px);opacity:.55;mix-blend-mode:screen}.map-bg-orb--a[data-v-ce322743]{width:min(48%,420px);height:min(42%,380px);left:-6%;top:8%;background:radial-gradient(circle at 40% 40%,rgba(56,189,248,.95),transparent 72%);animation:pm-orb-a-ce322743 24s ease-in-out infinite}.map-bg-orb--b[data-v-ce322743]{width:min(40%,360px);height:min(38%,340px);right:-4%;bottom:6%;background:radial-gradient(circle at 50% 50%,rgba(167,139,250,.9),transparent 70%);animation:pm-orb-b-ce322743 28s ease-in-out infinite}.map-bg-orb--c[data-v-ce322743]{width:min(32%,280px);height:min(30%,260px);left:38%;top:42%;background:radial-gradient(circle,rgba(34,211,238,.55),transparent 68%);animation:pm-orb-c-ce322743 20s ease-in-out infinite}@keyframes pm-orb-a-ce322743{0%,to{transform:translate(0) scale(1);opacity:.5}50%{transform:translate(6%,10%) scale(1.12);opacity:.65}}@keyframes pm-orb-b-ce322743{0%,to{transform:translate(0) scale(1.05);opacity:.45}50%{transform:translate(-8%,-6%) scale(1);opacity:.62}}@keyframes pm-orb-c-ce322743{0%,to{transform:translate(0) scale(1);opacity:.35}50%{transform:translate(-4%,6%) scale(1.2);opacity:.55}}.map-bg-orb--d[data-v-ce322743]{width:min(58%,540px);height:min(32%,260px);left:20%;bottom:-14%;background:radial-gradient(ellipse 80% 100% at 50% 0%,rgba(244,114,182,.28),transparent 72%);filter:blur(52px);mix-blend-mode:screen;opacity:.48;animation:pm-orb-d-ce322743 30s ease-in-out infinite}@keyframes pm-orb-d-ce322743{0%,to{transform:translate(0) scale(1);opacity:.4}50%{transform:translate(5%,-4%) scale(1.08);opacity:.58}}@media(prefers-reduced-motion:reduce){.map-bg-stars[data-v-ce322743],.map-bg-aurora[data-v-ce322743],.map-bg-deco[data-v-ce322743]:before,.map-bg-deco[data-v-ce322743]:after,.map-bg-orb[data-v-ce322743]{animation:none!important}.map-bg-stars[data-v-ce322743]{opacity:.48}}.map-roster[data-v-ce322743]{position:absolute;top:12px;left:12px;z-index:50;width:min(300px,calc(100% - 160px));max-height:min(52vh,420px);display:flex;flex-direction:column;border-radius:14px;background:#0f172ad1;border:1px solid rgba(148,163,184,.32);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 12px 40px #00000061,inset 0 1px #ffffff0f;overflow:hidden;animation:map-roster-in-ce322743 .5s cubic-bezier(.22,1,.36,1) both}.map-roster-stats[data-v-ce322743]{border-top:1px solid rgba(51,65,85,.65);padding:10px 10px 12px;flex-shrink:0}.map-roster-stats-row[data-v-ce322743]{display:flex;align-items:center;gap:8px;margin-bottom:10px}.map-roster-stats-dot[data-v-ce322743]{width:6px;height:6px;border-radius:999px;background:#38bdf8eb;box-shadow:0 0 0 4px #38bdf81a;flex:0 0 auto}.map-roster-stats-title[data-v-ce322743]{font-size:11px;font-weight:900;letter-spacing:.06em;color:#f8fafceb}.map-roster-stats-date[data-v-ce322743]{margin-left:auto;font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;background:#3b82f63d;color:#e0f2feeb;border:1px solid rgba(125,211,252,.22)}.map-roster-stats-grid[data-v-ce322743]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.map-roster-stat[data-v-ce322743]{border-radius:12px;padding:10px;background:#1e293b6b;border:1px solid rgba(71,85,105,.45);box-shadow:inset 0 1px #ffffff0a}.map-roster-stat-label[data-v-ce322743]{font-size:10px;font-weight:700;color:#94a3b8eb;letter-spacing:.04em}.map-roster-stat-val[data-v-ce322743]{margin-top:6px;font-size:18px;font-weight:900;color:#f8fafcf5;letter-spacing:.02em}@keyframes map-roster-in-ce322743{0%{opacity:0;transform:translate3d(-10px,-6px,0) scale(.98)}to{opacity:1;transform:translateZ(0) scale(1)}}.map-roster-head[data-v-ce322743]{display:flex;align-items:center;gap:8px;padding:10px 12px 8px;border-bottom:1px solid rgba(51,65,85,.65);flex-shrink:0}.map-roster-dot[data-v-ce322743]{width:7px;height:7px;border-radius:50%;background:linear-gradient(145deg,#34d399,#22d3ee);box-shadow:0 0 10px #34d399a6;animation:map-roster-pulse-ce322743 2.2s ease-in-out infinite}@keyframes map-roster-pulse-ce322743{0%,to{opacity:1;transform:scale(1)}50%{opacity:.75;transform:scale(.92)}}.map-roster-title[data-v-ce322743]{font-size:12px;font-weight:700;letter-spacing:.06em;color:#f8fafcf2}.map-roster-count[data-v-ce322743]{margin-left:auto;font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;background:#3b82f659;color:#e0f2fe;border:1px solid rgba(125,211,252,.35)}.map-roster-list[data-v-ce322743]{list-style:none;margin:0;padding:6px 6px 8px}.map-roster-marquee[data-v-ce322743]{overflow:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(100,116,139,.55) transparent}.map-roster-list--marquee[data-v-ce322743]{animation:map-roster-marquee-ce322743 var(--roster-scroll-duration, 24s) linear infinite;will-change:transform}.map-roster-marquee:hover .map-roster-list--marquee[data-v-ce322743]{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.map-roster-list--marquee[data-v-ce322743]{animation:none!important;transform:none!important}}@keyframes map-roster-marquee-ce322743{0%{transform:translateY(0)}to{transform:translateY(-50%)}}.map-roster-list[data-v-ce322743]::-webkit-scrollbar{width:5px}.map-roster-list[data-v-ce322743]::-webkit-scrollbar-thumb{background:#64748b73;border-radius:99px}.map-roster-item[data-v-ce322743]{border-radius:10px;margin-bottom:4px;animation:map-roster-row-ce322743 .42s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(min(var(--roster-i),14)*35ms)}@keyframes map-roster-row-ce322743{0%{opacity:0;transform:translate3d(-8px,0,0)}to{opacity:1;transform:translateZ(0)}}.map-roster-item[data-v-ce322743]:last-child{margin-bottom:0}.map-roster-item.active[data-v-ce322743]{box-shadow:0 0 0 1px #38bdf873}.map-roster-hit[data-v-ce322743]{display:flex;align-items:flex-start;gap:8px;width:100%;padding:8px;margin:0;border:none;border-radius:10px;background:#1e293b59;color:inherit;cursor:pointer;text-align:left;transition:background .18s,box-shadow .18s,transform .18s}.map-roster-hit[data-v-ce322743]:hover{background:#3341558c;box-shadow:inset 0 0 0 1px #94a3b833}.map-roster-item.active .map-roster-hit[data-v-ce322743]{background:#1e3a8a73;box-shadow:inset 0 0 0 1px #60a5fa59}.map-roster-idx[data-v-ce322743]{flex-shrink:0;width:18px;text-align:center;font-size:10px;font-weight:800;color:#94a3b8d9;padding-top:10px;font-variant-numeric:tabular-nums}.map-roster-avatar[data-v-ce322743]{position:relative;flex-shrink:0;width:34px;height:34px;border-radius:10px;overflow:hidden;box-shadow:0 0 0 2px #0f172ae6,0 0 0 3px #38bdf859}.map-roster-avatar-fallback[data-v-ce322743]{display:flex;align-items:center;justify-content:center;position:absolute;inset:0;font-size:11px;font-weight:800;color:#f8fafc;background:linear-gradient(145deg,#6366f1,#2563eb)}.map-roster-avatar-img[data-v-ce322743]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.map-roster-avatar-img.is-hidden[data-v-ce322743]{display:none}.map-roster-body[data-v-ce322743]{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.map-roster-name[data-v-ce322743]{font-size:12px;font-weight:700;color:#f1f5f9;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-roster-proj[data-v-ce322743]{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:3px 8px 3px 6px;border-radius:999px;border:1px solid rgba(56,189,248,.28);background:linear-gradient(180deg,#0284c738,#0f172a0d);box-shadow:inset 0 0 0 1px #0ea5e914;color:#e0f2fef2;font-size:11px;line-height:1.2}.map-roster-proj-dot[data-v-ce322743]{width:6px;height:6px;border-radius:999px;background:#38bdf8f2;box-shadow:0 0 0 3px #38bdf81f;flex:0 0 auto}.map-roster-proj-tag[data-v-ce322743]{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#bae6fdf2;flex:0 0 auto}.map-roster-proj-name[data-v-ce322743]{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px}.map-roster-place[data-v-ce322743]{font-size:11px;line-height:1.35;color:#cbd5e1e0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.map-roster-time[data-v-ce322743]{font-size:10px;color:#94a3b8e6;font-variant-numeric:tabular-nums}.map-roster-go[data-v-ce322743]{flex-shrink:0;align-self:center;font-size:10px;font-weight:700;letter-spacing:.06em;color:#7dd3fcd9;padding:4px 2px}.map-float-dock[data-v-ce322743]{position:absolute;top:12px;right:12px;z-index:50;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;background:#0f172ac7;border:1px solid rgba(148,163,184,.28);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 10px 36px #00000059}.dock-date[data-v-ce322743]{display:inline-flex;align-items:center;gap:6px}.dock-date-lab[data-v-ce322743]{font-size:11px;font-weight:600;color:#94a3b8f2;letter-spacing:.04em}.dock-date-inp[data-v-ce322743]{border-radius:8px;border:1px solid rgba(100,116,139,.45);padding:5px 8px;font-size:12px;background:#1e293be6;color:#f1f5f9}.dock-btn[data-v-ce322743]{border-radius:8px;border:1px solid rgba(100,116,139,.4);background:#1e293bd9;color:#e2e8f0;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer}.dock-btn[data-v-ce322743]:hover:not(:disabled){background:#334155f2;border-color:#94a3b880}.dock-btn[data-v-ce322743]:disabled{opacity:.5;cursor:not-allowed}.dock-btn-primary[data-v-ce322743]{background:linear-gradient(135deg,#2563eb,#6366f1);border-color:transparent;color:#fff}.dock-btn-primary[data-v-ce322743]:hover:not(:disabled){filter:brightness(1.06)}.dock-btn-gear[data-v-ce322743]{border-color:#38bdf859;color:#bae6fd}.dock-btn-gear[data-v-ce322743]:hover:not(:disabled){border-color:#7dd3fc8c;color:#e0f2fe}.layer-settings-backdrop[data-v-ce322743]{position:absolute;inset:0;z-index:42;background:#02061780;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:ls-backdrop-in-ce322743 .22s ease both}@keyframes ls-backdrop-in-ce322743{0%{opacity:0}to{opacity:1}}.layer-settings-sheet[data-v-ce322743]{position:absolute;top:56px;right:12px;z-index:48;width:min(308px,calc(100% - 24px));max-height:min(74vh,540px);display:flex;flex-direction:column;border-radius:14px;background:#0f172af2;border:1px solid rgba(100,116,139,.45);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 18px 50px #00000073,inset 0 1px #ffffff0f;overflow:hidden;animation:ls-sheet-in-ce322743 .32s cubic-bezier(.22,1,.36,1) both}@keyframes ls-sheet-in-ce322743{0%{opacity:0;transform:translate3d(8px,-6px,0) scale(.98)}to{opacity:1;transform:translateZ(0) scale(1)}}.layer-settings-sheet-head[data-v-ce322743]{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid rgba(51,65,85,.75);flex-shrink:0}.layer-settings-title[data-v-ce322743]{font-size:13px;font-weight:800;letter-spacing:.04em;color:#f8fafc}.layer-settings-close[data-v-ce322743]{width:32px;height:32px;padding:0;border:none;border-radius:8px;background:#1e293ba6;color:#94a3b8;font-size:22px;line-height:1;cursor:pointer;transition:background .15s,color .15s}.layer-settings-close[data-v-ce322743]:hover{background:#334155e6;color:#f1f5f9}.ls-body[data-v-ce322743]{padding:12px 12px 14px;overflow-y:auto;flex:1;min-height:0;overscroll-behavior:contain}.ls-mode-grid[data-v-ce322743]{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}.ls-mode-btn[data-v-ce322743]{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:10px;border-radius:10px;border:1px solid rgba(71,85,105,.65);background:#1e293b8c;color:#cbd5e1;cursor:pointer;font-size:12px;transition:border-color .15s,background .15s,box-shadow .15s}.ls-mode-btn[data-v-ce322743]:hover:not(:disabled){border-color:#94a3b873;background:#334155a6}.ls-mode-btn.on[data-v-ce322743]{border-color:#38bdf8a6;background:linear-gradient(180deg,#1e3a8a8c,#0f172a66);box-shadow:0 0 0 1px #3b82f640}.ls-mode-btn[data-v-ce322743]:disabled{opacity:.5;cursor:not-allowed}.ls-mode-label[data-v-ce322743]{font-weight:700;font-size:13px;color:#f1f5f9}.ls-mode-hint[data-v-ce322743]{font-size:10px;color:#94a3b8;line-height:1.3}.ls-section[data-v-ce322743]{margin-bottom:14px}.ls-row[data-v-ce322743]{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#94a3b8;margin-bottom:6px}.ls-val[data-v-ce322743]{font-size:12px;color:#e0f2fe;font-weight:600}.ls-range[data-v-ce322743]{width:100%;accent-color:#38bdf8}.ls-toggle[data-v-ce322743]{display:inline-flex;align-items:center;-webkit-user-select:none;user-select:none}.ls-toggle input[data-v-ce322743]{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.ls-toggle-track[data-v-ce322743]{width:44px;height:24px;border-radius:999px;background:#334155d9;border:1px solid rgba(71,85,105,.65);position:relative;transition:background .18s ease,border-color .18s ease}.ls-toggle-track[data-v-ce322743]:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:999px;background:#f8fafceb;box-shadow:0 8px 16px #00000040;transition:transform .18s ease}.ls-toggle input:checked+.ls-toggle-track[data-v-ce322743]{background:#2563ebbf;border-color:#38bdf8a6}.ls-toggle input:checked+.ls-toggle-track[data-v-ce322743]:after{transform:translate(20px)}.ls-hint[data-v-ce322743]{margin:0;font-size:11px;line-height:1.45;color:#64748b}.ls-subhint[data-v-ce322743]{margin:8px 0 0;font-size:11px;line-height:1.45;color:#94a3b8}.map-canvas[data-v-ce322743]{position:relative;z-index:2;flex:1;width:100%;min-height:calc(100dvh - 58px);height:calc(100dvh - 58px);background:transparent!important}.map-attribution[data-v-ce322743]{position:absolute;left:10px;bottom:8px;z-index:5;max-width:calc(100% - 100px);font-size:10px;letter-spacing:.04em;color:#e2e8f085;text-shadow:0 1px 3px rgba(0,0,0,.65);pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.45}.map-loading[data-v-ce322743]{position:absolute;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;font-size:13px;color:#e2e8f0;background:#030712c7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.map-empty-tip[data-v-ce322743]{position:absolute;left:12px;bottom:42px;z-index:38;max-width:min(520px,calc(100% - 24px));padding:10px 12px;border-radius:12px;border:1px solid rgba(226,232,240,.9);background:#ffffffeb;box-shadow:0 14px 36px #0f172a1f;color:#475569;font-size:13px;line-height:1.5;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.map-wrap .leaflet-container,.map-wrap .leaflet-pane{background:transparent!important}.shell.dark{border-color:#38bdf861}.shell.dark{color:#e2e8f0;background:#0f172ae0}.pm-bubble-person-marker{background:transparent!important;border:none!important}.pm-bubble-person{position:relative;width:var(--pm-bub, 60px);height:var(--pm-bubh, 82px);display:block;line-height:0;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}.pm-bubble-person .pm-bub-agv{position:absolute;inset:0 auto auto 0;width:var(--pm-bub, 60px);height:var(--pm-bub, 60px);display:block;object-fit:contain;pointer-events:none;opacity:.92}.pm-bubble-person .pm-bub-av{position:absolute;left:50%;top:calc(var(--pm-bub, 60px) * .18);transform:translate(-50%);width:var(--pm-bub-av, 30px);height:var(--pm-bub-av, 30px);border-radius:999px;padding:2px;background:#fffffff2;border:1px solid rgba(226,232,240,.95);box-shadow:0 2px 10px #0f172a29;pointer-events:none}.pm-bubble-person .pm-bub-av-img,.pm-bubble-person .pm-bub-av-fb{width:100%;height:100%;border-radius:999px}.pm-bubble-person .pm-bub-av-img{display:block;object-fit:cover;background:#e2e8f0;pointer-events:none}.pm-bubble-person .pm-bub-av-fb{display:flex;align-items:center;justify-content:center;background:#e2e8f0;color:#475569;font-weight:800;font-size:calc(12px * (var(--pm-bub-av, 30) / 30));letter-spacing:.02em;pointer-events:none}.pm-bubble-person .pm-bub-name{position:absolute;left:50%;top:calc(var(--pm-bub, 60px) + 3px);transform:translate(-50%);max-width:var(--pm-bub-lw, 96px);font-size:var(--pm-bub-lfs, 11px);font-weight:700;color:#0f172a;text-align:center;line-height:1.2;padding:var(--pm-bub-pv, 2px) var(--pm-bub-ph, 6px);border-radius:999px;background:#ffffffeb;border:1px solid rgba(226,232,240,.95);box-shadow:0 2px 10px #0f172a1f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.person-map-avatar-marker{background:transparent!important;border:none!important}.person-map-pin{display:flex;flex-direction:column;align-items:center;pointer-events:auto}.person-map-ring{width:calc(48px * var(--pm-pin, 1));height:calc(48px * var(--pm-pin, 1));border-radius:50%;padding:calc(2px * var(--pm-pin, 1));background:#fff;border:1px solid #cbd5e1;box-shadow:0 1px 3px #0f172a33}.person-map-avatar-shell{width:100%;height:100%;border-radius:50%;overflow:hidden;background:#e2e8f0;display:flex;align-items:center;justify-content:center}.person-map-avatar-img{width:100%;height:100%;object-fit:cover;display:block}.person-map-avatar-fallback{font-size:calc(14px * var(--pm-pin, 1));font-weight:700;color:#475569;letter-spacing:.02em}.person-map-pin-tip{width:0;height:0;margin-top:calc(-1px * var(--pm-pin, 1));border-left:calc(6px * var(--pm-pin, 1)) solid transparent;border-right:calc(6px * var(--pm-pin, 1)) solid transparent;border-top:calc(7px * var(--pm-pin, 1)) solid #64748b}.person-map-pin-label{margin-top:calc(2px * var(--pm-pin, 1));max-width:calc(88px * var(--pm-pin, 1));font-size:calc(11px * var(--pm-pin, 1));font-weight:600;color:#334155;text-align:center;line-height:1.2;padding:calc(1px * var(--pm-pin, 1)) calc(4px * var(--pm-pin, 1));border-radius:calc(4px * var(--pm-pin, 1));background:#ffffffeb;border:1px solid #e2e8f0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell.dark .person-map-pin-label{color:#e2e8f0;background:#1e293beb;border-color:#475569}.person-map-popup-wrap .leaflet-popup-content-wrapper{border-radius:8px;border:1px solid #e2e8f0;box-shadow:0 4px 12px #0f172a1f}.person-map-popup-wrap .leaflet-popup-content{margin:12px 14px;min-width:200px}.pm-pop-name{font-weight:800;font-size:15px;margin-bottom:8px;color:#0f172a}.pm-pop-row{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#64748b;margin-bottom:4px}.pm-pop-row b{color:#0f172a;font-weight:600}.pm-pop-addr{margin-top:8px;font-size:12px;line-height:1.45;color:#475569}.pm-tooltip{border:none!important;background:transparent!important;box-shadow:none!important}.pm-tooltip .leaflet-tooltip-content{margin:0!important}.pm-tip{padding:8px 10px;border-radius:8px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 6px 20px #0f172a1a;max-width:260px}.pm-tip-title{font-size:12px;font-weight:600;color:#0f172a;line-height:1.35;margin-bottom:4px}.pm-tip-coord{font-size:11px;color:#64748b}.pm-cluster-wrap{background:transparent!important;border:none!important}.pm-cluster{width:calc(44px * var(--pcs, 1));height:calc(44px * var(--pcs, 1));border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#3b82f6f2,#6366eaeb);border:calc(3px * var(--pcs, 1)) solid #fff;box-shadow:0 calc(4px * var(--pcs, 1)) calc(14px * var(--pcs, 1)) #0f172a33;color:#fff;font-weight:800;font-size:calc(14px * var(--pcs, 1))}.leaflet-container .leaflet-control-zoom{border:1px solid #e2e8f0!important;border-radius:8px!important;overflow:hidden;box-shadow:0 2px 10px #0f172a14}.leaflet-container .leaflet-control-zoom a{width:32px!important;height:32px!important;line-height:32px!important;font-size:16px!important;color:#334155!important;background:#fff!important}.leaflet-container .leaflet-control-zoom a:hover{background:#f1f5f9!important}@media(max-width:900px){.map-roster[data-v-ce322743]{width:min(280px,calc(100% - 20px));max-height:min(36vh,300px)}.map-float-dock[data-v-ce322743]{right:10px;left:10px;justify-content:flex-end}.layer-settings-sheet[data-v-ce322743]{right:10px;left:10px;width:auto;max-width:none;top:52px}.map-wrap[data-v-ce322743]{min-height:calc(100dvh - 88px)}.map-canvas[data-v-ce322743]{min-height:calc(100dvh - 88px);height:calc(100dvh - 88px)}}.ssc[data-v-3fa5f564]{width:100%}.ssc.disabled[data-v-3fa5f564]{opacity:.65}.ssc-hint[data-v-3fa5f564]{margin:0 0 6px;font-size:12px;line-height:1.45}.ssc-row[data-v-3fa5f564]{display:flex;align-items:flex-start;gap:8px}.ssc-wrap[data-v-3fa5f564]{position:relative;flex:1;min-width:0}.ssc-input[data-v-3fa5f564]{width:100%;box-sizing:border-box;border:1px solid #d1d5db;border-radius:10px;padding:10px 12px;font-size:13px;outline:none;background:#fff;color:#111827}.ssc-input[data-v-3fa5f564]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f62e}.ssc-input[data-v-3fa5f564]:disabled{background:#f3f4f6;cursor:not-allowed}.ssc-panel[data-v-3fa5f564]{margin:0;padding:6px;list-style:none;overflow-y:auto;background:#fff;border:2px solid #93c5fd;border-radius:12px;box-shadow:0 0 0 1px #ffffffe6,0 18px 48px #0f172a38,0 4px 14px #2563eb1f}.ssc-item[data-v-3fa5f564]{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;font-size:13px;color:#0f172a;background:#fff}.ssc-item[data-v-3fa5f564]:hover{background:#eff6ff}.ssc-item.active[data-v-3fa5f564]{background:#dbeafe;box-shadow:inset 0 0 0 1px #93c5fd}.ssc-item.empty[data-v-3fa5f564]{cursor:default;color:#64748b;justify-content:flex-start}.ssc-name[data-v-3fa5f564]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.ssc-id[data-v-3fa5f564]{flex-shrink:0;font-size:12px;color:#64748b;font-variant-numeric:tabular-nums}.ssc-clear[data-v-3fa5f564]{flex-shrink:0;margin-top:2px;padding:8px 10px;border-radius:10px;border:1px solid #e5e7eb;background:#f9fafb;font-size:12px;cursor:pointer;color:#475569}.ssc-clear[data-v-3fa5f564]:hover{border-color:#cbd5e1;background:#f1f5f9}.ssc-meta[data-v-3fa5f564]{margin:6px 0 0;font-size:12px;line-height:1.45}.muted[data-v-3fa5f564]{color:#64748b}.page[data-v-396ba387]{padding:24px 0;background:#f5f7fb}.toolbar[data-v-396ba387]{margin:0 0 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px;background:#ffffffb3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 12px 28px #0f172a0f}.toolbar-left[data-v-396ba387]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.toolbar-label[data-v-396ba387]{font-size:12px;color:#64748b;font-weight:650;letter-spacing:.02em;white-space:nowrap}.toolbar-meta[data-v-396ba387]{font-size:12px;color:#64748b;display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:999px;background:#f8fafc;border:1px solid #e2e8f0}.toolbar-right[data-v-396ba387]{display:flex;gap:8px;flex-wrap:wrap}.toolbar-group-search[data-v-396ba387]{align-items:center}.project-search-combo[data-v-396ba387]{min-width:min(520px,70vw)}.form-hint[data-v-396ba387]{margin:0 0 8px;font-size:12px;line-height:1.45}.toolbar-group[data-v-396ba387]{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:999px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 1px #0f172a08}.toolbar-select[data-v-396ba387]{border:none;outline:none;background:transparent;font-size:13px;color:#0f172a;font-weight:650;padding:2px 22px 2px 6px;border-radius:10px;appearance:none;-webkit-appearance:none;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,#64748b 50%),linear-gradient(135deg,#64748b 50%,transparent 50%);background-position:calc(100% - 12px) 55%,calc(100% - 7px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.toolbar-select.is-small[data-v-396ba387]{min-width:66px}.toolbar-select[data-v-396ba387]:disabled{cursor:not-allowed;opacity:.6}.toolbar-meta-strong[data-v-396ba387]{color:#0f172a;font-weight:800}.toolbar-meta-dot[data-v-396ba387]{color:#cbd5e1}.pager[data-v-396ba387]{display:inline-flex;align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:999px;overflow:hidden;box-shadow:0 1px #0f172a08}.pager-btn[data-v-396ba387]{padding:8px 12px;border:none;background:transparent;font-size:13px;color:#0f172a;font-weight:700;cursor:pointer;transition:background .15s ease,color .15s ease}.pager-btn+.pager-btn[data-v-396ba387]{border-left:1px solid #e2e8f0}.pager-btn[data-v-396ba387]:hover:not(:disabled){background:#f1f5f9}.pager-btn[data-v-396ba387]:disabled{cursor:not-allowed;color:#94a3b8;background:#f8fafc}.empty[data-v-396ba387]{padding:16px 4px;color:#9ca3af;text-align:center}.grid[data-v-396ba387]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.card[data-v-396ba387]{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:16px;box-shadow:0 10px 24px #0f172a14}.card-top[data-v-396ba387]{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.title[data-v-396ba387]{font-weight:850;color:#111827;letter-spacing:-.02em}.badge[data-v-396ba387]{font-size:12px;padding:4px 8px;border-radius:999px;border:1px solid #e5e7eb;background:#f3f4f6;color:#374151;white-space:nowrap}.badge.未实施[data-v-396ba387]{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.badge.实施中[data-v-396ba387]{border-color:#a7f3d0;background:#ecfdf5;color:#047857}.badge.项目验收[data-v-396ba387]{border-color:#facc15;background:#fef9c3;color:#854d0e}.desc[data-v-396ba387]{margin-top:8px;color:#6b7280;font-size:13px;min-height:38px}.extra[data-v-396ba387]{margin-top:10px;display:flex;flex-wrap:wrap;gap:12px 20px}.extra-item[data-v-396ba387]{display:inline-flex;align-items:baseline;gap:6px;font-size:13px}.extra-k[data-v-396ba387]{color:#9ca3af}.extra-v[data-v-396ba387]{color:#2563eb;font-weight:700}.meta[data-v-396ba387]{margin-top:12px;display:flex;align-items:center;gap:10px}.muted[data-v-396ba387]{color:#9ca3af;font-size:12px}.bar[data-v-396ba387]{flex:1;height:8px;border-radius:999px;background:#e5e7eb;overflow:hidden;border:1px solid #d1d5db}.fill[data-v-396ba387]{height:100%;background:linear-gradient(90deg,#3b82f6,#22c55e)}.actions[data-v-396ba387]{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}.btn[data-v-396ba387]{padding:8px 10px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;text-decoration:none;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:4px;transition:background .15s ease,box-shadow .15s ease,transform .08s ease}.btn[data-v-396ba387]:hover{background:#f3f4f6}.btn.primary[data-v-396ba387]{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:transparent;color:#fff;font-weight:750;box-shadow:0 6px 14px #2563eb59}.btn.primary[data-v-396ba387]:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 8px 18px #2563eb73}.btn.danger[data-v-396ba387]{background:#fee2e2;border-color:#fecaca;color:#b91c1c}.btn.danger[data-v-396ba387]:hover{background:#fecaca}.modal-mask[data-v-396ba387]{position:fixed;inset:0;background:#0f172a52;display:flex;align-items:center;justify-content:center;padding:16px;z-index:80}.modal[data-v-396ba387]{width:560px;max-width:100%;background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 22px 60px #0f172a59}.modal-head[data-v-396ba387]{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 10px;border-bottom:1px solid #e5e7eb}.modal-title[data-v-396ba387]{color:#111827;font-weight:850}.icon[data-v-396ba387]{background:transparent;border:none;color:#9ca3af;font-size:20px;cursor:pointer;line-height:1;padding:4px}.icon[data-v-396ba387]:hover{color:#111827}.modal-body[data-v-396ba387]{padding:14px;display:grid;gap:10px}.field .label[data-v-396ba387]{color:#4b5563;font-size:12px;margin-bottom:6px}.input[data-v-396ba387]{width:100%;background:#fff;border:1px solid #d1d5db;color:#111827;border-radius:10px;padding:10px 12px;outline:none}.input[data-v-396ba387]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}.modal-foot[data-v-396ba387]{display:flex;justify-content:flex-end;gap:10px;padding:12px 14px 14px;border-top:1px solid #e5e7eb;background:#f9fafb}.geofence-panel[data-v-404a4ab6]{display:flex;flex-direction:column;gap:12px}.panel-tip[data-v-404a4ab6]{margin:0;font-size:13px;line-height:1.5}.search-row[data-v-404a4ab6]{display:flex;gap:8px;flex-wrap:wrap}.search-input[data-v-404a4ab6]{flex:1;min-width:220px}.result-list[data-v-404a4ab6]{margin:0;padding:0;list-style:none;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;background:#fff}.result-item[data-v-404a4ab6]{display:block;width:100%;text-align:left;padding:10px 12px;border:none;border-bottom:1px solid #f1f5f9;background:#fff;cursor:pointer;font-size:13px;color:#0f172a}.result-item[data-v-404a4ab6]:hover{background:#f8fafc}.result-list li:last-child .result-item[data-v-404a4ab6]{border-bottom:none}.location-card[data-v-404a4ab6]{padding:12px 14px;border-radius:10px;background:#f0f9ff;border:1px solid #bae6fd}.location-head[data-v-404a4ab6]{font-size:12px;color:#0369a1;font-weight:600;margin-bottom:4px}.location-name[data-v-404a4ab6]{font-size:14px;color:#0f172a;word-break:break-all}.location-coord[data-v-404a4ab6]{margin-top:4px;font-size:12px}.location-empty[data-v-404a4ab6]{padding:12px 14px;border-radius:10px;background:#f8fafc;border:1px dashed #cbd5e1;font-size:13px}.radius-row[data-v-404a4ab6]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.radius-label[data-v-404a4ab6]{font-size:13px;color:#334155;min-width:160px}.radius-range[data-v-404a4ab6]{flex:1;min-width:140px}.radius-num[data-v-404a4ab6]{width:90px}.radius-unit[data-v-404a4ab6]{font-size:13px}.map-preview[data-v-404a4ab6]{height:280px;border-radius:12px;border:1px solid #e2e8f0;overflow:hidden;background:#f1f5f9;position:relative}.map-empty[data-v-404a4ab6]{display:flex;align-items:center;justify-content:center}.map-placeholder[data-v-404a4ab6]{font-size:13px}.actions[data-v-404a4ab6]{display:flex;gap:10px;flex-wrap:wrap}.input[data-v-404a4ab6]{padding:8px 12px;border-radius:8px;border:1px solid #d1d5db;font-size:14px}.btn[data-v-404a4ab6]{padding:8px 14px;border-radius:8px;border:1px solid #d1d5db;background:#fff;cursor:pointer}.btn.primary[data-v-404a4ab6]{background:#2563eb;color:#fff;border-color:#2563eb}.btn.danger[data-v-404a4ab6]{background:#fee2e2;color:#b91c1c;border-color:#fecaca}.btn[data-v-404a4ab6]:disabled{opacity:.55;cursor:not-allowed}.muted[data-v-404a4ab6]{color:#64748b}.bill-attach[data-v-4b864af9]{display:inline-flex;align-items:center;gap:8px;max-width:min(220px,100%);padding:6px 12px 6px 6px;border-radius:999px;text-decoration:none;border:1px solid rgba(139,92,246,.32);background:linear-gradient(135deg,#6366f124,#8b5cf614);box-shadow:0 1px #ffffff0f inset;transition:border-color .15s ease,box-shadow .15s ease,transform .12s ease}.bill-attach[data-v-4b864af9]:hover{border-color:#00d4aa73;box-shadow:0 0 0 1px #00d4aa1f,0 8px 20px #0003;transform:translateY(-1px)}.bill-attach--pdf[data-v-4b864af9]{border-color:#f8717159;background:linear-gradient(135deg,#f871711f,#b91c1c14)}.bill-attach--zip[data-v-4b864af9]{border-color:#eab30861;background:linear-gradient(135deg,#eab30824,#a1620714)}.bill-attach--file[data-v-4b864af9]{border-color:#818cf859}.bill-attach--image[data-v-4b864af9]{border-color:#2dd4bf59;background:linear-gradient(135deg,#2dd4bf1f,#0d948814);padding-left:5px}.bill-attach__preview[data-v-4b864af9]{flex-shrink:0;display:block;border-radius:10px;overflow:hidden;line-height:0;box-shadow:0 2px 8px #00000040}.bill-attach__thumb[data-v-4b864af9]{width:34px;height:34px;object-fit:cover;display:block;vertical-align:top}.bill-attach__icon[data-v-4b864af9]{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px}.bill-attach__svg[data-v-4b864af9]{width:32px;height:32px;display:block}.bill-attach__text[data-v-4b864af9]{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0}.bill-attach__label[data-v-4b864af9]{font-size:12px;font-weight:750;letter-spacing:.02em;color:#e0e7fff2;line-height:1.2}.bill-attach__hint[data-v-4b864af9]{font-size:10px;font-weight:500;color:#a5b4fcbf;line-height:1.2}.bill-attach--empty[data-v-4b864af9]{color:#ffffff59}.shell.light .bill-attach{border-color:#c7d2fe;background:linear-gradient(135deg,#eef2ff,#f5f3ff);box-shadow:0 1px 2px #0f172a0f}.shell.light .bill-attach:hover{border-color:#2dd4bf;box-shadow:0 4px 14px #0f172a14}.shell.light .bill-attach__label{color:#1e293b}.shell.light .bill-attach__hint{color:#64748b}.shell.light .bill-attach--pdf{border-color:#fecaca;background:linear-gradient(135deg,#fff1f2,#fef2f2)}.shell.light .bill-attach--zip{border-color:#fde68a;background:linear-gradient(135deg,#fffbeb,#fefce8)}.shell.light .bill-attach--image{border-color:#99f6e4;background:linear-gradient(135deg,#ecfdf5,#f0fdfa)}.shell.light .bill-attach--empty{color:#94a3b8}.page[data-v-2480a99a]{padding:24px 0;background:#f5f7fb;min-height:calc(100vh - 80px)}.head[data-v-2480a99a]{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}h1[data-v-2480a99a]{margin:0 0 6px;font-size:26px;color:#111827}.muted[data-v-2480a99a]{color:#6b7280;font-size:13px}.banner[data-v-2480a99a]{margin:10px 0 14px;padding:10px 12px;border-radius:14px;border:1px solid #fecaca;background:#fef2f2;color:#991b1b;font-size:13px}.empty[data-v-2480a99a]{padding:16px 4px;color:#6b7280;text-align:center}.hero[data-v-2480a99a]{display:flex;gap:14px;align-items:stretch;flex-wrap:wrap;border-radius:18px;padding:16px 16px 14px;border:1px solid #e5e7eb;background:radial-gradient(900px 220px at 10% 0%,rgba(129,140,248,.18),transparent 60%),radial-gradient(900px 240px at 90% 30%,rgba(56,189,248,.16),transparent 55%),#fff;box-shadow:0 18px 40px #94a3b873}.hero-left[data-v-2480a99a]{flex:1;min-width:260px}.name[data-v-2480a99a]{font-weight:900;letter-spacing:-.02em;color:#111827;font-size:18px}.desc[data-v-2480a99a]{margin-top:8px;color:#6b7280;font-size:13px;line-height:1.5}.contact-strip[data-v-2480a99a]{margin-top:12px;display:grid;gap:8px;max-width:720px}.ci-row[data-v-2480a99a]{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:start;font-size:13px}.ck[data-v-2480a99a]{color:#9ca3af;white-space:nowrap;padding-top:1px}.cv[data-v-2480a99a]{color:#111827;white-space:pre-wrap;word-break:break-word;line-height:1.45}.meta[data-v-2480a99a]{margin-top:10px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.badge[data-v-2480a99a]{font-size:12px;padding:4px 8px;border-radius:999px;border:1px solid #e5e7eb;color:#4b5563;background:#f9fafb}.badge.未实施[data-v-2480a99a]{border-color:#10b98159;color:#059669;background:#10b98114}.badge.实施中[data-v-2480a99a]{border-color:#e5e7eb;color:#374151;background:#f3f4f6}.badge.项目验收[data-v-2480a99a]{border-color:#f59e0b66;color:#b45309;background:#f59e0b1a}.pill[data-v-2480a99a]{padding:6px 10px;border-radius:14px;border:1px solid rgba(37,99,235,.22);background:#2563eb0f;color:#1d4ed8;font-weight:750;font-size:13px}.hero-right[data-v-2480a99a]{width:260px;min-width:220px;display:flex;flex-direction:column;gap:8px;justify-content:center}.k[data-v-2480a99a]{color:#6b7280;font-size:12px}.progress[data-v-2480a99a]{height:10px;border-radius:999px;background:#e5e7eb;border:1px solid #e5e7eb;overflow:hidden}.fill[data-v-2480a99a]{height:100%;background:linear-gradient(90deg,#3b82f6,#2563eb)}.v[data-v-2480a99a]{color:#111827;font-weight:800}.hero-foot[data-v-2480a99a]{flex:1 1 100%;margin-top:2px;padding-top:12px;border-top:1px solid #e5e7eb;font-size:12px;line-height:1.5}.grid[data-v-2480a99a]{margin-top:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.card[data-v-2480a99a]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:16px;box-shadow:0 18px 40px #0f172a0f}.card-head[data-v-2480a99a]{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}h2[data-v-2480a99a]{margin:0;font-size:16px;color:#111827}.table-wrap[data-v-2480a99a]{overflow:auto}.table[data-v-2480a99a]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-2480a99a],.table td[data-v-2480a99a]{padding:10px;border-bottom:1px solid #e5e7eb;text-align:left;white-space:nowrap}.table td.time-cell[data-v-2480a99a]{white-space:normal;min-width:158px;max-width:200px;line-height:1.45}.table th[data-v-2480a99a]{color:#6b7280;font-weight:700;background:#f9fafb}.strong[data-v-2480a99a]{font-weight:700;color:#111827}.accent[data-v-2480a99a]{color:#2563eb;font-weight:800}.ops[data-v-2480a99a]{display:flex;gap:8px;flex-wrap:wrap}.bar[data-v-2480a99a]{display:inline-block;width:120px;height:8px;border-radius:999px;background:#e5e7eb;border:1px solid #e5e7eb;overflow:hidden;vertical-align:middle;margin-right:8px}.barfill[data-v-2480a99a]{height:100%;background:linear-gradient(90deg,#3b82f6,#2563eb)}.badge2[data-v-2480a99a]{font-size:12px;padding:4px 8px;border-radius:999px;border:1px solid #e5e7eb;background:#f9fafb;color:#374151}.btn[data-v-2480a99a]{padding:8px 12px;border-radius:12px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;text-decoration:none;font-size:13px;transition:border-color .15s ease,color .15s ease,box-shadow .15s ease}.btn[data-v-2480a99a]:hover{border-color:#3b82f6;color:#1d4ed8;box-shadow:0 6px 18px #0f172a14}.btn.primary[data-v-2480a99a]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:650}.btn.primary[data-v-2480a99a]:hover{filter:brightness(1.03);color:#fff}.btn.danger[data-v-2480a99a]{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.btn.danger[data-v-2480a99a]:hover{border-color:#f87171;color:#991b1b}.modal-mask[data-v-2480a99a]{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:16px;z-index:80}.modal[data-v-2480a99a]{width:560px;max-width:100%;background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 22px 60px #0f172a2e}.modal-head[data-v-2480a99a]{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 10px;border-bottom:1px solid #e5e7eb}.modal-title[data-v-2480a99a]{color:#111827;font-weight:800}.icon[data-v-2480a99a]{background:transparent;border:none;color:#6b7280;font-size:20px;cursor:pointer}.modal-body[data-v-2480a99a]{padding:14px;display:grid;gap:10px}.field .label[data-v-2480a99a]{color:#6b7280;font-size:12px;margin-bottom:6px}.form-hint[data-v-2480a99a]{margin:0 0 8px;font-size:12px;line-height:1.45}.sub-label[data-v-2480a99a]{font-size:11px;color:#64748b;margin-bottom:4px}.input[data-v-2480a99a]{width:100%;background:#fff;border:1px solid #d1d5db;color:#111827;border-radius:14px;padding:10px 12px;outline:none}.input[data-v-2480a99a]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}.modal-foot[data-v-2480a99a]{display:flex;justify-content:flex-end;gap:10px;padding:12px 14px 14px;border-top:1px solid #e5e7eb}.bill-preview-wrap[data-v-2480a99a]{margin-top:10px}.member-add-mode[data-v-2480a99a]{display:flex;gap:16px;margin-top:6px}.member-add-mode label[data-v-2480a99a]{color:#374151;cursor:pointer;font-size:14px}.custom-member-input[data-v-2480a99a]{color:#111827!important;background:#fff!important;border-color:#d1d5db!important}.custom-member-input[data-v-2480a99a]:focus{border-color:#3b82f6!important;box-shadow:0 0 0 3px #3b82f633!important}@media(max-width:980px){.grid[data-v-2480a99a]{grid-template-columns:1fr}}.head[data-v-1236028d]{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}h1[data-v-1236028d]{margin:0 0 6px;font-size:26px;color:#ffffffeb}p[data-v-1236028d]{margin:0;color:#ffffff8c}.filters[data-v-1236028d]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.project-search-combo[data-v-1236028d]{min-width:min(520px,86vw);flex:1}.project-search[data-v-1236028d]{width:220px}.select[data-v-1236028d]{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:#ffffffe6;border-radius:14px;padding:10px 12px;outline:none}.pill[data-v-1236028d]{padding:10px 12px;border-radius:14px;border:1px solid rgba(0,212,170,.22);background:#00d4aa14;color:#00d4aa;font-weight:800;font-size:13px}.stats-strip[data-v-1236028d]{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap;padding:10px 12px;border-radius:14px;border:1px solid #e5e7eb;background:#fff;box-shadow:0 10px 24px #0f172a14}.stats-item[data-v-1236028d]{min-width:108px}.stats-k[data-v-1236028d]{font-size:12px;color:#6b7280;font-weight:700}.stats-v[data-v-1236028d]{font-size:13px;color:#111827;font-weight:900}.banner[data-v-1236028d]{margin:10px 0 14px;padding:10px 12px;border-radius:14px;border:1px solid rgba(248,81,73,.35);background:#f851491a;color:#ffffffdb;font-size:13px}.empty[data-v-1236028d]{padding:16px 4px;color:#9ca3af;text-align:center}.table-wrap[data-v-1236028d]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 10px 24px #0f172a14;overflow:auto}.table[data-v-1236028d]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-1236028d],.table td[data-v-1236028d]{padding:12px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:middle}.table th[data-v-1236028d]{color:#6b7280;font-weight:700;white-space:nowrap;background-color:#f3f4f6}.muted[data-v-1236028d]{color:#9ca3af}.strong[data-v-1236028d]{font-weight:800;color:#111827}.accent[data-v-1236028d]{color:#2563eb;font-weight:850}.ops[data-v-1236028d]{display:flex;gap:8px;white-space:nowrap}.btn[data-v-1236028d]{padding:8px 10px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:4px;transition:background .15s ease,box-shadow .15s ease,transform .08s ease}.btn[data-v-1236028d]:hover{background:#f3f4f6}.btn.primary[data-v-1236028d]{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:transparent;color:#fff;font-weight:750;box-shadow:0 6px 14px #2563eb59}.btn.primary[data-v-1236028d]:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 8px 18px #2563eb73}.btn.danger[data-v-1236028d]{border-color:#fecaca;background:#fee2e2;color:#b91c1c}.btn.danger[data-v-1236028d]:hover{background:#fecaca}.modal-mask[data-v-1236028d]{position:fixed;inset:0;background:#0f172a52;display:flex;align-items:center;justify-content:center;padding:16px;z-index:80}.modal[data-v-1236028d]{width:520px;max-width:100%;max-height:90vh;overflow:visible;display:flex;flex-direction:column;background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 22px 60px #0f172a59}.modal-head[data-v-1236028d]{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 10px;border-bottom:1px solid #e5e7eb}.modal-title[data-v-1236028d]{color:#111827;font-weight:850}.modal-banner[data-v-1236028d]{margin:8px 12px 0;padding:8px 10px;border-radius:12px;border:1px solid #fecaca;background:#fef2f2;color:#b91c1c;font-size:13px}.icon[data-v-1236028d]{background:transparent;border:none;color:#9ca3af;font-size:20px;cursor:pointer}.modal-body[data-v-1236028d]{padding:14px;display:grid;gap:10px;overflow-x:hidden;overflow-y:auto;max-height:min(70vh,560px)}.field .label[data-v-1236028d]{color:#4b5563;font-size:12px;margin-bottom:6px}.upload-hint[data-v-1236028d]{margin:0 0 6px;line-height:1.45}.input[data-v-1236028d]{width:100%;background:#fff;border:1px solid #d1d5db;color:#111827;border-radius:10px;padding:10px 12px;outline:none}.input[data-v-1236028d]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}.upload-label[data-v-1236028d]{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:12px;border:1px solid rgba(0,212,170,.35);background:#00d4aa14;color:#00d4aa;font-size:13px;font-weight:600;cursor:pointer;margin-top:4px}.upload-label.disabled[data-v-1236028d]{opacity:.7;cursor:not-allowed}.input-file[data-v-1236028d]{position:absolute;width:0;height:0;opacity:0;overflow:hidden}.preview-row[data-v-1236028d]{display:flex;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap}.small-hint[data-v-1236028d]{font-size:12px}.modal-foot[data-v-1236028d]{display:flex;justify-content:flex-end;gap:10px;padding:12px 14px 14px;border-top:1px solid #e5e7eb;background:#f9fafb}.pagination[data-v-1236028d]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border-top:1px solid #e5e7eb;background:#f9fafb}.pagination-info[data-v-1236028d]{color:#6b7280;font-size:13px}.page-size-select[data-v-1236028d]{padding:6px 10px;font-size:13px}.small[data-v-1236028d]{font-size:12px}.page[data-v-70286069]{padding:24px 0;background:#f5f7fb;color:#111827!important}.filters-row[data-v-70286069]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px;padding:12px 16px;background:#fff;border-radius:16px;border:1px solid #e5e7eb;box-shadow:0 10px 30px #0f172a0f}.filters-row .select[data-v-70286069]{width:160px;min-width:140px;flex-shrink:0}.filters-row .search-input[data-v-70286069]{width:160px!important;min-width:130px;max-width:190px;flex-shrink:0}.filters-row .btn[data-v-70286069]{flex-shrink:0;white-space:nowrap}.select[data-v-70286069]{background:#fff;border-radius:999px;border:1px solid #d1d5db;padding:8px 14px;outline:none;color:#111827;font-size:13px;transition:all .18s ease}.select[data-v-70286069]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.input[data-v-70286069]{width:100%;background:#fff;border-radius:999px;border:1px solid #d1d5db;padding:8px 14px;outline:none;color:#111827;font-size:13px;transition:all .18s ease}.input[data-v-70286069]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.btn[data-v-70286069]{padding:8px 14px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;font-size:13px;transition:all .18s ease}.btn[data-v-70286069]:disabled{opacity:.5;cursor:not-allowed}.btn[data-v-70286069]:hover:not(:disabled){border-color:#3b82f6;color:#1d4ed8;box-shadow:0 6px 18px #0f172a14}.btn.outline[data-v-70286069]{border-color:#60a5fa;color:#1d4ed8;background:#eff6ff}.btn.primary[data-v-70286069]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600;box-shadow:0 10px 25px #2563eb47}.btn.primary[data-v-70286069]:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#2563eb);border-color:#1d4ed8}.btn.danger[data-v-70286069]{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.btn.danger[data-v-70286069]:hover:not(:disabled){border-color:#fca5a5;background:#fee2e2;color:#991b1b}.empty[data-v-70286069]{padding:24px 4px;color:#4b5563!important;font-size:14px;text-align:center}.table-wrap[data-v-70286069]{background:#fff;border-radius:18px 18px 0 0;border:1px solid #e5e7eb;box-shadow:0 18px 45px #0f172a0f;overflow-x:auto;overflow-y:visible;max-width:100%}.table[data-v-70286069]{width:100%;min-width:1100px;border-collapse:collapse;font-size:13px}.table th[data-v-70286069],.table td[data-v-70286069]{padding:10px 12px;border-bottom:1px solid #e5e7eb;text-align:left;max-width:220px;word-break:break-word;overflow-wrap:break-word;color:#111827!important}.table th[data-v-70286069]{background:#f3f4f6;color:#4b5563!important;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.col-check[data-v-70286069]{width:44px;min-width:44px;text-align:center;vertical-align:middle}.col-check input[type=checkbox][data-v-70286069]{accent-color:#2563eb;cursor:pointer;width:16px;height:16px}.col-ops[data-v-70286069]{min-width:140px;white-space:nowrap}.cell-project[data-v-70286069],.cell-name[data-v-70286069]{min-width:120px}.cell-date[data-v-70286069]{min-width:95px;white-space:nowrap}.cell-doc[data-v-70286069],.cell-code[data-v-70286069]{min-width:90px}.cell-spec[data-v-70286069]{min-width:100px}.cell-unit[data-v-70286069]{min-width:60px}.cell-num[data-v-70286069]{min-width:80px;text-align:right;white-space:nowrap}.ops[data-v-70286069]{display:flex;gap:8px;flex-wrap:wrap}.pagination[data-v-70286069]{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#fff;border:1px solid #e5e7eb;border-top:none;border-radius:0 0 18px 18px;flex-wrap:wrap}.pagination .btn[data-v-70286069]{background:#f9fafb;border-color:#e5e7eb}.pagination .btn[data-v-70286069]:hover:not(:disabled){background:#eff6ff;border-color:#3b82f6}.page-size-select[data-v-70286069]{background:#fff;border:1px solid #d1d5db;border-radius:999px;padding:6px 12px}.pagination-info[data-v-70286069],.pagination-page[data-v-70286069]{color:#6b7280;font-size:13px}.import-desc[data-v-70286069]{margin:10px 14px 0;color:#4b5563;font-size:12px;line-height:1.5}.import-backend-tip[data-v-70286069]{margin:10px 14px 0;padding:10px 12px;border-radius:12px;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;font-size:12px;line-height:1.55}.import-upload[data-v-70286069]{margin:14px;padding:24px;border:2px dashed #d1d5db;border-radius:16px;text-align:center;color:#6b7280;cursor:pointer;background:#f9fafb;transition:all .18s ease}.import-upload[data-v-70286069]:hover{border-color:#60a5fa;background:#eff6ff;color:#1d4ed8}.import-preview[data-v-70286069]{margin:0 14px;overflow:auto;max-height:220px;border-radius:12px;border:1px solid #e5e7eb;background:#f9fafb}.preview-label[data-v-70286069]{font-size:12px;color:#6b7280;margin:8px 12px}.preview-table[data-v-70286069]{font-size:12px}.import-modal[data-v-70286069]{max-width:640px}.modal-mask[data-v-70286069]{position:fixed;inset:0;background:#0f172a59;display:flex;align-items:center;justify-content:center;padding:16px;z-index:80}.modal[data-v-70286069]{width:560px;max-width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;background:#fff;border:1px solid #e5e7eb;border-radius:20px;box-shadow:0 26px 70px #0f172a40}.modal-head[data-v-70286069]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid #e5e7eb}.modal-title[data-v-70286069]{color:#0f172a;font-weight:650;font-size:16px}.modal-banner[data-v-70286069]{margin:8px 14px 0;padding:8px 12px;border-radius:12px;border:1px solid #fee2e2;background:#fef2f2;color:#b91c1c;font-size:13px}.icon[data-v-70286069]{background:transparent;border:none;color:#6b7280;font-size:20px;cursor:pointer}.modal-body[data-v-70286069]{padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:10px;overflow:auto}.field[data-v-70286069]{grid-column:span 1}.field .label[data-v-70286069]{color:#6b7280;font-size:12px;margin-bottom:6px}.modal-foot[data-v-70286069]{display:flex;justify-content:flex-end;gap:10px;padding:12px 14px 14px;border-top:1px solid #e5e7eb}@media(max-width:600px){.modal-body[data-v-70286069]{grid-template-columns:1fr}}.page[data-v-19c1e68c]{padding:24px 0;background:#f5f7fb}.profile-hint[data-v-19c1e68c]{margin:0 0 14px;font-size:13px;line-height:1.55;color:#4b5563}.link-profile[data-v-19c1e68c]{color:#2563eb;font-weight:600;text-decoration:none}.link-profile[data-v-19c1e68c]:hover{text-decoration:underline}.empty[data-v-19c1e68c]{padding:20px 4px;color:#6b7280}.table-wrap[data-v-19c1e68c]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 18px 40px #0f172a0f;overflow:auto}.table[data-v-19c1e68c]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-19c1e68c],.table td[data-v-19c1e68c]{padding:10px 12px;border-bottom:1px solid #e5e7eb;text-align:left;white-space:nowrap}.table th[data-v-19c1e68c]{color:#4b5563;font-weight:600;background:#f3f4f6;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.muted[data-v-19c1e68c]{color:#6b7280}.strong[data-v-19c1e68c]{font-weight:600;color:#111827}.ops[data-v-19c1e68c]{display:flex;gap:8px}.badge[data-v-19c1e68c]{font-size:12px;padding:4px 8px;border-radius:999px;border:1px solid #e5e7eb;color:#4b5563;background:#f9fafb}.badge.admin[data-v-19c1e68c],.badge.user[data-v-19c1e68c],.badge.employee[data-v-19c1e68c],.badge.pm[data-v-19c1e68c],.badge.sales[data-v-19c1e68c]{border-color:#3b82f666;background:#dbeafee6;color:#1d4ed8}.badge.sales[data-v-19c1e68c]{border-color:#0d948873;background:#ccfbf1f2;color:#0f766e}.badge.warn[data-v-19c1e68c]{border-color:#eab30866;color:#92400e;background:#fef3c7f2}.badge.ok[data-v-19c1e68c]{border-color:#22c55e66;color:#15803d;background:#dcfce7f2}.btn[data-v-19c1e68c]{padding:8px 10px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;text-decoration:none;font-size:13px;transition:all .18s ease}.btn[data-v-19c1e68c]:hover{border-color:#3b82f6;color:#1d4ed8;box-shadow:0 6px 18px #0f172a14}.btn.primary[data-v-19c1e68c]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600;box-shadow:0 10px 25px #2563eb47}.btn.danger[data-v-19c1e68c]{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.btn.danger[data-v-19c1e68c]:hover{border-color:#fca5a5;background:#fee2e2;color:#991b1b}.btn.thin[data-v-19c1e68c]{padding:6px 10px;font-size:12px}.modal-mask[data-v-19c1e68c]{position:fixed;inset:0;background:#0f172a66;display:flex;align-items:center;justify-content:center;padding:16px;z-index:80}.modal[data-v-19c1e68c]{width:520px;max-width:100%;background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 26px 70px #0f172a40}.modal.wide[data-v-19c1e68c]{width:560px}.hint[data-v-19c1e68c]{margin:0 0 10px;font-size:12px;line-height:1.55;color:#6b7280}.key-box[data-v-19c1e68c]{margin-top:12px;padding:12px;border-radius:14px;border:1px solid rgba(59,130,246,.4);background:#dbeafee6}.key-text[data-v-19c1e68c]{display:block;margin:8px 0;font-size:13px;word-break:break-all;color:#1d4ed8}.qr-img[data-v-19c1e68c]{width:220px;height:220px;border-radius:12px;border:1px solid #e5e7eb;background:#fff}.invite-block[data-v-19c1e68c]{margin-bottom:18px}.invite-title[data-v-19c1e68c]{font-size:13px;font-weight:700;color:#4b5563;margin-bottom:8px}.table-wrap.small[data-v-19c1e68c]{margin-top:0}.modal-head[data-v-19c1e68c]{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 10px;border-bottom:1px solid #e5e7eb}.modal-title[data-v-19c1e68c]{color:#0f172a;font-weight:650}.icon[data-v-19c1e68c]{background:transparent;border:none;color:#6b7280;font-size:20px;cursor:pointer}.modal-body[data-v-19c1e68c]{padding:14px;display:grid;gap:10px}.field .label[data-v-19c1e68c]{color:#6b7280;font-size:12px;margin-bottom:6px}.input[data-v-19c1e68c]{width:100%;background:#fff;border:1px solid #d1d5db;color:#111827;border-radius:14px;padding:9px 12px;outline:none;font-size:13px;transition:all .18s ease}.input[data-v-19c1e68c]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f62e}.modal-foot[data-v-19c1e68c]{display:flex;justify-content:flex-end;gap:10px;padding:12px 14px 14px;border-top:1px solid #e5e7eb}.users-audit-page.page[data-v-543fc4a7]{padding:14px 0 22px;background:#f5f7fb;min-height:100%}.lead-hint[data-v-543fc4a7]{margin:0 0 10px;font-size:12px;line-height:1.55;color:#4b5563;max-width:820px}.btn[data-v-543fc4a7]{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 16px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;font-size:13px;cursor:pointer;transition:all .18s ease}.btn[data-v-543fc4a7]:hover:not(:disabled){border-color:#3b82f6;color:#1d4ed8;box-shadow:0 6px 18px #0f172a14}.btn[data-v-543fc4a7]:disabled{opacity:.5;cursor:not-allowed}.btn-primary-head[data-v-543fc4a7]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600;box-shadow:0 10px 25px #2563eb47}.btn-primary-head[data-v-543fc4a7]:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#2563eb);border-color:#1d4ed8;color:#fff}.btn-ico[data-v-543fc4a7]{font-size:16px;line-height:1}.card[data-v-543fc4a7]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 18px 40px #0f172a0f}.filter-card[data-v-543fc4a7]{padding:10px 12px 12px;margin-bottom:12px}.filter-head[data-v-543fc4a7]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #e5e7eb}.filter-title[data-v-543fc4a7]{font-size:14px;font-weight:600;color:#111827}.chips[data-v-543fc4a7]{display:flex;flex-wrap:wrap;gap:6px}.chip[data-v-543fc4a7]{height:28px;padding:0 10px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#374151;font-size:12px;cursor:pointer;transition:all .15s ease}.chip[data-v-543fc4a7]:hover{border-color:#3b82f6;color:#1d4ed8}.chip-ghost[data-v-543fc4a7]{background:#f9fafb;color:#6b7280}.filter-grid[data-v-543fc4a7]{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px 12px;align-items:end}@media(max-width:960px){.filter-grid[data-v-543fc4a7]{grid-template-columns:1fr 1fr}.field.wide[data-v-543fc4a7]{grid-column:1 / -1}}.field .lbl[data-v-543fc4a7]{display:block;font-size:11px;color:#6b7280;margin-bottom:5px}.inp[data-v-543fc4a7]{width:100%;height:34px;border-radius:999px;padding:0 12px;box-sizing:border-box;color:#111827;background:#fff;border:1px solid #d1d5db;outline:none;font-size:13px}.inp[data-v-543fc4a7]:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.table-card[data-v-543fc4a7]{padding:0;overflow:hidden}.table-head[data-v-543fc4a7]{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.table-title[data-v-543fc4a7]{margin:0;font-size:15px;font-weight:600;color:#111827}.loading-dot[data-v-543fc4a7]{font-size:12px;color:#2563eb;animation:pulse-543fc4a7 1.2s ease-in-out infinite}@keyframes pulse-543fc4a7{0%,to{opacity:.55}50%{opacity:1}}.table-scroll[data-v-543fc4a7]{overflow:auto;max-height:min(66vh,720px)}.tbl[data-v-543fc4a7]{width:100%;border-collapse:collapse;min-width:1040px}.tbl th[data-v-543fc4a7],.tbl td[data-v-543fc4a7]{text-align:left;padding:8px 10px;border-bottom:1px solid #e5e7eb;vertical-align:top}.tbl th[data-v-543fc4a7]{position:sticky;top:0;z-index:1;font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#4b5563;background:#f3f4f6}.col-time[data-v-543fc4a7]{width:158px}.col-user[data-v-543fc4a7]{width:140px}.col-method[data-v-543fc4a7]{width:88px}.col-code[data-v-543fc4a7]{width:80px}.col-ip[data-v-543fc4a7]{width:120px}.col-path[data-v-543fc4a7]{width:200px;max-width:220px}.col-sum[data-v-543fc4a7]{min-width:280px}.data-row[data-v-543fc4a7]{transition:background .12s ease}.data-row:hover td[data-v-543fc4a7]{background:#f8fafc}.data-row td[data-v-543fc4a7]:first-child{box-shadow:inset 3px 0 0 transparent;transition:box-shadow .12s ease}.data-row:hover td[data-v-543fc4a7]:first-child{box-shadow:inset 3px 0 #2563eb}.time-cell[data-v-543fc4a7]{font-size:12px;color:#374151;white-space:nowrap}.sum-cell-main[data-v-543fc4a7]{font-size:12px;line-height:1.5;color:#111827;font-weight:500;white-space:pre-wrap;word-break:break-word;max-width:480px}.user-pill[data-v-543fc4a7]{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 10px;border-radius:10px;background:#f9fafb;border:1px solid #e5e7eb}.user-name[data-v-543fc4a7]{font-size:12px;font-weight:600;color:#111827}.user-id[data-v-543fc4a7]{font-size:11px;color:#6b7280}.method[data-v-543fc4a7]{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:26px;padding:0 8px;border-radius:8px;font-size:11px;font-weight:700;letter-spacing:.04em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;border:1px solid transparent}.method-post[data-v-543fc4a7]{color:#6d28d9;background:#ede9fe;border-color:#c4b5fd}.method-put[data-v-543fc4a7]{color:#0369a1;background:#e0f2fe;border-color:#7dd3fc}.method-del[data-v-543fc4a7]{color:#b91c1c;background:#fee2e2;border-color:#fca5a5}.method-def[data-v-543fc4a7]{color:#4b5563;background:#f3f4f6;border-color:#d1d5db}.status[data-v-543fc4a7]{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:26px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:700;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.status-2xx[data-v-543fc4a7]{color:#15803d;background:#dcfce7;border:1px solid #86efac}.status-3xx[data-v-543fc4a7]{color:#a16207;background:#fef9c3;border:1px solid #fde047}.status-4xx[data-v-543fc4a7]{color:#b45309;background:#ffedd5;border:1px solid #fdba74}.status-5xx[data-v-543fc4a7]{color:#b91c1c;background:#fee2e2;border:1px solid #fca5a5}.path-cell[data-v-543fc4a7]{font-size:12px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2563eb}.ip-cell[data-v-543fc4a7]{font-size:12px;color:#6b7280}.mono[data-v-543fc4a7]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.muted[data-v-543fc4a7]{color:#6b7280;font-size:12px}.skeleton-wrap[data-v-543fc4a7]{padding:10px 0}.sk-row[data-v-543fc4a7]{display:flex;gap:10px;align-items:center;margin-bottom:10px}.sk[data-v-543fc4a7]{height:14px;border-radius:6px;background:linear-gradient(90deg,#f3f4f6,#e5e7eb,#f3f4f6);background-size:200% 100%;animation:sh-543fc4a7 1.1s ease-in-out infinite}.sk-a[data-v-543fc4a7]{width:140px}.sk-b[data-v-543fc4a7]{flex:1;min-width:120px}.sk-c[data-v-543fc4a7]{width:100px}.sk-d[data-v-543fc4a7]{width:56px}.sk-e[data-v-543fc4a7]{flex:.6;min-width:80px}.sk-f[data-v-543fc4a7]{width:44px}.sk-g[data-v-543fc4a7]{width:100px}@keyframes sh-543fc4a7{0%{background-position:200% 0}to{background-position:-200% 0}}.empty[data-v-543fc4a7]{text-align:center;padding:48px 20px 40px}.empty-ico[data-v-543fc4a7]{font-size:40px;line-height:1;margin-bottom:12px;opacity:.35}.empty-title[data-v-543fc4a7]{font-size:16px;font-weight:600;margin-bottom:8px;color:#111827}.empty-sub[data-v-543fc4a7]{font-size:13px;color:#6b7280;max-width:400px;margin:0 auto;line-height:1.5}.pager[data-v-543fc4a7]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 18px;border-top:1px solid #e5e7eb;background:#fafafa}.pager-btns[data-v-543fc4a7]{display:flex;gap:10px}.btn-pg[data-v-543fc4a7]{height:38px;padding:0 18px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;font-size:13px;cursor:pointer;transition:all .15s ease}.btn-pg[data-v-543fc4a7]:hover:not(:disabled){border-color:#3b82f6;color:#1d4ed8;box-shadow:0 6px 18px #0f172a14}.btn-pg-primary[data-v-543fc4a7]{border-color:#2563eb;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;font-weight:600;box-shadow:0 10px 25px #2563eb47}.btn-pg-primary[data-v-543fc4a7]:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#2563eb);border-color:#1d4ed8;color:#fff}.btn-pg[data-v-543fc4a7]:disabled{opacity:.45;cursor:not-allowed}.page[data-v-7db64386]{padding:24px 0;background:#f5f7fb}.muted[data-v-7db64386]{color:#6b7280;font-size:13px}.small[data-v-7db64386]{font-size:12px}.empty[data-v-7db64386]{padding:28px 4px;text-align:center;color:#6b7280;font-size:14px}.card[data-v-7db64386]{background:#fff;border-radius:18px;border:1px solid #e5e7eb;padding:16px 16px 14px;margin-bottom:18px;box-shadow:0 18px 40px #0f172a0f}.filters-card[data-v-7db64386]{padding:12px 14px;overflow:visible;position:relative;z-index:30}.filters[data-v-7db64386]{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:nowrap;min-width:min-content}.filters-left[data-v-7db64386]{display:flex;gap:10px;align-items:center;flex-wrap:nowrap;flex:1 1 auto;min-width:0}.supplier-search-combo[data-v-7db64386]{min-width:min(520px,80vw);flex:1}.filters-right[data-v-7db64386]{display:flex;gap:10px;align-items:center;flex-wrap:nowrap;flex-shrink:0}.filters-right .muted.small[data-v-7db64386]{white-space:nowrap}.filters-input[data-v-7db64386]{flex:1 1 200px;min-width:160px;max-width:480px;width:auto}.filters-select[data-v-7db64386]{width:92px;flex-shrink:0}.table-wrap[data-v-7db64386]{overflow-x:auto}.table[data-v-7db64386]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-7db64386],.table td[data-v-7db64386]{padding:10px 12px;border-bottom:1px solid #e5e7eb;vertical-align:middle;text-align:left}.table th[data-v-7db64386]{background:#f3f4f6;color:#4b5563;font-weight:600;font-size:12px;white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}.table td[data-v-7db64386]{font-size:13px;color:#111827}.strong[data-v-7db64386]{font-weight:600;color:#111827}.cell-address[data-v-7db64386]{max-width:280px;vertical-align:top}.address-box[data-v-7db64386]{border:1px solid #e5e7eb;background:#f9fafb;border-radius:12px;padding:10px 10px 8px}.address-text[data-v-7db64386]{margin:0;white-space:pre-wrap;word-break:break-word;color:#111827;font-size:12px;line-height:1.45;max-height:2.9em;overflow:hidden}.address-box.expanded .address-text[data-v-7db64386]{max-height:none}.address-actions[data-v-7db64386]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.cell-invoice[data-v-7db64386]{max-width:320px;color:#6b7280}.invoice-box[data-v-7db64386]{border:1px solid #e5e7eb;background:#f9fafb;border-radius:12px;padding:10px 10px 8px}.invoice-pre[data-v-7db64386]{margin:0;white-space:pre-wrap;word-break:break-word;color:#111827;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px;line-height:1.35;max-height:calc(1.35em * 3);overflow:hidden}.invoice-box.expanded .invoice-pre[data-v-7db64386]{max-height:none}.invoice-actions[data-v-7db64386]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.btn.sm[data-v-7db64386]{padding:6px 8px;border-radius:10px;font-size:12px}.table-wrap.inner td.ops[data-v-7db64386]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;white-space:nowrap}.th-ops-main[data-v-7db64386]{text-align:center}td.ops-main[data-v-7db64386]{text-align:center;vertical-align:middle}.ops-main .ops-cell[data-v-7db64386]{display:inline-flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap}.btn[data-v-7db64386]{padding:8px 12px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;font-size:13px;text-decoration:none;transition:all .18s ease}.btn[data-v-7db64386]:hover{border-color:#3b82f6;color:#1d4ed8;box-shadow:0 6px 18px #0f172a14}.btn.primary[data-v-7db64386]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600;box-shadow:0 10px 25px #2563eb47}.btn.primary[data-v-7db64386]:hover{background:linear-gradient(135deg,#1d4ed8,#2563eb);border-color:#1d4ed8;color:#fff}.btn.danger[data-v-7db64386]{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.btn.danger[data-v-7db64386]:hover{border-color:#fca5a5;background:#fee2e2;color:#991b1b}.btn.ok[data-v-7db64386]{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.btn.ok[data-v-7db64386]:hover{border-color:#86efac;background:#dcfce7}.status-badge[data-v-7db64386]{display:inline-block;font-size:12px;padding:2px 9px;border-radius:999px;font-weight:600}.status-badge.st-active[data-v-7db64386]{background:#dcfce7;color:#15803d}.status-badge.st-pending[data-v-7db64386]{background:#fef3c7;color:#92400e}.status-badge.st-rejected[data-v-7db64386]{background:#fee2e2;color:#b91c1c}.src-tag[data-v-7db64386]{margin-left:6px;font-size:11px;color:#6366f1}.reject-reason[data-v-7db64386]{margin-top:4px;font-size:11px;color:#b91c1c;max-width:160px}.review-log[data-v-7db64386]{display:flex;flex-direction:column;gap:12px}.review-log-item[data-v-7db64386]{border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;background:#fafbfc}.review-log-head[data-v-7db64386]{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.review-log-comment[data-v-7db64386]{margin-top:6px;color:#334155;font-size:13px;white-space:pre-wrap}.pay-toolbar[data-v-7db64386]{display:flex;gap:10px;margin-bottom:10px;flex-wrap:wrap}.table-wrap.inner[data-v-7db64386]{border:1px solid #e5e7eb;border-radius:14px}.bar[data-v-7db64386]{width:140px;height:9px;border-radius:999px;background:#e5e7eb;overflow:hidden}.bar-in[data-v-7db64386]{height:100%;background:linear-gradient(90deg,#2563eb,#3b82f6)}.badge[data-v-7db64386]{padding:3px 10px;border-radius:999px;font-size:12px;display:inline-flex;align-items:center;font-weight:500}.badge.paid[data-v-7db64386]{border:1px solid rgba(22,163,74,.3);background:#16a34a14;color:#16a34a}.badge.partial[data-v-7db64386]{border:1px solid rgba(234,179,8,.35);background:#facc151f;color:#92400e}.badge.unpaid[data-v-7db64386]{border:1px solid rgba(248,113,113,.45);background:#fee2e2cc;color:#b91c1c}.row-selected[data-v-7db64386]{background:#eff6ff}.ops[data-v-7db64386]{white-space:nowrap;display:flex;gap:8px;flex-wrap:wrap}.select[data-v-7db64386]{padding:8px 12px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;font-size:13px;min-width:220px}.select.small[data-v-7db64386]{min-width:220px}.modal-mask[data-v-7db64386]{position:fixed;inset:0;background:#0f172a59;display:flex;align-items:center;justify-content:center;padding:16px;z-index:80}.modal[data-v-7db64386]{width:520px;max-width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;background:#fff;border:1px solid #e5e7eb;border-radius:20px;box-shadow:0 26px 70px #0f172a40}.pay-modal[data-v-7db64386]{width:980px}.modal-head[data-v-7db64386]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid #e5e7eb}.modal-title[data-v-7db64386]{color:#0f172a;font-weight:650;font-size:16px}.icon[data-v-7db64386]{background:transparent;border:none;color:#6b7280;font-size:20px;cursor:pointer}.modal-body[data-v-7db64386]{padding:14px;display:grid;gap:10px;overflow:auto}.field .label[data-v-7db64386]{color:#6b7280;font-size:12px;margin-bottom:6px}.input[data-v-7db64386]{width:100%;background:#fff;border:1px solid #d1d5db;color:#111827;border-radius:12px;padding:9px 12px;outline:none;font-size:13px;transition:all .18s ease}.input[data-v-7db64386]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f62e}.filters-left .input.filters-input[data-v-7db64386]{width:auto}.filters-right .input.filters-select[data-v-7db64386]{width:92px;min-width:92px}.textarea[data-v-7db64386]{resize:vertical;min-height:80px}.modal-foot[data-v-7db64386]{display:flex;justify-content:flex-end;gap:10px;padding:12px 14px 14px;border-top:1px solid #e5e7eb}.page[data-v-dd23e45f]{padding:24px 0;background:#f5f7fb}.head[data-v-dd23e45f]{margin-bottom:20px}h1[data-v-dd23e45f]{margin:0 0 6px;font-size:26px;color:#111827}p[data-v-dd23e45f]{margin:0;color:#6b7280;font-size:13px}.section[data-v-dd23e45f]{background:#fff;border-radius:12px;margin-bottom:16px;overflow:hidden;border:1px solid #e5e7eb;box-shadow:0 8px 20px #0f172a0f}.section-header[data-v-dd23e45f]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;cursor:pointer;-webkit-user-select:none;user-select:none;background:#f9fafb}.section-header[data-v-dd23e45f]:hover{background:#eef2ff}.section-header h2[data-v-dd23e45f]{margin:0;font-size:18px;color:#111827}.expand-icon[data-v-dd23e45f]{font-size:12px;color:#9ca3af}.section-body[data-v-dd23e45f]{padding:0 20px 20px;border-top:1px solid #e5e7eb}.section-body .desc[data-v-dd23e45f]{padding-top:14px}.desc[data-v-dd23e45f]{font-size:12px;color:#6b7280;margin-bottom:12px}.form-row[data-v-dd23e45f]{margin-bottom:10px}.form-row label[data-v-dd23e45f]{display:block;font-size:12px;color:#4b5563;margin-bottom:4px}.form-row input[data-v-dd23e45f]{width:100%;max-width:400px;padding:7px 11px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#111827;font-size:12px}.form-row input[data-v-dd23e45f]::placeholder{color:#9ca3af}.form-row .select[data-v-dd23e45f]{padding:7px 11px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#111827;font-size:12px;min-width:120px}.form-row .textarea[data-v-dd23e45f]{width:100%;max-width:560px;padding:8px 11px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#111827;font-size:12px;font-family:monospace;resize:vertical}.form-row .textarea[data-v-dd23e45f]::placeholder{color:#9ca3af}.form-row.actions[data-v-dd23e45f]{margin-top:10px;display:flex;align-items:center;gap:8px}.save-msg[data-v-dd23e45f]{font-size:11px;color:#16a34a}.error-detail[data-v-dd23e45f]{margin-top:14px;padding:14px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px}.error-detail h3[data-v-dd23e45f]{margin:0 0 10px;font-size:13px;color:#b91c1c}.error-detail p[data-v-dd23e45f]{margin:6px 0;font-size:12px;color:#6b7280}.error-detail pre[data-v-dd23e45f]{margin:6px 0;font-size:12px;color:#111827;white-space:pre-wrap;word-break:break-all;background:#f9fafb;border-radius:6px;padding:8px 10px}.btn[data-v-dd23e45f]{padding:6px 14px;border-radius:999px;font-size:12px;cursor:pointer;border:1px solid #d1d5db;background:#fff;color:#111827;display:inline-flex;align-items:center;justify-content:center;gap:4px;transition:background .15s ease,box-shadow .15s ease,transform .08s ease}.btn[data-v-dd23e45f]:hover:not(:disabled){background:#f3f4f6}.btn.primary[data-v-dd23e45f]{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-color:transparent;box-shadow:0 6px 14px #2563eb59}.btn.primary[data-v-dd23e45f]:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 8px 18px #2563eb73}.btn.primary[data-v-dd23e45f]:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.message[data-v-dd23e45f]{margin-top:10px;padding:8px 10px;border-radius:8px;font-size:12px}.message.success[data-v-dd23e45f]{background:#dcfce7;color:#166534}.message.error[data-v-dd23e45f]{background:#fee2e2;color:#b91c1c}.message.info[data-v-dd23e45f]{background:#e5e7eb;color:#374151}.result[data-v-dd23e45f]{margin-top:10px;padding:10px;background:#f9fafb;border-radius:8px;overflow-x:auto;border:1px solid #e5e7eb}.result h3[data-v-dd23e45f]{margin:0 0 6px;font-size:12px;color:#111827}.result pre[data-v-dd23e45f]{margin:0;font-size:12px;color:#111827;white-space:pre-wrap;word-break:break-all}.page[data-v-d03a14f6]{padding:24px 0;background:#f5f7fb}.loading-wrap[data-v-d03a14f6]{display:flex;align-items:center;justify-content:center;gap:12px;padding:60px 20px;color:#6b7280;font-size:14px}.spinner[data-v-d03a14f6]{width:24px;height:24px;border:2px solid rgba(148,163,184,.5);border-top-color:#2563eb;border-radius:50%;animation:spin-d03a14f6 .8s linear infinite}@keyframes spin-d03a14f6{to{transform:rotate(360deg)}}.empty-card[data-v-d03a14f6]{text-align:center;padding:36px 24px;background:#fff;border:1px dashed #cbd5e1;border-radius:18px;color:#6b7280;box-shadow:0 10px 28px #0f172a0a}.empty-icon[data-v-d03a14f6]{font-size:40px;margin-bottom:8px;opacity:.7}.empty-card p[data-v-d03a14f6]{margin:0 0 4px;color:#111827;font-size:15px}.muted[data-v-d03a14f6]{color:#6b7280;font-size:13px}.card[data-v-d03a14f6]{background:#fff;border-radius:18px;border:1px solid #e5e7eb;padding:0;box-shadow:0 18px 40px #0f172a0f}.builtin-card[data-v-d03a14f6]{margin-bottom:20px;overflow:hidden}.backup-collapse-toggle[data-v-d03a14f6]{display:flex;align-items:center;gap:12px;width:100%;padding:14px 18px;border:none;border-bottom:1px solid #eef2f7;background:linear-gradient(135deg,#f8fafc,#eff6ff);cursor:pointer;text-align:left;font:inherit;color:inherit;transition:background .15s ease}.backup-collapse-toggle[data-v-d03a14f6]:hover{background:linear-gradient(135deg,#f1f5f9,#e0f2fe)}.backup-chevron[data-v-d03a14f6]{flex-shrink:0;width:1.25rem;font-size:12px;color:#64748b}.backup-toggle-main[data-v-d03a14f6]{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.backup-toggle-title[data-v-d03a14f6]{font-size:16px;font-weight:600;color:#0f172a}.backup-toggle-sub[data-v-d03a14f6]{font-size:12px}.backup-toggle-meta[data-v-d03a14f6]{flex-shrink:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.backup-toggle-cron[data-v-d03a14f6]{font-size:12px;background:#e2e8f0;padding:2px 8px;border-radius:6px}.badge.sm[data-v-d03a14f6]{font-size:11px;padding:2px 8px}.builtin-collapse-body[data-v-d03a14f6]{border-top:none}.builtin-table .col-name[data-v-d03a14f6]{min-width:280px;max-width:420px}.task-name-static[data-v-d03a14f6]{font-weight:600;color:#111827}.builtin-desc[data-v-d03a14f6]{margin:8px 0 0;font-size:12px;line-height:1.5;color:#64748b}.cron-sub[data-v-d03a14f6]{margin-top:4px;font-size:12px}.script-tag[data-v-d03a14f6]{font-size:12px;background:#f1f5f9;padding:2px 6px;border-radius:6px}.dir-tag[data-v-d03a14f6]{font-size:11px;word-break:break-all;background:#f1f5f9;padding:2px 6px;border-radius:6px}.col-dir .bad[data-v-d03a14f6]{color:#dc2626}.script-meta[data-v-d03a14f6]{margin-top:6px;font-size:12px;color:#64748b}.script-meta .ok[data-v-d03a14f6]{color:#059669}.script-meta .bad[data-v-d03a14f6]{color:#dc2626}.backup-settings[data-v-d03a14f6]{padding:16px 18px 20px;border-top:1px solid #eef2f7;background:#fafbfc}.backup-settings-title[data-v-d03a14f6]{margin:0 0 10px;font-size:14px;font-weight:600;color:#0f172a}.backup-hint[data-v-d03a14f6]{margin:0 0 12px;font-size:12px;line-height:1.55}.backup-hint code[data-v-d03a14f6]{font-size:11px;background:#e2e8f0;padding:1px 6px;border-radius:4px}.backup-warn[data-v-d03a14f6]{margin:0 0 12px;padding:10px 12px;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;color:#9a3412;font-size:13px}.backup-form-grid[data-v-d03a14f6]{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end}.bf-row[data-v-d03a14f6]{flex:1 1 220px;min-width:180px}.bf-row-narrow[data-v-d03a14f6]{flex:0 0 140px;min-width:120px}.bf-row-wide[data-v-d03a14f6]{flex:1 1 100%}.bf-row label[data-v-d03a14f6]{display:block;font-size:12px;color:#475569;margin-bottom:6px}.bf-actions[data-v-d03a14f6]{flex:0 0 auto;align-self:flex-end}.backup-no-perm[data-v-d03a14f6]{margin:0;font-size:13px}.table-wrap[data-v-d03a14f6]{overflow-x:auto}.table[data-v-d03a14f6]{width:100%;border-collapse:collapse}.table thead tr[data-v-d03a14f6]{border-bottom:1px solid #e5e7eb}.table th[data-v-d03a14f6],.table td[data-v-d03a14f6]{padding:10px 12px;text-align:left;border-bottom:1px solid #e5e7eb;vertical-align:middle}.table th[data-v-d03a14f6]{background:#f3f4f6;color:#4b5563;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.table td[data-v-d03a14f6]{color:#111827;font-size:13px}.table tbody tr[data-v-d03a14f6]:hover{background:#f9fafb}.table tbody tr.row-disabled[data-v-d03a14f6]{opacity:.8}.table tbody tr.row-disabled .badge-off[data-v-d03a14f6]{background:#fee2e2;color:#b91c1c}.table code[data-v-d03a14f6]{font-size:11px;background:#eff6ff;padding:3px 6px;border-radius:999px;color:#1d4ed8;display:inline-block}.col-name[data-v-d03a14f6]{min-width:120px}.task-name[data-v-d03a14f6]{cursor:pointer;text-decoration:underline;text-underline-offset:2px;color:#111827}.task-name[data-v-d03a14f6]:hover{color:#2563eb}.col-type[data-v-d03a14f6]{width:110px;min-width:110px}.col-cron[data-v-d03a14f6]{width:120px;min-width:120px}.col-status[data-v-d03a14f6]{width:82px;min-width:82px;text-align:center}.table td.col-status[data-v-d03a14f6]{text-align:center}.col-time[data-v-d03a14f6]{width:140px;min-width:140px;white-space:nowrap;font-size:12px}.col-result[data-v-d03a14f6]{width:240px;min-width:240px}.col-created[data-v-d03a14f6]{width:140px;min-width:140px;white-space:nowrap;font-size:12px}.col-ops[data-v-d03a14f6]{width:1%;min-width:220px;white-space:nowrap;text-align:center}.table td.col-ops[data-v-d03a14f6]{text-align:center}.result-disabled[data-v-d03a14f6]{color:#9ca3af}.ops[data-v-d03a14f6]{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:center}.badge[data-v-d03a14f6]{padding:3px 8px;border-radius:999px;font-size:11px;font-weight:500;display:inline-block}.badge-on[data-v-d03a14f6]{background:#22c55e1f;color:#15803d}.badge-off[data-v-d03a14f6]{background:#f871712e;color:#b91c1c}.result-badge[data-v-d03a14f6]{padding:3px 6px;border-radius:999px;font-size:11px;display:inline-block;white-space:normal;line-height:1.4}.result-none[data-v-d03a14f6]{color:#9ca3af}.result-ok[data-v-d03a14f6]{background:#22c55e1f;color:#15803d}.result-fail[data-v-d03a14f6]{background:#f871712e;color:#b91c1c}.btn[data-v-d03a14f6]{padding:10px 18px;border-radius:999px;font-size:13px;cursor:pointer;border:1px solid #d1d5db;background:#fff;color:#111827;transition:all .18s ease}.btn.primary[data-v-d03a14f6]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600;box-shadow:0 10px 25px #2563eb47}.btn.primary[data-v-d03a14f6]:hover{background:linear-gradient(135deg,#1d4ed8,#2563eb);border-color:#1d4ed8}.btn.warning[data-v-d03a14f6]{background:#fef3c7;color:#92400e;border-color:#fde68a}.btn.warning[data-v-d03a14f6]:hover{background:#fde68a}.btn-sm[data-v-d03a14f6]{padding:5px 10px;font-size:12px;background:#f9fafb;color:#111827;border:1px solid #d1d5db;border-radius:999px;cursor:pointer;text-align:center}.btn-sm[data-v-d03a14f6]:hover{background:#eff6ff;border-color:#3b82f6}.btn-sm.success[data-v-d03a14f6]{color:#15803d;border-color:#22c55e73;background:#dcfce7cc}.btn-sm.warning[data-v-d03a14f6]{color:#92400e;border-color:#eab30880;background:#fef3c7}.btn-sm.danger[data-v-d03a14f6]{color:#b91c1c;border-color:#f8717180;background:#fee2e2}.modal-mask[data-v-d03a14f6]{position:fixed;inset:0;background:#0f172a66;display:flex;align-items:center;justify-content:center;z-index:100}.modal[data-v-d03a14f6]{background:#fff;border-radius:18px;padding:22px 22px 18px;min-width:420px;max-width:90vw;border:1px solid #e5e7eb;box-shadow:0 26px 70px #0f172a40}.modal h3[data-v-d03a14f6]{margin:0 0 16px;color:#0f172a;font-size:18px}.confirm-modal .confirm-text[data-v-d03a14f6]{margin:0 0 24px;color:#4b5563;font-size:14px;line-height:1.5}.form-row[data-v-d03a14f6]{margin-bottom:14px}.form-row label[data-v-d03a14f6]{display:block;font-size:13px;color:#4b5563;margin-bottom:6px}.form-row input[data-v-d03a14f6],.form-row .select[data-v-d03a14f6]{width:100%;padding:9px 12px;border:1px solid #d1d5db;border-radius:10px;background:#fff;color:#111827;font-size:13px;outline:none;transition:all .16s ease}.form-row input[data-v-d03a14f6]:focus,.form-row .select[data-v-d03a14f6]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f62e}.form-hint[data-v-d03a14f6]{display:block;font-size:12px;color:#6b7280;margin-top:4px}.sync-all-list[data-v-d03a14f6]{max-height:160px;overflow-y:auto;padding:10px 12px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;font-size:13px}.sync-all-item[data-v-d03a14f6]{padding:4px 0;color:#111827}.sync-all-item .user-id[data-v-d03a14f6]{color:#6b7280;font-size:12px}.sync-all-empty[data-v-d03a14f6]{color:#9ca3af;font-size:13px}.modal-actions[data-v-d03a14f6]{margin-top:18px;display:flex;gap:12px;justify-content:flex-end}.page[data-v-0f5cd723]{padding:16px 0 24px;background:#f5f7fb}.page.embedded[data-v-0f5cd723]{padding:0;background:transparent}.card[data-v-0f5cd723]{background:#fff;border-radius:14px;padding:16px 20px;margin-bottom:20px;box-shadow:0 8px 20px #0f172a0f;border:1px solid #e5e7eb}.filters[data-v-0f5cd723]{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.sep[data-v-0f5cd723]{color:#6b7280;font-size:13px}.input-date[data-v-0f5cd723]{min-width:140px;padding:8px 12px;border-radius:8px;border:1px solid #d1d5db}.select[data-v-0f5cd723]{padding:8px 12px;border-radius:8px;border:1px solid #d1d5db;min-width:140px}.btn.primary[data-v-0f5cd723]{background:#2563eb;color:#fff;border:none;padding:8px 16px;border-radius:8px;cursor:pointer}.btn.link[data-v-0f5cd723]{background:none;border:none;color:#2563eb;cursor:pointer;padding:0;font-size:14px}.btn.danger[data-v-0f5cd723]{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca;padding:8px 14px;border-radius:8px;cursor:pointer}.loading-wrap[data-v-0f5cd723]{display:flex;align-items:center;justify-content:center;gap:12px;padding:48px;color:#6b7280}.spinner[data-v-0f5cd723]{width:24px;height:24px;border:2px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin-0f5cd723 .8s linear infinite}@keyframes spin-0f5cd723{to{transform:rotate(360deg)}}.empty-card[data-v-0f5cd723]{text-align:center;padding:48px;background:#f9fafb;border:1px dashed #e5e7eb;border-radius:12px}.empty-icon[data-v-0f5cd723]{font-size:48px;margin-bottom:8px}.muted[data-v-0f5cd723]{color:#9ca3af;font-size:13px}.table-card[data-v-0f5cd723]{padding:0;overflow:hidden}.table-header[data-v-0f5cd723]{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.export-group[data-v-0f5cd723]{display:flex;flex-wrap:wrap;gap:8px}.btn.outline[data-v-0f5cd723]{background:#fff;color:#111827;border:1px solid #d1d5db;padding:8px 14px;border-radius:8px;cursor:pointer}.btn.outline[data-v-0f5cd723]:hover:not(:disabled){background:#f3f4f6}.btn.outline[data-v-0f5cd723]:disabled{opacity:.6;cursor:not-allowed}.table-wrap[data-v-0f5cd723]{overflow:auto;max-height:60vh}.table[data-v-0f5cd723]{width:100%;border-collapse:collapse;font-size:14px}.table th[data-v-0f5cd723],.table td[data-v-0f5cd723]{padding:10px 12px;border-bottom:1px solid #e5e7eb;text-align:left}.table tr.stripe[data-v-0f5cd723]{background:#fafafa}.col-check[data-v-0f5cd723]{width:40px;text-align:center}.addr[data-v-0f5cd723]{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag.ok[data-v-0f5cd723]{color:#047857;background:#d1fae5;padding:2px 8px;border-radius:6px;font-size:12px}.tag.bad[data-v-0f5cd723]{color:#b91c1c;background:#fee2e2;padding:2px 8px;border-radius:6px;font-size:12px}.tag.punch[data-v-0f5cd723]{padding:2px 8px;border-radius:6px;font-size:12px}.tag.punch-in[data-v-0f5cd723]{color:#1d4ed8;background:#dbeafe}.tag.punch-out[data-v-0f5cd723]{color:#7c3aed;background:#ede9fe}.pagination[data-v-0f5cd723]{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid #e5e7eb}.btn[data-v-0f5cd723]{padding:6px 12px;border-radius:8px;border:1px solid #d1d5db;background:#fff;cursor:pointer}.btn[data-v-0f5cd723]:disabled{opacity:.5;cursor:not-allowed}.modal-overlay[data-v-0f5cd723]{position:fixed;inset:0;background:#0f172a73;z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px}.detail-modal[data-v-0f5cd723]{background:#fff;border-radius:14px;max-width:560px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 20px 50px #0003}.modal-head[data-v-0f5cd723]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e5e7eb}.modal-head h3[data-v-0f5cd723]{margin:0;font-size:18px}.modal-close[data-v-0f5cd723]{border:none;background:none;font-size:24px;cursor:pointer;line-height:1;color:#6b7280}.modal-body[data-v-0f5cd723]{padding:16px 20px 24px}.detail-grid[data-v-0f5cd723]{display:flex;flex-direction:column;gap:10px}.detail-row[data-v-0f5cd723]{display:grid;grid-template-columns:100px 1fr;gap:8px;font-size:14px}.detail-row.full[data-v-0f5cd723]{grid-template-columns:1fr}.detail-row .label[data-v-0f5cd723]{color:#6b7280}.detail-row .value.address[data-v-0f5cd723]{word-break:break-all}.photo-row .photo-wrap[data-v-0f5cd723]{margin-top:8px}.checkin-photo[data-v-0f5cd723]{max-width:100%;max-height:360px;border-radius:8px;border:1px solid #e5e7eb}.page[data-v-662544b1]{padding:16px 0 24px;background:#f5f7fb}.source-tabs[data-v-662544b1]{display:flex;gap:8px;margin-bottom:16px}.tab-btn[data-v-662544b1]{padding:8px 18px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#374151;font-size:14px;cursor:pointer}.tab-btn.active[data-v-662544b1]{background:#2563eb;border-color:#2563eb;color:#fff;box-shadow:0 4px 12px #2563eb40}.head[data-v-662544b1]{margin-bottom:24px}h1[data-v-662544b1]{margin:0 0 6px;font-size:26px;color:#111827}p[data-v-662544b1]{margin:0;color:#6b7280;font-size:14px}.card[data-v-662544b1]{background:#fff;border-radius:14px;padding:16px 20px;margin-bottom:20px;box-shadow:0 8px 20px #0f172a0f;border:1px solid #e5e7eb}.filters-card[data-v-662544b1]{padding:16px 20px}.filters[data-v-662544b1]{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.input[data-v-662544b1],.select[data-v-662544b1]{padding:8px 12px;border-radius:8px;border:1px solid #d1d5db;background-color:#fff;color:#111827;font-size:14px;transition:border-color .15s ease,box-shadow .15s ease}.input[data-v-662544b1]:focus,.select[data-v-662544b1]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f62e}.input[data-v-662544b1]{min-width:200px}.select[data-v-662544b1]{min-width:130px}.banner[data-v-662544b1]{padding:12px 16px;background:#fef2f2;color:#b91c1c;border-radius:8px;margin-bottom:16px;border:1px solid #fecaca}.loading-wrap[data-v-662544b1]{display:flex;align-items:center;justify-content:center;gap:12px;padding:60px 20px;color:#6b7280;font-size:14px}.spinner[data-v-662544b1]{width:24px;height:24px;border:2px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin-662544b1 .8s linear infinite}@keyframes spin-662544b1{to{transform:rotate(360deg)}}.empty-card[data-v-662544b1]{text-align:center;padding:48px 24px;background:#f9fafb;border:1px dashed #e5e7eb;border-radius:12px}.empty-icon[data-v-662544b1]{font-size:48px;margin-bottom:12px;opacity:.6}.empty-card p[data-v-662544b1]{margin:0 0 6px;color:#374151;font-size:15px}.muted[data-v-662544b1]{color:#9ca3af;font-size:13px}.table-card[data-v-662544b1]{padding:0;overflow:hidden}.table-header[data-v-662544b1]{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 20px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.btn.danger[data-v-662544b1]{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca}.btn.danger[data-v-662544b1]:hover:not(:disabled){background:#fecaca}.col-check[data-v-662544b1]{width:44px;text-align:center}.col-check input[type=checkbox][data-v-662544b1]{cursor:pointer;accent-color:#3b82f6}.table-wrap[data-v-662544b1]{overflow-x:auto;max-height:60vh;overflow-y:auto}.table[data-v-662544b1]{width:100%;border-collapse:collapse}.table th[data-v-662544b1],.table td[data-v-662544b1]{padding:12px 16px;text-align:left;border-bottom:1px solid #e5e7eb}.table th[data-v-662544b1]{color:#6b7280;font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;background-color:#f3f4f6}.table td[data-v-662544b1]{color:#111827;font-size:14px}.table tbody tr[data-v-662544b1]:hover{background:#f9fafb}.table tbody tr.stripe[data-v-662544b1]{background:#fefefe}.table tbody tr.stripe[data-v-662544b1]:hover{background:#f3f4f6}.table tbody tr.row-clickable[data-v-662544b1]{cursor:pointer}.col-name[data-v-662544b1]{min-width:80px}.col-type[data-v-662544b1]{min-width:90px}.col-time[data-v-662544b1]{min-width:150px}.col-date[data-v-662544b1]{min-width:100px}.col-result[data-v-662544b1]{min-width:90px}.col-address[data-v-662544b1]{min-width:180px;max-width:220px}.col-remark[data-v-662544b1]{min-width:120px;max-width:180px}.col-acc[data-v-662544b1]{min-width:70px}.table .col-address[data-v-662544b1]{white-space:normal;word-break:break-word;max-width:220px}.table .col-remark[data-v-662544b1]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-cell[data-v-662544b1]{display:flex;flex-direction:column;gap:2px}.user-name[data-v-662544b1]{font-weight:500;color:#111827}.user-id[data-v-662544b1]{font-size:12px;color:#9ca3af}.badge[data-v-662544b1]{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:500}.badge-dot[data-v-662544b1]{width:6px;height:6px;border-radius:50%}.badge-in[data-v-662544b1]{background:#dcfce7;color:#15803d}.badge-in .badge-dot[data-v-662544b1]{background:#16a34a}.badge-out[data-v-662544b1]{background:#dbeafe;color:#1d4ed8}.badge-out .badge-dot[data-v-662544b1]{background:#3b82f6}.result-tag[data-v-662544b1]{padding:2px 8px;border-radius:999px;font-size:12px}.result-tag.ok[data-v-662544b1]{background:#e0f2fe;color:#0369a1}.result-tag.warn[data-v-662544b1]{background:#fef3c7;color:#92400e}.btn[data-v-662544b1]{padding:8px 16px;border-radius:999px;font-size:14px;cursor:pointer;transition:background .15s ease,box-shadow .15s ease,transform .08s ease;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:4px;background:#fff;color:#111827}.btn.primary[data-v-662544b1]{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-color:transparent;box-shadow:0 6px 14px #2563eb59}.btn.primary[data-v-662544b1]:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 8px 18px #2563eb73}.btn.outline[data-v-662544b1]{background:#fff;color:#111827;border-color:#d1d5db}.btn.outline[data-v-662544b1]:hover:not(:disabled){background:#f3f4f6}.btn[data-v-662544b1]:active:not(:disabled){transform:translateY(0);box-shadow:0 3px 8px #0f172a3d}.btn[data-v-662544b1]:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.modal-overlay[data-v-662544b1]{position:fixed;inset:0;background:#0f172a52;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-662544b1]{background:#fff;border:1px solid #e5e7eb;border-radius:16px;min-width:420px;max-width:90vw;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 18px 45px #0f172a38}.modal-head[data-v-662544b1]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.modal-head h3[data-v-662544b1]{margin:0;font-size:18px;color:#111827}.modal-close[data-v-662544b1]{background:none;border:none;color:#6b7280;font-size:22px;cursor:pointer;padding:0 4px;line-height:1}.modal-close[data-v-662544b1]:hover{color:#1f2937}.modal-body[data-v-662544b1]{padding:20px;overflow-y:auto;background:#fff}.detail-grid[data-v-662544b1]{display:flex;flex-direction:column;gap:12px}.detail-row[data-v-662544b1]{display:grid;grid-template-columns:90px 1fr;gap:12px;align-items:start}.detail-row.full[data-v-662544b1]{grid-template-columns:90px 1fr}.detail-row .label[data-v-662544b1]{color:#6b7280;font-size:13px}.detail-row .value[data-v-662544b1]{color:#111827;font-size:14px}.detail-row .value.address[data-v-662544b1]{word-break:break-all;white-space:normal}.detail-row .value.link[data-v-662544b1]{color:#2563eb;text-decoration:none}.detail-row .value.link[data-v-662544b1]:hover{text-decoration:underline}.pagination[data-v-662544b1]{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:14px 20px;border-top:1px solid #e5e7eb;color:#6b7280;font-size:13px;background:#f9fafb}.page-size-select[data-v-662544b1]{min-width:100px}.pagination-info[data-v-662544b1]{white-space:nowrap}.page[data-v-e8a692c0]{padding:24px 0;background:#f5f7fb}.head[data-v-e8a692c0]{margin-bottom:14px;border-radius:18px;padding:16px 16px 14px;border:1px solid #e5e7eb;background:radial-gradient(900px 220px at 10% 0%,rgba(129,140,248,.18),transparent 60%),radial-gradient(900px 240px at 90% 30%,rgba(56,189,248,.16),transparent 55%),#fff;box-shadow:0 18px 40px #94a3b873}.head-left[data-v-e8a692c0]{display:grid;gap:8px}.head-title[data-v-e8a692c0]{margin:0;font-size:22px;font-weight:900;letter-spacing:-.02em;color:#111827}.head-sub[data-v-e8a692c0]{margin:0;color:#6b7280;font-size:13px}.head-tags[data-v-e8a692c0]{display:flex;gap:8px;flex-wrap:wrap}.chip[data-v-e8a692c0]{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;border:1px solid #e5e7eb;background:#f3f4f6;color:#374151;font-size:12px;font-weight:700}.chip-warn[data-v-e8a692c0]{border-color:#facc15;background:#fef9c3;color:#854d0e}.chip-ok[data-v-e8a692c0]{border-color:#4ade80;background:#dcfce7;color:#166534}.banner[data-v-e8a692c0]{padding:12px 16px;background:#fef2f2;color:#b91c1c;border-radius:8px;margin-bottom:16px;border:1px solid #fecaca}.banner-info[data-v-e8a692c0]{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.toolbar[data-v-e8a692c0]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.toolbar-left[data-v-e8a692c0]{display:flex;align-items:center;gap:12px}.toolbar-right[data-v-e8a692c0]{display:flex;align-items:center;gap:12px;margin-left:auto}.filter-combo[data-v-e8a692c0]{min-width:min(420px,78vw)}.card[data-v-e8a692c0]{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;box-shadow:0 10px 24px #0f172a14}.table-card[data-v-e8a692c0]{padding:0}.table-wrap[data-v-e8a692c0]{overflow-x:auto}.table[data-v-e8a692c0]{width:100%;border-collapse:collapse}.table th[data-v-e8a692c0],.table td[data-v-e8a692c0]{padding:12px 14px;text-align:left;border-bottom:1px solid #e5e7eb;vertical-align:middle}.table th[data-v-e8a692c0]{color:#6b7280;font-weight:600;font-size:12px;background-color:#f3f4f6}.table td[data-v-e8a692c0]{color:#111827;font-size:14px}.table tbody tr[data-v-e8a692c0]:nth-child(2n){background-color:#f9fafb}.table tbody tr[data-v-e8a692c0]:hover{background-color:#e5f0ff}.col-ops[data-v-e8a692c0]{white-space:nowrap}.col-check[data-v-e8a692c0]{width:44px}.col-check input[type=checkbox][data-v-e8a692c0]{width:16px;height:16px;vertical-align:middle;accent-color:#2563eb}.accent[data-v-e8a692c0]{color:#2563eb;font-weight:600}.muted[data-v-e8a692c0]{color:#9ca3af;font-size:13px;line-height:1.4}.small[data-v-e8a692c0]{font-size:12px}.badge[data-v-e8a692c0]{padding:4px 10px;border-radius:999px;font-size:12px;line-height:1.4;display:inline-flex;align-items:center}.badge-pending[data-v-e8a692c0]{background:#fef3c7;color:#92400e}.badge-approved[data-v-e8a692c0]{background:#dcfce7;color:#166534}.badge-rejected[data-v-e8a692c0]{background:#fee2e2;color:#b91c1c}.badge-withdrawn[data-v-e8a692c0]{background:#e5e7eb;color:#4b5563}.badge-admin-deleted[data-v-e8a692c0]{background:#e5e7eb;color:#6b7280}.btn-sm[data-v-e8a692c0]{padding:5px 10px;font-size:12px;border-radius:999px;cursor:pointer;border:1px solid}.btn-sm.success[data-v-e8a692c0]{background:#dcfce7;color:#166534;border-color:#16a34a}.btn-sm.danger[data-v-e8a692c0]{background:#fee2e2;color:#b91c1c;border-color:#ef4444}.btn-sm.info[data-v-e8a692c0]{background:#eff6ff;color:#1d4ed8;border-color:#93c5fd}.btn-sm[data-v-e8a692c0]:hover{opacity:.9}.hint[data-v-e8a692c0]{font-size:12px;margin-left:8px}.link[data-v-e8a692c0]{color:#2563eb;text-decoration:none}.link[data-v-e8a692c0]:hover{text-decoration:underline}.empty[data-v-e8a692c0]{padding:40px;text-align:center;color:#9ca3af}.select[data-v-e8a692c0],.input[data-v-e8a692c0]{padding:10px 12px;border-radius:8px;border:1px solid #d1d5db;background:#fff;color:#111827;font-size:14px}.select.small[data-v-e8a692c0]{min-width:120px}.btn[data-v-e8a692c0]{padding:10px 18px;border-radius:999px;font-size:14px;cursor:pointer;border:1px solid #d1d5db;background:#fff;color:#111827;display:inline-flex;align-items:center;justify-content:center;gap:4px;transition:background .15s ease,box-shadow .15s ease,transform .08s ease}.btn.primary[data-v-e8a692c0]{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-color:transparent;box-shadow:0 6px 14px #2563eb59}.btn.primary[data-v-e8a692c0]:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 8px 18px #2563eb73}.btn.danger[data-v-e8a692c0]{background:#fee2e2;color:#b91c1c;border-color:#fecaca}.btn.danger[data-v-e8a692c0]:disabled{opacity:.55;cursor:not-allowed}.modal-mask[data-v-e8a692c0]{position:fixed;inset:0;background:#0f172a52;display:flex;align-items:center;justify-content:center;z-index:100}.modal[data-v-e8a692c0]{background:#fff;border:1px solid #e5e7eb;border-radius:12px;min-width:420px;max-width:90vw;max-height:92vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 18px 45px #0f172a52}.submit-modal[data-v-e8a692c0]{width:min(960px,92vw)}.submit-modal-body[data-v-e8a692c0]{overflow-y:auto;flex:1;min-height:0}.detail-modal[data-v-e8a692c0]{min-width:860px}.modal-head[data-v-e8a692c0]{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.modal-head h3[data-v-e8a692c0]{margin:0;font-size:17px;color:#111827}.modal-close[data-v-e8a692c0]{background:none;border:none;color:#9ca3af;font-size:22px;cursor:pointer}.modal-close[data-v-e8a692c0]:hover{color:#111827}.modal-body[data-v-e8a692c0]{padding:18px;overflow-y:auto;flex:1;min-height:0}.modal-foot[data-v-e8a692c0]{display:flex;gap:12px;justify-content:flex-end;padding:14px 18px;border-top:1px solid #e5e7eb;background:#f9fafb}.form-row[data-v-e8a692c0]{margin-bottom:14px}.form-row .label[data-v-e8a692c0]{display:block;margin-bottom:6px;font-size:13px;color:#4b5563}.form-row .input[data-v-e8a692c0],.form-row .select[data-v-e8a692c0]{width:100%}.form-row textarea.input[data-v-e8a692c0]{min-height:80px;resize:vertical}.upload-btn[data-v-e8a692c0]{display:inline-block;padding:10px 16px;border:1px dashed #9ca3af;border-radius:8px;cursor:pointer;font-size:14px;background:#f9fafb;color:#374151}.upload-btn input[data-v-e8a692c0]{display:none}.upload-btn.disabled[data-v-e8a692c0]{opacity:.6;cursor:not-allowed}.row-head[data-v-e8a692c0]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.details-form-row[data-v-e8a692c0]{margin-bottom:14px}.details-hint[data-v-e8a692c0]{margin:0 0 8px}.details-scroll[data-v-e8a692c0]{max-height:min(42vh,340px);overflow-y:auto;overflow-x:hidden;padding:10px;border:1px solid #e5e7eb;border-radius:10px;background:#fafafa}.details[data-v-e8a692c0]{display:flex;flex-direction:column;gap:10px}.detail-line[data-v-e8a692c0]{display:grid;grid-template-columns:1.4fr 120px 140px 1fr 70px;gap:10px;align-items:center}@media(max-width:860px){.detail-line[data-v-e8a692c0]{grid-template-columns:1fr 1fr}.detail-line .btn-sm.danger[data-v-e8a692c0]{grid-column:1 / -1;justify-self:end}}.input.mini[data-v-e8a692c0]{padding:10px}.total[data-v-e8a692c0]{margin-top:10px}.review-meta[data-v-e8a692c0]{margin-bottom:10px;padding:10px 12px;border-radius:10px;border:1px solid #e5e7eb;background:#f9fafb;display:grid;gap:4px}.op-user[data-v-e8a692c0]{margin-top:6px;white-space:nowrap}.detail-table-wrap[data-v-e8a692c0]{border:1px solid #e5e7eb;border-radius:10px;overflow:auto}.detail-table[data-v-e8a692c0]{width:100%;border-collapse:collapse;font-size:13px}.detail-table th[data-v-e8a692c0],.detail-table td[data-v-e8a692c0]{border-bottom:1px solid #e5e7eb;padding:10px 12px;text-align:left;vertical-align:middle}.detail-table th[data-v-e8a692c0]{background:#f3f4f6;color:#6b7280;font-weight:600;font-size:12px}.mono[data-v-e8a692c0]{font-variant-numeric:tabular-nums}.micro[data-v-e8a692c0]{font-size:11px;margin-top:4px;line-height:1.35}.approval-timeline[data-v-e8a692c0]{margin:14px 0 12px;padding:12px 14px;border:1px solid #e5e7eb;border-radius:10px;background:#fff}.approval-timeline-title[data-v-e8a692c0]{font-size:13px;font-weight:700;color:#374151;margin-bottom:10px}.approval-timeline-list[data-v-e8a692c0]{list-style:none;margin:0;padding:0}.approval-timeline-item[data-v-e8a692c0]{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid #f3f4f6}.approval-timeline-item[data-v-e8a692c0]:last-child{border-bottom:none}.approval-timeline-body[data-v-e8a692c0]{flex:1;min-width:0}.approval-timeline-head[data-v-e8a692c0]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tl-dot[data-v-e8a692c0]{width:10px;height:10px;border-radius:99px;margin-top:5px;flex-shrink:0}.tl-dot-done[data-v-e8a692c0]{background:#10b981}.tl-dot-current[data-v-e8a692c0]{background:#3b82f6;box-shadow:0 0 0 3px #3b82f640}.tl-dot-wait[data-v-e8a692c0]{background:#d1d5db}.tl-dot-skip[data-v-e8a692c0]{background:#e5e7eb}.tl-dot-rejected[data-v-e8a692c0]{background:#ef4444}.pagination[data-v-e8a692c0]{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:14px 16px;border-top:1px solid #e5e7eb;color:#6b7280;font-size:13px}.page-size-select[data-v-e8a692c0]{min-width:90px}.pagination-info[data-v-e8a692c0]{white-space:nowrap}.page[data-v-e9c10572]{padding:24px 0;background:#f5f7fb}.deep-link-card[data-v-e9c10572]{margin-bottom:14px;padding:14px 16px;border:1px solid #c7d2fe;background:linear-gradient(120deg,#eef2fff2,#fff)}.deep-link-head[data-v-e9c10572]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.deep-link-meta[data-v-e9c10572]{line-height:1.6}.deep-link-reason[data-v-e9c10572]{margin-top:8px;font-size:13px;color:#374151}.head[data-v-e9c10572]{margin-bottom:14px;border-radius:18px;padding:16px 16px 14px;border:1px solid #e5e7eb;background:radial-gradient(900px 220px at 10% 0%,rgba(129,140,248,.18),transparent 60%),radial-gradient(900px 240px at 90% 30%,rgba(56,189,248,.16),transparent 55%),#fff;box-shadow:0 18px 40px #94a3b873;display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.head-title[data-v-e9c10572]{font-size:20px;font-weight:900;color:#111827;letter-spacing:.2px}.head-sub[data-v-e9c10572]{margin-top:6px;color:#6b7280;font-size:13px;line-height:1.5}.head-tags[data-v-e9c10572]{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.chip[data-v-e9c10572]{font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid #e5e7eb;color:#374151;background:#f3f4f6}.chip-ok[data-v-e9c10572]{border-color:#4ade80;background:#dcfce7;color:#166534}.chip-warn[data-v-e9c10572]{border-color:#facc15;background:#fef9c3;color:#854d0e}.toolbar[data-v-e9c10572]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:10px 0 12px}.toolbar-left[data-v-e9c10572]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toolbar-right[data-v-e9c10572]{display:flex;align-items:center;gap:10px}.muted[data-v-e9c10572]{color:#6b7280}.small[data-v-e9c10572]{font-size:12px}.select[data-v-e9c10572]{padding:8px 12px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827}.select.small[data-v-e9c10572]{padding:6px 10px;font-size:12px}.btn[data-v-e9c10572]{padding:8px 12px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;font-size:13px;transition:all .16s ease}.btn.primary[data-v-e9c10572]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600;box-shadow:0 8px 20px #2563eb40}.btn.danger[data-v-e9c10572]{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.btn.ghost[data-v-e9c10572]{background:#f9fafb}.btn[data-v-e9c10572]:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.banner[data-v-e9c10572]{padding:10px 12px;border-radius:12px;border:1px solid #e5e7eb;margin-bottom:10px;background:#eff6ff;color:#1d4ed8}.banner-info[data-v-e9c10572]{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.empty[data-v-e9c10572]{padding:16px 6px;color:#6b7280}.card[data-v-e9c10572]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;overflow:hidden;box-shadow:0 16px 40px #0f172a0f}.table-wrap[data-v-e9c10572]{overflow-x:auto}.table[data-v-e9c10572]{width:100%;border-collapse:collapse;font-size:13px}.col-check[data-v-e9c10572]{width:40px;text-align:center;vertical-align:middle}.table th[data-v-e9c10572],.table td[data-v-e9c10572]{padding:10px 12px;text-align:left;border-bottom:1px solid #e5e7eb;vertical-align:middle}.table th[data-v-e9c10572]{color:#4b5563;font-weight:600;font-size:12px;background:#f3f4f6}.strong[data-v-e9c10572]{font-weight:600;color:#111827}.mono[data-v-e9c10572]{font-variant-numeric:tabular-nums;font-weight:600;color:#111827}.desc[data-v-e9c10572]{max-width:520px;color:#111827}.row-actions[data-v-e9c10572]{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.badge[data-v-e9c10572]{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:#ffffff0f;font-size:12px;color:#ffffffd1}.badge-ok[data-v-e9c10572]{border-color:#22c55e59;background:#22c55e1f;color:#4ade80}.badge-warn[data-v-e9c10572]{border-color:#fbbf2459;background:#fbbf241f;color:#fbbf24}.badge-muted[data-v-e9c10572]{border-color:#94a3b88c;background:#94a3b840;color:#0f172a}.pagination[data-v-e9c10572]{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:12px 14px;border-top:1px solid rgba(255,255,255,.07)}.pagination-info[data-v-e9c10572]{color:#ffffffa6;font-size:13px}.page-size-select[data-v-e9c10572]{padding:6px 10px;font-size:13px}.modal-mask[data-v-e9c10572]{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:18px;background:#0f172a73}.modal[data-v-e9c10572]{width:min(720px,100%);border-radius:20px;border:1px solid #e5e7eb;background:radial-gradient(680px 220px at 0% 0%,rgba(129,140,248,.15),transparent 60%),radial-gradient(680px 260px at 100% 20%,rgba(56,189,248,.16),transparent 55%),#fff;box-shadow:0 26px 80px #0f172a47;padding:20px 22px 16px}.modal-card[data-v-e9c10572]{width:min(720px,100%);border-radius:20px;border:1px solid #e5e7eb;background:transparent;box-shadow:0 26px 80px #0f172a47;padding:20px 22px 16px;pointer-events:auto}.modal-title[data-v-e9c10572]{font-weight:700;color:#111827;font-size:18px;margin-bottom:12px}.field[data-v-e9c10572]{margin-top:10px}.label[data-v-e9c10572]{color:#6b7280;font-size:12px;margin-bottom:6px}.input[data-v-e9c10572],.textarea[data-v-e9c10572]{width:100%;padding:10px 13px;border-radius:12px;border:1px solid #d1d5db;background:#fff;color:#111827;outline:none;font-size:13px}.grid2[data-v-e9c10572]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.modal-actions[data-v-e9c10572]{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.shell.light{color:#0f172ab3;border-color:#0f172a1f;background:#ffffff8c}.shell.light{background:#22c55e24}.shell.light{background:#fbbf2429}.shell.light{background:#e2e8f0eb}::global(.shell.dark) .page[data-v-e9c10572]{background:#020617}::global(.shell.dark) .card[data-v-e9c10572]{background:#020617;border-color:#94a3b88c;box-shadow:0 18px 40px #000c}::global(.shell.dark) .table th[data-v-e9c10572]{background:#020617;color:#f8fafcbf;border-bottom-color:#334155e6}::global(.shell.dark) .table td[data-v-e9c10572]{border-bottom-color:#1e40af80;color:#f8fafceb}::global(.shell.dark) .strong[data-v-e9c10572],::global(.shell.dark) .mono[data-v-e9c10572]{color:#f8fafcf5}::global(.shell.dark) .desc[data-v-e9c10572]{color:#e2e8f0eb}::global(.shell.dark) .muted[data-v-e9c10572]{color:#94a3b8d9}::global(.shell.dark) .btn[data-v-e9c10572],::global(.shell.dark) .select[data-v-e9c10572]{background:#0f172af5;border-color:#94a3b8b3;color:#f8fafcf5}::global(.shell.dark) .btn.primary[data-v-e9c10572]{background:linear-gradient(135deg,#38bdf8,#2563eb);border-color:#38bdf8}::global(.shell.dark) .btn.danger[data-v-e9c10572]{background:#f8717140;border-color:#f87171b3;color:#fecaca}::global(.shell.dark) .badge[data-v-e9c10572]{background:#0f172af5;border-color:#94a3b8b3;color:#f8fafcf2}::global(.shell.dark) .badge-ok[data-v-e9c10572]{background:#16a34a4d;border-color:#22c55ed9;color:#bbf7d0}::global(.shell.dark) .badge-warn[data-v-e9c10572]{background:#eab3084d;border-color:#facc15cc;color:#fef9c3}::global(.shell.dark) .pagination-info[data-v-e9c10572]{color:#94a3b8e6}::global(.shell.dark) .modal-card[data-v-e9c10572]{background:#0f172afa;border-color:#94a3b8cc}::global(.shell.dark) .input[data-v-e9c10572],::global(.shell.dark) .textarea[data-v-e9c10572]{background:#0f172af2;border-color:#94a3b8e6;color:#f8fafcf5}@media(max-width:720px){.grid2[data-v-e9c10572]{grid-template-columns:1fr}.desc[data-v-e9c10572]{max-width:320px}}.page[data-v-0f95055b]{padding:24px 0;background:#f5f7fb}.head[data-v-0f95055b]{margin-bottom:14px;border-radius:18px;padding:16px 16px 14px;border:1px solid #e5e7eb;background:radial-gradient(900px 220px at 10% 0%,rgba(129,140,248,.18),transparent 60%),radial-gradient(900px 240px at 90% 30%,rgba(56,189,248,.16),transparent 55%),#fff;box-shadow:0 18px 40px #94a3b873;display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.head-title[data-v-0f95055b]{font-size:20px;font-weight:900;color:#111827;letter-spacing:.2px}.toolbar[data-v-0f95055b]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:10px 0 12px}.toolbar-left[data-v-0f95055b]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toolbar-right[data-v-0f95055b]{display:flex;align-items:center;gap:10px}.muted[data-v-0f95055b]{color:#6b7280}.small[data-v-0f95055b]{font-size:12px}.select[data-v-0f95055b]{padding:8px 12px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827}.select.small[data-v-0f95055b]{padding:6px 10px;font-size:12px}.btn[data-v-0f95055b]{padding:8px 12px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;font-size:13px;transition:all .16s ease}.btn.primary[data-v-0f95055b]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600;box-shadow:0 8px 20px #2563eb40}.btn.danger[data-v-0f95055b]{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.btn.ghost[data-v-0f95055b]{background:#f9fafb}.btn[data-v-0f95055b]:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.banner[data-v-0f95055b]{padding:10px 12px;border-radius:12px;border:1px solid #e5e7eb;margin-bottom:10px}.banner-info[data-v-0f95055b]{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.empty[data-v-0f95055b]{padding:16px 6px;color:#6b7280}.card[data-v-0f95055b]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;overflow:hidden;box-shadow:0 16px 40px #0f172a0f}.table-wrap[data-v-0f95055b]{overflow-x:auto}.table[data-v-0f95055b]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-0f95055b],.table td[data-v-0f95055b]{padding:10px 12px;text-align:left;border-bottom:1px solid #e5e7eb;vertical-align:middle}.table th[data-v-0f95055b]{color:#4b5563;font-weight:600;font-size:12px;background:#f3f4f6}.strong[data-v-0f95055b]{font-weight:600;color:#111827}.mono[data-v-0f95055b]{font-variant-numeric:tabular-nums;font-weight:600;color:#111827}.desc[data-v-0f95055b]{max-width:520px;color:#111827}.row-actions[data-v-0f95055b]{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.badge[data-v-0f95055b]{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:#ffffff0f;font-size:12px;color:#ffffffd1}.badge-ok[data-v-0f95055b]{border-color:#22c55e59;background:#22c55e1f;color:#4ade80}.badge-warn[data-v-0f95055b]{border-color:#fbbf2459;background:#fbbf241f;color:#fbbf24}.badge-muted[data-v-0f95055b]{border-color:#94a3b88c;background:#94a3b840;color:#0f172a}.pagination[data-v-0f95055b]{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:12px 14px;border-top:1px solid rgba(255,255,255,.07)}.pagination-info[data-v-0f95055b]{color:#ffffffa6;font-size:13px}.page-size-select[data-v-0f95055b]{padding:6px 10px;font-size:13px}.modal-mask[data-v-0f95055b]{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:18px;background:#0f172a73}.modal[data-v-0f95055b]{width:min(720px,100%);border-radius:20px;border:1px solid #e5e7eb;background:radial-gradient(680px 220px at 0% 0%,rgba(129,140,248,.15),transparent 60%),radial-gradient(680px 260px at 100% 20%,rgba(56,189,248,.16),transparent 55%),#fff;box-shadow:0 26px 80px #0f172a47;padding:20px 22px 16px}.modal-title[data-v-0f95055b]{font-weight:700;color:#111827;font-size:18px;margin-bottom:12px}.field[data-v-0f95055b]{margin-top:10px}.label[data-v-0f95055b]{color:#6b7280;font-size:12px;margin-bottom:6px}.input[data-v-0f95055b],.textarea[data-v-0f95055b]{width:100%;padding:10px 13px;border-radius:12px;border:1px solid #d1d5db;background:#fff;color:#111827;outline:none;font-size:13px}.grid2[data-v-0f95055b]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.modal-actions[data-v-0f95055b]{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}@media(max-width:720px){.grid2[data-v-0f95055b]{grid-template-columns:1fr}.desc[data-v-0f95055b]{max-width:320px}}.page[data-v-e053c514]{padding:24px 0;background:#f5f7fb}.head[data-v-e053c514]{margin-bottom:14px;border-radius:18px;padding:16px 16px 14px;border:1px solid #e5e7eb;background:radial-gradient(900px 220px at 10% 0%,rgba(129,140,248,.18),transparent 60%),radial-gradient(900px 240px at 90% 30%,rgba(56,189,248,.16),transparent 55%),#fff;box-shadow:0 18px 40px #94a3b873;display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.head-title[data-v-e053c514]{font-size:20px;font-weight:900;color:#111827;letter-spacing:.2px}.toolbar[data-v-e053c514]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:10px 0 12px}.toolbar-left[data-v-e053c514]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toolbar-right[data-v-e053c514]{display:flex;align-items:center;gap:10px}.muted[data-v-e053c514]{color:#6b7280}.small[data-v-e053c514]{font-size:12px}.select[data-v-e053c514]{padding:8px 12px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827}.select.small[data-v-e053c514]{padding:6px 10px;font-size:12px}.btn[data-v-e053c514]{padding:8px 12px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;font-size:13px;transition:all .16s ease}.btn.primary[data-v-e053c514]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600;box-shadow:0 8px 20px #2563eb40}.btn.danger[data-v-e053c514]{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.btn.ghost[data-v-e053c514]{background:#f9fafb}.btn[data-v-e053c514]:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.banner[data-v-e053c514]{padding:10px 12px;border-radius:12px;border:1px solid #e5e7eb;margin-bottom:10px}.banner-info[data-v-e053c514]{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.banner-balance[data-v-e053c514]{background:linear-gradient(120deg,#dcfce7e6,#fff);border-color:#86efac;color:#166534;font-size:14px}.banner-balance strong[data-v-e053c514]{font-weight:700}.balance-hint[data-v-e053c514]{margin-bottom:4px}.empty[data-v-e053c514]{padding:16px 6px;color:#6b7280}.card[data-v-e053c514]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;overflow:hidden;box-shadow:0 16px 40px #0f172a0f}.table-wrap[data-v-e053c514]{overflow-x:auto}.table[data-v-e053c514]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-e053c514],.table td[data-v-e053c514]{padding:10px 12px;text-align:left;border-bottom:1px solid #e5e7eb;vertical-align:middle}.table th[data-v-e053c514]{color:#4b5563;font-weight:600;font-size:12px;background:#f3f4f6}.strong[data-v-e053c514]{font-weight:600;color:#111827}.mono[data-v-e053c514]{font-variant-numeric:tabular-nums;font-weight:600;color:#111827}.desc[data-v-e053c514]{max-width:520px;color:#111827}.row-actions[data-v-e053c514]{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.badge[data-v-e053c514]{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:#ffffff0f;font-size:12px;color:#ffffffd1}.badge-ok[data-v-e053c514]{border-color:#22c55e59;background:#22c55e1f;color:#4ade80}.badge-warn[data-v-e053c514]{border-color:#fbbf2459;background:#fbbf241f;color:#fbbf24}.badge-muted[data-v-e053c514]{border-color:#94a3b88c;background:#94a3b840;color:#0f172a}.pagination[data-v-e053c514]{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:12px 14px;border-top:1px solid rgba(255,255,255,.07)}.pagination-info[data-v-e053c514]{color:#ffffffa6;font-size:13px}.page-size-select[data-v-e053c514]{padding:6px 10px;font-size:13px}.modal-mask[data-v-e053c514]{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:18px;background:#0f172a73}.modal[data-v-e053c514]{width:min(720px,100%);border-radius:20px;border:1px solid #e5e7eb;background:radial-gradient(680px 220px at 0% 0%,rgba(129,140,248,.15),transparent 60%),radial-gradient(680px 260px at 100% 20%,rgba(56,189,248,.16),transparent 55%),#fff;box-shadow:0 26px 80px #0f172a47;padding:20px 22px 16px}.modal-title[data-v-e053c514]{font-weight:700;color:#111827;font-size:18px;margin-bottom:12px}.field[data-v-e053c514]{margin-top:10px}.label[data-v-e053c514]{color:#6b7280;font-size:12px;margin-bottom:6px}.input[data-v-e053c514],.textarea[data-v-e053c514]{width:100%;padding:10px 13px;border-radius:12px;border:1px solid #d1d5db;background:#fff;color:#111827;outline:none;font-size:13px}.grid2[data-v-e053c514]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.modal-actions[data-v-e053c514]{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.shell.light{background:#ffffff8c;border-color:#0f172a1f;color:#0f172a}.shell.light{background:#fff9;border-color:#0f172a1f;color:#0f172a}.shell.light{background:#ffffff8c;border-color:#0f172a1a}.shell.light{color:#0f172a8c}.shell.light{border-bottom-color:#0f172a14}.shell.light{color:#0f172acc}.shell.light{background:#ffffffb3;border-color:#0f172a1f;color:#0f172ac7}.shell.light{color:#0f172a99}.shell.light{background:#ffffffbf;border-color:#0f172a1f;color:#0f172a}@media(max-width:720px){.grid2[data-v-e053c514]{grid-template-columns:1fr}.desc[data-v-e053c514]{max-width:320px}}.page[data-v-096fd4dc]{padding:24px 0;background:#f5f7fb}.head[data-v-096fd4dc]{margin-bottom:14px;border-radius:18px;padding:16px 16px 14px;border:1px solid #e5e7eb;background:radial-gradient(900px 220px at 10% 0%,rgba(34,211,238,.16),transparent 60%),radial-gradient(900px 240px at 90% 30%,rgba(56,189,248,.14),transparent 55%),#fff;box-shadow:0 18px 40px #94a3b859;display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.head-title[data-v-096fd4dc]{font-size:20px;font-weight:900;color:#111827}.head-sub[data-v-096fd4dc]{margin-top:6px;font-size:13px;color:#64748b}.btn.linkish[data-v-096fd4dc]{border-color:#bae6fd;background:#f0f9ff;color:#0369a1}.toolbar[data-v-096fd4dc]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:10px 0 12px}.toolbar-left[data-v-096fd4dc],.toolbar-right[data-v-096fd4dc]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.muted[data-v-096fd4dc]{color:#6b7280}.small[data-v-096fd4dc]{font-size:12px}.select[data-v-096fd4dc]{padding:8px 12px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827}.select.small[data-v-096fd4dc]{padding:6px 10px;font-size:12px}.btn[data-v-096fd4dc]{padding:8px 12px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;font-size:13px}.btn.primary[data-v-096fd4dc]{background:linear-gradient(135deg,#0891b2,#06b6d4);border-color:#0891b2;color:#fff;font-weight:600}.btn.ghost[data-v-096fd4dc]{background:#f9fafb}.btn[data-v-096fd4dc]:disabled{opacity:.5;cursor:not-allowed}.banner[data-v-096fd4dc]{padding:10px 12px;border-radius:12px;border:1px solid #e5e7eb;margin-bottom:10px}.banner-info[data-v-096fd4dc]{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.empty[data-v-096fd4dc]{padding:16px 6px;color:#6b7280}.card[data-v-096fd4dc]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;overflow:hidden;box-shadow:0 16px 40px #0f172a0f}.table-wrap[data-v-096fd4dc]{overflow-x:auto}.table[data-v-096fd4dc]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-096fd4dc],.table td[data-v-096fd4dc]{padding:10px 12px;text-align:left;border-bottom:1px solid #e5e7eb;vertical-align:middle}.table th[data-v-096fd4dc]{color:#4b5563;font-weight:600;font-size:12px;background:#f3f4f6}.strong[data-v-096fd4dc]{font-weight:600;color:#111827}.mono[data-v-096fd4dc]{font-family:ui-monospace,monospace}.desc[data-v-096fd4dc]{max-width:280px;word-break:break-word}.row-actions[data-v-096fd4dc]{display:flex;flex-wrap:wrap;gap:6px}.badge[data-v-096fd4dc]{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px}.badge-warn[data-v-096fd4dc]{background:#fef3c7;color:#92400e}.badge-ok[data-v-096fd4dc]{background:#dcfce7;color:#166534}.badge-muted[data-v-096fd4dc]{background:#f1f5f9;color:#64748b}.pagination[data-v-096fd4dc]{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:12px 16px}.modal-mask[data-v-096fd4dc]{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal[data-v-096fd4dc]{width:min(480px,calc(100vw - 32px));background:#fff;border-radius:16px;padding:20px;max-height:calc(100vh - 32px);overflow-y:auto}.modal-wide[data-v-096fd4dc]{width:min(560px,calc(100vw - 32px))}.modal-title[data-v-096fd4dc]{font-size:18px;font-weight:800;margin-bottom:14px}.field[data-v-096fd4dc]{margin-bottom:14px}.field .label[data-v-096fd4dc]{font-size:13px;color:#64748b;margin-bottom:6px}.grid2[data-v-096fd4dc]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.input[data-v-096fd4dc],.textarea[data-v-096fd4dc],.select[data-v-096fd4dc]{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #e2e8f0;border-radius:12px;font-size:14px}.textarea[data-v-096fd4dc]{resize:vertical;min-height:88px}.modal-actions[data-v-096fd4dc]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.photo-row[data-v-096fd4dc]{display:flex;gap:12px;flex-wrap:wrap}.photo-upload[data-v-096fd4dc]{width:140px;height:140px;border:2px dashed #cbd5e1;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#64748b;cursor:pointer;background:#f8fafc}.photo-input[data-v-096fd4dc]{display:none}.photo-upload-icon[data-v-096fd4dc]{font-size:32px;line-height:1;color:#94a3b8}.photo-preview-wrap[data-v-096fd4dc]{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.photo-preview[data-v-096fd4dc]{width:140px;height:140px;object-fit:cover;border-radius:14px;border:1px solid #e2e8f0}.photo-preview.large[data-v-096fd4dc]{width:min(100%,320px);height:auto;max-height:320px}.small-btn[data-v-096fd4dc]{padding:4px 10px;font-size:12px}.photo-tip[data-v-096fd4dc]{margin-top:8px}.detail-grid[data-v-096fd4dc]{display:grid;gap:10px;margin-bottom:14px}.detail-row[data-v-096fd4dc]{display:grid;grid-template-columns:88px 1fr;gap:10px;font-size:14px}.detail-k[data-v-096fd4dc]{color:#64748b}.photo-detail[data-v-096fd4dc]{margin-top:8px}.page[data-v-c164e74f]{padding:24px 0;background:#f5f7fb}.head[data-v-c164e74f]{margin-bottom:14px;border-radius:18px;padding:16px 16px 14px;border:1px solid #e5e7eb;background:radial-gradient(900px 220px at 10% 0%,rgba(129,140,248,.18),transparent 60%),radial-gradient(900px 240px at 90% 30%,rgba(56,189,248,.16),transparent 55%),#fff;box-shadow:0 18px 40px #94a3b873;display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.head-title[data-v-c164e74f]{font-size:20px;font-weight:900;color:#111827;letter-spacing:.2px}.tabs[data-v-c164e74f]{display:flex;gap:8px;margin-bottom:12px}.tab[data-v-c164e74f]{padding:8px 16px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#374151;cursor:pointer;font-size:13px}.tab.active[data-v-c164e74f]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600}.toolbar[data-v-c164e74f]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:10px 0 12px}.toolbar-left[data-v-c164e74f]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.muted[data-v-c164e74f]{color:#6b7280}.small[data-v-c164e74f]{font-size:12px}.week-input[data-v-c164e74f]{width:150px}.select[data-v-c164e74f],.input[data-v-c164e74f]{padding:8px 12px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;outline:none}.select.small[data-v-c164e74f],.input.small[data-v-c164e74f]{padding:6px 10px;font-size:12px}.btn[data-v-c164e74f]{padding:8px 12px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;font-size:13px;transition:all .16s ease}.btn.small[data-v-c164e74f]{padding:6px 10px;font-size:12px}.btn.primary[data-v-c164e74f]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600;box-shadow:0 8px 20px #2563eb40}.btn.danger[data-v-c164e74f]{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.btn.ghost[data-v-c164e74f]{background:#f9fafb}.btn[data-v-c164e74f]:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.empty[data-v-c164e74f]{padding:16px 6px;color:#6b7280}.summary-card[data-v-c164e74f]{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:16px 18px;margin-bottom:14px;box-shadow:0 10px 30px #0f172a0d}.summary-head[data-v-c164e74f]{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}.summary-title[data-v-c164e74f]{font-weight:700;color:#111827;font-size:14px}.summary-stats[data-v-c164e74f]{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.stat[data-v-c164e74f]{text-align:center;padding:10px 6px;border-radius:12px;background:#f8fafc;border:1px solid #eef2f7}.stat-num[data-v-c164e74f]{font-size:22px;font-weight:800;color:#111827;font-variant-numeric:tabular-nums}.stat-num.ok[data-v-c164e74f]{color:#15803d}.stat-num.warn[data-v-c164e74f]{color:#b45309}.stat-num.danger[data-v-c164e74f]{color:#b91c1c}.stat-label[data-v-c164e74f]{font-size:12px;color:#6b7280;margin-top:4px}.missing-box[data-v-c164e74f]{margin-top:14px;padding-top:12px;border-top:1px dashed #e5e7eb}.missing-names[data-v-c164e74f]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.missing-tag[data-v-c164e74f]{font-size:12px;color:#b91c1c;font-weight:600}.name-chip[data-v-c164e74f]{font-size:12px;padding:3px 10px;border-radius:999px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}@media(max-width:720px){.summary-stats[data-v-c164e74f]{grid-template-columns:repeat(3,1fr)}}.card[data-v-c164e74f]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;overflow:hidden;box-shadow:0 16px 40px #0f172a0f}.table-wrap[data-v-c164e74f]{overflow-x:auto}.table[data-v-c164e74f]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-c164e74f],.table td[data-v-c164e74f]{padding:10px 12px;text-align:left;border-bottom:1px solid #e5e7eb;vertical-align:top}.table th[data-v-c164e74f]{color:#4b5563;font-weight:600;font-size:12px;background:#f3f4f6;white-space:nowrap}.mono[data-v-c164e74f]{font-variant-numeric:tabular-nums;font-weight:600;color:#111827}.desc[data-v-c164e74f]{max-width:240px;color:#111827;white-space:pre-wrap}.row-actions[data-v-c164e74f]{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.badge[data-v-c164e74f]{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;border:1px solid #e5e7eb;background:#f9fafb;font-size:12px;color:#374151;white-space:nowrap}.badge-ok[data-v-c164e74f]{border-color:#22c55e59;background:#22c55e1f;color:#15803d}.badge-warn[data-v-c164e74f]{border-color:#fbbf2459;background:#fbbf2429;color:#b45309}.badge-muted[data-v-c164e74f]{border-color:#e5e7eb;background:#f3f4f6;color:#6b7280}.pagination[data-v-c164e74f]{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:12px 14px;border-top:1px solid #f1f5f9}.pagination-info[data-v-c164e74f]{color:#6b7280;font-size:13px}.modal-mask[data-v-c164e74f]{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:18px;background:#0f172a73}.modal[data-v-c164e74f]{width:min(720px,100%);max-height:88vh;overflow-y:auto;border-radius:20px;border:1px solid #e5e7eb;background:#fff;box-shadow:0 26px 80px #0f172a47;padding:20px 22px 16px}.modal-title[data-v-c164e74f]{font-weight:700;color:#111827;font-size:18px;margin-bottom:12px}.field[data-v-c164e74f]{margin-top:10px}.label[data-v-c164e74f]{color:#6b7280;font-size:12px;margin-bottom:6px}.label-row[data-v-c164e74f]{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.textarea[data-v-c164e74f]{width:100%;padding:10px 13px;border-radius:12px;border:1px solid #d1d5db;background:#fff;color:#111827;outline:none;font-size:13px;resize:vertical}.proj-row[data-v-c164e74f]{display:grid;grid-template-columns:180px 1fr auto;gap:8px;margin-bottom:8px;align-items:center}.search-input[data-v-c164e74f]{margin-bottom:12px;resize:none}.settings-grid[data-v-c164e74f]{display:grid;grid-template-columns:1fr 1fr;gap:14px}.settings-col[data-v-c164e74f]{display:flex;flex-direction:column}.user-list[data-v-c164e74f]{margin-top:8px;max-height:320px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:12px;padding:6px}.user-row[data-v-c164e74f]{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;cursor:pointer;font-size:13px}.user-row[data-v-c164e74f]:hover{background:#f3f4f6}.user-name[data-v-c164e74f]{color:#111827;font-weight:500}.user-meta[data-v-c164e74f]{margin-left:auto;color:#9ca3af;font-size:12px}@media(max-width:720px){.settings-grid[data-v-c164e74f]{grid-template-columns:1fr}}.modal-actions[data-v-c164e74f]{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}@media(max-width:720px){.proj-row[data-v-c164e74f]{grid-template-columns:1fr}.desc[data-v-c164e74f]{max-width:160px}}.page[data-v-4d430748]{padding:24px 0 32px;background:#f5f7fb}.summary-bar[data-v-4d430748]{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin-bottom:14px;padding:12px 16px;border-radius:14px;border:1px solid #fecaca;background:linear-gradient(90deg,#fef2f2,#fff7ed);color:#991b1b;font-size:14px}.summary-dot[data-v-4d430748]{width:8px;height:8px;border-radius:50%;background:#ef4444;box-shadow:0 0 0 4px #ef444433;flex-shrink:0}.summary-text strong[data-v-4d430748]{color:#dc2626;font-size:18px;margin:0 2px}.summary-hint[data-v-4d430748]{color:#b45309;font-size:12px}.panel[data-v-4d430748]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;overflow:hidden;box-shadow:0 16px 40px #0f172a0f}.tabs-head[data-v-4d430748]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 0}.tabs-label[data-v-4d430748]{font-size:13px;font-weight:700;color:#64748b;letter-spacing:.04em}.btn-refresh[data-v-4d430748]{border:none;background:transparent;color:#2563eb;font-size:13px;cursor:pointer;padding:4px 8px;border-radius:8px}.btn-refresh[data-v-4d430748]:hover{background:#eff6ff}.tabs[data-v-4d430748]{display:flex;flex-wrap:wrap;gap:10px;padding:12px 16px 16px;border-bottom:1px solid #f1f5f9}.tab-btn[data-v-4d430748]{position:relative;display:inline-flex;align-items:center;gap:8px;border:1px solid #e2e8f0;background:#f8fafc;color:#475569;border-radius:12px;padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer;transition:all .16s ease}.tab-btn[data-v-4d430748]:hover{border-color:#cbd5e1;background:#fff}.tab-btn.has-pending[data-v-4d430748]:not(.active){border-color:#fecaca;background:#fffafb}.tab-btn.active[data-v-4d430748]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;box-shadow:0 8px 20px #2563eb47}.tab-label[data-v-4d430748]{line-height:1}.tab-badge[data-v-4d430748]{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:800;line-height:1;box-shadow:0 2px 8px #ef444473}.tab-btn.active .tab-badge[data-v-4d430748]{background:#ef4444;color:#fff;box-shadow:0 0 0 2px #ffffffd9,0 2px 8px #ef444480}.toolbar[data-v-4d430748]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 16px;background:#fafbfc;border-bottom:1px solid #f1f5f9}.toolbar-left[data-v-4d430748],.toolbar-right[data-v-4d430748]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.filter-chips[data-v-4d430748]{display:flex;flex-wrap:wrap;gap:8px}.chip[data-v-4d430748]{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;color:#64748b;font-size:13px;cursor:pointer;transition:all .15s ease}.chip[data-v-4d430748]:hover{border-color:#cbd5e1}.chip.active[data-v-4d430748]{border-color:#2563eb;background:#eff6ff;color:#1d4ed8;font-weight:600}.chip-badge[data-v-4d430748]{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}.pending-tip[data-v-4d430748]{font-size:13px;color:#b45309}.pending-tip strong[data-v-4d430748]{color:#dc2626}.state-box[data-v-4d430748]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:56px 24px;color:#64748b}.empty-state .empty-icon.soft[data-v-4d430748]{width:56px;height:56px;border-radius:16px;background:#f1f5f9;color:#94a3b8;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800}.spinner[data-v-4d430748]{width:28px;height:28px;border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:spin-4d430748 .8s linear infinite}@keyframes spin-4d430748{to{transform:rotate(360deg)}}.table-card[data-v-4d430748]{padding:0}.table-wrap[data-v-4d430748]{overflow-x:auto}.table[data-v-4d430748]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-4d430748],.table td[data-v-4d430748]{padding:11px 14px;text-align:left;border-bottom:1px solid #eef2f7;vertical-align:middle}.table th[data-v-4d430748]{background:#f8fafc;color:#64748b;font-weight:700;font-size:12px}.table tbody tr.stripe[data-v-4d430748]{background:#fcfdff}.table tbody tr.row-pending[data-v-4d430748]{background:#fffbeb}.desc[data-v-4d430748]{max-width:360px;word-break:break-word;color:#334155}.row-actions[data-v-4d430748]{display:flex;flex-wrap:wrap;gap:6px}.pagination[data-v-4d430748]{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 16px}.empty-card[data-v-4d430748]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:56px 24px;text-align:center}.empty-icon[data-v-4d430748]{width:64px;height:64px;margin:0 auto 12px;border-radius:18px;background:linear-gradient(135deg,#dbeafe,#eff6ff);color:#2563eb;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:900}.modal-mask[data-v-4d430748]{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-4d430748]{width:min(480px,calc(100vw - 32px));background:#fff;border-radius:16px;padding:22px;box-shadow:0 24px 60px #0f172a33}.modal-title[data-v-4d430748]{font-size:18px;font-weight:800;margin-bottom:8px;color:#0f172a}.modal-actions[data-v-4d430748]{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.field .label[data-v-4d430748]{font-size:13px;color:#64748b;margin-bottom:6px}.textarea[data-v-4d430748]{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #e2e8f0;border-radius:12px;font-size:14px;resize:vertical}.badge[data-v-4d430748]{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge-warn[data-v-4d430748]{background:#fef3c7;color:#92400e}.badge-ok[data-v-4d430748]{background:#dcfce7;color:#166534}.badge-muted[data-v-4d430748]{background:#f1f5f9;color:#64748b}.btn[data-v-4d430748]{padding:7px 14px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;font-size:13px;transition:all .16s ease}.btn.primary[data-v-4d430748]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600}.btn.danger[data-v-4d430748]{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.btn.ghost[data-v-4d430748]{background:#f8fafc}.btn.link-btn[data-v-4d430748]{border-color:#bfdbfe;color:#2563eb;background:#eff6ff}.btn[data-v-4d430748]:disabled{opacity:.5;cursor:not-allowed}.muted[data-v-4d430748]{color:#64748b}.small[data-v-4d430748]{font-size:12px}.mono[data-v-4d430748]{font-family:ui-monospace,monospace}.strong[data-v-4d430748]{font-weight:600;color:#0f172a}.page[data-v-cbb962b2]{padding:24px 0 32px;background:#f5f7fb}.panel[data-v-cbb962b2]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;overflow:hidden;box-shadow:0 16px 40px #0f172a0f}.tabs-head[data-v-cbb962b2]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px;border-bottom:1px solid #f1f5f9}.tabs[data-v-cbb962b2]{display:flex;flex-wrap:wrap;gap:10px}.tab-btn[data-v-cbb962b2]{position:relative;display:inline-flex;align-items:center;gap:8px;border:1px solid #e2e8f0;background:#f8fafc;color:#475569;border-radius:12px;padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer;transition:all .16s ease}.tab-btn[data-v-cbb962b2]:hover{border-color:#cbd5e1;background:#fff}.tab-btn.has-pending[data-v-cbb962b2]:not(.active){border-color:#fecaca;background:#fffafb}.tab-btn.active[data-v-cbb962b2]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;box-shadow:0 8px 20px #2563eb47}.tab-badge[data-v-cbb962b2]{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:800}.filter-bar[data-v-cbb962b2]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid #f1f5f9;background:#fafbfc}.filter-label[data-v-cbb962b2]{font-size:12px;color:#64748b;margin-right:4px}.filter-chip[data-v-cbb962b2]{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#475569;font-size:13px;cursor:pointer}.filter-chip[data-v-cbb962b2]:hover{border-color:#cbd5e1}.filter-chip.active[data-v-cbb962b2]{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8;font-weight:600}.chip-count[data-v-cbb962b2]{min-width:18px;height:18px;line-height:18px;padding:0 5px;border-radius:999px;background:#fee2e2;color:#b91c1c;font-size:11px;font-weight:700;text-align:center}.filter-chip.active .chip-count[data-v-cbb962b2]{background:#dbeafe;color:#1d4ed8}.biz-tag[data-v-cbb962b2]{display:inline-block;padding:3px 10px;border-radius:8px;background:#f1f5f9;color:#334155;font-size:13px}.state-box[data-v-cbb962b2]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:56px 24px;color:#64748b}.empty-icon.soft[data-v-cbb962b2]{width:56px;height:56px;border-radius:16px;background:#f1f5f9;color:#94a3b8;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800}.spinner[data-v-cbb962b2]{width:28px;height:28px;border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:spin-cbb962b2 .8s linear infinite}@keyframes spin-cbb962b2{to{transform:rotate(360deg)}}.table-wrap[data-v-cbb962b2]{overflow-x:auto}.table[data-v-cbb962b2]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-cbb962b2],.table td[data-v-cbb962b2]{padding:11px 14px;text-align:left;border-bottom:1px solid #eef2f7;vertical-align:middle}.table th[data-v-cbb962b2]{background:#f8fafc;color:#64748b;font-weight:700;font-size:12px}.table tbody tr.stripe[data-v-cbb962b2]{background:#fcfdff}.desc[data-v-cbb962b2]{max-width:320px;word-break:break-word;color:#334155}.pagination[data-v-cbb962b2]{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 16px}.modal-mask[data-v-cbb962b2]{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal[data-v-cbb962b2]{width:min(480px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow-y:auto;background:#fff;border-radius:16px;padding:22px;box-shadow:0 24px 60px #0f172a33}.modal.wide[data-v-cbb962b2]{width:min(640px,calc(100vw - 32px))}.modal.detail-modal[data-v-cbb962b2]{width:min(920px,calc(100vw - 32px));max-height:min(92vh,960px);display:flex;flex-direction:column;overflow:hidden;padding:0}.detail-modal-head[data-v-cbb962b2]{flex-shrink:0;padding:20px 22px 12px;border-bottom:1px solid #eef2f7}.detail-modal-body[data-v-cbb962b2]{flex:1 1 auto;min-height:0;overflow-y:auto;padding:16px 22px}.detail-modal-foot[data-v-cbb962b2]{flex-shrink:0;padding:12px 22px 18px;border-top:1px solid #eef2f7;background:#fafbfc}.detail-modal .modal-title[data-v-cbb962b2]{margin-bottom:6px}.modal-actions.inline-actions[data-v-cbb962b2]{margin-top:10px}.modal-title[data-v-cbb962b2]{font-size:18px;font-weight:800;margin-bottom:8px;color:#0f172a;display:flex;align-items:center;gap:10px}.modal-actions[data-v-cbb962b2]{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.field[data-v-cbb962b2]{margin-top:12px}.field .label[data-v-cbb962b2]{font-size:13px;color:#64748b;margin-bottom:6px}.req[data-v-cbb962b2]{color:#ef4444}.input[data-v-cbb962b2],.textarea[data-v-cbb962b2]{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #e2e8f0;border-radius:12px;font-size:14px}.textarea[data-v-cbb962b2]{resize:vertical}.def-list[data-v-cbb962b2]{display:flex;flex-direction:column;gap:8px;margin-top:8px}.def-item[data-v-cbb962b2]{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;cursor:pointer}.def-item[data-v-cbb962b2]:hover{border-color:#2563eb;background:#eff6ff}.def-name[data-v-cbb962b2]{font-weight:600;color:#0f172a}.def-key[data-v-cbb962b2]{font-family:ui-monospace,monospace;font-size:12px;color:#94a3b8}.detail-section[data-v-cbb962b2]{margin-top:18px}.section-title[data-v-cbb962b2]{font-size:13px;font-weight:700;color:#475569;margin-bottom:8px}.kv-list[data-v-cbb962b2]{display:flex;flex-direction:column;gap:6px}.kv-grid[data-v-cbb962b2]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.kv-grid--supplier[data-v-cbb962b2]{grid-template-columns:repeat(2,minmax(0,1fr))}.kv[data-v-cbb962b2]{display:flex;flex-direction:column;gap:4px;font-size:13px;padding:10px 12px;border:1px solid #eef2f7;border-radius:10px;background:#f8fafc;min-width:0}.kv-full[data-v-cbb962b2]{grid-column:1 / -1}.kv-multiline .kv-v[data-v-cbb962b2]{min-height:2.5em}.kv-k[data-v-cbb962b2]{width:auto;color:#64748b;flex-shrink:0;font-size:12px;font-weight:700}.kv-v[data-v-cbb962b2]{color:#0f172a;word-break:break-word;white-space:pre-wrap;line-height:1.55}.kv-v--multiline[data-v-cbb962b2]{white-space:pre-wrap;overflow:visible;max-height:none}.timeline[data-v-cbb962b2]{display:flex;flex-direction:column;gap:14px;padding-left:6px}.tl-item[data-v-cbb962b2]{display:flex;gap:10px}.tl-dot[data-v-cbb962b2]{width:10px;height:10px;border-radius:50%;background:#cbd5e1;margin-top:5px;flex-shrink:0}.tl-item.approved .tl-dot[data-v-cbb962b2]{background:#16a34a}.tl-item.rejected .tl-dot[data-v-cbb962b2]{background:#dc2626}.tl-item.pending .tl-dot[data-v-cbb962b2]{background:#f59e0b}.tl-head[data-v-cbb962b2]{display:flex;align-items:center;gap:8px}.tl-meta[data-v-cbb962b2]{font-size:12px;color:#64748b;margin-top:2px}.tl-comment[data-v-cbb962b2]{margin-top:4px;font-size:13px;color:#334155;background:#f8fafc;border-radius:8px;padding:6px 10px}.action-area[data-v-cbb962b2]{background:#fffbeb;border:1px solid #fde68a;border-radius:12px;padding:12px}.badge[data-v-cbb962b2]{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge-warn[data-v-cbb962b2]{background:#fef3c7;color:#92400e}.badge-ok[data-v-cbb962b2]{background:#dcfce7;color:#166534}.badge-danger[data-v-cbb962b2]{background:#fee2e2;color:#b91c1c}.badge-muted[data-v-cbb962b2]{background:#f1f5f9;color:#64748b}.btn[data-v-cbb962b2]{padding:7px 14px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;font-size:13px}.btn.primary[data-v-cbb962b2]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600}.btn.danger[data-v-cbb962b2]{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.btn.ghost[data-v-cbb962b2]{background:#f8fafc}.btn.link-btn[data-v-cbb962b2]{border-color:#bfdbfe;color:#2563eb;background:#eff6ff}.btn[data-v-cbb962b2]:disabled{opacity:.5;cursor:not-allowed}.muted[data-v-cbb962b2]{color:#64748b}.small[data-v-cbb962b2]{font-size:12px}.strong[data-v-cbb962b2]{font-weight:600;color:#0f172a}.cbd[data-v-b6603b4f]{display:grid;gap:12px;margin-bottom:12px;animation:cbdFadeIn-b6603b4f .45s ease}@keyframes cbdFadeIn-b6603b4f{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.cbd-hero[data-v-b6603b4f]{position:relative;border-radius:14px;overflow:hidden;background:linear-gradient(135deg,#0c1222,#162044 40%,#0e3a5e);box-shadow:0 12px 28px #0f172a2e,inset 0 1px #ffffff14}.cbd-hero__mesh[data-v-b6603b4f]{position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 0% 0%,rgba(0,212,170,.22),transparent 55%),radial-gradient(ellipse 70% 50% at 100% 20%,rgba(99,102,241,.25),transparent 50%),radial-gradient(ellipse 50% 40% at 50% 100%,rgba(56,189,248,.15),transparent 45%);pointer-events:none}.cbd-hero__grid[data-v-b6603b4f]{position:relative;display:grid;grid-template-columns:1fr auto 1fr;gap:12px 18px;align-items:center;padding:14px 16px}@media(max-width:960px){.cbd-hero__grid[data-v-b6603b4f]{grid-template-columns:1fr;text-align:center}.cbd-hero__kpis[data-v-b6603b4f]{justify-content:center}.cbd-hero__ring-wrap[data-v-b6603b4f]{margin:0 auto}}.cbd-hero__badge[data-v-b6603b4f]{display:inline-block;padding:4px 10px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#a5f3fc;background:#00d4aa26;border:1px solid rgba(0,212,170,.35)}.cbd-hero__title[data-v-b6603b4f]{margin:6px 0 4px;font-size:18px;font-weight:800;color:#fff;letter-spacing:-.02em;line-height:1.2}.cbd-hero__intro[data-v-b6603b4f]{display:flex;flex-direction:column;gap:10px;min-width:0}.cbd-hero__intro-head[data-v-b6603b4f]{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}.cbd-hero__intro-head .cbd-hero__title[data-v-b6603b4f]{margin:0}.cbd-hero__desc[data-v-b6603b4f]{margin:0;font-size:12px;color:#e2e8f0bf}.cbd-hero__panel[data-v-b6603b4f]{display:grid;gap:10px;padding:12px 14px;border-radius:14px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.cbd-hero__total-row[data-v-b6603b4f]{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px}.cbd-hero__total-lbl[data-v-b6603b4f]{font-size:11px;font-weight:650;color:#e2e8f0bf;letter-spacing:.04em}.cbd-hero__total-val[data-v-b6603b4f]{font-size:24px;font-weight:900;letter-spacing:-.03em;line-height:1.1;background:linear-gradient(90deg,#6ee7b7,#38bdf8 55%,#a5b4fc);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}.cbd-hero__panel .cbd-hero__cn[data-v-b6603b4f]{margin:-4px 0 0;font-size:10px;color:#bae6fda6;line-height:1.35}.cbd-hero__split[data-v-b6603b4f]{display:grid;gap:6px}.cbd-hero__split-track[data-v-b6603b4f]{display:flex;height:8px;border-radius:999px;overflow:hidden;background:#ffffff1a}.cbd-hero__split-paid[data-v-b6603b4f]{height:100%;background:linear-gradient(90deg,#34d399,#10b981);border-radius:999px 0 0 999px;transition:width .6s ease}.cbd-hero__split-pend[data-v-b6603b4f]{height:100%;background:linear-gradient(90deg,#fbbf24,#f59e0b);border-radius:0 999px 999px 0;transition:width .6s ease}.cbd-hero__split-meta[data-v-b6603b4f]{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:10px;color:#e2e8f0cc}.cbd-hero__dot[data-v-b6603b4f]{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:4px;vertical-align:middle}.cbd-hero__dot--paid[data-v-b6603b4f]{background:#34d399}.cbd-hero__dot--pend[data-v-b6603b4f]{background:#fbbf24}.cbd-hero__chips[data-v-b6603b4f]{display:flex;flex-wrap:wrap;gap:6px}.cbd-hero__chip[data-v-b6603b4f]{padding:3px 9px;border-radius:999px;font-size:10px;font-weight:600;border:1px solid transparent}.cbd-hero__chip b[data-v-b6603b4f]{margin-left:4px;font-weight:800;font-variant-numeric:tabular-nums}.cbd-hero__chip--slate[data-v-b6603b4f]{color:#e2e8f0;background:#94a3b833;border-color:#94a3b859}.cbd-hero__chip--amber[data-v-b6603b4f]{color:#fde68a;background:#fbbf2426;border-color:#fbbf2459}.cbd-hero__chip--emerald[data-v-b6603b4f]{color:#a7f3d0;background:#34d39926;border-color:#34d39959}.cbd-auto-hint[data-v-b6603b4f]{margin:0;font-size:10px;color:#bae6fda6}.cbd-hero__spark[data-v-b6603b4f]{width:100%;height:44px;display:block;opacity:.9}.cbd-hero__peek-hd[data-v-b6603b4f]{margin:0;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#bae6fdbf}.cbd-hero__peek[data-v-b6603b4f]{list-style:none;margin:0;padding:0;display:grid;gap:6px}.cbd-hero__peek li[data-v-b6603b4f]{display:grid;grid-template-columns:minmax(0,1fr) 1.2fr auto;gap:8px;align-items:center;font-size:10px}.cbd-hero__peek-name[data-v-b6603b4f]{color:#e2e8f0e6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cbd-hero__peek-track[data-v-b6603b4f]{height:5px;border-radius:999px;background:#ffffff1f;overflow:hidden}.cbd-hero__peek-track i[data-v-b6603b4f]{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#818cf8,#38bdf8)}.cbd-hero__peek-amt[data-v-b6603b4f]{color:#a5b4fc;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.cbd-charts[data-v-b6603b4f]{display:grid;gap:12px}.cbd-hero__ring-wrap[data-v-b6603b4f]{position:relative;width:128px;height:128px}.cbd-hero__ring[data-v-b6603b4f]{width:100%;height:100%}.cbd-hero__ring-center[data-v-b6603b4f]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.cbd-hero__ring-val[data-v-b6603b4f]{font-size:22px;font-weight:800;color:#fff;line-height:1;text-shadow:0 2px 12px rgba(0,212,170,.4)}.cbd-hero__ring-k[data-v-b6603b4f]{margin-top:2px;font-size:10px;color:#e2e8f0cc}.cbd-hero__ring-sub[data-v-b6603b4f]{margin-top:4px;font-size:10px;color:#bae6fda6;font-variant-numeric:tabular-nums}.cbd-hero__kpis[data-v-b6603b4f]{display:flex;flex-direction:column;gap:6px}.cbd-kpi[data-v-b6603b4f]{display:flex;gap:8px;align-items:center;padding:8px 10px;border-radius:12px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform .2s,background .2s}.cbd-kpi[data-v-b6603b4f]:hover{transform:translate(4px);background:#ffffff1a}.cbd-kpi__icon[data-v-b6603b4f]{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;flex-shrink:0}.cbd-kpi__icon svg[data-v-b6603b4f]{width:16px;height:16px}.cbd-kpi--emerald .cbd-kpi__icon[data-v-b6603b4f]{background:#34d39933;color:#6ee7b7}.cbd-kpi--amber .cbd-kpi__icon[data-v-b6603b4f]{background:#fbbf2433;color:#fcd34d}.cbd-kpi--blue .cbd-kpi__icon[data-v-b6603b4f]{background:#60a5fa33;color:#93c5fd}.cbd-kpi__label[data-v-b6603b4f]{display:block;font-size:11px;color:#e2e8f0b3}.cbd-kpi__value[data-v-b6603b4f]{display:block;margin-top:1px;font-size:13px;font-weight:800;color:#fff;font-variant-numeric:tabular-nums}.cbd-kpi__sub[data-v-b6603b4f]{display:block;margin-top:2px;font-size:10px;color:#94a3b8e6}.cbd-loading[data-v-b6603b4f]{display:flex;flex-direction:column;align-items:center;gap:14px;padding:48px;border-radius:20px;background:#ffffffe6;border:1px solid #e2e8f0;color:#64748b;font-size:14px}.cbd-loading__pulse[data-v-b6603b4f]{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#00d4aa);animation:cbdPulse-b6603b4f 1.2s ease-in-out infinite}@keyframes cbdPulse-b6603b4f{0%,to{transform:scale(.85);opacity:.6}50%{transform:scale(1);opacity:1}}.cbd-bento[data-v-b6603b4f]{display:grid;gap:12px}.cbd-bento--top[data-v-b6603b4f]{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.cbd-bento--bottom[data-v-b6603b4f]{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.cbd-panel--span-full[data-v-b6603b4f]{grid-column:1 / -1}@media(max-width:1100px){.cbd-bento--top[data-v-b6603b4f]{grid-template-columns:1fr}}@media(max-width:900px){.cbd-bento--bottom[data-v-b6603b4f]{grid-template-columns:1fr}}.cbd-panel[data-v-b6603b4f]{position:relative;padding:12px 14px 14px;border-radius:14px;background:#ffffffeb;border:1px solid rgba(229,231,235,.95);box-shadow:0 8px 24px #0f172a0f;overflow:hidden}.cbd-panel[data-v-b6603b4f]:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#e2e8f0,#e2e8f0)}.cbd-panel--accent-emerald[data-v-b6603b4f]:before{background:linear-gradient(90deg,#34d399,#059669)}.cbd-panel--accent-violet[data-v-b6603b4f]:before{background:linear-gradient(90deg,#a78bfa,#7c3aed)}.cbd-panel--chart[data-v-b6603b4f]:before{background:linear-gradient(90deg,#6366f1,#0ea5e9)}.cbd-panel__head[data-v-b6603b4f]{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}.cbd-panel__head h3[data-v-b6603b4f]{margin:0;font-size:14px;font-weight:800;color:#0f172a;letter-spacing:-.02em}.cbd-panel__head p[data-v-b6603b4f]{margin:2px 0 0;font-size:11px;color:#94a3b8}.cbd-panel__icon[data-v-b6603b4f]{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex-shrink:0}.cbd-panel__icon svg[data-v-b6603b4f]{width:18px;height:18px}.cbd-panel__icon--emerald[data-v-b6603b4f]{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#059669}.cbd-panel__icon--violet[data-v-b6603b4f]{background:linear-gradient(135deg,#ede9fe,#ddd6fe);color:#7c3aed}.cbd-panel__icon--cyan[data-v-b6603b4f]{background:linear-gradient(135deg,#cffafe,#a5f3fc);color:#0891b2}.cbd-panel__icon--indigo[data-v-b6603b4f]{background:linear-gradient(135deg,#e0e7ff,#c7d2fe);color:#4f46e5}.cbd-panel__icon--sky[data-v-b6603b4f]{background:linear-gradient(135deg,#e0f2fe,#bae6fd);color:#0284c7}.cbd-donut-layout[data-v-b6603b4f]{display:grid;grid-template-columns:128px 1fr;gap:10px 12px;align-items:center}@media(max-width:420px){.cbd-donut-layout[data-v-b6603b4f]{grid-template-columns:1fr;justify-items:center}}.cbd-donut-box[data-v-b6603b4f]{position:relative;width:128px;height:128px;flex-shrink:0}.cbd-donut-svg[data-v-b6603b4f]{width:100%;height:100%}.cbd-donut-arc[data-v-b6603b4f]{transition:stroke-dashoffset .6s ease;filter:drop-shadow(0 2px 4px rgba(0,0,0,.08))}.cbd-donut-center[data-v-b6603b4f]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.cbd-donut-center strong[data-v-b6603b4f]{font-size:17px;font-weight:800;color:#0f172a;line-height:1}.cbd-donut-center span[data-v-b6603b4f]{margin-top:2px;font-size:10px;color:#94a3b8;font-weight:600}.cbd-legend[data-v-b6603b4f]{list-style:none;margin:0;padding:0;display:grid;gap:6px}.cbd-legend li[data-v-b6603b4f]{display:grid;grid-template-columns:4px 1fr auto auto;gap:6px 8px;align-items:center;padding:6px 8px;border-radius:10px;background:#f8fafc;font-size:11px}.cbd-legend__bar[data-v-b6603b4f]{width:4px;height:22px;border-radius:4px;grid-row:1 / span 1}.cbd-legend__bar--received[data-v-b6603b4f]{background:linear-gradient(180deg,#34d399,#059669)}.cbd-legend__bar--pending[data-v-b6603b4f]{background:linear-gradient(180deg,#fbbf24,#d97706)}.cbd-legend__bar--unpaid[data-v-b6603b4f]{background:linear-gradient(180deg,#cbd5e1,#94a3b8)}.cbd-legend__bar--partial[data-v-b6603b4f]{background:linear-gradient(180deg,#fcd34d,#f59e0b)}.cbd-legend__bar--paid[data-v-b6603b4f]{background:linear-gradient(180deg,#34d399,#059669)}.cbd-legend__name[data-v-b6603b4f]{font-weight:650;color:#475569}.cbd-legend__amt[data-v-b6603b4f]{font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums}.cbd-legend__pct[data-v-b6603b4f]{color:#64748b;font-size:11px}.cbd-stage-grid[data-v-b6603b4f]{display:grid;gap:10px}.cbd-stage-item__top[data-v-b6603b4f]{display:flex;justify-content:space-between;font-size:12px;color:#64748b;margin-bottom:6px}.cbd-stage-item__top strong[data-v-b6603b4f]{color:#0f172a;font-size:13px}.cbd-stage-item__track[data-v-b6603b4f]{height:10px;border-radius:999px;background:#f1f5f9;overflow:hidden}.cbd-stage-item__fill[data-v-b6603b4f]{height:100%;border-radius:999px;transition:width .7s cubic-bezier(.22,1,.36,1)}.cbd-stage-item__fill--emerald[data-v-b6603b4f]{background:linear-gradient(90deg,#6ee7b7,#10b981)}.cbd-stage-item__fill--violet[data-v-b6603b4f]{background:linear-gradient(90deg,#c4b5fd,#8b5cf6)}.cbd-stage-item__fill--cyan[data-v-b6603b4f]{background:linear-gradient(90deg,#67e8f9,#06b6d4)}.cbd-stage-item__n[data-v-b6603b4f]{display:block;margin-top:4px;font-size:10px;color:#94a3b8}.cbd-stage-note[data-v-b6603b4f]{margin:14px 0 0;padding-top:12px;border-top:1px dashed #e2e8f0;font-size:12px;color:#64748b;text-align:center}.cbd-stage-note b[data-v-b6603b4f]{color:#0f172a}.cbd-rank-list[data-v-b6603b4f]{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:260px;overflow-y:auto}.cbd-rank-item[data-v-b6603b4f]{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border-radius:10px;background:linear-gradient(135deg,#fafbfc,#fff);border:1px solid #f1f5f9;transition:border-color .2s,box-shadow .2s}.cbd-rank-item[data-v-b6603b4f]:hover{border-color:#c7d2fe;box-shadow:0 4px 16px #6366f114}.cbd-rank-list--cyan .cbd-rank-item[data-v-b6603b4f]:hover{border-color:#7dd3fc;box-shadow:0 4px 16px #0ea5e914}.cbd-rank-medal[data-v-b6603b4f]{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;font-size:12px;font-weight:900;flex-shrink:0;background:#f1f5f9;color:#64748b}.cbd-rank-medal--gold[data-v-b6603b4f]{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#b45309;box-shadow:0 2px 8px #f59e0b4d}.cbd-rank-medal--silver[data-v-b6603b4f]{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);color:#475569}.cbd-rank-medal--bronze[data-v-b6603b4f]{background:linear-gradient(135deg,#ffedd5,#fed7aa);color:#c2410c}.cbd-rank-main[data-v-b6603b4f]{flex:1;min-width:0}.cbd-rank-head[data-v-b6603b4f]{display:flex;justify-content:space-between;gap:6px;align-items:baseline;margin-bottom:5px}.cbd-rank-name[data-v-b6603b4f]{font-size:12px;font-weight:650;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cbd-rank-amt[data-v-b6603b4f]{font-size:12px;font-weight:800;color:#6366f1;font-variant-numeric:tabular-nums;flex-shrink:0}.cbd-rank-amt--cyan[data-v-b6603b4f]{color:#0284c7}.cbd-rank-track[data-v-b6603b4f]{height:6px;border-radius:999px;background:#eef2ff;overflow:hidden}.cbd-rank-list--cyan .cbd-rank-track[data-v-b6603b4f]{background:#e0f2fe}.cbd-rank-fill[data-v-b6603b4f]{height:100%;border-radius:999px;background:linear-gradient(90deg,#a5b4fc,#6366f1);transition:width .65s cubic-bezier(.22,1,.36,1);box-shadow:0 0 12px #6366f159}.cbd-rank-list--cyan .cbd-rank-fill[data-v-b6603b4f]{background:linear-gradient(90deg,#7dd3fc,#0ea5e9);box-shadow:0 0 12px #0ea5e94d}.cbd-rank-meta[data-v-b6603b4f]{display:flex;justify-content:space-between;margin-top:6px;font-size:11px;color:#94a3b8}.cbd-line-chart[data-v-b6603b4f]{display:flex;flex-direction:column;gap:4px}.cbd-line-wrap[data-v-b6603b4f]{border-radius:10px;background:linear-gradient(180deg,#f8fafc,#fff 50%);border:1px solid #f1f5f9;padding:8px 6px 0;overflow:hidden}.cbd-line-svg[data-v-b6603b4f]{width:100%;height:auto;max-height:140px;min-height:110px;display:block}.cbd-line-xlabels[data-v-b6603b4f]{display:grid;gap:4px 6px;align-items:start}.cbd-line-xlabels span[data-v-b6603b4f]{font-size:10px;line-height:1.35;text-align:center;color:#475569;font-weight:550;word-break:break-all;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--line-label-lines, 2);line-clamp:var(--line-label-lines, 2)}.cbd-line-xlabels span[data-v-b6603b4f]:hover{color:#0f172a}.cbd-grid[data-v-b6603b4f]{stroke:#f1f5f9;stroke-width:1}.cbd-axis[data-v-b6603b4f]{stroke:#e2e8f0;stroke-width:1.5}.cbd-axis-label[data-v-b6603b4f]{font-size:10px;fill:#94a3b8;font-weight:600}.cbd-line-path[data-v-b6603b4f]{filter:drop-shadow(0 2px 4px rgba(99,102,241,.2))}.cbd-line-dot-bg[data-v-b6603b4f]{fill:#fff}.cbd-line-dot[data-v-b6603b4f]{fill:#6366f1;stroke:#fff;stroke-width:2}.cbd-line-val[data-v-b6603b4f]{font-size:9px;fill:#4f46e5;font-weight:800;paint-order:stroke fill}.cbd-empty[data-v-b6603b4f]{padding:32px;text-align:center;color:#94a3b8;font-size:13px;border-radius:14px;background:#f8fafc;border:1px dashed #e2e8f0}.page[data-v-1200bbe2]{padding:24px 0;background:#f5f7fb}.project-toolbar[data-v-1200bbe2]{margin-bottom:12px}.detail-card[data-v-1200bbe2]{margin-top:0}.sub-block[data-v-1200bbe2]{border-top:1px solid #e5e7eb;padding-top:14px;margin-top:12px}.sub-title[data-v-1200bbe2]{margin:0 0 10px;font-size:15px;color:#0f172a;font-weight:650}.inner-head[data-v-1200bbe2]{margin-bottom:8px}.inner-head h3[data-v-1200bbe2]{margin:0}.detail-head[data-v-1200bbe2]{align-items:flex-start}.detail-actions[data-v-1200bbe2]{display:flex;gap:8px;flex-wrap:wrap}.detail-bill-line[data-v-1200bbe2]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px}.bill-scope-pill[data-v-1200bbe2]{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.detail-bill-main[data-v-1200bbe2]{color:#334155}.detail-bill-dates[data-v-1200bbe2]{margin-top:2px}.pay-progress-head[data-v-1200bbe2]{align-items:flex-start}.pay-progress-head .card-actions[data-v-1200bbe2]{flex-shrink:0}.pay-progress-scope[data-v-1200bbe2]{margin:6px 0 0;max-width:720px;line-height:1.5}.pay-progress-scope strong[data-v-1200bbe2]{color:#0f172a;font-weight:650}.bill-desc-cell[data-v-1200bbe2]{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.bill-no-cell[data-v-1200bbe2]{white-space:nowrap}.pay-modal-bill-box[data-v-1200bbe2]{padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;font-size:13px;color:#334155;line-height:1.45}.pay-modal-bill-tip[data-v-1200bbe2]{margin:8px 0 0;line-height:1.45}.chk-label[data-v-1200bbe2]{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#374151;cursor:pointer}.invoice-section[data-v-1200bbe2]{border-top:none;padding-top:0;margin-top:8px}.invoice-section-head[data-v-1200bbe2]{display:flex;align-items:flex-start;gap:14px;margin-bottom:12px;padding:10px 12px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:12px}.invoice-section-accent[data-v-1200bbe2]{width:4px;min-height:36px;border-radius:4px;background:linear-gradient(180deg,#3b82f6,#2563eb);flex-shrink:0;margin-top:2px}.invoice-section-title[data-v-1200bbe2]{margin:0 0 4px}.invoice-section-desc[data-v-1200bbe2]{margin:0;font-size:12px;color:#64748b;line-height:1.45}.invoice-panels[data-v-1200bbe2]{display:flex;flex-direction:column;gap:10px}.invoice-panel[data-v-1200bbe2]{padding:10px 12px;background:#fafbfc;border:1px solid #e8ecf1;border-radius:12px}.invoice-panel-label[data-v-1200bbe2]{font-size:12px;font-weight:650;color:#475569;letter-spacing:.02em;margin-bottom:6px}.invoice-panel-hint[data-v-1200bbe2]{margin:-2px 0 8px;font-size:12px;color:#94a3b8;line-height:1.4}.invoice-status-row[data-v-1200bbe2]{display:flex;align-items:center;min-height:32px}.invoice-switch[data-v-1200bbe2]{display:inline-flex;align-items:center;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.invoice-switch input[data-v-1200bbe2]{position:absolute;opacity:0;width:0;height:0}.invoice-switch-track[data-v-1200bbe2]{position:relative;width:40px;height:24px;border-radius:999px;background:#e2e8f0;transition:background .2s ease;flex-shrink:0}.invoice-switch-knob[data-v-1200bbe2]{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #0f172a1f;transition:transform .2s ease}.invoice-switch input:checked+.invoice-switch-track[data-v-1200bbe2]{background:linear-gradient(135deg,#3b82f6,#2563eb)}.invoice-switch input:checked+.invoice-switch-track .invoice-switch-knob[data-v-1200bbe2]{transform:translate(16px)}.invoice-switch input:focus-visible+.invoice-switch-track[data-v-1200bbe2]{box-shadow:0 0 0 3px #3b82f659}.invoice-switch-text[data-v-1200bbe2]{font-size:14px;font-weight:600;color:#1e293b}.invoice-status-pill[data-v-1200bbe2]{display:inline-flex;align-items:center;padding:6px 14px;border-radius:999px;font-size:13px;font-weight:600}.invoice-status-pill.is-on[data-v-1200bbe2]{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.invoice-status-pill.is-off[data-v-1200bbe2]{background:#f8fafc;color:#64748b;border:1px solid #e2e8f0}.invoice-textarea[data-v-1200bbe2]{min-height:64px;background:#fff}.invoice-panel-actions[data-v-1200bbe2]{display:flex;justify-content:flex-end;margin-top:8px}.invoice-summary-grid[data-v-1200bbe2]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:6px}.invoice-sum-item[data-v-1200bbe2]{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px}.invoice-sum-k[data-v-1200bbe2]{font-size:11px;color:#64748b;margin-bottom:4px}.invoice-sum-v[data-v-1200bbe2]{font-size:16px;font-weight:700;color:#0f172a}.invoice-sum-v.ok[data-v-1200bbe2]{color:#047857}.invoice-sum-v.warn[data-v-1200bbe2]{color:#b45309}.invoice-stage-list[data-v-1200bbe2]{margin-top:10px;display:flex;flex-direction:column;gap:8px}.invoice-stage-row[data-v-1200bbe2]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}.invoice-stage-main[data-v-1200bbe2]{min-width:0;flex:1}.invoice-stage-title[data-v-1200bbe2]{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.invoice-stage-desc[data-v-1200bbe2]{margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:640px}.invoice-stage-meta[data-v-1200bbe2]{flex-shrink:0;display:inline-flex;align-items:center;gap:8px}.invoice-supplier-box[data-v-1200bbe2]{padding:10px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}.invoice-supplier-line[data-v-1200bbe2]{display:flex;gap:8px;align-items:center;margin-bottom:8px}.invoice-supplier-info[data-v-1200bbe2]{white-space:pre-wrap;line-height:1.55;color:#334155;font-size:13px}@media(max-width:980px){.invoice-summary-grid[data-v-1200bbe2]{grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-stage-desc[data-v-1200bbe2]{max-width:360px}}.invoice-file-done[data-v-1200bbe2]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;margin-bottom:10px;background:#fff;border:1px solid #d1fae5;border-radius:12px;box-shadow:0 1px #10b9810f}.invoice-file-done-main[data-v-1200bbe2]{display:flex;align-items:center;gap:12px}.invoice-file-done-dot[data-v-1200bbe2]{width:10px;height:10px;border-radius:50%;background:#10b981;box-shadow:0 0 0 4px #10b98133;flex-shrink:0}.invoice-file-done-title[data-v-1200bbe2]{font-size:14px;font-weight:650;color:#0f172a}.invoice-file-done-actions[data-v-1200bbe2]{display:flex;flex-wrap:wrap;gap:8px}.invoice-drop[data-v-1200bbe2]{position:relative;border:2px dashed #cbd5e1;border-radius:12px;padding:12px;background:#fff;cursor:pointer;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.invoice-drop[data-v-1200bbe2]:hover:not(.is-busy){border-color:#93c5fd;background:#f8fafc;box-shadow:0 8px 24px #2563eb14}.invoice-drop.is-drag[data-v-1200bbe2]{border-color:#3b82f6;background:#eff6ff;box-shadow:0 0 0 4px #3b82f626}.invoice-drop.is-busy[data-v-1200bbe2]{cursor:wait;opacity:.85}.invoice-file-native[data-v-1200bbe2]{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.invoice-drop-inner[data-v-1200bbe2]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.invoice-drop-text[data-v-1200bbe2]{display:flex;flex-direction:column;gap:4px}.invoice-drop-text strong[data-v-1200bbe2]{font-size:14px;color:#0f172a;font-weight:650}.invoice-upload-overlay[data-v-1200bbe2]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#ffffffd1;font-size:13px;font-weight:600;color:#2563eb}.invoice-empty[data-v-1200bbe2]{margin:0;padding:10px 2px 2px}.grid2[data-v-1200bbe2]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.bar.bar-sm[data-v-1200bbe2]{width:48px;height:5px}.table-compact th[data-v-1200bbe2],.table-compact td[data-v-1200bbe2]{padding:8px 10px;font-size:12px}.btn.sm[data-v-1200bbe2]{padding:5px 10px;font-size:12px;border-radius:8px}.controls[data-v-1200bbe2]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.project-filters[data-v-1200bbe2]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 10px;padding:12px;background:#ffffffb3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 10px 22px #0f172a0d}.project-filters .input[data-v-1200bbe2]{min-width:240px;flex:1;background:#fff}.project-search-combo[data-v-1200bbe2]{min-width:min(520px,80vw);flex:1}.muted[data-v-1200bbe2]{color:#6b7280;font-size:13px}.small[data-v-1200bbe2]{font-size:12px}.mono[data-v-1200bbe2]{font-variant-numeric:tabular-nums}.empty[data-v-1200bbe2]{padding:28px 4px;text-align:center;color:#6b7280;font-size:14px}.empty-detail[data-v-1200bbe2]{min-height:120px;display:flex;align-items:center;justify-content:center}.card[data-v-1200bbe2]{background:#fff;border-radius:18px;border:1px solid #e5e7eb;padding:16px 16px 14px;margin-bottom:18px;box-shadow:0 18px 40px #0f172a0f}.card-head[data-v-1200bbe2]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.card-actions[data-v-1200bbe2]{display:flex;gap:10px;align-items:center;margin-left:auto;flex-wrap:wrap}h2[data-v-1200bbe2]{margin:0;font-size:18px;color:#0f172a}.table-wrap[data-v-1200bbe2]{overflow-x:auto}.table[data-v-1200bbe2]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-1200bbe2],.table td[data-v-1200bbe2]{padding:10px 12px;border-bottom:1px solid #e5e7eb;vertical-align:middle;text-align:left}.table th[data-v-1200bbe2]{background:#f3f4f6;color:#4b5563;font-weight:600;font-size:12px;white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}.table td[data-v-1200bbe2]{font-size:13px;color:#111827}.strong[data-v-1200bbe2]{font-weight:600;color:#111827}.pay-remark-cell[data-v-1200bbe2]{max-width:280px;min-width:100px;word-break:break-word;line-height:1.45;vertical-align:top;padding-top:12px;padding-bottom:12px}.bar[data-v-1200bbe2]{width:140px;height:8px;border-radius:999px;background:#e2e8f0e6;overflow:hidden}.bar-in[data-v-1200bbe2]{height:100%;background:linear-gradient(90deg,#00d4aa,#2563eb);border-radius:999px}.badge[data-v-1200bbe2]{padding:3px 10px;border-radius:999px;font-size:12px;display:inline-flex;align-items:center;font-weight:500}.badge.paid[data-v-1200bbe2]{border:1px solid rgba(22,163,74,.3);background:#16a34a14;color:#16a34a}.badge.partial[data-v-1200bbe2]{border:1px solid rgba(234,179,8,.35);background:#facc151f;color:#92400e}.badge.unpaid[data-v-1200bbe2]{border:1px solid rgba(248,113,113,.45);background:#fee2e2cc;color:#b91c1c}.btn[data-v-1200bbe2]{padding:8px 12px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;font-size:13px;transition:all .18s ease}.btn[data-v-1200bbe2]:hover{border-color:#3b82f6;color:#1d4ed8;box-shadow:0 6px 18px #0f172a14}.btn.primary[data-v-1200bbe2]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600;box-shadow:0 10px 25px #2563eb47}.btn.primary[data-v-1200bbe2]:hover{background:linear-gradient(135deg,#1d4ed8,#2563eb);border-color:#1d4ed8}.btn.danger[data-v-1200bbe2]{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.btn.danger[data-v-1200bbe2]:hover{border-color:#fca5a5;background:#fee2e2;color:#991b1b}.row-selected[data-v-1200bbe2]{background:#eff6ff}.ops[data-v-1200bbe2]{white-space:nowrap;display:flex;gap:8px;flex-wrap:wrap}.select[data-v-1200bbe2]{padding:8px 12px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;font-size:13px;min-width:220px}.modal-mask[data-v-1200bbe2]{position:fixed;inset:0;background:#0f172a59;display:flex;align-items:center;justify-content:center;padding:16px;z-index:80}.modal[data-v-1200bbe2]{width:520px;max-width:100%;max-height:90vh;overflow:visible;display:flex;flex-direction:column;background:#fff;border:1px solid #e5e7eb;border-radius:20px;box-shadow:0 26px 70px #0f172a40}.modal-head[data-v-1200bbe2]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid #e5e7eb}.modal-title[data-v-1200bbe2]{color:#0f172a;font-weight:650;font-size:16px}.icon[data-v-1200bbe2]{background:transparent;border:none;color:#6b7280;font-size:20px;cursor:pointer}.modal-body[data-v-1200bbe2]{padding:14px;display:grid;gap:10px;overflow-x:hidden;overflow-y:auto;max-height:min(70vh,560px)}.field .label[data-v-1200bbe2]{color:#6b7280;font-size:12px;margin-bottom:6px}.input[data-v-1200bbe2]{width:100%;background:#fff;border:1px solid #d1d5db;color:#111827;border-radius:12px;padding:9px 12px;outline:none;font-size:13px;transition:all .18s ease}.input[data-v-1200bbe2]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f62e}.textarea[data-v-1200bbe2]{resize:vertical;min-height:80px}.modal-foot[data-v-1200bbe2]{display:flex;justify-content:flex-end;gap:10px;padding:12px 14px 14px;border-top:1px solid #e5e7eb}.page[data-v-7e83524c]{padding:24px 0;background:#f5f7fb}.empty[data-v-7e83524c]{padding:24px 4px;color:#6b7280;text-align:center}.card[data-v-7e83524c]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 18px 40px #0f172a0f}.toolbar[data-v-7e83524c]{padding:14px 16px;margin-bottom:14px;display:grid;gap:12px}.row[data-v-7e83524c]{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.field[data-v-7e83524c]{display:grid;gap:6px;min-width:220px}.field.grow[data-v-7e83524c]{flex:1;min-width:260px}.combo-grow[data-v-7e83524c]{min-width:min(560px,92vw)}.label[data-v-7e83524c]{color:#6b7280;font-size:12px}.actions[data-v-7e83524c]{display:inline-flex;gap:10px;flex-wrap:wrap}.actions.right[data-v-7e83524c]{margin-left:auto}.input[data-v-7e83524c]{width:100%;background:#fff;border:1px solid #d1d5db;color:#111827;border-radius:12px;padding:9px 12px;outline:none;font-size:13px;transition:all .18s ease}.input[data-v-7e83524c]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f62e}.select[data-v-7e83524c]{background:#fff;border:1px solid #d1d5db;color:#111827;border-radius:12px;padding:9px 12px;outline:none;font-size:13px}.table-wrap[data-v-7e83524c]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 18px 40px #0f172a0f;overflow:auto}.table[data-v-7e83524c]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-7e83524c],.table td[data-v-7e83524c]{padding:10px 12px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:middle}.table th[data-v-7e83524c]{background:#f3f4f6;color:#4b5563;font-weight:600;white-space:nowrap;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.muted[data-v-7e83524c]{color:#6b7280}.strong[data-v-7e83524c]{font-weight:600;color:#111827}.cell-remarks[data-v-7e83524c]{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ops[data-v-7e83524c]{white-space:nowrap;display:inline-flex;gap:8px}.btn[data-v-7e83524c]{padding:8px 10px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;text-decoration:none;font-size:13px;display:inline-block;transition:all .18s ease}.btn[data-v-7e83524c]:hover{border-color:#3b82f6;color:#1d4ed8;box-shadow:0 6px 18px #0f172a14}.btn.primary[data-v-7e83524c]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600;box-shadow:0 10px 25px #2563eb47}.btn.danger[data-v-7e83524c]{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.btn.danger[data-v-7e83524c]:hover{border-color:#fca5a5;background:#fee2e2;color:#991b1b}.btn.sm[data-v-7e83524c]{padding:6px 8px;border-radius:10px;font-size:12px}.pagination[data-v-7e83524c]{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:10px 14px;border-top:1px solid #e5e7eb;background:#fff;border-radius:0 0 18px 18px}.pagination-info[data-v-7e83524c]{color:#6b7280;font-size:13px}.page-size-select[data-v-7e83524c]{padding:6px 10px;font-size:13px;border-radius:999px;border:1px solid #d1d5db;background:#fff}.small[data-v-7e83524c]{font-size:12px}.modal-mask[data-v-7e83524c]{position:fixed;inset:0;background:#0f172a59;display:grid;place-items:center;z-index:80}.modal[data-v-7e83524c]{width:min(560px,calc(100vw - 24px));background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 25px 60px #0f172a40;overflow:hidden}.modal-head[data-v-7e83524c]{padding:12px 14px;border-bottom:1px solid #e5e7eb}.modal-head h3[data-v-7e83524c]{margin:0;font-size:16px;color:#111827}.modal-body[data-v-7e83524c]{padding:14px;display:grid;gap:10px}.textarea[data-v-7e83524c]{min-height:88px;resize:vertical}.modal-foot[data-v-7e83524c]{padding:12px 14px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:10px}.page[data-v-2bc076bf]{padding:24px 0 28px;background:#f5f7fb}.card[data-v-2bc076bf]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 18px 40px #0f172a0f}.toolbar[data-v-2bc076bf]{padding:16px 18px;margin-bottom:14px;display:grid;gap:14px}.toolbar-head[data-v-2bc076bf]{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.toolbar-title[data-v-2bc076bf]{font-size:14px;font-weight:700;color:#111827}.toolbar-hint[data-v-2bc076bf]{font-size:12px;color:#9ca3af}.filter-grid[data-v-2bc076bf]{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(140px,.6fr) minmax(200px,1fr) auto;gap:12px 14px;align-items:end}@media(max-width:1100px){.filter-grid[data-v-2bc076bf]{grid-template-columns:repeat(2,minmax(200px,1fr))}.actions-field[data-v-2bc076bf]{grid-column:1 / -1}}@media(max-width:640px){.filter-grid[data-v-2bc076bf]{grid-template-columns:1fr}}.field[data-v-2bc076bf]{display:grid;gap:6px;min-width:0}.field.grow[data-v-2bc076bf],.combo-grow[data-v-2bc076bf]{min-width:0}.label[data-v-2bc076bf]{color:#6b7280;font-size:12px;font-weight:500}.label-hidden[data-v-2bc076bf]{visibility:hidden}.input[data-v-2bc076bf],.select[data-v-2bc076bf]{width:100%;background:#fff;border:1px solid #d1d5db;color:#111827;border-radius:12px;padding:9px 12px;outline:none;font-size:13px;transition:border-color .18s ease,box-shadow .18s ease}.input[data-v-2bc076bf]:focus,.select[data-v-2bc076bf]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f62e}.actions[data-v-2bc076bf]{display:inline-flex;gap:8px;flex-wrap:wrap}.actions-field .actions[data-v-2bc076bf]{justify-content:flex-end}.table-card[data-v-2bc076bf]{overflow:hidden}.table-wrap[data-v-2bc076bf]{overflow:auto}.table[data-v-2bc076bf]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-2bc076bf],.table td[data-v-2bc076bf]{padding:12px 14px;border-bottom:1px solid #eef2f7;text-align:left;vertical-align:middle}.table tbody tr[data-v-2bc076bf]:hover{background:#f8fafc}.table th[data-v-2bc076bf]{background:#f8fafc;color:#64748b;font-weight:600;white-space:nowrap;font-size:12px;letter-spacing:.02em}.col-amount[data-v-2bc076bf]{text-align:right}.amount[data-v-2bc076bf]{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:#0f766e;white-space:nowrap}.strong[data-v-2bc076bf]{font-weight:600;color:#111827}.muted[data-v-2bc076bf]{color:#6b7280}.small[data-v-2bc076bf]{font-size:12px}.cell-desc[data-v-2bc076bf]{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-project[data-v-2bc076bf]{min-width:120px}.project-name[data-v-2bc076bf]{font-weight:700;color:#0f172a;line-height:1.4}.time[data-v-2bc076bf]{white-space:nowrap;font-size:12px}.cat-badge[data-v-2bc076bf]{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.cat-hardware[data-v-2bc076bf]{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.cat-software[data-v-2bc076bf]{background:#f5f3ff;color:#6d28d9;border:1px solid #ddd6fe}.cat-electrical[data-v-2bc076bf]{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}.cat-default[data-v-2bc076bf]{background:#f3f4f6;color:#4b5563;border:1px solid #e5e7eb}.status-badge[data-v-2bc076bf]{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.status-submitted[data-v-2bc076bf]{background:#eff6ff;color:#1d4ed8}.status-reviewing[data-v-2bc076bf]{background:#fffbeb;color:#b45309}.status-accepted[data-v-2bc076bf]{background:#ecfdf5;color:#047857}.status-rejected[data-v-2bc076bf]{background:#fef2f2;color:#b91c1c}.status-default[data-v-2bc076bf]{background:#f3f4f6;color:#4b5563}.file-list[data-v-2bc076bf]{display:flex;flex-wrap:wrap;gap:6px}.file-chip[data-v-2bc076bf]{padding:5px 10px;border-radius:10px;border:1px solid #dbeafe;background:#f8fafc;color:#1d4ed8;font-size:12px;cursor:pointer;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:all .18s ease}.file-chip[data-v-2bc076bf]:hover{background:#eff6ff;border-color:#93c5fd;box-shadow:0 4px 12px #2563eb1f}.state-panel[data-v-2bc076bf]{padding:48px 24px;text-align:center}.state-icon[data-v-2bc076bf]{font-size:28px;margin-bottom:10px;opacity:.7}.state-text[data-v-2bc076bf]{font-size:15px;font-weight:600;color:#374151}.state-sub[data-v-2bc076bf]{margin-top:6px;font-size:13px;color:#9ca3af}.btn[data-v-2bc076bf]{padding:8px 14px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;font-size:13px;transition:all .18s ease}.btn[data-v-2bc076bf]:hover:not(:disabled){border-color:#3b82f6;color:#1d4ed8;box-shadow:0 6px 18px #0f172a14}.btn[data-v-2bc076bf]:disabled{opacity:.55;cursor:not-allowed}.btn.primary[data-v-2bc076bf]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600;box-shadow:0 10px 25px #2563eb47}.btn.primary[data-v-2bc076bf]:hover:not(:disabled){color:#fff;box-shadow:0 12px 28px #2563eb57}.pagination[data-v-2bc076bf]{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid #e5e7eb;background:#fafbfc}.pagination-gap[data-v-2bc076bf]{flex:1}.pagination-info[data-v-2bc076bf]{color:#6b7280;font-size:13px;min-width:52px;text-align:center}.page-size-select[data-v-2bc076bf]{padding:6px 10px;font-size:13px;border-radius:999px;border:1px solid #d1d5db;background:#fff}.page[data-v-1aab4398]{padding:24px 0 28px;background:#f5f7fb}.card[data-v-1aab4398]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 18px 40px #0f172a0f}.toolbar[data-v-1aab4398]{padding:16px 18px;margin-bottom:14px}.filter-grid[data-v-1aab4398]{display:grid;grid-template-columns:minmax(200px,1.2fr) 140px minmax(180px,1fr) auto;gap:12px;align-items:end}@media(max-width:900px){.filter-grid[data-v-1aab4398]{grid-template-columns:1fr 1fr}.actions-field[data-v-1aab4398]{grid-column:1 / -1}}.field[data-v-1aab4398]{display:grid;gap:6px;min-width:0}.label[data-v-1aab4398]{font-size:12px;color:#6b7280}.label-hidden[data-v-1aab4398]{visibility:hidden}.input[data-v-1aab4398]{width:100%;box-sizing:border-box;padding:9px 12px;border:1px solid #d1d5db;border-radius:12px;font-size:13px}.textarea[data-v-1aab4398]{min-height:72px;resize:vertical}.actions[data-v-1aab4398]{display:flex;gap:8px;justify-content:flex-end}.table-card[data-v-1aab4398]{overflow:hidden}.table-wrap[data-v-1aab4398]{overflow:auto}.table[data-v-1aab4398]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-1aab4398],.table td[data-v-1aab4398]{padding:12px 14px;border-bottom:1px solid #eef2f7;text-align:left;vertical-align:middle}.table th[data-v-1aab4398]{background:#f8fafc;color:#64748b;font-size:12px;font-weight:600}.table.inner th[data-v-1aab4398],.table.inner td[data-v-1aab4398]{padding:8px 10px}.strong[data-v-1aab4398]{font-weight:600;color:#111827}.muted[data-v-1aab4398]{color:#6b7280}.time-col[data-v-1aab4398]{font-size:12px;line-height:1.5}.phase-hint[data-v-1aab4398]{font-size:11px;color:#9ca3af;margin-top:4px}.status-badge[data-v-1aab4398]{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.st-draft[data-v-1aab4398]{background:#f3f4f6;color:#4b5563}.st-published[data-v-1aab4398]{background:#eff6ff;color:#1d4ed8}.st-closed[data-v-1aab4398]{background:#fef3c7;color:#b45309}.st-cancelled[data-v-1aab4398]{background:#fef2f2;color:#b91c1c}.ops[data-v-1aab4398]{white-space:nowrap;display:flex;flex-wrap:wrap;gap:6px}.amount[data-v-1aab4398]{color:#0f766e;font-weight:600}.pagination[data-v-1aab4398]{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:12px 16px;border-top:1px solid #e5e7eb;background:#fafbfc}.gap[data-v-1aab4398]{flex:1}.pagination-info[data-v-1aab4398]{color:#6b7280;font-size:13px}.state-panel[data-v-1aab4398]{padding:40px;text-align:center;color:#6b7280}.btn[data-v-1aab4398]{padding:8px 14px;border-radius:999px;border:1px solid #d1d5db;background:#fff;cursor:pointer;font-size:13px}.btn.primary[data-v-1aab4398]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600}.btn.sm[data-v-1aab4398]{padding:5px 10px;font-size:12px;border-radius:10px}.btn.danger[data-v-1aab4398]{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.modal-mask[data-v-1aab4398]{position:fixed;inset:0;background:#0f172a59;display:grid;place-items:center;z-index:80;padding:16px}.modal[data-v-1aab4398]{width:min(520px,100%);max-height:90vh;background:#fff;border-radius:16px;overflow:hidden;display:flex;flex-direction:column}.modal.wide[data-v-1aab4398]{width:min(920px,100%)}.modal-head[data-v-1aab4398]{padding:14px 16px;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;gap:10px}.modal-head h3[data-v-1aab4398]{margin:0;font-size:16px}.modal-body[data-v-1aab4398]{padding:16px;overflow:auto;flex:1}.modal-foot[data-v-1aab4398]{padding:12px 16px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:10px}.form-grid[data-v-1aab4398]{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}@media(max-width:640px){.form-grid[data-v-1aab4398]{grid-template-columns:1fr}}.checklist[data-v-1aab4398]{display:grid;gap:8px}.checklist-head[data-v-1aab4398],.checklist-row[data-v-1aab4398]{display:grid;grid-template-columns:1.2fr 1fr .6fr .6fr 1fr 48px;gap:6px;align-items:center}.checklist-head[data-v-1aab4398]{font-size:11px;color:#9ca3af;padding:0 2px}@media(max-width:768px){.checklist-head[data-v-1aab4398]{display:none}.checklist-row[data-v-1aab4398]{grid-template-columns:1fr}}.chips[data-v-1aab4398]{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.chip[data-v-1aab4398]{font-size:12px;background:#f1f5f9;padding:4px 10px;border-radius:8px}.chip b[data-v-1aab4398]{cursor:pointer;color:#dc2626;margin-left:4px}.supplier-pick[data-v-1aab4398]{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;max-height:280px;overflow:auto;margin-top:8px}.pick-item[data-v-1aab4398]{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #e5e7eb;border-radius:10px;font-size:13px;cursor:pointer}.detail-meta[data-v-1aab4398]{display:grid;gap:6px;font-size:13px;margin-bottom:16px;color:#374151}.block[data-v-1aab4398]{margin-bottom:16px}.block-title[data-v-1aab4398]{font-weight:700;font-size:13px;margin-bottom:8px;color:#111827}.file-chip[data-v-1aab4398]{padding:5px 10px;border-radius:10px;border:1px solid #dbeafe;background:#f8fafc;color:#1d4ed8;font-size:12px;cursor:pointer;margin-right:6px}.file-chip.sm[data-v-1aab4398]{padding:3px 8px}.small[data-v-1aab4398]{font-size:12px}.page[data-v-6f9c5eda]{padding:24px 0;background:#f5f7fb}.empty[data-v-6f9c5eda]{padding:24px 4px;color:#6b7280;text-align:center}.card[data-v-6f9c5eda]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 18px 40px #0f172a0f}.toolbar[data-v-6f9c5eda]{padding:14px 16px;margin-bottom:14px;display:grid;gap:12px}.row[data-v-6f9c5eda]{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.field[data-v-6f9c5eda]{display:grid;gap:6px;min-width:220px}.field.grow[data-v-6f9c5eda]{flex:1;min-width:260px}.label[data-v-6f9c5eda]{color:#6b7280;font-size:12px}.actions[data-v-6f9c5eda]{display:inline-flex;gap:10px;flex-wrap:wrap}.actions.right[data-v-6f9c5eda]{margin-left:auto}.input[data-v-6f9c5eda]{width:100%;background:#fff;border:1px solid #d1d5db;color:#111827;border-radius:12px;padding:9px 12px;outline:none;font-size:13px;transition:all .18s ease}.input[data-v-6f9c5eda]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f62e}.input.readonly[data-v-6f9c5eda]{background:#f8fafc;color:#334155;border-color:#e2e8f0;-webkit-user-select:text;user-select:text}.select[data-v-6f9c5eda]{background:#fff;border:1px solid #d1d5db;color:#111827;border-radius:12px;padding:9px 12px;outline:none;font-size:13px}.table-wrap[data-v-6f9c5eda]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 18px 40px #0f172a0f;overflow:auto}.table[data-v-6f9c5eda]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-6f9c5eda],.table td[data-v-6f9c5eda]{padding:10px 12px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:middle}.table th[data-v-6f9c5eda]{background:#f3f4f6;color:#4b5563;font-weight:600;white-space:nowrap;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.muted[data-v-6f9c5eda]{color:#6b7280}.cell-remarks[data-v-6f9c5eda]{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ops[data-v-6f9c5eda]{white-space:nowrap}.btn[data-v-6f9c5eda]{padding:8px 10px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;text-decoration:none;font-size:13px;display:inline-block;transition:all .18s ease}.btn[data-v-6f9c5eda]:hover{border-color:#3b82f6;color:#1d4ed8;box-shadow:0 6px 18px #0f172a14}.btn.primary[data-v-6f9c5eda]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600;box-shadow:0 10px 25px #2563eb47}.btn.danger[data-v-6f9c5eda]{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.btn.danger[data-v-6f9c5eda]:hover{border-color:#fca5a5;background:#fee2e2;color:#991b1b}.btn.sm[data-v-6f9c5eda]{padding:6px 8px;border-radius:10px;font-size:12px}.pagination[data-v-6f9c5eda]{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:10px 14px;border-top:1px solid #e5e7eb;background:#fff;border-radius:0 0 18px 18px}.pagination-info[data-v-6f9c5eda]{color:#6b7280;font-size:13px}.page-size-select[data-v-6f9c5eda]{padding:6px 10px;font-size:13px;border-radius:999px;border:1px solid #d1d5db;background:#fff}.small[data-v-6f9c5eda]{font-size:12px}.ops[data-v-6f9c5eda]{white-space:nowrap;display:inline-flex;gap:8px}.modal-mask[data-v-6f9c5eda]{position:fixed;inset:0;background:#0f172a59;display:grid;place-items:center;z-index:80}.modal[data-v-6f9c5eda]{width:min(560px,calc(100vw - 24px));background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 25px 60px #0f172a40;overflow:hidden}.modal-head[data-v-6f9c5eda]{padding:12px 14px;border-bottom:1px solid #e5e7eb}.modal-head h3[data-v-6f9c5eda]{margin:0;font-size:16px;color:#111827}.modal-body[data-v-6f9c5eda]{padding:14px;display:grid;gap:10px}.textarea[data-v-6f9c5eda]{min-height:88px;resize:vertical}.modal-foot[data-v-6f9c5eda]{padding:12px 14px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:10px}.page[data-v-215cbd79]{padding:22px 0 26px;background:radial-gradient(1200px 600px at 20% -20%,rgba(37,99,235,.1),transparent 60%),radial-gradient(900px 520px at 90% 10%,rgba(0,212,170,.1),transparent 55%),#f5f7fb}.empty[data-v-215cbd79]{padding:24px 4px;color:#6b7280;text-align:center}.card[data-v-215cbd79]{background:#ffffffdb;border:1px solid rgba(229,231,235,.9);border-radius:18px;box-shadow:0 18px 44px #0f172a14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.toolbar[data-v-215cbd79]{padding:12px 14px;margin-bottom:12px;display:grid;gap:10px}.row[data-v-215cbd79]{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.field[data-v-215cbd79]{display:grid;gap:6px;min-width:210px}.label[data-v-215cbd79]{color:#6b7280;font-size:12px}.toolbar-filters[data-v-215cbd79]{position:relative;z-index:30;padding:10px 12px;margin-bottom:10px;border:1px solid rgba(226,232,240,.95);background:linear-gradient(180deg,#fffffff7,#f8fafceb)}.toolbar-filters__grid[data-v-215cbd79]{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:flex-end}.tf-cell[data-v-215cbd79]{display:flex;flex-direction:column;gap:4px;min-width:0}.tf-status[data-v-215cbd79]{width:100px;flex:0 0 auto}.tf-page[data-v-215cbd79]{width:76px;flex:0 0 auto}.tf-search[data-v-215cbd79]{flex:1 1 220px;min-width:min(100%,200px);max-width:100%}.tf-lbl[data-v-215cbd79]{font-size:11px;font-weight:650;color:#64748b;letter-spacing:.02em;line-height:1.2}.tf-search-stack[data-v-215cbd79]{display:flex;flex-direction:column;gap:6px;min-width:0}.tf-actions[data-v-215cbd79]{flex:0 1 auto;margin-left:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px;justify-content:flex-end}@media(max-width:640px){.tf-actions[data-v-215cbd79]{margin-left:0;flex:1 1 100%;justify-content:flex-start}}.input--toolbar[data-v-215cbd79]{padding:6px 10px;font-size:12px;border-radius:10px}.btn--toolbar[data-v-215cbd79]{padding:6px 12px;font-size:12px;border-radius:10px;box-shadow:0 6px 16px #0f172a14;white-space:nowrap}.toolbar-filters[data-v-215cbd79] .ssc-meta{display:none}.toolbar-filters[data-v-215cbd79] .ssc-input{padding:6px 10px;font-size:12px;border-radius:10px}.toolbar-filters[data-v-215cbd79] .ssc-clear{padding:4px 8px;font-size:11px;border-radius:8px}.toolbar-filters[data-v-215cbd79] .ssc-row{gap:6px}.input[data-v-215cbd79]{width:100%;background:#ffffffeb;border:1px solid rgba(203,213,225,.95);color:#0f172a;border-radius:12px;padding:9px 12px;outline:none;font-size:13px;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.input[data-v-215cbd79]:focus{border-color:#2563eb8c;box-shadow:0 0 0 4px #2563eb24;background:#fff}.table-wrap[data-v-215cbd79]{background:#ffffffe6;border:1px solid rgba(229,231,235,.9);border-radius:18px;box-shadow:0 18px 44px #0f172a14;overflow:auto}.table[data-v-215cbd79]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-215cbd79],.table td[data-v-215cbd79]{padding:10px 12px;border-bottom:1px solid rgba(226,232,240,.9);text-align:left;vertical-align:middle}.table-compact th[data-v-215cbd79],.table-compact td[data-v-215cbd79]{padding:8px 10px;font-size:12px}.table th[data-v-215cbd79]{position:sticky;top:0;z-index:1;background:linear-gradient(180deg,#f8fafcfa,#f1f5f9fa);color:#475569;font-weight:700;white-space:nowrap;font-size:12px;letter-spacing:.03em}.table tbody tr[data-v-215cbd79]:hover{background:#00d4aa0f}.muted[data-v-215cbd79]{color:#64748b}.pagination[data-v-215cbd79]{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:12px}.pagination-info[data-v-215cbd79]{color:#6b7280;font-size:12px}.btn[data-v-215cbd79]{background:#0f172a;color:#fff;border:1px solid rgba(15,23,42,.12);border-radius:12px;padding:8px 12px;font-size:13px;cursor:pointer;transition:transform .06s ease,box-shadow .16s ease,background .16s ease;box-shadow:0 10px 24px #0f172a1a}.btn[data-v-215cbd79]:hover{box-shadow:0 12px 28px #0f172a24}.btn[data-v-215cbd79]:active{transform:translateY(1px)}.btn[data-v-215cbd79]:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn.primary[data-v-215cbd79]{background:linear-gradient(135deg,#2563eb,#0ea5e9)}.btn.danger[data-v-215cbd79]{background:linear-gradient(135deg,#b91c1c,#ef4444)}.btn.sm[data-v-215cbd79]{padding:6px 10px;border-radius:10px;font-size:12px;box-shadow:0 8px 18px #0f172a1a}.grow[data-v-215cbd79]{flex:1;min-width:280px}.quick-pick[data-v-215cbd79]{min-width:min(560px,92vw)}.actions[data-v-215cbd79]{min-width:auto}.right[data-v-215cbd79]{margin-left:auto}.row-inline[data-v-215cbd79]{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.mt8[data-v-215cbd79]{margin-top:8px}.tf-combo[data-v-215cbd79]{min-width:0}.bill-title[data-v-215cbd79]{padding:10px 12px;border:1px dashed rgba(203,213,225,.9);border-radius:14px;color:#0f172a;background:linear-gradient(180deg,#f8fafcd9,#ffffffd9)}.badge[data-v-215cbd79]{display:inline-flex;align-items:center;justify-content:center;padding:4px 9px;border-radius:999px;font-size:12px;border:1px solid transparent}.badge.unpaid[data-v-215cbd79]{background:#94a3b829;color:#64748b;border-color:#94a3b838}.badge.partial[data-v-215cbd79]{background:#f59e0b24;color:#b45309;border-color:#f59e0b38}.badge.paid[data-v-215cbd79]{background:#22c55e24;color:#16a34a;border-color:#22c55e38}.bar[data-v-215cbd79]{width:140px;height:8px;border-radius:999px;background:#e2e8f0e6;overflow:hidden}.bar-sm[data-v-215cbd79]{width:48px;height:5px}.bar-in[data-v-215cbd79]{height:100%;background:linear-gradient(90deg,#00d4aa,#2563eb);border-radius:999px}.ops[data-v-215cbd79]{white-space:nowrap;display:flex;gap:8px;flex-wrap:wrap}.muted.small[data-v-215cbd79]{font-size:12px}.mono[data-v-215cbd79]{font-variant-numeric:tabular-nums}.modal-mask[data-v-215cbd79]{position:fixed;inset:0;background:radial-gradient(1200px 700px at 20% 0%,#2563eb29,#0f172a73 55%),#0f172a73;display:grid;place-items:center;padding:16px;z-index:60}.modal[data-v-215cbd79]{width:min(920px,96vw);background:#fffffff5;border:1px solid rgba(229,231,235,.95);border-radius:18px;box-shadow:0 22px 70px #0f172a4d;overflow:visible}.modal-title[data-v-215cbd79]{padding:14px 16px;font-weight:900;color:#0f172a;border-bottom:1px solid rgba(226,232,240,.9);background:linear-gradient(180deg,#f8fafcf5,#fffffff5)}.modal-body[data-v-215cbd79]{padding:14px 16px;max-height:min(72vh,620px);overflow-x:hidden;overflow-y:auto}.modal-actions[data-v-215cbd79]{padding:12px 16px;border-top:1px solid rgba(226,232,240,.9);display:flex;justify-content:flex-end;gap:10px;background:linear-gradient(180deg,#fffffff5,#f8fafcf5)}.textarea[data-v-215cbd79]{resize:vertical}.grid2[data-v-215cbd79]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3[data-v-215cbd79]{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.chk-label[data-v-215cbd79]{display:inline-flex;align-items:center;gap:8px;color:#334155;font-size:13px;-webkit-user-select:none;user-select:none}.inv-actions[data-v-215cbd79]{display:flex;gap:10px;align-items:center}.wf-page[data-v-de893b75]{padding:0 0 28px;max-width:1480px;margin:0 auto}.wf-guide[data-v-de893b75]{margin:0 0 14px;border-radius:14px;border:1px solid rgba(226,232,240,.95);background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 2px 14px #0f172a0a;overflow:hidden}.wf-guide>summary[data-v-de893b75]{cursor:pointer;list-style:none;padding:12px 16px;font-size:13px;font-weight:750;color:#334155;-webkit-user-select:none;user-select:none}.wf-guide>summary[data-v-de893b75]::-webkit-details-marker{display:none}.wf-guide>summary[data-v-de893b75]:before{content:"▸";display:inline-block;margin-right:8px;transition:transform .15s ease;color:#64748b;font-size:11px}.wf-guide[open]>summary[data-v-de893b75]:before{transform:rotate(90deg)}.wf-guide-body[data-v-de893b75]{padding:0 16px 14px;border-top:1px solid #eef2f7;font-size:13px;line-height:1.65;color:#475569}.wf-guide-body p[data-v-de893b75]{margin:0 0 10px}.wf-guide-body p[data-v-de893b75]:last-child{margin-bottom:0}.wf-code[data-v-de893b75]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;padding:1px 6px;border-radius:6px;background:#f1f5f9;border:1px solid #e2e8f0;color:#0f172a}.wf-toolbar[data-v-de893b75]{margin-bottom:14px;padding:14px 16px;border-radius:16px;border:1px solid rgba(148,163,184,.35);background:linear-gradient(135deg,#fffffff2,#f8fafcfa);box-shadow:0 4px 24px #0f172a0f}.wf-toolbar-inner[data-v-de893b75]{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 14px}.wf-field-sm[data-v-de893b75]{min-width:120px;max-width:160px}.wf-field-action[data-v-de893b75],.wf-query-btn[data-v-de893b75]{min-width:88px}.wf-layout[data-v-de893b75]{display:grid;gap:16px;grid-template-columns:minmax(280px,360px) minmax(0,1fr);align-items:start}.card[data-v-de893b75]{background:#fff;border:1px solid rgba(226,232,240,.95);border-radius:16px;padding:0;box-shadow:0 8px 32px #0f172a0f;overflow:hidden}.wf-panel-head[data-v-de893b75]{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid #e2e8f0;background:linear-gradient(180deg,#f8fafc,#fff)}.wf-panel-title[data-v-de893b75]{margin:0;font-size:14px;font-weight:800;letter-spacing:-.02em;color:#0f172a}.wf-count[data-v-de893b75]{font-size:11px;font-weight:700;color:#64748b;padding:4px 10px;border-radius:999px;background:#f1f5f9;border:1px solid #e2e8f0}.wf-table-wrap[data-v-de893b75]{padding:0 4px 8px;max-height:min(52vh,560px);overflow:auto}.wf-name-cell[data-v-de893b75]{font-weight:600;color:#0f172a}.wf-mono-cell[data-v-de893b75]{font-size:11px;color:#475569}.wf-col-ver[data-v-de893b75]{width:56px;white-space:nowrap}.wf-col-op[data-v-de893b75]{width:86px;white-space:nowrap;text-align:right}.wf-list .pagination[data-v-de893b75]{padding:10px 14px 14px;margin-top:0;border-top:1px solid #f1f5f9;background:#fafbfc}.wf-editor[data-v-de893b75]{padding:0}.wf-editor>.empty[data-v-de893b75]{padding:48px 20px}.wf-editor-head[data-v-de893b75]{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid #e2e8f0;background:radial-gradient(800px 120px at 0% 0%,rgba(56,189,248,.08),transparent 55%),radial-gradient(600px 100px at 100% 0%,rgba(129,140,248,.1),transparent 50%),linear-gradient(180deg,#fff,#f8fafc)}.wf-editor-title[data-v-de893b75]{margin:0 0 4px;font-size:18px;font-weight:850;letter-spacing:-.03em;color:#0f172a;line-height:1.25}.wf-editor-biz[data-v-de893b75]{margin:0;font-size:12px;color:#64748b}.wf-meta-grid[data-v-de893b75]{padding:16px 18px 4px;display:grid;gap:12px}.wf-meta-grid .grid2[data-v-de893b75],.wf-meta-grid>.field[data-v-de893b75]{margin:0}.wf-editor .validate-banner[data-v-de893b75]{margin:0 18px 12px}.wf-editor .canvas-layout[data-v-de893b75],.wf-editor .panel-block[data-v-de893b75]{margin:0 18px 14px}.wf-editor .ops[data-v-de893b75]{margin:16px 18px 18px;padding-top:14px;border-top:1px solid #f1f5f9}.field[data-v-de893b75]{display:grid;gap:6px;min-width:180px}.label[data-v-de893b75]{color:#6b7280;font-size:12px}.grow[data-v-de893b75]{flex:1}.input[data-v-de893b75]{width:100%;border:1px solid #cbd5e1;background:#fff;border-radius:10px;padding:8px 10px;font-size:13px;color:#0f172a}.input.sm[data-v-de893b75]{padding:6px 8px;font-size:12px}.textarea[data-v-de893b75]{resize:vertical}.table[data-v-de893b75]{width:100%;border-collapse:collapse;font-size:12px}.table th[data-v-de893b75],.table td[data-v-de893b75]{text-align:left;border-bottom:1px solid #eef2f7;padding:10px 12px}.table thead th[data-v-de893b75]{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-weight:800;background:#fafbfc;position:sticky;top:0;z-index:1;box-shadow:0 1px #eef2f7}.table tbody tr[data-v-de893b75]{cursor:pointer;transition:background .12s ease}.table tbody tr[data-v-de893b75]:hover{background:#f8fafcf2}.table tbody tr.active[data-v-de893b75]{background:linear-gradient(90deg,#2563eb1a,#2563eb0a);box-shadow:inset 3px 0 #2563eb}.pagination[data-v-de893b75]{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:10px}.empty[data-v-de893b75]{color:#64748b;text-align:center;padding:16px}.btn[data-v-de893b75]{border:1px solid #cbd5e1;background:#f8fafc;color:#0f172a;border-radius:10px;padding:8px 12px;cursor:pointer;font-size:13px;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.btn[data-v-de893b75]:not(:disabled):hover{border-color:#2563eb59;box-shadow:0 2px 8px #2563eb14}.btn[data-v-de893b75]:disabled{opacity:.55;cursor:not-allowed}.btn.sm[data-v-de893b75]{padding:5px 10px;font-size:12px;border-radius:8px}.btn.primary[data-v-de893b75]{background:#2563eb;border-color:#2563eb;color:#fff}.btn.danger[data-v-de893b75]{background:#dc2626;border-color:#dc2626;color:#fff}.mono[data-v-de893b75]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.pill[data-v-de893b75]{display:inline-flex;align-items:center;border:1px solid #cbd5e1;background:#f8fafc;border-radius:999px;font-size:11px;padding:2px 8px}.pill.sm[data-v-de893b75]{font-size:10px;padding:1px 6px}.pill--draft[data-v-de893b75]{border-color:#e2e8f0;background:#f8fafc;color:#475569}.pill--ok[data-v-de893b75]{border-color:#10b98173;background:#10b9811f;color:#047857}.pill--off[data-v-de893b75]{border-color:#f8717173;background:#f871711a;color:#b91c1c}.grid2[data-v-de893b75]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3[data-v-de893b75]{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.ops[data-v-de893b75]{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.muted[data-v-de893b75]{color:#64748b}.small[data-v-de893b75]{font-size:12px}.strong[data-v-de893b75]{font-weight:650;color:#0f172a}.tabs[data-v-de893b75]{display:flex;flex-wrap:wrap;gap:4px;margin:0}.wf-tabs[data-v-de893b75]{margin:0 18px 14px;padding:5px;border-radius:14px;border:1px solid #e2e8f0;background:#f1f5f9}.tab[data-v-de893b75]{border:1px solid transparent;background:transparent;border-radius:10px;padding:8px 14px;font-size:12px;cursor:pointer;color:#64748b;font-weight:600;transition:color .15s ease,background .15s ease,box-shadow .15s ease}.tab[data-v-de893b75]:hover{color:#0f172a;background:#ffffffa6}.tab.on[data-v-de893b75]{border-color:#2563eb33;background:#fff;color:#1d4ed8;font-weight:750;box-shadow:0 2px 8px #2563eb1f}.validate-banner[data-v-de893b75]{border:1px solid #fcd34d;background:#fffbeb;border-radius:12px;padding:10px 12px;margin-bottom:10px}.validate-title[data-v-de893b75]{font-weight:800;font-size:12px;color:#92400e;margin-bottom:6px}.validate-list[data-v-de893b75]{margin:0;padding-left:18px;font-size:12px;color:#78350f}.canvas-layout[data-v-de893b75]{display:grid;grid-template-columns:168px minmax(0,1fr) 272px;gap:12px;min-height:440px}.palette[data-v-de893b75]{border:1px solid #e2e8f0;border-radius:14px;padding:12px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:inset 0 1px #fffc}.palette-title[data-v-de893b75]{font-size:12px;font-weight:800;color:#334155;margin-bottom:8px}.palette-btn[data-v-de893b75]{display:flex;align-items:flex-start;gap:8px;width:100%;margin-bottom:8px;padding:8px 10px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;color:#334155;cursor:pointer;font-size:12px;text-align:left;appearance:none;-webkit-appearance:none;color-scheme:light}.palette-btn-text[data-v-de893b75]{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.palette-btn-label[data-v-de893b75]{font-size:12px;font-weight:800;color:#0f172a;line-height:1.25}.palette-btn-desc[data-v-de893b75]{font-size:10px;font-weight:500;color:#64748b;line-height:1.35}.palette-btn[data-v-de893b75]:not(:disabled):hover{border-color:#2563eb59;background:#f8fafc}.palette-btn:not(:disabled):hover .palette-btn-label[data-v-de893b75]{color:#2563eb}.palette-btn[data-v-de893b75]:disabled{opacity:.5;cursor:not-allowed}.dot[data-v-de893b75]{width:8px;height:8px;border-radius:99px;flex-shrink:0}.hint[data-v-de893b75]{font-size:11px;color:#64748b;line-height:1.45;margin:0 0 10px}.hint .kbd-hint[data-v-de893b75]{display:inline-block;padding:0 5px;border:1px solid #cbd5e1;border-radius:4px;font-size:10px;font-family:ui-monospace,monospace;background:#fff;color:#475569}.flow-canvas[data-v-de893b75]{position:relative;min-height:420px;min-width:320px;border:1px solid #e2e8f0;border-radius:14px;background-color:#f8fafc;background-image:radial-gradient(circle at 1px 1px,rgba(148,163,184,.35) 1px,transparent 0);background-size:20px 20px;background-position:-1px -1px;overflow:auto;box-shadow:inset 0 0 0 1px #fff9}.flow-svg[data-v-de893b75]{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.edge-label[data-v-de893b75]{font-size:10px;fill:#64748b;font-weight:700}.flow-node[data-v-de893b75]{position:absolute;width:168px;min-height:52px;border-radius:12px;border:2px solid var(--accent, #64748b);background:#fff;box-shadow:0 8px 20px #0f172a14;cursor:grab;z-index:2}.flow-node.active[data-v-de893b75]{box-shadow:0 0 0 3px #2563eb40}.flow-node.connect[data-v-de893b75]{box-shadow:0 0 0 3px #eab30873}.flow-node-head[data-v-de893b75]{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;background:#0f172a0a;border-radius:10px 10px 0 0}.flow-node-type[data-v-de893b75]{font-size:11px;font-weight:800;color:var(--accent, #64748b)}.flow-node-body[data-v-de893b75]{padding:8px 10px;font-size:12px;font-weight:600;color:#0f172a}.flow-node-title[data-v-de893b75]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-node-sub[data-v-de893b75]{margin-top:4px;font-size:11px;font-weight:650;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-node-foot[data-v-de893b75]{padding:0 8px 8px}.icon-btn[data-v-de893b75]{border:none;background:transparent;cursor:pointer;font-size:16px;line-height:1;color:#64748b;padding:0 4px}.link-mini[data-v-de893b75]{font-size:11px;border:1px solid #cbd5e1;background:#fff;border-radius:8px;padding:4px 8px;cursor:pointer}.props-panel[data-v-de893b75]{border:1px solid #e2e8f0;border-radius:14px;padding:12px;background:linear-gradient(180deg,#fff,#fafbfc);max-height:520px;overflow:auto;box-shadow:0 4px 18px #0f172a0d}.branch-btns[data-v-de893b75]{display:flex;flex-direction:column;gap:6px;margin-top:8px}.edge-row[data-v-de893b75]{display:flex;align-items:center;gap:6px;font-size:11px;padding:4px 0;border-bottom:1px solid #f1f5f9}.edge-desc[data-v-de893b75]{flex:1;overflow:hidden;text-overflow:ellipsis}.panel-block[data-v-de893b75]{margin-top:4px}.row-head[data-v-de893b75]{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.table-wrap-inner[data-v-de893b75]{overflow:auto;border:1px solid #e2e8f0;border-radius:12px}.inner-table[data-v-de893b75]{width:100%;border-collapse:collapse;font-size:12px}.inner-table th[data-v-de893b75],.inner-table td[data-v-de893b75]{padding:8px;border-bottom:1px solid #f1f5f9;text-align:left}.inner-table th[data-v-de893b75]{background:#f8fafc;color:#64748b;font-weight:700}.cen[data-v-de893b75]{text-align:center}.rule-card[data-v-de893b75]{border:1px solid #e2e8f0;border-radius:14px;padding:14px;margin-bottom:12px;background:#fff;box-shadow:0 2px 12px #0f172a0a}.rule-head[data-v-de893b75]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:700;font-size:13px}.rule-actions[data-v-de893b75]{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.action-row[data-v-de893b75]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.chk[data-v-de893b75]{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#475569}@media(max-width:1280px){.canvas-layout[data-v-de893b75]{grid-template-columns:1fr}.props-panel[data-v-de893b75]{max-height:none}}@media(max-width:1180px){.wf-layout[data-v-de893b75],.grid3[data-v-de893b75]{grid-template-columns:1fr}.wf-table-wrap[data-v-de893b75]{max-height:none}}.shell.dark{border-color:#94a3b82e;background:linear-gradient(135deg,#1e293beb,#0f172af5);box-shadow:0 8px 28px #00000059}.shell.dark{border-bottom-color:#94a3b824;background:linear-gradient(180deg,#1e293b8c,#0f172a59)}.shell.dark{background:#0f172a8c;border-color:#94a3b838;color:#f8fafceb}.shell.dark{background:#1e293bd9;border-color:#94a3b838;color:#f8fafce0}.shell.dark{background:#0f172ae6;color:#94a3b8e6;box-shadow:0 1px #94a3b81f}.shell.dark{background:#38bdf80f}.shell.dark{background:linear-gradient(90deg,#38bdf82e,#38bdf80f);box-shadow:inset 3px 0 #38bdf8}.shell.dark{background:#0f172a8c;border-color:#94a3b82e}.shell.dark{color:#94a3b8f2}.shell.dark{color:#f8fafceb;background:#1e293bbf}.shell.dark{background:#0f172ae6;border-color:#38bdf859;color:#5eead4;box-shadow:0 2px 12px #00000040}.shell.dark{background:linear-gradient(180deg,#1e293b8c,#0f172a73);border-color:#94a3b829}.shell.dark{background-color:#0f172a73;background-image:radial-gradient(circle at 1px 1px,rgba(148,163,184,.22) 1px,transparent 0);border-color:#94a3b82e}.shell.dark{background:#0f172ae0}.shell.dark{border-top-color:#94a3b81f}.shell.dark{background:#0f172a8c;border-color:#94a3b829}.shell.dark{border-bottom-color:#94a3b81a}.shell.dark{border-color:#facc1559;background:#42200673}.shell.dark{color:#fde68a}.shell.dark{color:#fcd34d}.shell.dark{border-color:#94a3b82e;background:linear-gradient(180deg,#1e293ba6,#0f172a80);box-shadow:0 8px 24px #00000040}.shell.dark{border-top-color:#94a3b824;color:#cbd5e1eb}.shell.dark{background:#0f172aa6;border-color:#94a3b838;color:#e2e8f0}.shell.dark{background:#0f172a8c;border-color:#94a3b833;color:#e2e8f0d9}.shell.dark{background:#0f172a66;border-top-color:#94a3b81f}.shell.dark{background:#0f172aa6;border-color:#94a3b82e;color:#f8fafce0;color-scheme:dark}.shell.dark{color:#f8fafcf0}.shell.dark{color:#94a3b8eb}.shell.dark{border-color:#38bdf859;background:#1e293bbf}.shell.light{background:#fff;border-color:#e2e8f0;color:#334155;color-scheme:light}.shell.light{color:#0f172a}.shell.light{color:#64748b}.page[data-v-a495e629]{padding:0 0 28px;max-width:1480px;margin:0 auto}.toolbar[data-v-a495e629]{margin:12px 0 14px;padding:14px 16px;border-radius:16px;border:1px solid rgba(148,163,184,.35);background:linear-gradient(135deg,#fffffff2,#f8fafcfa);box-shadow:0 4px 24px #0f172a0f}.toolbar-inner[data-v-a495e629]{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 14px}.field[data-v-a495e629]{display:grid;gap:6px;min-width:180px}.field.sm[data-v-a495e629]{min-width:120px;max-width:160px}.field.act[data-v-a495e629]{min-width:88px}.grow[data-v-a495e629]{flex:1}.label[data-v-a495e629]{color:#6b7280;font-size:12px}.input[data-v-a495e629]{width:100%;border:1px solid #cbd5e1;background:#fff;border-radius:10px;padding:8px 10px;font-size:13px;color:#0f172a}.btn[data-v-a495e629]{border:1px solid #cbd5e1;background:#f8fafc;color:#0f172a;border-radius:10px;padding:8px 12px;cursor:pointer;font-size:13px}.btn[data-v-a495e629]:disabled{opacity:.55;cursor:not-allowed}.btn.primary[data-v-a495e629]{background:#2563eb;border-color:#2563eb;color:#fff}.btn.danger[data-v-a495e629]{background:#dc2626;border-color:#dc2626;color:#fff}.btn.sm[data-v-a495e629]{padding:5px 10px;font-size:12px;border-radius:8px}.card[data-v-a495e629]{background:#fff;border:1px solid rgba(226,232,240,.95);border-radius:16px;padding:0;box-shadow:0 8px 32px #0f172a0f;overflow:hidden}.card-head[data-v-a495e629]{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid #e2e8f0;background:linear-gradient(180deg,#f8fafc,#fff)}.title h2[data-v-a495e629]{margin:0;font-size:14px;font-weight:850;color:#0f172a}.title p[data-v-a495e629]{margin:4px 0 0;font-size:12px}.sp[data-v-a495e629]{flex:1}.muted[data-v-a495e629]{color:#64748b}.empty[data-v-a495e629]{color:#64748b;text-align:center;padding:16px}.table-wrap[data-v-a495e629]{padding:0 4px 8px;overflow:auto}.table[data-v-a495e629]{width:100%;border-collapse:collapse;font-size:12px}.table th[data-v-a495e629],.table td[data-v-a495e629]{text-align:left;border-bottom:1px solid #eef2f7;padding:10px 12px}.table thead th[data-v-a495e629]{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-weight:800;background:#fafbfc;position:sticky;top:0;z-index:1}.name[data-v-a495e629]{font-weight:650;color:#0f172a}.mono[data-v-a495e629]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.col-ver[data-v-a495e629]{width:56px;white-space:nowrap}.col-op[data-v-a495e629]{width:160px;white-space:nowrap;text-align:right}.pill[data-v-a495e629]{display:inline-flex;align-items:center;border:1px solid #cbd5e1;background:#f8fafc;border-radius:999px;font-size:11px;padding:2px 8px}.pill--draft[data-v-a495e629]{border-color:#e2e8f0;background:#f8fafc;color:#475569}.pill--ok[data-v-a495e629]{border-color:#10b98173;background:#10b9811f;color:#047857}.pill--off[data-v-a495e629]{border-color:#f8717173;background:#f871711a;color:#b91c1c}.pager[data-v-a495e629]{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:12px 14px 14px;border-top:1px solid #f1f5f9;background:#fafbfc}::global(.shell.dark) .toolbar[data-v-a495e629]{border-color:#94a3b82e;background:linear-gradient(135deg,#1e293beb,#0f172af5);box-shadow:0 8px 28px #00000059}::global(.shell.dark) .card[data-v-a495e629]{background:#0f172ab8;border-color:#94a3b829;box-shadow:0 12px 40px #00000059}::global(.shell.dark) .card-head[data-v-a495e629]{border-bottom-color:#94a3b824;background:linear-gradient(180deg,#1e293b8c,#0f172a59)}::global(.shell.dark) .title h2[data-v-a495e629],::global(.shell.dark) .name[data-v-a495e629]{color:#f8fafcf0}::global(.shell.dark) .muted[data-v-a495e629],::global(.shell.dark) .empty[data-v-a495e629]{color:#94a3b8e0}::global(.shell.dark) .input[data-v-a495e629]{background:#0f172a8c;border-color:#94a3b838;color:#f8fafceb}::global(.shell.dark) .btn[data-v-a495e629]:not(.primary):not(.danger){background:#1e293bd9;border-color:#94a3b838;color:#f8fafce0}::global(.shell.dark) .table thead th[data-v-a495e629]{background:#0f172ae6;color:#94a3b8e6;box-shadow:0 1px #94a3b81f}::global(.shell.dark) .table th[data-v-a495e629],::global(.shell.dark) .table td[data-v-a495e629]{border-bottom-color:#94a3b81f}::global(.shell.dark) .pager[data-v-a495e629]{background:#0f172a66;border-top-color:#94a3b81f}.page[data-v-4d999db1]{padding:24px 0;background:#f5f7fb}.empty[data-v-4d999db1]{padding:24px 4px;color:#6b7280;text-align:center}.card[data-v-4d999db1]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 18px 40px #0f172a0f}.toolbar[data-v-4d999db1]{padding:14px 16px;margin-bottom:14px;display:grid;gap:12px}.row[data-v-4d999db1]{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.field[data-v-4d999db1]{display:grid;gap:6px;min-width:220px}.label[data-v-4d999db1]{color:#6b7280;font-size:12px}.input[data-v-4d999db1]{width:100%;background:#fff;border:1px solid #d1d5db;color:#111827;border-radius:12px;padding:9px 12px;outline:none;font-size:13px}.textarea[data-v-4d999db1]{resize:vertical}.grow[data-v-4d999db1]{flex:1;min-width:280px}.actions[data-v-4d999db1]{min-width:auto}.table-wrap[data-v-4d999db1]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 18px 40px #0f172a0f;overflow:auto}.table[data-v-4d999db1]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-4d999db1],.table td[data-v-4d999db1]{padding:10px 12px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:middle}.table th[data-v-4d999db1]{background:#f3f4f6;color:#4b5563;font-weight:600;white-space:nowrap;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.muted[data-v-4d999db1]{color:#6b7280}.strong[data-v-4d999db1]{color:#111827;font-weight:650}.cell-invoice[data-v-4d999db1]{max-width:320px;color:#6b7280}.invoice-box[data-v-4d999db1]{border:1px solid #e5e7eb;background:#f9fafb;border-radius:12px;padding:10px 10px 8px}.invoice-pre[data-v-4d999db1]{margin:0;white-space:pre-wrap;word-break:break-word;color:#111827;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px;line-height:1.35;max-height:calc(1.35em * 3);overflow:hidden}.invoice-box.expanded .invoice-pre[data-v-4d999db1]{max-height:none}.invoice-actions[data-v-4d999db1]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.btn[data-v-4d999db1]{background:#111827;color:#fff;border:0;border-radius:12px;padding:8px 12px;font-size:13px;cursor:pointer}.btn[data-v-4d999db1]:disabled{opacity:.5;cursor:not-allowed}.btn.primary[data-v-4d999db1]{background:#2563eb}.btn.danger[data-v-4d999db1]{background:#b91c1c;margin-left:8px}.btn.sm[data-v-4d999db1]{padding:6px 8px;border-radius:10px;font-size:12px}.pagination[data-v-4d999db1]{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:12px}.pagination-info[data-v-4d999db1]{color:#6b7280;font-size:12px}.link[data-v-4d999db1]{background:transparent;border:0;color:#2563eb;padding:0;cursor:pointer;font-size:12px}.clamp-2[data-v-4d999db1]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.expanded[data-v-4d999db1]{-webkit-line-clamp:unset}.modal-mask[data-v-4d999db1]{position:fixed;inset:0;background:#0f172a73;display:grid;place-items:center;padding:16px;z-index:50}.modal[data-v-4d999db1]{width:min(960px,96vw);background:#fff;border-radius:18px;border:1px solid #e5e7eb;box-shadow:0 18px 60px #0f172a40;overflow:hidden}.modal-title[data-v-4d999db1]{padding:14px 16px;font-weight:700;color:#111827;border-bottom:1px solid #e5e7eb}.modal-body[data-v-4d999db1]{padding:14px 16px}.form-grid[data-v-4d999db1]{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}.modal-actions[data-v-4d999db1]{padding:12px 16px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:10px}.page[data-v-5a591989]{padding:24px;background:#f5f7fb;color:#111827}.summary-strip[data-v-5a591989]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}.summary-card[data-v-5a591989]{padding:16px 18px;border-radius:14px;border:1px solid #e5e7eb;background:#fff}.summary-card.warn[data-v-5a591989]{border-color:#fde68a;background:linear-gradient(135deg,#fffbeb,#fff)}.summary-card.ok[data-v-5a591989]{border-color:#bbf7d0;background:linear-gradient(135deg,#f0fdf4,#fff)}.summary-label[data-v-5a591989]{font-size:13px;color:#6b7280}.summary-value[data-v-5a591989]{margin-top:6px;font-size:22px;font-weight:700}.summary-sub[data-v-5a591989]{margin-top:4px;font-size:14px;color:#374151}.card[data-v-5a591989]{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:16px 18px}.card-head[data-v-5a591989]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.card-head h2[data-v-5a591989]{margin:0;font-size:16px}.filters[data-v-5a591989]{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.muted[data-v-5a591989]{color:#9ca3af;font-size:13px}.empty[data-v-5a591989]{padding:24px 4px;color:#9ca3af}.table-wrap[data-v-5a591989]{overflow:auto}.table[data-v-5a591989]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-5a591989],.table td[data-v-5a591989]{padding:10px;border-bottom:1px solid #e5e7eb;text-align:left;white-space:nowrap}.table th[data-v-5a591989]{background:#f9fafb;color:#6b7280;font-weight:600}.mono[data-v-5a591989]{font-family:ui-monospace,monospace}.accent[data-v-5a591989]{color:#2563eb;font-weight:600}.tag[data-v-5a591989]{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px}.tag-warn[data-v-5a591989]{background:#fef3c7;color:#92400e}.tag-ok[data-v-5a591989]{background:#dcfce7;color:#166534}.actions[data-v-5a591989]{display:flex;gap:6px}.btn[data-v-5a591989]{border:1px solid #d1d5db;background:#fff;border-radius:8px;padding:8px 12px;cursor:pointer;font-size:13px}.btn-sm[data-v-5a591989]{padding:5px 10px;font-size:12px}.btn.primary[data-v-5a591989]{background:#0d9488;border-color:#0d9488;color:#fff}.btn[data-v-5a591989]:disabled{opacity:.5;cursor:not-allowed}.select[data-v-5a591989],.input[data-v-5a591989]{border:1px solid #d1d5db;border-radius:8px;padding:8px 10px;font-size:13px}.select.small[data-v-5a591989],.input.small-date[data-v-5a591989]{padding:6px 8px}.pager[data-v-5a591989]{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px}.modal-mask[data-v-5a591989]{position:fixed;inset:0;background:#0f172a52;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-5a591989]{width:420px;max-width:calc(100vw - 32px);background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 20px 50px #0f172a33}.modal-head[data-v-5a591989]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #e5e7eb}.modal-head h3[data-v-5a591989]{margin:0;font-size:16px}.modal-close[data-v-5a591989]{border:none;background:none;font-size:22px;cursor:pointer;color:#9ca3af}.modal-body[data-v-5a591989]{padding:16px}.modal-meta[data-v-5a591989]{margin:0 0 14px;font-size:13px}.form-row[data-v-5a591989]{margin-bottom:12px}.label[data-v-5a591989]{display:block;margin-bottom:6px;font-size:13px;color:#4b5563}.modal-foot[data-v-5a591989]{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid #e5e7eb;background:#f9fafb}.page[data-v-45f93c6a]{padding:8px 0 28px}.hidden-file[data-v-45f93c6a]{display:none}.filter-bar[data-v-45f93c6a]{margin:0 0 14px;padding:12px 14px;border-radius:14px;background:#fff;border:1px solid #e2e8f0}.filter-row[data-v-45f93c6a]{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.filter-select[data-v-45f93c6a],.filter-mini[data-v-45f93c6a],.input[data-v-45f93c6a]{padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px}.filter-field[data-v-45f93c6a]{display:flex;align-items:center;gap:6px}.filter-label[data-v-45f93c6a]{font-size:12px;color:#64748b;white-space:nowrap}.filter-actions[data-v-45f93c6a]{display:flex;gap:8px;margin-left:auto}.btn-filter[data-v-45f93c6a]{padding:7px 12px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:13px;cursor:pointer}.btn-filter.primary[data-v-45f93c6a]{background:#0d9488;color:#fff;border-color:#0d9488}.btn-filter[data-v-45f93c6a]:disabled{opacity:.5;cursor:not-allowed}.btn[data-v-45f93c6a]{padding:8px 14px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:13px;cursor:pointer}.btn.primary[data-v-45f93c6a]{background:#0d9488;color:#fff;border-color:#0d9488}.btn.danger[data-v-45f93c6a]{color:#dc2626;border-color:#fca5a5}.btn.small[data-v-45f93c6a]{padding:6px 10px;font-size:12px}.btn[data-v-45f93c6a]:disabled{opacity:.6;cursor:not-allowed}.sheet-card[data-v-45f93c6a]{background:#fff;border:1px solid #d1d5db;border-radius:12px;overflow:hidden;box-shadow:0 8px 24px #0f172a0f}.sheet-toolbar[data-v-45f93c6a]{padding:10px 12px;border-bottom:1px solid #d1d5db;background:#f8fafc}.sheet-meta[data-v-45f93c6a]{display:flex;gap:10px;align-items:baseline}.sheet-name[data-v-45f93c6a]{font-weight:800;color:#0f172a;font-size:12px;padding:2px 8px;border-radius:6px;border:1px solid #d1d5db;background:#fff}.sheet-count[data-v-45f93c6a],.muted[data-v-45f93c6a]{font-size:12px;color:#64748b}.state-panel[data-v-45f93c6a]{text-align:center;padding:48px 16px;color:#94a3b8}.state-sub[data-v-45f93c6a]{margin-top:6px;font-size:12px}.sheet-scroll[data-v-45f93c6a]{overflow-x:auto}.excel-table[data-v-45f93c6a]{border-collapse:collapse;width:max-content;min-width:100%;font-size:12px}.excel-table th[data-v-45f93c6a],.excel-table td[data-v-45f93c6a]{border:1px solid #e2e8f0;padding:6px 8px;text-align:left;vertical-align:top}.header-row th[data-v-45f93c6a]{background:#eef2ff;color:#1e293b;font-weight:700;white-space:nowrap;position:sticky;top:0}.excel-table tbody tr[data-v-45f93c6a]:nth-child(2n){background:#fafafa}.c-seq[data-v-45f93c6a]{width:44px;text-align:center}.c-prio[data-v-45f93c6a]{width:60px}.c-status[data-v-45f93c6a]{width:64px}.c-name[data-v-45f93c6a]{min-width:130px}.c-sign[data-v-45f93c6a],.c-owner[data-v-45f93c6a],.c-sales[data-v-45f93c6a],.c-product[data-v-45f93c6a],.c-loc[data-v-45f93c6a]{min-width:92px}.c-out[data-v-45f93c6a]{width:74px}.c-time[data-v-45f93c6a]{width:92px;white-space:nowrap}.c-demand[data-v-45f93c6a],.c-confirm[data-v-45f93c6a],.c-outmat[data-v-45f93c6a],.c-progress[data-v-45f93c6a]{min-width:180px;max-width:320px}.wrap[data-v-45f93c6a]{white-space:pre-wrap;word-break:break-word}.c-ops[data-v-45f93c6a]{width:84px;white-space:nowrap;position:sticky;right:0;background:#fff}.st-tag[data-v-45f93c6a]{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700}.st-active[data-v-45f93c6a]{background:#dcfce7;color:#15803d}.st-hold[data-v-45f93c6a]{background:#ffedd5;color:#c2410c}.st-closed[data-v-45f93c6a]{background:#e5e7eb;color:#6b7280}.st-none[data-v-45f93c6a]{background:#f1f5f9;color:#94a3b8}.img-thumb-btn[data-v-45f93c6a]{border:none;background:none;padding:0;cursor:pointer}.img-thumb[data-v-45f93c6a]{width:44px;height:44px;object-fit:cover;border-radius:6px;border:1px solid #e2e8f0}.img-thumb.lg[data-v-45f93c6a]{width:88px;height:88px}.img-empty[data-v-45f93c6a]{color:#cbd5e1}.row-btn[data-v-45f93c6a]{padding:3px 8px;margin-right:4px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;font-size:12px;cursor:pointer}.row-btn.danger[data-v-45f93c6a]{color:#dc2626;border-color:#fca5a5}.pagination[data-v-45f93c6a]{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid #e2e8f0}.pagination .gap[data-v-45f93c6a]{flex:1}.modal-mask[data-v-45f93c6a]{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal[data-v-45f93c6a]{background:#fff;border-radius:14px;width:min(760px,96vw);max-height:90vh;display:flex;flex-direction:column}.modal-head[data-v-45f93c6a]{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #e2e8f0}.modal-head .icon[data-v-45f93c6a]{border:none;background:none;font-size:22px;cursor:pointer;color:#64748b}.modal-body[data-v-45f93c6a]{padding:16px 18px;overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-body .f[data-v-45f93c6a]{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#475569}.modal-body .f.span2[data-v-45f93c6a]{grid-column:1 / -1}.modal-foot[data-v-45f93c6a]{display:flex;align-items:center;gap:8px;padding:12px 18px;border-top:1px solid #e2e8f0}.modal-foot .spacer[data-v-45f93c6a]{flex:1}.img-edit-row[data-v-45f93c6a]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.preview-mask[data-v-45f93c6a]{background:#0f172abf}.preview-box[data-v-45f93c6a]{position:relative}.preview-close[data-v-45f93c6a]{position:absolute;top:-14px;right:-14px;width:32px;height:32px;border-radius:50%;border:none;background:#fff;font-size:20px;cursor:pointer}.preview-img[data-v-45f93c6a]{max-width:88vw;max-height:84vh;border-radius:8px}.page[data-v-aff0e91f]{padding:24px 0 28px;background:#f5f7fb}.card[data-v-aff0e91f]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 18px 40px #0f172a0f}.filter-bar[data-v-aff0e91f]{margin-bottom:12px;padding:10px 12px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 6px 18px #0f172a0a;display:grid;gap:8px}.filter-row[data-v-aff0e91f]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter-select[data-v-aff0e91f]{flex:0 0 128px;height:34px;padding:0 28px 0 10px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5' fill='none' stroke='%2394a3b8' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 10px center;appearance:none;color:#334155;font-size:12px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.filter-select[data-v-aff0e91f]:focus{border-color:#60a5fa;box-shadow:0 0 0 2px #3b82f61f;background-color:#fff}.filter-field[data-v-aff0e91f]{flex:1 1 140px;min-width:0;display:flex;align-items:center;gap:6px;height:34px;padding:0 8px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.filter-field[data-v-aff0e91f]:focus-within{border-color:#60a5fa;box-shadow:0 0 0 2px #3b82f61f;background:#fff}.filter-label[data-v-aff0e91f]{flex-shrink:0;font-size:11px;color:#64748b;font-weight:600;white-space:nowrap}.filter-mini[data-v-aff0e91f]{flex:1;min-width:0;border:none;background:transparent;outline:none;font-size:12px;color:#0f172a;height:100%}.filter-mini.mono[data-v-aff0e91f]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px}.filter-mini[data-v-aff0e91f]::placeholder{color:#94a3b8}.filter-actions[data-v-aff0e91f]{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.btn-filter[data-v-aff0e91f]{height:34px;padding:0 12px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;color:#475569;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn-filter[data-v-aff0e91f]:hover:not(:disabled){border-color:#cbd5e1;background:#f8fafc;color:#1e293b}.btn-filter[data-v-aff0e91f]:disabled{opacity:.5;cursor:not-allowed}.btn-filter.primary[data-v-aff0e91f]{border-color:#0d9488;background:linear-gradient(135deg,#0d9488,#14b8a6);color:#fff;font-weight:600;box-shadow:0 4px 12px #0d948838}.btn-filter.primary[data-v-aff0e91f]:hover:not(:disabled){border-color:#0f766e;background:linear-gradient(135deg,#0f766e,#0d9488);color:#fff;box-shadow:0 6px 16px #0d948847}.btn-filter.icon-only[data-v-aff0e91f]{width:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:#64748b}.btn-filter.icon-only svg[data-v-aff0e91f]{width:16px;height:16px}.filter-tags[data-v-aff0e91f]{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:2px;border-top:1px dashed #eef2f7}.tags-label[data-v-aff0e91f]{font-size:11px;color:#94a3b8;font-weight:600;letter-spacing:.02em;margin-right:2px}.tag[data-v-aff0e91f]{padding:3px 10px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;color:#64748b;font-size:11px;line-height:1.4;cursor:pointer;transition:all .12s ease}.tag[data-v-aff0e91f]:hover:not(:disabled){border-color:#93c5fd;color:#2563eb;background:#f0f9ff}.tag.active[data-v-aff0e91f]{border-color:#2563eb;background:#2563eb;color:#fff;font-weight:600}.tag[data-v-aff0e91f]:disabled{opacity:.55;cursor:not-allowed}@media(max-width:960px){.filter-field[data-v-aff0e91f]{flex:1 1 calc(50% - 4px)}}@media(max-width:720px){.filter-select[data-v-aff0e91f],.filter-field[data-v-aff0e91f]{flex:1 1 100%}.filter-actions[data-v-aff0e91f]{width:100%;justify-content:flex-end}}.field[data-v-aff0e91f]{display:grid;gap:6px;min-width:0}.label[data-v-aff0e91f]{color:#6b7280;font-size:12px;font-weight:500}.input[data-v-aff0e91f],.select[data-v-aff0e91f]{width:100%;box-sizing:border-box;background:#fff;border:1px solid #d1d5db;color:#111827;border-radius:12px;padding:9px 12px;outline:none;font-size:13px;transition:border-color .18s ease,box-shadow .18s ease}.input[data-v-aff0e91f]:focus,.select[data-v-aff0e91f]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f62e}.sheet-card[data-v-aff0e91f]{overflow:hidden;padding:0;scroll-margin-top:72px}.sheet-toolbar[data-v-aff0e91f]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:#f3f4f6;border-bottom:1px solid #d1d5db}.sheet-meta[data-v-aff0e91f]{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}.sheet-name[data-v-aff0e91f]{display:inline-flex;align-items:center;padding:4px 10px;border-radius:6px;background:#fff;border:1px solid #d1d5db;font-size:12px;font-weight:700;color:#047857}.sheet-count[data-v-aff0e91f],.sheet-filter[data-v-aff0e91f]{font-size:12px;color:#6b7280}.sheet-filter[data-v-aff0e91f]{color:#2563eb}.sheet-title-bar[data-v-aff0e91f]{margin:12px 12px 0;padding:10px 12px;background:#4472c4;color:#fff;font-size:18px;font-weight:700;text-align:center;letter-spacing:.04em;border:1px solid #2f5597;border-bottom:none}.sheet-scroll[data-v-aff0e91f]{overflow:auto;max-height:calc(100vh - 360px);min-height:360px;background:#e8e8e8;padding:0 12px 12px}.excel-table[data-v-aff0e91f]{width:100%;border-collapse:collapse;table-layout:fixed;min-width:1320px;background:#fff;font-size:12px;color:#000;box-shadow:0 1px 4px #0000001f;border-top:none}.excel-table th[data-v-aff0e91f],.excel-table td[data-v-aff0e91f]{border:1px solid #b4b4b4;padding:6px 8px;text-align:center;vertical-align:middle;line-height:1.45;word-break:break-word}.header-row th[data-v-aff0e91f]{background:#d9e2f3;color:#000;font-size:12px;font-weight:600;white-space:nowrap;position:sticky;top:0;z-index:2;box-shadow:0 1px #b4b4b4}.excel-table tbody tr[data-v-aff0e91f]:nth-child(2n){background:#fafafa}.excel-table tbody tr[data-v-aff0e91f]:hover{background:#fff2cc}.col-seq[data-v-aff0e91f]{width:52px}.col-cat[data-v-aff0e91f]{width:96px}.col-name[data-v-aff0e91f]{width:88px}.col-image[data-v-aff0e91f]{width:72px}.col-supplier[data-v-aff0e91f]{width:168px}.col-model[data-v-aff0e91f]{width:120px}.col-spec[data-v-aff0e91f]{width:168px}.col-code[data-v-aff0e91f]{width:108px}.col-unit[data-v-aff0e91f]{width:56px}.col-price[data-v-aff0e91f]{width:120px}.col-remark[data-v-aff0e91f]{width:96px}.col-ops[data-v-aff0e91f]{width:56px}.row-edit-btn[data-v-aff0e91f]{padding:3px 8px;border:1px solid #93c5fd;border-radius:6px;background:#eff6ff;color:#2563eb;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .12s ease}.row-edit-btn[data-v-aff0e91f]:hover{background:#2563eb;color:#fff;border-color:#2563eb}.mono[data-v-aff0e91f]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px}.price[data-v-aff0e91f]{font-variant-numeric:tabular-nums;font-weight:600;color:#000}.img-cell[data-v-aff0e91f]{display:flex;justify-content:center;align-items:center}.img-thumb-btn[data-v-aff0e91f]{padding:0;border:1px solid #b4b4b4;background:#fff;border-radius:4px;cursor:zoom-in;line-height:0;overflow:hidden}.img-thumb[data-v-aff0e91f]{width:52px;height:52px;object-fit:cover;display:block}.img-upload-btn[data-v-aff0e91f]{padding:4px 10px;border:1px dashed #94a3b8;border-radius:6px;background:#f8fafc;color:#2563eb;font-size:11px;cursor:pointer}.img-upload-btn[data-v-aff0e91f]:disabled{opacity:.6;cursor:not-allowed}.img-empty[data-v-aff0e91f]{color:#94a3b8}.photo-row[data-v-aff0e91f]{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}.photo-upload[data-v-aff0e91f]{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:96px;min-height:96px;padding:10px;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc;color:#64748b;font-size:12px;cursor:pointer}.photo-upload.sm[data-v-aff0e91f]{min-width:72px;min-height:72px}.photo-upload.disabled[data-v-aff0e91f]{opacity:.65;cursor:not-allowed}.photo-upload-icon[data-v-aff0e91f]{font-size:28px;line-height:1;color:#94a3b8}.photo-preview-wrap[data-v-aff0e91f]{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.photo-preview-btn[data-v-aff0e91f]{padding:0;border:1px solid #dbeafe;border-radius:10px;background:#fff;cursor:zoom-in;line-height:0;overflow:hidden}.photo-preview[data-v-aff0e91f]{width:96px;height:96px;object-fit:cover;display:block}.photo-tip[data-v-aff0e91f]{margin-top:6px}.link-btn[data-v-aff0e91f]{border:none;background:none;color:#dc2626;font-size:12px;cursor:pointer;padding:0}.lightbox-mask[data-v-aff0e91f]{position:fixed;inset:0;z-index:90;background:#0f172ad1;display:flex;align-items:center;justify-content:center;padding:24px}.lightbox[data-v-aff0e91f]{position:relative;max-width:min(920px,96vw);max-height:90vh}.lightbox-close[data-v-aff0e91f]{position:absolute;top:-12px;right:-12px;width:36px;height:36px;border-radius:999px;border:none;background:#fff;color:#334155;font-size:22px;cursor:pointer;box-shadow:0 8px 24px #00000040}.lightbox-img[data-v-aff0e91f]{max-width:min(920px,96vw);max-height:86vh;object-fit:contain;display:block;border-radius:8px;background:#fff;box-shadow:0 20px 60px #00000059}.state-panel[data-v-aff0e91f]{padding:48px 24px;text-align:center}.state-icon[data-v-aff0e91f]{font-size:28px;margin-bottom:10px;opacity:.7}.state-text[data-v-aff0e91f]{font-size:15px;font-weight:600;color:#374151}.state-sub[data-v-aff0e91f]{margin-top:6px;font-size:13px;color:#9ca3af}.pagination[data-v-aff0e91f]{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid #e5e7eb;background:#fafbfc}.pagination-gap[data-v-aff0e91f]{flex:1}.pagination-info[data-v-aff0e91f]{color:#6b7280;font-size:13px;min-width:52px;text-align:center}.muted[data-v-aff0e91f]{color:#6b7280}.small[data-v-aff0e91f]{font-size:12px}.page-size-select[data-v-aff0e91f]{padding:6px 10px;font-size:13px;border-radius:999px;border:1px solid #d1d5db;background:#fff}.btn[data-v-aff0e91f]{padding:8px 14px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;font-size:13px;transition:all .18s ease}.btn[data-v-aff0e91f]:hover:not(:disabled){border-color:#3b82f6;color:#1d4ed8;box-shadow:0 6px 18px #0f172a14}.btn[data-v-aff0e91f]:disabled{opacity:.55;cursor:not-allowed}.btn.primary[data-v-aff0e91f]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600;box-shadow:0 10px 25px #2563eb47}.btn.primary[data-v-aff0e91f]:hover:not(:disabled){color:#fff;box-shadow:0 12px 28px #2563eb57}.hidden-file[data-v-aff0e91f]{display:none}.modal-mask[data-v-aff0e91f]{position:fixed;inset:0;background:#0f172a59;display:flex;align-items:center;justify-content:center;padding:16px;z-index:80}.modal[data-v-aff0e91f]{width:640px;max-width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;background:#fff;border:1px solid #e5e7eb;border-radius:20px;box-shadow:0 26px 70px #0f172a40;color:#111827}.modal-head[data-v-aff0e91f]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid #e5e7eb}.modal-title[data-v-aff0e91f]{color:#0f172a;font-weight:650;font-size:16px}.modal-banner[data-v-aff0e91f]{margin:8px 14px 0;padding:8px 12px;border-radius:12px;border:1px solid #dbeafe;background:#eff6ff;color:#1d4ed8;font-size:13px}.icon[data-v-aff0e91f]{background:transparent;border:none;color:#6b7280;font-size:20px;cursor:pointer}.modal-body[data-v-aff0e91f]{padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:10px;overflow:auto}.modal-body .field[data-v-aff0e91f]{display:grid;gap:6px;min-width:0}.modal-body .field.span-2[data-v-aff0e91f]{grid-column:span 2}.modal-body .textarea[data-v-aff0e91f]{resize:vertical;min-height:64px;font-family:inherit}.modal-foot[data-v-aff0e91f]{display:flex;justify-content:flex-end;gap:10px;padding:12px 14px 14px;border-top:1px solid #e5e7eb}@media(max-width:600px){.modal-body[data-v-aff0e91f]{grid-template-columns:1fr}.modal-body .field.span-2[data-v-aff0e91f]{grid-column:span 1}}.page[data-v-48a91f38]{padding:8px 0 28px}.hidden-file[data-v-48a91f38]{display:none}.list-type-bar[data-v-48a91f38]{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px}.list-type-btn[data-v-48a91f38]{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:160px;padding:10px 14px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;cursor:pointer;text-align:left;transition:border-color .15s,background .15s,box-shadow .15s}.list-type-btn[data-v-48a91f38]:hover:not(:disabled){border-color:#99f6e4;background:#f0fdfa}.list-type-btn.active[data-v-48a91f38]{border-color:#14b8a6;background:#ccfbf1;box-shadow:0 0 0 1px #14b8a6 inset}.list-type-btn[data-v-48a91f38]:disabled{opacity:.6;cursor:not-allowed}.list-type-short[data-v-48a91f38]{font-size:13px;font-weight:800;color:#0f766e}.list-type-btn:not(.active) .list-type-short[data-v-48a91f38]{color:#334155}.list-type-name[data-v-48a91f38]{font-size:12px;color:#64748b;line-height:1.35;max-width:260px}.filter-bar[data-v-48a91f38]{margin:0 0 14px;padding:12px 14px;border-radius:14px;background:#fff;border:1px solid #e2e8f0}.filter-row[data-v-48a91f38]{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.filter-select[data-v-48a91f38],.filter-mini[data-v-48a91f38],.input[data-v-48a91f38]{padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px}.filter-field[data-v-48a91f38]{display:flex;align-items:center;gap:6px}.filter-label[data-v-48a91f38]{font-size:12px;color:#64748b;white-space:nowrap}.filter-actions[data-v-48a91f38]{display:flex;gap:8px;margin-left:auto}.btn-filter[data-v-48a91f38]{padding:7px 12px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:13px;cursor:pointer}.btn-filter.primary[data-v-48a91f38]{background:#0d9488;color:#fff;border-color:#0d9488}.btn-filter[data-v-48a91f38]:disabled{opacity:.5;cursor:not-allowed}.filter-tags[data-v-48a91f38]{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;align-items:center}.tags-label[data-v-48a91f38]{font-size:12px;color:#94a3b8}.tag[data-v-48a91f38]{border:1px solid #e2e8f0;background:#f8fafc;border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer}.tag.active[data-v-48a91f38]{background:#ccfbf1;border-color:#99f6e4;color:#0f766e;font-weight:700}.sheet-card[data-v-48a91f38]{background:#fff;border:1px solid #d1d5db;border-radius:12px;overflow:hidden;box-shadow:0 8px 24px #0f172a0f}.sheet-toolbar[data-v-48a91f38]{padding:10px 12px;border-bottom:1px solid #d1d5db;background:#f8fafc}.sheet-meta[data-v-48a91f38]{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.sheet-name[data-v-48a91f38]{font-weight:800;color:#0f172a;font-size:12px;padding:2px 8px;border-radius:6px;border:1px solid #d1d5db;background:#fff}.sheet-count[data-v-48a91f38],.sheet-filter[data-v-48a91f38],.muted[data-v-48a91f38]{font-size:12px;color:#64748b}.state-panel[data-v-48a91f38]{text-align:center;padding:48px 16px;color:#94a3b8}.state-sub[data-v-48a91f38]{margin-top:6px;font-size:12px}.sheet-title-bar[data-v-48a91f38]{margin:10px 12px 0;padding:8px 12px;text-align:center;font-weight:700;font-size:14px;color:#fff;background:#2f5597;border:1px solid #2f5597;border-bottom:none}.sheet-scroll[data-v-48a91f38]{overflow:auto;max-height:calc(100vh - 340px);min-height:320px;background:#e8e8e8;padding:0 12px 12px}.excel-table[data-v-48a91f38]{width:100%;border-collapse:collapse;table-layout:fixed;min-width:1280px;background:#fff;font-size:12px;color:#000;box-shadow:0 1px 4px #0000001f;border-top:none}.excel-table th[data-v-48a91f38],.excel-table td[data-v-48a91f38]{border:1px solid #b4b4b4;padding:6px 8px;text-align:center;vertical-align:middle;line-height:1.45;word-break:break-word}.header-row th[data-v-48a91f38]{background:#d9e2f3;color:#000;font-size:12px;font-weight:600;white-space:nowrap;position:sticky;top:0;z-index:2;box-shadow:0 1px #b4b4b4}.excel-table tbody tr[data-v-48a91f38]:nth-child(2n){background:#fafafa}.excel-table tbody tr[data-v-48a91f38]:hover{background:#fff2cc}.mono[data-v-48a91f38]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.col-seq[data-v-48a91f38]{width:52px}.col-cat[data-v-48a91f38]{width:96px}.col-code[data-v-48a91f38]{width:110px}.col-name[data-v-48a91f38]{width:140px}.col-brand[data-v-48a91f38]{width:72px}.col-model[data-v-48a91f38]{width:180px}.col-qty[data-v-48a91f38]{width:72px}.col-cycle[data-v-48a91f38],.col-region[data-v-48a91f38]{width:88px}.col-cert[data-v-48a91f38]{width:72px}.col-ops[data-v-48a91f38]{white-space:nowrap;width:96px}.col-img[data-v-48a91f38]{width:76px}.col-remark[data-v-48a91f38]{width:220px;text-align:left!important;max-width:280px;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;line-height:1.4}.img-thumb-btn[data-v-48a91f38]{border:1px solid #b4b4b4;background:#fff;border-radius:4px;padding:2px;cursor:pointer;display:inline-flex}.img-thumb[data-v-48a91f38]{width:48px;height:48px;object-fit:contain;display:block;border-radius:2px}.img-thumb.lg[data-v-48a91f38]{width:96px;height:96px}.img-empty[data-v-48a91f38]{color:#94a3b8}.preview-mask[data-v-48a91f38]{z-index:100}.preview-box[data-v-48a91f38]{position:relative;max-width:min(920px,96vw);max-height:90vh;background:#0f172a;border-radius:12px;padding:12px}.preview-close[data-v-48a91f38]{position:absolute;right:8px;top:4px;color:#fff;z-index:1}.preview-img[data-v-48a91f38]{max-width:100%;max-height:82vh;display:block;margin:0 auto}.row-btn[data-v-48a91f38]{border:1px solid #b4b4b4;background:#fff;border-radius:4px;padding:2px 8px;font-size:12px;cursor:pointer;margin-right:4px}.row-btn.danger[data-v-48a91f38]{color:#b91c1c;border-color:#fecaca}.pagination[data-v-48a91f38]{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid #d1d5db;background:#f8fafc}.gap[data-v-48a91f38]{flex:1}.btn[data-v-48a91f38]{padding:8px 14px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;font-size:13px}.btn.primary[data-v-48a91f38]{background:linear-gradient(135deg,#0d9488,#14b8a6);color:#fff;border:none}.btn.danger[data-v-48a91f38]{color:#b91c1c;border-color:#fecaca}.modal-mask[data-v-48a91f38]{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:80;padding:16px}.modal[data-v-48a91f38]{width:min(640px,100%);background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 24px 64px #0f172a33}.modal-head[data-v-48a91f38]{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid #f1f5f9}.modal-body[data-v-48a91f38]{padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:12px;max-height:70vh;overflow:auto}.f[data-v-48a91f38]{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#64748b}.f.span2[data-v-48a91f38]{grid-column:span 2}.modal-foot[data-v-48a91f38]{display:flex;gap:8px;padding:12px 16px;border-top:1px solid #f1f5f9;align-items:center}.spacer[data-v-48a91f38]{flex:1}.icon[data-v-48a91f38]{border:none;background:none;font-size:22px;cursor:pointer;color:#94a3b8}@media(max-width:760px){.modal-body[data-v-48a91f38]{grid-template-columns:1fr}.f.span2[data-v-48a91f38]{grid-column:span 1}}.page[data-v-bda82521]{padding:24px 0 28px;background:#f5f7fb}.toolbar[data-v-bda82521]{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.search[data-v-bda82521]{flex:1;min-width:200px;padding:10px 14px;border:1px solid #e2e8f0;border-radius:10px;background:#fff}.card[data-v-bda82521]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 12px 32px #0f172a0f;overflow:hidden}.table-wrap[data-v-bda82521]{overflow-x:auto}.sheet[data-v-bda82521]{width:100%;border-collapse:collapse;font-size:13px}.sheet th[data-v-bda82521],.sheet td[data-v-bda82521]{padding:12px 14px;border-bottom:1px solid #f1f5f9;text-align:left}.sheet th[data-v-bda82521]{background:#f8fafc;color:#64748b;font-weight:600}.sheet .num[data-v-bda82521]{text-align:right;font-variant-numeric:tabular-nums}.good[data-v-bda82521]{color:#047857;font-weight:600}.bad[data-v-bda82521]{color:#b91c1c;font-weight:600}.badge[data-v-bda82521]{font-size:12px;padding:2px 8px;border-radius:999px;background:#ecfdf5;color:#047857}.link[data-v-bda82521]{border:none;background:none;color:#0d9488;cursor:pointer;font-weight:600}.empty[data-v-bda82521]{text-align:center;padding:48px;color:#94a3b8}.pagination[data-v-bda82521]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 16px;border-top:1px solid #f1f5f9;font-size:13px;color:#64748b}.pagination-gap[data-v-bda82521]{flex:1;min-width:8px}.pagination-info[data-v-bda82521]{min-width:64px;text-align:center;font-variant-numeric:tabular-nums}.page-size-select[data-v-bda82521]{padding:4px 8px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;font-size:13px}.muted[data-v-bda82521]{color:#94a3b8}.btn[data-v-bda82521]{padding:10px 18px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;font-size:13px}.btn.primary[data-v-bda82521]{background:linear-gradient(135deg,#0d9488,#14b8a6);color:#fff;border:none}.btn.sm[data-v-bda82521]{padding:6px 14px;font-size:12px}.btn[data-v-bda82521]:disabled{opacity:.5;cursor:not-allowed}.modal-mask[data-v-bda82521]{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-bda82521]{width:min(480px,92vw);background:#fff;border-radius:16px;padding:24px;box-shadow:0 24px 48px #00000026}.modal h3[data-v-bda82521]{margin:0 0 8px;font-size:18px}.hint[data-v-bda82521]{font-size:12px;color:#64748b;margin-bottom:16px;line-height:1.5}.field[data-v-bda82521]{display:block;margin-bottom:14px}.field span[data-v-bda82521]{display:block;font-size:12px;color:#64748b;margin-bottom:6px}.field input[data-v-bda82521],.field select[data-v-bda82521]{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px}.modal-actions[data-v-bda82521]{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.combo[data-v-bda82521]{position:relative}.combo-input[data-v-bda82521]{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px}.combo-list[data-v-bda82521]{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);margin:0;padding:4px;list-style:none;max-height:240px;overflow-y:auto;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 12px 28px #0f172a1f}.combo-item[data-v-bda82521]{padding:9px 10px;border-radius:8px;cursor:pointer;font-size:13px;color:#334155}.combo-item[data-v-bda82521]:hover{background:#f1f5f9}.combo-item.active[data-v-bda82521]{background:#ecfdf5;color:#047857;font-weight:600}.combo-empty[data-v-bda82521]{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);padding:12px;text-align:center;color:#94a3b8;font-size:13px;background:#fff;border:1px solid #e2e8f0;border-radius:10px}.page[data-v-756c2cb6]{padding:24px 0 28px;background:#f5f7fb}.kpi-row[data-v-756c2cb6]{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}.kpi[data-v-756c2cb6]{background:#fff;border-radius:14px;padding:18px 20px;border:1px solid #e5e7eb;box-shadow:0 8px 24px #0f172a0d}.kpi-label[data-v-756c2cb6]{display:block;font-size:12px;color:#64748b;margin-bottom:6px}.kpi-val[data-v-756c2cb6]{font-size:20px;font-weight:700;color:#0f172a}.kpi-sub[data-v-756c2cb6]{display:block;font-size:11px;color:#94a3b8;margin-top:4px}.kpi.good .kpi-val[data-v-756c2cb6]{color:#047857}.kpi.bad .kpi-val[data-v-756c2cb6]{color:#b91c1c}.tabs[data-v-756c2cb6]{display:flex;gap:8px;margin-bottom:12px}.tabs button[data-v-756c2cb6]{padding:10px 18px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;font-size:13px}.tabs button.active[data-v-756c2cb6]{background:#0d9488;color:#fff;border-color:transparent}.card[data-v-756c2cb6]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:16px;box-shadow:0 12px 32px #0f172a0f}.pick-bar[data-v-756c2cb6]{display:flex;gap:10px;margin-bottom:12px}.pick-bar input[data-v-756c2cb6]{flex:1;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px}.pick-list[data-v-756c2cb6]{border:1px solid #f1f5f9;border-radius:12px;margin-bottom:12px;max-height:280px;overflow:auto}.pick-item[data-v-756c2cb6]{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid #f8fafc;font-size:13px}.muted[data-v-756c2cb6]{display:block;color:#94a3b8;font-size:12px}.toolbar[data-v-756c2cb6]{display:flex;gap:10px;margin-bottom:12px;flex-wrap:wrap}.table-head[data-v-756c2cb6]{display:flex;justify-content:space-between;align-items:center;margin:8px 0 10px;font-size:13px;color:#64748b;font-weight:600}.form-grid[data-v-756c2cb6]{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.form-grid input[data-v-756c2cb6]{padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;transition:all .12s ease}.form-grid input[data-v-756c2cb6]:focus{outline:none;border-color:#0d9488;box-shadow:0 0 0 3px #0d948824}.form-grid .span2[data-v-756c2cb6]{grid-column:span 2}.budget-form[data-v-756c2cb6]{margin-top:4px;padding:12px;background:#f8fafc;border-radius:12px}.table-wrap[data-v-756c2cb6]{overflow-x:auto}.sheet[data-v-756c2cb6]{width:100%;border-collapse:collapse;font-size:13px}.sheet th[data-v-756c2cb6],.sheet td[data-v-756c2cb6]{padding:10px 12px;border-bottom:1px solid #f1f5f9;text-align:left}.sheet th[data-v-756c2cb6]{background:#f8fafc;color:#64748b;font-weight:600;white-space:nowrap}.sheet .num[data-v-756c2cb6]{text-align:right;font-variant-numeric:tabular-nums}.sheet tbody tr[data-v-756c2cb6]{transition:background .12s ease}.sheet tbody tr[data-v-756c2cb6]:hover{background:#f8fafc}.sheet tr.warn[data-v-756c2cb6]{background:#fffbeb}.rate-cell[data-v-756c2cb6]{display:inline-flex;align-items:center;gap:3px;justify-content:flex-end}.unit-suffix[data-v-756c2cb6]{color:#94a3b8;font-size:12px}.rate-badge[data-v-756c2cb6]{display:inline-block;padding:2px 8px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:12px;font-weight:600}.price-input[data-v-756c2cb6]{width:88px}.calc-cell[data-v-756c2cb6]{color:#94a3b8;font-size:12px;font-variant-numeric:tabular-nums}.tax-cell[data-v-756c2cb6]{color:#c2410c}.strong-amount[data-v-756c2cb6]{font-weight:700;color:#0f172a;font-variant-numeric:tabular-nums}.sheet tfoot .foot[data-v-756c2cb6]{font-weight:700;background:#f8fafc}.mono[data-v-756c2cb6]{font-family:ui-monospace,monospace;font-size:12px}.cell-input[data-v-756c2cb6]{width:72px;text-align:right;padding:5px 8px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;background:#fff;transition:all .12s ease}.cell-input[data-v-756c2cb6]:hover{border-color:#cbd5e1}.cell-input[data-v-756c2cb6]:focus{outline:none;border-color:#0d9488;box-shadow:0 0 0 3px #0d948824}.cell-input.sm[data-v-756c2cb6]{width:54px}.badge[data-v-756c2cb6]{font-size:11px;padding:2px 8px;border-radius:999px;background:#ecfdf5;color:#047857}.badge.actual_only[data-v-756c2cb6],.badge.budget_only[data-v-756c2cb6]{background:#fef3c7;color:#b45309}.badge.import_bill[data-v-756c2cb6]{background:#e0f2fe;color:#0369a1}.badge.import_payment[data-v-756c2cb6]{background:#ede9fe;color:#6d28d9}.badge.sync_budget[data-v-756c2cb6]{background:#ecfccb;color:#3f6212}.table-head-actions[data-v-756c2cb6]{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.tax-toggle[data-v-756c2cb6]{display:inline-flex;border:1px solid #e2e8f0;border-radius:999px;overflow:hidden;background:#fff}.tax-toggle button[data-v-756c2cb6]{border:none;background:transparent;padding:6px 14px;font-size:12px;color:#64748b;cursor:pointer;transition:all .12s ease}.tax-toggle button.active[data-v-756c2cb6]{background:#0d9488;color:#fff;font-weight:600}.check-col[data-v-756c2cb6]{width:36px;text-align:center}.sheet tr.checked[data-v-756c2cb6]{background:#f0fdfa}.sheet tr.synced[data-v-756c2cb6]{opacity:.72}.muted-inline[data-v-756c2cb6]{color:#94a3b8;font-size:12px}.bill-picker[data-v-756c2cb6]{border:1px solid #e2e8f0;border-radius:14px;padding:14px;margin-bottom:16px;background:#f8fafc}.bill-picker-head[data-v-756c2cb6]{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.bill-list[data-v-756c2cb6]{max-height:320px;overflow:auto;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.bill-item[data-v-756c2cb6]{display:grid;grid-template-columns:20px 1fr auto;gap:12px;align-items:center;padding:10px 12px;border-bottom:1px solid #f1f5f9;font-size:13px;cursor:pointer}.bill-item.checked[data-v-756c2cb6]{background:#f0fdfa}.bill-item.disabled[data-v-756c2cb6]{opacity:.55;cursor:not-allowed}.bill-main strong[data-v-756c2cb6]{display:block}.bill-amt[data-v-756c2cb6]{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.bill-picker-foot[data-v-756c2cb6]{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:13px;color:#64748b}.good[data-v-756c2cb6]{color:#047857;font-weight:600}.bad[data-v-756c2cb6]{color:#b91c1c;font-weight:600}.link[data-v-756c2cb6]{border:none;background:none;cursor:pointer;color:#0d9488}.link.danger[data-v-756c2cb6]{color:#b91c1c}.empty[data-v-756c2cb6],.empty-cell[data-v-756c2cb6]{text-align:center;color:#94a3b8;padding:32px}.legend[data-v-756c2cb6]{font-size:12px;color:#64748b;margin-top:12px}.pager[data-v-756c2cb6]{display:flex;justify-content:center;align-items:center;gap:14px;padding:14px 0 4px;font-size:13px;color:#64748b}.pager.inner[data-v-756c2cb6]{padding:10px;border-top:1px solid #f1f5f9}.pagination[data-v-756c2cb6]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 4px 4px;font-size:13px;color:#64748b}.pagination-gap[data-v-756c2cb6]{flex:1;min-width:8px}.pagination-info[data-v-756c2cb6]{min-width:64px;text-align:center;font-variant-numeric:tabular-nums}.page-size-select[data-v-756c2cb6]{padding:4px 8px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;font-size:13px}.btn[data-v-756c2cb6]{padding:8px 16px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;font-size:13px}.btn.primary[data-v-756c2cb6]{background:linear-gradient(135deg,#0d9488,#14b8a6);color:#fff;border:none}.btn.sm[data-v-756c2cb6]{padding:4px 12px;font-size:12px}.btn[data-v-756c2cb6]:disabled{opacity:.5;cursor:not-allowed}@media(max-width:900px){.kpi-row[data-v-756c2cb6]{grid-template-columns:1fr}.form-grid[data-v-756c2cb6]{grid-template-columns:1fr 1fr}}.perm-tree[data-v-6bd7e471]{width:100%}.tree-root[data-v-6bd7e471]{list-style:none;margin:0;padding:0}.tree-node[data-v-6bd7e471]{margin:0;padding:0}.node-row[data-v-6bd7e471]{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:10px}.node-row[data-v-6bd7e471]:hover{background:#2563eb0f}.exp[data-v-6bd7e471]{width:24px;height:24px;border-radius:8px;border:1px solid rgba(203,213,225,.9);background:#ffffffe6;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:#334155}.exp[data-v-6bd7e471]:disabled{opacity:.5;cursor:not-allowed}.exp--dot[data-v-6bd7e471]{border-color:transparent;background:transparent;cursor:default}.ck[data-v-6bd7e471]{display:inline-flex;align-items:center;gap:10px;cursor:pointer;flex:1;min-width:0}.ck input[data-v-6bd7e471]{width:16px;height:16px}.label[data-v-6bd7e471]{display:inline-flex;align-items:baseline;gap:8px;min-width:0;flex-wrap:wrap}.key[data-v-6bd7e471]{color:#64748b;font-size:12px}.node-children[data-v-6bd7e471]{margin-left:22px;padding-left:10px;border-left:1px dashed rgba(148,163,184,.6)}.mono[data-v-6bd7e471]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.muted[data-v-6bd7e471]{color:#64748b}.empty[data-v-6bd7e471]{padding:8px 6px}.page[data-v-685e9cc1]{padding:24px 0;background:#f5f7fb}.profile-hint[data-v-685e9cc1]{margin:0 0 14px;font-size:13px;line-height:1.55;color:#4b5563}.policy-card[data-v-685e9cc1]{margin-bottom:14px;padding:14px 16px;border-radius:12px;background:#fff;border:1px solid #e5e7eb}.policy-head[data-v-685e9cc1]{display:flex;align-items:center;justify-content:space-between;gap:16px}.policy-title[data-v-685e9cc1]{font-size:15px;font-weight:600;color:#111827;margin-bottom:4px}.policy-desc[data-v-685e9cc1]{max-width:720px;line-height:1.5}.policy-env[data-v-685e9cc1]{margin:10px 0 0}.policy-toggle[data-v-685e9cc1]{flex-shrink:0}.toolbar[data-v-685e9cc1]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.toolbar-left[data-v-685e9cc1],.toolbar-right[data-v-685e9cc1]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tabs2[data-v-685e9cc1]{display:flex;align-items:center;gap:8px;margin:4px 0 14px;flex-wrap:wrap}.tab2[data-v-685e9cc1]{padding:8px 14px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#374151;cursor:pointer;font-size:13px;transition:all .18s ease}.tab2[data-v-685e9cc1]:hover:not(:disabled){border-color:#3b82f6;color:#1d4ed8}.tab2.active[data-v-685e9cc1]{border-color:#2563eb;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;font-weight:600;box-shadow:0 8px 20px #2563eb40}.empty[data-v-685e9cc1]{padding:20px 4px;color:#6b7280}.table-wrap[data-v-685e9cc1]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 18px 40px #0f172a0f;overflow:auto}.table[data-v-685e9cc1]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-685e9cc1],.table td[data-v-685e9cc1]{padding:10px 12px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:middle}.table th[data-v-685e9cc1]{color:#4b5563;font-weight:600;background:#f3f4f6;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.muted[data-v-685e9cc1]{color:#6b7280}.small[data-v-685e9cc1]{font-size:12px}.strong[data-v-685e9cc1]{font-weight:600;color:#111827}.select[data-v-685e9cc1]{padding:8px 12px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;font-size:13px;min-width:160px}.search[data-v-685e9cc1]{flex:1;min-width:260px}.input[data-v-685e9cc1]{width:100%;padding:8px 12px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;font-size:13px;outline:none}.tree-card[data-v-685e9cc1]{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 18px 40px #0f172a0f;padding:12px}.users-hint[data-v-685e9cc1]{padding:10px 4px 0}.btn[data-v-685e9cc1]{padding:8px 10px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;cursor:pointer;font-size:13px;transition:all .18s ease}.btn[data-v-685e9cc1]:hover:not(:disabled){border-color:#3b82f6;color:#1d4ed8;box-shadow:0 6px 18px #0f172a14}.btn[data-v-685e9cc1]:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn.primary[data-v-685e9cc1]{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;font-weight:600;box-shadow:0 10px 25px #2563eb47}.btn.primary[data-v-685e9cc1]:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#2563eb);border-color:#1d4ed8;color:#fff}.btn.sm[data-v-685e9cc1]{padding:6px 10px;border-radius:999px;font-size:12px}.btn.danger[data-v-685e9cc1]{border-color:#b91c1c59;color:#b91c1c}.btn.danger[data-v-685e9cc1]:hover:not(:disabled){border-color:#b91c1c8c;box-shadow:0 6px 18px #b91c1c1a}.toggle[data-v-685e9cc1]{display:inline-flex;align-items:center;gap:10px;cursor:pointer}.modal-mask[data-v-685e9cc1]{position:fixed;inset:0;background:#0f172a8c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:18px;z-index:2000}.modal[data-v-685e9cc1]{width:min(760px,96vw);background:#fffffff5;border:1px solid rgba(229,231,235,.9);border-radius:18px;box-shadow:0 22px 60px #0f172a38;overflow:hidden}.modal-head[data-v-685e9cc1]{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid rgba(226,232,240,.9)}.modal-title[data-v-685e9cc1]{font-weight:700;color:#0f172a}.icon[data-v-685e9cc1]{width:34px;height:34px;border-radius:12px;border:1px solid rgba(203,213,225,.85);background:#ffffffe6;cursor:pointer}.modal-body[data-v-685e9cc1]{padding:14px;display:grid;gap:12px}.modal-foot[data-v-685e9cc1]{padding:12px 14px;border-top:1px solid rgba(226,232,240,.9);display:flex;justify-content:flex-end;gap:10px}.field[data-v-685e9cc1]{display:grid;gap:6px}.grid2[data-v-685e9cc1]{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:720px){.grid2[data-v-685e9cc1]{grid-template-columns:1fr}}.mt6[data-v-685e9cc1]{margin-top:6px}.toggle input[data-v-685e9cc1]{width:16px;height:16px;accent-color:#2563eb}.pill[data-v-685e9cc1]{padding:4px 10px;border-radius:999px;border:1px solid #e5e7eb;background:#f9fafb;font-size:12px;color:#6b7280}.pill.on[data-v-685e9cc1]{border-color:#22c55e73;background:#dcfce7f2;color:#15803d}code[data-v-685e9cc1]{font-size:12px;padding:2px 6px;border-radius:6px;background:#f3f4f6;color:#374151;border:1px solid #e5e7eb}.personal-settings[data-v-1affab37]{color:#ffffffeb}.personal-settings--embedded[data-v-1affab37]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:14px;align-items:start}@media(max-width:900px){.personal-settings--embedded[data-v-1affab37]{grid-template-columns:1fr}}.section-title[data-v-1affab37]{margin:0 0 16px;font-size:16px;font-weight:650;color:#ffffffe0}.card[data-v-1affab37]{background:#161b22bf;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:20px 22px;margin-bottom:18px;max-width:480px}.personal-settings--embedded .card[data-v-1affab37]{max-width:none;margin-bottom:0}.info-row[data-v-1affab37]{display:flex;gap:12px;margin-bottom:10px;font-size:14px}.info-row .k[data-v-1affab37]{width:72px;flex-shrink:0;color:#ffffff80}.info-row .v[data-v-1affab37]{color:#ffffffe6}.account-hint[data-v-1affab37]{margin:4px 0 0;font-size:12px;line-height:1.45}.field[data-v-1affab37]{margin-bottom:14px}.label[data-v-1affab37]{display:block;margin-bottom:6px;font-size:13px;color:#ffffff8c}.input[data-v-1affab37]{width:100%;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#00000040;color:#fff;font-size:14px}.actions[data-v-1affab37]{margin-top:8px}.btn[data-v-1affab37]{padding:10px 20px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:#ffffffe6;font-weight:650;cursor:pointer}.btn.primary[data-v-1affab37]{border-color:#00d4aa73;background:linear-gradient(180deg,#00d4aa38,#00b49124);color:#e8fff9}.btn[data-v-1affab37]:disabled{opacity:.6;cursor:not-allowed}.banner[data-v-1affab37]{padding:10px 12px;border-radius:10px;margin-bottom:14px;font-size:13px}.banner.ok[data-v-1affab37]{border:1px solid rgba(0,212,170,.35);background:#00d4aa1f;color:#9cf5df}.banner.err[data-v-1affab37]{border:1px solid rgba(248,81,73,.35);background:#f851491a;color:#ffb4b0}.muted[data-v-1affab37]{color:#ffffff80;padding:8px 0}.pwd-hint[data-v-1affab37]{margin:-8px 0 14px;font-size:13px;line-height:1.5;color:#ffffff80}.card-password[data-v-1affab37]{border-color:#00d4aa38;box-shadow:0 0 0 1px #00d4aa0f}.shell.light .profile-page.personal-settings{color:#334155}.shell.light .profile-page .section-title{color:#0f172a}.shell.light .profile-page .info-row .k{color:#64748b}.shell.light .profile-page .info-row .v{color:#0f172a}.shell.light .profile-page .pwd-hint{color:#64748b}.shell.light .profile-page .banner.ok{border-color:#05966959;background:#10b9811a;color:#047857}.shell.light .profile-page .banner.err{border-color:#dc26264d;background:#f871711a;color:#b91c1c}.page[data-v-65aa1532]{padding:28px}.page[data-v-4e216dd4]{padding:24px 0;background:#f5f7fb}.page[data-v-903c3451]{padding:12px 0 28px}.card[data-v-903c3451]{background:#ffffffeb;border:1px solid rgba(226,232,240,.95);border-radius:16px;box-shadow:0 10px 30px #0f172a0f}.toolbar[data-v-903c3451]{display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:12px}.sep[data-v-903c3451]{width:1px;height:22px;background:#94a3b859}.sp[data-v-903c3451]{flex:1}.btn[data-v-903c3451]{border:1px solid rgba(148,163,184,.35);background:#f8fafcf2;color:#0f172a;border-radius:12px;padding:8px 12px;cursor:pointer;font-size:13px}.btn[data-v-903c3451]:disabled{opacity:.55;cursor:not-allowed}.muted[data-v-903c3451]{color:#64748b}.small[data-v-903c3451]{font-size:12px}.chk[data-v-903c3451]{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#334155}.shell.dark{color:#e2e8f0e6}.table-card[data-v-903c3451]{padding:0;overflow:hidden}.empty[data-v-903c3451]{padding:18px;text-align:center;color:#64748b}.rows[data-v-903c3451]{display:flex;flex-direction:column;gap:10px;padding:10px}.row[data-v-903c3451]{width:100%;text-align:left;border:none;background:#ffffffeb;cursor:pointer;padding:12px 14px;display:flex;justify-content:space-between;gap:14px;border-bottom:none;border-radius:16px;border:1px solid rgba(226,232,240,.95);box-shadow:0 10px 26px #0f172a0f}.row[data-v-903c3451]:hover{background:#2563eb0f}.shell.dark{background:#38bdf814}.row.unread .row-title[data-v-903c3451]{color:#1d4ed8}.row-main[data-v-903c3451]{min-width:0;flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.row-title[data-v-903c3451]{font-weight:900;font-size:13px;color:#0f172a}.row-body[data-v-903c3451]{margin-top:6px;font-size:12px;white-space:pre-wrap;color:#475569}.shell.dark{color:#cbd5e1eb}.row-meta[data-v-903c3451]{flex:1 1 auto;text-align:right;margin-left:auto;min-width:0}.row-time[data-v-903c3451]{font-size:11px;color:#94a3b8}.row-state[data-v-903c3451]{margin-top:6px;font-size:11px;color:#64748b}.m-wrap[data-v-903c3451]{margin-top:12px}.m-grid[data-v-903c3451]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.m-card[data-v-903c3451]{background:#ffffffeb;border:1px solid rgba(226,232,240,.95);border-radius:16px;box-shadow:0 10px 26px #0f172a0f;padding:12px}::global(.shell.dark) .m-card[data-v-903c3451]{background:#0f172ab8;border-color:#94a3b829;box-shadow:0 12px 40px #00000059}.m-head[data-v-903c3451]{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}.m-title[data-v-903c3451]{font-weight:900;color:#0f172a}::global(.shell.dark) .m-title[data-v-903c3451]{color:#f8fafceb}.m-sub[data-v-903c3451]{font-size:12px;color:#64748b}::global(.shell.dark) .m-sub[data-v-903c3451]{color:#94a3b8e0}.m-link[data-v-903c3451]{border:0;background:transparent;color:#2563eb;cursor:pointer;font:inherit;padding:0}.m-link[data-v-903c3451]:hover{text-decoration:underline}.m-list[data-v-903c3451]{display:grid;gap:8px}.m-row[data-v-903c3451]{border:1px solid rgba(226,232,240,.95);background:#f8fafcbf;border-radius:14px;padding:10px;cursor:pointer}::global(.shell.dark) .m-row[data-v-903c3451]{border-color:#94a3b829;background:#1e293ba6}.m-row[data-v-903c3451]:hover{background:#2563eb0f}::global(.shell.dark) .m-row[data-v-903c3451]:hover{background:#38bdf814}.m-row-title[data-v-903c3451]{font-weight:800;font-size:13px;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::global(.shell.dark) .m-row-title[data-v-903c3451]{color:#f8fafceb}.m-row-sub[data-v-903c3451]{margin-top:4px;font-size:12px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::global(.shell.dark) .m-row-sub[data-v-903c3451]{color:#94a3b8e0}.m-more[data-v-903c3451]{display:flex;justify-content:flex-end;margin-top:6px}@media(max-width:980px){.m-grid[data-v-903c3451]{grid-template-columns:1fr}}.modal-mask[data-v-903c3451]{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:18px;z-index:2000}::global(.shell.dark) .modal-mask[data-v-903c3451]{background:#0000008c}.modal[data-v-903c3451]{width:min(720px,100%);max-height:min(80vh,860px);overflow:auto;border-radius:18px;border:1px solid rgba(226,232,240,.95);background:#fffffffa;box-shadow:0 30px 80px #0f172a59;padding:16px}::global(.shell.dark) .modal[data-v-903c3451]{background:#0f172aeb;border-color:#94a3b82e;box-shadow:0 40px 100px #0000008c}.modal-title[data-v-903c3451]{font-weight:900;font-size:16px;color:#0f172a;margin-bottom:12px}::global(.shell.dark) .modal-title[data-v-903c3451]{color:#f8fafceb}.field[data-v-903c3451]{margin:10px 0}.label[data-v-903c3451]{font-size:12px;font-weight:800;color:#334155;margin-bottom:6px}::global(.shell.dark) .label[data-v-903c3451]{color:#e2e8f0e6}.input[data-v-903c3451],.select[data-v-903c3451],.textarea[data-v-903c3451]{width:100%;border-radius:12px;border:1px solid rgba(148,163,184,.35);background:#f8fafcf2;padding:9px 10px;font:inherit;font-size:13px;color:#0f172a}::global(.shell.dark) .input[data-v-903c3451],::global(.shell.dark) .select[data-v-903c3451],::global(.shell.dark) .textarea[data-v-903c3451]{background:#1e293bd9;color:#f8fafce6;border-color:#94a3b838}.textarea[data-v-903c3451]{resize:vertical}.grid2[data-v-903c3451]{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:760px){.grid2[data-v-903c3451]{grid-template-columns:1fr}}.modal-actions[data-v-903c3451]{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.btn.primary[data-v-903c3451]{background:#2563eb;color:#fff;border-color:#2563eba6}::global(.shell.dark) .btn.primary[data-v-903c3451]{background:#2563ebf2;border-color:#2563eba6}.row-link[data-v-903c3451]{margin-top:6px;font-size:11px;color:#94a3b8;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pager[data-v-903c3451]{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:12px 14px;background:#f8fafca6}.shell.dark{background:#0f172a59}.row-top[data-v-903c3451]{display:flex;justify-content:space-between;gap:14px}.reimb-sheet[data-v-903c3451]{width:100%;max-width:100%;margin-top:8px;padding:8px 10px;border-radius:12px;border:1px solid rgba(226,232,240,.85);background:#ffffffb8;cursor:pointer}.reimb-sheet[data-v-903c3451]:hover{border-color:#2563eb29}.shell.dark{border-color:#94a3b829;background:#0f172a42}.shell.dark{border-color:#38bdf82e}.reimb-sheet-hd[data-v-903c3451]{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px}.reimb-sheet-title[data-v-903c3451]{font-size:12px;font-weight:800;color:#334155;letter-spacing:.2px}.shell.dark{color:#e2e8f0eb}.reimb-sheet-actions[data-v-903c3451]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.reimb-detail-btn[data-v-903c3451]{border:1px solid rgba(37,99,235,.28);background:#2563eb14;color:#1d4ed8;border-radius:10px;padding:4px 10px;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap}.reimb-detail-btn[data-v-903c3451]:hover{border-color:#2563eb6b;background:#2563eb1f}.shell.dark{border-color:#38bdf847;background:#38bdf81a;color:#5eead4}.shell.dark{border-color:#38bdf866;background:#38bdf824}.reimb-table-wrap[data-v-903c3451]{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.reimb-table[data-v-903c3451]{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px;line-height:1.25}.reimb-table th[data-v-903c3451],.reimb-table td[data-v-903c3451]{border:1px solid rgba(226,232,240,.85);padding:6px 8px;vertical-align:top;word-break:break-word}.reimb-table thead th[data-v-903c3451]{text-align:left;font-size:11px;font-weight:800;color:#64748b;background:#f8fafcbf}.shell.dark{color:#94a3b8eb;background:#0f172a59}.reimb-table .w-k[data-v-903c3451]{width:92px}.reimb-table .k[data-v-903c3451]{width:92px;font-size:11px;font-weight:800;color:#64748b;background:#f8fafc8c}.shell.dark{color:#94a3b8eb;background:#0f172a4d}.reimb-table .v[data-v-903c3451]{font-weight:600;color:#0f172a;min-width:0}.clip[data-v-903c3451]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reimb-sheet .link[data-v-903c3451]{color:#2563eb;text-decoration:underline;text-underline-offset:2px}.reimb-sheet .link[data-v-903c3451]:hover{opacity:.92}.row-time[data-v-903c3451]{white-space:nowrap}.row-submeta[data-v-903c3451]{margin-top:6px;display:flex;align-items:center;justify-content:flex-end;gap:10px;color:#94a3b8;font-size:12px;white-space:nowrap}.row-state[data-v-903c3451]{color:inherit;font-size:inherit}.row-link[data-v-903c3451]{color:inherit;font-size:inherit;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:0!important}.mono[data-v-903c3451]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.shell.dark{background:#0f172a73;border-color:#94a3b829;box-shadow:0 14px 34px #00000040}.row-meta-pills[data-v-903c3451]{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:nowrap;width:100%;min-width:0}.meta-right[data-v-903c3451]{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:1 1 auto;width:100%;flex-wrap:nowrap;min-width:0}.meta-tail[data-v-903c3451]{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto;flex-shrink:0;white-space:nowrap}.meta-pill[data-v-903c3451]{display:inline-flex;align-items:center;height:22px;padding:0 10px;border-radius:999px;border:1px solid rgba(148,163,184,.25);background:#f8fafcb3;color:#94a3b8;font-size:12px;font-weight:800;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell.dark{border-color:#94a3b82e;background:#1e293b80;color:#94a3b8e6}.meta-pill-primary[data-v-903c3451]{border-color:#2563eb59;background:#2563eb1a;color:#1d4ed8}.meta-pill-secondary[data-v-903c3451]{border-color:#2563eb38;background:#2563eb14;color:#1d4ed8e0}.shell.dark{border-color:#3b82f647;background:#2563eb24;color:#93c5fdeb}.shell.dark{border-color:#5eead440;background:#5eead414;color:#5eead4}.meta-pill-muted[data-v-903c3451]{background:#94a3b81a;color:#64748bf2}.shell.dark{background:#94a3b81a;color:#cbd5e1d1}.meta-pill-soft[data-v-903c3451]{background:#2563eb1a;border-color:#2563eb47;color:#1d4ed8f2;font-weight:800}.shell.dark{background:#2563eb2e;border-color:#3b82f659;color:#93c5fdf2}.page[data-v-1be4e133]{padding:12px 0 28px}.card[data-v-1be4e133]{background:#ffffffeb;border:1px solid rgba(226,232,240,.95);border-radius:16px;box-shadow:0 10px 30px #0f172a0f;padding:14px}.shell.dark{background:#0f172ab8;border-color:#94a3b829;box-shadow:0 12px 40px #00000059}.empty[data-v-1be4e133]{padding:18px;text-align:center;color:#64748b}.meta[data-v-1be4e133]{display:grid;gap:10px}.k[data-v-1be4e133]{display:inline-block;min-width:72px;color:#64748b;font-size:12px}.shell.dark{color:#94a3b8e6}.v[data-v-1be4e133]{color:#0f172a;font-size:13px}.shell.dark{color:#f8fafceb}.strong[data-v-1be4e133]{font-weight:900}.pre[data-v-1be4e133]{white-space:pre-wrap}.link[data-v-1be4e133]{color:#2563eb;text-decoration:none}.shell.dark{color:#5eead4}.btn[data-v-1be4e133]{border:1px solid rgba(148,163,184,.35);background:#f8fafcf2;color:#0f172a;border-radius:12px;padding:8px 12px;cursor:pointer;font-size:13px}.btn.primary[data-v-1be4e133]{background:#2563eb;border-color:#2563eb;color:#fff}.shell.dark{background:#1e293bd9;color:#f8fafce0;border-color:#94a3b838}.shell.dark{background:#2563eb;border-color:#2563eb;color:#fff}.btn[data-v-1be4e133]:disabled{opacity:.55;cursor:not-allowed}.table-wrap[data-v-1be4e133]{margin-top:14px;overflow:auto;border:1px solid rgba(226,232,240,.95);border-radius:14px}.shell.dark{border-color:#94a3b829}.table[data-v-1be4e133]{width:100%;border-collapse:collapse;font-size:12px}.table th[data-v-1be4e133],.table td[data-v-1be4e133]{padding:10px 12px;border-bottom:1px solid rgba(226,232,240,.9);text-align:left}.shell.dark{border-bottom-color:#94a3b81f}.table thead th[data-v-1be4e133]{background:#f8fafce6;color:#64748b;font-weight:900}.shell.dark{background:#0f172abf;color:#94a3b8e6}.mono[data-v-1be4e133]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.muted[data-v-1be4e133]{color:#64748b}.shell.dark{color:#94a3b8e0}.auth[data-v-3b3bc9b1]{min-height:100vh;display:flex;align-items:center;justify-content:flex-end;padding:18px 6vw 18px 18px;position:relative;transition:background .35s ease;overflow:hidden}.auth.dark[data-v-3b3bc9b1]{background:#0c1117}.auth.light[data-v-3b3bc9b1]{background:#cbd5e1}.bg-video[data-v-3b3bc9b1]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;pointer-events:none}.bg-dim[data-v-3b3bc9b1]{position:absolute;inset:0;z-index:1;pointer-events:none}.auth.dark .bg-dim[data-v-3b3bc9b1]{background:#0c11178c}.auth.light .bg-dim[data-v-3b3bc9b1]{background:transparent}@media(prefers-reduced-motion:reduce){.bg-video[data-v-3b3bc9b1]{display:none}}.auth[data-v-3b3bc9b1]>:not(.bg-video):not(.bg-dim):not(.theme-toggle){position:relative;z-index:2}.theme-toggle[data-v-3b3bc9b1]{position:fixed;top:16px;right:16px;z-index:3;display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:14px;border:1px solid transparent;background:transparent;color:inherit;font-size:13px;cursor:pointer;transition:background .2s,border-color .2s,color .2s}.auth.dark .theme-toggle[data-v-3b3bc9b1]{border-color:#ffffff26;color:#ffffffbf}.auth.dark .theme-toggle[data-v-3b3bc9b1]:hover{background:#ffffff0f;color:#fffffff2}.auth.light .theme-toggle[data-v-3b3bc9b1]{border-color:#0000001a;color:#475569}.auth.light .theme-toggle[data-v-3b3bc9b1]:hover{background:#0000000a;color:#0f172a}.theme-icon[data-v-3b3bc9b1]{font-size:16px}.theme-label[data-v-3b3bc9b1]{font-weight:600}.shell-card[data-v-3b3bc9b1]{display:grid;grid-template-columns:minmax(0,200px) minmax(0,300px);gap:8px;align-items:stretch;border-radius:26px;padding:14px 16px;width:min(100%,540px);margin-right:max(0px,2vw);transition:background .35s ease,border-color .35s ease,box-shadow .35s ease}.auth.dark .shell-card[data-v-3b3bc9b1],.auth.light .shell-card[data-v-3b3bc9b1]{background:transparent;border:none;box-shadow:none}.visual[data-v-3b3bc9b1]{position:relative;display:flex;align-items:center;justify-content:center;padding-right:6px}.lottie-box[data-v-3b3bc9b1]{width:100%;max-width:200px;aspect-ratio:4 / 3}.visual-shadow[data-v-3b3bc9b1]{position:absolute;inset:18px auto 0 0;border-radius:24px;pointer-events:none;transition:opacity .35s ease}.auth.dark .visual-shadow[data-v-3b3bc9b1]{background:radial-gradient(circle at 0 0,rgba(0,212,170,.24),transparent 55%);opacity:.7}.auth.light .visual-shadow[data-v-3b3bc9b1]{background:radial-gradient(circle at 0 0,rgba(0,212,170,.12),transparent 55%);opacity:.5}.card[data-v-3b3bc9b1]{width:100%;border-radius:22px;padding:18px;transition:background .35s ease,border-color .35s ease,box-shadow .35s ease}.auth.dark .card[data-v-3b3bc9b1]{background:#161b22eb;border:1px solid rgba(255,255,255,.1);box-shadow:0 22px 70px #0000008c}.auth.light .card[data-v-3b3bc9b1]{background:#e3e8f0cc;border:1px solid rgba(184,195,208,.9);box-shadow:0 6px 26px #0f172a24}.brand[data-v-3b3bc9b1]{display:flex;align-items:center;gap:10px}.brand-lottie[data-v-3b3bc9b1]{width:30px;height:30px;flex-shrink:0}.brand-lottie[data-v-3b3bc9b1] svg{width:100%;height:100%;display:block}.auth.dark .text[data-v-3b3bc9b1]{color:#ffffffeb}.auth.light .text[data-v-3b3bc9b1]{color:#0f172a}.text[data-v-3b3bc9b1]{font-weight:900;letter-spacing:-.02em}.auth.dark .sub[data-v-3b3bc9b1]{color:#ffffff8c}.auth.light .sub[data-v-3b3bc9b1]{color:#64748b}.sub[data-v-3b3bc9b1]{margin-top:8px;font-size:12px}.err[data-v-3b3bc9b1]{margin-top:12px;padding:10px 12px;border-radius:14px;font-size:13px;border:1px solid rgba(248,81,73,.35);background:#f851491a}.auth.dark .err[data-v-3b3bc9b1]{color:#ffffffdb}.auth.light .err[data-v-3b3bc9b1]{color:#b91c1c}.welcome-hint[data-v-3b3bc9b1]{margin-top:12px;padding:10px 12px;border-radius:14px;border:1px solid rgba(0,212,170,.28);background:#00d4aa1a;font-size:13px;line-height:1.5}.auth.dark .welcome-hint[data-v-3b3bc9b1]{color:#ffffffe0}.auth.light .welcome-hint[data-v-3b3bc9b1]{color:#0f766e}.field[data-v-3b3bc9b1]{margin-top:12px}.auth.dark .label[data-v-3b3bc9b1]{color:#ffffff8c}.auth.light .label[data-v-3b3bc9b1]{color:#64748b}.label[data-v-3b3bc9b1]{font-size:12px;margin-bottom:6px}.input[data-v-3b3bc9b1]{width:100%;border-radius:16px;padding:10px 12px;outline:none;transition:border-color .2s,box-shadow .2s,background .2s,color .2s}.auth.dark .input[data-v-3b3bc9b1]{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:#ffffffeb}.auth.light .input[data-v-3b3bc9b1]{background:#dde3eb;border:1px solid #b8c3d0;color:#0f172a}.auth.light .input[data-v-3b3bc9b1]::placeholder{color:#94a3b8}.input[data-v-3b3bc9b1]:focus{border-color:#00d4aa47;box-shadow:0 0 0 4px #00d4aa1a}.btn[data-v-3b3bc9b1]{width:100%;margin-top:16px;padding:10px 12px;border-radius:16px;cursor:pointer;font-weight:800;transition:background .2s,border-color .2s,color .2s,opacity .2s}.auth.dark .btn[data-v-3b3bc9b1]{border:1px solid rgba(255,255,255,.12);background:#ffffff0d;color:#ffffffe6}.auth.light .btn[data-v-3b3bc9b1]{border:1px solid #b8c3d0;background:#d1d8e3;color:#334155}.btn.primary[data-v-3b3bc9b1]{background:#00d4aa1f;border-color:#00d4aa42;color:#00d4aa}.auth.light .btn.primary[data-v-3b3bc9b1]{background:linear-gradient(135deg,#00d4aa,#00b894);border-color:#00d4aa;color:#fff}.btn.primary[data-v-3b3bc9b1]:hover:not(:disabled){filter:brightness(1.05)}.btn.ghost[data-v-3b3bc9b1]{margin-top:10px;background:transparent;font-weight:700}.btn[data-v-3b3bc9b1]:disabled{opacity:.6;cursor:not-allowed}.activate-tip[data-v-3b3bc9b1]{margin:12px 0 4px;font-size:13px;line-height:1.55}.auth.dark .activate-tip[data-v-3b3bc9b1]{color:#ffffffb8}.auth.light .activate-tip[data-v-3b3bc9b1]{color:#475569}.auth.dark .foot[data-v-3b3bc9b1]{color:#ffffff8c}.auth.light .foot[data-v-3b3bc9b1]{color:#64748b}.foot[data-v-3b3bc9b1]{margin-top:14px;font-size:13px;text-align:center}@media(max-width:860px){.auth[data-v-3b3bc9b1]{justify-content:center;padding:16px}.shell-card[data-v-3b3bc9b1]{grid-template-columns:1fr;gap:12px;padding:16px;margin-right:0}.visual[data-v-3b3bc9b1]{padding-right:0}.lottie-box[data-v-3b3bc9b1]{max-width:240px;margin:0 auto}}.link[data-v-3b3bc9b1]{color:#00d4aa;text-decoration:none;font-weight:800}.auth.light .link[data-v-3b3bc9b1]{color:#059669}.link[data-v-3b3bc9b1]:hover{text-decoration:underline}.auth[data-v-389824ee]{min-height:100vh;display:flex;align-items:center;justify-content:flex-end;padding:18px 6vw 18px 18px;position:relative;transition:background .35s ease;overflow:hidden}.auth.dark[data-v-389824ee]{background:#0c1117}.auth.light[data-v-389824ee]{background:#cbd5e1}.bg-video[data-v-389824ee]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;pointer-events:none}.bg-dim[data-v-389824ee]{position:absolute;inset:0;z-index:1;pointer-events:none}.auth.dark .bg-dim[data-v-389824ee]{background:#0c11178c}.auth.light .bg-dim[data-v-389824ee]{background:transparent}@media(prefers-reduced-motion:reduce){.bg-video[data-v-389824ee]{display:none}}.auth[data-v-389824ee]>:not(.bg-video):not(.bg-dim):not(.theme-toggle){position:relative;z-index:2}.theme-toggle[data-v-389824ee]{position:fixed;top:16px;right:16px;z-index:3;display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:14px;border:1px solid transparent;background:transparent;color:inherit;font-size:13px;cursor:pointer;transition:background .2s,border-color .2s,color .2s}.auth.dark .theme-toggle[data-v-389824ee]{border-color:#ffffff26;color:#ffffffbf}.auth.dark .theme-toggle[data-v-389824ee]:hover{background:#ffffff0f;color:#fffffff2}.auth.light .theme-toggle[data-v-389824ee]{border-color:#0000001a;color:#475569}.auth.light .theme-toggle[data-v-389824ee]:hover{background:#0000000a;color:#0f172a}.theme-icon[data-v-389824ee]{font-size:16px}.theme-label[data-v-389824ee]{font-weight:600}.shell-card[data-v-389824ee]{display:grid;grid-template-columns:minmax(0,200px) minmax(0,300px);gap:8px;align-items:stretch;border-radius:26px;padding:14px 16px;width:min(100%,540px);margin-right:max(0px,2vw);transition:background .35s ease,border-color .35s ease,box-shadow .35s ease}.auth.dark .shell-card[data-v-389824ee],.auth.light .shell-card[data-v-389824ee]{background:transparent;border:none;box-shadow:none}.visual[data-v-389824ee]{position:relative;display:flex;align-items:center;justify-content:center;padding-right:6px}.lottie-box[data-v-389824ee]{width:100%;max-width:200px;aspect-ratio:4 / 3}.visual-shadow[data-v-389824ee]{position:absolute;inset:18px auto 0 0;border-radius:24px;pointer-events:none;transition:opacity .35s ease}.auth.dark .visual-shadow[data-v-389824ee]{background:radial-gradient(circle at 0 0,rgba(0,212,170,.24),transparent 55%);opacity:.7}.auth.light .visual-shadow[data-v-389824ee]{background:radial-gradient(circle at 0 0,rgba(0,212,170,.12),transparent 55%);opacity:.5}.card[data-v-389824ee]{width:100%;border-radius:18px;padding:14px 15px;transition:background .35s ease,border-color .35s ease,box-shadow .35s ease}.auth.dark .card[data-v-389824ee]{background:#161b22eb;border:1px solid rgba(255,255,255,.1);box-shadow:0 22px 70px #0000008c}.auth.light .card[data-v-389824ee]{background:#e3e8f0cc;border:1px solid rgba(184,195,208,.9);box-shadow:0 6px 26px #0f172a24}.brand[data-v-389824ee]{display:flex;align-items:center;gap:8px}.brand-lottie[data-v-389824ee]{width:26px;height:26px;flex-shrink:0}.brand-lottie[data-v-389824ee] svg{width:100%;height:100%;display:block}.auth.dark .text[data-v-389824ee]{color:#ffffffeb}.auth.light .text[data-v-389824ee]{color:#0f172a}.text[data-v-389824ee]{font-weight:900;letter-spacing:-.02em}.auth.dark .sub[data-v-389824ee]{color:#ffffff8c}.auth.light .sub[data-v-389824ee]{color:#64748b}.sub[data-v-389824ee]{margin-top:6px;font-size:11px}.err[data-v-389824ee]{margin-top:12px;padding:10px 12px;border-radius:14px;font-size:13px;border:1px solid rgba(248,81,73,.35);background:#f851491a}.auth.dark .err[data-v-389824ee]{color:#ffffffdb}.auth.light .err[data-v-389824ee]{color:#b91c1c}.field[data-v-389824ee]{margin-top:10px}select.input[data-v-389824ee]{cursor:pointer}.auth.dark .label[data-v-389824ee]{color:#ffffff8c}.auth.light .label[data-v-389824ee]{color:#64748b}.label[data-v-389824ee]{font-size:12px;margin-bottom:6px}.input[data-v-389824ee]{width:100%;border-radius:14px;padding:8px 11px;outline:none;transition:border-color .2s,box-shadow .2s,background .2s,color .2s}.auth.dark .input[data-v-389824ee]{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:#ffffffeb}.auth.light .input[data-v-389824ee]{background:#dde3eb;border:1px solid #b8c3d0;color:#0f172a}.auth.light .input[data-v-389824ee]::placeholder{color:#94a3b8}.input[data-v-389824ee]:focus{border-color:#00d4aa47;box-shadow:0 0 0 4px #00d4aa1a}.btn[data-v-389824ee]{width:100%;margin-top:12px;padding:9px 11px;border-radius:14px;cursor:pointer;font-weight:800;transition:background .2s,border-color .2s,color .2s,opacity .2s}.auth.dark .btn[data-v-389824ee]{border:1px solid rgba(255,255,255,.12);background:#ffffff0d;color:#ffffffe6}.auth.light .btn[data-v-389824ee]{border:1px solid #b8c3d0;background:#d1d8e3;color:#334155}.btn.primary[data-v-389824ee]{background:#00d4aa1f;border-color:#00d4aa42;color:#00d4aa}.auth.light .btn.primary[data-v-389824ee]{background:linear-gradient(135deg,#00d4aa,#00b894);border-color:#00d4aa;color:#fff}.btn.primary[data-v-389824ee]:hover:not(:disabled){filter:brightness(1.05)}.btn[data-v-389824ee]:disabled{opacity:.6;cursor:not-allowed}.auth.dark .foot[data-v-389824ee]{color:#ffffff8c}.auth.light .foot[data-v-389824ee]{color:#64748b}.foot[data-v-389824ee]{margin-top:12px;font-size:12px;text-align:center}@media(max-width:860px){.auth[data-v-389824ee]{justify-content:center;padding:16px}.shell-card[data-v-389824ee]{grid-template-columns:1fr;gap:10px;padding:14px;margin-right:0}.visual[data-v-389824ee]{padding-right:0}.lottie-box[data-v-389824ee]{max-width:200px;margin:0 auto}}.link[data-v-389824ee]{color:#00d4aa;text-decoration:none;font-weight:800}.auth.light .link[data-v-389824ee]{color:#059669}.link[data-v-389824ee]:hover{text-decoration:underline}.sup-login[data-v-f125d140]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e3a8a,#0f766e);padding:20px}.card[data-v-f125d140]{width:100%;max-width:380px;background:#fff;border-radius:14px;padding:32px 28px;box-shadow:0 20px 50px #00000040}.brand[data-v-f125d140]{font-size:22px;font-weight:700;color:#0f172a}.sub[data-v-f125d140]{color:#64748b;font-size:13px;margin:6px 0 20px}.sub.center[data-v-f125d140]{text-align:center;margin:20px 0}.who-box[data-v-f125d140]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:16px;margin-bottom:16px;text-align:center}.who-name[data-v-f125d140]{font-size:18px;font-weight:700;color:#0f172a}.who-code[data-v-f125d140]{margin-top:6px;font-size:14px;color:#64748b}.mono[data-v-f125d140]{font-family:ui-monospace,monospace}.st[data-v-f125d140]{display:inline-block;margin-top:10px;font-size:12px;padding:2px 10px;border-radius:999px;font-weight:600}.st-active[data-v-f125d140]{background:#dcfce7;color:#15803d}.st-pending[data-v-f125d140]{background:#fef3c7;color:#92400e}.st-rejected[data-v-f125d140]{background:#fee2e2;color:#b91c1c}.field[data-v-f125d140]{margin-bottom:14px}.field label[data-v-f125d140]{display:block;font-size:13px;color:#475569;margin-bottom:6px}.input[data-v-f125d140]{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:14px;background:#fff;color:#0f172a;-webkit-text-fill-color:#0f172a}.input[data-v-f125d140]::placeholder{color:#94a3b8}.input[data-v-f125d140]:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26;background:#fff}.input[data-v-f125d140]:-webkit-autofill,.input[data-v-f125d140]:-webkit-autofill:hover,.input[data-v-f125d140]:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px #fff inset;box-shadow:0 0 0 1000px #fff inset;-webkit-text-fill-color:#0f172a}.btn.primary[data-v-f125d140]{width:100%;margin-top:8px;padding:11px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer}.btn.primary[data-v-f125d140]:disabled{opacity:.6;cursor:not-allowed}.btn.ghost[data-v-f125d140]{width:100%;margin-top:10px;padding:10px;background:#fff;color:#2563eb;border:1px solid #bfdbfe;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}.btn.ghost[data-v-f125d140]:hover{background:#eff6ff}.btn.ghost.danger[data-v-f125d140]{color:#b91c1c;border-color:#fecaca}.btn.ghost.danger[data-v-f125d140]:hover{background:#fef2f2}.err[data-v-f125d140]{color:#dc2626;font-size:13px;margin-bottom:10px}.tip[data-v-f125d140]{margin-top:16px;color:#94a3b8;font-size:12px;text-align:center}.tip[data-v-f125d140]:last-of-type{margin-top:8px}.back-link[data-v-f125d140]{color:#2563eb;text-decoration:none}.sup-reg[data-v-a107a540]{min-height:100vh;box-sizing:border-box;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e3a8a,#0f766e);padding:16px 20px}.card[data-v-a107a540]{width:100%;max-width:820px;background:#fff;border-radius:14px;padding:22px 28px 20px;box-shadow:0 20px 50px #00000040;box-sizing:border-box}.card-head[data-v-a107a540]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f1f5f9}.brand[data-v-a107a540]{font-size:20px;font-weight:700;color:#0f172a}.sub[data-v-a107a540]{color:#64748b;font-size:12px;margin-top:4px;line-height:1.45}.back-link[data-v-a107a540]{flex-shrink:0;color:#2563eb;text-decoration:none;font-size:13px;padding-top:4px}.form-grid[data-v-a107a540]{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}.field[data-v-a107a540]{min-width:0}.field-full[data-v-a107a540]{grid-column:1 / -1}.field-area[data-v-a107a540]{grid-column:span 1}.field label[data-v-a107a540]{display:block;font-size:12px;color:#475569;margin-bottom:4px;font-weight:500}.req[data-v-a107a540]{color:#dc2626}.input[data-v-a107a540]{width:100%;box-sizing:border-box;padding:8px 11px;border:1px solid #cbd5e1;border-radius:8px;font-size:14px;background:#fff;color:#0f172a;line-height:1.4}.input[data-v-a107a540]::placeholder{color:#94a3b8}.input.area[data-v-a107a540]{resize:vertical;min-height:52px;max-height:80px}.input[data-v-a107a540]:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.err[data-v-a107a540]{margin-top:10px;color:#dc2626;font-size:13px;padding:8px 10px;background:#fef2f2;border-radius:8px}.card-foot[data-v-a107a540]{margin-top:14px;padding-top:12px;border-top:1px solid #f1f5f9}.btn.primary[data-v-a107a540]{width:100%;padding:11px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer}.btn.primary[data-v-a107a540]:disabled{opacity:.6;cursor:not-allowed}.done[data-v-a107a540]{text-align:center;max-width:440px}.ok-ico[data-v-a107a540]{width:56px;height:56px;line-height:56px;border-radius:50%;background:#dcfce7;color:#16a34a;font-size:30px;margin:0 auto 12px}.code-box[data-v-a107a540]{margin:14px 0;color:#64748b;font-size:13px}.code[data-v-a107a540]{margin-top:6px;font-size:26px;font-weight:800;letter-spacing:2px;color:#0f172a;font-family:ui-monospace,monospace}@media(max-width:640px){.form-grid[data-v-a107a540]{grid-template-columns:1fr}.field-area[data-v-a107a540]{grid-column:1 / -1}.card-head[data-v-a107a540]{flex-direction:column}}.portal[data-v-e9d7de46]{min-height:100vh;background:#f1f5f9}.top[data-v-e9d7de46]{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;background:#0f172a;color:#fff}.brand[data-v-e9d7de46]{font-weight:700;font-size:18px}.who[data-v-e9d7de46]{font-size:13px;opacity:.9}.link[data-v-e9d7de46]{background:none;border:none;color:#93c5fd;cursor:pointer;margin-left:10px}.body[data-v-e9d7de46]{max-width:860px;margin:0 auto;padding:24px 16px}.bar[data-v-e9d7de46]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.bar h2[data-v-e9d7de46]{font-size:18px;color:#0f172a;margin:0}.cat-tabs[data-v-e9d7de46]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.cat-tab[data-v-e9d7de46]{padding:6px 14px;border:1px solid #cbd5e1;background:#fff;border-radius:999px;font-size:13px;cursor:pointer;color:#475569}.cat-tab.active[data-v-e9d7de46]{background:#2563eb;color:#fff;border-color:#2563eb}.title-wrap[data-v-e9d7de46]{display:flex;flex-direction:column;gap:4px}.cat-badge[data-v-e9d7de46]{display:inline-block;align-self:flex-start;font-size:11px;padding:2px 8px;border-radius:6px;background:#e0e7ff;color:#3730a3;font-weight:600}.btn[data-v-e9d7de46]{padding:9px 16px;border:1px solid #cbd5e1;background:#fff;border-radius:8px;cursor:pointer;font-size:14px}.btn.primary[data-v-e9d7de46]{background:#2563eb;color:#fff;border-color:#2563eb}.btn.primary[data-v-e9d7de46]:disabled{opacity:.6;cursor:not-allowed}.notice[data-v-e9d7de46]{border-radius:10px;padding:12px 14px;font-size:13px;margin-bottom:16px}.notice.pending[data-v-e9d7de46]{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.notice.rejected[data-v-e9d7de46]{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.empty[data-v-e9d7de46]{color:#94a3b8;text-align:center;padding:48px 0}.list[data-v-e9d7de46]{display:flex;flex-direction:column;gap:12px}.item[data-v-e9d7de46]{background:#fff;border-radius:12px;padding:16px;box-shadow:0 1px 3px #0000000f}.item-head[data-v-e9d7de46]{display:flex;justify-content:space-between;align-items:center}.title[data-v-e9d7de46]{font-weight:600;color:#0f172a}.badge[data-v-e9d7de46]{font-size:12px;padding:3px 10px;background:#e0e7ff;color:#3730a3;border-radius:999px}.meta[data-v-e9d7de46]{display:flex;gap:16px;color:#64748b;font-size:13px;margin-top:6px}.meta .time[data-v-e9d7de46]{margin-left:auto}.desc[data-v-e9d7de46]{margin-top:8px;color:#334155;font-size:14px;white-space:pre-wrap}.files[data-v-e9d7de46]{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.file[data-v-e9d7de46]{font-size:13px;color:#2563eb;text-decoration:none;background:#eff6ff;padding:4px 10px;border-radius:6px}.err[data-v-e9d7de46]{color:#dc2626;font-size:13px;margin:8px 0}.ok[data-v-e9d7de46]{color:#16a34a;font-size:13px;margin:8px 0}.mask[data-v-e9d7de46]{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal[data-v-e9d7de46]{width:100%;max-width:480px;background:#fff;border-radius:14px;overflow:hidden;color-scheme:light}.modal-head[data-v-e9d7de46]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e2e8f0}.modal-title[data-v-e9d7de46]{font-weight:600}.icon[data-v-e9d7de46]{background:none;border:none;font-size:22px;cursor:pointer;color:#64748b}.modal-body[data-v-e9d7de46]{padding:16px 20px;max-height:60vh;overflow:auto}.modal-foot[data-v-e9d7de46]{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid #e2e8f0}.field[data-v-e9d7de46]{margin-bottom:14px}.field label[data-v-e9d7de46]{display:block;font-size:13px;color:#475569;margin-bottom:6px}.input[data-v-e9d7de46],.modal select.input[data-v-e9d7de46],.modal textarea.input[data-v-e9d7de46]{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:14px;background:#fff;color:#0f172a;color-scheme:light;line-height:1.45}.input[data-v-e9d7de46]::placeholder{color:#94a3b8}.input[data-v-e9d7de46]:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.modal input[type=file][data-v-e9d7de46]{color-scheme:light;font-size:13px;color:#334155}.modal input[type=file][data-v-e9d7de46]::file-selector-button{margin-right:10px;padding:8px 14px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;cursor:pointer}.modal input[type=file][data-v-e9d7de46]::file-selector-button:hover{background:#f8fafc;border-color:#94a3b8}.hint[data-v-e9d7de46]{font-size:12px;color:#94a3b8;margin-top:6px}.chips[data-v-e9d7de46]{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.chip[data-v-e9d7de46]{font-size:12px;background:#f1f5f9;padding:4px 10px;border-radius:6px}.chip b[data-v-e9d7de46]{cursor:pointer;color:#dc2626;margin-left:4px}.portal-tabs[data-v-e9d7de46]{display:flex;gap:8px;margin-bottom:16px}.portal-tab[data-v-e9d7de46]{padding:8px 16px;border:1px solid #cbd5e1;background:#fff;border-radius:999px;font-size:14px;cursor:pointer;color:#475569}.portal-tab.active[data-v-e9d7de46]{background:#0f172a;color:#fff;border-color:#0f172a}.tender-item[data-v-e9d7de46]{cursor:pointer;transition:box-shadow .15s}.tender-item[data-v-e9d7de46]:hover{box-shadow:0 4px 12px #00000014}.sub[data-v-e9d7de46]{font-size:12px;margin-top:2px}.muted[data-v-e9d7de46]{color:#64748b}.quoted[data-v-e9d7de46]{color:#16a34a;font-weight:600}.can-quote[data-v-e9d7de46]{color:#2563eb;font-weight:600}.phase-pending[data-v-e9d7de46]{background:#f1f5f9;color:#475569}.phase-active[data-v-e9d7de46]{background:#dcfce7;color:#166534}.phase-ended[data-v-e9d7de46],.phase-closed[data-v-e9d7de46]{background:#fef3c7;color:#92400e}.modal-wide[data-v-e9d7de46]{max-width:640px}.tender-meta[data-v-e9d7de46]{font-size:13px;color:#334155;display:grid;gap:6px;margin-bottom:14px}.block[data-v-e9d7de46]{margin-bottom:14px}.block-label[data-v-e9d7de46]{font-weight:600;font-size:13px;color:#0f172a;margin-bottom:8px}.mini-table[data-v-e9d7de46]{width:100%;border-collapse:collapse;font-size:12px}.mini-table th[data-v-e9d7de46],.mini-table td[data-v-e9d7de46]{border:1px solid #e2e8f0;padding:6px 8px;text-align:left}.mini-table th[data-v-e9d7de46]{background:#f8fafc;color:#64748b}.quote-block[data-v-e9d7de46]{border-top:1px dashed #e2e8f0;padding-top:12px}
