.modal-overlay[data-v-2028e87a]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:1000}.modal-container[data-v-2028e87a]{width:100%;max-width:400px;margin:20px;padding:24px;animation:modalSlideIn-2028e87a .3s ease-out}@keyframes modalSlideIn-2028e87a{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header[data-v-2028e87a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.modal-title[data-v-2028e87a]{font-size:20px;font-weight:600;color:var(--text-0);margin:0}.close-btn[data-v-2028e87a]{width:32px;height:32px;border:none;background:transparent;cursor:pointer;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--text-2);transition:all var(--transition-base)}.close-btn[data-v-2028e87a]:hover{background:#0000000d;color:var(--text-0)}.close-btn svg[data-v-2028e87a]{width:20px;height:20px}.register-form[data-v-2028e87a]{display:flex;flex-direction:column;gap:16px}.form-group[data-v-2028e87a]{display:flex;flex-direction:column;gap:6px}.form-group label[data-v-2028e87a]{color:var(--text-1);font-weight:500;font-size:14px}.form-input[data-v-2028e87a]{padding:10px 14px;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:14px;color:var(--text-0);background:#fffc;transition:all var(--transition-base)}.form-input[data-v-2028e87a]::placeholder{color:var(--text-3)}.form-input[data-v-2028e87a]:focus{outline:none;border-color:var(--sky-2);background:#fffffff2;box-shadow:0 0 0 3px #d3e1f24d}.error-message[data-v-2028e87a]{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fef2f2cc;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-sm);color:var(--error);font-size:13px}.error-icon[data-v-2028e87a]{width:18px;height:18px;flex-shrink:0}.register-button[data-v-2028e87a]{padding:12px 20px;background:var(--gradient-button-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:15px;font-weight:500;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-md);margin-top:8px}.register-button[data-v-2028e87a]:hover:not(:disabled){background:var(--gradient-button-hover);box-shadow:var(--shadow-lg);transform:translateY(-1px)}.register-button[data-v-2028e87a]:disabled{opacity:.6;cursor:not-allowed}.loading-text[data-v-2028e87a]{display:flex;align-items:center;justify-content:center;gap:8px}.loading-spinner[data-v-2028e87a]{width:16px;height:16px;animation:spin-2028e87a 1s linear infinite}@keyframes spin-2028e87a{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-enter-active[data-v-2028e87a],.modal-leave-active[data-v-2028e87a]{transition:opacity .3s ease}.modal-enter-from[data-v-2028e87a],.modal-leave-to[data-v-2028e87a]{opacity:0}.login-container[data-v-8413de9a]{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px}.login-box[data-v-8413de9a]{padding:48px 40px;width:100%;max-width:420px;animation:fadeInUp-8413de9a .6s ease-out}@keyframes fadeInUp-8413de9a{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-title[data-v-8413de9a]{text-align:center;color:var(--text-0);margin-bottom:8px;font-size:28px;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.05);letter-spacing:-.5px}.login-subtitle[data-v-8413de9a]{text-align:center;color:var(--text-2);font-size:14px;margin-bottom:32px;font-weight:400}.login-form[data-v-8413de9a]{display:flex;flex-direction:column;gap:20px}.form-group[data-v-8413de9a]{display:flex;flex-direction:column;gap:8px}.form-group label[data-v-8413de9a]{color:var(--text-1);font-weight:500;font-size:14px;letter-spacing:.2px}.form-input[data-v-8413de9a]{padding:12px 16px;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:14px;color:var(--text-0);background:#fffc;transition:all var(--transition-base);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.form-input[data-v-8413de9a]::placeholder{color:var(--text-3)}.form-input[data-v-8413de9a]:focus{outline:none;border-color:var(--sky-2);background:#fffffff2;box-shadow:0 0 0 3px #d3e1f24d,0 2px 4px #0000000a}.form-input[data-v-8413de9a]:hover:not(:focus){border-color:var(--border-color-hover)}.error-message[data-v-8413de9a]{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#fef2f2cc;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-sm);color:var(--error);font-size:14px;animation:shake-8413de9a .4s ease-out}.error-icon[data-v-8413de9a]{width:20px;height:20px;flex-shrink:0}@keyframes shake-8413de9a{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.login-button[data-v-8413de9a]{padding:14px 24px;background:var(--gradient-button-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:16px;font-weight:500;cursor:pointer;transition:all var(--transition-base);letter-spacing:.5px;position:relative;overflow:hidden;box-shadow:var(--shadow-md)}.login-button[data-v-8413de9a]:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.login-button[data-v-8413de9a]:hover:not(:disabled){background:var(--gradient-button-hover);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.login-button[data-v-8413de9a]:hover:before{width:300px;height:300px}.login-button[data-v-8413de9a]:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.login-button[data-v-8413de9a]:disabled{opacity:.6;cursor:not-allowed;transform:none}.loading-text[data-v-8413de9a]{display:flex;align-items:center;justify-content:center;gap:8px}.loading-spinner[data-v-8413de9a]{width:16px;height:16px;animation:spin-8413de9a 1s linear infinite}@keyframes spin-8413de9a{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.register-section[data-v-8413de9a]{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border-color)}.register-text[data-v-8413de9a]{color:var(--text-2);font-size:14px}.register-link[data-v-8413de9a]{background:none;border:none;color:var(--sky-3);font-size:14px;font-weight:500;cursor:pointer;padding:0;transition:all var(--transition-base)}.register-link[data-v-8413de9a]:hover{color:var(--sky-4);text-decoration:underline}@media (max-width: 480px){.login-box[data-v-8413de9a]{padding:32px 24px}.login-title[data-v-8413de9a]{font-size:24px}}.page-header[data-v-e5638ac0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.page-header h1[data-v-e5638ac0]{font-size:28px;color:var(--text-0);font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.03);letter-spacing:-.5px}.header-actions[data-v-e5638ac0]{display:flex;align-items:center;gap:16px}.action-button[data-v-e5638ac0]{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#fff9;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;font-size:14px;color:var(--text-1);transition:all var(--transition-base)}.action-button[data-v-e5638ac0]:hover{background:#ffffffe6;border-color:var(--border-color-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.action-button .icon[data-v-e5638ac0]{width:16px;height:16px;color:var(--text-2)}.user-menu[data-v-e5638ac0]{position:relative}.user-avatar[data-v-e5638ac0]{display:flex;align-items:center;gap:6px;cursor:pointer;padding:4px;border-radius:20px;transition:all var(--transition-base)}.user-avatar[data-v-e5638ac0]:hover{background:#ffffff80}.avatar-image[data-v-e5638ac0]{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid var(--border-color)}.avatar-placeholder[data-v-e5638ac0]{width:36px;height:36px;border-radius:50%;background:var(--gradient-button-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;border:2px solid var(--border-color)}.dropdown-icon[data-v-e5638ac0]{font-size:12px;color:var(--text-2);transition:transform var(--transition-base)}.user-avatar:hover .dropdown-icon[data-v-e5638ac0]{transform:translateY(2px)}.dropdown-menu[data-v-e5638ac0]{position:absolute;top:calc(100% + 8px);right:0;background:var(--gradient-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:160px;z-index:1000;animation:slideDown-e5638ac0 var(--transition-base)}.menu-item[data-v-e5638ac0]{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;font-size:14px;color:var(--text-1);transition:background var(--transition-base)}.menu-item[data-v-e5638ac0]:hover{background:#ffffff80}.menu-item[data-v-e5638ac0]:first-child{border-radius:var(--radius-md) var(--radius-md) 0 0}.menu-item[data-v-e5638ac0]:last-child{border-radius:0 0 var(--radius-md) var(--radius-md)}.menu-icon[data-v-e5638ac0]{width:16px;height:16px;color:var(--text-2)}.modal-overlay[data-v-e5638ac0]{position:fixed;top:0;left:0;right:0;bottom:0;background:#2d343666;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn-e5638ac0 var(--transition-base)}.modal-content[data-v-e5638ac0]{background:var(--gradient-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:90%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:scaleIn-e5638ac0 var(--transition-base)}.modal-header[data-v-e5638ac0]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border-color)}.modal-header h2[data-v-e5638ac0]{font-size:20px;color:var(--text-0);margin:0;font-weight:600}.bind-tabs[data-v-e5638ac0]{display:flex;border-bottom:1px solid var(--border-color);padding:0 24px}.tab-btn[data-v-e5638ac0]{flex:1;padding:12px 16px;background:none;border:none;font-size:14px;color:var(--text-2);cursor:pointer;position:relative;transition:all var(--transition-fast)}.tab-btn[data-v-e5638ac0]:hover{color:var(--text-1)}.tab-btn.active[data-v-e5638ac0]{color:var(--text-0);font-weight:500}.tab-btn.active[data-v-e5638ac0]:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--success) 0%,#059669 100%);border-radius:2px 2px 0 0}.share-code-hint[data-v-e5638ac0]{display:flex;gap:12px;padding:14px 16px;background:#3b82f60d;border:1px solid rgba(59,130,246,.15);border-radius:var(--radius-md);margin-bottom:20px}.share-code-hint svg[data-v-e5638ac0]{width:20px;height:20px;color:#3b82f6;flex-shrink:0;margin-top:2px}.share-code-hint p[data-v-e5638ac0]{font-size:13px;color:var(--text-1);margin:0;line-height:1.5}.share-code-input[data-v-e5638ac0]{font-size:20px!important;font-family:Courier New,monospace;letter-spacing:4px;text-align:center;text-transform:uppercase}.close-button[data-v-e5638ac0]{background:none;border:none;color:var(--text-3);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-base)}.close-button svg[data-v-e5638ac0]{width:20px;height:20px}.close-button[data-v-e5638ac0]:hover{background:#ffffff80;color:var(--text-1)}.modal-body[data-v-e5638ac0]{padding:24px;overflow-y:auto}.form-group[data-v-e5638ac0]{margin-bottom:20px}.form-group[data-v-e5638ac0]:last-child{margin-bottom:0}.form-group label[data-v-e5638ac0]{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--text-1)}.form-group label .required[data-v-e5638ac0]{color:#e74c3c}.error-message[data-v-e5638ac0]{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:14px}.form-input[data-v-e5638ac0],.form-textarea[data-v-e5638ac0]{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:14px;color:var(--text-0);background:#fffc;transition:all var(--transition-base);box-sizing:border-box}.form-input[data-v-e5638ac0]:focus,.form-textarea[data-v-e5638ac0]:focus{outline:none;border-color:var(--sky-2);background:#fffffff2;box-shadow:0 0 0 3px #d3e1f24d}.form-input[data-v-e5638ac0]::placeholder,.form-textarea[data-v-e5638ac0]::placeholder{color:var(--text-3)}.form-textarea[data-v-e5638ac0]{resize:vertical;font-family:inherit}.modal-footer[data-v-e5638ac0]{padding:16px 24px;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end}.primary-button[data-v-e5638ac0]{padding:10px 24px;background:var(--gradient-button-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.primary-button[data-v-e5638ac0]:hover{background:var(--gradient-button-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.placeholder-content[data-v-e5638ac0]{text-align:center;padding:60px 20px}.placeholder-icon[data-v-e5638ac0]{width:64px;height:64px;margin:0 auto 16px;color:var(--text-3)}.placeholder-content p[data-v-e5638ac0]{font-size:16px;color:var(--text-2)}@keyframes fadeIn-e5638ac0{0%{opacity:0}to{opacity:1}}@keyframes scaleIn-e5638ac0{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideDown-e5638ac0{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.device-card[data-v-c9da2583]{background:var(--gradient-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all var(--transition-base);display:flex;flex-direction:column;gap:16px}.device-card[data-v-c9da2583]:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);border-color:var(--border-color-hover)}.device-header[data-v-c9da2583]{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.device-title[data-v-c9da2583]{flex:1;min-width:0}.device-title h3[data-v-c9da2583]{font-size:18px;font-weight:600;color:var(--text-0);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.03)}.title-row[data-v-c9da2583]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.settings-btn[data-v-c9da2583]{width:24px;height:24px;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-2);transition:all var(--transition-fast);flex-shrink:0}.settings-btn svg[data-v-c9da2583]{width:16px;height:16px}.settings-btn[data-v-c9da2583]:hover{background:#0000000d;color:var(--text-0)}.device-sn[data-v-c9da2583]{font-size:13px;color:var(--text-2);margin:0;font-family:Courier New,monospace;letter-spacing:.5px}.status-indicator[data-v-c9da2583]{flex-shrink:0;display:flex;align-items:center;gap:6px}.status-dot[data-v-c9da2583]{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--error);box-shadow:0 0 0 2px #ef444426;flex-shrink:0}.status-indicator.online .status-dot[data-v-c9da2583]{background:var(--success);box-shadow:0 0 0 2px #10b98126}.status-text[data-v-c9da2583]{font-size:13px;color:var(--text-1);font-weight:400;white-space:nowrap}.device-body[data-v-c9da2583]{display:flex;gap:20px;align-items:stretch}.data-section[data-v-c9da2583]{flex:1;min-width:0;display:flex}.telemetry-section[data-v-c9da2583]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 16px;background:linear-gradient(135deg,var(--sky-0) 0%,var(--sky-1) 50%,var(--sky-2) 100%);border-radius:var(--radius-md);gap:10px;border:1px solid rgba(208,225,242,.3);flex:1}.telemetry-item[data-v-c9da2583]{display:flex;align-items:center;gap:10px;justify-content:center}.telemetry-item .icon[data-v-c9da2583]{width:20px;height:20px;flex-shrink:0;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.telemetry-item.temperature .icon[data-v-c9da2583]{color:var(--temp-color)}.telemetry-item.humidity .icon[data-v-c9da2583]{color:var(--humidity-color)}.telemetry-item.temperature .value[data-v-c9da2583]{font-size:36px;font-weight:700;color:var(--temp-color);line-height:1;text-shadow:0 2px 4px rgba(220,38,38,.1)}.telemetry-item.humidity .value[data-v-c9da2583]{font-size:32px;font-weight:600;color:var(--humidity-color);line-height:1;text-shadow:0 2px 4px rgba(37,99,235,.1)}.telemetry-item .unit[data-v-c9da2583]{font-size:16px;color:var(--text-1);font-weight:500}.last-update[data-v-c9da2583]{font-size:12px;color:var(--text-2);margin-top:4px;font-weight:400}.actions-section[data-v-c9da2583]{display:flex;flex-direction:column;gap:10px;align-items:center;flex-shrink:0}.toggle-switch[data-v-c9da2583]{position:relative;width:48px;height:24px;border-radius:var(--radius-full);border:none;cursor:pointer;transition:all var(--transition-base);flex-shrink:0;padding:0;overflow:hidden}.toggle-switch.off[data-v-c9da2583]{background:linear-gradient(135deg,#6c757d33,#49505726);border:1px solid var(--border-color)}.toggle-switch.on[data-v-c9da2583]{background:linear-gradient(135deg,#10b98126,#0596691a);border:1px solid rgba(16,185,129,.25)}.toggle-slider[data-v-c9da2583]{position:absolute;top:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #00000026;transition:all var(--transition-base)}.toggle-switch.off .toggle-slider[data-v-c9da2583]{left:2px;background:linear-gradient(135deg,var(--silver-0) 0%,var(--silver-1) 100%)}.toggle-switch.on .toggle-slider[data-v-c9da2583]{left:26px;background:linear-gradient(135deg,#10b981e6,#059669)}.toggle-switch[data-v-c9da2583]:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-sm)}.toggle-switch.off[data-v-c9da2583]:hover:not(:disabled){background:linear-gradient(135deg,#6c757d40,#49505733);border-color:var(--border-color-hover)}.toggle-switch.on[data-v-c9da2583]:hover:not(:disabled){background:linear-gradient(135deg,#10b98133,#05966926);border-color:#10b98159}.toggle-switch[data-v-c9da2583]:active:not(:disabled){transform:translateY(0)}.toggle-switch[data-v-c9da2583]:disabled{opacity:.5;cursor:not-allowed}.action-button[data-v-c9da2583]{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 10px;border:1px solid var(--border-color);background:#fff9;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base);flex-shrink:0;min-width:52px}.action-button svg[data-v-c9da2583]{width:18px;height:18px;color:var(--text-2);transition:color var(--transition-fast);flex-shrink:0}.action-label[data-v-c9da2583]{font-size:11px;color:var(--text-2);font-weight:400;white-space:nowrap;transition:color var(--transition-fast)}.action-button[data-v-c9da2583]:hover{background:#ffffffe6;border-color:var(--border-color-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.action-button:hover svg[data-v-c9da2583],.action-button:hover .action-label[data-v-c9da2583]{color:var(--text-0)}.action-button[data-v-c9da2583]:active{transform:translateY(0)}.action-button.disabled[data-v-c9da2583],.action-button[data-v-c9da2583]:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.dialog-overlay[data-v-677a08f2]{position:fixed;top:0;left:0;right:0;bottom:0;background:#2d343666;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn-677a08f2 var(--transition-base)}@keyframes fadeIn-677a08f2{0%{opacity:0}to{opacity:1}}.dialog-content[data-v-677a08f2]{background:var(--gradient-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:90%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:scaleIn-677a08f2 var(--transition-base)}@keyframes scaleIn-677a08f2{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.dialog-header[data-v-677a08f2]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border-color);background:linear-gradient(135deg,var(--sky-0) 0%,rgba(255,255,255,.5) 100%)}.dialog-header h2[data-v-677a08f2]{margin:0;font-size:18px;font-weight:600;color:var(--text-0);letter-spacing:.3px}.close-button[data-v-677a08f2]{background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:24px;color:var(--text-2);cursor:pointer;padding:0;width:32px;height:32px;line-height:1;display:flex;align-items:center;justify-content:center;transition:all var(--transition-base)}.close-button[data-v-677a08f2]:hover{background:#fffc;border-color:var(--border-color-hover);color:var(--text-0);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.dialog-form[data-v-677a08f2]{padding:24px;overflow-y:auto}.form-group[data-v-677a08f2]{margin-bottom:20px}.form-group label[data-v-677a08f2]{display:block;margin-bottom:8px;font-size:14px;color:var(--text-1);font-weight:500}.form-group input[data-v-677a08f2],.form-group textarea[data-v-677a08f2]{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:14px;color:var(--text-0);background:#fffc;box-sizing:border-box;transition:all var(--transition-base);font-family:inherit}.form-group textarea[data-v-677a08f2]{resize:vertical;min-height:60px}.form-group input[data-v-677a08f2]:focus,.form-group textarea[data-v-677a08f2]:focus{outline:none;border-color:var(--sky-2);background:#fffffff2;box-shadow:0 0 0 3px #d0e1f24d}.form-group input[data-v-677a08f2]::placeholder,.form-group textarea[data-v-677a08f2]::placeholder{color:var(--text-3)}.readonly-input[data-v-677a08f2]{background:#e9ecef80!important;color:var(--text-2)!important;cursor:not-allowed;font-family:Courier New,monospace;letter-spacing:.5px}.readonly-input[data-v-677a08f2]:focus{border-color:var(--border-color)!important;box-shadow:none!important}.dialog-actions[data-v-677a08f2]{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:20px;border-top:1px solid var(--border-color)}.cancel-button[data-v-677a08f2]{padding:10px 20px;background:transparent;color:var(--text-1);border:1px solid var(--border-color);border-radius:var(--radius-full);cursor:pointer;font-size:14px;font-weight:500;transition:all var(--transition-base)}.cancel-button[data-v-677a08f2]:hover{background:#fffc;border-color:var(--border-color-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.delete-button[data-v-677a08f2]{padding:10px 20px;background:transparent;color:#dc2626;border:1px solid #fecaca;border-radius:var(--radius-full);cursor:pointer;font-size:14px;font-weight:500;transition:all var(--transition-base)}.delete-button[data-v-677a08f2]:hover:not(:disabled){background:#fef2f2;border-color:#f87171;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.delete-button[data-v-677a08f2]:disabled{opacity:.5;cursor:not-allowed}.submit-button[data-v-677a08f2]{padding:10px 24px;background:var(--gradient-button-primary);color:#fff;border:none;border-radius:var(--radius-full);cursor:pointer;font-size:14px;font-weight:500;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.submit-button[data-v-677a08f2]:hover:not(:disabled){background:var(--gradient-button-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.submit-button[data-v-677a08f2]:active:not(:disabled){transform:translateY(0)}.submit-button[data-v-677a08f2]:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.dialog-content[data-v-677a08f2]{width:95%;max-height:95vh}.dialog-header[data-v-677a08f2]{padding:16px 20px}.dialog-form[data-v-677a08f2]{padding:20px}}.confirm-overlay[data-v-677a08f2]{position:absolute;top:0;left:0;right:0;bottom:0;background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;border-radius:var(--radius-lg);z-index:10;animation:fadeIn-677a08f2 var(--transition-base)}.confirm-dialog[data-v-677a08f2]{background:#fff;border-radius:var(--radius-md);padding:24px;width:280px;box-shadow:0 4px 20px #00000014}.confirm-header[data-v-677a08f2]{display:flex;align-items:center;gap:10px;margin-bottom:12px}.confirm-icon[data-v-677a08f2]{width:22px;height:22px;color:#ef4444;flex-shrink:0}.confirm-header h3[data-v-677a08f2]{margin:0;font-size:16px;font-weight:600;color:var(--text-0)}.confirm-message[data-v-677a08f2]{margin:0 0 20px;font-size:14px;color:var(--text-2);line-height:1.5}.confirm-actions[data-v-677a08f2]{display:flex;gap:10px}.confirm-cancel-btn[data-v-677a08f2],.confirm-delete-btn[data-v-677a08f2]{flex:1;padding:10px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-base)}.confirm-cancel-btn[data-v-677a08f2]{background:#f3f4f6;color:var(--text-1);border:none}.confirm-cancel-btn[data-v-677a08f2]:hover{background:#e5e7eb}.confirm-delete-btn[data-v-677a08f2]{background:#ef4444;color:#fff;border:none}.confirm-delete-btn[data-v-677a08f2]:hover:not(:disabled){background:#dc2626}.confirm-delete-btn[data-v-677a08f2]:disabled{opacity:.6;cursor:not-allowed}.modal-overlay[data-v-9a095838]{position:fixed;top:0;left:0;right:0;bottom:0;background:#2d343666;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn-9a095838 .2s ease-out}.modal-content.map-modal[data-v-9a095838]{background:var(--gradient-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:90%;max-width:700px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:scaleIn-9a095838 .2s ease-out}.modal-header[data-v-9a095838]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color)}.modal-header h2[data-v-9a095838]{font-size:18px;color:var(--text-0);margin:0;font-weight:600}.close-button[data-v-9a095838]{background:none;border:none;color:var(--text-3);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all .2s}.close-button svg[data-v-9a095838]{width:20px;height:20px}.close-button[data-v-9a095838]:hover{background:#ffffff80;color:var(--text-1)}.modal-body[data-v-9a095838]{padding:0;flex:1;min-height:400px}.map-container[data-v-9a095838]{width:100%;height:400px}.no-gps-tip[data-v-9a095838],.map-error[data-v-9a095838]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:400px;color:var(--text-2)}.tip-icon[data-v-9a095838]{width:48px;height:48px;margin-bottom:16px;color:var(--text-3)}.no-gps-tip p[data-v-9a095838],.map-error p[data-v-9a095838]{font-size:14px;margin:0}@keyframes fadeIn-9a095838{0%{opacity:0}to{opacity:1}}@keyframes scaleIn-9a095838{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-overlay[data-v-e45cc380]{position:fixed;top:0;left:0;right:0;bottom:0;background:#2d343666;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn-e45cc380 .2s ease-out}.modal-content.map-modal[data-v-e45cc380]{background:var(--gradient-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:90%;max-width:900px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:scaleIn-e45cc380 .2s ease-out}.modal-header[data-v-e45cc380]{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color);gap:12px}.modal-header h2[data-v-e45cc380]{font-size:18px;color:var(--text-0);margin:0;font-weight:600}.device-count[data-v-e45cc380]{font-size:13px;color:var(--text-2);flex:1}.close-button[data-v-e45cc380]{background:none;border:none;color:var(--text-3);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all .2s}.close-button svg[data-v-e45cc380]{width:20px;height:20px}.close-button[data-v-e45cc380]:hover{background:#ffffff80;color:var(--text-1)}.modal-body[data-v-e45cc380]{padding:0;flex:1;min-height:500px}.map-container[data-v-e45cc380]{width:100%;height:500px}.no-gps-tip[data-v-e45cc380],.map-error[data-v-e45cc380]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:500px;color:var(--text-2)}.tip-icon[data-v-e45cc380]{width:48px;height:48px;margin-bottom:16px;color:var(--text-3)}.no-gps-tip p[data-v-e45cc380],.map-error p[data-v-e45cc380]{font-size:14px;margin:0}@keyframes fadeIn-e45cc380{0%{opacity:0}to{opacity:1}}@keyframes scaleIn-e45cc380{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-overlay[data-v-326e06c6]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn-326e06c6 .2s ease-out}@keyframes fadeIn-326e06c6{0%{opacity:0}to{opacity:1}}.modal-container[data-v-326e06c6]{background:var(--gradient-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:90%;max-width:480px;max-height:80vh;display:flex;flex-direction:column;animation:slideUp-326e06c6 .3s ease-out}@keyframes slideUp-326e06c6{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header[data-v-326e06c6]{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border-color)}.modal-header h3[data-v-326e06c6]{font-size:16px;font-weight:600;color:var(--text-0);margin:0}.device-sn[data-v-326e06c6]{font-size:12px;color:var(--text-2);font-family:Courier New,monospace;background:#00000008;padding:2px 8px;border-radius:var(--radius-sm)}.close-btn[data-v-326e06c6]{margin-left:auto;width:32px;height:32px;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-2);transition:all var(--transition-fast)}.close-btn[data-v-326e06c6]:hover{background:#0000000d;color:var(--text-0)}.close-btn svg[data-v-326e06c6]{width:18px;height:18px}.modal-body[data-v-326e06c6]{padding:16px 20px;overflow-y:auto;flex:1}.loading-state[data-v-326e06c6]{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;color:var(--text-2)}.spinner[data-v-326e06c6]{width:32px;height:32px;border:3px solid var(--border-color);border-top-color:var(--silver-0);border-radius:50%;animation:spin-326e06c6 1s linear infinite}@keyframes spin-326e06c6{to{transform:rotate(360deg)}}.empty-state[data-v-326e06c6]{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;color:var(--text-2)}.empty-state svg[data-v-326e06c6]{width:48px;height:48px;opacity:.5}.log-list[data-v-326e06c6]{display:flex;flex-direction:column;gap:12px}.log-item[data-v-326e06c6]{display:flex;gap:12px;padding:12px;background:#ffffff80;border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-fast)}.log-item[data-v-326e06c6]:hover{background:#fffc;border-color:var(--border-color-hover)}.log-icon[data-v-326e06c6]{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.log-icon svg[data-v-326e06c6]{width:20px;height:20px}.log-icon.on[data-v-326e06c6]{background:#10b9811a;color:var(--success)}.log-icon.off[data-v-326e06c6]{background:#ef44441a;color:var(--error)}.log-content[data-v-326e06c6]{flex:1;min-width:0}.log-main[data-v-326e06c6]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.log-action[data-v-326e06c6]{font-size:14px;font-weight:500;color:var(--text-0)}.log-status[data-v-326e06c6]{font-size:11px;padding:2px 6px;border-radius:var(--radius-sm);font-weight:500}.log-status.success[data-v-326e06c6]{background:#10b9811a;color:var(--success)}.log-status.error[data-v-326e06c6]{background:#ef44441a;color:var(--error)}.log-status.pending[data-v-326e06c6]{background:#f59e0b1a;color:#f59e0b}.log-meta[data-v-326e06c6]{display:flex;gap:16px;font-size:12px;color:var(--text-2)}.log-user[data-v-326e06c6],.log-time[data-v-326e06c6]{display:flex;align-items:center;gap:4px}.modal-overlay[data-v-29ed4606]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn-29ed4606 .2s ease-out}.confirm-overlay[data-v-29ed4606]{z-index:1100}@keyframes fadeIn-29ed4606{0%{opacity:0}to{opacity:1}}.modal-container[data-v-29ed4606]{background:var(--gradient-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:90%;max-width:480px;max-height:80vh;display:flex;flex-direction:column;animation:slideUp-29ed4606 .3s ease-out}@keyframes slideUp-29ed4606{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header[data-v-29ed4606]{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border-color)}.modal-header h3[data-v-29ed4606]{font-size:16px;font-weight:600;color:var(--text-0);margin:0}.device-info[data-v-29ed4606]{font-size:12px;color:var(--text-2);background:#00000008;padding:2px 8px;border-radius:var(--radius-sm)}.close-btn[data-v-29ed4606]{margin-left:auto;width:32px;height:32px;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-2);transition:all var(--transition-fast)}.close-btn[data-v-29ed4606]:hover{background:#0000000d;color:var(--text-0)}.close-btn svg[data-v-29ed4606]{width:18px;height:18px}.modal-body[data-v-29ed4606]{padding:20px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:20px}.role-badge[data-v-29ed4606]{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-md);font-size:14px;font-weight:500;align-self:flex-start}.role-icon[data-v-29ed4606]{width:16px;height:16px}.role-badge.owner[data-v-29ed4606]{background:linear-gradient(135deg,#f59e0b1a,#d977061a);color:#d97706;border:1px solid rgba(245,158,11,.2)}.role-badge.owner .role-icon[data-v-29ed4606]{color:#f59e0b}.role-badge.member[data-v-29ed4606]{background:linear-gradient(135deg,#3b82f61a,#2563eb1a);color:#2563eb;border:1px solid rgba(59,130,246,.2)}.role-badge.member .role-icon[data-v-29ed4606]{color:#3b82f6}.section[data-v-29ed4606]{background:#ffffff80;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:16px}.section-header[data-v-29ed4606]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-header h4[data-v-29ed4606]{font-size:14px;font-weight:600;color:var(--text-0);margin:0}.section-desc[data-v-29ed4606]{font-size:13px;color:var(--text-2);margin:0 0 12px}.danger-section[data-v-29ed4606]{border-color:#ef444433;background:#fef2f280}.member-list[data-v-29ed4606]{display:flex;flex-direction:column;gap:8px}.member-item[data-v-29ed4606]{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#fff9;border:1px solid var(--border-color);border-radius:var(--radius-sm)}.member-info[data-v-29ed4606]{display:flex;align-items:center;gap:10px}.member-name[data-v-29ed4606]{font-size:14px;color:var(--text-0);font-weight:500}.member-role[data-v-29ed4606]{font-size:11px;padding:2px 8px;border-radius:var(--radius-sm)}.member-role.owner[data-v-29ed4606]{background:#f59e0b1a;color:#d97706}.member-role.member[data-v-29ed4606]{background:#3b82f61a;color:#2563eb}.empty-hint[data-v-29ed4606]{font-size:13px;color:var(--text-2);text-align:center;padding:20px}.member-actions[data-v-29ed4606]{display:flex;gap:8px}.action-btn[data-v-29ed4606]{font-size:12px;padding:4px 10px;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:all var(--transition-fast)}.action-btn.transfer[data-v-29ed4606]{background:#3b82f61a;color:#2563eb;border:1px solid rgba(59,130,246,.2)}.action-btn.transfer[data-v-29ed4606]:hover:not(:disabled){background:#3b82f633}.action-btn.remove[data-v-29ed4606]{background:#ef44441a;color:#dc2626;border:1px solid rgba(239,68,68,.2)}.action-btn.remove[data-v-29ed4606]:hover:not(:disabled){background:#ef444433}.action-btn[data-v-29ed4606]:disabled{opacity:.5;cursor:not-allowed}.primary-btn[data-v-29ed4606]{width:100%;padding:10px 16px;font-size:14px;font-weight:500;border:none;border-radius:var(--radius-md);cursor:pointer;background:linear-gradient(135deg,var(--success) 0%,#059669 100%);color:#fff;transition:all var(--transition-fast)}.primary-btn[data-v-29ed4606]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #10b9814d}.primary-btn[data-v-29ed4606]:disabled{opacity:.6;cursor:not-allowed}.danger-btn[data-v-29ed4606]{width:100%;padding:10px 16px;font-size:14px;font-weight:500;border:none;border-radius:var(--radius-md);cursor:pointer;background:linear-gradient(135deg,var(--error) 0%,#dc2626 100%);color:#fff;transition:all var(--transition-fast)}.danger-btn[data-v-29ed4606]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.danger-btn[data-v-29ed4606]:disabled{opacity:.6;cursor:not-allowed}.share-code-display[data-v-29ed4606]{text-align:center}.code-box[data-v-29ed4606]{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px;background:#fffc;border:2px dashed var(--border-color);border-radius:var(--radius-md);margin-bottom:8px}.code[data-v-29ed4606]{font-size:24px;font-weight:700;font-family:Courier New,monospace;letter-spacing:4px;color:var(--text-0)}.copy-btn[data-v-29ed4606]{padding:6px 12px;font-size:12px;border:1px solid var(--border-color);background:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.copy-btn[data-v-29ed4606]:hover{background:var(--sky-0);border-color:var(--border-color-hover)}.expire-hint[data-v-29ed4606]{font-size:12px;color:var(--text-2);margin:0}.confirm-dialog[data-v-29ed4606]{background:var(--gradient-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:24px;width:90%;max-width:360px;text-align:center}.confirm-dialog h4[data-v-29ed4606]{font-size:16px;font-weight:600;color:var(--text-0);margin:0 0 12px}.confirm-dialog p[data-v-29ed4606]{font-size:14px;color:var(--text-1);margin:0 0 8px}.warning-text[data-v-29ed4606]{font-size:13px;color:var(--error);margin-bottom:20px!important}.confirm-actions[data-v-29ed4606]{display:flex;gap:12px;justify-content:center}.cancel-btn[data-v-29ed4606]{padding:8px 20px;font-size:14px;border:1px solid var(--border-color);background:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.cancel-btn[data-v-29ed4606]:hover{background:var(--sky-0)}.confirm-btn[data-v-29ed4606]{padding:8px 20px;font-size:14px;border:none;background:linear-gradient(135deg,var(--error) 0%,#dc2626 100%);color:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.confirm-btn[data-v-29ed4606]:hover:not(:disabled){transform:translateY(-1px)}.confirm-btn[data-v-29ed4606]:disabled{opacity:.6;cursor:not-allowed}.spinner-small[data-v-29ed4606]{width:16px;height:16px;border:2px solid var(--border-color);border-top-color:var(--text-1);border-radius:50%;animation:spin-29ed4606 1s linear infinite}@keyframes spin-29ed4606{to{transform:rotate(360deg)}}.refresh-btn[data-v-29ed4606]{width:28px;height:28px;border:none;background:transparent;display:flex;align-items:center;justify-content:center}.device-list-page[data-v-44857293]{padding:24px;max-width:1200px;margin:0 auto;min-height:100vh}.loading[data-v-44857293]{text-align:center;padding:60px 20px;color:var(--text-1);font-size:16px;display:flex;flex-direction:column;align-items:center;gap:16px}.loading[data-v-44857293]:before{content:"";width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--silver-0);border-radius:50%;animation:spin-44857293 1s linear infinite}@keyframes spin-44857293{to{transform:rotate(360deg)}}.empty-state[data-v-44857293]{text-align:center;padding:80px 20px;color:var(--text-2);font-size:16px;background:var(--gradient-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-md)}.empty-state[data-v-44857293]:before{content:"";display:block;width:80px;height:80px;margin:0 auto 20px;background:linear-gradient(135deg,var(--sky-0) 0%,var(--sky-1) 100%);border-radius:50%;opacity:.6}.device-grid[data-v-44857293]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;animation:fadeIn-44857293 .6s ease-out}@keyframes fadeIn-44857293{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message[data-v-44857293]{position:fixed;top:24px;left:50%;transform:translate(-50%);padding:14px 24px;border-radius:var(--radius-md);font-size:14px;font-weight:500;z-index:2000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:slideDown-44857293 var(--transition-base);display:flex;align-items:center;gap:10px;min-width:300px;box-shadow:var(--shadow-lg)}.message.success[data-v-44857293]{background:#f0fdf4f2;color:var(--success);border:1px solid rgba(16,185,129,.3)}.message.error[data-v-44857293]{background:#fef2f2f2;color:var(--error);border:1px solid rgba(239,68,68,.3)}.message[data-v-44857293]:before{content:"";width:20px;height:20px;flex-shrink:0;border-radius:50%}.message.success[data-v-44857293]:before{background:var(--success);box-shadow:0 0 0 3px #10b98133}.message.error[data-v-44857293]:before{background:var(--error);box-shadow:0 0 0 3px #ef444433}@keyframes slideDown-44857293{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media (max-width: 768px){.device-list-page[data-v-44857293]{padding:16px}.device-grid[data-v-44857293]{grid-template-columns:1fr;gap:16px}}#app[data-v-f0c91327]{width:100%;height:100vh}:root{--bg-0: #f8f9fa;--bg-1: #e9ecef;--bg-2: #dee2e6;--silver-0: #6c757d;--silver-1: #495057;--silver-2: #adb5bd;--silver-light: rgba(108, 117, 125, .1);--silver-border: rgba(108, 117, 125, .2);--text-0: #2d3436;--text-1: #495057;--text-2: #6c757d;--text-3: #adb5bd;--sky-0: #f0f4f8;--sky-1: #e3edf7;--sky-2: #d6e6f5;--sky-accent: rgba(99, 179, 237, .08);--success: #10b981;--success-light: rgba(16, 185, 129, .1);--error: #ef4444;--error-light: rgba(239, 68, 68, .1);--warning: #f59e0b;--info: #3b82f6;--temp-color: #dc2626;--humidity-color: #2563eb;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .06);--shadow-md: 0 4px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .1);--shadow-xl: 0 12px 24px rgba(0, 0, 0, .12);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--transition-fast: .15s ease-out;--transition-base: .2s ease-out;--transition-slow: .3s ease-out;--frost-bg: linear-gradient(135deg, rgba(255, 255, 255, .95) 0%, rgba(248, 249, 250, .9) 100%);--frost-border: rgba(108, 117, 125, .15);--frost-shadow: 0 4px 12px rgba(0, 0, 0, .06), 0 2px 4px rgba(0, 0, 0, .04);--silver-gradient: linear-gradient(135deg, #e9ecef 0%, #dee2e6 50%, #ced4da 100%);--silver-gradient-hover: linear-gradient(135deg, #f1f3f5 0%, #e9ecef 50%, #dee2e6 100%);--winter-sky-bg: linear-gradient(180deg, #f8f9fa 0%, #f0f4f8 25%, #e9ecef 50%, #e3edf7 75%, #dee2e6 100%)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text-0);background:var(--winter-sky-bg);min-height:100vh}.frost-card{background:var(--frost-bg);border:1px solid var(--frost-border);border-radius:var(--radius-md);box-shadow:var(--frost-shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.silver-button{background:var(--silver-gradient);border:1px solid var(--silver-border);color:var(--text-0);transition:all var(--transition-base)}.silver-button:hover{background:var(--silver-gradient-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.text-shadow-subtle{text-shadow:0 1px 2px rgba(0,0,0,.05)}::-webkit-scrollbar-track{background:var(--bg-1)}::-webkit-scrollbar-thumb{background:var(--silver-2);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--silver-0)}#app{width:100%;min-height:100vh}:root{--bg-0: #f8f9fa;--bg-1: #e9ecef;--bg-2: #dee2e6;--silver-0: #6c757d;--silver-1: #495057;--text-0: #2d3436;--text-1: #495057;--text-2: #6c757d;--text-3: #adb5bd;--sky-0: #f0f4f8;--sky-1: #e3edf7;--sky-2: #d0e1f2;--success: #10b981;--error: #ef4444;--warning: #f59e0b;--info: #3b82f6;--temp-color: #dc2626;--humidity-color: #2563eb;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .08), 0 2px 4px -1px rgba(0, 0, 0, .04);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -2px rgba(0, 0, 0, .04);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .08), 0 10px 10px -5px rgba(0, 0, 0, .04);--border-color: rgba(108, 117, 125, .15);--border-color-hover: rgba(108, 117, 125, .25);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 9999px;--transition-fast: .15s ease-out;--transition-base: .2s ease-out;--transition-slow: .3s ease-out;--gradient-page: linear-gradient( 135deg, #f8f9fa 0%, #e9ecef 25%, #f0f4f8 50%, #e3edf7 75%, #dee2e6 100% );--gradient-card: linear-gradient( 135deg, rgba(255, 255, 255, .9) 0%, rgba(248, 249, 250, .85) 100% );--gradient-silver: linear-gradient( 135deg, #6c757d 0%, #495057 100% );--gradient-button-primary: linear-gradient( 135deg, rgba(108, 117, 125, .9) 0%, rgba(73, 80, 87, .95) 100% );--gradient-button-hover: linear-gradient( 135deg, rgba(108, 117, 125, 1) 0%, rgba(73, 80, 87, 1) 100% )}*{box-sizing:border-box}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--gradient-page);background-attachment:fixed;color:var(--text-0);min-height:100vh}.frost-card{background:var(--gradient-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-md);transition:all var(--transition-base)}.frost-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);border-color:var(--border-color-hover)}.btn-primary{background:var(--gradient-button-primary);color:#fff;border:none;border-radius:var(--radius-full);padding:10px 24px;font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--gradient-button-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:transparent;color:var(--text-1);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:8px 16px;font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-base)}.btn-secondary:hover{background:#ffffff80;border-color:var(--border-color-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-icon{width:40px;height:40px;border:1px solid var(--border-color);background:#fff9;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-base);padding:0}.btn-icon svg{width:18px;height:18px;color:var(--text-2);transition:color var(--transition-fast)}.btn-icon:hover{background:#ffffffe6;border-color:var(--border-color-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-icon:hover svg{color:var(--text-1)}.input-base{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:14px;color:var(--text-0);background:#fffc;transition:all var(--transition-base)}.input-base:focus{outline:none;border-color:var(--sky-2);background:#fffffff2;box-shadow:0 0 0 3px #d3e1f24d}.input-base::placeholder{color:var(--text-3)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#2d343666;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn var(--transition-base)}.modal-content{background:var(--gradient-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:90%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:scaleIn var(--transition-base)}.dropdown-menu{background:var(--gradient-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:slideDown var(--transition-base)}.tooltip{background:#2d3436e6;color:#fff;padding:6px 12px;border-radius:var(--radius-sm);font-size:12px;white-space:nowrap;box-shadow:var(--shadow-md)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-1);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb{background:var(--silver-0);border-radius:var(--radius-sm);transition:background var(--transition-fast)}::-webkit-scrollbar-thumb:hover{background:var(--silver-1)}
