body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fafafa;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box}a{color:inherit;text-decoration:none}h1,h2,h3,h4,h5,h6{margin-top:0}.App{display:flex;flex-direction:column;min-height:100vh}.main-nav{background-color:#2196f3;box-shadow:0 2px 4px #0000001a;padding:16px 24px}.nav-container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px}.nav-logo{color:#fff;font-size:1.5rem;font-weight:700;text-decoration:none}.nav-links{display:flex;gap:24px}.nav-link{color:#fff;font-weight:500;text-decoration:none;transition:opacity .2s}.nav-link:hover{opacity:.8}.main-content{flex:1 1}.main-footer{background-color:#f5f5f5;color:#757575;font-size:.9rem;padding:16px;text-align:center}@media (max-width:768px){.nav-container{flex-direction:column;gap:16px}}.home-page{margin:0 auto;max-width:1200px;padding:20px}.hero{background-color:#f5f5f5;border-radius:8px;margin-bottom:40px;padding:60px 20px;text-align:center}.hero h1{color:#2196f3;font-size:2.5rem;margin-bottom:16px}.hero p{color:#757575;font-size:1.2rem;margin-bottom:32px;margin-left:auto;margin-right:auto;max-width:600px}.cta-buttons{display:flex;gap:16px;justify-content:center}.button{display:inline-block;padding:12px 24px;text-decoration:none;transition:all .3s ease}.button.primary{background-color:#2196f3}.button.primary:hover{background-color:#1976d2}.button.secondary{background-color:#fff;border:1px solid #2196f3;color:#2196f3}.button.secondary:hover{background-color:#e3f2fd}.features{padding:40px 0}.features h2{color:#333;font-size:2rem;margin-bottom:40px;text-align:center}.feature-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.feature-card{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:24px;transition:transform .3s ease}.feature-card:hover{transform:translateY(-5px)}.feature-card h3{color:#2196f3;font-size:1.5rem;margin-bottom:16px}.feature-card p{color:#757575;line-height:1.5}@media (max-width:768px){.hero h1{font-size:2rem}.hero p{font-size:1rem}.cta-buttons{align-items:center;flex-direction:column}.button{max-width:300px;text-align:center;width:100%}}.login-page{align-items:center;display:flex;justify-content:center;min-height:80vh;padding:20px}.auth-container{background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;max-width:400px;padding:30px;width:100%}.auth-container h2{color:#333;margin-bottom:20px;margin-top:0;text-align:center}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px}.form-group input{border:1px solid #ddd;border-radius:4px;font-size:16px;max-width:100%;padding:10px;width:100%}.button{border:none;border-radius:4px;cursor:pointer;font-size:16px;font-weight:500;padding:12px;transition:background-color .2s;width:100%}.button.primary{background-color:#4285f4;color:#fff}.button.primary:hover{background-color:#3367d6}.button:disabled{background-color:#ccc;cursor:not-allowed}.auth-links{display:flex;justify-content:space-between;margin-top:20px}.link-button{background:none;border:none;color:#4285f4;cursor:pointer;font-size:14px;padding:0;text-decoration:underline}.link-button:hover{color:#3367d6}.error-message{background-color:#ffebee;color:#c62828}.error-message,.success-message{border-radius:4px;margin-bottom:15px;padding:10px}.success-message{background-color:#e8f5e9;color:#2e7d32}.dashboard{display:flex;flex-direction:column;height:100vh}.dashboard-header{align-items:center;background-color:#1976d2;box-shadow:0 2px 4px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:16px 24px}.dashboard-header h1{font-size:24px;margin:0}.dashboard-nav{display:flex;gap:8px}.nav-tab{background-color:initial;border:none;border-radius:4px;color:#fffc;cursor:pointer;font-size:16px;padding:8px 16px;transition:background-color .3s}.nav-tab:hover{background-color:#ffffff1a}.nav-tab.active{background-color:#fff3;color:#fff;font-weight:500}.dashboard-content{background-color:#f5f5f5;flex:1 1;overflow-y:auto;padding:24px}.virtual-toggle{background-color:#2196f3;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;margin-left:16px;padding:8px 16px;transition:background-color .3s}.virtual-toggle.active,.virtual-toggle:hover{background-color:#0d8aee}.command-page{display:flex;flex-direction:column;height:calc(100vh - 40px);margin:0 auto;max-width:800px;padding:20px}h1{color:#2196f3;margin-bottom:16px;margin-top:0;text-align:center}.input-section{display:flex;flex-direction:column;margin-bottom:20px}.messages-container{background-color:#f9f9f9;border:1px solid #eee;border-radius:8px;display:flex;flex-direction:column;flex-grow:1;gap:12px;min-height:200px;overflow-y:auto;padding:16px}.message{animation:fadeIn .3s ease;border-radius:8px;box-shadow:0 1px 3px #0000001a;max-width:80%;padding:12px}.user-message{align-self:flex-end;background-color:#e3f2fd;border-left:4px solid #2196f3;color:#0d47a1}.system-message{align-self:flex-start;background-color:#f5f5f5;border-left:4px solid #9e9e9e;color:#333}.device-message{background-color:#e8f5e9;border-left:4px solid #4caf50}.weather-message{background-color:#e1f5fe;border-left:4px solid #03a9f4}.timer-message{background-color:#fff8e1;border-left:4px solid #ffc107}.message-content{line-height:1.4;margin-bottom:4px}.message-timestamp{font-size:.8em;opacity:.7;text-align:right}.empty-state{animation:fadeIn .5s ease;color:#757575;padding:20px;text-align:center}.empty-state p{font-weight:500;margin-bottom:12px}.empty-state ul{display:flex;flex-direction:column;gap:8px;list-style-type:none;margin:0;padding:0}.empty-state li{background-color:#e3f2fd;border-radius:4px;display:inline-block;margin:0 auto;padding:8px 12px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (min-width:768px){.input-section{align-items:flex-start;flex-direction:row}.input-section .text-input-form{flex:1 1;margin-right:16px}}.text-input-form{display:flex;margin:16px 0;width:100%}.text-input{border:1px solid #ccc;border-radius:4px 0 0 4px;flex:1 1;font-size:16px;outline:none;padding:12px 16px;transition:border-color .2s}.text-input:focus{border-color:#2196f3}.text-input:disabled{background-color:#f5f5f5;cursor:not-allowed}.submit-button{background-color:#2196f3;border:none;border-radius:0 4px 4px 0;color:#fff;cursor:pointer;font-weight:500;padding:12px 20px;transition:background-color .2s}.submit-button:hover:not(:disabled){background-color:#0d8bf2}.submit-button:active:not(:disabled){background-color:#0b7ad1}.submit-button:disabled{background-color:#ccc;cursor:not-allowed}@media (max-width:480px){.text-input-form{flex-direction:column}.text-input{border-radius:4px;margin-bottom:8px}.submit-button{border-radius:4px;width:100%}}.voice-input{margin-left:10px}.voice-button,.voice-input{align-items:center;display:flex}.voice-button{background-color:#007bff;border:none;border-radius:50%;color:#fff;cursor:pointer;height:40px;justify-content:center;overflow:hidden;position:relative;transition:all .3s ease;width:40px}.voice-button:hover{background-color:#0069d9}.voice-button:disabled{background-color:#ccc;cursor:not-allowed}.voice-button.listening{animation:pulse 1.5s infinite;background-color:#dc3545}.voice-button.initializing{background-color:#ffc107}.voice-error{color:#dc3545;font-size:.8rem;margin-left:10px;max-width:200px}.microphone-select{border:1px solid #ced4da;border-radius:4px;margin-right:10px;padding:5px}.voice-input-debug .debug-label{font-size:14px;margin-left:8px}.audio-info{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;margin-top:15px;padding:10px}.audio-info pre{margin:0;white-space:pre-wrap}.audio-player{margin-top:15px}.audio-player audio{margin-top:5px;width:100%}.device-grid-container{display:flex;flex-direction:column;gap:20px}.device-filters{background-color:#f5f5f5;border-radius:8px;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px;padding:12px}.filter-group{align-items:center;display:flex;gap:8px}.filter-group label{color:#424242;font-size:.9rem;font-weight:500}.filter-select{background-color:#fff;border:1px solid #ddd;border-radius:4px;color:#333;cursor:pointer;font-size:.9rem;min-width:120px;padding:6px 12px}.filter-select:focus{border-color:#2196f3;outline:none}.device-categories{display:flex;flex-direction:column;gap:32px}.device-category{display:flex;flex-direction:column;gap:16px}.category-title{border-bottom:2px solid #e0e0e0;color:#333;font-size:1.5rem;margin:0;padding-bottom:8px}.device-category-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.no-devices{background-color:#f9f9f9;border-radius:8px;color:#757575;padding:40px;text-align:center}.device-category:first-child .category-title{border-bottom-color:#ffc107;color:#ffc107}.device-category:nth-child(2) .category-title{border-bottom-color:#2196f3;color:#2196f3}.device-category:nth-child(3) .category-title{border-bottom-color:#9c27b0;color:#9c27b0}.device-category:nth-child(4) .category-title{border-bottom-color:#f44336;color:#f44336}.device-category:nth-child(5) .category-title{border-bottom-color:#4caf50;color:#4caf50}@media (max-width:600px){.device-filters{align-items:stretch;flex-direction:column}.filter-group{align-items:flex-start;flex-direction:column}.filter-select{width:100%}.device-category-grid{grid-template-columns:1fr}}.device-card{background-color:#fff;border-radius:12px;box-shadow:0 4px 8px #0000001a;overflow:hidden;padding:16px;position:relative;transition:all .3s ease}.device-card.on{border-left:4px solid #4caf50}.device-card.off{border-left:4px solid #9e9e9e}.device-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.device-name{font-size:18px;font-weight:600;margin:0}.device-room{background-color:#f5f5f5;border-radius:12px;color:#757575;font-size:12px;padding:4px 8px}.device-status{align-items:center;display:flex;margin-bottom:16px}.status-indicator{border-radius:50%;height:12px;margin-right:8px;width:12px}.status-indicator.on{background-color:#4caf50}.status-indicator.off{background-color:#9e9e9e}.status-text{color:#424242;font-size:14px}.device-controls{display:flex;flex-direction:column;gap:12px}.switch{display:inline-block;height:34px;position:relative;width:60px}.switch input{height:0;opacity:0;width:0}.slider{background-color:#ccc;bottom:0;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{position:absolute;transition:.4s}.slider:before{background-color:#fff;bottom:4px;content:"";height:26px;left:4px;width:26px}input:checked+.slider{background-color:#4caf50}input:focus+.slider{box-shadow:0 0 1px #4caf50}input:checked+.slider:before{transform:translateX(26px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.slider-control{align-items:center;display:flex;gap:12px}.brightness-slider,.speed-slider,.temperature-slider{-webkit-appearance:none;appearance:none;background:#ddd;border-radius:4px;flex-grow:1;height:8px;outline:none}.brightness-slider::-webkit-slider-thumb,.speed-slider::-webkit-slider-thumb,.temperature-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#4caf50;border-radius:50%;cursor:pointer;height:16px;width:16px}.slider-value{color:#424242;font-size:14px;min-width:40px;text-align:right}.thermostat-controls{display:flex;flex-direction:column;gap:16px}.temperature-display{align-items:center;display:flex;justify-content:space-between}.current-temp{font-size:24px;font-weight:600}.target-temp{color:#757575;font-size:14px}.temperature-controls{align-items:center;display:flex;gap:8px}.temp-button{align-items:center;background-color:#f5f5f5;border:none;border-radius:50%;color:#424242;cursor:pointer;display:flex;font-size:18px;height:32px;justify-content:center;width:32px}.temp-button:hover{background-color:#e0e0e0}.mode-controls{display:flex;gap:8px}.mode-button{background-color:#f5f5f5;border:1px solid #e0e0e0;border-radius:4px;color:#424242;cursor:pointer;flex:1 1;font-size:14px;padding:8px}.mode-button.active{background-color:#4caf50;border-color:#4caf50;color:#fff}.lock-controls{display:flex;justify-content:center}.lock-button{border:none;border-radius:4px;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .3s ease}.lock-button.locked{background-color:#4caf50;color:#fff}.lock-button.unlocked{background-color:#f44336;color:#fff}.device-card.virtual{background-color:#f3f9ff;border-left:4px solid #2196f3}.device-card.virtual .device-name:before{background-color:#2196f3;border-radius:10px;color:#fff;content:"Virtual";font-size:10px;margin-right:8px;padding:2px 6px;vertical-align:middle}.virtual-device-panel{background-color:#f5f9ff;border:1px solid #d0e1fd;border-radius:12px;margin-bottom:24px;padding:20px}.virtual-device-panel h2{color:#2196f3;font-size:20px;margin-top:0}.virtual-device-panel p{color:#666;margin-bottom:20px}.virtual-device-actions{margin-bottom:24px}.demo-devices-button{background-color:#2196f3;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;padding:10px 16px;transition:background-color .3s}.demo-devices-button:hover{background-color:#0d8aee}.demo-devices-button:disabled{background-color:#b3d4fc;cursor:not-allowed}.virtual-device-form-container{background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px}.virtual-device-form-container h3{color:#333;font-size:18px;margin-top:0}.virtual-device-form{gap:16px}.form-group,.virtual-device-form{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{color:#555;font-weight:500}.form-group input,.form-group select{border:1px solid #ddd;border-radius:4px;font-size:16px;padding:10px}.create-device-button{background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;margin-top:8px;padding:12px;transition:background-color .3s}.create-device-button:hover{background-color:#3d9140}.create-device-button:disabled{background-color:#a5d6a7;cursor:not-allowed}.voice-input-debug{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;margin:20px 0;padding:20px}.voice-input-debug button{align-items:center;background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;justify-content:center;padding:10px 20px;transition:background-color .3s}.voice-input-debug button:hover{background-color:#0069d9}.voice-input-debug button.listening{animation:pulse 1.5s infinite;background-color:#dc3545}.voice-input-debug .debug-label{font-weight:500;margin-left:10px}.voice-input-debug .voice-error{background-color:#f8d7da;border-radius:4px;color:#721c24;margin-top:15px;padding:10px}.voice-input-debug .audio-info{background-color:#e2e3e5;border-radius:4px;margin-top:20px;padding:15px}.voice-input-debug .audio-info h4{margin-bottom:10px;margin-top:0}.voice-input-debug .audio-info pre{font-family:monospace;margin:0;white-space:pre-wrap}.voice-input-debug .audio-player{margin-top:20px}.voice-input-debug .audio-player h4{margin-bottom:10px;margin-top:0}.voice-input-debug .audio-player audio{margin-top:10px;width:100%}@keyframes pulse{0%{box-shadow:0 0 0 0 #dc3545b3}70%{box-shadow:0 0 0 10px #dc354500}to{box-shadow:0 0 0 0 #dc354500}}.debug-panel{background-color:#f5f5f5;border-top:1px solid #ddd;bottom:0;font-family:monospace;font-size:12px;left:0;position:fixed;right:0;transition:height .3s ease;z-index:1000}.debug-panel.collapsed{height:30px}.debug-panel.expanded{height:300px;overflow:auto}.debug-panel-header{align-items:center;background-color:#e0e0e0;border-bottom:1px solid #ccc;display:flex;justify-content:space-between;padding:5px 10px}.debug-panel-header h3{font-size:14px;margin:0}.toggle-button{background-color:#007bff;border:none;border-radius:3px;color:#fff;cursor:pointer;padding:3px 8px}.debug-panel-tabs{border-bottom:1px solid #ccc;display:flex}.tab-button{background-color:#f0f0f0;border:none;border-right:1px solid #ccc;cursor:pointer;padding:5px 10px}.tab-button.active{background-color:#fff;border-bottom:2px solid #007bff}.debug-panel-content{background-color:#fff;height:calc(100% - 70px);overflow:auto;padding:10px}.api-debug pre,.devices-debug pre{margin:0;white-space:pre-wrap}.logs-debug{height:100%;overflow:auto}.log-entry{border-bottom:1px solid #f0f0f0;padding:2px 0}.log-entry:nth-child(odd){background-color:#f9f9f9}
/*# sourceMappingURL=main.d38882a4.css.map*/