:root{--bg:#07101d;--panel:#101d2e;--panel2:#14243a;--text:#eef6ff;--muted:#91a4bb;--line:#253850;--accent:#32d19a;--accent2:#1ea979;--danger:#ff6c7b;--shadow:0 20px 60px rgba(0,0,0,.28)}
*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;min-height:100vh;background:radial-gradient(circle at 15% 0,#102b3a 0,transparent 36%),var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input{font:inherit}a{color:inherit;text-decoration:none}.topbar{height:82px;padding:0 max(22px,calc((100vw - 1160px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.07);background:rgba(7,16,29,.82);backdrop-filter:blur(16px);position:sticky;top:0;z-index:10}.logo{font-weight:750;letter-spacing:-.02em;display:flex;align-items:center;gap:12px}.logo img{width:112px;height:68px;object-fit:contain;object-position:left center}.logo .app-title{color:var(--muted);font-size:13px;padding-left:12px;border-left:1px solid var(--line)}.top-actions{display:flex;gap:8px}.ghost{padding:10px 13px;border-radius:10px;color:var(--muted)}.ghost:hover{background:rgba(255,255,255,.06);color:var(--text)}.danger-text{color:#ff9aa5}.container{width:min(1160px,calc(100% - 36px));margin:0 auto;padding:42px 0 80px}.hero{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:30px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:12px;color:var(--accent);margin:0 0 9px}.hero h1,.auth-card h1{font-size:clamp(32px,6vw,46px);line-height:1;margin:0;letter-spacing:-.045em}.muted{color:var(--muted);line-height:1.55}.summary-pill{padding:10px 14px;background:var(--panel);border:1px solid var(--line);border-radius:99px;color:var(--muted);font-size:14px}.pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:8px;box-shadow:0 0 0 5px rgba(50,209,154,.1)}.device-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px}.device-card,.connect-card,.empty-card{background:linear-gradient(145deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.device-card{padding:20px}.device-card.offline{opacity:.62}.device-head{display:flex;align-items:center;gap:13px;margin-bottom:22px}.device-icon,.connect-icon{width:45px;height:45px;border-radius:14px;background:rgba(50,209,154,.1);color:var(--accent);display:grid;place-items:center;font-size:24px}.device-title{min-width:0;flex:1}.device-title h2{font-size:17px;margin:0 0 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-title p{font-size:12px;color:var(--muted);margin:0}.status-dot{width:9px;height:9px;border-radius:50%;background:#536579}.status-dot.online{background:var(--accent);box-shadow:0 0 12px rgba(50,209,154,.7)}.single-control,.channel-row{display:flex;align-items:center;justify-content:space-between}.single-control{border-top:1px solid var(--line);padding-top:18px}.single-control strong{display:block;font-size:15px}.single-control small{display:block;color:var(--muted);margin-top:3px}.switch{border:0;width:54px;height:31px;border-radius:99px;background:#34485f;padding:3px;cursor:pointer;transition:.2s}.switch span{display:block;width:25px;height:25px;background:white;border-radius:50%;transition:.2s;box-shadow:0 2px 8px rgba(0,0,0,.3)}.switch.active{background:var(--accent2)}.switch.active span{transform:translateX(23px)}.switch.small{width:46px;height:27px}.switch.small span{width:21px;height:21px}.switch.small.active span{transform:translateX(19px)}.switch:disabled{cursor:not-allowed}.channels{display:grid;gap:9px}.channel-row{background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.05);border-radius:12px;padding:10px 12px;font-size:14px}.unsupported{color:var(--muted);font-size:13px;border-top:1px solid var(--line);padding-top:17px}.connect-card{padding:28px;display:flex;align-items:center;gap:20px}.connect-card>div:nth-child(2){flex:1}.connect-card h2,.empty-card h2{margin:0 0 7px}.connect-card p,.empty-card p{margin:0;color:var(--muted);line-height:1.5}.connect-icon{width:64px;height:64px;font-size:34px}.empty-card{text-align:center;padding:55px 24px}.primary{border:0;background:var(--accent);color:#03251a;border-radius:12px;padding:13px 18px;font-weight:750;cursor:pointer}.primary:hover{background:#45e1aa}.primary:disabled{opacity:.5;cursor:not-allowed}.full{width:100%;margin-top:8px}.alert{padding:13px 16px;border-radius:12px;margin:0 0 20px;border:1px solid}.alert.success{background:rgba(50,209,154,.09);border-color:rgba(50,209,154,.25);color:#8df0cd}.alert.error{background:rgba(255,108,123,.08);border-color:rgba(255,108,123,.26);color:#ffb4bd}.auth-page{display:grid;place-items:center;padding:25px}.auth-card{width:min(440px,100%);background:linear-gradient(145deg,var(--panel2),var(--panel));padding:34px;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.install-card{width:min(700px,100%)}.auth-logo{display:block;width:min(250px,75%);height:142px;object-fit:contain;object-position:left center;margin:0 0 20px}.auth-card h1{font-size:36px}.auth-card form{display:grid;gap:15px;margin-top:24px}.auth-card label{display:grid;gap:7px;color:#c9d5e4;font-size:13px;font-weight:650}.auth-card input{width:100%;background:#081421;border:1px solid var(--line);color:var(--text);border-radius:11px;padding:13px 14px;outline:none}.auth-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(50,209,154,.1)}.auth-card input[readonly]{color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.requirements{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;margin:22px 0;font-size:13px;color:var(--muted)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px}.dot.ok{background:var(--accent)}.dot.bad{background:var(--danger)}
@media(max-width:680px){.topbar{height:62px;padding:0 16px}.ghost{padding:9px}.container{width:min(100% - 26px,1160px);padding-top:28px}.hero{align-items:flex-start;gap:18px}.hero .muted{max-width:230px}.summary-pill{white-space:nowrap}.connect-card{align-items:flex-start;flex-wrap:wrap}.connect-card form,.connect-card button{width:100%}.form-grid,.requirements{grid-template-columns:1fr}.auth-card{padding:26px 22px}.device-grid{grid-template-columns:1fr}}
.room-section{margin-bottom:34px}.room-heading{display:flex;align-items:center;justify-content:space-between;margin:0 2px 13px}.room-heading h2{font-size:20px;margin:0;letter-spacing:-.02em}.room-heading span{font-size:12px;color:var(--muted)}.compact-hero{margin-bottom:24px}.organize-container{max-width:940px}.settings-section{background:linear-gradient(145deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:20px;padding:22px;margin-bottom:18px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.section-title h2{margin:0 0 5px;font-size:20px}.section-title p{margin:0;color:var(--muted);font-size:13px}.add-room-form{display:flex;gap:10px}.add-room-form input,.room-edit-row input,.device-setting-fields input,.device-setting-fields select{width:100%;background:#081421;border:1px solid var(--line);color:var(--text);border-radius:11px;padding:12px 13px;outline:none}.add-room-form input:focus,.room-edit-row input:focus,.device-setting-fields input:focus,.device-setting-fields select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(50,209,154,.1)}.room-editor{display:grid;gap:10px}.room-edit-row{display:grid;grid-template-columns:1fr 90px auto;gap:10px;align-items:end;padding-bottom:10px;border-bottom:1px solid var(--line)}.room-edit-row:last-of-type{padding-bottom:0;border-bottom:0}.room-edit-row label,.device-setting-fields label{display:grid;gap:6px;color:var(--muted);font-size:12px}.icon-danger{height:43px;border:1px solid rgba(255,108,123,.28);background:rgba(255,108,123,.07);color:#ff9aa5;border-radius:11px;padding:0 13px;cursor:pointer}.device-settings-list{display:grid;gap:12px}.device-setting-card{border:1px solid var(--line);background:rgba(4,12,22,.3);border-radius:16px;padding:16px}.device-setting-head{display:flex;align-items:center;gap:12px}.device-setting-head>div:nth-child(2){min-width:0;flex:1}.device-setting-head strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-setting-head small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.visibility-toggle{display:flex;align-items:center;gap:8px;cursor:pointer}.visibility-toggle input{position:absolute;opacity:0;pointer-events:none}.visibility-toggle span{width:38px;height:23px;border-radius:99px;background:#34485f;padding:3px;transition:.2s}.visibility-toggle span:after{content:"";display:block;width:17px;height:17px;background:white;border-radius:50%;transition:.2s}.visibility-toggle input:checked+span{background:var(--accent2)}.visibility-toggle input:checked+span:after{transform:translateX(15px)}.visibility-toggle em{font-style:normal;color:var(--muted);font-size:12px}.device-setting-fields{display:grid;grid-template-columns:1.4fr 1fr 90px;gap:10px;margin-top:15px}.save-bar{position:sticky;bottom:14px;background:rgba(16,29,46,.94);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:16px;padding:13px 14px;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:var(--shadow);z-index:5}.save-bar span{color:var(--muted);font-size:12px}
.sensor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:-5px 0 18px}.sensor-chip{display:flex;align-items:center;gap:9px;padding:11px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.06);border-radius:13px}.sensor-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:rgba(50,209,154,.1);color:var(--accent)}.sensor-chip div{min-width:0}.sensor-chip small{display:block;color:var(--muted);font-size:10px;margin-bottom:2px}.sensor-chip strong{font-size:18px}.sensor-chip strong span{font-size:11px;color:var(--muted);margin-left:3px}.rf-controls{border-top:1px solid var(--line);padding-top:17px}.rf-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.rf-title strong{font-size:14px}.rf-title small{font-size:11px;color:var(--muted)}.rf-buttons{display:grid;gap:8px}.rf-buttons form{margin:0}.rf-button{width:100%;display:flex;align-items:center;gap:9px;border:1px solid rgba(50,209,154,.23);background:rgba(50,209,154,.08);color:var(--text);border-radius:12px;padding:11px 12px;font-weight:650;cursor:pointer;text-align:left}.rf-button:hover{background:rgba(50,209,154,.14);border-color:rgba(50,209,154,.4)}.rf-button span{color:var(--accent);font-size:18px}.rf-button:disabled{opacity:.48;cursor:not-allowed}
.channel-name-editor{margin-top:15px;padding-top:15px;border-top:1px solid var(--line)}.channel-name-editor>strong{font-size:13px}.channel-name-editor>p{margin:3px 0 11px;color:var(--muted);font-size:11px}.channel-name-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.channel-name-grid label{display:grid;gap:5px;color:var(--muted);font-size:11px}.channel-name-grid input{width:100%;background:#081421;border:1px solid var(--line);color:var(--text);border-radius:10px;padding:10px 11px;outline:none}.channel-name-grid input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(50,209,154,.1)}
@keyframes command-feedback{0%{transform:scale(1)}45%{transform:scale(.91);filter:brightness(1.45);box-shadow:0 0 0 7px rgba(50,209,154,.14)}100%{transform:scale(1)}}.command-feedback{animation:command-feedback .28s ease-out}
@media(max-width:680px){.topbar{height:68px;padding:0 10px}.logo{gap:0}.logo img{width:80px;height:54px}.logo .app-title{display:none}.top-actions{gap:0}.ghost{padding:9px 6px;font-size:11px}.container{width:min(100% - 26px,1160px);padding-top:28px}.hero{align-items:flex-start;gap:18px}.hero .muted{max-width:230px}.summary-pill{white-space:nowrap}.connect-card{align-items:flex-start;flex-wrap:wrap}.connect-card form,.connect-card button{width:100%}.form-grid,.requirements{grid-template-columns:1fr}.auth-card{padding:26px 22px}.auth-logo{width:min(230px,84%);height:130px}.device-grid{grid-template-columns:1fr}.add-room-form{flex-direction:column}.add-room-form button{width:100%}.room-edit-row{grid-template-columns:1fr 72px}.room-edit-row .icon-danger{grid-column:1/-1}.device-setting-fields{grid-template-columns:1fr 80px}.device-setting-fields label:first-child{grid-column:1/-1}.channel-name-grid{grid-template-columns:1fr}.visibility-toggle em{display:none}.save-bar{bottom:8px}.save-bar span{display:none}.save-bar button{width:100%}}
