.modal-overlay[data-v-114dc9d9]{z-index:300;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-container[data-v-114dc9d9]{background:#fff;border-radius:16px;width:90%;max-width:400px;overflow:hidden;box-shadow:0 20px 60px #0000004d}.modal-header[data-v-114dc9d9]{align-items:center;gap:12px;padding:20px 24px 0;display:flex}.modal-icon[data-v-114dc9d9]{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.modal-icon svg[data-v-114dc9d9]{width:24px;height:24px}.modal-icon.success[data-v-114dc9d9]{color:#16a34a;background:#dcfce7}.modal-icon.error[data-v-114dc9d9]{color:#dc2626;background:#fee2e2}.modal-icon.warning[data-v-114dc9d9]{color:#d97706;background:#fef3c7}.modal-icon.info[data-v-114dc9d9]{color:#0284c7;background:#e0f2fe}.modal-header h3[data-v-114dc9d9]{color:var(--gray-900);flex:1;margin:0;font-size:18px;font-weight:600}.modal-close[data-v-114dc9d9]{background:var(--gray-100);cursor:pointer;width:32px;height:32px;color:var(--gray-500);border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .2s;display:flex}.modal-close[data-v-114dc9d9]:hover{background:var(--gray-200);color:var(--gray-700)}.modal-body[data-v-114dc9d9]{padding:16px 24px 24px}.modal-body p[data-v-114dc9d9]{color:var(--gray-600);margin:0;font-size:14px;line-height:1.6}.modal-footer[data-v-114dc9d9]{justify-content:flex-end;gap:12px;padding:0 24px 20px;display:flex}.btn[data-v-114dc9d9]{cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s}.btn-secondary[data-v-114dc9d9]{background:var(--gray-100);color:var(--gray-700)}.btn-secondary[data-v-114dc9d9]:hover{background:var(--gray-200)}.btn-primary[data-v-114dc9d9]{color:#fff;background:linear-gradient(135deg,#16a34a,#15803d)}.btn-primary[data-v-114dc9d9]:hover{transform:translateY(-1px)}.btn-primary.error[data-v-114dc9d9]{background:linear-gradient(135deg,#dc2626,#b91c1c)}.btn-primary.warning[data-v-114dc9d9]{background:linear-gradient(135deg,#d97706,#b45309)}.fade-enter-active[data-v-114dc9d9],.fade-leave-active[data-v-114dc9d9]{transition:opacity .2s}.fade-enter-from[data-v-114dc9d9],.fade-leave-to[data-v-114dc9d9]{opacity:0}.scale-enter-active[data-v-114dc9d9],.scale-leave-active[data-v-114dc9d9]{transition:all .2s}.scale-enter-from[data-v-114dc9d9],.scale-leave-to[data-v-114dc9d9]{opacity:0;transform:scale(.95)}:root{--primary-50:#f0fdf4;--primary-100:#dcfce7;--primary-200:#bbf7d0;--primary-300:#86efac;--primary-400:#4ade80;--primary-500:#22c55e;--primary-600:#16a34a;--primary-700:#15803d;--primary-800:#166534;--primary-900:#14532d;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--danger-500:#ef4444;--warning-500:#f59e0b;--info-500:#3b82f6;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--radius-sm:6px;--radius:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:18px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:var(--text-base);color:var(--gray-800);background:var(--gray-50);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.5}#app{min-height:100vh}.navbar{border-bottom:1px solid var(--gray-200);height:64px;box-shadow:var(--shadow-sm);z-index:100;background:#fff;position:fixed;top:0;left:0;right:0}.nav-container{align-items:center;gap:32px;max-width:1400px;height:100%;margin:0 auto;padding:0 24px;display:flex}.nav-brand{flex-shrink:0}.brand-link{align-items:center;gap:10px;text-decoration:none;display:flex}.brand-icon{background:linear-gradient(135deg, var(--primary-500), var(--primary-600));border-radius:var(--radius-md);justify-content:center;align-items:center;width:36px;height:36px;display:flex;box-shadow:0 2px 8px #22c55e4d}.icon-leaf{color:#fff;width:22px;height:22px}.brand-text{font-size:var(--text-xl);color:var(--gray-900);letter-spacing:-.5px;font-weight:700}.nav-main{flex:1;align-items:center;gap:4px;display:flex}.nav-item{border-radius:var(--radius);color:var(--gray-600);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:8px 16px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.nav-item:hover{color:var(--gray-900);background:var(--gray-100)}.nav-item.active{color:var(--primary-700);background:var(--primary-50)}.nav-icon{width:18px;height:18px}.admin-trigger{color:var(--warning-500)}.admin-trigger:hover{color:var(--warning-500);background:#fffbeb}.nav-dropdown{position:relative}.dropdown-arrow{width:14px;height:14px;margin-left:2px;transition:transform .2s}.dropdown-arrow.rotated{transform:rotate(180deg)}.dropdown-menu{border:1px solid var(--gray-200);border-radius:var(--radius-md);min-width:160px;box-shadow:var(--shadow-lg);z-index:101;background:#fff;margin-top:8px;padding:6px;position:absolute;top:100%;left:0}.dropdown-item{border-radius:var(--radius-sm);color:var(--gray-700);font-size:var(--text-sm);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:10px 12px;text-decoration:none;transition:all .15s;display:flex}.dropdown-item:hover{background:var(--gray-100);color:var(--gray-900)}.dropdown-item.logout{color:var(--danger-500)}.dropdown-item.logout:hover{background:#fef2f2}.dropdown-icon{flex-shrink:0;width:16px;height:16px}.dropdown-divider{background:var(--gray-200);height:1px;margin:6px 0}.nav-actions{flex-shrink:0}.user-menu{position:relative}.user-trigger{border-radius:var(--radius-full);background:var(--gray-100);border:1px solid var(--gray-200);cursor:pointer;align-items:center;gap:10px;padding:6px 12px 6px 6px;transition:all .2s;display:flex}.user-trigger:hover{background:var(--gray-200);border-color:var(--gray-300)}.user-avatar{background:linear-gradient(135deg, var(--primary-400), var(--primary-600));border-radius:var(--radius-full);justify-content:center;align-items:center;width:32px;height:32px;display:flex}.avatar-icon{color:#fff;width:18px;height:18px}.user-name{font-size:var(--text-sm);color:var(--gray-700);text-overflow:ellipsis;white-space:nowrap;max-width:100px;font-weight:500;overflow:hidden}.user-menu .dropdown-menu{left:auto;right:0}.btn-login{background:var(--primary-600);color:#fff;font-size:var(--text-sm);border-radius:var(--radius);align-items:center;gap:8px;padding:10px 20px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.btn-login:hover{background:var(--primary-700);box-shadow:0 4px 12px #22c55e66}.btn-icon{width:18px;height:18px}.main-content{min-height:100vh}.main-content.with-nav{padding-top:64px}.main-content.no-nav{max-width:none}.btn{font-size:var(--text-sm);border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.btn-primary{background:var(--primary-600);color:#fff}.btn-primary:hover{background:var(--primary-700);box-shadow:0 4px 12px #22c55e59}.btn-secondary{color:var(--gray-700);border:1px solid var(--gray-300);background:#fff}.btn-secondary:hover{background:var(--gray-50);border-color:var(--gray-400)}.btn-danger{background:var(--danger-500);color:#fff}.btn-danger:hover{background:#dc2626}.btn-sm{font-size:var(--text-xs);padding:6px 12px}.btn-lg{font-size:var(--text-base);padding:14px 28px}.card{border-radius:var(--radius-lg);border:1px solid var(--gray-200);box-shadow:var(--shadow-sm);background:#fff;overflow:hidden}.card-header{border-bottom:1px solid var(--gray-100);padding:20px 24px}.card-title{font-size:var(--text-lg);color:var(--gray-900);font-weight:600}.card-body{padding:24px}@media (width<=1024px){.nav-main{display:none}.nav-container{justify-content:space-between}}@media (width<=640px){.nav-container{padding:0 16px}.brand-text,.user-name{display:none}}.landing[data-v-39f4bc3c]{background:linear-gradient(135deg,#f5f7fa 0%,#e8f5e9 100%);min-height:100vh}.header[data-v-39f4bc3c]{background:#fff;justify-content:space-between;align-items:center;padding:20px 40px;display:flex;box-shadow:0 1px 3px #0000000d}.logo[data-v-39f4bc3c]{color:#42b983;align-items:center;gap:10px;font-size:24px;font-weight:600;display:flex}.logo-icon[data-v-39f4bc3c]{width:32px;height:32px}.header-actions[data-v-39f4bc3c]{gap:12px;display:flex}.hero[data-v-39f4bc3c]{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:80px 40px;display:flex}.hero-content[data-v-39f4bc3c]{flex:1}.hero-content h1[data-v-39f4bc3c]{color:#333;margin-bottom:16px;font-size:48px;line-height:1.2}.subtitle[data-v-39f4bc3c]{color:#666;margin-bottom:32px;font-size:20px}.hero-actions[data-v-39f4bc3c]{gap:16px;display:flex}.hero-visual[data-v-39f4bc3c]{flex:1;justify-content:center;display:flex}.plant-illustration[data-v-39f4bc3c]{background:#fff;border-radius:50%;justify-content:center;align-items:center;width:200px;height:200px;display:flex;box-shadow:0 20px 40px #42b98333}.plant-icon[data-v-39f4bc3c]{color:#42b983;width:100px;height:100px}.features[data-v-39f4bc3c]{background:#fff;padding:80px 40px}.features h2[data-v-39f4bc3c]{text-align:center;color:#333;margin-bottom:48px;font-size:32px}.features-grid[data-v-39f4bc3c]{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:32px;max-width:1200px;margin:0 auto;display:grid}.feature-card[data-v-39f4bc3c]{text-align:center;background:#f8f9fa;border-radius:12px;padding:32px;transition:transform .2s}.feature-card[data-v-39f4bc3c]:hover{transform:translateY(-4px)}.feature-icon[data-v-39f4bc3c]{color:#42b983;width:48px;height:48px;margin-bottom:16px}.feature-card h3[data-v-39f4bc3c]{color:#333;margin-bottom:12px;font-size:20px}.feature-card p[data-v-39f4bc3c]{color:#666;font-size:14px;line-height:1.6}.footer[data-v-39f4bc3c]{text-align:center;color:#999;padding:24px;font-size:14px}.btn[data-v-39f4bc3c]{cursor:pointer;border-radius:8px;padding:10px 20px;font-size:14px;text-decoration:none;transition:all .2s;display:inline-block}.btn-primary[data-v-39f4bc3c]{color:#fff;background:#42b983;border:none}.btn-primary[data-v-39f4bc3c]:hover{background:#3aa876}.btn-outline[data-v-39f4bc3c]{color:#42b983;background:#fff;border:1px solid #42b983}.btn-outline[data-v-39f4bc3c]:hover{background:#f0fdf4}.btn-lg[data-v-39f4bc3c]{padding:14px 28px;font-size:16px}@media (width<=768px){.hero[data-v-39f4bc3c]{text-align:center;flex-direction:column;padding:40px 20px}.hero-content h1[data-v-39f4bc3c]{font-size:32px}.hero-visual[data-v-39f4bc3c]{margin-top:40px}.hero-actions[data-v-39f4bc3c]{justify-content:center}}.dashboard[data-v-bc947909]{max-width:1400px;margin:0 auto;padding:24px}.page-header[data-v-bc947909]{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-title[data-v-bc947909]{font-size:var(--text-2xl);color:var(--gray-900);align-items:center;gap:12px;font-weight:700;display:flex}.title-icon[data-v-bc947909]{width:32px;height:32px;color:var(--primary-600)}.page-subtitle[data-v-bc947909]{font-size:var(--text-base);color:var(--gray-500);margin-top:4px}.header-actions[data-v-bc947909]{gap:12px;display:flex}.stats-grid[data-v-bc947909]{grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:24px;display:grid}.stat-card[data-v-bc947909]{border-radius:var(--radius-lg);border:1px solid var(--gray-200);box-shadow:var(--shadow-sm);background:#fff;padding:20px;transition:all .2s}.stat-card[data-v-bc947909]:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card.warning[data-v-bc947909]{background:linear-gradient(135deg,#fff,#fffbeb);border-color:#fcd34d}.stat-card.danger[data-v-bc947909]{background:linear-gradient(135deg,#fff,#fef2f2);border-color:#fca5a5}.stat-header[data-v-bc947909]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.stat-icon-wrapper[data-v-bc947909]{border-radius:var(--radius-md);justify-content:center;align-items:center;width:44px;height:44px;display:flex}.stat-icon[data-v-bc947909]{width:24px;height:24px}.stat-trend[data-v-bc947909]{font-size:var(--text-sm);color:var(--gray-500);align-items:center;gap:4px;font-weight:500;display:flex}.trend-icon[data-v-bc947909]{width:16px;height:16px}.stat-body[data-v-bc947909]{align-items:baseline;gap:4px;margin-bottom:8px;display:flex}.stat-value[data-v-bc947909]{color:var(--gray-900);font-size:32px;font-weight:700;line-height:1}.stat-unit[data-v-bc947909]{font-size:var(--text-sm);color:var(--gray-500);font-weight:500}.stat-footer[data-v-bc947909]{justify-content:space-between;align-items:center;display:flex}.stat-label[data-v-bc947909]{font-size:var(--text-sm);color:var(--gray-600)}.stat-status[data-v-bc947909]{font-size:var(--text-xs);border-radius:var(--radius-full);color:#dc2626;background:#fee2e2;padding:2px 8px;font-weight:500}.dashboard-grid[data-v-bc947909]{grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px;display:grid}.dashboard-card[data-v-bc947909]{border-radius:var(--radius-lg);border:1px solid var(--gray-200);box-shadow:var(--shadow-sm);background:#fff;overflow:hidden}.card-header[data-v-bc947909]{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.card-title[data-v-bc947909]{font-size:var(--text-base);color:var(--gray-900);align-items:center;gap:10px;font-weight:600;display:flex}.card-title-icon[data-v-bc947909]{width:20px;height:20px;color:var(--primary-600)}.card-link[data-v-bc947909]{font-size:var(--text-sm);color:var(--primary-600);align-items:center;gap:4px;font-weight:500;text-decoration:none;transition:color .2s;display:flex}.card-link[data-v-bc947909]:hover{color:var(--primary-700)}.link-icon[data-v-bc947909]{width:16px;height:16px}.card-body[data-v-bc947909]{min-height:200px;padding:20px 24px}.device-list[data-v-bc947909]{flex-direction:column;gap:12px;display:flex}.device-item[data-v-bc947909]{background:var(--gray-50);border-radius:var(--radius);border:1px solid var(--gray-100);align-items:center;gap:12px;padding:14px 16px;transition:all .2s;display:flex}.device-item[data-v-bc947909]:hover{background:var(--gray-100);border-color:var(--gray-200)}.device-status-dot[data-v-bc947909]{border-radius:var(--radius-full);background:var(--gray-300);flex-shrink:0;width:10px;height:10px}.device-status-dot.online[data-v-bc947909]{background:var(--primary-500);box-shadow:0 0 0 3px #22c55e33}.device-info[data-v-bc947909]{flex:1;min-width:0}.device-name[data-v-bc947909]{color:var(--gray-900);font-weight:600;font-size:var(--text-sm);margin-bottom:2px}.device-meta[data-v-bc947909]{font-size:var(--text-xs);color:var(--gray-500)}.device-plant[data-v-bc947909]{color:var(--primary-600);font-weight:500}.device-offline[data-v-bc947909]{color:var(--gray-400)}.device-sensors[data-v-bc947909]{flex-shrink:0}.sensor-mini[data-v-bc947909]{font-size:var(--text-xs);color:var(--primary-600);background:var(--primary-50);border-radius:var(--radius-sm);align-items:center;gap:4px;padding:4px 8px;font-weight:500;display:flex}.mini-icon[data-v-bc947909]{width:12px;height:12px}.alert-list[data-v-bc947909]{flex-direction:column;gap:10px;display:flex}.alert-item[data-v-bc947909]{border-radius:var(--radius);border:1px solid;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.alert-item.critical[data-v-bc947909]{background:#fef2f2;border-color:#fecaca}.alert-item.warning[data-v-bc947909]{background:#fffbeb;border-color:#fcd34d}.alert-item.info[data-v-bc947909]{background:#eff6ff;border-color:#bfdbfe}.alert-icon[data-v-bc947909]{flex-shrink:0;width:18px;height:18px}.alert-item.critical .alert-icon[data-v-bc947909]{color:#dc2626}.alert-item.warning .alert-icon[data-v-bc947909]{color:#d97706}.alert-item.info .alert-icon[data-v-bc947909]{color:#2563eb}.alert-content[data-v-bc947909]{flex:1;min-width:0}.alert-message[data-v-bc947909]{font-size:var(--text-sm);color:var(--gray-800);margin-bottom:4px;line-height:1.4}.alert-time[data-v-bc947909]{font-size:var(--text-xs);color:var(--gray-500)}.empty-state[data-v-bc947909]{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px 20px;display:flex}.empty-icon[data-v-bc947909]{background:var(--gray-100);border-radius:var(--radius-full);width:56px;height:56px;color:var(--gray-400);justify-content:center;align-items:center;margin-bottom:16px;display:flex}.empty-icon.success[data-v-bc947909]{color:var(--primary-600);background:#dcfce7}.empty-icon svg[data-v-bc947909]{width:28px;height:28px}.empty-state p[data-v-bc947909]{font-size:var(--text-sm);color:var(--gray-500);margin-bottom:16px}.loading-state[data-v-bc947909]{flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px;display:flex}.spinner[data-v-bc947909]{border:3px solid var(--gray-200);border-top-color:var(--primary-600);border-radius:var(--radius-full);width:32px;height:32px;animation:1s linear infinite spin-bc947909}@keyframes spin-bc947909{to{transform:rotate(360deg)}}.loading-state span[data-v-bc947909]{font-size:var(--text-sm);color:var(--gray-500)}.quick-access[data-v-bc947909]{margin-top:8px}.section-title[data-v-bc947909]{font-size:var(--text-lg);color:var(--gray-900);align-items:center;gap:10px;margin-bottom:16px;font-weight:600;display:flex}.section-icon[data-v-bc947909]{width:22px;height:22px;color:var(--primary-600)}.quick-grid[data-v-bc947909]{grid-template-columns:repeat(5,1fr);gap:16px;display:grid}.quick-item[data-v-bc947909]{border-radius:var(--radius-lg);border:1px solid var(--gray-200);background:#fff;flex-direction:column;align-items:center;gap:12px;padding:24px 16px;text-decoration:none;transition:all .2s;display:flex}.quick-item[data-v-bc947909]:hover{box-shadow:var(--shadow-md);border-color:var(--primary-200);transform:translateY(-2px)}.quick-icon-wrapper[data-v-bc947909]{border-radius:var(--radius-md);justify-content:center;align-items:center;width:52px;height:52px;display:flex}.quick-icon[data-v-bc947909]{width:26px;height:26px}.quick-label[data-v-bc947909]{font-size:var(--text-sm);color:var(--gray-700);font-weight:500}@media (width<=1200px){.stats-grid[data-v-bc947909]{grid-template-columns:repeat(2,1fr)}.quick-grid[data-v-bc947909]{grid-template-columns:repeat(3,1fr)}}@media (width<=768px){.dashboard[data-v-bc947909]{padding:16px}.page-header[data-v-bc947909]{flex-direction:column;align-items:flex-start;gap:16px}.stats-grid[data-v-bc947909],.dashboard-grid[data-v-bc947909]{grid-template-columns:1fr}.quick-grid[data-v-bc947909]{grid-template-columns:repeat(2,1fr)}.stat-value[data-v-bc947909]{font-size:28px}}.pots[data-v-af2d4daa]{max-width:1400px;margin:0 auto;padding:24px}.page-header[data-v-af2d4daa]{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h1[data-v-af2d4daa]{font-size:var(--text-2xl);color:var(--gray-900);font-weight:700}.header-actions[data-v-af2d4daa]{align-items:center;gap:16px;display:flex}.view-toggle[data-v-af2d4daa]{background:var(--gray-100);border-radius:var(--radius);padding:4px;display:flex}.toggle-btn[data-v-af2d4daa]{width:36px;height:36px;color:var(--gray-500);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;transition:all .2s;display:flex}.toggle-btn[data-v-af2d4daa]:hover{color:var(--gray-700)}.toggle-btn.active[data-v-af2d4daa]{color:var(--primary-600);box-shadow:var(--shadow-sm);background:#fff}.toggle-icon[data-v-af2d4daa]{width:18px;height:18px}.btn[data-v-af2d4daa]{border-radius:var(--radius);cursor:pointer;border:none;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn-icon[data-v-af2d4daa]{width:18px;height:18px}.btn-primary[data-v-af2d4daa]{background:linear-gradient(135deg, var(--primary-600), var(--primary-700));color:#fff;box-shadow:0 4px 12px #22c55e4d}.btn-primary[data-v-af2d4daa]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #22c55e66}.btn-primary[data-v-af2d4daa]:disabled{opacity:.7;cursor:not-allowed}.btn-secondary[data-v-af2d4daa]{background:var(--gray-100);color:var(--gray-700)}.btn-secondary[data-v-af2d4daa]:hover{background:var(--gray-200)}.btn-danger[data-v-af2d4daa]{color:#dc2626;background:#fef2f2;padding:10px 14px}.btn-danger[data-v-af2d4daa]:hover{background:#fee2e2}.btn-water[data-v-af2d4daa]{color:#fff;background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 4px 12px #3b82f64d}.btn-water[data-v-af2d4daa]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #3b82f666}.btn-water.needs-water[data-v-af2d4daa]{background:linear-gradient(135deg,#ef4444,#dc2626);animation:2s infinite pulse-af2d4daa;box-shadow:0 4px 12px #ef44444d}@keyframes pulse-af2d4daa{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.btn-water[data-v-af2d4daa]:disabled{opacity:.7;cursor:not-allowed}.spin[data-v-af2d4daa]{animation:1s linear infinite spin-af2d4daa}@keyframes spin-af2d4daa{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.available-section[data-v-af2d4daa]{margin-top:32px;margin-bottom:24px}.section-title[data-v-af2d4daa]{color:var(--gray-800);align-items:center;gap:8px;margin-bottom:8px;font-size:18px;font-weight:600;display:flex}.section-icon[data-v-af2d4daa]{color:#22c55e;width:20px;height:20px}.section-desc[data-v-af2d4daa]{color:var(--gray-500);margin-bottom:16px;font-size:14px}.available-list[data-v-af2d4daa]{flex-direction:column;gap:12px;display:flex}.available-card[data-v-af2d4daa]{background:#fff;border:1px solid #dcfce7;border-radius:12px;justify-content:space-between;align-items:center;padding:16px 20px;display:flex;box-shadow:0 1px 3px #0000000d}.available-info[data-v-af2d4daa]{align-items:center;gap:14px;display:flex}.available-icon[data-v-af2d4daa]{color:#22c55e;background:#f0fdf4;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.available-id[data-v-af2d4daa]{color:var(--gray-800);font-family:monospace;font-size:15px;font-weight:600}.available-status[data-v-af2d4daa]{color:var(--gray-500);align-items:center;gap:6px;margin-top:4px;font-size:13px;display:flex}.status-dot[data-v-af2d4daa]{border-radius:50%;width:8px;height:8px}.status-dot.online[data-v-af2d4daa]{background:#22c55e;box-shadow:0 0 6px #22c55e80}.btn-sm[data-v-af2d4daa]{padding:8px 16px;font-size:13px}.pots-grid[data-v-af2d4daa]{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:20px;display:grid}.pot-card[data-v-af2d4daa]{border-radius:var(--radius-lg);border:1px solid var(--gray-200);box-shadow:var(--shadow-sm);background:#fff;padding:24px;transition:all .2s}.pot-card[data-v-af2d4daa]:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.pot-header[data-v-af2d4daa]{align-items:center;gap:16px;margin-bottom:20px;display:flex}.pot-icon[data-v-af2d4daa]{background:linear-gradient(135deg, var(--primary-100), var(--primary-200));border-radius:var(--radius-md);justify-content:center;align-items:center;width:56px;height:56px;display:flex}.pot-icon-svg[data-v-af2d4daa]{width:28px;height:28px;color:var(--primary-600)}.pot-info[data-v-af2d4daa]{flex:1}.pot-info h3[data-v-af2d4daa]{color:var(--gray-900);margin:0;font-size:18px;font-weight:600}.pot-device-id[data-v-af2d4daa]{color:var(--gray-400);margin:4px 0 0;font-family:monospace;font-size:12px}.status-badge[data-v-af2d4daa]{border-radius:var(--radius-full);padding:6px 12px;font-size:12px;font-weight:600}.status-badge.online[data-v-af2d4daa]{color:#16a34a;background:#dcfce7}.status-badge.offline[data-v-af2d4daa]{background:var(--gray-100);color:var(--gray-500)}.sensor-grid[data-v-af2d4daa]{background:var(--gray-50);border-radius:var(--radius);grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;padding:16px;display:grid}.sensor-item[data-v-af2d4daa]{text-align:center;border-radius:var(--radius);border:1px solid var(--gray-100);background:#fff;padding:12px 8px}.sensor-item.warning[data-v-af2d4daa]{background:#fef2f2;border-color:#fecaca}.sensor-item.warning .sensor-value[data-v-af2d4daa]{color:#dc2626}.sensor-icon[data-v-af2d4daa]{width:20px;height:20px;color:var(--gray-400);margin:0 auto 6px}.sensor-value[data-v-af2d4daa]{color:var(--gray-900);margin-bottom:4px;font-size:18px;font-weight:700;line-height:1}.sensor-label[data-v-af2d4daa]{color:var(--gray-500);font-size:11px}.pot-details[data-v-af2d4daa]{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.detail-item[data-v-af2d4daa]{color:var(--gray-600);align-items:center;gap:10px;font-size:14px;display:flex}.detail-icon[data-v-af2d4daa]{width:16px;height:16px;color:var(--gray-400)}.last-irrigation[data-v-af2d4daa]{border-radius:var(--radius);background:#eff6ff;margin-bottom:16px;padding:10px 14px}.log-header[data-v-af2d4daa]{color:#2563eb;align-items:center;gap:8px;font-size:13px;display:flex}.log-icon[data-v-af2d4daa]{width:14px;height:14px}.pot-actions[data-v-af2d4daa]{flex-wrap:wrap;gap:10px;display:flex}.btn-qr[data-v-af2d4daa]{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.btn-qr[data-v-af2d4daa]:hover{background:#dcfce7}.qr-modal .modal-container[data-v-af2d4daa]{max-width:420px}.qr-body[data-v-af2d4daa]{text-align:center;align-items:center}.qr-hint[data-v-af2d4daa]{color:var(--gray-600);word-break:break-all;margin-bottom:16px;font-size:13px}.qr-hint code[data-v-af2d4daa]{background:var(--gray-100);border-radius:4px;padding:2px 6px;font-size:12px}.qr-wrap[data-v-af2d4daa]{justify-content:center;align-items:center;min-height:240px;margin-bottom:16px;display:flex}.qr-img[data-v-af2d4daa]{width:240px;height:240px;display:block}.qr-loader[data-v-af2d4daa]{width:40px;height:40px;color:var(--primary-600)}.qr-link-label[data-v-af2d4daa]{color:var(--gray-500);text-align:left;width:100%;margin-bottom:8px;font-size:12px}.qr-url-input[data-v-af2d4daa]{text-align:left;font-size:12px}.empty[data-v-af2d4daa]{text-align:center;border-radius:var(--radius-lg);border:2px dashed var(--gray-200);background:#fff;grid-column:1/-1;padding:60px 20px}.empty-icon[data-v-af2d4daa]{background:var(--gray-100);border-radius:var(--radius-full);width:64px;height:64px;color:var(--gray-400);justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.empty-icon svg[data-v-af2d4daa]{width:32px;height:32px}.empty p[data-v-af2d4daa]{color:var(--gray-500);font-size:14px}.pots-table-wrap[data-v-af2d4daa]{border-radius:var(--radius-lg);border:1px solid var(--gray-200);box-shadow:var(--shadow-sm);background:#fff;overflow:hidden}.pots-table[data-v-af2d4daa]{border-collapse:collapse;width:100%}.pots-table th[data-v-af2d4daa],.pots-table td[data-v-af2d4daa]{text-align:left;border-bottom:1px solid var(--gray-100);padding:14px 16px}.pots-table th[data-v-af2d4daa]{background:var(--gray-50);color:var(--gray-500);text-transform:uppercase;font-size:13px;font-weight:600}.pots-table td[data-v-af2d4daa]{color:var(--gray-700);font-size:14px}.pots-table tbody tr[data-v-af2d4daa]:hover{background:var(--gray-50)}.pots-table tbody tr:last-child td[data-v-af2d4daa]{border-bottom:none}.table-name[data-v-af2d4daa]{align-items:center;gap:10px;display:flex}.table-icon[data-v-af2d4daa]{width:20px;height:20px;color:var(--primary-600)}.table-id[data-v-af2d4daa]{color:var(--gray-500);font-family:monospace;font-size:12px}.table-actions[data-v-af2d4daa]{gap:8px;display:flex}.btn-action[data-v-af2d4daa]{cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.btn-action.water[data-v-af2d4daa]{color:#1976d2;background:#e3f2fd}.btn-action.water[data-v-af2d4daa]:hover:not(:disabled){background:#bbdefb}.btn-action.water[data-v-af2d4daa]:disabled{opacity:.5;cursor:not-allowed}.btn-action.view[data-v-af2d4daa]{color:#2e7d32;background:#e8f5e9}.btn-action.view[data-v-af2d4daa]:hover{background:#c8e6c9}.btn-action.delete[data-v-af2d4daa]{color:#dc2626;background:#fef2f2}.btn-action.delete[data-v-af2d4daa]:hover{background:#fee2e2}.action-icon[data-v-af2d4daa]{width:16px;height:16px}.empty-table[data-v-af2d4daa]{text-align:center;color:var(--gray-400);padding:40px 16px!important}td.warning[data-v-af2d4daa]{color:#dc2626;font-weight:600}.pagination[data-v-af2d4daa]{justify-content:center;align-items:center;gap:8px;margin-top:24px;padding:16px 0;display:flex}.page-btn[data-v-af2d4daa]{border:1px solid var(--gray-300);border-radius:var(--radius);width:36px;height:36px;color:var(--gray-600);cursor:pointer;background:#fff;justify-content:center;align-items:center;transition:all .2s;display:flex}.page-btn[data-v-af2d4daa]:hover:not(:disabled){background:var(--gray-100);border-color:var(--gray-400)}.page-btn[data-v-af2d4daa]:disabled{opacity:.5;cursor:not-allowed}.page-icon[data-v-af2d4daa]{width:16px;height:16px}.page-numbers[data-v-af2d4daa]{gap:4px;display:flex}.page-num[data-v-af2d4daa]{border:1px solid var(--gray-300);border-radius:var(--radius);min-width:36px;height:36px;color:var(--gray-600);cursor:pointer;background:#fff;padding:0 8px;font-size:14px;transition:all .2s}.page-num[data-v-af2d4daa]:hover:not(.active){background:var(--gray-100)}.page-num.active[data-v-af2d4daa]{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.page-info[data-v-af2d4daa]{color:var(--gray-500);margin-left:12px;font-size:14px}.modal-overlay[data-v-af2d4daa]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-container[data-v-af2d4daa]{border-radius:var(--radius-xl);width:100%;max-width:480px;box-shadow:var(--shadow-lg);background:#fff;overflow:hidden}.modal-header[data-v-af2d4daa]{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:flex-start;padding:24px;display:flex}.modal-title[data-v-af2d4daa]{align-items:center;gap:16px;display:flex}.modal-icon[data-v-af2d4daa]{background:linear-gradient(135deg, var(--primary-500), var(--primary-600));border-radius:var(--radius-md);color:#fff;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.modal-icon svg[data-v-af2d4daa]{width:24px;height:24px}.modal-title-text h3[data-v-af2d4daa]{color:var(--gray-900);margin:0;font-size:18px;font-weight:600}.modal-title-text p[data-v-af2d4daa]{color:var(--gray-500);margin:4px 0 0;font-size:14px}.modal-close[data-v-af2d4daa]{background:var(--gray-100);border-radius:var(--radius);cursor:pointer;width:32px;height:32px;color:var(--gray-500);border:none;justify-content:center;align-items:center;transition:all .2s;display:flex}.modal-close[data-v-af2d4daa]:hover{background:var(--gray-200);color:var(--gray-700)}.modal-close svg[data-v-af2d4daa]{width:18px;height:18px}.modal-body[data-v-af2d4daa]{flex-direction:column;gap:20px;padding:24px;display:flex}.form-group[data-v-af2d4daa]{flex-direction:column;gap:8px;display:flex}.form-label[data-v-af2d4daa]{color:var(--gray-700);align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex}.label-icon[data-v-af2d4daa]{width:16px;height:16px;color:var(--gray-400)}.form-input[data-v-af2d4daa]{border:1.5px solid var(--gray-200);border-radius:var(--radius);width:100%;color:var(--gray-900);background:#fff;padding:12px 16px;font-size:15px;transition:all .2s}.form-input[data-v-af2d4daa]::placeholder{color:var(--gray-400)}.form-input[data-v-af2d4daa]:focus{border-color:var(--primary-500);outline:none;box-shadow:0 0 0 3px #22c55e1a}.form-hint[data-v-af2d4daa]{color:var(--gray-400);margin-top:4px;font-size:12px}.modal-footer[data-v-af2d4daa]{background:var(--gray-50);border-top:1px solid var(--gray-100);justify-content:flex-end;gap:12px;padding:20px 24px;display:flex}.fade-enter-active[data-v-af2d4daa],.fade-leave-active[data-v-af2d4daa]{transition:opacity .2s}.fade-enter-from[data-v-af2d4daa],.fade-leave-to[data-v-af2d4daa]{opacity:0}.scale-enter-active[data-v-af2d4daa],.scale-leave-active[data-v-af2d4daa]{transition:all .3s cubic-bezier(.34,1.56,.64,1)}.scale-enter-from[data-v-af2d4daa],.scale-leave-to[data-v-af2d4daa]{opacity:0;transform:scale(.95)translateY(10px)}@media (width<=640px){.pots[data-v-af2d4daa]{padding:16px}.pots-list[data-v-af2d4daa]{grid-template-columns:1fr}.sensor-grid[data-v-af2d4daa]{grid-template-columns:repeat(2,1fr)}.modal-container[data-v-af2d4daa]{width:100%;max-width:none}}.plants[data-v-91cdf4a3]{max-width:1400px;margin:0 auto;padding:24px}.page-header[data-v-91cdf4a3]{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h1[data-v-91cdf4a3]{font-size:var(--text-2xl);color:var(--gray-900);font-weight:700}.btn[data-v-91cdf4a3]{border-radius:var(--radius);cursor:pointer;border:none;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn-icon[data-v-91cdf4a3]{width:18px;height:18px}.btn-primary[data-v-91cdf4a3]{background:linear-gradient(135deg, var(--primary-600), var(--primary-700));color:#fff;box-shadow:0 4px 12px #22c55e4d}.btn-primary[data-v-91cdf4a3]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #22c55e66}.btn-primary[data-v-91cdf4a3]:disabled{opacity:.7;cursor:not-allowed}.btn-secondary[data-v-91cdf4a3]{background:var(--gray-100);color:var(--gray-700)}.btn-secondary[data-v-91cdf4a3]:hover{background:var(--gray-200)}.btn-danger[data-v-91cdf4a3]{color:#dc2626;background:#fef2f2}.btn-danger[data-v-91cdf4a3]:hover{background:#fee2e2}.spin[data-v-91cdf4a3]{animation:1s linear infinite spin-91cdf4a3}@keyframes spin-91cdf4a3{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.plants-list[data-v-91cdf4a3]{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;display:grid}.plant-card[data-v-91cdf4a3]{border-radius:var(--radius-lg);border:1px solid var(--gray-200);box-shadow:var(--shadow-sm);background:#fff;padding:24px;transition:all .2s}.plant-card[data-v-91cdf4a3]:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.plant-header[data-v-91cdf4a3]{align-items:center;gap:16px;margin-bottom:20px;display:flex}.plant-icon-wrapper[data-v-91cdf4a3]{border-radius:var(--radius-md);background:linear-gradient(135deg,#fef3c7,#fde68a);justify-content:center;align-items:center;width:56px;height:56px;display:flex}.plant-icon[data-v-91cdf4a3]{color:#d97706;width:28px;height:28px}.plant-info[data-v-91cdf4a3]{flex:1}.plant-info h3[data-v-91cdf4a3]{color:var(--gray-900);margin:0;font-size:18px;font-weight:600}.plant-species[data-v-91cdf4a3]{color:var(--gray-500);margin-top:4px;font-size:14px;display:inline-block}.plant-details[data-v-91cdf4a3]{background:var(--gray-50);border-radius:var(--radius);flex-direction:column;gap:12px;margin-bottom:20px;padding:16px;display:flex}.detail-row[data-v-91cdf4a3]{color:var(--gray-600);align-items:flex-start;gap:10px;font-size:14px;display:flex}.detail-icon[data-v-91cdf4a3]{width:18px;height:18px;color:var(--gray-400);flex-shrink:0;margin-top:2px}.description[data-v-91cdf4a3]{-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.5;display:-webkit-box;overflow:hidden}.plant-actions[data-v-91cdf4a3]{gap:10px;display:flex}.empty[data-v-91cdf4a3]{text-align:center;border-radius:var(--radius-lg);border:2px dashed var(--gray-200);background:#fff;grid-column:1/-1;padding:60px 20px}.empty-icon[data-v-91cdf4a3]{background:var(--gray-100);border-radius:var(--radius-full);width:64px;height:64px;color:var(--gray-400);justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.empty-icon svg[data-v-91cdf4a3]{width:32px;height:32px}.empty p[data-v-91cdf4a3]{color:var(--gray-500);font-size:14px}.modal-overlay[data-v-91cdf4a3]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-container[data-v-91cdf4a3]{border-radius:var(--radius-xl);width:100%;max-width:480px;box-shadow:var(--shadow-lg);background:#fff;overflow:hidden}.modal-header[data-v-91cdf4a3]{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:flex-start;padding:24px;display:flex}.modal-title[data-v-91cdf4a3]{align-items:center;gap:16px;display:flex}.modal-icon[data-v-91cdf4a3]{border-radius:var(--radius-md);color:#fff;background:linear-gradient(135deg,#f59e0b,#d97706);justify-content:center;align-items:center;width:48px;height:48px;display:flex}.modal-icon svg[data-v-91cdf4a3]{width:24px;height:24px}.modal-title-text h3[data-v-91cdf4a3]{color:var(--gray-900);margin:0;font-size:18px;font-weight:600}.modal-title-text p[data-v-91cdf4a3]{color:var(--gray-500);margin:4px 0 0;font-size:14px}.modal-close[data-v-91cdf4a3]{background:var(--gray-100);border-radius:var(--radius);cursor:pointer;width:32px;height:32px;color:var(--gray-500);border:none;justify-content:center;align-items:center;transition:all .2s;display:flex}.modal-close[data-v-91cdf4a3]:hover{background:var(--gray-200);color:var(--gray-700)}.modal-close svg[data-v-91cdf4a3]{width:18px;height:18px}.modal-body[data-v-91cdf4a3]{flex-direction:column;gap:20px;padding:24px;display:flex}.form-group[data-v-91cdf4a3]{flex-direction:column;gap:8px;display:flex}.form-label[data-v-91cdf4a3]{color:var(--gray-700);align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex}.label-icon[data-v-91cdf4a3]{width:16px;height:16px;color:var(--gray-400)}.form-input[data-v-91cdf4a3]{border:1.5px solid var(--gray-200);border-radius:var(--radius);width:100%;color:var(--gray-900);resize:vertical;background:#fff;padding:12px 16px;font-size:15px;transition:all .2s}.form-input.textarea[data-v-91cdf4a3]{min-height:80px;font-family:inherit;line-height:1.5}.form-input[data-v-91cdf4a3]::placeholder{color:var(--gray-400)}.form-input[data-v-91cdf4a3]:focus{border-color:var(--primary-500);outline:none;box-shadow:0 0 0 3px #22c55e1a}.modal-footer[data-v-91cdf4a3]{background:var(--gray-50);border-top:1px solid var(--gray-100);justify-content:flex-end;gap:12px;padding:20px 24px;display:flex}.fade-enter-active[data-v-91cdf4a3],.fade-leave-active[data-v-91cdf4a3]{transition:opacity .2s}.fade-enter-from[data-v-91cdf4a3],.fade-leave-to[data-v-91cdf4a3]{opacity:0}.scale-enter-active[data-v-91cdf4a3],.scale-leave-active[data-v-91cdf4a3]{transition:all .3s cubic-bezier(.34,1.56,.64,1)}.scale-enter-from[data-v-91cdf4a3],.scale-leave-to[data-v-91cdf4a3]{opacity:0;transform:scale(.95)translateY(10px)}@media (width<=640px){.plants[data-v-91cdf4a3]{padding:16px}.plants-list[data-v-91cdf4a3]{grid-template-columns:1fr}.modal-container[data-v-91cdf4a3]{width:100%;max-width:none}}.sensors[data-v-3b3b9e67]{padding:20px}h1[data-v-3b3b9e67]{color:#333;margin-bottom:20px;font-size:24px}h2[data-v-3b3b9e67]{margin-bottom:15px;font-size:18px}.current-readings[data-v-3b3b9e67],.history[data-v-3b3b9e67]{background:#fff;border:1px solid #eee;border-radius:8px;margin-bottom:20px;padding:20px}.readings-grid[data-v-3b3b9e67]{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin:20px 0;display:grid}.reading-card[data-v-3b3b9e67]{text-align:center;background:#f8f9fa;border-radius:8px;padding:20px}.card-icon[data-v-3b3b9e67]{color:#42b983;width:32px;height:32px;margin-bottom:8px}.reading-card .value[data-v-3b3b9e67]{color:#333;margin-top:8px;font-size:24px;font-weight:700}.reading-card .label[data-v-3b3b9e67]{color:#666;font-size:14px}.update-time[data-v-3b3b9e67]{text-align:right;color:#999;font-size:14px}.info[data-v-3b3b9e67]{color:#666}.irrigation[data-v-0d52b7eb]{padding:20px}h1[data-v-0d52b7eb]{color:#333;margin-bottom:20px;font-size:24px}h2[data-v-0d52b7eb]{margin-bottom:15px;font-size:18px}.status-card[data-v-0d52b7eb],.control-panel[data-v-0d52b7eb],.schedule-panel[data-v-0d52b7eb]{background:#fff;border:1px solid #eee;border-radius:8px;margin-bottom:20px;padding:20px}.status[data-v-0d52b7eb]{align-items:center;gap:10px;font-size:16px;display:flex}.status-indicator[data-v-0d52b7eb]{background:#999;border-radius:50%;width:12px;height:12px}.status-indicator.active[data-v-0d52b7eb]{background:#42b983;animation:1s infinite pulse-0d52b7eb}@keyframes pulse-0d52b7eb{0%,to{opacity:1}50%{opacity:.5}}.control-buttons[data-v-0d52b7eb]{gap:12px;margin:15px 0;display:flex}.duration-input[data-v-0d52b7eb]{align-items:center;gap:10px;margin-top:15px;display:flex}.duration-input input[data-v-0d52b7eb]{border:1px solid #ddd;border-radius:6px;width:80px;padding:8px;font-size:14px}.schedule-panel form[data-v-0d52b7eb]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.schedule-panel input[data-v-0d52b7eb]{border:1px solid #ddd;border-radius:6px;padding:10px;font-size:14px}.input-icon[data-v-0d52b7eb]{color:#666;width:18px;height:18px}.btn[data-v-0d52b7eb]{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;display:inline-flex}.btn-icon[data-v-0d52b7eb]{width:16px;height:16px}.btn-primary[data-v-0d52b7eb]{color:#fff;background:#42b983}.btn-secondary[data-v-0d52b7eb]{color:#fff;background:#3498db}.btn-danger[data-v-0d52b7eb]{color:#fff;background:#e74c3c}.btn[data-v-0d52b7eb]:disabled{opacity:.5;cursor:not-allowed}.users[data-v-d8e83889]{max-width:1400px;margin:0 auto;padding:24px}.page-header[data-v-d8e83889]{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h1[data-v-d8e83889]{color:var(--gray-900);font-size:24px;font-weight:700}.btn[data-v-d8e83889]{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn-icon[data-v-d8e83889]{width:18px;height:18px}.btn-primary[data-v-d8e83889]{color:#fff;background:linear-gradient(135deg,#16a34a,#15803d);box-shadow:0 4px 12px #22c55e4d}.btn-primary[data-v-d8e83889]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #22c55e66}.btn-primary[data-v-d8e83889]:disabled{opacity:.7;cursor:not-allowed}.btn-secondary[data-v-d8e83889]{background:var(--gray-100);color:var(--gray-700)}.btn-secondary[data-v-d8e83889]:hover{background:var(--gray-200)}.btn-danger[data-v-d8e83889]{color:#fff;background:#dc2626}.btn-danger[data-v-d8e83889]:hover:not(:disabled){background:#b91c1c}.btn-danger[data-v-d8e83889]:disabled{opacity:.7;cursor:not-allowed}.table-card[data-v-d8e83889]{border:1px solid var(--gray-200);background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.table[data-v-d8e83889]{border-collapse:collapse;width:100%}.table th[data-v-d8e83889],.table td[data-v-d8e83889]{text-align:left;border-bottom:1px solid var(--gray-100);padding:14px 16px}.table th[data-v-d8e83889]{background:var(--gray-50);color:var(--gray-500);text-transform:uppercase;font-size:13px;font-weight:600}.table td[data-v-d8e83889]{color:var(--gray-700);font-size:14px}.table tbody tr[data-v-d8e83889]:hover{background:var(--gray-50)}.table tbody tr:last-child td[data-v-d8e83889]{border-bottom:none}.user-cell[data-v-d8e83889]{align-items:center;gap:10px;display:flex}.user-avatar[data-v-d8e83889]{background:#e8f5e9;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.avatar-icon[data-v-d8e83889]{color:#42b983;width:16px;height:16px}.role-badge[data-v-d8e83889]{border-radius:12px;padding:4px 10px;font-size:12px;font-weight:500}.role-badge.admin[data-v-d8e83889]{color:#1976d2;background:#e3f2fd}.role-badge.user[data-v-d8e83889]{color:#666;background:#f5f5f5}.status-badge[data-v-d8e83889]{border-radius:12px;padding:4px 10px;font-size:12px;font-weight:500}.status-badge.active[data-v-d8e83889]{color:#2e7d32;background:#e8f5e9}.status-badge.inactive[data-v-d8e83889]{color:#dc2626;background:#fef2f2}.action-btns[data-v-d8e83889]{gap:8px;display:flex}.btn-action[data-v-d8e83889]{cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;text-decoration:none;transition:all .2s;display:flex}.btn-action.view[data-v-d8e83889]{color:#2e7d32;background:#e8f5e9}.btn-action.view[data-v-d8e83889]:hover{background:#c8e6c9}.btn-action.edit[data-v-d8e83889]{color:#1976d2;background:#e3f2fd}.btn-action.edit[data-v-d8e83889]:hover{background:#bbdefb}.btn-action.delete[data-v-d8e83889]{color:#dc2626;background:#fef2f2}.btn-action.delete[data-v-d8e83889]:hover:not(:disabled){background:#fee2e2}.btn-action.delete[data-v-d8e83889]:disabled{opacity:.4;cursor:not-allowed}.action-icon[data-v-d8e83889]{width:16px;height:16px}.empty-cell[data-v-d8e83889]{text-align:center;color:var(--gray-400);padding:40px!important}.modal-overlay[data-v-d8e83889]{z-index:200;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-container[data-v-d8e83889]{background:#fff;border-radius:12px;width:90%;max-width:480px;box-shadow:0 20px 60px #0000004d}.confirm-modal[data-v-d8e83889]{max-width:400px}.modal-header[data-v-d8e83889]{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h3[data-v-d8e83889]{color:var(--gray-900);font-size:18px;font-weight:600}.modal-close[data-v-d8e83889]{background:var(--gray-100);cursor:pointer;width:32px;height:32px;color:var(--gray-500);border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .2s;display:flex}.modal-close[data-v-d8e83889]:hover{background:var(--gray-200);color:var(--gray-700)}.modal-body[data-v-d8e83889]{padding:24px}.modal-body p[data-v-d8e83889]{color:var(--gray-700);font-size:14px;line-height:1.6}.form-group[data-v-d8e83889]{margin-bottom:16px}.form-group label[data-v-d8e83889]{color:var(--gray-700);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.required[data-v-d8e83889]{color:#dc2626}.form-input[data-v-d8e83889]{border:1px solid var(--gray-300);width:100%;color:var(--gray-800);box-sizing:border-box;border-radius:8px;padding:10px 12px;font-size:14px;transition:all .2s}.form-input[data-v-d8e83889]:focus{border-color:#22c55e;outline:none;box-shadow:0 0 0 3px #22c55e1a}.form-input[data-v-d8e83889]:disabled{background:var(--gray-100);cursor:not-allowed}.modal-footer[data-v-d8e83889]{border-top:1px solid var(--gray-100);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.fade-enter-active[data-v-d8e83889],.fade-leave-active[data-v-d8e83889]{transition:opacity .2s}.fade-enter-from[data-v-d8e83889],.fade-leave-to[data-v-d8e83889]{opacity:0}.scale-enter-active[data-v-d8e83889],.scale-leave-active[data-v-d8e83889]{transition:all .2s}.scale-enter-from[data-v-d8e83889],.scale-leave-to[data-v-d8e83889]{opacity:0;transform:scale(.95)}.user-detail[data-v-8fbf3cf5]{max-width:1400px;margin:0 auto;padding:24px}.page-header[data-v-8fbf3cf5]{margin-bottom:24px}.btn-back[data-v-8fbf3cf5]{border:1px solid var(--gray-200);color:var(--gray-600);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-size:14px;transition:all .2s;display:inline-flex}.btn-back[data-v-8fbf3cf5]:hover{background:var(--gray-50);color:var(--gray-900)}.back-icon[data-v-8fbf3cf5]{width:18px;height:18px}.loading[data-v-8fbf3cf5]{color:var(--gray-500);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:80px 20px;display:flex}.loading-icon[data-v-8fbf3cf5]{width:32px;height:32px}.spin[data-v-8fbf3cf5]{animation:1s linear infinite spin-8fbf3cf5}@keyframes spin-8fbf3cf5{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.detail-card[data-v-8fbf3cf5]{border:1px solid var(--gray-200);background:#fff;border-radius:12px;margin-bottom:20px;padding:24px;box-shadow:0 1px 3px #0000001a}.user-card[data-v-8fbf3cf5]{margin-bottom:24px}.user-header[data-v-8fbf3cf5]{align-items:center;gap:20px;display:flex}.user-avatar-large[data-v-8fbf3cf5]{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:80px;height:80px;display:flex}.avatar-icon[data-v-8fbf3cf5]{color:#42b983;width:40px;height:40px}.user-main-info[data-v-8fbf3cf5]{flex:1}.user-main-info h2[data-v-8fbf3cf5]{color:var(--gray-900);margin:0 0 4px;font-size:24px;font-weight:700}.username[data-v-8fbf3cf5]{color:var(--gray-500);margin:0 0 12px;font-size:14px}.user-badges[data-v-8fbf3cf5]{gap:8px;display:flex}.info-grid[data-v-8fbf3cf5]{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;display:grid}.card-title[data-v-8fbf3cf5]{color:var(--gray-800);align-items:center;gap:8px;margin:0 0 16px;font-size:16px;font-weight:600;display:flex}.card-icon[data-v-8fbf3cf5]{width:20px;height:20px;color:var(--gray-400)}.info-list[data-v-8fbf3cf5]{flex-direction:column;gap:12px;display:flex}.info-item[data-v-8fbf3cf5]{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.info-item[data-v-8fbf3cf5]:last-child{border-bottom:none}.info-label[data-v-8fbf3cf5]{color:var(--gray-500);font-size:14px}.info-value[data-v-8fbf3cf5]{color:var(--gray-800);font-size:14px;font-weight:500}.role-badge[data-v-8fbf3cf5]{border-radius:12px;padding:4px 10px;font-size:12px;font-weight:500}.role-badge.admin[data-v-8fbf3cf5]{color:#1976d2;background:#e3f2fd}.role-badge.user[data-v-8fbf3cf5]{color:#666;background:#f5f5f5}.status-badge[data-v-8fbf3cf5]{border-radius:12px;padding:4px 10px;font-size:12px;font-weight:500}.status-badge.active[data-v-8fbf3cf5]{color:#2e7d32;background:#e8f5e9}.status-badge.inactive[data-v-8fbf3cf5]{color:#dc2626;background:#fef2f2}.btn[data-v-8fbf3cf5]{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn-icon[data-v-8fbf3cf5]{width:18px;height:18px}.btn-primary[data-v-8fbf3cf5]{color:#fff;background:linear-gradient(135deg,#16a34a,#15803d);box-shadow:0 4px 12px #22c55e4d}.btn-primary[data-v-8fbf3cf5]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #22c55e66}.btn-primary[data-v-8fbf3cf5]:disabled{opacity:.7;cursor:not-allowed}.btn-secondary[data-v-8fbf3cf5]{background:var(--gray-100);color:var(--gray-700)}.btn-secondary[data-v-8fbf3cf5]:hover{background:var(--gray-200)}.modal-overlay[data-v-8fbf3cf5]{z-index:200;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-container[data-v-8fbf3cf5]{background:#fff;border-radius:12px;width:90%;max-width:480px;box-shadow:0 20px 60px #0000004d}.modal-header[data-v-8fbf3cf5]{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h3[data-v-8fbf3cf5]{color:var(--gray-900);font-size:18px;font-weight:600}.modal-close[data-v-8fbf3cf5]{background:var(--gray-100);cursor:pointer;width:32px;height:32px;color:var(--gray-500);border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .2s;display:flex}.modal-close[data-v-8fbf3cf5]:hover{background:var(--gray-200);color:var(--gray-700)}.modal-body[data-v-8fbf3cf5]{padding:24px}.form-group[data-v-8fbf3cf5]{margin-bottom:16px}.form-group label[data-v-8fbf3cf5]{color:var(--gray-700);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.form-input[data-v-8fbf3cf5]{border:1px solid var(--gray-300);width:100%;color:var(--gray-800);box-sizing:border-box;border-radius:8px;padding:10px 12px;font-size:14px;transition:all .2s}.form-input[data-v-8fbf3cf5]:focus{border-color:#22c55e;outline:none;box-shadow:0 0 0 3px #22c55e1a}.modal-footer[data-v-8fbf3cf5]{border-top:1px solid var(--gray-100);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.fade-enter-active[data-v-8fbf3cf5],.fade-leave-active[data-v-8fbf3cf5]{transition:opacity .2s}.fade-enter-from[data-v-8fbf3cf5],.fade-leave-to[data-v-8fbf3cf5]{opacity:0}.scale-enter-active[data-v-8fbf3cf5],.scale-leave-active[data-v-8fbf3cf5]{transition:all .2s}.scale-enter-from[data-v-8fbf3cf5],.scale-leave-to[data-v-8fbf3cf5]{opacity:0;transform:scale(.95)}@media (width<=640px){.user-header[data-v-8fbf3cf5]{text-align:center;flex-direction:column}.user-badges[data-v-8fbf3cf5]{justify-content:center}.info-grid[data-v-8fbf3cf5]{grid-template-columns:1fr}}.settings[data-v-af487336]{max-width:600px;padding:20px}h1[data-v-af487336]{color:#333;margin-bottom:24px;font-size:24px}.settings-section[data-v-af487336]{background:#fff;border:1px solid #eee;border-radius:8px;margin-bottom:20px;padding:20px}.settings-section h2[data-v-af487336]{color:#333;border-bottom:1px solid #eee;margin-bottom:16px;padding-bottom:12px;font-size:16px}.setting-item[data-v-af487336]{justify-content:space-between;align-items:center;padding:12px 0;display:flex}.setting-item label[data-v-af487336]{color:#333;font-size:14px}.setting-item input[type=text][data-v-af487336],.setting-item select[data-v-af487336]{border:1px solid #ddd;border-radius:6px;width:200px;padding:8px 12px;font-size:14px}.settings-actions[data-v-af487336]{text-align:right}.btn[data-v-af487336]{cursor:pointer;border:none;border-radius:6px;padding:10px 20px;font-size:14px}.btn-primary[data-v-af487336]{color:#fff;background:#42b983}.analytics[data-v-e493720f]{max-width:1400px;margin:0 auto;padding:24px}h1[data-v-e493720f]{color:#333;margin-bottom:24px;font-size:24px}.stats-grid[data-v-e493720f]{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:32px;display:grid}.stat-card[data-v-e493720f]{text-align:center;background:#fff;border:1px solid #eee;border-radius:8px;padding:20px}.stat-label[data-v-e493720f]{color:#666;margin-bottom:8px;font-size:14px}.stat-value[data-v-e493720f]{color:#42b983;font-size:32px;font-weight:700}.chart-section[data-v-e493720f]{background:#fff;border:1px solid #eee;border-radius:8px;margin-bottom:20px;padding:20px}.chart-section h2[data-v-e493720f]{color:#333;margin-bottom:16px;font-size:16px}.chart-placeholder[data-v-e493720f]{color:#999;background:#f8f9fa;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;height:200px;display:flex}.chart-icon[data-v-e493720f]{width:48px;height:48px;margin-bottom:12px}.profile[data-v-05fa9be1]{max-width:900px;margin:0 auto;padding:24px}.profile-header-card[data-v-05fa9be1]{border:1px solid var(--gray-200);background:#fff;border-radius:16px;align-items:center;gap:24px;margin-bottom:24px;padding:32px;display:flex;box-shadow:0 1px 3px #0000001a}.profile-avatar[data-v-05fa9be1]{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:96px;height:96px;display:flex}.avatar-icon[data-v-05fa9be1]{color:#42b983;width:48px;height:48px}.profile-header-info[data-v-05fa9be1]{flex:1}.profile-header-info h1[data-v-05fa9be1]{color:var(--gray-900);margin:0 0 4px;font-size:28px;font-weight:700}.username[data-v-05fa9be1]{color:var(--gray-500);margin:0 0 12px;font-size:14px}.user-badges[data-v-05fa9be1]{gap:8px;display:flex}.stats-grid[data-v-05fa9be1]{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;display:grid}.stat-card[data-v-05fa9be1]{border:1px solid var(--gray-200);background:#fff;border-radius:12px;align-items:center;gap:16px;padding:20px;display:flex;box-shadow:0 1px 3px #0000001a}.stat-icon[data-v-05fa9be1]{border-radius:12px;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.stat-icon.pots[data-v-05fa9be1]{color:#9333ea;background:#f3e8ff}.stat-icon.online[data-v-05fa9be1]{color:#2e7d32;background:#e8f5e9}.stat-icon.water[data-v-05fa9be1]{color:#1976d2;background:#e3f2fd}.stat-icon .icon[data-v-05fa9be1]{width:24px;height:24px}.stat-value[data-v-05fa9be1]{color:var(--gray-900);font-size:28px;font-weight:700}.stat-label[data-v-05fa9be1]{color:var(--gray-500);font-size:13px}.info-sections[data-v-05fa9be1]{grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:24px;display:grid}.info-card[data-v-05fa9be1]{border:1px solid var(--gray-200);background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a}.card-title[data-v-05fa9be1]{color:var(--gray-800);align-items:center;gap:8px;margin:0 0 16px;font-size:16px;font-weight:600;display:flex}.card-icon[data-v-05fa9be1]{width:20px;height:20px;color:var(--gray-400)}.info-list[data-v-05fa9be1]{flex-direction:column;gap:12px;display:flex}.info-item[data-v-05fa9be1]{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.info-item[data-v-05fa9be1]:last-child{border-bottom:none}.info-label[data-v-05fa9be1]{color:var(--gray-500);font-size:14px}.info-value[data-v-05fa9be1]{color:var(--gray-800);font-size:14px;font-weight:500}.role-badge[data-v-05fa9be1]{border-radius:12px;padding:4px 10px;font-size:12px;font-weight:500}.role-badge.admin[data-v-05fa9be1]{color:#1976d2;background:#e3f2fd}.role-badge.user[data-v-05fa9be1]{color:#666;background:#f5f5f5}.status-badge[data-v-05fa9be1]{border-radius:12px;padding:4px 10px;font-size:12px;font-weight:500}.status-badge.active[data-v-05fa9be1]{color:#2e7d32;background:#e8f5e9}.btn[data-v-05fa9be1]{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn-icon[data-v-05fa9be1]{width:18px;height:18px}.btn-primary[data-v-05fa9be1]{color:#fff;background:linear-gradient(135deg,#16a34a,#15803d);box-shadow:0 4px 12px #22c55e4d}.btn-primary[data-v-05fa9be1]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #22c55e66}.btn-primary[data-v-05fa9be1]:disabled{opacity:.7;cursor:not-allowed}.btn-secondary[data-v-05fa9be1]{background:var(--gray-100);color:var(--gray-700)}.btn-secondary[data-v-05fa9be1]:hover{background:var(--gray-200)}.btn-danger[data-v-05fa9be1]{color:#fff;background:#dc2626}.btn-danger[data-v-05fa9be1]:hover{background:#b91c1c}.btn-link[data-v-05fa9be1]{color:#1976d2;cursor:pointer;background:0 0;border:none;padding:0;font-size:14px}.btn-link[data-v-05fa9be1]:hover{text-decoration:underline}.logout-section[data-v-05fa9be1]{text-align:center;padding:16px 0}.modal-overlay[data-v-05fa9be1]{z-index:200;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-container[data-v-05fa9be1]{background:#fff;border-radius:12px;width:90%;max-width:480px;box-shadow:0 20px 60px #0000004d}.modal-header[data-v-05fa9be1]{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h3[data-v-05fa9be1]{color:var(--gray-900);font-size:18px;font-weight:600}.modal-close[data-v-05fa9be1]{background:var(--gray-100);cursor:pointer;width:32px;height:32px;color:var(--gray-500);border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .2s;display:flex}.modal-close[data-v-05fa9be1]:hover{background:var(--gray-200);color:var(--gray-700)}.modal-body[data-v-05fa9be1]{padding:24px}.form-group[data-v-05fa9be1]{margin-bottom:16px}.form-group label[data-v-05fa9be1]{color:var(--gray-700);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.form-input[data-v-05fa9be1]{border:1px solid var(--gray-300);width:100%;color:var(--gray-800);box-sizing:border-box;border-radius:8px;padding:10px 12px;font-size:14px;transition:all .2s}.form-input[data-v-05fa9be1]:focus{border-color:#22c55e;outline:none;box-shadow:0 0 0 3px #22c55e1a}.modal-footer[data-v-05fa9be1]{border-top:1px solid var(--gray-100);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.fade-enter-active[data-v-05fa9be1],.fade-leave-active[data-v-05fa9be1]{transition:opacity .2s}.fade-enter-from[data-v-05fa9be1],.fade-leave-to[data-v-05fa9be1]{opacity:0}.scale-enter-active[data-v-05fa9be1],.scale-leave-active[data-v-05fa9be1]{transition:all .2s}.scale-enter-from[data-v-05fa9be1],.scale-leave-to[data-v-05fa9be1]{opacity:0;transform:scale(.95)}@media (width<=768px){.profile-header-card[data-v-05fa9be1]{text-align:center;flex-direction:column}.user-badges[data-v-05fa9be1]{justify-content:center}.stats-grid[data-v-05fa9be1],.info-sections[data-v-05fa9be1]{grid-template-columns:1fr}}.auth-page[data-v-37f11ff9]{background:linear-gradient(135deg,#f0fdf4 0%,#ecfdf5 50%,#f0f9ff 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex;position:relative;overflow:hidden}.auth-bg[data-v-37f11ff9]{pointer-events:none;position:absolute;inset:0}.bg-circle[data-v-37f11ff9]{opacity:.4;border-radius:50%;position:absolute}.circle-1[data-v-37f11ff9]{background:radial-gradient(circle,#22c55e26 0%,#0000 70%);width:600px;height:600px;top:-200px;right:-200px}.circle-2[data-v-37f11ff9]{background:radial-gradient(circle,#3b82f61a 0%,#0000 70%);width:400px;height:400px;bottom:-100px;left:-100px}.circle-3[data-v-37f11ff9]{background:radial-gradient(circle,#f59e0b14 0%,#0000 70%);width:300px;height:300px;top:50%;left:30%;transform:translate(-50%,-50%)}.back-home[data-v-37f11ff9]{z-index:10;position:absolute;top:24px;left:24px}.back-link[data-v-37f11ff9]{color:var(--gray-600);box-shadow:var(--shadow-sm);background:#fff;border-radius:100px;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.back-link[data-v-37f11ff9]:hover{color:var(--primary-600);box-shadow:var(--shadow-md);transform:translate(-2px)}.back-icon[data-v-37f11ff9]{width:18px;height:18px}.auth-card[data-v-37f11ff9]{border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-lg);z-index:1;background:#fff;padding:40px;position:relative}.auth-header[data-v-37f11ff9]{text-align:center;margin-bottom:32px}.brand-logo[data-v-37f11ff9]{background:linear-gradient(135deg, var(--primary-500), var(--primary-600));border-radius:var(--radius-lg);justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 16px;display:flex;box-shadow:0 8px 24px #22c55e4d}.logo-icon[data-v-37f11ff9]{color:#fff;width:36px;height:36px}.brand-name[data-v-37f11ff9]{color:var(--gray-900);letter-spacing:-.5px;margin-bottom:8px;font-size:28px;font-weight:800}.brand-tagline[data-v-37f11ff9]{color:var(--gray-500);font-size:15px}.auth-tabs[data-v-37f11ff9]{background:var(--gray-100);border-radius:var(--radius);margin-bottom:28px;padding:4px;display:flex}.tab[data-v-37f11ff9]{border-radius:var(--radius-sm);color:var(--gray-500);cursor:pointer;background:0 0;border:none;flex:1;padding:12px;font-size:15px;font-weight:600;transition:all .2s}.tab.active[data-v-37f11ff9]{color:var(--primary-700);box-shadow:var(--shadow-sm);background:#fff}.tab[data-v-37f11ff9]:not(.active):hover{color:var(--gray-700)}.auth-form[data-v-37f11ff9]{flex-direction:column;gap:20px;display:flex}.form-group[data-v-37f11ff9]{flex-direction:column;gap:8px;display:flex}.form-label[data-v-37f11ff9]{color:var(--gray-700);align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex}.label-icon[data-v-37f11ff9]{width:16px;height:16px;color:var(--gray-400)}.form-input[data-v-37f11ff9]{border:1.5px solid var(--gray-200);border-radius:var(--radius);width:100%;color:var(--gray-900);background:#fff;padding:14px 16px;font-size:15px;transition:all .2s}.form-input[data-v-37f11ff9]::placeholder{color:var(--gray-400)}.form-input[data-v-37f11ff9]:focus{border-color:var(--primary-500);outline:none;box-shadow:0 0 0 3px #22c55e1a}.input-wrapper[data-v-37f11ff9]{position:relative}.toggle-password[data-v-37f11ff9]{cursor:pointer;color:var(--gray-400);background:0 0;border:none;padding:8px;transition:color .2s;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.toggle-password[data-v-37f11ff9]:hover{color:var(--gray-600)}.toggle-icon[data-v-37f11ff9]{width:20px;height:20px}.error-message[data-v-37f11ff9]{border-radius:var(--radius);color:#dc2626;background:#fef2f2;border:1px solid #fecaca;align-items:center;gap:8px;padding:12px 16px;font-size:14px;display:flex}.error-icon[data-v-37f11ff9]{flex-shrink:0;width:18px;height:18px}.btn-submit[data-v-37f11ff9]{background:linear-gradient(135deg, var(--primary-600), var(--primary-700));color:#fff;border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;gap:10px;width:100%;padding:16px;font-size:16px;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 14px #22c55e59}.btn-submit[data-v-37f11ff9]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #22c55e73}.btn-submit[data-v-37f11ff9]:disabled{opacity:.7;cursor:not-allowed}.btn-icon[data-v-37f11ff9]{width:20px;height:20px}.spin[data-v-37f11ff9]{animation:1s linear infinite spin-37f11ff9}@keyframes spin-37f11ff9{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.auth-footer[data-v-37f11ff9]{border-top:1px solid var(--gray-100);margin-top:24px;padding-top:24px}.hint-box[data-v-37f11ff9]{background:var(--primary-50);border-radius:var(--radius);color:var(--primary-800);justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-size:13px;display:flex}.hint-icon[data-v-37f11ff9]{width:16px;height:16px;color:var(--primary-600)}.hint-box strong[data-v-37f11ff9]{border:1px solid var(--primary-200);background:#fff;border-radius:4px;padding:2px 8px;font-family:monospace}.terms-text[data-v-37f11ff9]{text-align:center;color:var(--gray-400);font-size:12px}.decoration[data-v-37f11ff9]{pointer-events:none;z-index:0;position:absolute}.plant-left[data-v-37f11ff9]{bottom:10%;left:5%}.plant-right[data-v-37f11ff9]{top:15%;right:5%}.deco-leaf[data-v-37f11ff9]{color:var(--primary-300);opacity:.3;position:absolute}.leaf-1[data-v-37f11ff9]{width:80px;height:80px;transform:rotate(-30deg)}.leaf-2[data-v-37f11ff9]{width:60px;height:60px;top:-40px;left:40px;transform:rotate(20deg)}.leaf-3[data-v-37f11ff9]{width:70px;height:70px;transform:rotate(45deg)}.leaf-4[data-v-37f11ff9]{width:50px;height:50px;top:50px;right:30px;transform:rotate(-15deg)}@media (width<=640px){.auth-card[data-v-37f11ff9]{padding:32px 24px}.brand-name[data-v-37f11ff9]{font-size:24px}.back-home[data-v-37f11ff9]{top:16px;left:16px}.back-link span[data-v-37f11ff9],.decoration[data-v-37f11ff9]{display:none}}.pot-detail[data-v-17fa3b6c]{max-width:1400px;margin:0 auto;padding:24px}.page-header[data-v-17fa3b6c]{align-items:center;gap:16px;margin-bottom:24px;display:flex}.page-header h1[data-v-17fa3b6c]{font-size:var(--text-2xl);color:var(--gray-900);margin:0;font-weight:700}.detail-layout[data-v-17fa3b6c]{grid-template-columns:1fr min(380px,36%);align-items:start;gap:24px;display:grid}.detail-main[data-v-17fa3b6c]{flex-direction:column;gap:24px;min-width:0;display:flex}.detail-side[data-v-17fa3b6c]{flex-direction:column;gap:20px;display:flex}.detail-bottom[data-v-17fa3b6c]{grid-template-columns:1fr 1fr;gap:24px;margin-top:24px;display:grid}.btn[data-v-17fa3b6c]{border-radius:var(--radius);cursor:pointer;border:none;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn-icon[data-v-17fa3b6c]{width:18px;height:18px}.btn-back[data-v-17fa3b6c]{background:var(--gray-100);color:var(--gray-700)}.btn-back[data-v-17fa3b6c]:hover{background:var(--gray-200)}.btn-water[data-v-17fa3b6c]{color:#fff;background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 4px 12px #3b82f64d}.btn-water[data-v-17fa3b6c]:disabled{opacity:.7;cursor:not-allowed}.btn-secondary[data-v-17fa3b6c]{background:var(--gray-100);color:var(--gray-700)}.btn-secondary[data-v-17fa3b6c]:disabled{opacity:.6;cursor:not-allowed}.spin[data-v-17fa3b6c]{animation:1s linear infinite spin-17fa3b6c}@keyframes spin-17fa3b6c{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.detail-card[data-v-17fa3b6c]{border-radius:var(--radius-lg);border:1px solid var(--gray-200);box-shadow:var(--shadow-sm);background:#fff;padding:24px}.section-card .section-title[data-v-17fa3b6c],.side-card .section-title[data-v-17fa3b6c],.log-card .section-title[data-v-17fa3b6c]{color:var(--gray-900);align-items:center;gap:8px;margin:0 0 8px;font-size:16px;font-weight:600;display:flex}.section-icon[data-v-17fa3b6c]{width:20px;height:20px;color:var(--primary-600);flex-shrink:0}.section-desc[data-v-17fa3b6c]{color:var(--gray-500);margin:0 0 16px;font-size:13px;line-height:1.5}.detail-meta[data-v-17fa3b6c]{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.hw-id[data-v-17fa3b6c]{color:var(--gray-600);flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:14px;display:flex}.meta-icon[data-v-17fa3b6c]{width:18px;height:18px;color:var(--gray-400);flex-shrink:0}.hw-id code[data-v-17fa3b6c]{background:var(--gray-50);border-radius:var(--radius);word-break:break-all;padding:4px 8px;font-size:13px}.status-badge[data-v-17fa3b6c]{border-radius:var(--radius-full);flex-shrink:0;padding:6px 12px;font-size:12px;font-weight:600}.status-badge.online[data-v-17fa3b6c]{color:#16a34a;background:#dcfce7}.status-badge.offline[data-v-17fa3b6c]{background:var(--gray-100);color:var(--gray-500)}.sensor-grid[data-v-17fa3b6c]{background:var(--gray-50);border-radius:var(--radius);grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;padding:16px;display:grid}.sensor-item[data-v-17fa3b6c]{text-align:center;border-radius:var(--radius);border:1px solid var(--gray-100);background:#fff;padding:12px 8px}.sensor-item.warning[data-v-17fa3b6c]{background:#fef2f2;border-color:#fecaca}.sensor-icon[data-v-17fa3b6c]{width:20px;height:20px;color:var(--gray-400);margin:0 auto 6px}.sensor-value[data-v-17fa3b6c]{color:var(--gray-900);margin-bottom:4px;font-size:18px;font-weight:700}.sensor-delta[data-v-17fa3b6c]{color:var(--gray-600);justify-content:center;align-items:center;gap:4px;margin-bottom:4px;font-size:11px;display:flex}.sensor-delta.muted[data-v-17fa3b6c]{color:var(--gray-400);font-size:10px}.delta-icon[data-v-17fa3b6c]{width:12px;height:12px}.delta-icon.up[data-v-17fa3b6c]{color:#16a34a}.delta-icon.down[data-v-17fa3b6c]{color:#2563eb}.delta-icon.flat[data-v-17fa3b6c]{color:var(--gray-400)}.sensor-label[data-v-17fa3b6c]{color:var(--gray-500);font-size:11px}.pot-details[data-v-17fa3b6c]{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.detail-item[data-v-17fa3b6c]{color:var(--gray-600);align-items:center;gap:10px;font-size:14px;display:flex}.detail-icon[data-v-17fa3b6c]{width:16px;height:16px;color:var(--gray-400)}.pot-actions[data-v-17fa3b6c]{flex-wrap:wrap;gap:10px;display:flex}.user-block[data-v-17fa3b6c]{align-items:flex-start;gap:16px;display:flex}.user-avatar[data-v-17fa3b6c]{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--primary-400), var(--primary-600));color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:22px;font-weight:700;display:flex}.user-lines[data-v-17fa3b6c]{min-width:0}.user-name[data-v-17fa3b6c]{color:var(--gray-900);margin:0 0 4px;font-size:16px;font-weight:600}.user-meta[data-v-17fa3b6c]{color:var(--gray-600);word-break:break-all;margin:0 0 4px;font-size:13px}.user-meta.subtle[data-v-17fa3b6c]{color:var(--gray-400);font-size:12px}.kv-list[data-v-17fa3b6c]{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.kv-list li[data-v-17fa3b6c]{color:var(--gray-700);border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:8px;font-size:13px;display:flex}.kv-list li[data-v-17fa3b6c]:last-child{border-bottom:none;padding-bottom:0}.kv-list span[data-v-17fa3b6c]:first-child{color:var(--gray-500);flex-shrink:0}.kv-list code[data-v-17fa3b6c]{background:var(--gray-50);border-radius:4px;padding:2px 6px;font-size:12px}.table-wrap[data-v-17fa3b6c]{border-radius:var(--radius);border:1px solid var(--gray-100);overflow-x:auto}.data-table[data-v-17fa3b6c]{border-collapse:collapse;width:100%;font-size:12px}.data-table th[data-v-17fa3b6c],.data-table td[data-v-17fa3b6c]{text-align:left;border-bottom:1px solid var(--gray-100);padding:10px 12px}.data-table th[data-v-17fa3b6c]{background:var(--gray-50);color:var(--gray-600);white-space:nowrap;font-weight:600}.data-table tbody tr[data-v-17fa3b6c]:hover{background:#fafafa}.cell-time[data-v-17fa3b6c]{white-space:nowrap;color:var(--gray-600)}.cell-delta[data-v-17fa3b6c]{color:var(--gray-500);font-size:11px}.pagination[data-v-17fa3b6c]{border-top:1px solid var(--gray-100);justify-content:center;align-items:center;gap:8px;padding:16px 12px;display:flex}.page-btn[data-v-17fa3b6c]{border:1px solid var(--gray-300);border-radius:var(--radius-sm);color:var(--gray-700);cursor:pointer;background:#fff;padding:6px 12px;font-size:13px;transition:all .2s}.page-btn[data-v-17fa3b6c]:hover:not(:disabled){background:var(--gray-100);border-color:var(--gray-400)}.page-btn[data-v-17fa3b6c]:disabled{opacity:.5;cursor:not-allowed}.page-info[data-v-17fa3b6c]{color:var(--gray-600);padding:0 8px;font-size:13px}.log-list[data-v-17fa3b6c]{flex-direction:column;gap:12px;max-height:420px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.log-item[data-v-17fa3b6c]{border-radius:var(--radius);border:1px solid var(--gray-100);background:var(--gray-50);padding:12px 14px}.log-item.sev-critical[data-v-17fa3b6c]{background:#fef2f2;border-color:#fecaca}.log-item.sev-warning[data-v-17fa3b6c]{background:#fffbeb;border-color:#fde68a}.log-item.sev-info[data-v-17fa3b6c]{background:#f0f9ff;border-color:#bae6fd}.log-neutral[data-v-17fa3b6c]{background:#f8fafc}.log-item-head[data-v-17fa3b6c]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.log-item-head time[data-v-17fa3b6c]{color:var(--gray-500);font-size:11px}.log-badge[data-v-17fa3b6c]{border-radius:var(--radius-full);background:var(--gray-200);color:var(--gray-700);padding:2px 8px;font-size:11px;font-weight:600}.log-badge.trigger[data-v-17fa3b6c]{color:#1d4ed8;background:#dbeafe}.log-msg[data-v-17fa3b6c]{color:var(--gray-700);margin:0;font-size:13px;line-height:1.5}.log-notes[data-v-17fa3b6c]{color:var(--gray-500);margin-top:4px;font-size:12px;display:block}.empty-inline[data-v-17fa3b6c]{text-align:center;color:var(--gray-500);padding:28px 16px;font-size:14px}.empty-inline-icon[data-v-17fa3b6c]{width:36px;height:36px;color:var(--gray-300);margin:0 auto 10px;display:block}.empty-state[data-v-17fa3b6c]{text-align:center;color:var(--gray-600);padding:48px 20px}@media (width<=1100px){.detail-layout[data-v-17fa3b6c],.detail-bottom[data-v-17fa3b6c]{grid-template-columns:1fr}}@media (width<=640px){.sensor-grid[data-v-17fa3b6c]{grid-template-columns:repeat(2,1fr)}.data-table[data-v-17fa3b6c]{font-size:11px}.data-table th[data-v-17fa3b6c],.data-table td[data-v-17fa3b6c]{padding:8px}}.activate-page[data-v-8ec15ccf]{justify-content:center;align-items:center;min-height:60vh;padding:24px;display:flex}.activate-card[data-v-8ec15ccf]{border-radius:var(--radius-lg);border:1px solid var(--gray-200);width:100%;max-width:420px;box-shadow:var(--shadow-md);text-align:center;background:#fff;padding:32px}.activate-icon[data-v-8ec15ccf]{width:56px;height:56px;color:var(--primary-600);margin:0 auto 16px}.activate-icon svg[data-v-8ec15ccf]{width:100%;height:100%}h1[data-v-8ec15ccf]{color:var(--gray-900);margin:0 0 16px;font-size:20px;font-weight:600}.msg[data-v-8ec15ccf]{color:var(--gray-600);margin:0 0 24px;font-size:14px;line-height:1.6}.msg.success[data-v-8ec15ccf]{color:#16a34a}.msg.error[data-v-8ec15ccf]{color:#dc2626}.actions[data-v-8ec15ccf]{flex-direction:column;gap:10px;display:flex}.btn[data-v-8ec15ccf]{border-radius:var(--radius);justify-content:center;align-items:center;padding:12px 20px;font-size:14px;font-weight:500;text-decoration:none;transition:background .2s;display:inline-flex}.btn-primary[data-v-8ec15ccf]{background:linear-gradient(135deg, var(--primary-600), var(--primary-700));color:#fff}.btn-secondary[data-v-8ec15ccf]{background:var(--gray-100);color:var(--gray-700)}
