@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500&family=Raleway:wght@300;400;500;600&display=swap";@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500&family=Raleway:wght@300;400;500;600&display=swap";@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500&family=Raleway:wght@300;400;500;600&display=swap";@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500&family=Raleway:wght@300;400;500;600&display=swap";@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500&family=Raleway:wght@300;400;500;600&display=swap";@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500&family=Raleway:wght@300;400;500;600&display=swap";@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500&family=Raleway:wght@300;400;500;600&display=swap";*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{font-family:Arial,Helvetica,sans-serif}:root{--bg:#f5ede0;--accent:#c8943a;--muted:#5a3e1b80;--glow:0 4px 24px #c8943a47}.splash-container{background:var(--bg);color:#3d2a0f;text-align:center;flex-direction:column;justify-content:center;align-items:center;width:100vw;height:100vh;font-family:Raleway,sans-serif;display:flex;position:relative;overflow:hidden}.splash-container:before{content:"";pointer-events:none;z-index:1;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");background-size:200px 200px;position:absolute;inset:0}@keyframes scanDown{0%{opacity:1;top:0}80%{opacity:.6;top:100%}to{opacity:0;top:100%}}@keyframes floatParticle{0%{opacity:0;bottom:-20px}10%{opacity:1}90%{opacity:.8}to{opacity:0;bottom:110%}}.plant-icon{z-index:2;filter:drop-shadow(0 8px 20px #c8943a4d);margin-bottom:20px;font-size:70px;animation:2s ease-in-out infinite alternate plantGrow}@keyframes plantGrow{0%{transform:scale(1)}to{transform:scale(1.15)}}.title{color:var(--accent);letter-spacing:.04em;text-shadow:0 2px 20px #c8943a33;z-index:2;opacity:0;margin-bottom:10px;font-family:Playfair Display,serif;font-size:36px;font-weight:500;animation:.8s .3s forwards fadeSlideUp}.subtitle{color:var(--muted);letter-spacing:.3em;text-transform:uppercase;z-index:2;opacity:0;margin-bottom:44px;font-family:Raleway,sans-serif;font-size:12px;font-weight:500;animation:.8s .5s forwards fadeSlideUp}.loading-bar{z-index:2;opacity:0;background:#c8943a26;border-radius:4px;width:220px;height:4px;animation:.5s .7s forwards fadeIn;overflow:hidden}.loading{background:linear-gradient(90deg,#c8943a,#f5c26b);border-radius:4px;width:0%;height:100%;animation:3s linear forwards loading}@keyframes loading{0%{width:0%}to{width:100%}}.loading-label{color:var(--muted);letter-spacing:.25em;text-transform:uppercase;z-index:2;opacity:0;margin-top:12px;font-family:Raleway,sans-serif;font-size:10px;font-weight:600;animation:.5s .9s forwards fadeIn}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.title{font-size:22px}.subtitle{font-size:11px}}:root{--bg:#f5ede0;--bg2:#ede0cc;--accent:#c8943a;--accent2:#4a9a50;--dim:#c8943a1f;--border:#c8943a4d;--text:#3d2a0f;--muted:#5a3e1b8c;--glow:0 4px 24px #c8943a38;--glow2:0 4px 24px #4a9a5038}.auth-page{background:var(--bg);flex-direction:column;justify-content:center;align-items:center;width:100vw;height:100vh;font-family:Raleway,sans-serif;display:flex;position:relative;overflow:hidden}.auth-page:before{content:"";pointer-events:none;z-index:1;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");background-size:200px 200px;position:absolute;inset:0}.hex-grid{pointer-events:none;z-index:0;background-image:radial-gradient(at 20%,#c8943a1a 0%,#0000 55%),radial-gradient(at 80% 30%,#4a9a5014 0%,#0000 50%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100'%3E%3Cpath d='M28 0 L56 16 L56 48 L28 64 L0 48 L0 16Z' fill='none' stroke='rgba(200,148,58,0.10)' stroke-width='0.8'/%3E%3C/svg%3E");background-size:auto,auto,56px 100px;position:absolute;inset:0}.scan-beam{display:none}.main-title{color:var(--accent);letter-spacing:.06em;text-shadow:0 2px 20px #c8943a40;z-index:2;opacity:0;margin-bottom:6px;font-family:Playfair Display,serif;font-size:58px;font-weight:500;animation:.7s .5s forwards fadeSlideUp}.main-sub{color:var(--muted);letter-spacing:.35em;text-transform:uppercase;z-index:2;opacity:0;margin-bottom:56px;font-family:Raleway,sans-serif;font-size:12px;font-weight:500;animation:.7s .7s forwards fadeSlideUp}.auth-cards{z-index:2;gap:36px;display:flex}.card{text-align:center;width:280px;color:var(--text);opacity:0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fff8edd9;border:1px solid #c8943a38;border-radius:16px;flex-direction:column;align-items:center;gap:12px;padding:40px 35px;transition:all .4s;display:flex;position:relative;box-shadow:0 2px 32px #c8943a14}.login-card{animation:.7s .9s forwards fadeSlideUp}.register-card{animation:.7s 1.05s forwards fadeSlideUp}.card:before{content:"";pointer-events:none;background:linear-gradient(145deg,#fff8ed99 0%,#0000 70%);border-radius:16px;position:absolute;inset:0}.card:hover{border-color:var(--accent);box-shadow:var(--glow), 0 0 0 1px #c8943a26;transform:translateY(-8px)}.card-corner{width:14px;height:14px;position:absolute}.card-corner.tl{border-top:2px solid var(--accent);border-left:2px solid var(--accent);border-radius:4px 0 0;top:-1px;left:-1px}.card-corner.tr{border-top:2px solid var(--accent);border-right:2px solid var(--accent);border-radius:0 4px 0 0;top:-1px;right:-1px}.card-corner.bl{border-bottom:2px solid var(--accent);border-left:2px solid var(--accent);border-radius:0 0 0 4px;bottom:-1px;left:-1px}.card-corner.br{border-bottom:2px solid var(--accent);border-right:2px solid var(--accent);border-radius:0 0 4px;bottom:-1px;right:-1px}.icon{filter:drop-shadow(0 4px 10px #c8943a40);margin-bottom:8px;font-size:42px;transition:all .3s}.card h2{letter-spacing:.1em;color:var(--accent);margin-top:4px;font-family:Playfair Display,serif;font-size:22px;font-weight:500}.card p{color:var(--muted);letter-spacing:.02em;margin-bottom:8px;font-size:13px;line-height:1.6}.plant:hover{transform:scale(1.3)rotate(-10deg)}.water:hover{animation:.6s infinite alternate dropBounce}@keyframes dropBounce{0%{transform:translateY(0)}to{transform:translateY(-8px)}}.login-btn,.register-btn{letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border-radius:24px;width:100%;margin-top:5px;padding:12px;font-family:Raleway,sans-serif;font-size:13px;font-weight:600;transition:all .3s;position:relative;overflow:hidden}.login-btn{border:1.5px solid var(--accent);color:var(--accent);background:0 0}.login-btn:before{content:"";background:var(--accent);z-index:0;transition:transform .3s;position:absolute;inset:0;transform:translate(-100%)}.login-btn span{z-index:1;position:relative}.login-btn:hover:before{transform:translate(0)}.login-btn:hover{color:#fff;box-shadow:var(--glow)}.register-btn{border:1.5px solid var(--accent2);color:var(--accent2);background:0 0}.register-btn:before{content:"";background:var(--accent2);z-index:0;transition:transform .3s;position:absolute;inset:0;transform:translate(-100%)}.register-btn:hover:before{transform:translate(0)}.register-btn:hover{color:#fff;box-shadow:var(--glow2)}.register-card .card-corner{border-color:var(--accent2)!important}.register-card:hover{border-color:var(--accent2);box-shadow:var(--glow2), 0 0 0 1px #4a9a501f}.soil-particles span{background:var(--accent);border-radius:50%;width:4px;height:4px;animation:10s linear infinite floatParticle;position:absolute;box-shadow:0 0 8px #c8943a80}.soil-particles span:first-child{animation-duration:8s;animation-delay:0s;left:10%}.soil-particles span:nth-child(2){animation-duration:12s;animation-delay:2s;left:30%}.soil-particles span:nth-child(3){animation-duration:9s;animation-delay:1s;left:50%}.soil-particles span:nth-child(4){animation-duration:11s;animation-delay:3s;left:70%}.soil-particles span:nth-child(5){animation-duration:10s;animation-delay:.5s;left:90%}@media (width<=768px){.main-title{text-align:center;margin-bottom:8px;font-size:32px}.auth-cards{flex-direction:column;gap:20px}.card{width:90%;padding:25px}}.popup-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background:#3d2a0f8c;justify-content:center;align-items:center;width:100%;height:100%;animation:.25s forwards overlayIn;display:flex;position:fixed;top:0;left:0}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.popup-box{text-align:center;color:#3d2a0f;background:#fffaf3;border:1px solid #c8943a4d;border-radius:20px;width:320px;padding:36px 32px;font-family:Raleway,sans-serif;animation:.3s forwards boxIn;position:relative;overflow:hidden;box-shadow:0 8px 48px #c8943a26,0 2px 12px #c8943a14}.popup-box:before{content:"";pointer-events:none;z-index:2;background:linear-gradient(90deg,#c8943a,#f5c26b,#c8943a);height:3px;position:absolute;top:0;left:0;right:0}@keyframes boxIn{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.popup-corner{z-index:3;width:14px;height:14px;position:absolute}.popup-corner.tl{border-top:2px solid #c8943a;border-left:2px solid #c8943a;border-radius:4px 0 0;top:-1px;left:-1px}.popup-corner.tr{border-top:2px solid #c8943a;border-right:2px solid #c8943a;border-radius:0 4px 0 0;top:-1px;right:-1px}.popup-corner.bl{border-bottom:2px solid #c8943a;border-left:2px solid #c8943a;border-radius:0 0 0 4px;bottom:-1px;left:-1px}.popup-corner.br{border-bottom:2px solid #c8943a;border-right:2px solid #c8943a;border-radius:0 0 4px;bottom:-1px;right:-1px}.popup-icon{z-index:1;filter:drop-shadow(0 4px 12px #c8943a4d);margin-bottom:14px;font-size:44px;position:relative}.popup-box h2{letter-spacing:.08em;color:#c8943a;z-index:1;margin-bottom:12px;font-family:Playfair Display,serif;font-size:18px;font-weight:500;position:relative}.popup-box p{color:#3d2a0fa6;letter-spacing:.02em;z-index:1;margin-bottom:24px;font-size:14px;line-height:1.65;position:relative}.popup-btn{color:#c8943a;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;z-index:1;background:0 0;border:1.5px solid #c8943a;border-radius:24px;padding:10px 28px;font-family:Raleway,sans-serif;font-size:13px;font-weight:600;transition:all .3s;position:relative;overflow:hidden}.popup-btn:before{content:"";z-index:0;background:#c8943a;transition:transform .3s;position:absolute;inset:0;transform:translate(-100%)}.popup-btn:hover:before{transform:translate(0)}.popup-btn:hover{color:#fff;box-shadow:0 4px 20px #c8943a4d}.popup-btn span{z-index:1;position:relative}@media (width<=768px){.popup-box{width:90%;padding:24px 20px}}.login-page{background:#f5ede0;justify-content:center;align-items:center;width:100vw;height:100vh;font-family:Raleway,sans-serif;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";pointer-events:none;z-index:0;background-image:radial-gradient(at 25% 55%,#c8943a1a 0%,#0000 55%),radial-gradient(at 78% 28%,#4a9a5012 0%,#0000 50%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100'%3E%3Cpath d='M28 0 L56 16 L56 48 L28 64 L0 48 L0 16Z' fill='none' stroke='rgba(200,148,58,0.09)' stroke-width='0.8'/%3E%3C/svg%3E");background-size:auto,auto,56px 100px;position:absolute;inset:0}.login-card{z-index:1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:center;color:#3d2a0f;background:#fff8ede6;border:1px solid #c8943a40;border-radius:20px;width:380px;padding:45px;position:relative;box-shadow:0 8px 40px #c8943a1f,0 2px 12px #c8943a12}.login-card:before{content:"";background:linear-gradient(90deg,#0000,#c8943a,#0000);border-radius:0 0 2px 2px;height:2px;position:absolute;top:0;left:10%;right:10%}.login-title{color:#c8943a;letter-spacing:.08em;text-shadow:0 2px 12px #c8943a2e;margin-bottom:15px;font-family:Playfair Display,serif;font-size:36px;font-weight:500}.login-subtitle{color:#5a3e1b8c;letter-spacing:.03em;margin-bottom:30px;font-size:14px}.login-input{color:#3d2a0f;background:0 0;border:none;outline:none;width:100%;font-family:Raleway,sans-serif;font-size:15px}.login-input::placeholder{color:#5a3e1b66}.login-button{color:#fff;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:#c8943a;border:none;border-radius:24px;width:100%;margin-bottom:10px;padding:13px;font-family:Raleway,sans-serif;font-size:15px;font-weight:600;transition:all .3s;box-shadow:0 4px 16px #c8943a40}.login-button:hover{background:#a87530;transform:translateY(-1px);box-shadow:0 6px 22px #c8943a59}.login-button:active{transform:translateY(0)}.back-button{color:#5a3e1b73;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;margin-top:15px;font-family:Raleway,sans-serif;font-size:13px;font-weight:600;transition:all .3s}.input-error{border-radius:12px;border:2px solid #d95c3a!important}.error-text{color:#d95c3a;margin-top:-10px;margin-bottom:12px;font-family:Raleway,sans-serif;font-size:13px}@media (width<=768px){.login-card{width:90%;padding:25px}}.register-page{background:#f5ede0;justify-content:center;align-items:center;width:100vw;height:100vh;font-family:Raleway,sans-serif;display:flex;position:relative;overflow:hidden}.register-page:before{content:"";pointer-events:none;z-index:0;background-image:radial-gradient(at 75% 55%,#4a9a5017 0%,#0000 55%),radial-gradient(at 22% 30%,#c8943a1a 0%,#0000 50%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100'%3E%3Cpath d='M28 0 L56 16 L56 48 L28 64 L0 48 L0 16Z' fill='none' stroke='rgba(200,148,58,0.09)' stroke-width='0.8'/%3E%3C/svg%3E");background-size:auto,auto,56px 100px;position:absolute;inset:0}.register-card{z-index:1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:center;color:#3d2a0f;background:#fff8ede6;border:1px solid #c8943a40;border-radius:20px;width:380px;padding:45px;position:relative;box-shadow:0 8px 40px #c8943a1f,0 2px 12px #c8943a12}.register-card:before{content:"";background:linear-gradient(90deg,#0000,#4a9a50,#0000);border-radius:0 0 2px 2px;height:2px;position:absolute;top:0;left:10%;right:10%}.register-title{color:#c8943a;letter-spacing:.08em;text-shadow:0 2px 12px #c8943a2e;margin-bottom:15px;font-family:Playfair Display,serif;font-size:36px;font-weight:500}.register-subtitle{color:#5a3e1b8c;letter-spacing:.03em;margin-bottom:30px;font-size:14px}.input-group{background:#fffaf3;border:1.5px solid #c8943a38;border-radius:12px;align-items:center;margin-bottom:20px;padding:10px 14px;transition:border-color .25s;display:flex}.input-group:focus-within{border-color:#c8943a;box-shadow:0 0 0 3px #c8943a1a}.input-icon{margin-right:10px;font-size:16px}.register-input{color:#3d2a0f;background:0 0;border:none;outline:none;width:100%;font-family:Raleway,sans-serif;font-size:15px}.register-input::placeholder{color:#5a3e1b66}.register-button{color:#fff;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:#4a9a50;border:none;border-radius:24px;width:100%;margin-bottom:10px;padding:13px;font-family:Raleway,sans-serif;font-size:15px;font-weight:600;transition:all .3s;box-shadow:0 4px 16px #4a9a5038}.register-button:hover{background:#357a3a;transform:translateY(-1px);box-shadow:0 6px 22px #4a9a5052}.register-button:active{transform:translateY(0)}.back-button{color:#5a3e1b73;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;font-family:Raleway,sans-serif;font-size:13px;font-weight:600;transition:all .3s}.back-button:hover{color:#c8943a}.otp-container{justify-content:center;gap:10px;margin-top:20px;display:flex}.otp-box{text-align:center;color:#3d2a0f;background:#fffaf3;border:1.5px solid #c8943a4d;border-radius:10px;outline:none;width:40px;height:45px;font-family:Raleway,sans-serif;font-size:20px;transition:border-color .2s}.otp-box:focus{border-color:#4a9a50;box-shadow:0 0 0 3px #4a9a501a}.resend-container{margin-top:15px}.timer-text{color:#5a3e1b73;font-family:Raleway,sans-serif;font-size:13px}.resend-btn{color:#4a9a50;cursor:pointer;background:0 0;border:none;font-family:Raleway,sans-serif;font-weight:600}.resend-btn:hover{text-decoration:underline}@media (width<=768px){.register-card{width:90%;padding:25px}}*{box-sizing:border-box}.dashboard-page{color:#3d2a0f;background:#f5ede0;flex-direction:column;align-items:center;min-height:100vh;padding:48px 20px 60px;font-family:Raleway,sans-serif;display:flex;position:relative;overflow:hidden}.dashboard-page:before{content:"";pointer-events:none;z-index:0;background-image:radial-gradient(at 20% 30%,#c8943a17 0%,#0000 50%),radial-gradient(at 80% 70%,#4a9a5012 0%,#0000 50%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100'%3E%3Cpath d='M28 0 L56 16 L56 48 L28 64 L0 48 L0 16Z' fill='none' stroke='rgba(200,148,58,0.09)' stroke-width='0.8'/%3E%3C/svg%3E");background-size:auto,auto,56px 100px;position:absolute;inset:0}.dashboard-page>*{z-index:1;position:relative}.dashboard-topbar{flex-direction:column;align-items:flex-start;gap:10px;width:100%;max-width:480px;margin-bottom:24px;display:flex}.dashboard-greeting{color:#5a3e1b80;letter-spacing:.06em;margin:0;font-family:Raleway,sans-serif;font-size:13px;font-weight:500}.dashboard-title{color:#c8943a;letter-spacing:.04em;text-align:left;width:100%;margin:0;font-family:Playfair Display,serif;font-size:30px;font-weight:500}.dashboard-title:before{display:none}.add-device-card{color:#c8943a;letter-spacing:.06em;width:auto;height:36px;box-shadow:none;cursor:pointer;background:0 0;border:1.5px dashed #c8943a73;border-radius:24px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-family:Raleway,sans-serif;font-size:13px;font-weight:600;transition:all .25s;display:inline-flex}.add-device-card:before,.add-device-card:after{display:none}.add-device-card:hover{background:#c8943a12;border-color:#c8943a;transform:translateY(-1px)}.device-grid{flex-direction:column;gap:12px;width:100%;max-width:480px;display:flex}.dashboard-device-card-wrapper{width:100%;display:block;position:relative}.dashboard-device-card{color:#3d2a0f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff8edeb;border:1px solid #c8943a38;border-radius:14px;flex-direction:row;align-items:center;gap:10px;width:100%;min-height:60px;padding:14px 52px 14px 18px;font-family:Raleway,sans-serif;font-size:15px;font-weight:600;transition:all .25s;display:flex;box-shadow:0 2px 12px #c8943a17}.dashboard-device-card:hover{background:#fff8ed;border-color:#c8943a;transform:translateY(-3px);box-shadow:0 6px 22px #c8943a29}.room-status-dot{background:#4a9a50;border-radius:50%;flex-shrink:0;width:9px;height:9px;display:inline-block;box-shadow:0 0 6px #4a9a508c}.room-card-name{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.dashboard-device-card:before,.dashboard-device-card:after{display:none}.room-card-arrow{color:#c8943a73;pointer-events:none;font-size:20px;font-weight:400;position:absolute;top:50%;right:36px;transform:translateY(-50%)}.three-dot{color:#5a3e1b59;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:2;border-radius:50%;padding:6px 8px;font-size:20px;line-height:1;transition:all .2s;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.three-dot:hover{color:#c8943a;background:#c8943a1a}.room-menu{z-index:100;background:#fffaf3;border:1px solid #c8943a38;border-radius:12px;min-width:130px;padding:6px;animation:.15s ease-in-out fadeIn;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #c8943a26}.room-menu p{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-radius:8px;margin:0;padding:8px 12px;font-family:Raleway,sans-serif;font-size:13px;font-weight:600;transition:background .15s;color:#000!important}.location-popup-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:200;background:#3d2a0f73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.location-popup{text-align:center;background:#fffaf3;border:1px solid #c8943a47;border-radius:20px;width:320px;padding:36px 32px;position:relative;overflow:hidden;box-shadow:0 8px 40px #c8943a26}.location-popup:before{content:"";background:linear-gradient(90deg,#0000,#c8943a,#0000);height:2px;position:absolute;top:0;left:10%;right:10%}.location-popup h2{color:#c8943a;letter-spacing:.05em;margin-bottom:20px;font-family:Playfair Display,serif;font-size:20px;font-weight:500}.location-input{color:#3d2a0f;background:#f5ede0;border:1.5px solid #c8943a40;border-radius:12px;outline:none;width:100%;margin-bottom:20px;padding:11px 14px;font-family:Raleway,sans-serif;font-size:15px;transition:border-color .2s}.location-input::placeholder{color:#5a3e1b61}.location-btn-group{gap:10px;display:flex}.location-save-btn{color:#fff;letter-spacing:.08em;cursor:pointer;background:#c8943a;border:none;border-radius:24px;flex:1;padding:11px;font-family:Raleway,sans-serif;font-size:14px;font-weight:600;transition:all .25s;box-shadow:0 4px 14px #c8943a38}.location-back-btn{color:#5a3e1b8c;letter-spacing:.08em;cursor:pointer;background:0 0;border:1.5px solid #c8943a4d;border-radius:24px;flex:1;padding:11px;font-family:Raleway,sans-serif;font-size:14px;font-weight:600;transition:all .25s}.location-back-btn:hover{color:#c8943a;border-color:#c8943a}.dashboard-back-btn{color:#5a3e1b80;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;z-index:1;background:0 0;border:1.5px solid #c8943a4d;border-radius:24px;margin-top:32px;padding:10px 28px;font-family:Raleway,sans-serif;font-size:12px;font-weight:600;transition:all .25s;position:relative}.dashboard-back-btn:hover{color:#c8943a;border-color:#c8943a}@media (width<=768px){.dashboard-title{font-size:24px}.device-grid{gap:10px;width:100%}}.error-text{color:#d9534f;text-align:left;margin-bottom:10px;font-size:13px;font-weight:500}.device-page,.room-page{color:#fff;background:linear-gradient(#3b2f2f,#2d6a4f,#081c15);flex-direction:column;justify-content:flex-start;align-items:center;width:100vw;min-height:100vh;padding-top:120px;display:flex}.radio-group{flex-direction:column;gap:15px;margin-top:20px;font-size:18px;display:flex}.room-title{letter-spacing:1px;margin-bottom:40px;font-size:42px;font-weight:600}.room-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:25px;width:100%;max-width:500px;margin-top:30px;display:grid}.room-card{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);cursor:pointer;background:#ffffff14;border-radius:16px;justify-content:center;align-items:center;width:140px;height:100px;font-size:18px;transition:all .3s;display:flex;position:relative}.room-card:hover{background:#ffffff26;transform:translateY(-5px)}.room-add-card{cursor:pointer;color:#fff;background:#ffffff1a;border:2px dashed #ffffff80;border-radius:12px;justify-content:center;align-items:center;width:160px;height:45px;margin-top:30px;font-size:14px;transition:all .3s;display:flex}.room-add-card:hover{background:#fff3;transform:translateY(-2px)}.room-add-card span{margin-top:5px;font-size:14px}.room-back-btn{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:10px;margin-top:20px;padding:10px 22px;font-size:14px;transition:all .25s}.room-back-btn:hover{background:#ffffff40}.room-container{flex-direction:column;align-items:center;gap:20px;display:flex}.location-popup-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background:#0000008c;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.location-popup{text-align:center;background:#fff;border-radius:18px;width:280px;padding:30px;animation:.25s popupFade;box-shadow:0 18px 40px #00000059}.location-popup h2{color:#2f4f4f;margin-bottom:25px;font-size:22px}.location-input{border:1px solid #ddd;border-radius:8px;outline:none;width:100%;padding:12px 14px;font-size:15px;transition:all .2s}.location-input:focus{border-color:#2ecc71;box-shadow:0 0 0 2px #2ecc7133}.location-btn-group{flex-direction:column;align-items:center;width:100%;display:flex}.location-save-btn{color:#fff;cursor:pointer;background:#2ecc71;border:none;border-radius:8px;width:100%;margin-top:20px;padding:12px 24px;font-size:15px;font-weight:600;transition:all .2s}.location-save-btn:hover{background:#27ae60;transform:translateY(-1px)}.location-back-btn{color:#555;cursor:pointer;background:0 0;border:none;margin-top:10px;font-size:14px;transition:all .2s}.location-back-btn:hover{color:#000;text-decoration:underline}@keyframes popupFade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.location-back-text{color:#7f8c8d;cursor:pointer;margin-top:14px;font-size:14px;transition:all .2s}.location-back-text:hover{color:#2c3e50}.controller-selection{justify-content:center;align-items:center;gap:30px;margin-top:20px;margin-bottom:60px;display:flex}.controller-card{cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff1f;border-radius:16px;padding:22px 40px;font-size:18px;transition:all .25s;box-shadow:0 10px 25px #00000040}.device-card{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);text-align:center;background:#ffffff1a;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:16px;width:360px;height:300px;margin-top:10px;padding:35px 30px;display:flex;box-shadow:0 15px 35px #00000040}.device-info{opacity:.8;margin-top:10px}.soil-value{margin-top:10px;font-size:30px;font-weight:700}.water-control{flex-direction:column;align-items:center;gap:8px;width:100%;margin-top:10px;display:flex}.water-control input{width:100%}.water-value{margin-top:5px;font-size:18px}.timer-input{border:none;border-radius:10px;width:160px;padding:10px 14px;font-size:16px}.water-btn{color:#fff;cursor:pointer;background:#2ecc71;border:none;border-radius:12px;margin-top:10px;padding:14px 28px;font-size:16px;transition:all .25s;box-shadow:0 8px 20px #00000040}.water-btn:hover{background:#27ae60;transform:translateY(-2px)}.controller-title{margin-bottom:10px;font-size:36px;font-weight:600}@media (width<=768px){.room-title{text-align:center;font-size:28px}.room-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));width:90%}.room-card{width:100%;height:90px;font-size:16px}.location-popup{width:90%;padding:25px}}.three-dot{color:#d1fae5;cursor:pointer;-webkit-user-select:none;user-select:none;opacity:.8;border-radius:50%;padding:6px;font-size:18px;position:absolute;top:10px;right:12px}.three-dot:hover{opacity:1;background:#ffffff1a}.room-menu{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:100;background:#ffffff14;border:1px solid #ffffff26;border-radius:10px;min-width:120px;padding:6px;animation:.15s fadeInMenu;position:absolute;top:35px;right:-120px;box-shadow:0 8px 20px #00000040}@keyframes fadeInMenu{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.room-menu:before{content:"";border:6px solid #0000;border-right-color:#ffffff1a;position:absolute;top:12px;left:-6px}.room-menu p{cursor:pointer;-webkit-user-select:none;user-select:none;color:#e6f4ea;white-space:nowrap;border-radius:6px;outline:none;margin:0;padding:8px 12px;font-size:14px}.room-menu p:hover{background:#ffffff26}.room-menu p:active,.room-menu p:focus{background:#fff3}.room-card-wrapper{display:inline-block;position:relative}.location-popup p{cursor:pointer;color:#333;border-radius:8px;padding:10px;font-weight:500;transition:all .2s}.location-popup p:hover{background:#f1f1f1}.control-page{color:#fff;background:linear-gradient(#3b2f2f,#2d6a4f,#081c15);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;display:flex}.control-title{margin-bottom:40px;font-size:40px}.control-card{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);text-align:center;background:#ffffff14;border-radius:20px;width:300px;padding:50px}.moisture-value{margin:20px 0;font-size:50px}.water-btn{color:#fff;cursor:pointer;background:#22c55e;border:none;border-radius:10px;padding:12px 25px;font-size:16px;transition:all .3s}.water-btn:hover{background:#16a34a}.start-btn{color:#fff;cursor:pointer;background:#22c55e;border:none;border-radius:10px;padding:12px 25px;font-size:16px;transition:all .3s}.start-btn:hover{background:#16a34a}.back-btn{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:8px;margin-top:40px;padding:10px 20px}.controller-container{flex-direction:column;align-items:center;gap:10px;display:flex}.controller-title{text-align:center;margin-bottom:5px;font-size:32px}.device-info{opacity:.8;margin-bottom:15px;font-size:16px}.room-back-btn{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:10px;align-self:center;margin-top:30px;padding:10px 22px}.room-back-btn1{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:10px;margin-top:20px;padding:10px 22px}.room-title{margin-bottom:40px}.timer-row{justify-content:center;gap:10px;margin-top:10px;display:flex}.timer-input{border:none;border-radius:10px;padding:10px}.add-btn{color:#fff;cursor:pointer;background:#22c55e;border:none;border-radius:10px;padding:10px 15px}.add-btn:disabled{opacity:.5}.schedule-item{background:#ffffff14;border-radius:10px;justify-content:space-between;align-items:center;margin-top:8px;padding:10px 15px;display:flex}.delete-btn{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:6px;padding:4px 8px}.no-schedule{opacity:.6;margin-top:10px;font-size:14px}.device-card{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);text-align:center;background:#ffffff14;border-radius:20px;flex-direction:column;align-items:center;gap:15px;width:360px;height:auto;min-height:200px;margin-top:10px;padding:40px;display:flex}.timer-label{margin-bottom:5px;font-size:18px}.schedule-item span{font-weight:500}.controller-selection{flex-direction:column;align-items:center;gap:25px;margin-top:40px;display:flex}.controller-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center;cursor:pointer;background:#ffffff14;border-radius:15px;width:320px;padding:18px;transition:all .3s}.controller-card:hover{background:#ffffff26;transform:translateY(-3px)}.watering-popup{color:#fff;z-index:999;background:#22c55e;border-radius:12px;padding:14px 25px;font-size:16px;position:fixed;bottom:30px;left:50%;transform:translate(-50%);box-shadow:0 8px 20px #0000004d}@keyframes fadeInOut{0%{opacity:0;transform:translate(-50%,20px)}20%{opacity:1;transform:translate(-50%)}80%{opacity:1}to{opacity:0;transform:translate(-50%,20px)}}.timer-control{flex-direction:column;gap:10px;width:100%;display:flex}.timer-input{color:#fff;background:#ffffff1f;border:none;border-radius:12px;outline:none;width:100%;padding:12px;font-size:15px}.timer-input option{color:#000}.add-btn{background:linear-gradient(135deg,#22c55e,#16a34a);border-radius:12px;width:100%;padding:12px;font-size:16px;font-weight:500;transition:all .3s}.add-btn:hover{transform:scale(1.03)}.schedule-list{width:100%;margin-top:20px}.schedule-item{background:#ffffff1f;border-radius:12px;justify-content:space-between;align-items:center;margin-top:10px;padding:12px 16px;transition:all .3s;display:flex}.schedule-item:hover{background:#ffffff2e}.delete-btn{background:#ef4444;border-radius:8px;padding:6px 10px;transition:all .2s}.delete-btn:hover{background:#dc2626}.countdown-box{text-align:center;background:#22c55e26;border:1px solid #22c55e;border-radius:12px;margin-top:15px;padding:12px;font-size:18px;font-weight:500;box-shadow:0 0 15px #22c55e80}.stop-btn{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:12px;width:100%;margin-top:10px;padding:10px;font-size:15px;transition:all .3s}.stop-btn:hover{background:#dc2626}.stop-soil-btn{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:12px;width:50%;margin-top:10px;padding:10px;font-size:15px;transition:all .3s}.stop-soil-btn:hover{background:#dc2626}.timer-label{opacity:.9;text-align:left;width:100%;font-size:16px}.timer-layout{justify-content:center;align-items:flex-start;gap:20px;display:flex}.left-panel{flex-direction:column;flex:1;gap:15px;display:flex}.schedule-box{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:15px;flex-direction:column;gap:10px;width:180px;min-height:200px;margin-top:10px;padding:15px;display:flex}.schedule-box h3{text-align:center;opacity:.9;margin-bottom:5px;font-size:16px}.schedule-box .schedule-item{border-radius:8px;padding:8px;font-size:14px}.inline-popup{color:#fff;text-align:center;background:#22c55e;border-radius:10px;margin-top:15px;padding:12px;font-size:14px;animation:.3s fadeIn}@media (width<=768px){.controller-selection{flex-direction:column;gap:15px}.controller-card{width:90%}.device-card{width:90%;padding:20px}.timer-layout{flex-direction:column;align-items:center}.schedule-box{width:90%}}.adddevice-page{background:#f5ede0;justify-content:center;align-items:center;width:100vw;height:100vh;font-family:Raleway,sans-serif;display:flex;position:relative;overflow:hidden}.adddevice-page:before{content:"";pointer-events:none;z-index:0;background-image:radial-gradient(at 30% 60%,#c8943a17 0%,#0000 55%),radial-gradient(at 75% 25%,#4a9a5012 0%,#0000 50%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100'%3E%3Cpath d='M28 0 L56 16 L56 48 L28 64 L0 48 L0 16Z' fill='none' stroke='rgba(200,148,58,0.09)' stroke-width='0.8'/%3E%3C/svg%3E");background-size:auto,auto,56px 100px;position:absolute;inset:0}.adddevice-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1;background:#fff8edeb;border:1px solid #c8943a40;border-radius:20px;flex-direction:column;align-items:center;width:350px;padding:50px;display:flex;position:relative;box-shadow:0 8px 40px #c8943a1f,0 2px 12px #c8943a12}.adddevice-card:before{content:"";background:linear-gradient(90deg,#0000,#4a9a50,#0000);border-radius:0 0 2px 2px;height:2px;position:absolute;top:0;left:10%;right:10%}.adddevice-title{color:#c8943a;text-align:center;letter-spacing:.04em;margin-bottom:30px;font-family:Playfair Display,serif;font-size:26px;font-weight:500;line-height:1.3}.adddevice-input{color:#3d2a0f;background:#f5ede0;border:1.5px solid #c8943a40;border-radius:12px;outline:none;width:100%;margin-bottom:20px;padding:12px 14px;font-family:Raleway,sans-serif;font-size:15px;transition:border-color .2s}.adddevice-input:focus{border-color:#c8943a;box-shadow:0 0 0 3px #c8943a1a}.adddevice-input::placeholder{color:#5a3e1b61}.adddevice-btn{color:#fff;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:#4a9a50;border:none;border-radius:24px;width:100%;margin-bottom:14px;padding:13px;font-family:Raleway,sans-serif;font-size:15px;font-weight:600;transition:all .25s;box-shadow:0 4px 16px #4a9a5038}.adddevice-btn:hover{background:#357a3a;transform:translateY(-1px);box-shadow:0 6px 22px #4a9a5052}.adddevice-btn:active{transform:translateY(0)}.adddevice-back{color:#5a3e1b73;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;font-family:Raleway,sans-serif;font-size:12px;font-weight:600;transition:all .25s}.adddevice-back:hover{color:#c8943a}@media (width<=768px){.adddevice-card{width:90%;padding:32px 24px}.adddevice-title{font-size:22px}}
