*{box-sizing:border-box}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;min-height:100vh;background-color:#fff;color:#213547}#root{min-height:100vh;display:flex;flex-direction:column}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;width:100vw;background-color:#f5f5f5;position:fixed;top:0;left:0;margin:0;padding:0}.login-card{background-color:#fff;padding:40px;border-radius:10px;box-shadow:0 2px 10px #0000001a;width:100%;max-width:400px;margin:20px}.login-logo-container{text-align:center;margin-bottom:30px}.login-logo{font-size:60px;margin-bottom:10px}.login-title{font-size:24px;color:#333;margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.login-input-group{display:flex;flex-direction:column;gap:8px}.login-label{font-size:14px;font-weight:500;color:#555}.login-input{padding:12px;font-size:16px;border:1px solid #ddd;border-radius:5px;outline:none;transition:border-color .3s}.login-input:focus{border-color:#007bff}.login-button{padding:12px;font-size:16px;font-weight:600;color:#fff;background-color:#007bff;border:none;border-radius:5px;cursor:pointer;transition:background-color .3s}.login-button:hover{background-color:#0056b3}.login-button:active{background-color:#004085}.login-separator{display:flex;align-items:center;gap:12px;color:#aaa;font-size:13px;text-align:center}.login-separator:before,.login-separator:after{content:"";flex:1;height:1px;background-color:#ddd}.login-register-btn{padding:12px;font-size:16px;font-weight:600;color:#007bff;background-color:#fff;border:2px solid #007bff;border-radius:5px;cursor:pointer;transition:background-color .3s,color .3s}.login-register-btn:hover{background-color:#007bff;color:#fff}.login-error{background-color:#f8d7da;color:#721c24;padding:12px 16px;border:1px solid #f5c6cb;border-radius:5px;text-align:center;font-size:14px;font-weight:500;margin-bottom:10px}.header{background-color:#fff;box-shadow:0 2px 4px #0000001a;position:fixed;top:0;left:0;right:0;z-index:1000}.header-container{max-width:1200px;margin:0 auto;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.header-logo-link{text-decoration:none;color:inherit;transition:opacity .3s}.header-logo-link:hover{opacity:.7}.header-logo h2{margin:0;font-size:1.5rem;color:#333}.header-nav{display:flex;gap:2rem}.header-link{text-decoration:none;color:#555;font-weight:500;transition:color .3s}.header-link:hover{color:#007bff}.header-button{display:flex;align-items:center;gap:6px;padding:6px 14px;background-color:#007bff;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 4px #007bff33;text-decoration:none}.header-button:hover{background-color:#0069d9;transform:translateY(-2px);box-shadow:0 4px 8px #007bff4d;color:#fff}.header-button:active{transform:translateY(0);box-shadow:0 2px 4px #007bff33}.logout-button{display:flex;align-items:center;gap:6px;padding:6px 14px;background-color:#dc3545;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 4px #dc354533}.logout-button:hover{background-color:#c82333;transform:translateY(-2px);box-shadow:0 4px 8px #dc35454d}.logout-button:active{transform:translateY(0);box-shadow:0 2px 4px #dc354533}.logout-button svg{font-size:1rem}.footer{background-color:#f8f9fa;border-top:1px solid #e0e0e0;margin-top:auto;width:100%}.footer-container{width:100%;padding:2rem;text-align:center}.footer-text{margin:0;color:#666;font-size:.9rem}.house-card{background-color:#fff;border-radius:12px;padding:10px;box-shadow:0 2px 8px #0000001a;transition:transform .2s,box-shadow .2s;cursor:pointer;display:flex;flex-direction:column;align-items:center;text-align:center}.house-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #00000026}.house-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.house-card-title{margin:0;font-size:1.5rem;color:#333}.house-card-status{font-size:.875rem;padding:4px 12px;border-radius:20px;background-color:#f0f0f0}.house-card-status[data-status=active]{background-color:#d4edda;color:#155724}.house-card-status[data-status=inactive]{background-color:#f8d7da;color:#721c24}.house-card-info{margin-bottom:20px}.house-card-address{color:#666;margin:0 0 16px;font-size:.95rem}.house-card-stats{display:flex;gap:24px}.house-stat{display:flex;flex-direction:column;gap:4px}.stat-label{font-size:.875rem;color:#888}.stat-value{font-size:1.5rem;font-weight:600;color:#007bff}.house-card-button{width:80%;padding:10px;background-color:#007bff;color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s;display:flex;align-items:center;justify-content:center;gap:8px}.house-card-button:hover{background-color:#0056b3}.main-layout{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;padding:6rem 2rem 2rem;max-width:1200px;margin:0 auto;width:100%}.main-header{margin-bottom:3rem}.main-header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.main-header h1{margin:0;color:#333;font-size:2.5rem}.main-search-row{display:flex;align-items:center;gap:12px}.add-house-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background-color:#007bff;color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background-color .2s,transform .1s,box-shadow .2s}.add-house-btn:hover{background-color:#0056b3;transform:translateY(-1px);box-shadow:0 4px 12px #007bff4d}.add-house-icon{font-size:.85rem}.main-subtitle{margin:0;color:#666;font-size:1.1rem}.main-search-wrapper{position:relative;max-width:400px}.main-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#aaa;font-size:.9rem;pointer-events:none}.main-search-input{width:100%;padding:.6rem .9rem .6rem 2.2rem;border:1px solid #dee2e6;border-radius:8px;font-size:.95rem;color:#333;outline:none;transition:border-color .2s;box-sizing:border-box}.main-search-input:focus{border-color:#007bff}.main-search-error{margin:0 0 1rem;color:#dc3545;font-size:.95rem}.houses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.home-layout{min-height:100vh;display:flex;flex-direction:column}.home-content{flex:1;padding:6rem 2rem 2rem;max-width:1200px;margin:0 auto;width:100%}.home-error{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;color:#dc3545;font-size:1rem}.home-error p{margin:0}.home-header{margin-bottom:3rem}.home-header-content{display:flex;justify-content:space-between;align-items:center}.home-header h1{margin:0 0 .5rem;color:#333;font-size:2.5rem}.home-subtitle{margin:0;color:#666;font-size:1.1rem}.home-header-actions{display:flex;gap:10px}.home-section-header{margin-top:2rem}.home-section-title{margin:0 0 .25rem;color:#333;font-size:1.5rem}.accept-house-btn{background-color:#28a745;color:#fff;border:1px solid #28a745;border-radius:8px;padding:12px 24px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .3s,transform .2s;display:flex;align-items:center;gap:8px}.accept-house-btn:hover{background-color:#218838;border-color:#218838}.edit-house-btn{background-color:#fff;color:#555;border:1px solid #dee2e6;border-radius:8px;padding:12px 24px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .3s,transform .2s;display:flex;align-items:center;gap:8px}.edit-house-btn:hover{background-color:#f8f9fa;transform:translateY(-2px)}.edit-house-btn:active{transform:translateY(0)}.delete-house-btn{background-color:#fff;color:#dc3545;border:1px solid #dc3545;border-radius:8px;padding:12px 24px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .3s,transform .2s;display:flex;align-items:center;gap:8px}.delete-house-btn:hover{background-color:#fff5f5;transform:translateY(-2px)}.delete-house-btn:active{transform:translateY(0)}.add-sensor-btn{background-color:#007bff;color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .3s,transform .2s;box-shadow:0 2px 4px #007bff33;display:flex;align-items:center;gap:8px}.add-sensor-icon{font-size:1.2rem;line-height:1}.add-sensor-btn:hover{background-color:#0056b3;transform:translateY(-2px);box-shadow:0 4px 8px #007bff4d}.add-sensor-btn:active{transform:translateY(0)}.sensors-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.sensor-card{background-color:#fff;border-radius:8.4px;padding:14px;box-shadow:0 1.4px 5.6px #0000001a;display:flex;gap:11.2px;transition:transform .2s,box-shadow .2s;cursor:pointer}.sensor-card:hover{transform:translateY(-1.4px);box-shadow:0 2.8px 8.4px #00000026}.sensor-card[data-status=inactive]{opacity:.6;background-color:#f8f9fa}.sensor-icon{font-size:2.1rem;display:flex;align-items:center;justify-content:center}.sensor-info{flex:1;display:flex;flex-direction:column;gap:5.6px}.sensor-name{margin:0;font-size:.77rem;color:#333}.sensor-value{font-size:1.26rem;font-weight:600;color:#007bff}.sensor-meta{display:flex;flex-direction:column;gap:2.8px;font-size:.6125rem}.sensor-status{color:#666}.sensor-update{color:#999}.sensor-hardware-id{font-size:.6125rem;color:#bbb;margin-top:4px}.sensor-accept-btn{margin-top:8px;padding:4px 10px;font-size:.75rem;font-weight:600;background-color:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer;align-self:flex-start}.sensor-accept-btn:hover{background-color:#218838}.members-list{border:1px solid #e9ecef;border-radius:12px;overflow:hidden;margin-top:1rem}.member-item{display:flex;align-items:center;gap:1.5rem;padding:1rem 1.5rem;border-bottom:1px solid #f0f0f0}.member-item:last-child{border-bottom:none}.member-name{font-weight:600;color:#333;min-width:120px}.member-email{color:#666;flex:1}.member-role{font-size:.8rem;font-weight:600;color:#007bff;background:#e8f0fe;padding:2px 10px;border-radius:20px}.member-status{font-size:.8rem;font-weight:600;padding:2px 10px;border-radius:20px}.member-status[data-status=ACCEPTED]{color:#28a745;background:#e6f4ea}.member-status[data-status=PENDING]{color:#856404;background:#fff3cd}.notifications-section{margin-top:4rem}.notifications-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.notifications-header h2{margin:0;font-size:1.5rem;color:#333}.notifications-count{background-color:#007bff;color:#fff;padding:4px 12px;border-radius:20px;font-size:.875rem;font-weight:600}.notifications-list{display:flex;flex-direction:column;gap:12px}.notification-item{background-color:#fff;border-radius:8px;padding:16px;box-shadow:0 2px 6px #00000014;display:flex;gap:16px;border-left:4px solid transparent;transition:transform .2s,box-shadow .2s}.notification-item:hover{transform:translate(4px);box-shadow:0 4px 12px #0000001f}.notification-item[data-type=critical]{border-left-color:#dc3545;background-color:#fff5f5}.notification-item[data-type=warning]{border-left-color:#ffc107;background-color:#fffef5}.notification-item[data-type=info]{border-left-color:#007bff;background-color:#f5f9ff}.notification-icon{font-size:1.5rem;display:flex;align-items:flex-start;padding-top:2px}.notification-content{flex:1;display:flex;flex-direction:column;gap:8px}.notification-header-item{display:flex;justify-content:space-between;align-items:center}.notification-sensor{font-weight:600;color:#333;font-size:1rem}.notification-time{font-size:.875rem;color:#999;font-weight:500}.notification-message{margin:0;color:#555;font-size:.95rem;line-height:1.5}.notification-timestamp{font-size:.8rem;color:#999}.sensor-layout{min-height:100vh;display:flex;flex-direction:column}.sensor-content{flex:1;padding:6rem 2rem 2rem;max-width:1200px;margin:0 auto;width:100%}.readings-section{margin-top:2rem}.readings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem;flex-wrap:wrap}.readings-filter{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.readings-date-input{padding:8px 10px;border:1px solid #dee2e6;border-radius:8px;font-size:.875rem;color:#333}.readings-empty{color:#888;font-size:.95rem}.readings-list{border:1px solid #e9ecef;border-radius:12px;overflow:hidden}.reading-item{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1.25rem;border-bottom:1px solid #f0f0f0}.reading-item:last-child{border-bottom:none}.reading-value{font-size:1.1rem;font-weight:600;color:#007bff}.reading-timestamp{font-size:.85rem;color:#888}.sensor-header{margin-bottom:2rem;display:flex;justify-content:space-between;align-items:flex-start;gap:2rem}.sensor-header-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:.85rem}.sensor-type-label{color:#555}.sensor-location{color:#888}.sensor-hw-id{color:#bbb;font-size:.75rem}.sensor-detail-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;padding:2rem;display:flex;gap:0}.sensor-detail-row{display:flex;flex-direction:column;align-items:flex-start;padding:0 2rem;border-right:1px solid #f0f0f0;flex:1}.sensor-detail-row:first-child{padding-left:0}.sensor-detail-row:last-child{border-right:none}.sensor-detail-label{font-size:.85rem;color:#888;font-weight:500;margin-bottom:.4rem}.sensor-detail-value{font-size:1.1rem;font-weight:600;color:#333}.back-button{background-color:#f8f9fa;color:#333;border:1px solid #dee2e6;border-radius:4px;padding:6px 12px;font-size:.8rem;font-weight:500;cursor:pointer;transition:background-color .2s,border-color .2s;white-space:nowrap}.back-button:hover{background-color:#e9ecef;border-color:#adb5bd}.sensor-title{display:flex;align-items:center;gap:1rem;flex:1}.sensor-title-icon{font-size:3rem}.sensor-title h1{margin:0;color:#333;font-size:2.5rem}.config-button{background-color:#007bff;color:#fff;border:none;border-radius:6px;padding:10px 20px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background-color .2s,transform .2s;white-space:nowrap;display:flex;align-items:center;gap:6px}.config-button:hover{background-color:#0056b3;transform:translateY(-1px)}.config-button:active{transform:translateY(0)}.metrics-container{background-color:#fff;border-radius:12px;padding:1.6rem;box-shadow:0 2px 8px #0000001a}.metrics-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.6rem;flex-wrap:wrap;gap:.8rem}.metrics-header h2{margin:0;color:#333;font-size:1.2rem}.metrics-info{display:flex;gap:1.6rem;flex-wrap:wrap}.metric-value{color:#666;font-size:.76rem;font-weight:500}.chart-container{width:100%}.chart{display:flex;gap:.8rem;margin-bottom:.4rem}.chart-y-axis{display:flex;flex-direction:column;justify-content:space-between;padding:8px 0;min-width:48px}.y-label{font-size:.68rem;color:#666;text-align:right}.chart-area{flex:1;position:relative;height:240px;border:1px solid #e9ecef;border-radius:8px;background-color:#f8f9fa;padding:8px}.grid-lines{position:absolute;inset:8px;display:flex;flex-direction:column;justify-content:space-between}.grid-line{width:100%;height:1px;background-color:#dee2e6}.chart-svg{position:absolute;inset:8px;width:calc(100% - 16px);height:calc(100% - 16px)}.chart-line{fill:none;stroke:#007bff;stroke-width:2;vector-effect:non-scaling-stroke}.chart-points{position:absolute;inset:8px;width:calc(100% - 16px);height:calc(100% - 16px)}.chart-point{position:absolute;width:10px;height:10px;background-color:#007bff;border:2.4px solid white;border-radius:50%;transform:translate(-50%,50%);cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 1.6px 3.2px #0003}.chart-point:hover{transform:translate(-50%,50%) scale(1.3);box-shadow:0 3.2px 6.4px #0000004d;z-index:10}.chart-point:hover .point-tooltip{opacity:1;visibility:visible}.point-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:3.2px 6.4px;border-radius:3.2px;font-size:.64rem;white-space:nowrap;margin-bottom:6.4px;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;pointer-events:none}.point-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:3.2px solid transparent;border-top-color:#333}.chart-x-axis{display:flex;justify-content:space-between;padding:.4rem 0 0 60.8px}.x-label{font-size:.68rem;color:#666;text-align:center;flex:1}.new-house-content{flex:1;display:flex;justify-content:center;align-items:center;padding:6rem 2rem 2rem}.new-house-card{background:#fff;border:1px solid #dee2e6;border-radius:12px;padding:2.5rem;width:100%;max-width:480px;box-shadow:0 2px 12px #00000014}.new-house-title{margin:0 0 2rem;font-size:1.8rem;color:#333;text-align:center}.new-house-form{display:flex;flex-direction:column;gap:1.25rem}.new-house-input-group{display:flex;flex-direction:column;gap:.4rem}.new-house-label{font-size:.9rem;font-weight:500;color:#555}.new-house-input{padding:.65rem .9rem;border:1px solid #dee2e6;border-radius:8px;font-size:.95rem;color:#333;outline:none;transition:border-color .2s}.new-house-input:focus{border-color:#007bff}.new-house-error{margin:0;padding:.6rem .9rem;background-color:#fff5f5;border:1px solid #dc3545;border-radius:8px;color:#dc3545;font-size:.9rem}.new-house-actions{display:flex;gap:.75rem;margin-top:.5rem}.new-house-btn,.new-house-btn-cancel{flex:1;padding:.75rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s,transform .1s}.new-house-btn{background-color:#007bff;color:#fff;border:none}.new-house-btn:hover{background-color:#0056b3;transform:translateY(-1px)}.new-house-btn-cancel{background-color:#fff;color:#555;border:1px solid #dee2e6}.new-house-btn-cancel:hover{background-color:#f8f9fa;transform:translateY(-1px)}.new-house-btn-danger{background-color:#dc3545}.new-house-btn-danger:hover{background-color:#b02a37}.help-content{flex:1;max-width:800px;margin:0 auto;padding:6rem 2rem 2rem;width:100%}.help-title{font-size:2rem;color:#333;margin:0 0 .5rem}.help-subtitle{color:#777;margin:0 0 2.5rem;font-size:1rem}.help-section{margin-bottom:2.5rem}.help-section-title{font-size:1.2rem;color:#007bff;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:2px solid #e9ecef}.help-faq-item{background:#fff;border:1px solid #dee2e6;border-radius:10px;padding:1.25rem 1.5rem;margin-bottom:.75rem;box-shadow:0 1px 4px #0000000d}.help-faq-question{font-weight:600;color:#333;margin:0 0 .5rem;font-size:.95rem}.help-faq-answer{color:#555;margin:0;font-size:.9rem;line-height:1.6}.help-steps{list-style:none;padding:0;margin:0;counter-reset:steps}.help-step{display:flex;gap:1rem;align-items:flex-start;background:#fff;border:1px solid #dee2e6;border-radius:10px;padding:1rem 1.25rem;margin-bottom:.75rem;box-shadow:0 1px 4px #0000000d}.help-step-number{background-color:#007bff;color:#fff;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;flex-shrink:0}.help-step-text{color:#444;font-size:.92rem;line-height:1.5;padding-top:3px}.help-step-text strong{color:#333}.help-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.8rem;font-weight:600}.help-badge-pending{background-color:#fff3cd;color:#856404}.help-badge-accepted{background-color:#d1e7dd;color:#0a5f38}.help-badge-rejected{background-color:#f8d7da;color:#842029}.configuration-content{flex:1;max-width:800px;margin:0 auto;padding:6rem 2rem 2rem;width:100%}.configuration-title{font-size:2rem;color:#333;margin:0 0 2rem}.configuration-section-title{font-size:1.2rem;color:#007bff;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:2px solid #e9ecef}.configuration-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid #f0f0f0}.configuration-item-info{display:flex;flex-direction:column;gap:.25rem}.configuration-item-label{font-size:1rem;font-weight:500;color:#333}.configuration-item-description{font-size:.875rem;color:#777}.configuration-switch{position:relative;width:48px;height:26px;flex-shrink:0}.configuration-switch input{opacity:0;width:0;height:0}.configuration-switch-slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;border-radius:26px;transition:background-color .3s}.configuration-switch-slider:before{content:"";position:absolute;width:20px;height:20px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:transform .3s}.configuration-switch input:checked+.configuration-switch-slider{background-color:#007bff}.configuration-switch input:checked+.configuration-switch-slider:before{transform:translate(22px)}
