:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#102734;background:#eaf7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% -15%,#fff 0,#eaf7fb 45%,#d5edf5 100%)}button,input{font:inherit}.app-shell{width:min(100%,520px);min-height:100vh;margin:auto;padding:calc(20px + env(safe-area-inset-top)) 18px calc(28px + env(safe-area-inset-bottom))}.brand{display:flex;align-items:center;gap:12px;padding:4px 2px 18px}.brand img{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 5px 8px #107da82d)}.brand h1,.brand p{margin:0}.brand h1{font-size:1.15rem;line-height:1.1}.eyebrow{color:#087fa9;font-size:.7rem;font-weight:800;letter-spacing:.28em}.install{margin-left:auto;border:1px solid #b4d9e6;background:#fff;color:#087fa9;border-radius:999px;padding:8px 13px;font-weight:700}.connection-card,.control-panel,.diagnostics{background:#fff;border:1px solid #cfe7ef;border-radius:24px;box-shadow:0 18px 50px #0e72951a}.connection-card{padding:19px}.status-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}.status-row div{display:grid;gap:2px}.status-row small{color:#627984}.status-dot{width:12px;height:12px;border-radius:50%;background:#8ca0a8;box-shadow:0 0 0 5px #edf1f3}.status-dot.connecting{background:#f2a93b;box-shadow:0 0 0 5px #fff1d8;animation:pulse 1.3s infinite}.status-dot.connected{background:#20a86b;box-shadow:0 0 0 5px #ddf6ea}@keyframes pulse{50%{opacity:.45}}.connect-button{width:100%;min-height:58px;border:0;border-radius:17px;background:linear-gradient(135deg,#32acd6,#078cbd);color:#fff;font-weight:750;font-size:1.05rem;display:flex;align-items:center;justify-content:center;gap:12px;box-shadow:0 10px 24px #0898c345}.connect-button:active{transform:translateY(1px)}.bluetooth-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#ffffff24;font-size:1.5rem}.support-message{margin:13px 2px 0;padding:11px 12px;background:#fff3db;color:#65450e;border-radius:12px;font-size:.88rem;line-height:1.4}.control-panel{margin-top:16px;padding:20px 14px 18px}.control-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 6px}.appliance-button{border:0;background:transparent;color:#24404c;display:flex;flex-direction:column;align-items:center;gap:6px;padding:3px;border-radius:18px;font-size:.79rem;font-weight:700}.appliance-button img{width:min(100%,90px);aspect-ratio:1;filter:drop-shadow(0 8px 9px #163f4e20);transition:transform .15s}.appliance-button:not(:disabled):active img{transform:scale(.92)}.appliance-button:disabled{opacity:.42}.appliance-button.active{color:#0389b8}.light-level{margin:21px 10px 0;padding:16px 14px;background:#f1f9fc;border-radius:17px}.light-level label{display:flex;justify-content:space-between;font-weight:750;font-size:.9rem}.light-level output{color:#078ebc}.light-level input{width:100%;margin-top:13px;accent-color:#0798ca}.diagnostics{margin-top:16px;padding:15px 17px}.diagnostics summary{cursor:pointer;font-weight:750;color:#36525e}.diagnostic-actions{display:flex;gap:8px;margin:12px 0 8px}.diagnostic-actions button{border:1px solid #c7e1ea;background:#f6fbfd;border-radius:9px;padding:7px 10px;color:#315561}.diagnostics pre{white-space:pre-wrap;word-break:break-word;max-height:220px;overflow:auto;margin:0;padding:12px;background:#102734;color:#d8eff6;border-radius:12px;font:11px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.privacy{text-align:center;color:#67808a;font-size:.76rem;line-height:1.45;margin:18px 24px 0}@media(max-width:360px){.app-shell{padding-inline:12px}.control-grid{gap:10px 2px}.appliance-button span{font-size:.72rem}}@media(display-mode:standalone){.install{display:none!important}}
.app-splash{position:fixed;inset:0;z-index:9999;display:grid;place-content:center;justify-items:center;gap:34px;background:#eaf7fb;transition:opacity .35s ease,visibility .35s ease}.app-splash.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.app-splash img{width:128px;height:128px;object-fit:contain;image-rendering:auto}.splash-progress{width:148px;height:3px;overflow:hidden;border-radius:999px;background:#087fa91c}.splash-progress span{display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#65d6ee,#087fa9);animation:splash-load 1.15s cubic-bezier(.65,0,.35,1) infinite}@keyframes splash-load{0%{transform:translateX(-120%)}100%{transform:translateX(340%)}}@media(prefers-reduced-motion:reduce){.splash-progress span{animation:none;width:100%}.app-splash{transition:none}}
