*{margin:0;padding:0;box-sizing:border-box}:root,[data-theme=dark]{--bg-primary: #0f1117;--bg-secondary: #1a1f2e;--bg-tertiary: #141824;--bg-hover: #1e2840;--bg-row-hover: #1e2840;--bg-card-hover: #1e2840;--bg-surface: rgba(255,255,255,.03);--bg-surface-light: rgba(255,255,255,.05);--bg-surface-mid: rgba(255,255,255,.08);--text-primary: #e2e8f0;--text-secondary: #f1f5f9;--text-muted: #64748b;--text-subtle: #475569;--text-disabled: #6b7280;--text-desc: #cbd5e1;--text-status: #94a3b8;--border: #2d3550;--border-hover: #475569;--accent-blue: #3b82f6;--accent-blue-light: #60a5fa;--accent-blue-lighter: #93c5fd;--accent-green: #22c55e;--accent-green-light: #4ade80;--accent-green-lighter: #6ee7b7;--accent-yellow: #f59e0b;--accent-yellow-light: #fbbf24;--accent-yellow-lighter: #fcd34d;--accent-red: #ef4444;--accent-red-light: #f87171;--accent-red-lighter: #fca5a5;--accent-purple: #6366f1;--accent-purple-light: #a5b4fc;--accent-purple-lighter: #c7d2fe;--accent-orange-light: #fb923c;--accent-orange-lighter: #fdba74;--gradient-primary: linear-gradient(135deg, #3b82f6, #6366f1);--gradient-green: linear-gradient(135deg, #22c55e, #16a34a);--gradient-yellow: linear-gradient(135deg, #d97706, #b45309);--gradient-red: linear-gradient(135deg, #ef4444, #dc2626);--gradient-stat: linear-gradient(135deg, #60a5fa, #a78bfa);--overlay: rgba(0,0,0,.6);--card-shadow: 0 20px 25px -5px rgba(0,0,0,.3);--dropdown-shadow: 0 8px 24px rgba(0,0,0,.4);--banner-checkin-bg: linear-gradient(90deg, rgba(217,119,6,.15), rgba(180,83,9,.08));--banner-checkin-border: rgba(217,119,6,.3);--banner-checkin-text: #fbbf24;--banner-time-bg: linear-gradient(90deg, rgba(59,130,246,.12), rgba(99,102,241,.06));--banner-time-border: rgba(59,130,246,.25);--banner-time-text: #93c5fd;--color-scheme: dark}[data-theme=light]{--bg-primary: #f1f5f9;--bg-secondary: #ffffff;--bg-tertiary: #e2e8f0;--bg-hover: #f8fafc;--bg-row-hover: #f1f5f9;--bg-card-hover: #f1f5f9;--bg-surface: rgba(0,0,0,.02);--bg-surface-light: rgba(0,0,0,.03);--bg-surface-mid: rgba(0,0,0,.05);--text-primary: #1e293b;--text-secondary: #0f172a;--text-muted: #475569;--text-subtle: #64748b;--text-disabled: #64748b;--text-desc: #334155;--text-status: #475569;--border: #e2e8f0;--border-hover: #cbd5e1;--accent-blue: #2563eb;--accent-blue-light: #2563eb;--accent-blue-lighter: #3b82f6;--accent-green: #16a34a;--accent-green-light: #15803d;--accent-green-lighter: #22c55e;--accent-yellow: #b45309;--accent-yellow-light: #d97706;--accent-yellow-lighter: #f59e0b;--accent-red: #dc2626;--accent-red-light: #b91c1c;--accent-red-lighter: #ef4444;--accent-purple: #4f46e5;--accent-purple-light: #4f46e5;--accent-purple-lighter: #6366f1;--accent-orange-light: #ea580c;--accent-orange-lighter: #f97316;--gradient-primary: linear-gradient(135deg, #2563eb, #4f46e5);--gradient-green: linear-gradient(135deg, #16a34a, #15803d);--gradient-yellow: linear-gradient(135deg, #d97706, #b45309);--gradient-red: linear-gradient(135deg, #dc2626, #b91c1c);--gradient-stat: linear-gradient(135deg, #3b82f6, #6366f1);--overlay: rgba(0,0,0,.25);--card-shadow: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1);--dropdown-shadow: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--banner-checkin-bg: linear-gradient(90deg, rgba(217,119,6,.08), rgba(180,83,9,.04));--banner-checkin-border: rgba(217,119,6,.25);--banner-checkin-text: #b45309;--banner-time-bg: linear-gradient(90deg, rgba(37,99,235,.08), rgba(79,70,229,.04));--banner-time-border: rgba(37,99,235,.2);--banner-time-text: #2563eb;--color-scheme: light}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}#app{min-height:100vh}.fault[data-v-2fae330f]{font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh}.topbar[data-v-2fae330f]{display:flex;align-items:center;justify-content:space-between;padding:0 28px;height:64px;background:var(--bg-secondary);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.topbar-left[data-v-2fae330f]{display:flex;align-items:center;gap:14px}.topbar-icon[data-v-2fae330f]{width:42px;height:40px;display:flex;align-items:center;justify-content:center}.topbar-icon svg path[data-v-2fae330f]{fill:var(--text-disabled)}.topbar-title[data-v-2fae330f]{font-size:20px;font-weight:700;letter-spacing:.5px;color:var(--text-secondary)}.topbar-right[data-v-2fae330f]{display:flex;align-items:center;gap:18px}.status-info[data-v-2fae330f]{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-status)}.refreshing-indicator[data-v-2fae330f]{animation:spin-2fae330f 1s linear infinite;display:inline-flex;align-items:center}.refreshing-indicator svg[data-v-2fae330f]{display:block}.spinner-icon[data-v-2fae330f]{animation:spin-2fae330f 1s linear infinite;flex-shrink:0}.status-dot[data-v-2fae330f]{width:8px;height:8px;border-radius:50%;background:var(--accent-green);animation:pulse-2fae330f 2s infinite}.status-dot.error[data-v-2fae330f]{background:var(--accent-red);animation:none}.status-dot.loading[data-v-2fae330f]{background:var(--accent-yellow)}@keyframes pulse-2fae330f{0%,to{opacity:1}50%{opacity:.4}}.countdown[data-v-2fae330f]{font-size:13px;color:var(--text-muted);min-width:100px;text-align:right}.theme-btn[data-v-2fae330f]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1.5px solid var(--border-hover);border-radius:8px;color:var(--text-status);cursor:pointer;transition:all .2s}.theme-btn[data-v-2fae330f]:hover{border-color:var(--accent-blue);color:var(--accent-blue-light);background:rgba(59,130,246,.08)}.settings-btn[data-v-2fae330f],.refresh-btn[data-v-2fae330f],.checkin-btn[data-v-2fae330f],.volunteer-btn[data-v-2fae330f]{display:flex;align-items:center;gap:6px;padding:8px 18px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none;white-space:nowrap}.settings-btn[data-v-2fae330f]{background:transparent;border:1.5px solid var(--border-hover);color:var(--text-status)}.settings-btn[data-v-2fae330f]:hover{border-color:var(--accent-blue);color:var(--accent-blue-light);background:rgba(59,130,246,.08)}.refresh-btn[data-v-2fae330f]{background:var(--gradient-primary);border:none;color:#fff}.refresh-btn[data-v-2fae330f]:hover{opacity:.88}.refresh-btn[data-v-2fae330f]:active{transform:scale(.97)}.refresh-btn[data-v-2fae330f]:disabled{opacity:.5;cursor:not-allowed;transform:none}.refresh-btn.spinning svg[data-v-2fae330f]{animation:spin-2fae330f .7s linear infinite}@keyframes spin-2fae330f{to{transform:rotate(360deg)}}.checkin-btn[data-v-2fae330f]{background:transparent;border:1.5px solid var(--border-hover);color:var(--text-status)}.checkin-btn[data-v-2fae330f]:hover{border-color:var(--accent-yellow);color:var(--accent-yellow-light);background:rgba(245,158,11,.08)}.checkin-btn.active[data-v-2fae330f]{background:var(--gradient-yellow);border-color:transparent;color:#fff;box-shadow:0 0 16px #d9770659}.checkin-btn.active[data-v-2fae330f]:hover{opacity:.9}.sync-btn[data-v-2fae330f]{display:flex;align-items:center;gap:6px;padding:8px 18px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none;white-space:nowrap;background:transparent;border:1.5px solid var(--border-hover);color:var(--text-status)}.sync-btn[data-v-2fae330f]:hover{border-color:var(--accent-green);color:var(--accent-green-light);background:rgba(34,197,94,.08)}.sync-btn.active[data-v-2fae330f]{background:var(--gradient-green);border-color:transparent;color:#fff;box-shadow:0 0 12px #22c55e59}.sync-btn.active[data-v-2fae330f]:hover{opacity:.9}.volunteer-btn[data-v-2fae330f]{background:transparent;border:1.5px solid var(--border-hover);color:var(--text-status);text-decoration:none}.volunteer-btn[data-v-2fae330f]:hover{border-color:var(--accent-green);color:var(--accent-green-light);background:rgba(34,197,94,.08)}.checkin-banner[data-v-2fae330f]{display:none;align-items:center;gap:10px;padding:10px 28px;background:var(--banner-checkin-bg);border-bottom:1px solid var(--banner-checkin-border);font-size:13px;color:var(--banner-checkin-text)}.checkin-banner.visible[data-v-2fae330f]{display:flex}.checkin-banner-dot[data-v-2fae330f]{width:8px;height:8px;border-radius:50%;background:var(--accent-yellow);animation:pulse-2fae330f 1.5s infinite;flex-shrink:0}.checkin-banner strong[data-v-2fae330f]{font-weight:700}.time-filter-banner[data-v-2fae330f]{display:none;align-items:center;gap:10px;padding:10px 28px;background:var(--banner-time-bg);border-bottom:1px solid var(--banner-time-border);font-size:13px;color:var(--banner-time-text)}.time-filter-banner.visible[data-v-2fae330f]{display:flex}.time-filter-banner strong[data-v-2fae330f]{font-weight:700}.clear-filter-btn[data-v-2fae330f]{padding:4px 12px;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:6px;color:var(--accent-red-light);font-size:12px;cursor:pointer;transition:all .2s;white-space:nowrap}.clear-filter-btn[data-v-2fae330f]:hover{background:rgba(239,68,68,.2);border-color:#ef444480;color:var(--accent-red-lighter)}.time-filter-row[data-v-2fae330f]{display:flex;align-items:center;gap:8px}.time-input[data-v-2fae330f]{flex:1;height:40px;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;padding:0 14px;color:var(--text-secondary);font-size:14px;outline:none;transition:border-color .2s;color-scheme:var(--color-scheme);cursor:text;min-width:0}.time-input[data-v-2fae330f]:focus{border-color:var(--accent-blue)}.time-input[data-v-2fae330f]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}.time-input[data-v-2fae330f]::-webkit-datetime-edit{color:var(--text-secondary)}.time-input[data-v-2fae330f]::-webkit-datetime-edit-fields-wrapper{color:var(--text-secondary)}.modal-overlay[data-v-2fae330f]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-2fae330f]{background-color:var(--bg-secondary);border-radius:12px;box-shadow:var(--card-shadow);width:90%;max-width:400px;overflow:hidden;border:1px solid var(--border)}.settings-modal .modal-header[data-v-2fae330f]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--bg-tertiary)}.settings-modal .modal-header h3[data-v-2fae330f]{margin:0;font-size:16px;color:var(--text-secondary)}.settings-modal .close-btn[data-v-2fae330f]{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-disabled);padding:0;line-height:1}.settings-modal .close-btn[data-v-2fae330f]:hover{color:var(--text-secondary)}.settings-modal .modal-body[data-v-2fae330f]{padding:24px 20px}.setting-item[data-v-2fae330f]{margin-bottom:16px}.setting-item[data-v-2fae330f]:last-child{margin-bottom:0}.setting-item label[data-v-2fae330f]{display:block;font-size:14px;font-weight:600;color:var(--text-secondary);margin-bottom:8px}.input-row[data-v-2fae330f]{display:flex;align-items:center;gap:12px}.interval-input[data-v-2fae330f]{width:120px;height:40px;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;padding:0 14px;color:var(--text-secondary);font-size:14px;outline:none;transition:border-color .2s}.interval-input[data-v-2fae330f]:focus{border-color:var(--accent-blue)}.interval-input[data-v-2fae330f]::placeholder{color:var(--text-subtle)}.input-hint[data-v-2fae330f]{font-size:12px;color:var(--text-disabled)}.setting-desc[data-v-2fae330f]{font-size:12px;color:var(--text-disabled);margin-top:8px}.settings-modal .modal-footer[data-v-2fae330f]{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border);background:var(--bg-tertiary)}.cancel-btn[data-v-2fae330f]{padding:8px 20px;background:transparent;border:1px solid var(--border-hover);border-radius:8px;color:var(--text-status);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.cancel-btn[data-v-2fae330f]:hover{border-color:var(--text-secondary);color:var(--text-secondary)}.save-btn[data-v-2fae330f]{padding:8px 20px;background:var(--gradient-primary);border:none;border-radius:8px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .2s}.save-btn[data-v-2fae330f]:hover{opacity:.88}.reset-db-btn[data-v-2fae330f]{margin-top:12px;padding:10px 20px;background:var(--gradient-red);border:none;border-radius:8px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;width:100%}.reset-db-btn[data-v-2fae330f]:hover:not(:disabled){opacity:.88;transform:scale(1.02)}.reset-db-btn[data-v-2fae330f]:disabled{opacity:.5;cursor:not-allowed}.stats-bar[data-v-2fae330f]{display:flex;gap:16px;padding:18px 28px;flex-wrap:wrap}.stat-card[data-v-2fae330f]{flex:1;min-width:160px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:16px 20px;display:flex;flex-direction:column;gap:4px}.stat-label[data-v-2fae330f]{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px}.stat-value[data-v-2fae330f]{font-size:28px;font-weight:800;background:var(--gradient-stat);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-sub[data-v-2fae330f]{font-size:12px;color:var(--text-subtle)}.main-content[data-v-2fae330f]{padding:0 28px 40px}.filter-bar[data-v-2fae330f]{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.search-input[data-v-2fae330f]{flex:1;min-width:200px;max-width:360px;height:38px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:0 14px;color:var(--text-primary);font-size:13px;outline:none;transition:border-color .2s}.search-input[data-v-2fae330f]:focus{border-color:var(--accent-blue)}.search-input[data-v-2fae330f]::placeholder{color:var(--text-subtle)}.filter-label[data-v-2fae330f]{font-size:13px;color:var(--text-muted)}.center-msg[data-v-2fae330f]{text-align:center;padding:80px 20px;color:var(--text-subtle)}.center-msg .title[data-v-2fae330f]{font-size:16px;font-weight:600;margin-bottom:8px;color:var(--text-muted)}.center-msg .sub[data-v-2fae330f]{font-size:13px}.spinner[data-v-2fae330f]{display:inline-block;width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent-blue);border-radius:50%;animation:spin-2fae330f .8s linear infinite;margin-bottom:16px}.group-card[data-v-2fae330f]{background:var(--bg-secondary);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:border-color .2s;margin-bottom:16px}.group-card[data-v-2fae330f]:hover{border-color:var(--accent-blue)}.group-header[data-v-2fae330f]{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--bg-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;gap:12px}.group-header-left[data-v-2fae330f]{display:flex;align-items:center;gap:12px}.group-dot[data-v-2fae330f]{width:10px;height:10px;border-radius:50%;flex-shrink:0}.group-name[data-v-2fae330f]{font-size:15px;font-weight:700;color:var(--text-secondary)}.group-badge[data-v-2fae330f]{font-size:12px;font-weight:700;padding:2px 10px;border-radius:20px;background:rgba(59,130,246,.18);color:var(--accent-blue-light);border:1px solid rgba(59,130,246,.3)}.group-toggle[data-v-2fae330f]{font-size:18px;color:var(--text-subtle);transition:transform .25s;flex-shrink:0}.group-table-wrap[data-v-2fae330f]{overflow-x:auto}table[data-v-2fae330f]{width:100%;border-collapse:collapse;font-size:13px}thead tr[data-v-2fae330f]{background:var(--bg-primary)}thead th[data-v-2fae330f]{padding:10px 16px;text-align:left;font-size:11px;font-weight:700;letter-spacing:.8px;color:var(--text-subtle);text-transform:uppercase;white-space:nowrap}tbody tr[data-v-2fae330f]{border-top:1px solid rgba(255,255,255,.05);transition:background .15s}[data-theme=light] tbody tr[data-v-2fae330f]{border-top-color:#0000000f}tbody tr[data-v-2fae330f]:hover{background:var(--bg-row-hover)}tbody td[data-v-2fae330f]{padding:10px 16px;vertical-align:middle;line-height:1.5}.td-no[data-v-2fae330f]{color:var(--text-muted);font-size:12px;white-space:nowrap;width:40px}.td-device[data-v-2fae330f]{font-weight:600;color:var(--accent-blue-lighter);white-space:nowrap;min-width:90px}.td-device .origin-badge[data-v-2fae330f]{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;width:20px;height:20px;border-radius:4px;font-size:11px;font-weight:700;color:var(--accent-yellow-light);background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.35);cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none;vertical-align:middle;line-height:1}.td-device .origin-badge[data-v-2fae330f]:hover{background:rgba(251,191,36,.25);border-color:#fbbf2499;color:var(--accent-yellow-lighter)}.td-device .restore-btn[data-v-2fae330f]{display:inline-flex;align-items:center;justify-content:center;margin-left:4px;width:22px;height:22px;border-radius:4px;background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.25);color:var(--accent-blue-light);cursor:pointer;transition:all .2s;vertical-align:middle;padding:0}.td-device .restore-btn[data-v-2fae330f]:hover{background:rgba(59,130,246,.25);border-color:#3b82f680;color:var(--accent-blue-lighter)}.origin-modal .modal-header[data-v-2fae330f]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--bg-tertiary)}.origin-modal .modal-header h3[data-v-2fae330f]{margin:0;font-size:16px;color:var(--text-secondary)}.origin-modal .close-btn[data-v-2fae330f]{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-disabled);padding:0;line-height:1}.origin-modal .close-btn[data-v-2fae330f]:hover{color:var(--text-secondary)}.origin-modal .modal-body[data-v-2fae330f]{padding:20px}.origin-modal-body[data-v-2fae330f]{white-space:pre-wrap;word-break:break-word;line-height:1.6;font-size:14px;color:var(--text-primary);max-height:60vh;overflow-y:auto}.td-desc[data-v-2fae330f]{color:var(--text-desc);max-width:280px;word-break:break-all}.desc-input[data-v-2fae330f]{width:100%;min-width:180px;min-height:32px;max-height:120px;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;padding:6px 10px;color:var(--text-primary);font-size:12px;outline:none;transition:border-color .2s;resize:none;overflow:hidden;white-space:pre-wrap;word-wrap:break-word;line-height:1.4}.desc-input[data-v-2fae330f]:focus{border-color:var(--accent-blue)}.desc-input[data-v-2fae330f]::placeholder{color:var(--text-subtle)}.td-opinion[data-v-2fae330f]{min-width:180px}.opinion-input[data-v-2fae330f]{width:100%;min-width:150px;height:32px;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;padding:0 10px;color:var(--text-primary);font-size:12px;outline:none;transition:border-color .2s}.opinion-input[data-v-2fae330f]:focus{border-color:var(--accent-blue)}.opinion-input[data-v-2fae330f]::placeholder{color:var(--text-subtle)}.td-result[data-v-2fae330f]{min-width:160px}.result-select[data-v-2fae330f]{width:100%;min-width:150px;height:32px;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;padding:0 10px;color:var(--text-primary);font-size:12px;outline:none;cursor:pointer;transition:border-color .2s}.result-select[data-v-2fae330f]:focus{border-color:var(--accent-blue)}.result-select option[data-v-2fae330f]{background:var(--bg-secondary);color:var(--text-primary)}.td-action[data-v-2fae330f]{width:80px;display:flex;align-items:center;justify-content:center;gap:6px}.clear-btn[data-v-2fae330f]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:6px;color:var(--accent-red-light);cursor:pointer;transition:all .2s}.clear-btn[data-v-2fae330f]:hover{background:rgba(239,68,68,.2);border-color:#ef444480;color:var(--accent-red-lighter)}.delete-btn[data-v-2fae330f]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:rgba(249,115,22,.1);border:1px solid rgba(249,115,22,.3);border-radius:6px;color:var(--accent-orange-light);cursor:pointer;transition:all .2s}.delete-btn[data-v-2fae330f]:hover{background:rgba(249,115,22,.2);border-color:#f9731680;color:var(--accent-orange-lighter)}.td-time[data-v-2fae330f]{color:var(--text-subtle);font-size:12px;white-space:nowrap;min-width:120px}.progress-bar-wrap[data-v-2fae330f]{position:fixed;bottom:0;left:0;width:100%;height:3px;background:var(--bg-secondary);z-index:200}.progress-bar[data-v-2fae330f]{height:100%;background:var(--gradient-primary);transition:width 1s linear}.add-btn[data-v-2fae330f]{display:flex;align-items:center;gap:5px;padding:4px 12px;background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.3);border-radius:6px;color:var(--accent-green-light);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.add-btn[data-v-2fae330f]:hover{background:rgba(34,197,94,.22);border-color:#22c55e80;color:var(--accent-green-lighter)}.copy-btn[data-v-2fae330f]{display:flex;align-items:center;gap:5px;padding:4px 12px;background:rgba(99,102,241,.12);border:1px solid rgba(99,102,241,.3);border-radius:6px;color:var(--accent-purple-light);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0}.copy-btn[data-v-2fae330f]:hover{background:rgba(99,102,241,.22);border-color:#6366f180;color:var(--accent-purple-lighter)}.copy-btn.copied[data-v-2fae330f]{background:rgba(34,197,94,.12);border-color:#22c55e4d;color:var(--accent-green-light)}.add-dropdown[data-v-2fae330f]{position:relative}.add-dropdown-content[data-v-2fae330f]{position:absolute;right:0;top:100%;margin-top:4px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:8px;z-index:50;display:flex;flex-direction:column;gap:6px;min-width:160px;box-shadow:var(--dropdown-shadow)}.device-select[data-v-2fae330f]{width:100%;height:32px;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;padding:0 8px;color:var(--text-primary);font-size:12px;outline:none;cursor:pointer}.device-select option[data-v-2fae330f]{background:var(--bg-secondary)}.confirm-add-btn[data-v-2fae330f]{width:100%;height:32px;background:var(--gradient-green);border:none;border-radius:6px;color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:opacity .2s}.confirm-add-btn[data-v-2fae330f]:hover{opacity:.88}@media (max-width: 768px){.main-content[data-v-2fae330f]{padding:0 12px 40px}.stats-bar[data-v-2fae330f]{padding:12px}.topbar[data-v-2fae330f]{padding:0 12px}.topbar-title[data-v-2fae330f]{font-size:15px}.settings-btn span[data-v-2fae330f],.checkin-btn span[data-v-2fae330f],.volunteer-btn span[data-v-2fae330f]{display:none}}.fault-board[data-v-d93e5e51]{min-height:100vh;background:var(--bg-primary);padding:20px;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,sans-serif;color:var(--text-primary)}.board-header[data-v-d93e5e51]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:var(--bg-surface-light);border-radius:12px;margin-bottom:20px}.header-left[data-v-d93e5e51]{display:flex;align-items:center;gap:12px}.board-title[data-v-d93e5e51]{margin:0;font-size:20px;font-weight:700;color:var(--text-secondary)}.board-subtitle[data-v-d93e5e51]{padding:4px 12px;background:rgba(34,197,94,.2);color:var(--accent-green-light);border-radius:20px;font-size:13px;font-weight:500}.header-right[data-v-d93e5e51]{display:flex;align-items:center;gap:16px}.update-time[data-v-d93e5e51]{font-size:13px;color:var(--text-disabled)}.theme-btn[data-v-d93e5e51]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1.5px solid var(--border-hover);border-radius:8px;color:var(--text-status);cursor:pointer;transition:all .2s;flex-shrink:0}.theme-btn[data-v-d93e5e51]:hover{border-color:var(--accent-blue);color:var(--accent-blue-light);background:rgba(59,130,246,.08)}.refresh-btn[data-v-d93e5e51]{display:flex;align-items:center;gap:6px;padding:8px 14px;background:rgba(59,130,246,.2);color:var(--accent-blue-light);border:none;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s}.refresh-btn[data-v-d93e5e51]:hover:not(:disabled){background:rgba(59,130,246,.3);color:var(--accent-blue-lighter)}.refresh-btn[data-v-d93e5e51]:disabled{opacity:.5;cursor:not-allowed}.spinner-icon[data-v-d93e5e51]{animation:spin-d93e5e51 1s linear infinite;flex-shrink:0}.countdown[data-v-d93e5e51]{font-size:12px;color:var(--accent-blue);padding:4px 12px;background:rgba(59,130,246,.15);border-radius:4px}.filter-bar[data-v-d93e5e51]{display:flex;align-items:center;gap:20px;padding:16px 24px;background:var(--bg-surface-light);border-radius:12px;margin-bottom:20px;flex-wrap:wrap}.search-box[data-v-d93e5e51]{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;color:var(--text-disabled);min-width:250px}.search-box input[data-v-d93e5e51]{background:transparent;border:none;outline:none;color:var(--text-primary);font-size:13px;width:100%}.search-box input[data-v-d93e5e51]::placeholder{color:var(--text-subtle)}.filter-item[data-v-d93e5e51]{display:flex;align-items:center;gap:8px;color:var(--text-primary);font-size:14px;cursor:pointer}.filter-item input[type=checkbox][data-v-d93e5e51]{width:16px;height:16px;cursor:pointer}.mode-hint[data-v-d93e5e51]{font-size:12px;color:var(--accent-blue);padding:4px 12px;background:rgba(59,130,246,.15);border-radius:4px}.filter-hint[data-v-d93e5e51]{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--accent-blue-lighter);padding:4px 12px;background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.2);border-radius:4px}.modal-overlay[data-v-d93e5e51]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-d93e5e51]{background-color:var(--bg-secondary);border-radius:12px;box-shadow:var(--card-shadow);width:90%;max-width:500px;overflow:hidden;border:1px solid var(--border)}.origin-modal .modal-header[data-v-d93e5e51]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--bg-tertiary)}.origin-modal .modal-header h3[data-v-d93e5e51]{margin:0;font-size:16px;color:var(--text-secondary)}.origin-modal .close-btn[data-v-d93e5e51]{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-disabled);padding:0;line-height:1}.origin-modal .close-btn[data-v-d93e5e51]:hover{color:var(--text-secondary)}.origin-modal .modal-body[data-v-d93e5e51]{padding:20px}.board-content[data-v-d93e5e51]{min-height:400px}.loading[data-v-d93e5e51]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 0;color:var(--text-disabled)}.spinner[data-v-d93e5e51]{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent-blue);border-radius:50%;animation:spin-d93e5e51 1s linear infinite;margin-bottom:16px}@keyframes spin-d93e5e51{to{transform:rotate(360deg)}}.empty-state[data-v-d93e5e51]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 0;color:var(--text-disabled)}.empty-state p[data-v-d93e5e51]{margin-top:16px;font-size:14px}.unit-groups[data-v-d93e5e51]{display:flex;flex-direction:column;gap:16px}.unit-group[data-v-d93e5e51]{background:var(--bg-surface);border-radius:12px;overflow:hidden;border:1px solid var(--border)}.group-header[data-v-d93e5e51]{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:var(--bg-surface-light);cursor:pointer}.group-info[data-v-d93e5e51]{display:flex;align-items:center;gap:10px}.expand-icon[data-v-d93e5e51]{color:var(--text-disabled);transition:transform .2s}.expand-icon.expanded[data-v-d93e5e51]{transform:rotate(180deg)}.unit-name[data-v-d93e5e51]{font-size:15px;font-weight:600;color:var(--text-secondary)}.record-count[data-v-d93e5e51]{padding:2px 8px;background:rgba(239,68,68,.2);color:var(--accent-red);border-radius:10px;font-size:12px;font-weight:600}.copy-btn[data-v-d93e5e51]{display:flex;align-items:center;gap:6px;padding:6px 12px;background:rgba(59,130,246,.2);color:var(--accent-blue-light);border:none;border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s}.copy-btn[data-v-d93e5e51]:hover{background:rgba(59,130,246,.3);color:var(--accent-blue-lighter)}.group-content[data-v-d93e5e51]{padding:12px 0}.fault-table[data-v-d93e5e51]{width:100%;border-collapse:collapse}.fault-table th[data-v-d93e5e51],.fault-table td[data-v-d93e5e51]{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border)}.fault-table th[data-v-d93e5e51]{background:var(--bg-surface);font-size:12px;font-weight:600;color:var(--text-status);text-transform:uppercase;letter-spacing:.5px}.fault-table tbody tr[data-v-d93e5e51]:hover{background:var(--bg-surface)}.th-no[data-v-d93e5e51]{width:40px}.th-device[data-v-d93e5e51]{min-width:90px}.th-desc[data-v-d93e5e51]{min-width:200px}.th-opinion[data-v-d93e5e51]{min-width:160px}.th-result[data-v-d93e5e51]{min-width:120px}.th-time[data-v-d93e5e51]{min-width:100px}.th-serial[data-v-d93e5e51]{min-width:80px}.td-no[data-v-d93e5e51]{font-size:12px;color:var(--text-disabled)}.td-device[data-v-d93e5e51]{font-weight:600;color:var(--accent-blue-lighter);white-space:nowrap;min-width:90px}.td-device .origin-badge[data-v-d93e5e51]{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;width:20px;height:20px;border-radius:4px;font-size:11px;font-weight:700;color:var(--accent-yellow-light);background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.35);cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none;vertical-align:middle;line-height:1}.td-device .origin-badge[data-v-d93e5e51]:hover{background:rgba(251,191,36,.25);border-color:#fbbf2499;color:var(--accent-yellow-lighter)}.origin-modal-body[data-v-d93e5e51]{white-space:pre-wrap;word-break:break-word;font-size:14px;color:var(--text-primary);max-height:60vh;overflow-y:auto}.td-desc[data-v-d93e5e51]{color:var(--text-desc);max-width:280px;word-break:break-all}.td-opinion[data-v-d93e5e51]{color:var(--accent-yellow-light);font-size:13px}.td-result[data-v-d93e5e51]{font-size:12px}.result-tag[data-v-d93e5e51]{display:inline-block;padding:3px 10px;border-radius:4px;font-weight:500}.result-tag.有问题可上场[data-v-d93e5e51]{background:rgba(251,191,36,.2);color:var(--accent-yellow-light)}.result-tag.有问题仅调试[data-v-d93e5e51]{background:rgba(147,197,253,.2);color:var(--accent-blue-lighter)}.result-tag.有问题不可上场[data-v-d93e5e51]{background:rgba(239,68,68,.2);color:var(--accent-red)}.result-tag.队长确认放弃检录[data-v-d93e5e51]{background:rgba(156,163,175,.2);color:#9ca3af}.result-tag.问题已解决[data-v-d93e5e51]{background:rgba(34,197,94,.2);color:var(--accent-green-light)}.td-time[data-v-d93e5e51],.td-serial[data-v-d93e5e51]{font-size:12px;color:var(--text-disabled)}@media (max-width: 768px){.fault-board[data-v-d93e5e51]{padding:12px}.board-header[data-v-d93e5e51]{padding:14px 16px;flex-wrap:wrap;gap:12px}.header-left[data-v-d93e5e51]{width:100%}.board-title[data-v-d93e5e51]{font-size:18px}.header-right[data-v-d93e5e51]{width:100%;gap:10px;justify-content:flex-start}.update-time[data-v-d93e5e51]{font-size:12px}.refresh-btn[data-v-d93e5e51]{padding:6px 12px;font-size:12px}.filter-bar[data-v-d93e5e51]{padding:12px 16px;gap:12px}.search-box[data-v-d93e5e51]{min-width:100%}.filter-item[data-v-d93e5e51]{font-size:13px}.mode-hint[data-v-d93e5e51]{font-size:11px;padding:3px 8px}.unit-group[data-v-d93e5e51]{border-radius:8px}.group-header[data-v-d93e5e51]{padding:12px;flex-wrap:wrap;gap:8px}.group-info[data-v-d93e5e51]{width:100%;gap:8px}.unit-name[data-v-d93e5e51]{font-size:14px}.record-count[data-v-d93e5e51]{padding:2px 6px;font-size:11px}.copy-btn[data-v-d93e5e51]{padding:4px 10px;font-size:11px}.fault-table th[data-v-d93e5e51],.fault-table td[data-v-d93e5e51]{padding:8px 10px;font-size:12px}.th-device[data-v-d93e5e51]{min-width:70px}.th-desc[data-v-d93e5e51]{min-width:120px}.th-opinion[data-v-d93e5e51]{min-width:100px}.th-result[data-v-d93e5e51]{min-width:90px}.th-time[data-v-d93e5e51]{min-width:80px}.th-serial[data-v-d93e5e51]{min-width:60px}.td-device[data-v-d93e5e51]{font-size:12px}.td-desc[data-v-d93e5e51]{max-width:150px;font-size:12px}.td-opinion[data-v-d93e5e51]{font-size:12px}.result-tag[data-v-d93e5e51]{padding:2px 6px;font-size:11px}}@media (max-width: 480px){.board-header[data-v-d93e5e51]{padding:12px}.board-title[data-v-d93e5e51]{font-size:16px}.board-subtitle[data-v-d93e5e51]{font-size:11px;padding:3px 10px}.header-right[data-v-d93e5e51]{gap:8px}.update-time[data-v-d93e5e51],.refresh-btn span[data-v-d93e5e51]{display:none}.refresh-btn[data-v-d93e5e51]{padding:6px}.filter-bar[data-v-d93e5e51]{padding:10px 12px;gap:10px}.filter-item[data-v-d93e5e51]{font-size:12px}.group-header[data-v-d93e5e51]{padding:10px}.group-name[data-v-d93e5e51]{font-size:13px}.copy-btn span[data-v-d93e5e51]{display:none}.copy-btn[data-v-d93e5e51]{padding:4px}.fault-table th[data-v-d93e5e51],.fault-table td[data-v-d93e5e51]{padding:6px 8px;font-size:11px}.th-desc[data-v-d93e5e51],.td-desc[data-v-d93e5e51],.th-opinion[data-v-d93e5e51],.td-opinion[data-v-d93e5e51],.th-serial[data-v-d93e5e51],.td-serial[data-v-d93e5e51]{display:none}}
