{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:#f3f8f4}#app{height:100%}.page[data-v-f31a450e]{min-height:100vh;background:#f7fbf9;padding-bottom:30px}.app-header[data-v-f31a450e]{background:linear-gradient(135deg,#1d9b67,#29b365);color:#fff;padding:22px 20px;border-radius:0 0 26px 26px;box-shadow:0 6px 20px #1d9b672e}.header-content[data-v-f31a450e]{display:flex;justify-content:space-between;align-items:center}.app-title[data-v-f31a450e]{font-size:23px;font-weight:700;margin:0 0 5px}.current-time[data-v-f31a450e]{font-size:14px;opacity:.9;margin:0}.user-avatar[data-v-f31a450e]{width:44px;height:44px;border-radius:50%;background:#ffffff40;display:flex;align-items:center;justify-content:center;font-weight:600}.stats-grid[data-v-f31a450e]{padding:22px}.stat-card[data-v-f31a450e]{background:#fff;border-radius:18px;padding:20px;box-shadow:0 3px 14px #00372112;border-left:5px solid #29b365}.stat-label[data-v-f31a450e]{font-size:13px;color:#555;margin-bottom:5px}.stat-value[data-v-f31a450e]{font-size:19px;font-weight:700;color:#1d9b67}.menu-section[data-v-f31a450e]{padding:0 20px}.section-title[data-v-f31a450e]{font-size:19px;font-weight:600;color:#1d9b67;margin:0 0 18px}.menu-grid[data-v-f31a450e]{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.menu-item[data-v-f31a450e]{background:#fff;border-radius:18px;padding:22px 14px;text-align:center;box-shadow:0 3px 12px #0037210f;border:1px solid #e6f7ef}.menu-text[data-v-f31a450e]{font-size:13px;color:#2d7957;font-weight:500}.login[data-v-51f122f4]{min-height:100vh;background:linear-gradient(135deg,#2e7d32,#81c784);padding:20px}.login-card[data-v-51f122f4]{max-width:400px;margin:60px auto 0;background:#fff;border-radius:16px;padding:40px 32px;box-shadow:0 10px 40px #00000026}.logo-section[data-v-51f122f4]{text-align:center;margin-bottom:40px}.sdu-badge[data-v-51f122f4]{width:60px;height:60px;border-radius:50%;background:#2e7d32;color:#fff;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.app-title[data-v-51f122f4]{font-size:28px;font-weight:700;color:#2e7d32;margin-bottom:8px}.app-subtitle[data-v-51f122f4]{font-size:14px;color:#666}.form-section[data-v-51f122f4]{display:flex;flex-direction:column;gap:20px}.input-group[data-v-51f122f4]{display:flex;align-items:center;border:1px solid #e0e0e0;border-radius:8px;padding:12px 16px;transition:border-color .3s}.input-group[data-v-51f122f4]:focus-within{border-color:#2e7d32}.input-icon[data-v-51f122f4]{width:20px;height:20px;margin-right:12px;color:#2e7d32}.input-field[data-v-51f122f4]{flex:1;border:none;outline:none;font-size:16px;color:#333}.login-btn[data-v-51f122f4]{background:linear-gradient(135deg,#2e7d32,#43a047);color:#fff;border:none;border-radius:8px;padding:14px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s}.page[data-v-dd463cc5]{padding:20px;background:linear-gradient(180deg,#f0f9f2,#e8f5ee);min-height:100vh}.header[data-v-dd463cc5]{display:flex;align-items:center;margin-bottom:24px}.back-btn[data-v-dd463cc5]{background:#2e7d32;color:#fff;border:none;padding:8px 16px;border-radius:12px;margin-right:16px;cursor:pointer;transition:transform .2s ease}.back-btn[data-v-dd463cc5]:active{transform:scale(.96)}h2[data-v-dd463cc5]{color:#2e7d32;font-size:20px;font-weight:600}.user-card[data-v-dd463cc5]{background:#fff;border-radius:16px;padding:20px;display:flex;align-items:center;margin-bottom:24px;box-shadow:0 2px 12px #0000000f}.avatar[data-v-dd463cc5]{width:60px;height:60px;background:#e8f5e9;color:#2e7d32;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;margin-right:16px}.user-info[data-v-dd463cc5]{flex:1}.username[data-v-dd463cc5]{font-size:18px;font-weight:600;color:#2d3748;margin-bottom:4px}.role[data-v-dd463cc5]{font-size:14px;color:#666}.menu-section[data-v-dd463cc5]{background:#fff;border-radius:16px;margin-bottom:24px;overflow:hidden;box-shadow:0 2px 12px #0000000f}.menu-item[data-v-dd463cc5]{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid #f0f0f0;transition:background .2s ease}.menu-item[data-v-dd463cc5]:last-child{border-bottom:none}.menu-item[data-v-dd463cc5]:active{background:#f7fafc}.menu-icon[data-v-dd463cc5]{font-size:20px;margin-right:12px}.menu-text[data-v-dd463cc5]{flex:1;font-size:16px;color:#2d3748}.menu-arrow[data-v-dd463cc5]{color:#a0aec0;font-size:20px}.logout-btn[data-v-dd463cc5]{width:100%;background:#d32f2f;color:#fff;border:none;padding:14px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s ease}.logout-btn[data-v-dd463cc5]:active{background:#b71c1c}.page[data-v-a2d0e49c]{min-height:100vh;background:linear-gradient(180deg,#f7fbf9,#eef6f2);padding:20px}.header[data-v-a2d0e49c]{display:flex;align-items:center;margin-bottom:24px}.back-btn[data-v-a2d0e49c]{background:#1d9b67;color:#fff;border:none;padding:10px 18px;border-radius:14px;margin-right:16px;font-size:14px}h2[data-v-a2d0e49c]{font-size:22px;font-weight:700;color:#1d9b67}.status-grid[data-v-a2d0e49c]{display:grid;grid-template-columns:1fr 1fr;gap:14px}.status-card[data-v-a2d0e49c]{background:#fff;border-radius:18px;padding:22px 18px;box-shadow:0 4px 14px #0050280f;border-left:6px solid #1d9b67}.status-name[data-v-a2d0e49c]{font-size:13px;color:#777;margin-bottom:6px}.status-value[data-v-a2d0e49c]{font-size:17px;font-weight:700;color:#222}.page[data-v-935f0481]{padding:20px;background:linear-gradient(180deg,#f0f9f2,#e8f5ee);min-height:100vh}.header[data-v-935f0481]{display:flex;align-items:center;margin-bottom:24px}.back-btn[data-v-935f0481]{background:#2e7d32;color:#fff;border:none;padding:8px 16px;border-radius:12px;margin-right:16px;cursor:pointer;transition:transform .2s ease}.back-btn[data-v-935f0481]:active{transform:scale(.96)}h2[data-v-935f0481]{color:#2e7d32;font-size:20px;font-weight:600}.plot-list[data-v-935f0481]{display:flex;flex-direction:column;gap:12px}.plot-item[data-v-935f0481]{background:#fff;border-radius:16px;padding:16px 20px;box-shadow:0 2px 12px #0000000f;transition:transform .2s ease,box-shadow .2s ease}.plot-item[data-v-935f0481]:active{transform:scale(.98);box-shadow:0 1px 8px #00000014}.plot-item.warning[data-v-935f0481]{border:1px solid #f57c00}.plot-info[data-v-935f0481]{display:flex;justify-content:space-between;align-items:center}.plot-name[data-v-935f0481]{font-size:16px;font-weight:500;color:#2d3748}.status-badge[data-v-935f0481]{padding:4px 12px;border-radius:12px;font-size:13px;font-weight:600}.status-badge.normal[data-v-935f0481]{background:#e8f5e9;color:#2e7d32}.status-badge.warning[data-v-935f0481]{background:#fff3e0;color:#f57c00}.page[data-v-5ef27b98]{padding:20px;background:linear-gradient(180deg,#f0f9f2,#e8f5ee);min-height:100vh}.header[data-v-5ef27b98]{display:flex;align-items:center;margin-bottom:24px}.back-btn[data-v-5ef27b98]{background:#2e7d32;color:#fff;border:none;padding:8px 16px;border-radius:12px;margin-right:16px;cursor:pointer;transition:transform .2s ease}.back-btn[data-v-5ef27b98]:active{transform:scale(.96)}h2[data-v-5ef27b98]{color:#2e7d32;font-size:20px;font-weight:600}.plan-card[data-v-5ef27b98]{background:#fff;border-radius:16px;padding:20px;margin-bottom:24px;box-shadow:0 2px 12px #0000000f}.plan-title[data-v-5ef27b98]{font-size:16px;font-weight:600;color:#2d3748;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f0f0f0}.task-list[data-v-5ef27b98]{display:flex;flex-direction:column;gap:12px}.task-item[data-v-5ef27b98]{display:flex;align-items:center;padding:12px;background:#f7fafc;border-radius:12px;transition:background .2s ease}.task-item[data-v-5ef27b98]:hover{background:#edf2f7}.task-number[data-v-5ef27b98]{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:#2e7d32;color:#fff;border-radius:50%;font-size:12px;font-weight:600;margin-right:12px}.task-text[data-v-5ef27b98]{font-size:15px;color:#4a5568}.action-section[data-v-5ef27b98]{display:flex;justify-content:center}.execute-btn[data-v-5ef27b98]{background:linear-gradient(135deg,#2e7d32,#43a047);color:#fff;border:none;padding:14px 32px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;box-shadow:0 4px 12px #2e7d324d;transition:all .2s ease}.execute-btn[data-v-5ef27b98]:active{transform:translateY(2px);box-shadow:0 2px 8px #2e7d3266}.page[data-v-54ccbf0d]{padding:20px;background:#f3faf4;min-height:100vh}.header[data-v-54ccbf0d]{display:flex;align-items:center;margin-bottom:24px}.back-btn[data-v-54ccbf0d]{background:#2e7d32;color:#fff;border:none;padding:8px 16px;border-radius:4px;margin-right:16px;cursor:pointer}h2[data-v-54ccbf0d]{font-size:20px;color:#2e7d32}.current-stage[data-v-54ccbf0d]{background:#fff;padding:16px;border-radius:8px;margin-bottom:24px;box-shadow:0 2px 8px #0000001a;font-size:16px;color:#333}.stages-timeline[data-v-54ccbf0d]{background:#fff;padding:20px;border-radius:8px;margin-bottom:24px;box-shadow:0 2px 8px #0000001a}.stage-item[data-v-54ccbf0d]{display:flex;align-items:center;margin-bottom:20px;position:relative}.stage-item[data-v-54ccbf0d]:last-child{margin-bottom:0}.stage-item[data-v-54ccbf0d]:before{content:"";position:absolute;left:11px;top:30px;width:2px;height:calc(100% - 10px);background:#e0e0e0}.stage-item[data-v-54ccbf0d]:last-child:before{display:none}.stage-dot[data-v-54ccbf0d]{width:24px;height:24px;border-radius:50%;background:#e0e0e0;margin-right:16px;z-index:1}.stage-item.active .stage-dot[data-v-54ccbf0d]{background:#2e7d32}.stage-item.completed .stage-dot[data-v-54ccbf0d]{background:#4caf50}.stage-content[data-v-54ccbf0d]{flex:1}.stage-name[data-v-54ccbf0d]{font-size:16px;font-weight:500;color:#333;margin-bottom:4px}.stage-item.active .stage-name[data-v-54ccbf0d]{color:#2e7d32}.stage-item.completed .stage-name[data-v-54ccbf0d]{color:#4caf50}.stage-period[data-v-54ccbf0d]{font-size:14px;color:#666}.control-section[data-v-54ccbf0d]{display:flex;gap:16px;justify-content:center}.control-btn[data-v-54ccbf0d]{background:#2e7d32;color:#fff;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;transition:background .3s}.control-btn[data-v-54ccbf0d]:disabled{background:#ccc;cursor:not-allowed}.page[data-v-4c10bce1]{padding:20px;background:#f3faf4;min-height:100vh}.header[data-v-4c10bce1]{display:flex;align-items:center;margin-bottom:24px}.back-btn[data-v-4c10bce1]{background:#2e7d32;color:#fff;border:none;padding:8px 16px;border-radius:12px;margin-right:16px;cursor:pointer}h2[data-v-4c10bce1]{color:#2e7d32;font-size:20px}.compare-card[data-v-4c10bce1]{display:flex;gap:16px;margin-bottom:20px}.compare-item[data-v-4c10bce1]{flex:1;background:#fff;padding:20px;border-radius:12px;text-align:center}.compare-item .label[data-v-4c10bce1]{color:#666;font-size:14px;margin-bottom:8px}.compare-item .value[data-v-4c10bce1]{font-size:18px;font-weight:600}.compare-item.before .value[data-v-4c10bce1]{color:#d32f2f}.compare-item.after .value[data-v-4c10bce1]{color:#2e7d32}.result-card[data-v-4c10bce1]{background:#fff;padding:24px;border-radius:12px;text-align:center;margin-bottom:24px}.result-label[data-v-4c10bce1]{color:#666;font-size:16px;margin-bottom:8px}.result-value[data-v-4c10bce1]{color:#2e7d32;font-size:24px;font-weight:700}.action-section[data-v-4c10bce1]{display:flex;justify-content:center}.refresh-btn[data-v-4c10bce1]{background:#2e7d32;color:#fff;border:none;padding:12px 24px;border-radius:12px;cursor:pointer;font-size:16px;font-weight:600}.page[data-v-505268d3]{min-height:100vh;background:linear-gradient(180deg,#f7fbf9,#eef6f2);padding:20px}.header[data-v-505268d3]{display:flex;align-items:center;margin-bottom:24px}.back-btn[data-v-505268d3]{background:#1d9b67;color:#fff;border:none;padding:10px 18px;border-radius:14px;margin-right:16px;font-size:14px}h2[data-v-505268d3]{font-size:22px;font-weight:700;color:#1d9b67}.info-card[data-v-505268d3]{background:#fff;border-radius:18px;padding:22px 18px;box-shadow:0 4px 14px #0050280f;margin-bottom:20px}.info-item[data-v-505268d3]{display:flex;justify-content:space-between;padding:12px 0}.label[data-v-505268d3]{font-size:14px;color:#666}.value[data-v-505268d3]{font-size:14px;font-weight:600;color:#1d9b67}.control-box[data-v-505268d3]{text-align:center;margin-bottom:24px}.btn[data-v-505268d3]{padding:14px 32px;border-radius:16px;border:none;font-size:15px;font-weight:600;color:#fff}.btn-start[data-v-505268d3]{background:#1d9b67}.btn-stop[data-v-505268d3]{background:#ff4d4f}.progress-box[data-v-505268d3]{background:#fff;border-radius:18px;padding:22px;box-shadow:0 4px 14px #0050280f}.progress-title[data-v-505268d3]{font-size:14px;color:#666;margin-bottom:12px}.progress-bar[data-v-505268d3]{height:8px;background:#ebedf0;border-radius:4px;overflow:hidden}.progress-in[data-v-505268d3]{height:100%;background:#1d9b67;transition:width .3s ease}.progress-num[data-v-505268d3]{text-align:right;font-size:14px;color:#333;margin-top:8px}.page[data-v-1ddfd278]{min-height:100vh;background:#f7fbf9;padding:22px}.header[data-v-1ddfd278]{display:flex;align-items:center;margin-bottom:24px}.back-btn[data-v-1ddfd278]{background:#1d9b67;color:#fff;border:none;padding:10px 18px;border-radius:14px;font-size:14px;margin-right:16px}h2[data-v-1ddfd278]{font-size:22px;font-weight:700;color:#1d9b67}.spectral-card[data-v-1ddfd278]{background:#fff;border-radius:20px;padding:26px;margin-bottom:20px;box-shadow:0 4px 14px #0050280f}.spectral-image[data-v-1ddfd278]{width:100%;height:200px;background:linear-gradient(90deg,#1d9b67,#29b365,#6ede8a);border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:17px;font-weight:600}.result-card[data-v-1ddfd278]{background:#fff;border-radius:20px;padding:24px;margin-bottom:24px;box-shadow:0 4px 14px #0050280f}.result-item[data-v-1ddfd278]{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid #f0f0f0}.result-item[data-v-1ddfd278]:last-child{border-bottom:none}.label[data-v-1ddfd278]{font-size:15px;color:#666}.value[data-v-1ddfd278]{font-size:15px;font-weight:700;color:#1d9b67}.action-box[data-v-1ddfd278]{text-align:center}.diagnose-btn[data-v-1ddfd278]{background:#1d9b67;color:#fff;border:none;padding:14px 32px;border-radius:16px;font-size:15px;font-weight:600}.page[data-v-0994d1c6]{padding:20px;background:#f3faf4;min-height:100vh}.header[data-v-0994d1c6]{display:flex;align-items:center;margin-bottom:20px}.back-btn[data-v-0994d1c6]{background:#2e7d32;color:#fff;border:none;padding:8px 16px;border-radius:12px;margin-right:16px;cursor:pointer}h2[data-v-0994d1c6]{color:#2e7d32;font-size:20px}.status-card[data-v-0994d1c6]{background:#fff;padding:20px;border-radius:12px;margin-bottom:20px}.status-item[data-v-0994d1c6]{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #f0f0f0}.status-item[data-v-0994d1c6]:last-child{border-bottom:none}.label[data-v-0994d1c6]{color:#333;font-size:16px}.value[data-v-0994d1c6]{font-weight:600;font-size:16px}.value.active[data-v-0994d1c6]{color:#2e7d32}.value.idle[data-v-0994d1c6]{color:#666}.control-section[data-v-0994d1c6]{display:flex;justify-content:center;margin-bottom:20px}.control-btn[data-v-0994d1c6]{border:none;padding:12px 24px;border-radius:12px;cursor:pointer;font-size:16px;font-weight:600}.control-btn.start[data-v-0994d1c6]{background:#2e7d32;color:#fff}.control-btn.pause[data-v-0994d1c6]{background:#f57c00;color:#fff}.map-placeholder[data-v-0994d1c6]{background:#fff;height:220px;border-radius:16px;display:flex;align-items:center;justify-content:center;color:#666;font-size:16px}.page[data-v-842ab07e]{padding:20px;background:linear-gradient(180deg,#f0f9f2,#e8f5ee);min-height:100vh}.header[data-v-842ab07e]{display:flex;align-items:center;margin-bottom:24px}.back-btn[data-v-842ab07e]{background:#2e7d32;color:#fff;border:none;padding:8px 16px;border-radius:12px;margin-right:16px;cursor:pointer}h2[data-v-842ab07e]{color:#2e7d32;font-size:20px;font-weight:600}.chart-box[data-v-842ab07e]{background:#fff;height:180px;border-radius:16px;margin-bottom:20px;box-shadow:0 2px 12px #0000000f;overflow:hidden}.chart-line[data-v-842ab07e]{width:100%;height:100%;background:linear-gradient(to right,#2e7d32,#43a047,#6ede8a)}.sensor-grid[data-v-842ab07e]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sensor-card[data-v-842ab07e]{background:#fff;border-radius:16px;padding:16px;box-shadow:0 2px 12px #0000000f}.sensor-content[data-v-842ab07e]{flex:1}.sensor-name[data-v-842ab07e]{font-size:13px;color:#666;margin-bottom:4px}.sensor-value[data-v-842ab07e]{font-size:16px;font-weight:700;color:#2d3748}
