:root{--bg:#eef2f4;--panel:#fff;--ink:#1c2430;--muted:#5d6b7a;--line:#d5dee6;--accent:#0f6e56;--accent-soft:#e3f3ee;--warn:#9a3412;--warn-soft:#ffedd5;--seat-empty:#f7fafc;--shadow:0 1px 2px #1c24300f;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.45}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;margin:0}#app{min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}a{color:var(--accent)}.login-page[data-v-7271598e]{background:radial-gradient(at 0 0,#dceee8 0%,#0000 50%),linear-gradient(160deg,#eef2f4 0%,#e5ece9 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card[data-v-7271598e]{border:1px solid var(--line);width:min(400px,100%);box-shadow:var(--shadow);background:#fff;border-radius:14px;gap:12px;padding:28px 24px;display:grid}.eyebrow[data-v-7271598e]{color:var(--muted);letter-spacing:.04em;margin:0;font-size:13px}h1[data-v-7271598e]{margin:0;font-size:26px}.sub[data-v-7271598e]{color:var(--muted);margin:0 0 8px;font-size:13px}label[data-v-7271598e]{color:var(--muted);gap:6px;font-size:13px;display:grid}input[data-v-7271598e]{border:1px solid var(--line);font:inherit;color:var(--ink);border-radius:8px;padding:10px 12px}.btn[data-v-7271598e]{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:8px;margin-top:6px;padding:10px 14px}.btn[data-v-7271598e]:disabled{opacity:.65;cursor:not-allowed}.error[data-v-7271598e]{background:var(--warn-soft);color:var(--warn);border-radius:8px;margin:0;padding:8px 10px;font-size:13px}.page[data-v-cb53d95a]{max-width:1400px;margin:0 auto;padding:24px 20px 40px}.top[data-v-cb53d95a]{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.eyebrow[data-v-cb53d95a]{color:var(--muted);letter-spacing:.04em;margin:0 0 4px;font-size:13px}h1[data-v-cb53d95a]{margin:0;font-size:28px;font-weight:700}.top-actions[data-v-cb53d95a]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.user-box[data-v-cb53d95a]{border-left:1px solid var(--line);align-items:center;gap:8px;margin-left:4px;padding-left:10px;display:inline-flex}.user-name[data-v-cb53d95a]{color:var(--muted);font-size:13px}.password-panel[data-v-cb53d95a]{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;margin-top:14px;padding:14px 16px}.password-panel h2[data-v-cb53d95a]{margin:0 0 4px;font-size:16px}.password-panel>p[data-v-cb53d95a]{color:var(--muted);margin:0 0 10px;font-size:13px}.password-form[data-v-cb53d95a]{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.password-form input[data-v-cb53d95a]{border:1px solid var(--line);border-radius:8px;padding:8px 10px}.search[data-v-cb53d95a]{border:1px solid var(--line);background:var(--panel);border-radius:8px;min-width:220px;padding:8px 12px}.btn[data-v-cb53d95a]{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:8px 14px}.btn[data-v-cb53d95a]:disabled{opacity:.6;cursor:not-allowed}.btn.ghost[data-v-cb53d95a]{background:var(--panel);color:var(--ink);border:1px solid var(--line);align-items:center;text-decoration:none;display:inline-flex}.stats[data-v-cb53d95a]{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:18px;display:grid}.stat[data-v-cb53d95a]{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;padding:12px 14px}.stat span[data-v-cb53d95a]{color:var(--muted);font-size:12px;display:block}.stat strong[data-v-cb53d95a]{font-size:22px}.banner[data-v-cb53d95a]{background:var(--warn-soft);color:var(--warn);border-radius:8px;margin:14px 0 0;padding:10px 12px}.banner.ok[data-v-cb53d95a]{background:var(--accent-soft);color:var(--accent)}.banner.muted[data-v-cb53d95a]{background:var(--panel);color:var(--muted);border:1px solid var(--line)}.data-tools[data-v-cb53d95a]{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;margin-top:16px;padding:14px 16px}.data-tools-head[data-v-cb53d95a]{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.data-tools-head h2[data-v-cb53d95a]{margin:0 0 4px;font-size:16px}.data-tools-head p[data-v-cb53d95a]{color:var(--muted);max-width:760px;margin:0;font-size:13px}.mode-switch[data-v-cb53d95a]{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.mode-option[data-v-cb53d95a]{border:1px solid var(--line);cursor:pointer;color:var(--ink);border-radius:999px;align-items:center;gap:4px;padding:6px 10px;display:inline-flex}.mode-option.active[data-v-cb53d95a]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.mode-option input[data-v-cb53d95a]{accent-color:var(--accent)}.data-grid[data-v-cb53d95a]{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:12px;display:grid}.data-card[data-v-cb53d95a]{border:1px solid var(--line);background:#fbfcfd;border-radius:10px;padding:12px}.data-card h3[data-v-cb53d95a]{margin:0 0 6px;font-size:15px}.data-card .hint[data-v-cb53d95a]{color:var(--muted);margin:0 0 10px;font-size:12px;line-height:1.5}.data-actions[data-v-cb53d95a]{flex-wrap:wrap;gap:8px;display:flex}.board[data-v-cb53d95a]{grid-template-columns:minmax(300px,400px) 1fr;align-items:stretch;gap:14px;height:calc(100vh - 20px);min-height:520px;margin-top:16px;display:grid;position:sticky;top:10px}.panel[data-v-cb53d95a]{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);overscroll-behavior:contain;border-radius:12px;min-height:0;max-height:100%;padding:14px;overflow-y:auto}.panel.seats[data-v-cb53d95a]{flex-direction:column;padding-bottom:10px;display:flex;overflow:hidden}.seats-toolbar[data-v-cb53d95a]{background:var(--panel);border-bottom:1px solid var(--line);z-index:2;flex-shrink:0;margin-bottom:10px;padding-bottom:4px}.seat-grid-scroll[data-v-cb53d95a]{overscroll-behavior:contain;flex:1;min-height:0;padding-right:2px;overflow-y:auto}.panel-head h2[data-v-cb53d95a]{flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 4px;font-size:18px;display:flex}.pool-total[data-v-cb53d95a]{color:var(--accent);font-size:14px;font-style:normal;font-weight:600}.panel-head p[data-v-cb53d95a]{color:var(--muted);margin:0;font-size:13px}.panel-head.row[data-v-cb53d95a]{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.tabs[data-v-cb53d95a]{flex-wrap:wrap;gap:6px;margin:12px 0;display:flex}.tab[data-v-cb53d95a]{border:1px solid var(--line);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;display:flex}.tab.active[data-v-cb53d95a]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.tab small[data-v-cb53d95a]{color:var(--muted)}.seat-search-row[data-v-cb53d95a]{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.seat-search[data-v-cb53d95a]{border:1px solid var(--line);background:#fff;border-radius:8px;flex:1;min-width:200px;padding:8px 12px}.seat-search-hint[data-v-cb53d95a]{color:var(--muted);font-size:12px}.job-band-filters[data-v-cb53d95a]{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.model-filters[data-v-cb53d95a]{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.model-filters .filter-label[data-v-cb53d95a]{color:var(--muted);margin-right:2px;font-size:12px}.model-filters .tab[data-v-cb53d95a]:disabled{opacity:.4;cursor:not-allowed}.job-band-badge[data-v-cb53d95a]{background:var(--accent-soft);color:var(--accent);border-radius:999px;margin-left:6px;padding:1px 6px;font-size:11px;font-weight:600;display:inline-block}.seat-floor-tag[data-v-cb53d95a]{color:var(--accent);margin-left:6px;font-size:11px;font-weight:500}.quick-form[data-v-cb53d95a]{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin:10px 0 8px;display:grid}.quick-form input[data-v-cb53d95a]{border:1px solid var(--line);border-radius:8px;padding:8px 10px}.source-group+.source-group[data-v-cb53d95a]{margin-top:16px}.source-title[data-v-cb53d95a]{width:100%;color:var(--muted);cursor:pointer;text-align:left;font-size:13px;font:inherit;background:0 0;border:none;justify-content:space-between;margin-bottom:8px;padding:4px 0;display:flex}.category-summary-bar[data-v-cb53d95a]{background:var(--accent-soft);color:var(--ink);border-radius:8px;flex-wrap:wrap;gap:8px 14px;margin:0 0 12px;padding:10px 12px;font-size:13px;display:flex}.category-summary-bar strong[data-v-cb53d95a]{color:var(--accent)}.category-summary-bar .sum[data-v-cb53d95a]{margin-left:auto}.loc-block[data-v-cb53d95a]{border:1px solid var(--line);background:#fbfcfd;border-radius:10px;margin-bottom:8px;padding:10px}.loc-head[data-v-cb53d95a]{justify-content:space-between;gap:8px;margin-bottom:8px;font-size:13px;display:flex}.loc-head span[data-v-cb53d95a]{color:var(--muted)}.chip-list[data-v-cb53d95a]{flex-direction:column;gap:8px;display:flex}.chip-list.horizontal[data-v-cb53d95a]{flex-flow:wrap}.chip[data-v-cb53d95a]{border:1px solid var(--line);cursor:grab;background:#fff;border-radius:10px;gap:2px;max-width:100%;padding:8px 10px;display:grid}.chip[data-v-cb53d95a]:active{cursor:grabbing}.chip strong[data-v-cb53d95a]{font-size:13px}.chip span[data-v-cb53d95a]{color:var(--muted);word-break:break-word;font-size:11px}.chip.on-seat[data-v-cb53d95a]{background:var(--accent-soft);border-color:#b7ddd1}.linkish[data-v-cb53d95a]{color:var(--accent);background:0 0;border:none;justify-self:start;margin-top:2px;padding:0;font-size:12px}.seat-grid[data-v-cb53d95a]{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.seat[data-v-cb53d95a]{border:1px dashed var(--line);background:var(--seat-empty);border-radius:10px;min-height:120px;padding:12px}.seat.filled[data-v-cb53d95a]{background:#fff;border-style:solid}.seat-code[data-v-cb53d95a]{font-weight:700}.seat-label[data-v-cb53d95a]{color:var(--muted);font-size:12px}.assign-list[data-v-cb53d95a]{gap:6px;margin-top:8px;display:grid}.seat-empty[data-v-cb53d95a]{color:var(--muted);margin-top:18px;font-size:13px}.empty[data-v-cb53d95a]{color:var(--muted);margin:12px 0 0;font-size:13px}.btn.accent[data-v-cb53d95a]{background:var(--accent)}.mode-lock-hint[data-v-cb53d95a]{color:var(--muted);margin:4px 0 0;font-size:13px}.labeling-panel[data-v-cb53d95a]{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;margin-top:8px;padding:16px}.labeling-summary[data-v-cb53d95a]{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:12px;display:flex}.labeling-stat span[data-v-cb53d95a]{color:var(--muted);font-size:12px;display:block}.labeling-stat strong[data-v-cb53d95a]{font-size:20px}.labeling-progress[data-v-cb53d95a]{background:var(--accent-soft);border-radius:999px;flex:1;min-width:140px;height:10px;overflow:hidden}.labeling-progress-bar[data-v-cb53d95a]{background:var(--accent);height:100%;transition:width .2s}.labeling-toolbar[data-v-cb53d95a]{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.labeling-list[data-v-cb53d95a]{gap:8px;max-height:min(70vh,780px);display:grid;overflow:auto}.labeling-row[data-v-cb53d95a]{text-align:left;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;grid-template-columns:28px 56px minmax(120px,1.2fr) minmax(90px,.8fr) minmax(160px,1.4fr) auto;align-items:center;gap:10px;padding:12px 14px;transition:background .15s,border-color .15s,transform 80ms;display:grid}.labeling-row[data-v-cb53d95a]:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.labeling-row.done[data-v-cb53d95a]{background:#eef8f3;border-color:#b7ddd1}.labeling-row.busy[data-v-cb53d95a]{opacity:.7}.labeling-row .check[data-v-cb53d95a]{border:2px solid var(--line);width:24px;height:24px;color:var(--accent);border-radius:999px;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:inline-flex}.labeling-row.done .check[data-v-cb53d95a]{background:var(--accent);border-color:var(--accent);color:#fff}.labeling-row .seat-no[data-v-cb53d95a]{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:700}.labeling-row .src[data-v-cb53d95a],.labeling-row .model[data-v-cb53d95a],.labeling-row .dest[data-v-cb53d95a]{gap:2px;min-width:0;display:grid}.labeling-row strong[data-v-cb53d95a]{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.labeling-row small[data-v-cb53d95a]{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.labeling-row .status-pill[data-v-cb53d95a]{background:var(--accent-soft);color:var(--accent);border-radius:999px;justify-self:end;padding:4px 10px;font-size:12px;font-weight:600}.labeling-row.done .status-pill[data-v-cb53d95a]{color:#1f6b52;background:#d8f0e6}@media (width<=900px){.labeling-row[data-v-cb53d95a]{grid-template-columns:28px 48px 1fr;grid-template-areas:"check no status""check src src""check model model""check dest dest"}.labeling-row .check[data-v-cb53d95a]{grid-area:check}.labeling-row .seat-no[data-v-cb53d95a]{grid-area:no}.labeling-row .status-pill[data-v-cb53d95a]{grid-area:status}.labeling-row .src[data-v-cb53d95a]{grid-area:src}.labeling-row .model[data-v-cb53d95a]{grid-area:model}.labeling-row .dest[data-v-cb53d95a]{grid-area:dest}}.pool[data-v-cb53d95a]{background-image:linear-gradient(#fff 0%,#f7faf9 100%)}@media (width<=960px){.board[data-v-cb53d95a]{grid-template-columns:1fr;height:auto;position:static}.panel[data-v-cb53d95a]{max-height:min(70vh,640px)}}
