.modal-overlay[data-v-381e1327]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn-381e1327;display:flex;position:fixed;inset:0}@keyframes fadeIn-381e1327{0%{opacity:0}to{opacity:1}}.modal-card[data-v-381e1327]{background:var(--card-bg);border-radius:20px;width:100%;max-width:420px;animation:.3s cubic-bezier(.16,1,.3,1) slideUp-381e1327;box-shadow:0 25px 60px #0003}@keyframes slideUp-381e1327{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header[data-v-381e1327]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h3[data-v-381e1327]{color:var(--text-primary);margin:0;font-size:18px;font-weight:700}.modal-close[data-v-381e1327]{background:var(--hover-bg,#0000000d);cursor:pointer;width:32px;height:32px;color:var(--text-secondary);border:none;border-radius:8px;justify-content:center;align-items:center;font-size:14px;transition:all .15s;display:flex}.modal-close[data-v-381e1327]:hover{color:#ef4444;background:#ef44441a}.modal-body[data-v-381e1327]{padding:24px}.form-row[data-v-381e1327]{margin-bottom:18px}.form-row label[data-v-381e1327]{color:var(--text-secondary);margin-bottom:8px;font-size:13px;font-weight:600;display:block}.required[data-v-381e1327]{color:#ef4444}.modal-input[data-v-381e1327]{border:2px solid var(--border-color);background:var(--bg-primary);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:10px;outline:none;padding:10px 14px;font-size:14px;transition:border-color .2s}.modal-input[data-v-381e1327]:focus{border-color:#22c55e}.modal-error[data-v-381e1327]{color:#ef4444;background:#ef444414;border:1px solid #ef444433;border-radius:8px;padding:10px 14px;font-size:13px}.success-msg[data-v-381e1327]{text-align:center;color:#22c55e;padding:30px 20px;font-size:16px;font-weight:600;animation:.3s cubic-bezier(.16,1,.3,1) popIn-381e1327}@keyframes popIn-381e1327{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.modal-footer[data-v-381e1327]{border-top:1px solid var(--border-color);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.btn-cancel[data-v-381e1327]{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:10px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .15s}.btn-cancel[data-v-381e1327]:hover{background:var(--hover-bg,#00000008)}.btn-confirm[data-v-381e1327]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#22c55e,#16a34a);border:none;border-radius:10px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .15s}.btn-confirm[data-v-381e1327]:hover{box-shadow:0 4px 12px #22c55e4d}.op-modal[data-v-234476a0]{max-width:700px}.op-modal-wide[data-v-234476a0]{max-width:900px}.mode-tabs[data-v-234476a0]{border-bottom:1px solid var(--border-color);gap:4px;padding:8px 16px 0;display:flex}.mode-tab[data-v-234476a0]{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:8px 8px 0 0;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .15s;display:flex;position:relative}.mode-tab[data-v-234476a0]:hover{color:var(--text-primary);background:var(--bg-secondary)}.mode-tab.active[data-v-234476a0]{color:var(--accent);background:var(--bg-primary);box-shadow:0 -2px 0 var(--accent);font-weight:600}.mode-tab-icon[data-v-234476a0]{font-size:15px}.mode-tab-label[data-v-234476a0]{font-size:13px}.mode-tab-badge[data-v-234476a0]{background:var(--accent);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;display:flex;position:absolute;top:-2px;right:-4px}.continuous-hint[data-v-234476a0]{color:#1e40af;background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #93c5fd;border-radius:10px;align-items:center;gap:8px;margin-bottom:12px;padding:8px 14px;font-size:13px;display:flex}.continuous-count[data-v-234476a0]{color:#fff;background:#3b82f6;border-radius:12px;margin-left:auto;padding:2px 10px;font-size:11px;font-weight:700}.batch-table-wrap[data-v-234476a0]{border:1px solid var(--border-color);border-radius:12px;margin-bottom:12px;overflow-x:auto}.batch-table[data-v-234476a0]{border-collapse:collapse;width:100%;font-size:13px}.batch-table th[data-v-234476a0]{background:var(--bg-secondary);color:var(--text-tertiary);text-align:left;border-bottom:1px solid var(--border-color);white-space:nowrap;padding:10px 8px;font-size:11px;font-weight:600}.batch-table td[data-v-234476a0]{border-bottom:1px solid var(--border-color);vertical-align:top;padding:8px}.batch-table tr:last-child td[data-v-234476a0]{border-bottom:none}.col-type[data-v-234476a0]{width:120px;min-width:100px}.col-material[data-v-234476a0]{min-width:160px}.col-workers[data-v-234476a0]{min-width:140px}.col-notes[data-v-234476a0]{min-width:100px}.col-cost[data-v-234476a0]{text-align:right;width:70px}.col-act[data-v-234476a0]{text-align:center;width:40px}.batch-select[data-v-234476a0]{width:100%}.batch-material-mini[data-v-234476a0]{flex-wrap:wrap;gap:3px;margin-bottom:4px;display:flex}.batch-material-chip[data-v-234476a0]{border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:10px;padding:2px 7px;font-size:11px;transition:all .12s}.batch-material-chip[data-v-234476a0]:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.batch-material-chip.is-low[data-v-234476a0]{background:#fffbeb;border-color:#fbbf24}.batch-material-items[data-v-234476a0]{flex-direction:column;gap:3px;display:flex}.batch-material-item-row[data-v-234476a0]{align-items:center;gap:4px;display:flex}.batch-worker-chips[data-v-234476a0]{flex-wrap:wrap;gap:3px;margin-bottom:4px;display:flex}.batch-worker-chip[data-v-234476a0]{border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:12px;padding:2px 8px;font-size:11px;transition:all .12s}.batch-worker-chip[data-v-234476a0]:hover{border-color:var(--accent)}.batch-worker-chip.checked[data-v-234476a0]{background:var(--accent-light);color:var(--accent);border-color:var(--accent);font-weight:600}.batch-worker-hours[data-v-234476a0]{flex-direction:column;gap:3px;display:flex}.batch-worker-hours-row[data-v-234476a0]{color:var(--text-secondary);align-items:center;gap:4px;font-size:11px;display:flex}.batch-worker-name[data-v-234476a0]{min-width:30px;font-weight:500}.batch-actions-bar[data-v-234476a0]{border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-top:8px;padding:12px 0;display:flex}.batch-total-cost[data-v-234476a0]{color:var(--text-secondary);align-items:center;gap:8px;font-size:14px;display:flex}.plot-locked-display[data-v-234476a0]{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:8px;align-items:center;min-height:40px;padding:4px 8px;display:flex}.plot-combobox[data-v-234476a0]{position:relative}.plot-combobox-input-wrap[data-v-234476a0]{border:1px solid var(--border-color,#e2e8f0);background:var(--bg-primary,#fff);cursor:text;border-radius:8px;align-items:center;gap:4px;min-height:40px;padding:4px 8px;transition:border-color .15s,box-shadow .15s;display:flex}.plot-combobox.open .plot-combobox-input-wrap[data-v-234476a0],.plot-combobox-input-wrap[data-v-234476a0]:focus-within{border-color:var(--accent,#16a34a);box-shadow:0 0 0 3px #16a34a1f}.plot-selected-tag[data-v-234476a0]{background:var(--accent-light,#dcfce7);color:var(--accent,#16a34a);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;align-items:center;gap:4px;max-width:200px;padding:2px 8px;font-size:13px;font-weight:600;display:inline-flex;overflow:hidden}.plot-clear-btn[data-v-234476a0]{color:var(--accent,#16a34a);cursor:pointer;opacity:.6;background:0 0;border:none;padding:0 2px;font-size:15px;line-height:1;transition:opacity .15s}.plot-clear-btn[data-v-234476a0]:hover{opacity:1}.plot-combobox-input[data-v-234476a0]{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;min-width:80px;padding:2px 4px;font-size:14px}.plot-combobox-input[data-v-234476a0]::placeholder{color:var(--text-tertiary,#94a3b8)}.plot-combobox-arrow[data-v-234476a0]{color:var(--text-tertiary,#94a3b8);cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:0 2px;font-size:13px}.plot-combobox-dropdown[data-v-234476a0]{z-index:1000;background:var(--bg-primary,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:10px;max-height:240px;padding:4px 0;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.plot-option[data-v-234476a0]{cursor:pointer;border-radius:6px;align-items:center;gap:8px;margin:1px 4px;padding:9px 14px;font-size:14px;transition:background .1s;display:flex}.plot-option[data-v-234476a0]:hover,.plot-option.highlighted[data-v-234476a0]{background:var(--bg-secondary,#f8fafc)}.plot-option.selected[data-v-234476a0]{background:var(--accent-light,#dcfce7)}.plot-option-name[data-v-234476a0]{color:var(--text-primary);flex:1;font-weight:600}.plot-option-crop[data-v-234476a0]{color:var(--text-tertiary,#94a3b8);background:var(--bg-secondary,#f1f5f9);border-radius:4px;padding:1px 6px;font-size:12px}.plot-option-check[data-v-234476a0]{color:var(--accent,#16a34a);font-size:14px;font-weight:700}.plot-option-empty[data-v-234476a0]{color:var(--text-tertiary,#94a3b8);cursor:default;justify-content:center;font-size:13px}.input-error[data-v-234476a0]{background:#fef2f2;border-color:#dc2626!important}.field-error-text[data-v-234476a0]{color:#dc2626;margin-top:4px;font-size:11px;font-weight:600;line-height:1.4}.form-label-row[data-v-234476a0]{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.op-type-grid[data-v-234476a0]{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;display:grid}.op-type-btn[data-v-234476a0]{background:var(--bg-secondary);border:1.5px solid var(--border-color);cursor:pointer;color:var(--text-secondary);border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;transition:all .2s;display:flex}.op-type-btn[data-v-234476a0]:hover{border-color:var(--border-strong);background:var(--accent-light)}.op-type-btn.active[data-v-234476a0]{background:var(--accent-light);border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 3px var(--input-focus)}.op-type-btn-icon[data-v-234476a0]{font-size:22px}.op-type-btn-name[data-v-234476a0]{font-size:12px;font-weight:600}.add-type-form[data-v-234476a0]{background:var(--bg-secondary);border:1.5px dashed var(--accent);border-radius:12px;margin-top:10px;padding:14px}.add-type-header[data-v-234476a0]{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.add-type-fields[data-v-234476a0]{align-items:flex-end;gap:8px;display:flex}.add-type-actions[data-v-234476a0]{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.section-divider[data-v-234476a0]{border-bottom:1px solid var(--border-color);align-items:center;gap:12px;margin:20px 0 12px;padding-bottom:8px;display:flex}.section-divider-text[data-v-234476a0]{color:var(--text-primary);font-size:14px;font-weight:700}.material-items-list[data-v-234476a0]{flex-direction:column;gap:10px;display:flex}.material-item-row[data-v-234476a0]{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:10px 12px}.material-item-fields[data-v-234476a0]{align-items:center;gap:8px;display:flex}.material-qty-input-wrap[data-v-234476a0]{border:1px solid var(--border-color);border-radius:8px;align-items:center;display:flex;overflow:hidden}.material-qty-input-wrap .form-input[data-v-234476a0]{border:none;border-radius:0;flex:1;min-width:60px;padding:7px 8px}.material-qty-input-wrap .form-input[data-v-234476a0]:focus{box-shadow:none}.material-qty-unit[data-v-234476a0]{color:var(--text-tertiary);background:var(--card-bg);white-space:nowrap;border-left:1px solid var(--border-color);align-items:center;height:36px;padding:0 10px;font-size:12px;font-weight:600;display:flex}.material-item-cost[data-v-234476a0]{flex-direction:column;flex-shrink:0;align-items:center;min-width:60px;display:flex}.material-item-price-hint[data-v-234476a0]{color:var(--text-tertiary);margin-top:6px;padding-left:2px;font-size:11px}.material-desc-preview[data-v-234476a0]{color:var(--text-secondary);border-top:1px dashed var(--border-color);margin-top:4px;padding:6px 0;font-size:12px}.quick-materials-bar[data-v-234476a0]{background:var(--bg-secondary,#f8fafc);border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;padding:10px 12px;display:flex}.quick-materials-label[data-v-234476a0]{color:var(--text-tertiary,#94a3b8);white-space:nowrap;margin-right:2px;font-size:12px}.quick-material-btn[data-v-234476a0]{border:1px solid var(--border-color,#e2e8f0);background:var(--bg-primary,#fff);color:var(--text-primary);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:4px;padding:5px 10px;font-size:13px;transition:all .15s;display:inline-flex}.quick-material-btn[data-v-234476a0]:hover{border-color:var(--accent,#16a34a);color:var(--accent,#16a34a);background:var(--accent-light,#dcfce7)}.quick-material-btn.is-low[data-v-234476a0]{background:#fffbeb;border-color:#fbbf24}.quick-material-stock[data-v-234476a0]{color:var(--text-tertiary,#94a3b8);background:var(--bg-secondary,#f1f5f9);border-radius:4px;padding:1px 5px;font-size:11px}.quick-workers-bar[data-v-234476a0]{background:var(--bg-secondary,#f8fafc);border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;padding:10px 12px;display:flex}.quick-worker-chip[data-v-234476a0]{border:1px solid var(--border-color,#e2e8f0);background:var(--bg-primary,#fff);color:var(--text-secondary,#64748b);cursor:pointer;white-space:nowrap;border-radius:20px;align-items:center;gap:4px;padding:6px 12px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.quick-worker-chip[data-v-234476a0]:hover{border-color:var(--accent,#16a34a)}.quick-worker-chip.checked[data-v-234476a0]{background:var(--accent-light,#dcfce7);color:var(--accent,#16a34a);border-color:var(--accent,#16a34a);font-weight:600}.quick-worker-check[data-v-234476a0]{font-size:14px;line-height:1}.quick-workers-actions[data-v-234476a0]{flex-shrink:0;gap:4px;margin-left:auto;display:flex}.quick-workers-actions .btn-xs[data-v-234476a0]{border-radius:6px;padding:3px 8px;font-size:12px}.batch-hours-bar[data-v-234476a0]{background:var(--bg-secondary,#f8fafc);border-radius:10px;align-items:center;gap:6px;margin-bottom:8px;padding:8px 12px;display:flex}.batch-hours-label[data-v-234476a0]{color:var(--text-tertiary,#94a3b8);white-space:nowrap;font-size:12px}.quick-hour-chip[data-v-234476a0]{border:1px solid var(--border-color,#e2e8f0);background:var(--bg-primary,#fff);color:var(--text-secondary,#64748b);cursor:pointer;white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:12px;padding:3px 8px;font-size:12px;font-weight:500;transition:all .12s}.quick-hour-chip[data-v-234476a0]:hover{border-color:var(--accent,#16a34a);color:var(--accent,#16a34a)}.quick-hour-chip.active[data-v-234476a0]{background:var(--accent,#16a34a);color:#fff;border-color:var(--accent,#16a34a)}.batch-hours-divider[data-v-234476a0]{color:var(--border-color,#e2e8f0);-webkit-user-select:none;user-select:none;margin:0 2px;font-size:14px}.batch-hours-input[data-v-234476a0]{text-align:center;width:60px;padding:4px 6px;font-size:13px}.batch-hours-unit[data-v-234476a0]{color:var(--text-secondary,#64748b);white-space:nowrap;font-size:12px}.workers-detail-section[data-v-234476a0]{margin-top:4px}.worker-name-display[data-v-234476a0]{color:var(--text-primary);flex:1;min-width:60px;padding:6px 0;font-size:14px;font-weight:600}.worker-hours-input-wrap[data-v-234476a0]{align-items:center;gap:4px;display:flex}.worker-hours-input-wrap .form-input[data-v-234476a0]{text-align:center;width:70px}.worker-hours-unit[data-v-234476a0]{color:var(--text-tertiary);white-space:nowrap;font-size:12px}.worker-row[data-v-234476a0]{background:var(--bg-secondary);border-radius:12px;margin-bottom:10px;padding:12px}.worker-row-fields[data-v-234476a0]{align-items:center;gap:10px;display:flex}.worker-labor-cost[data-v-234476a0]{flex-direction:column;align-items:flex-end;min-width:80px;display:flex}.cost-summary[data-v-234476a0]{background:var(--accent-light);border:1px solid var(--border-strong);border-radius:12px;margin-top:16px;padding:16px}.cost-summary-row[data-v-234476a0]{color:var(--text-secondary);justify-content:space-between;align-items:center;padding:6px 0;font-size:14px;display:flex}.cost-summary-row.total[data-v-234476a0]{border-top:1px solid var(--border-strong);color:var(--text-primary);margin-top:8px;padding-top:12px;font-size:16px;font-weight:700}.modal-overlay[data-v-c1c7b830]{background:var(--modal-overlay,#00000080);z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.smart-paste-modal[data-v-c1c7b830]{background:var(--card-bg,#fff);border-radius:12px;flex-direction:column;width:min(95vw,1200px);max-height:90vh;display:flex;box-shadow:0 20px 60px #0003}.modal-header[data-v-c1c7b830]{border-bottom:1px solid var(--border-strong,#e5e7eb);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h2[data-v-c1c7b830]{margin:0;font-size:18px}.modal-close[data-v-c1c7b830]{cursor:pointer;color:#666;background:0 0;border:none;padding:0 4px;font-size:24px;line-height:1}.modal-close[data-v-c1c7b830]:hover{color:#000}.paste-section[data-v-c1c7b830]{padding:20px}.paste-hint[data-v-c1c7b830]{color:#666;margin-bottom:12px;font-size:14px}.paste-textarea[data-v-c1c7b830]{border:2px solid var(--border-strong,#e5e7eb);resize:vertical;border-radius:8px;outline:none;width:100%;padding:12px;font-family:-apple-system,PingFang SC,Microsoft YaHei,monospace;font-size:14px;line-height:1.6;transition:border-color .2s}.paste-textarea[data-v-c1c7b830]:focus{border-color:var(--input-focus,#22c55e)}.paste-actions[data-v-c1c7b830]{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.success-state[data-v-c1c7b830]{text-align:center;padding:60px 20px}.success-icon[data-v-c1c7b830]{margin-bottom:16px;font-size:48px}.success-text[data-v-c1c7b830]{margin-bottom:8px;font-size:18px}.success-sub[data-v-c1c7b830]{color:#999;font-size:14px}.stats-bar[data-v-c1c7b830]{border-bottom:1px solid var(--border-strong,#e5e7eb);background:#f9fafb;flex-wrap:wrap;gap:16px;padding:10px 20px;font-size:13px;display:flex}.stat-ok[data-v-c1c7b830]{color:#16a34a}.stat-warn[data-v-c1c7b830]{color:#d97706}.stat-err[data-v-c1c7b830]{color:#dc2626}.preview-section[data-v-c1c7b830]{flex-direction:column;flex:1;display:flex;overflow:hidden}.table-wrapper[data-v-c1c7b830]{flex:1;padding:0 4px;overflow:auto}.preview-table[data-v-c1c7b830]{border-collapse:collapse;width:100%;min-width:900px;font-size:13px}.preview-table thead[data-v-c1c7b830]{z-index:1;position:sticky;top:0}.preview-table th[data-v-c1c7b830]{text-align:left;color:#374151;white-space:nowrap;background:#f3f4f6;border-bottom:2px solid #e5e7eb;padding:8px 6px;font-size:12px;font-weight:600}.preview-table td[data-v-c1c7b830]{vertical-align:top;border-bottom:1px solid #f3f4f6;padding:8px 6px}.row-ok[data-v-c1c7b830]{background:#fff}.row-warning[data-v-c1c7b830]{background:#fffbeb}.row-error[data-v-c1c7b830]{background:#fef2f2}.col-status[data-v-c1c7b830]{text-align:center;width:40px}.col-plot[data-v-c1c7b830]{width:90px}.col-crop[data-v-c1c7b830]{width:80px}.col-op[data-v-c1c7b830]{width:100px}.col-people[data-v-c1c7b830]{width:130px}.col-harvest[data-v-c1c7b830]{width:70px}.col-material[data-v-c1c7b830]{width:160px}.col-note[data-v-c1c7b830]{min-width:80px}.badge[data-v-c1c7b830]{border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;display:inline-flex}.badge-ok[data-v-c1c7b830]{color:#16a34a;background:#dcfce7}.badge-warn[data-v-c1c7b830]{color:#d97706;cursor:help;background:#fef3c7}.badge-err[data-v-c1c7b830]{color:#dc2626;cursor:help;background:#fee2e2}.field-value[data-v-c1c7b830]{display:inline-block}.field-empty[data-v-c1c7b830]{color:#d1d5db}.field-material[data-v-c1c7b830]{color:#6b7280;word-break:break-all;font-size:11px}.field-note[data-v-c1c7b830]{color:#6b7280;font-size:12px}.crop-mismatch[data-v-c1c7b830]{color:#d97706}.mismark[data-v-c1c7b830]{margin-left:2px;font-size:12px}.field-select[data-v-c1c7b830]{background:#fff;border:1px solid #d1d5db;border-radius:4px;max-width:100%;padding:3px 4px;font-size:12px}.field-select[data-v-c1c7b830]:focus{border-color:var(--input-focus,#22c55e);outline:none}.field-warn[data-v-c1c7b830]{background:#fffbeb;border-color:#f59e0b}.field-err[data-v-c1c7b830]{background:#fef2f2;border-color:#ef4444}.field-sm[data-v-c1c7b830]{width:80px}.worker-row[data-v-c1c7b830]{align-items:center;gap:4px;margin-bottom:2px;display:flex}.hours-badge[data-v-c1c7b830]{color:#6b7280;white-space:nowrap;background:#f3f4f6;border-radius:3px;padding:1px 4px;font-size:11px}.warn-tooltip[data-v-c1c7b830]{color:#fff;white-space:nowrap;z-index:10;background:#1f2937;border-radius:6px;padding:6px 10px;font-size:12px;display:none;position:absolute;top:100%;left:0}.col-plot[data-v-c1c7b830]{position:relative}.col-plot:hover .warn-tooltip[data-v-c1c7b830]{display:block}.warn-item[data-v-c1c7b830]{padding:1px 0}.preview-actions[data-v-c1c7b830]{border-top:1px solid var(--border-strong,#e5e7eb);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.btn[data-v-c1c7b830]{cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:14px;transition:all .15s}.btn[data-v-c1c7b830]:disabled{opacity:.5;cursor:not-allowed}.btn-primary[data-v-c1c7b830]{color:#fff;background:#16a34a}.btn-primary[data-v-c1c7b830]:hover:not(:disabled){background:#15803d}.btn-ghost[data-v-c1c7b830]{color:#374151;background:0 0;border:1px solid #d1d5db}.btn-ghost[data-v-c1c7b830]:hover{background:#f3f4f6}.global-quick-add-btn[data-v-55f94569]{z-index:1000;color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#22c55e,#16a34a);border:none;border-radius:50px;align-items:center;gap:8px;padding:14px 20px;font-size:15px;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;bottom:28px;right:24px;box-shadow:0 4px 20px #16a34a66}.global-quick-add-btn[data-v-55f94569]:hover{transform:translateY(-2px);box-shadow:0 8px 28px #16a34a80}.global-quick-add-btn[data-v-55f94569]:active{transform:translateY(0)}.global-quick-add-icon[data-v-55f94569]{font-size:22px;font-weight:300;line-height:1}.global-quick-add-label[data-v-55f94569]{letter-spacing:.5px;font-size:14px}@media (width<=768px){.global-quick-add-btn[data-v-55f94569]{padding:12px 16px;bottom:20px;right:16px}.global-quick-add-label[data-v-55f94569]{display:none}.global-quick-add-icon[data-v-55f94569]{font-size:24px}}.app-layout[data-v-55f94569]{background:var(--bg-primary);min-height:100vh;transition:background .3s;display:flex}.sidebar[data-v-55f94569]{background:var(--sidebar-bg);border-right:1px solid var(--border-color);z-index:100;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);flex-direction:column;width:260px;min-width:260px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.sidebar-collapsed .sidebar[data-v-55f94569]{width:72px;min-width:72px}.sidebar-header[data-v-55f94569]{border-bottom:1px solid var(--border-color);padding:20px}.logo[data-v-55f94569]{align-items:center;gap:12px;display:flex}.logo-icon[data-v-55f94569]{flex-shrink:0;font-size:28px}.logo-text[data-v-55f94569]{color:var(--text-primary);white-space:nowrap;background:linear-gradient(135deg,#22c55e,#16a34a);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:20px;font-weight:700}.sidebar-nav[data-v-55f94569]{flex-direction:column;flex:1;gap:4px;padding:12px 8px;display:flex;overflow-y:auto}.nav-item[data-v-55f94569]{color:var(--text-secondary);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:12px;align-items:center;gap:12px;width:100%;padding:12px 16px;font-size:15px;transition:all .2s;display:flex}.nav-item[data-v-55f94569]:hover{background:var(--nav-hover-bg);color:var(--text-primary);transform:translate(2px)}.nav-item.active[data-v-55f94569]{color:#22c55e;background:linear-gradient(135deg,#22c55e26,#16a34a1a);font-weight:600;box-shadow:0 0 0 1px #22c55e33}.nav-icon[data-v-55f94569]{text-align:center;flex-shrink:0;width:28px;font-size:20px}.nav-label[data-v-55f94569]{text-overflow:ellipsis;overflow:hidden}.sidebar-footer[data-v-55f94569]{border-top:1px solid var(--border-color);padding:8px}.theme-toggle[data-v-55f94569]{color:var(--text-secondary);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:12px;align-items:center;gap:12px;width:100%;padding:12px 16px;font-size:14px;transition:all .2s;display:flex}.theme-toggle[data-v-55f94569]:hover{background:var(--nav-hover-bg);color:var(--text-primary)}.theme-icon[data-v-55f94569]{text-align:center;width:28px;font-size:18px}.main-content[data-v-55f94569]{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.top-bar[data-v-55f94569]{background:var(--card-bg);border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:50;align-items:center;gap:16px;padding:16px 24px;display:flex;position:sticky;top:0}.menu-btn[data-v-55f94569]{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;padding:8px;transition:all .2s;display:flex}.menu-btn[data-v-55f94569]:hover{background:var(--nav-hover-bg);color:var(--text-primary)}.page-title[data-v-55f94569]{color:var(--text-primary);flex:1;margin:0;font-size:20px;font-weight:700}.top-bar-actions[data-v-55f94569]{flex-shrink:0;align-items:center;gap:12px;margin-left:auto;display:flex}.date-display[data-v-55f94569]{color:var(--text-tertiary);font-size:14px;font-weight:500}.content-area[data-v-55f94569]{flex:1;padding:24px;overflow-y:auto}.user-menu-area[data-v-55f94569]{position:relative}.user-menu-btn[data-v-55f94569]{background:var(--hover-bg,#00000008);cursor:pointer;border:none;border-radius:12px;align-items:center;gap:10px;padding:6px 12px 6px 6px;transition:all .2s;display:flex}.user-menu-btn[data-v-55f94569]:hover{background:var(--nav-hover-bg)}.user-avatar[data-v-55f94569]{color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-weight:700;display:flex}.user-info[data-v-55f94569]{flex-direction:column;align-items:flex-start;line-height:1.3;display:flex}.user-name[data-v-55f94569]{color:var(--text-primary);font-size:13px;font-weight:600}.user-role[data-v-55f94569]{color:var(--text-tertiary);font-size:11px}.dropdown-arrow[data-v-55f94569]{color:var(--text-tertiary);font-size:12px;transition:transform .2s}.user-dropdown[data-v-55f94569]{background:var(--card-bg);border:1px solid var(--border-color);z-index:200;border-radius:16px;width:280px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 12px 40px #0000001f}.dropdown-header[data-v-55f94569]{align-items:center;gap:12px;padding:16px;display:flex}.dropdown-avatar[data-v-55f94569]{color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:16px;font-weight:700;display:flex}.dropdown-name[data-v-55f94569]{color:var(--text-primary);font-size:15px;font-weight:700}.dropdown-username[data-v-55f94569]{color:var(--text-tertiary);font-size:12px}.dropdown-role[data-v-55f94569]{color:#ca8a04;margin-top:2px;font-size:12px}.dropdown-divider[data-v-55f94569]{background:var(--border-color);height:1px;margin:0 8px}.dropdown-item[data-v-55f94569]{width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:11px 16px;font-size:14px;transition:all .15s;display:flex}.dropdown-item[data-v-55f94569]:hover{background:var(--hover-bg,#00000008);color:var(--text-primary)}.dropdown-item.logout[data-v-55f94569]:hover{color:#ef4444;background:#ef44440f}.dropdown-enter-active[data-v-55f94569]{transition:all .2s cubic-bezier(.16,1,.3,1)}.dropdown-leave-active[data-v-55f94569]{transition:all .15s}.dropdown-enter-from[data-v-55f94569]{opacity:0;transform:translateY(-8px)scale(.96)}.dropdown-leave-to[data-v-55f94569]{opacity:0;transform:translateY(-4px)scale(.98)}.sidebar-overlay[data-v-55f94569]{z-index:99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;display:none;position:fixed;inset:0}.desktop-only[data-v-55f94569]{display:flex}.mobile-only[data-v-55f94569]{display:none}@media (width<=768px){.desktop-only[data-v-55f94569]{display:none!important}.mobile-only[data-v-55f94569]{display:flex!important}.sidebar[data-v-55f94569]{z-index:200;transition:left .3s cubic-bezier(.4,0,.2,1);position:fixed;top:0;bottom:0;left:-280px;box-shadow:4px 0 24px #0003}.sidebar.mobile-open[data-v-55f94569]{left:0}.sidebar-overlay[data-v-55f94569]{display:block}.content-area[data-v-55f94569]{padding:16px}.app-layout.sidebar-collapsed .sidebar[data-v-55f94569]{width:260px;min-width:260px}.top-bar[data-v-55f94569]{gap:10px;padding:12px 16px}.page-title[data-v-55f94569]{font-size:17px}.user-menu-btn[data-v-55f94569]{padding:4px 8px 4px 4px}.user-avatar[data-v-55f94569]{border-radius:8px;width:30px;height:30px;font-size:13px}.user-dropdown[data-v-55f94569]{border-radius:16px;width:auto;position:fixed;inset:auto 8px 16px;box-shadow:0 -4px 24px #00000026}}:root,[data-theme=light]{--bg-primary:#f5f7f5;--bg-secondary:#edf2ed;--card-bg:#ffffffd9;--card-bg-solid:#fff;--sidebar-bg:#ffffffe6;--text-primary:#1a2e1a;--text-secondary:#4a6a4a;--text-tertiary:#7a9a7a;--border-color:#22c55e1f;--border-strong:#22c55e40;--accent:#22c55e;--accent-hover:#16a34a;--accent-light:#22c55e1a;--accent-medium:#22c55e33;--danger:#ef4444;--danger-light:#ef44441a;--warning:#f59e0b;--warning-light:#f59e0b1a;--info:#3b82f6;--info-light:#3b82f61a;--nav-hover-bg:#22c55e0f;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 30px #0000001a;--glass-bg:#fff9;--glass-border:#ffffff4d;--input-bg:#fff;--input-border:#d1e7d1;--input-focus:#22c55e4d;--table-stripe:#22c55e08;--modal-overlay:#0006}[data-theme=dark]{--bg-primary:#0d1a0d;--bg-secondary:#142014;--card-bg:#142814cc;--card-bg-solid:#1a2e1a;--sidebar-bg:#0f1e0ff2;--text-primary:#e8f5e8;--text-secondary:#a3c4a3;--text-tertiary:#6a8f6a;--border-color:#22c55e26;--border-strong:#22c55e4d;--accent:#4ade80;--accent-hover:#22c55e;--accent-light:#22c55e26;--accent-medium:#22c55e40;--danger:#f87171;--danger-light:#ef444426;--warning:#fbbf24;--warning-light:#f59e0b26;--info:#60a5fa;--info-light:#3b82f626;--nav-hover-bg:#22c55e1a;--shadow-sm:0 1px 3px #0003;--shadow-md:0 4px 12px #0000004d;--shadow-lg:0 8px 30px #0006;--glass-bg:#14281499;--glass-border:#22c55e26;--input-bg:#1a2e1a;--input-border:#2d4a2d;--input-focus:#22c55e66;--table-stripe:#22c55e0d;--modal-overlay:#0009}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;line-height:1.6;transition:background .3s,color .3s}.card{background:var(--card-bg);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(20px)saturate(150%);backdrop-filter:blur(20px)saturate(150%);box-shadow:var(--shadow-sm);border-radius:16px;padding:24px;transition:all .3s cubic-bezier(.4,0,.2,1)}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.card-flat{background:var(--card-bg);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:16px;padding:24px}.stat-card{background:var(--card-bg);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(20px)saturate(150%);backdrop-filter:blur(20px)saturate(150%);box-shadow:var(--shadow-sm);border-radius:20px;padding:24px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.stat-card:before{content:"";background:linear-gradient(90deg, var(--accent), transparent);border-radius:20px 20px 0 0;height:3px;position:absolute;top:0;left:0;right:0}.stat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.stat-icon{margin-bottom:12px;font-size:32px}.stat-value{color:var(--text-primary);font-size:32px;font-weight:800;line-height:1.2}.stat-label{color:var(--text-tertiary);margin-top:4px;font-size:14px;font-weight:500}.btn{cursor:pointer;white-space:nowrap;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 2px 8px #22c55e4d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px #22c55e66}.btn-secondary{background:var(--accent-light);color:var(--accent);border:1px solid var(--border-strong)}.btn-secondary:hover{background:var(--accent-medium)}.btn-danger{background:var(--danger-light);color:var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border-color);background:0 0}.btn-ghost:hover{background:var(--nav-hover-bg);color:var(--text-primary);border-color:var(--border-strong)}.btn-sm{border-radius:8px;padding:6px 14px;font-size:13px}.btn-icon{border-radius:10px;width:36px;height:36px;padding:8px}.form-group{margin-bottom:16px}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.form-input,.form-select,.form-textarea{background:var(--input-bg);border:1.5px solid var(--input-border);width:100%;color:var(--text-primary);border-radius:10px;outline:none;padding:10px 14px;font-family:inherit;font-size:14px;transition:all .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--input-focus)}.form-input::placeholder{color:var(--text-tertiary)}.form-textarea{resize:vertical;min-height:80px}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.table-container{border:1px solid var(--border-color);border-radius:16px;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table thead{background:var(--accent-light)}.data-table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border-color);padding:12px 16px;font-size:12px;font-weight:600}.data-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);padding:12px 16px}.data-table tbody tr{transition:background .15s}.data-table tbody tr:nth-child(2n){background:var(--table-stripe)}.data-table tbody tr:hover{background:var(--accent-light)}.modal-overlay{background:var(--modal-overlay);z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--card-bg-solid);width:100%;max-width:600px;max-height:90vh;box-shadow:var(--shadow-lg);border:1px solid var(--border-color);border-radius:20px;padding:0;animation:.3s cubic-bezier(.4,0,.2,1) slideUp;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border-color);background:var(--card-bg-solid);z-index:1;border-radius:20px 20px 0 0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex;position:sticky;top:0}.modal-title{color:var(--text-primary);font-size:18px;font-weight:700}.modal-close{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:4px 8px;font-size:24px;transition:all .2s}.modal-close:hover{background:var(--danger-light);color:var(--danger)}.modal-body{padding:24px}.modal-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.badge{border-radius:20px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-green{color:#22c55e;background:#22c55e1a}.badge-yellow{color:#f59e0b;background:#f59e0b1a}.badge-red{color:#ef4444;background:#ef44441a}.badge-blue{color:#3b82f6;background:#3b82f61a}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:24px;display:grid}.grid-2{grid-template-columns:1fr 1fr;gap:24px;display:grid}.grid-3{grid-template-columns:1fr 1fr 1fr;gap:24px;display:grid}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.page-header h2{color:var(--text-primary);font-size:24px;font-weight:800}.page-header-actions{align-items:center;gap:12px;display:flex}.empty-state{text-align:center;color:var(--text-tertiary);padding:60px 20px}.empty-state-icon{opacity:.5;margin-bottom:16px;font-size:64px}.empty-state h3{color:var(--text-secondary);margin-bottom:8px;font-size:18px}.empty-state p{max-width:400px;margin:0 auto 20px;font-size:14px}.search-box{max-width:300px;position:relative}.search-box input{background:var(--input-bg);border:1.5px solid var(--input-border);width:100%;color:var(--text-primary);border-radius:10px;outline:none;padding:8px 14px 8px 38px;font-size:14px;transition:all .2s}.search-box input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--input-focus)}.search-box:before{content:"🔍";font-size:14px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.fade-enter-active{animation:.3s fadeIn}.slide-enter-active{animation:.3s slideIn}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}@media (width<=768px){.stats-grid{grid-template-columns:1fr 1fr}.grid-2,.grid-3,.form-row{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start}.page-header-actions{width:100%}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);align-items:flex-end;padding:0}.modal{border-radius:20px 20px 0 0;max-width:100%;max-height:92vh;animation:.3s cubic-bezier(.16,1,.3,1) mobileSlideUp}.modal-header{border-radius:20px 20px 0 0;padding:16px 20px}.modal-body{padding:16px 20px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0))}.modal-footer{padding:12px 20px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0));flex-direction:column}.modal-footer .btn{justify-content:center;width:100%}.modal-box-lg,.modal-lg{border-radius:20px 20px 0 0;max-width:100%;max-height:92vh}.btn{min-height:44px;padding:12px 20px}.btn-sm{min-height:36px;padding:8px 14px}.form-input,.form-select,.form-textarea{min-height:44px;font-size:16px}.form-textarea{min-height:100px}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%237a9a7a' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.card:hover,.stat-card:hover{box-shadow:var(--shadow-sm);transform:none}.data-table td,.data-table th{padding:14px 12px;font-size:14px}.search-box{width:100%;max-width:100%}.empty-state{padding:40px 20px}.empty-state-icon{font-size:48px}.page-header h2{font-size:20px}}@keyframes mobileSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (width<=480px){.stats-grid{grid-template-columns:1fr}.modal-body{padding:12px 16px}.modal-footer{padding:10px 16px}}.text-green{color:var(--accent)}.text-red{color:var(--danger)}.text-yellow{color:var(--warning)}.text-blue{color:var(--info)}.text-muted{color:var(--text-tertiary)}.font-bold{font-weight:700}.font-mono{font-family:SF Mono,Monaco,Inconsolata,Fira Mono,monospace}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.gap-2{gap:8px}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}
