*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:#f5f7fb;color:#18212f}.wrap{max-width:1050px;margin:0 auto;padding:32px 20px}header,.toolbar{display:flex;align-items:center;justify-content:space-between}.card{background:#fff;border:1px solid #e2e7ef;border-radius:14px;padding:22px;margin:18px 0;box-shadow:0 4px 18px #18212f0d}#login{max-width:460px;margin:70px auto}label{display:block;margin:16px 0;font-weight:600}input{display:block;width:100%;margin-top:7px;padding:12px;border:1px solid #ccd4df;border-radius:9px;font:inherit}button{border:0;border-radius:9px;padding:11px 16px;background:#18212f;color:#fff;font-weight:700;cursor:pointer}.ghost{background:#e8edf4;color:#18212f}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.project{margin:0}.error{color:#b42318;margin-top:14px}.debug{white-space:pre-wrap;background:#111827;color:#d1fae5;padding:18px;border-radius:12px;max-height:440px;overflow:auto}[hidden]{display:none!important}
.project.selected{outline:2px solid currentColor;transform:translateY(-1px)}
.project-pane{margin-top:18px}.widgets{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.device-list>div{padding:8px 0;border-bottom:1px solid #e7e9ee}.device-list>div:last-child{border-bottom:0}.debug-wrap{margin-top:18px}.debug-wrap .debug{margin:12px 0 0;max-height:520px;overflow:auto;white-space:pre-wrap;word-break:break-word}
.project-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:28px 0 12px}.view-tabs{display:flex;gap:8px;flex-wrap:wrap}.view-tabs button.active{box-shadow:0 0 0 3px #cdd7e5}.secondary{background:#e9eef5;color:#18212f}.live-status{display:flex;align-items:center;justify-content:space-between;gap:15px}.live-status strong{margin-right:12px}.live-status span{opacity:.7}.live-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.pin{font-size:.82rem;font-weight:800;background:#eef2f7;padding:5px 8px;border-radius:8px}.state{font-size:.76rem;font-weight:900;padding:5px 8px;border-radius:999px}.state.on{background:#dcfce7;color:#166534}.state.off{background:#f1f5f9;color:#475569}.state.unknown{background:#fef3c7;color:#92400e}.manage-list{margin-top:18px}.manage-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid #e6eaf0}.manage-row:last-child{border-bottom:0}.manage-row small{display:block;opacity:.6;margin-top:4px}.hint{opacity:.7}.modal-backdrop{position:fixed;inset:0;background:#0f172a80;display:grid;place-items:center;padding:20px;z-index:999}.modal{width:min(460px,100%);background:#fff;border-radius:16px;padding:24px;box-shadow:0 25px 80px #0005}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}@media(max-width:650px){.project-head,.live-status{align-items:stretch;flex-direction:column}.view-tabs{width:100%}.view-tabs button{flex:1}.wrap{padding:20px 14px}}
.inline-control{display:flex;gap:8px;align-items:center}.inline-control input,.inline-control select{flex:1}.editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.modal.wide{max-width:760px}.modal textarea{width:100%;font-family:monospace}.danger{background:#9b1c1c}@media(max-width:700px){.editor-grid{grid-template-columns:1fr}}

.toolbar-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.energy-badge{display:inline-flex;align-items:center;padding:9px 12px;border-radius:999px;background:#fff7d6;border:1px solid #f2d36b;font-weight:800}.widget-catalog{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;max-height:55vh;overflow:auto;margin-top:16px}.catalog-item{display:grid;text-align:left;gap:4px;background:#f7f9fc;color:#18212f;border:1px solid #dce3ec}.catalog-item:hover{outline:2px solid #cdd7e5}.catalog-item span{font-size:.72rem;opacity:.6}.catalog-item strong{color:#8a6400}.modal textarea{padding:12px;border:1px solid #ccd4df;border-radius:9px}.modal{max-height:92vh;overflow:auto}@media(max-width:650px){.toolbar{align-items:flex-start;gap:12px;flex-direction:column}.toolbar-actions{width:100%}}
/* V14 interface refinement */
:root{--bg:#f4f6f9;--surface:#fff;--text:#151922;--muted:#6d7582;--line:#e3e7ed;--accent:#12a67a;--danger:#c43d3d}body{background:var(--bg);color:var(--text)}.wrap{max-width:1180px}header{padding:20px 0}header h1{letter-spacing:-.04em}header h1 small{font-weight:500;color:var(--muted)}.card{border:1px solid var(--line);box-shadow:0 4px 18px rgba(20,30,45,.045);background:var(--surface)}button{font-weight:650}.secondary,.ghost{background:#eef1f5;color:#252b35}.energy-badge{background:#fff9e7;border-color:#eadca6;color:#6d5815}.project.selected{outline:2px solid var(--accent);outline-offset:-2px}.count{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:99px;background:#eef1f5;font-size:.75em;color:var(--muted)}.modal-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.modal-title h3{margin:0}.modal-title small{color:var(--muted)}.icon-btn{width:36px;height:36px;padding:0;border-radius:50%;background:#eef1f5;color:#313844;font-size:24px;line-height:1}.modal-actions .spacer{flex:1}.catalog-item[data-low="1"]{opacity:.52}.dashboard-tabs{display:flex;gap:4px;overflow:auto;padding:5px;margin:12px 0 16px;background:#e9edf2;border-radius:12px}.dashboard-tabs button{white-space:nowrap;background:transparent;color:#555f6c;box-shadow:none}.dashboard-tabs button.active{background:#fff;color:#151922;box-shadow:0 1px 5px rgba(20,30,45,.12)}.empty-state{grid-column:1/-1;display:grid;place-items:center;text-align:center;gap:5px;min-height:160px;border:1px dashed #cbd2dc;border-radius:12px;color:var(--muted)}.empty-state strong{color:var(--text)}.toast-host{position:fixed;right:22px;bottom:22px;z-index:9999;display:grid;gap:10px}.toast{transform:translateY(10px);opacity:0;transition:.2s ease;background:#17201e;color:#fff;padding:12px 16px;border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.2);font-weight:650}.toast.show{transform:none;opacity:1}.toast.error{background:#8f2929}.debug-wrap{opacity:.7}@media(max-width:650px){.toast-host{left:12px;right:12px;bottom:12px}.toast{text-align:center}.dashboard-tabs{margin-left:-2px;margin-right:-2px}}
/* V15 account access */
.auth-card{max-width:480px!important;padding:30px!important}.auth-brand h2{margin:0 0 7px;font-size:1.65rem}.auth-brand p,.auth-copy{color:var(--muted);line-height:1.5}.auth-form{margin-top:22px}.auth-primary{width:100%;min-height:46px;background:var(--accent)}.text-btn{background:transparent;color:#596270;padding:9px 0;font-weight:600}.auth-form>.text-btn{width:100%;text-align:center;margin-top:4px}.auth-switch{border-top:1px solid var(--line);margin-top:20px;padding-top:13px;text-align:center}.auth-success{color:#167554;background:#eaf8f2;border-radius:9px;padding:10px 12px;margin-top:14px;display:none}.auth-success:not(:empty){display:block}
/* V16 — device management */
.device-list{display:grid;gap:10px;margin-top:14px}.device-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--line,#e5e7eb);border-radius:14px;background:var(--card,#fff)}.device-main{display:flex;align-items:center;gap:12px;min-width:0}.device-main div{display:grid;gap:3px}.device-main small{opacity:.68}.status-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto;background:#9ca3af;box-shadow:0 0 0 4px rgba(156,163,175,.12)}.status-dot.online{background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.12)}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.config-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:12px;padding:14px;border:1px solid var(--line,#e5e7eb);border-radius:14px;margin-bottom:14px}.config-grid label{margin:0}.advanced-json{margin-top:8px}.advanced-json summary{cursor:pointer;font-weight:600;padding:8px 0}.modal select{width:100%}@media(max-width:720px){.device-row{align-items:flex-start;flex-direction:column}.row-actions{width:100%}.config-grid{grid-template-columns:1fr}.row-actions button{flex:1}}

/* V16.1 visual layer — isolated from Blynk application logic */
:root{--blynk:#2de3a3;--blynk2:#14b981;--ink:#071713}
html,body{min-height:100%}body{min-height:100vh;display:flex;flex-direction:column}
.wrap{width:100%;flex:1;position:relative;z-index:2;max-width:1180px}
.ambient-bg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:radial-gradient(circle at 76% 30%,rgba(45,227,163,.19),transparent 28%),radial-gradient(circle at 12% 78%,rgba(15,110,91,.22),transparent 30%),linear-gradient(135deg,#06120f 0%,#0a211b 48%,#071511 100%)}
.ambient-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,17,14,.96),rgba(5,20,16,.72))}
.ambient-bg i{position:absolute;border-radius:50%;background:rgba(40,230,161,.12);box-shadow:0 0 100px rgba(40,230,161,.25)}
.ambient-bg i:nth-child(1){width:420px;height:420px;right:-100px;top:8%}.ambient-bg i:nth-child(2){width:250px;height:250px;left:42%;bottom:-80px}.ambient-bg i:nth-child(3){width:120px;height:120px;left:8%;top:18%}
.circuit-grid{position:absolute;inset:0;opacity:.14;background-image:linear-gradient(rgba(42,231,163,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(42,231,163,.2) 1px,transparent 1px);background-size:64px 64px}
.site-header{min-height:72px;padding:8px 0;color:#fff}.brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none;font-size:1.35rem;font-weight:850}.brand small{color:var(--blynk);font-size:inherit}.brand-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,#35f0ad,#16bf86);color:#052018;font-weight:950;box-shadow:0 8px 28px rgba(40,230,161,.22)}
.header-actions{display:flex;align-items:center;gap:12px}.lang-switch{display:flex;align-items:center;gap:5px;padding:4px;border:1px solid rgba(255,255,255,.14);background:rgba(3,15,12,.42);border-radius:999px}.lang-switch span{width:1px;height:16px;background:rgba(255,255,255,.16)}.lang-switch button{padding:6px 9px;border-radius:999px;background:transparent;color:#a9bbb5;font-size:.75rem}.lang-switch button.active{background:rgba(40,230,161,.16);color:var(--blynk)}
.guest-shell{min-height:calc(100vh - 170px);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,470px);align-items:center;gap:8vw;padding:4vh 0 8vh}.hero-copy{color:#fff;max-width:610px}.eyebrow,.section-kicker{display:block;color:var(--blynk);font-size:.72rem;font-weight:850;letter-spacing:.16em;margin-bottom:15px}.hero-copy h1{font-size:clamp(2.5rem,5.4vw,5rem);line-height:.98;letter-spacing:-.055em;margin:0 0 24px}.hero-copy h1 em{font-style:normal;color:var(--blynk)}.hero-copy>p{max-width:540px;color:#b9c8c3;font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.65}.hero-features{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}.hero-features>div{min-width:155px;display:flex;align-items:center;gap:11px;padding:12px 14px;border:1px solid rgba(80,230,179,.13);border-radius:14px;background:rgba(5,24,19,.38)}.feature-icon{width:35px;height:35px;border-radius:10px;display:grid;place-items:center;color:var(--blynk);border:1px solid rgba(40,230,161,.28)}.hero-features strong,.hero-features small{display:block}.hero-features small{font-size:.72rem;color:#8ea59d;margin-top:3px}
#login.auth-card{width:100%;max-width:470px!important;margin:0!important;padding:34px!important;border:1px solid rgba(77,229,177,.18);border-radius:26px;background:rgba(7,28,22,.82);box-shadow:0 30px 80px rgba(0,0,0,.28);color:#fff}.auth-logo{display:flex;justify-content:center;margin-bottom:16px}.auth-brand{text-align:center}.auth-brand h2{font-size:1.75rem}.auth-brand p,.auth-copy{color:#93aaa2}#login label{color:#dce9e4}#login input{color:#fff;background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.13);outline:none}#login input:focus{border-color:var(--blynk);box-shadow:0 0 0 3px rgba(45,227,163,.1)}#login .auth-primary{background:linear-gradient(135deg,#35e8aa,#19c98e);color:#052018}#login .text-btn{color:#79e8c1}.secure-note{display:flex;justify-content:center;gap:7px;color:#6f8f84;font-size:.72rem;margin-top:16px}.secure-note>span:first-child{color:var(--blynk)}
.site-footer{position:relative;z-index:3;min-height:58px;padding:14px max(20px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:18px;color:#80978f;background:rgba(3,15,12,.9);border-top:1px solid rgba(40,230,161,.14);font-size:.76rem}.footer-dot{margin:0 6px}.footer-tag{letter-spacing:.08em}.footer-lang{display:none}
body.is-authenticated{background:#f2f6f4}.is-authenticated .ambient-bg{display:none}.is-authenticated .site-header{color:#10211b;border-bottom:1px solid #e1ebe7}.is-authenticated .brand{color:#10211b}.is-authenticated .lang-switch{border-color:#dce7e3;background:#fff}.is-authenticated .lang-switch span{background:#dce7e3}.is-authenticated .lang-switch button{color:#64756f}.is-authenticated .lang-switch button.active{color:#087853;background:#e8faf3}.is-authenticated #app{padding-top:24px}.is-authenticated .toolbar{padding:22px 24px;background:#fff;border:1px solid #e1ebe7;border-radius:20px}.is-authenticated .site-footer{background:#071713}
@media(max-width:850px){.guest-shell{grid-template-columns:1fr;gap:30px;padding:4vh 0 7vh}.hero-copy{text-align:center;margin:auto}.hero-copy>p{margin-left:auto;margin-right:auto}.hero-features{justify-content:center}#login.auth-card{margin:auto!important}.site-footer{flex-wrap:wrap;justify-content:center;text-align:center}.footer-tag{display:none}}
@media(max-width:560px){.wrap{padding:14px 16px}.site-header{min-height:58px}.brand{font-size:1.05rem}.brand-mark{width:34px;height:34px}.guest-shell{min-height:auto;padding:3vh 0 5vh}.hero-copy h1{font-size:2.5rem}.hero-features{display:grid;grid-template-columns:1fr 1fr}.hero-features>div{min-width:0;text-align:left}.hero-features>div:last-child{grid-column:1/-1}#login.auth-card{padding:25px 20px!important}.site-footer{padding:14px 16px}.site-footer>div:first-child{width:100%}.footer-lang{display:flex}.header-actions .lang-switch{display:none}.is-authenticated .header-actions .lang-switch{display:flex}}

/* V16.2 — responsive cinematic shell + authenticated dashboard theme */
@media (min-width:851px) and (min-height:700px){
  body.is-guest{height:100svh;min-height:100svh;overflow:hidden}
  body.is-guest .wrap{height:calc(100svh - 54px);min-height:0;display:flex;flex-direction:column}
  body.is-guest .site-header{height:62px;min-height:62px;flex:0 0 62px;padding:8px 0}
  body.is-guest .guest-shell{flex:1;min-height:0;height:auto;padding:8px 0 14px;gap:clamp(34px,6vw,90px)}
  body.is-guest .hero-copy h1{font-size:clamp(2.55rem,4.2vw,4.35rem);margin-bottom:16px}
  body.is-guest .hero-copy>p{font-size:clamp(.92rem,1.15vw,1.08rem);line-height:1.5}
  body.is-guest .hero-features{margin-top:20px}
  body.is-guest .hero-features>div{padding:9px 11px}
  body.is-guest #login.auth-card{padding:clamp(20px,2.5vh,30px)!important;max-height:calc(100svh - 128px);overflow:auto;scrollbar-width:thin}
  body.is-guest .auth-logo{margin-bottom:9px}
  body.is-guest .auth-brand h2{font-size:1.5rem;margin-bottom:4px}
  body.is-guest .auth-brand p{margin:0}
  body.is-guest .auth-form{margin-top:14px}
  body.is-guest .auth-form label{margin-bottom:10px}
  body.is-guest #login input{min-height:42px}
  body.is-guest .auth-switch{margin-top:13px;padding-top:9px}
  body.is-guest .secure-note{margin-top:8px}
  body.is-guest .site-footer{position:fixed;left:0;right:0;bottom:0;height:54px;min-height:54px;padding-top:8px;padding-bottom:8px}
}
@media (min-width:851px) and (max-height:760px){
  body.is-guest .hero-copy h1{font-size:clamp(2.25rem,3.8vw,3.55rem)}
  body.is-guest .hero-features{margin-top:14px}.hero-features>div{padding:7px 10px}
  body.is-guest #login.auth-card{padding:18px 25px!important}
  body.is-guest .auth-logo{display:none}
  body.is-guest .auth-brand p{display:none}
}
@media (max-width:850px){body.is-guest{overflow:auto}.guest-shell{min-height:0}.site-footer{position:relative}}

/* authenticated application keeps the Blynk atmosphere */
body.is-authenticated{background:#061713;color:#e9f6f1;min-height:100vh}
.is-authenticated .ambient-bg{display:block;background:radial-gradient(circle at 85% 8%,rgba(41,224,160,.18),transparent 28%),radial-gradient(circle at 5% 75%,rgba(15,109,91,.18),transparent 26%),linear-gradient(145deg,#06120f,#09231c 55%,#061510)}
.is-authenticated .ambient-bg:after{background:linear-gradient(180deg,rgba(5,18,15,.72),rgba(5,18,15,.92))}
.is-authenticated .circuit-grid{opacity:.07}
.is-authenticated .wrap{max-width:1240px}
.is-authenticated .site-header{color:#fff;border-bottom:1px solid rgba(67,222,169,.13);background:rgba(4,18,14,.34);backdrop-filter:blur(14px);border-radius:0 0 18px 18px;padding-left:16px;padding-right:16px}
.is-authenticated .brand{color:#fff}
.is-authenticated .lang-switch{border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.04)}
.is-authenticated .lang-switch span{background:rgba(255,255,255,.13)}
.is-authenticated .lang-switch button{color:#93aaa2}
.is-authenticated .lang-switch button.active{color:#2de3a3;background:rgba(45,227,163,.12)}
.is-authenticated #logout{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:#dbeae5}
.is-authenticated #app{padding:24px 10px 52px}
.is-authenticated #app>.toolbar{position:relative;overflow:hidden;padding:24px 26px;background:linear-gradient(115deg,rgba(10,45,35,.94),rgba(8,30,24,.92));border:1px solid rgba(64,221,166,.18);border-radius:22px;box-shadow:0 18px 60px rgba(0,0,0,.18)}
.is-authenticated #app>.toolbar:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;right:-100px;top:-180px;background:rgba(45,227,163,.12);filter:blur(2px);pointer-events:none}
.is-authenticated #app>.toolbar h2{color:#fff;font-size:clamp(1.5rem,2.5vw,2.15rem);letter-spacing:-.035em;margin:0 0 4px}
.is-authenticated #user{color:#8eaaa0}
.is-authenticated .section-kicker{margin-bottom:7px}
.is-authenticated .energy-badge{background:rgba(255,215,80,.09);border-color:rgba(255,215,80,.18);color:#f7d976}
.is-authenticated button{background:linear-gradient(135deg,#2de3a3,#18bf87);color:#052018;border:none;box-shadow:none}
.is-authenticated button:hover{filter:brightness(1.06)}
.is-authenticated .secondary,.is-authenticated .ghost{background:rgba(255,255,255,.065);border:1px solid rgba(255,255,255,.1);color:#dcebe6}
.is-authenticated .danger{background:rgba(220,70,70,.14);border:1px solid rgba(240,90,90,.2);color:#ff9e9e}
.is-authenticated .grid{gap:14px;margin-top:16px}
.is-authenticated .card{background:linear-gradient(145deg,rgba(10,38,30,.9),rgba(7,27,22,.92));border:1px solid rgba(65,210,160,.14);color:#eaf7f2;box-shadow:0 12px 35px rgba(0,0,0,.14);backdrop-filter:blur(10px)}
.is-authenticated .project{position:relative;overflow:hidden;transition:.2s ease;min-height:130px}
.is-authenticated .project:hover{transform:translateY(-2px);border-color:rgba(45,227,163,.35)}
.is-authenticated .project.selected{outline:1px solid #2de3a3;box-shadow:0 0 0 1px rgba(45,227,163,.08),0 16px 38px rgba(0,0,0,.2)}
.is-authenticated .project h3{font-size:1.1rem;color:#fff}.is-authenticated .project p,.is-authenticated small{color:#829e94}
.is-authenticated .project-head{margin-top:22px;padding:18px 20px;border:1px solid rgba(64,211,160,.13);border-radius:18px;background:rgba(5,25,19,.6);color:#fff}
.is-authenticated .project-head h2{margin:0;color:#fff}
.is-authenticated .view-tabs,.is-authenticated .dashboard-tabs{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.06)}
.is-authenticated .view-tabs button,.is-authenticated .dashboard-tabs button{background:transparent;color:#8fa89f}
.is-authenticated .view-tabs button.active,.is-authenticated .dashboard-tabs button.active{background:rgba(45,227,163,.13);color:#49e6ad;box-shadow:none}
.is-authenticated .live-status{border-left:3px solid #2de3a3}.is-authenticated .live-status strong{color:#fff}.is-authenticated .live-status span{color:#83a096}
.is-authenticated .live-grid{gap:14px}
.is-authenticated .pin{color:#77958a}.is-authenticated .big{color:#fff}

.is-authenticated .device-row,.is-authenticated .manage-row{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.075);color:#e9f5f1}
.is-authenticated .device-main small,.is-authenticated .manage-row small{color:#78978b}
.is-authenticated .empty-state{border-color:rgba(77,210,163,.18);color:#7d9b90;background:rgba(255,255,255,.018)}.is-authenticated .empty-state strong{color:#dcebe6}
.is-authenticated .count{background:rgba(45,227,163,.1);color:#4ae8b0}
.is-authenticated .debug{background:#03100d;color:#a5c5b9;border:1px solid rgba(45,227,163,.12)}
.is-authenticated .site-footer{background:rgba(3,14,11,.96);border-color:rgba(45,227,163,.12)}

/* modals remain readable over the dark app */
.is-authenticated .modal-backdrop{backdrop-filter:blur(8px)}
.is-authenticated .modal{background:#0b211b;color:#eaf6f2;border:1px solid rgba(45,227,163,.18);box-shadow:0 28px 80px rgba(0,0,0,.45)}
.is-authenticated .modal input,.is-authenticated .modal select,.is-authenticated .modal textarea{background:#071713;color:#eaf6f2;border-color:rgba(255,255,255,.12)}
.is-authenticated .modal label,.is-authenticated .modal-title h3{color:#eaf6f2}.is-authenticated .modal-title small,.is-authenticated .advanced-json summary{color:#83a096}
.is-authenticated .icon-btn{background:rgba(255,255,255,.07);color:#dcebe6}

@media(max-width:720px){
 .is-authenticated #app{padding-left:0;padding-right:0}.is-authenticated #app>.toolbar{padding:18px;border-radius:18px}.is-authenticated .project-head{align-items:flex-start;gap:14px}.is-authenticated .view-tabs{width:100%;overflow:auto}.is-authenticated .site-header{border-radius:0}
}

/* =========================================================
   V16.3 — visual refinement only. Blynk application logic is unchanged.
   ========================================================= */

/* LOGIN / SIGNUP — smart-home photographic scene */
body.is-guest{
  min-height:100svh;
  background:#04110e;
  overflow-x:hidden;
}
body.is-guest .ambient-bg{
  display:block!important;
  background:
    linear-gradient(90deg,rgba(2,14,11,.96) 0%,rgba(3,18,14,.88) 34%,rgba(3,18,14,.48) 64%,rgba(2,12,10,.34) 100%),
    url("smart-home-bg.jpg") center right/cover no-repeat;
}
body.is-guest .ambient-bg:after{
  background:linear-gradient(180deg,rgba(2,13,10,.12),rgba(2,13,10,.32));
}
body.is-guest .circuit-grid{opacity:.07}
body.is-guest .wrap{
  max-width:1440px;
  min-height:calc(100svh - 58px);
  padding:clamp(14px,2vh,24px) clamp(22px,4vw,58px) clamp(16px,2vh,28px);
  display:flex;
  flex-direction:column;
}
body.is-guest .site-header{flex:0 0 auto;min-height:54px;padding:0}
body.is-guest .guest-shell{
  flex:1;
  min-height:0;
  grid-template-columns:minmax(320px,.88fr) minmax(370px,480px);
  gap:clamp(34px,7vw,110px);
  padding:clamp(12px,2vh,24px) 0;
  align-items:center;
}
body.is-guest .hero-copy{max-width:570px;text-shadow:0 2px 24px rgba(0,0,0,.35)}
body.is-guest .hero-copy h1{font-size:clamp(2.45rem,4.5vw,4.75rem)}
body.is-guest .hero-copy>p{max-width:500px}
body.is-guest #login.auth-card{
  justify-self:end;
  background:linear-gradient(145deg,rgba(4,27,21,.91),rgba(3,19,15,.86));
  border:1px solid rgba(51,232,167,.38);
  box-shadow:0 28px 80px rgba(0,0,0,.44),0 0 50px rgba(26,216,151,.08) inset;
  backdrop-filter:blur(18px) saturate(1.15);
  -webkit-backdrop-filter:blur(18px) saturate(1.15);
}
body.is-guest #login input{background:rgba(2,15,12,.54);border-color:rgba(185,255,229,.22)}
body.is-guest #login .auth-primary{box-shadow:0 12px 30px rgba(26,211,147,.20)}
body.is-guest .site-footer{
  flex:0 0 58px;
  min-height:58px;
  background:rgba(2,14,11,.90);
  backdrop-filter:blur(12px);
}

/* LIVE — unmistakable OFF / ON state */






/* EDIT / DEVICE MANAGEMENT — force complete dark-theme readability */
body.is-authenticated #viewBody>.card,body.is-authenticated #viewBody .card,body.is-authenticated .manage-list,body.is-authenticated .device-list{
  color:#eaf7f2;
}
body.is-authenticated #viewBody>.card{
  background:linear-gradient(145deg,rgba(9,37,29,.94),rgba(5,25,20,.96))!important;
  border:1px solid rgba(54,216,159,.18)!important;
  box-shadow:0 16px 42px rgba(0,0,0,.18)!important;
}
body.is-authenticated .manage-row,body.is-authenticated .device-row{
  padding:15px 16px!important;
  margin:8px 0;
  border:1px solid rgba(255,255,255,.075)!important;
  border-radius:13px;
  background:rgba(255,255,255,.035)!important;
}
body.is-authenticated .manage-row b,body.is-authenticated .device-row b,body.is-authenticated #viewBody h3{color:#f3fbf8!important}
body.is-authenticated .manage-row small,body.is-authenticated .device-row small,body.is-authenticated #viewBody .hint{color:#87a49a!important;opacity:1}
body.is-authenticated .config-grid{
  background:rgba(255,255,255,.025)!important;
  border-color:rgba(45,227,163,.14)!important;
}
body.is-authenticated input,body.is-authenticated select,body.is-authenticated textarea{
  background:#061914;color:#eaf7f2;border-color:rgba(255,255,255,.13)
}
body.is-authenticated input:focus,body.is-authenticated select:focus,body.is-authenticated textarea:focus{outline:none;border-color:#2de3a3;box-shadow:0 0 0 3px rgba(45,227,163,.09)}
body.is-authenticated .advanced-json{background:rgba(2,16,12,.34);border-radius:12px;padding:8px 12px}
body.is-authenticated .advanced-json textarea{background:#03110d!important;color:#bcebd9!important}
body.is-authenticated .widget-catalog .catalog-item{background:rgba(255,255,255,.035);color:#eaf7f2;border-color:rgba(255,255,255,.08)}
body.is-authenticated .widget-catalog .catalog-item:hover{background:rgba(45,227,163,.08);border-color:rgba(45,227,163,.28)}

/* app background: subtle smart-home atmosphere while keeping dashboard readable */
body.is-authenticated:before{
  content:"";position:fixed;inset:0;z-index:-2;
  background:url("smart-home-bg.jpg") center/cover no-repeat;
  filter:saturate(.72) brightness(.32);
  transform:scale(1.02);
}
body.is-authenticated:after{
  content:"";position:fixed;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(3,18,14,.91),rgba(4,20,16,.96) 48%,rgba(3,16,13,.98));
}
body.is-authenticated{background:#061712!important}
body.is-authenticated .wrap{position:relative;z-index:1}

/* viewport fitting: desktop stays in one screen where practical */
@media (min-width:851px) and (max-height:820px){
 body.is-guest .wrap{min-height:calc(100svh - 48px);padding-top:10px;padding-bottom:10px}
 body.is-guest .site-header{min-height:44px}
 body.is-guest .guest-shell{padding:4px 0;gap:5vw}
 body.is-guest #login.auth-card{padding:20px 26px!important}
 body.is-guest .auth-logo{margin-bottom:8px}
 body.is-guest .auth-brand h2{margin:4px 0;font-size:1.45rem}
 body.is-guest .auth-brand p{margin:4px 0 10px}
 body.is-guest #login label{margin:9px 0}
 body.is-guest #login input{padding:10px}
 body.is-guest .hero-copy h1{font-size:clamp(2.25rem,4vw,3.8rem);margin-bottom:14px}
 body.is-guest .hero-copy>p{line-height:1.45;margin:8px 0}
 body.is-guest .hero-features{margin-top:18px}
 body.is-guest .hero-features>div{padding:9px 11px}
 body.is-guest .site-footer{min-height:48px;flex-basis:48px;padding-top:8px;padding-bottom:8px}
}
@media(max-width:850px){
 body.is-guest{overflow-y:auto}
 body.is-guest .ambient-bg{background:linear-gradient(rgba(2,15,12,.74),rgba(2,15,12,.90)),url("smart-home-bg.jpg") center/cover no-repeat}
 body.is-guest .wrap{min-height:auto;padding:14px 18px 28px}
 body.is-guest .guest-shell{display:flex;flex-direction:column;min-height:auto;padding:28px 0 34px}
 body.is-guest #login.auth-card{justify-self:auto;width:min(100%,470px)}
 body.is-guest .hero-features{display:none}
 body.is-guest .hero-copy h1{font-size:clamp(2.25rem,9vw,3.6rem)}
 body.is-guest .site-footer{min-height:58px;flex-basis:auto}
}
@media(max-width:560px){
 body.is-guest .hero-copy{text-align:left}
 body.is-guest .hero-copy>p{margin-left:0;margin-right:0}
 body.is-guest #login.auth-card{padding:22px 18px!important}
 body.is-authenticated .live-grid{grid-template-columns:1fr}
}

/* V16.4 FIXED — smart binary controls. Card stays neutral; only the state button changes. */







/* =========================================================
   V16.5 — cinematic login/signup composition
   Visual layer only; Blynk protocol/application logic remains V16.4 FIXED.
   ========================================================= */
body.is-guest{height:100dvh;min-height:660px;overflow:hidden;background:#02100d;color:#fff}
body.is-guest .ambient-bg{display:block!important;position:fixed;inset:0;background:url("smart-home-v165.png") center 54%/cover no-repeat!important;filter:none!important;transform:none!important}
body.is-guest .ambient-bg:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(1,12,10,.92) 0%,rgba(2,15,12,.72) 28%,rgba(2,15,12,.30) 58%,rgba(2,12,10,.18) 100%),linear-gradient(180deg,rgba(0,9,8,.20),rgba(0,12,9,.10) 55%,rgba(0,10,8,.62) 100%)}
body.is-guest .ambient-bg:after{display:none}
body.is-guest .circuit-grid{display:none}
body.is-guest .wrap{width:100%;max-width:none;height:calc(100dvh - 154px);min-height:506px;padding:18px clamp(30px,3.6vw,66px) 10px;display:grid;grid-template-rows:66px 1fr;position:relative}
body.is-guest .site-header{min-height:66px;padding:0;align-items:flex-start;border:0;background:transparent}
body.is-guest .brand{gap:12px;text-shadow:0 2px 18px rgba(0,0,0,.35)}
body.is-guest .brand-mark{width:52px;height:52px;border-radius:13px;font-size:1.9rem;box-shadow:0 10px 30px rgba(38,226,160,.18)}
body.is-guest .brand-copy{display:flex;flex-direction:column;line-height:1.05}
body.is-guest .brand-copy b{font-size:1.75rem;letter-spacing:-.04em}
body.is-guest .brand-copy small{margin-top:7px;font-size:.67rem;color:#d5e2de;font-weight:500}
body.is-guest .header-actions{padding-top:7px}
body.is-guest .globe-icon{font-size:1.4rem;color:#dceae5}
body.is-guest .lang-switch{background:rgba(3,17,13,.42);border-color:rgba(90,237,185,.16);backdrop-filter:blur(12px)}
body.is-guest .guest-shell{display:grid;grid-template-columns:minmax(300px,.88fr) minmax(390px,500px) minmax(170px,.55fr);gap:clamp(24px,3.5vw,62px);align-items:center;min-height:0;padding:4px 0 8px}
body.is-guest .hero-copy{align-self:center;max-width:500px;text-align:left;margin:0;text-shadow:0 2px 26px rgba(0,0,0,.46)}
body.is-guest .eyebrow{font-size:.65rem;letter-spacing:.2em;margin-bottom:12px}
body.is-guest .hero-copy h1{font-size:clamp(2.4rem,4vw,4.35rem);line-height:.98;letter-spacing:-.055em;margin:0 0 18px;color:#fff}
body.is-guest .hero-copy h1 em{color:#2de3a3;font-style:normal}
body.is-guest .hero-copy>p{font-size:clamp(.98rem,1.25vw,1.16rem);line-height:1.45;color:#e2ebe8;margin:0 0 22px;max-width:390px}
body.is-guest .hero-features{display:grid;grid-template-columns:1fr;gap:7px;margin:0;max-width:310px}
body.is-guest .feature-card{position:relative;width:100%;display:flex;align-items:center;gap:13px;padding:8px 11px;border:1px solid transparent;border-radius:13px;background:rgba(3,18,14,.16);color:#fff;text-align:left;backdrop-filter:blur(3px);transition:.18s ease}
body.is-guest .feature-card:hover{transform:translateX(5px);background:rgba(4,28,21,.58);border-color:rgba(45,227,163,.28);box-shadow:0 12px 32px rgba(0,0,0,.18)}
body.is-guest .feature-icon{width:39px;height:39px;flex:0 0 39px;border:0;background:transparent;color:#2de3a3;font-size:1.8rem;filter:drop-shadow(0 0 9px rgba(45,227,163,.28))}
body.is-guest .feature-card strong{font-size:.88rem}.feature-card small{font-size:.73rem;color:#c0d0ca;margin-top:2px}
[data-tip-key]:after{content:attr(data-tip);position:absolute;z-index:20;left:calc(100% + 10px);top:50%;transform:translate(5px,-50%);width:max-content;max-width:230px;padding:8px 10px;border:1px solid rgba(45,227,163,.25);border-radius:9px;background:rgba(2,18,13,.94);color:#dff7ee;font-size:.68rem;line-height:1.3;opacity:0;pointer-events:none;transition:.16s ease;box-shadow:0 12px 30px rgba(0,0,0,.3)}
[data-tip-key]:hover:after{opacity:1;transform:translate(0,-50%)}
body.is-guest #login.auth-card{justify-self:center;align-self:center;width:100%;max-width:500px!important;max-height:calc(100dvh - 188px);overflow:auto;margin:0!important;padding:24px 38px 20px!important;border:1px solid rgba(47,232,165,.40);border-radius:20px;background:linear-gradient(145deg,rgba(3,27,20,.86),rgba(2,17,13,.82));box-shadow:0 30px 90px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.035);backdrop-filter:blur(18px) saturate(1.1);-webkit-backdrop-filter:blur(18px) saturate(1.1);scrollbar-width:thin}
body.is-guest .auth-logo{margin:0 0 8px}.auth-mark{width:54px!important;height:54px!important;font-size:1.9rem!important}
body.is-guest .auth-brand{text-align:center}.auth-brand h2{font-size:2rem;letter-spacing:-.04em;margin:0}.auth-brand h2 em{font-style:normal;color:#fff}.auth-brand h2{color:#2de3a3}.auth-brand p{margin:6px 0 16px;color:#b8c8c2;font-size:.9rem}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid rgba(255,255,255,.17);margin:0 0 16px}.auth-tabs button{position:relative;padding:9px 6px;background:transparent;color:#bdccc7;border:0;border-radius:0;font-size:.85rem}.auth-tabs button.active{color:#fff}.auth-tabs button.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:#2de3a3;box-shadow:0 0 12px rgba(45,227,163,.42)}
.auth-runtime-copy,.auth-trigger{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
body.is-guest #login label>span{display:block;margin:0 0 5px;color:#dbe8e4;font-size:.75rem}
body.is-guest #login .auth-form{gap:0}
body.is-guest #login label{margin:0 0 10px}
body.is-guest #login input:not([type=checkbox]){height:46px;padding:0 14px;border-radius:10px;background:rgba(2,16,12,.50);border:1px solid rgba(204,255,236,.25);color:#fff;font-size:.9rem}
body.is-guest #login input:not([type=checkbox]):focus{border-color:#2de3a3;box-shadow:0 0 0 3px rgba(45,227,163,.09)}
.login-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}.login-options .remember{display:flex!important;align-items:center;gap:8px;margin:0!important;color:#dce8e4;font-size:.75rem}.login-options .remember span{margin:0!important}.login-options input[type=checkbox]{width:17px;height:17px;accent-color:#2de3a3}.login-options .text-btn{font-size:.75rem;color:#55e9b4;padding:0;background:none}
body.is-guest #login .auth-primary{height:48px;border-radius:9px;margin-top:2px;background:linear-gradient(100deg,#35dfa6,#27d99e);color:#041b14;font-size:.95rem;font-weight:850;box-shadow:0 11px 28px rgba(24,208,143,.18);display:flex;justify-content:center;align-items:center;gap:12px}.auth-primary span{font-size:1.15rem}
body.is-guest .secure-note{margin-top:11px;font-size:.65rem;color:#79938a}.auth-switch{height:0;margin:0}.auth-copy{font-size:.78rem;line-height:1.45;margin:0 0 12px}
body.is-guest .error,body.is-guest .auth-success{font-size:.72rem;margin-top:8px}
.iot-status{align-self:center;justify-self:end;display:flex;flex-direction:column;gap:11px;width:min(100%,190px)}
.status-card{position:relative;display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border:1px solid rgba(45,227,163,.25);border-radius:13px;background:linear-gradient(135deg,rgba(3,31,23,.72),rgba(3,20,16,.62));color:#fff;text-align:left;backdrop-filter:blur(12px);box-shadow:0 14px 30px rgba(0,0,0,.16);transition:.18s ease}.status-card:hover{transform:translateY(-2px) scale(1.015);border-color:rgba(45,227,163,.52);box-shadow:0 18px 36px rgba(0,0,0,.22),0 0 22px rgba(45,227,163,.08)}.status-card>b{width:38px;color:#2de3a3;font-size:1.7rem;text-align:center}.status-card span{display:flex;flex-direction:column}.status-card small{font-size:.72rem;color:#d4e1dd}.status-card strong{font-size:.9rem;color:#41e9ac;margin-top:2px}.status-card[data-tip-key]:after{left:auto;right:calc(100% + 10px)}
.benefit-strip{height:96px;position:relative;z-index:4;display:grid;grid-template-columns:repeat(3,1fr);align-items:center;padding:0 clamp(34px,8vw,170px);border-top:1px solid rgba(45,227,163,.23);border-bottom:1px solid rgba(45,227,163,.23);background:rgba(1,15,11,.87);backdrop-filter:blur(14px);color:#fff}.benefit-strip>div{display:flex;align-items:center;justify-content:center;gap:18px}.benefit-strip b{min-width:50px;color:#2de3a3;font-size:1.8rem;text-align:center}.benefit-strip span{display:flex;flex-direction:column}.benefit-strip strong{font-size:.85rem}.benefit-strip small{margin-top:3px;color:#b4c6c0;font-size:.72rem}
body.is-guest .site-footer{height:58px;min-height:58px;position:relative;z-index:4;padding:0 clamp(30px,3.6vw,66px);display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:28px;background:rgba(1,13,10,.94);border:0;color:#b4c4bf;font-size:.68rem}.footer-links{display:flex;align-items:center;gap:15px}.footer-links i{width:1px;height:13px;background:rgba(255,255,255,.18)}body.is-guest .footer-lang{display:flex}
/* authenticated view keeps the V16.4 FIXED application styling */
body.is-authenticated .brand-copy small{display:none}body.is-authenticated .globe-icon{display:none}body.is-authenticated .benefit-strip{display:none!important}
@media (min-width:901px) and (max-height:820px){body.is-guest{min-height:620px}body.is-guest .wrap{height:calc(100dvh - 132px);grid-template-rows:52px 1fr;padding-top:10px}.benefit-strip{height:82px}.site-footer{height:50px!important;min-height:50px!important}.brand-mark{width:43px!important;height:43px!important;font-size:1.5rem!important}.brand-copy b{font-size:1.4rem!important}.brand-copy small{margin-top:4px!important}.guest-shell{gap:28px!important}.hero-copy h1{font-size:clamp(2.1rem,3.6vw,3.45rem)!important;margin-bottom:12px!important}.hero-copy>p{margin-bottom:12px!important}.hero-features{gap:4px!important}.feature-card{padding:5px 9px!important}.feature-icon{width:32px!important;height:32px!important;flex-basis:32px!important;font-size:1.45rem!important}body.is-guest #login.auth-card{padding:15px 30px 12px!important;max-height:calc(100dvh - 150px)}body.is-guest .auth-logo{display:none}.auth-brand p{margin-bottom:10px!important}.auth-tabs{margin-bottom:10px!important}body.is-guest #login input:not([type=checkbox]){height:39px}.login-options{margin-bottom:8px}body.is-guest #login .auth-primary{height:42px}.iot-status{gap:7px}.status-card{padding:8px 10px}.benefit-strip>div{gap:12px}}
@media(max-width:1100px){body.is-guest .guest-shell{grid-template-columns:minmax(280px,.8fr) minmax(370px,480px)}.iot-status{display:none}.hero-copy{max-width:430px!important}}
@media(max-width:820px){body.is-guest{height:auto;min-height:100dvh;overflow-y:auto}body.is-guest .ambient-bg{background-position:62% center!important}body.is-guest .wrap{height:auto;min-height:auto;padding:14px 18px 26px;display:block}.site-header{min-height:58px!important}.guest-shell{display:flex!important;flex-direction:column!important;gap:24px!important;padding:30px 0!important}.hero-copy{max-width:620px!important;text-align:center!important}.hero-copy>p{margin-left:auto!important;margin-right:auto!important}.hero-features{grid-template-columns:repeat(2,1fr)!important;max-width:620px!important;margin:auto!important}.feature-card:hover{transform:translateY(-2px)!important}[data-tip-key]:after{display:none}.auth-card{order:2}.benefit-strip{height:auto;min-height:88px;padding:18px 20px;gap:16px}.benefit-strip>div{gap:9px}.benefit-strip b{min-width:34px;font-size:1.35rem}.site-footer{height:auto!important;min-height:70px!important;grid-template-columns:1fr auto!important;padding:14px 20px!important}.footer-links{display:none}}
@media(max-width:540px){body.is-guest .site-header{align-items:center}.brand-copy b{font-size:1.2rem!important}.brand-copy small{display:none}.header-actions .globe-icon{display:none}.guest-shell{padding-top:20px!important}.hero-copy h1{font-size:2.45rem!important}.hero-copy>p{font-size:.92rem!important}.hero-features{grid-template-columns:1fr 1fr!important;gap:6px!important}.feature-card{padding:8px!important}.feature-card small{display:none}.feature-icon{width:32px!important;height:32px!important;flex-basis:32px!important;font-size:1.4rem!important}body.is-guest #login.auth-card{padding:22px 18px 18px!important;border-radius:18px;max-height:none}.auth-brand h2{font-size:1.7rem}.benefit-strip{grid-template-columns:1fr;gap:12px;padding:18px 24px}.benefit-strip>div{justify-content:flex-start}.site-footer{grid-template-columns:1fr!important;text-align:center!important;justify-items:center}.footer-lang{display:flex!important}}
n/* =========================================================
   V16.6 — clean professional guest UI
   - no demo/later tooltips
   - exact centered authentication card on desktop
   - custom vector line icons inspired by the approved reference
   ========================================================= */
.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}
body.is-guest .guest-shell{grid-template-columns:minmax(280px,1fr) minmax(390px,500px) minmax(180px,1fr);column-gap:clamp(24px,3.3vw,58px)}
body.is-guest #login.auth-card{justify-self:center;position:relative;left:0;transform:none}
body.is-guest .hero-copy{justify-self:start}
body.is-guest .iot-status{justify-self:end}
body.is-guest .feature-icon svg,body.is-guest .status-card>b svg,.benefit-strip b svg{width:100%;height:100%;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
body.is-guest .feature-icon{width:44px!important;height:44px!important;flex-basis:44px!important;padding:3px;color:#2de3a3!important;filter:drop-shadow(0 0 8px rgba(45,227,163,.25))}
body.is-guest .status-card>b{width:42px;height:42px;display:grid;place-items:center;padding:4px;color:#2de3a3}
body.is-guest .status-card>b svg{stroke-width:1.65}
.benefit-strip b{width:50px;height:42px;display:grid;place-items:center;padding:2px;color:#2de3a3}
.benefit-strip b svg{stroke-width:1.6}
body.is-guest .feature-card,body.is-guest .status-card{cursor:default}
body.is-guest .feature-card:active,body.is-guest .status-card:active{transform:none}
[data-tip-key]:after,[data-tip-key]:hover:after{display:none!important;content:none!important}
@media(min-width:1101px){body.is-guest .guest-shell{position:relative}body.is-guest #login.auth-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(500px,34vw);z-index:5}body.is-guest .hero-copy{grid-column:1;max-width:min(500px,29vw)}body.is-guest .iot-status{grid-column:3;width:min(190px,100%)}}
@media(max-width:1100px){body.is-guest #login.auth-card{position:static;transform:none}}
@media(max-width:540px){body.is-guest .feature-icon{width:38px!important;height:38px!important;flex-basis:38px!important}.benefit-strip b{width:40px;height:36px}}


/* =========================================================
   V16.7 — authenticated dashboard tuning
   ========================================================= */
/* Never allow the guest marketing shell to leak into the logged-in responsive view. */
body.is-authenticated #guestShell[hidden],body.is-authenticated #guestBenefits[hidden]{display:none!important}

/* Full authenticated surface: same dark Blynk language as the login screen. */
body.is-authenticated{background:#03140f!important;color:#eaf7f2}
body.is-authenticated .ambient-bg{display:block!important;position:fixed;inset:0;opacity:.16;filter:saturate(.8) brightness(.48);pointer-events:none}
body.is-authenticated .ambient-bg .circuit-grid{opacity:.12}
body.is-authenticated .wrap{position:relative;z-index:2}
body.is-authenticated .site-header{color:#f3fbf8!important;border-bottom:1px solid rgba(45,227,163,.13)!important;background:rgba(3,20,15,.72)!important;backdrop-filter:blur(14px)}
body.is-authenticated .brand{color:#fff!important}
body.is-authenticated .lang-switch{border-color:rgba(45,227,163,.18)!important;background:rgba(255,255,255,.035)!important}
body.is-authenticated .lang-switch span{background:rgba(255,255,255,.12)!important}
body.is-authenticated .lang-switch button{color:#9db3ab!important}
body.is-authenticated .lang-switch button.active{color:#062018!important;background:#2de3a3!important}

/* Edit-mode toolbars: remove the old white blocks completely. */
body.is-authenticated #viewBody .card>.toolbar{
  padding:18px 20px!important;
  margin:-4px -4px 14px!important;
  border-radius:16px!important;
  color:#eaf7f2!important;
  background:linear-gradient(120deg,rgba(15,58,45,.82),rgba(7,35,27,.92))!important;
  border:1px solid rgba(45,227,163,.18)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 12px 30px rgba(0,0,0,.12)!important;
}
body.is-authenticated #viewBody .card>.toolbar h3{margin:0 0 5px!important;color:#f4fcf9!important}
body.is-authenticated #viewBody .card>.toolbar small{color:#8fa9a0!important}
body.is-authenticated #viewBody .card>.toolbar .count{display:inline-grid;place-items:center;min-width:23px;height:23px;padding:0 7px;border-radius:999px;background:rgba(45,227,163,.13);border:1px solid rgba(45,227,163,.22);color:#55edb8;font-size:.72rem}

/* Pin badges V1/V2/...: compact technical badge, no white pill. */



/* Button cards remain neutral; only the action control communicates OFF/ON. */





@media(max-width:820px){
  body.is-authenticated #guestShell,body.is-authenticated #guestBenefits{display:none!important}
  body.is-authenticated #viewBody .card>.toolbar{align-items:flex-start!important;gap:12px!important}
}

/* V16.8 — authenticated navigation polish */
body.is-authenticated .lang-switch{
  display:flex!important;align-items:center!important;gap:4px!important;padding:4px!important;
  border:1px solid rgba(45,227,163,.28)!important;background:rgba(2,18,14,.64)!important;
  border-radius:999px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)!important;
  backdrop-filter:blur(14px)!important
}
body.is-authenticated .lang-switch span{width:1px!important;height:16px!important;background:rgba(255,255,255,.13)!important}
body.is-authenticated .lang-switch button{
  min-width:38px!important;padding:7px 10px!important;border:0!important;border-radius:999px!important;
  background:transparent!important;color:#a9bbb5!important;font-weight:700!important;box-shadow:none!important
}
body.is-authenticated .lang-switch button:hover{color:#d8eee6!important;background:rgba(45,227,163,.07)!important}
body.is-authenticated .lang-switch button.active{
  color:#35e4aa!important;background:rgba(45,227,163,.14)!important;
  box-shadow:inset 0 0 0 1px rgba(45,227,163,.22)!important
}

body.is-authenticated .view-tabs{
  display:flex!important;gap:4px!important;padding:4px!important;border-radius:12px!important;
  background:rgba(3,24,18,.72)!important;border:1px solid rgba(45,227,163,.12)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025)!important
}
body.is-authenticated .view-tabs button{
  position:relative!important;padding:9px 15px!important;border:0!important;border-radius:8px!important;
  background:transparent!important;color:#829b92!important;font-weight:700!important;box-shadow:none!important;
  transition:color .18s ease,background .18s ease!important
}
body.is-authenticated .view-tabs button:hover{color:#d5e9e2!important;background:rgba(255,255,255,.035)!important}
body.is-authenticated .view-tabs button.active{
  color:#36e3a7!important;background:rgba(45,227,163,.07)!important;box-shadow:none!important
}
body.is-authenticated .view-tabs button.active::after{
  content:"";position:absolute;left:16px;right:16px;bottom:2px;height:2px;border-radius:2px;
  background:#2de3a3;box-shadow:0 0 10px rgba(45,227,163,.35)
}

/* =========================================================
   V16.9 — legal pages + simplified footer
   ========================================================= */
.site-footer .footer-links a{color:inherit;text-decoration:none;transition:color .18s ease}.site-footer .footer-links a:hover{color:#35e4aa}.site-footer{grid-template-columns:1fr auto!important}.footer-lang{display:none!important}
body.legal-page{min-height:100vh;background:#03140f;color:#eaf7f2;display:flex;flex-direction:column}body.legal-page .ambient-bg{display:block!important;position:fixed;inset:0;opacity:.26;filter:saturate(.85) brightness(.52);pointer-events:none}body.legal-page .wrap{position:relative;z-index:2;max-width:1120px;width:100%;flex:1}body.legal-page .site-header{color:#fff;border-bottom:1px solid rgba(45,227,163,.13);background:rgba(3,20,15,.72);backdrop-filter:blur(14px)}body.legal-page .brand{color:#fff;text-decoration:none}.legal-back{padding:9px 13px;border:1px solid rgba(45,227,163,.18);border-radius:10px;color:#b9d0c7;text-decoration:none;background:rgba(255,255,255,.035);font-size:.78rem;font-weight:700}.legal-back:hover{color:#35e4aa;border-color:rgba(45,227,163,.34)}body.legal-page .lang-switch{display:flex;align-items:center;gap:4px;padding:4px;border:1px solid rgba(45,227,163,.28);background:rgba(2,18,14,.64);border-radius:999px}body.legal-page .lang-switch span{width:1px;height:16px;background:rgba(255,255,255,.13)}body.legal-page .lang-switch button{min-width:38px;padding:7px 10px;border:0;border-radius:999px;background:transparent;color:#a9bbb5;font-weight:700}body.legal-page .lang-switch button.active{color:#35e4aa;background:rgba(45,227,163,.14);box-shadow:inset 0 0 0 1px rgba(45,227,163,.22)}.legal-hero{padding:62px 0 28px;max-width:780px}.legal-hero h1{margin:0 0 14px;font-size:clamp(2.3rem,5vw,4.6rem);line-height:1;letter-spacing:-.055em;color:#fff}.legal-hero p{margin:0;color:#9fb5ad;font-size:1.06rem;line-height:1.6}.legal-card{margin:10px 0 58px;padding:clamp(24px,4vw,48px);border:1px solid rgba(45,227,163,.16);border-radius:24px;background:linear-gradient(145deg,rgba(5,35,27,.92),rgba(3,23,18,.94));box-shadow:0 28px 80px rgba(0,0,0,.25);backdrop-filter:blur(18px)}.legal-card section+section{margin-top:31px;padding-top:27px;border-top:1px solid rgba(255,255,255,.07)}.legal-card h2{margin:0 0 10px;color:#f2fbf7;font-size:1.08rem}.legal-card p{margin:0;color:#a9beb6;line-height:1.72;font-size:.93rem}.legal-card a{color:#35e4aa}.legal-note{margin-top:12px!important;font-size:.78rem!important;color:#6f9185!important}.legal-email{font-size:1.05rem;font-weight:800;text-decoration:none}.contact-card{text-align:center;max-width:720px;margin:42px auto 90px;padding:60px 42px}.contact-icon{width:72px;height:72px;margin:0 auto 20px;display:grid;place-items:center;border-radius:22px;background:rgba(45,227,163,.12);border:1px solid rgba(45,227,163,.3);color:#35e4aa;font-size:2rem;font-weight:850}.contact-card h2{font-size:1.6rem}.contact-card>p{max-width:520px;margin:0 auto 22px}.contact-email{display:inline-flex;padding:14px 22px;border-radius:12px;background:linear-gradient(105deg,#20c98f,#35e4aa);color:#042118!important;text-decoration:none;font-weight:850;box-shadow:0 12px 30px rgba(35,218,156,.16)}.contact-hint{margin-top:22px!important;font-size:.78rem!important;color:#78958b!important}.legal-footer{position:relative;z-index:3;width:100%}
@media(max-width:720px){.site-footer{grid-template-columns:1fr!important}.legal-hero{padding-top:38px}.legal-card{margin-bottom:35px}.legal-back{display:none}body.legal-page .header-actions{gap:7px}.contact-card{padding:40px 22px;margin-top:24px}}

/* V17.1 — keep essential legal navigation visible on mobile */
@media (max-width:820px){
  .site-footer .footer-links{
    display:flex!important;
    width:100%;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:9px 12px;
  }
  .site-footer .footer-links a{
    display:inline-flex;
    align-items:center;
    min-height:30px;
    padding:5px 2px;
    color:#a9beb6;
    font-size:.72rem;
    font-weight:650;
    white-space:nowrap;
  }
  .site-footer .footer-links i{
    display:block;
    width:1px;
    height:12px;
    background:rgba(255,255,255,.16);
  }
  body.is-guest .site-footer,body.is-authenticated .site-footer{
    grid-template-columns:1fr!important;
    justify-items:center;
    text-align:center;
    row-gap:7px;
    padding-top:12px!important;
    padding-bottom:12px!important;
  }
}
@media (max-width:430px){
  .site-footer .footer-links{gap:5px 9px}
  .site-footer .footer-links a{font-size:.68rem}
  .site-footer .footer-links i{height:11px}
}


/* V17.3 — mobile resources + Custom Server connection guidance */
.mobile-connect-card{margin-top:17px;max-width:510px;display:flex;align-items:center;gap:13px;padding:12px 15px;border:1px solid rgba(45,227,163,.24);border-radius:14px;background:rgba(2,21,16,.68);backdrop-filter:blur(12px);outline:none;position:relative}.mobile-connect-card>b,.app-connect-card>b{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:11px;background:rgba(45,227,163,.11);color:#35e4aa}.mobile-connect-card svg,.app-connect-card svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.mobile-connect-card>span{display:flex;flex-direction:column}.mobile-connect-card small,.app-connect-card small{color:#91aaa1;font-size:.66rem;font-weight:700;letter-spacing:.045em;text-transform:uppercase}.mobile-connect-card strong{margin-top:2px;color:#f3fbf8;font-size:.94rem;letter-spacing:.02em}.mobile-connect-card strong i{font-style:normal;color:#35e4aa}.mobile-connect-card em{position:absolute;left:51px;bottom:calc(100% + 9px);width:min(360px,calc(100vw - 55px));padding:9px 11px;border:1px solid rgba(45,227,163,.25);border-radius:9px;background:#061b15;color:#b9cec6;font-size:.7rem;font-style:normal;line-height:1.45;box-shadow:0 12px 35px rgba(0,0,0,.35);opacity:0;visibility:hidden;transform:translateY(4px);transition:.16s;z-index:20}.mobile-connect-card:hover em,.mobile-connect-card:focus em{opacity:1;visibility:visible;transform:none}
.app-connect-card{margin:0 0 18px;display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px solid rgba(45,227,163,.16);border-radius:13px;background:rgba(4,29,22,.72);position:relative;outline:none}.app-connect-card>span{display:flex;flex-direction:column}.app-connect-card strong{color:#eefaf6;font-size:.86rem}.app-connect-card>em{margin-left:auto;color:#7f9b91;font-size:.7rem;font-style:normal}.app-connect-card>a{margin-left:8px;padding:7px 10px;border:1px solid rgba(45,227,163,.22);border-radius:8px;color:#35e4aa;text-decoration:none;font-size:.7rem;font-weight:800}.app-connect-card>a:hover{background:rgba(45,227,163,.08)}
.site-footer .footer-downloads{display:flex;align-items:center;gap:6px}.site-footer .footer-downloads a{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid rgba(45,227,163,.13);border-radius:8px;color:#9db7ae;text-decoration:none;font-size:.65rem;font-weight:700;transition:.18s}.site-footer .footer-downloads a:hover{color:#35e4aa;border-color:rgba(45,227,163,.34);background:rgba(45,227,163,.06)}.site-footer .footer-downloads svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.site-footer{grid-template-columns:1fr auto auto!important}
.resource-kicker{display:inline-block;margin-bottom:12px;color:#35e4aa;font-size:.7rem;font-weight:850;letter-spacing:.18em}.resources-hero{padding-bottom:20px}.resources-connect{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:12px;margin:4px 0 26px;padding:20px;border:1px solid rgba(45,227,163,.2);border-radius:18px;background:linear-gradient(135deg,rgba(6,43,32,.9),rgba(3,25,19,.9));box-shadow:0 20px 55px rgba(0,0,0,.2)}.resources-connect>div{padding:12px 14px;border:1px solid rgba(255,255,255,.07);border-radius:12px;background:rgba(0,0,0,.12)}.resources-connect span{display:block;color:#819d93;font-size:.68rem;text-transform:uppercase;letter-spacing:.07em}.resources-connect strong{display:block;margin-top:4px;color:#fff;font-size:1.2rem}.resources-connect p{grid-column:1/-1;margin:2px 0 0;color:#a9beb6;font-size:.84rem;line-height:1.65}.resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:18px}.resource-card{padding:25px;border:1px solid rgba(45,227,163,.15);border-radius:20px;background:linear-gradient(145deg,rgba(5,35,27,.92),rgba(3,23,18,.94));box-shadow:0 22px 60px rgba(0,0,0,.2)}.resource-icon{width:48px;height:48px;display:grid;place-items:center;margin-bottom:17px;border-radius:14px;background:rgba(45,227,163,.1);border:1px solid rgba(45,227,163,.22);color:#35e4aa;font-size:1.2rem;font-weight:900}.resource-platform{color:#35e4aa;font-size:.62rem;font-weight:850;letter-spacing:.14em}.resource-card h2{margin:6px 0 9px;color:#f5fcfa;font-size:1.08rem}.resource-card p{min-height:64px;margin:0 0 18px;color:#91aaa1;font-size:.8rem;line-height:1.6}.resource-download{display:inline-flex;padding:10px 14px;border-radius:9px;background:linear-gradient(105deg,#20c98f,#35e4aa);color:#042118;text-decoration:none;font-size:.75rem;font-weight:850}.resource-card details{margin-top:14px;color:#8da79d;font-size:.72rem}.resource-card summary{cursor:pointer}.resource-alt{display:flex;flex-direction:column;gap:6px;margin-top:9px}.resource-alt a{color:#35e4aa;text-decoration:none}.resources-note{margin:0 0 55px;color:#6f9185;font-size:.72rem;text-align:center}
@media(max-width:900px){.resource-grid{grid-template-columns:1fr}.resource-card p{min-height:0}.app-connect-card>em{display:none}.site-footer .footer-downloads span{display:none}.site-footer{grid-template-columns:1fr auto!important}.site-footer .footer-links{grid-column:1/-1}}
@media(max-width:820px){.mobile-connect-card{margin-left:auto;margin-right:auto;text-align:left}.app-connect-card{flex-wrap:wrap}.app-connect-card>em{display:block;width:100%;margin:0 0 0 50px}.site-footer .footer-downloads{justify-content:center}.site-footer .footer-downloads a{width:34px;height:32px;padding:0;justify-content:center}.site-footer .footer-links{width:100%}}
@media(max-width:600px){.resources-connect{grid-template-columns:1fr}.resources-connect p{grid-column:auto}.resource-grid{gap:12px}.resource-card{padding:20px}}

/* V17.4 — connection settings: mobile server + hardware port */
.connection-info-card{margin-top:16px;max-width:650px;padding:14px 16px;border:1px solid rgba(45,227,163,.18);border-radius:15px;background:linear-gradient(135deg,rgba(5,38,29,.86),rgba(3,25,19,.9));box-shadow:0 16px 45px rgba(0,0,0,.18)}
.connection-info-head{display:flex;align-items:center;gap:10px;margin-bottom:11px}.connection-info-head>b{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:rgba(45,227,163,.09);color:#35e4aa}.connection-info-head svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.connection-info-head>span{display:flex;flex-direction:column}.connection-info-head small{color:#dff7ef;font-size:.72rem;font-weight:850}.connection-info-head em{margin-top:2px;color:#78958a;font-size:.66rem;font-style:normal}.connection-info-values{display:grid;grid-template-columns:1.15fr .8fr .9fr;gap:8px}.connection-info-values>div,.connection-dashboard-values>div{position:relative;padding:9px 11px;border:1px solid rgba(255,255,255,.065);border-radius:10px;background:rgba(0,0,0,.13);outline:none}.connection-info-values small,.connection-dashboard-values small{display:block;color:#78958a;font-size:.58rem;font-weight:750;text-transform:uppercase;letter-spacing:.06em}.connection-info-values strong,.connection-dashboard-values strong{display:block;margin-top:3px;color:#f2fbf8;font-size:.9rem}.connection-info-values>div:last-child strong,.connection-dashboard-values>div:last-child strong{color:#35e4aa}.connection-info-values em,.connection-dashboard-values em{position:absolute;left:8px;bottom:calc(100% + 7px);width:245px;padding:8px 10px;border:1px solid rgba(45,227,163,.25);border-radius:8px;background:#061b15;color:#b9cec6;font-size:.66rem;font-style:normal;line-height:1.45;box-shadow:0 12px 30px rgba(0,0,0,.35);opacity:0;visibility:hidden;transform:translateY(4px);transition:.16s;z-index:30}.connection-info-values>div:hover em,.connection-info-values>div:focus em,.connection-dashboard-values>div:hover em,.connection-dashboard-values>div:focus em{opacity:1;visibility:visible;transform:none}
.connection-dashboard-card{gap:12px}.connection-dashboard-card>b{flex:0 0 auto}.connection-dashboard-values{display:grid;grid-template-columns:minmax(125px,1.1fr) minmax(95px,.75fr) minmax(105px,.8fr);gap:7px;flex:1}.connection-dashboard-card>a{flex:0 0 auto}.connection-dashboard-card>em{display:none!important}
.resources-connect{grid-template-columns:repeat(3,minmax(0,1fr));max-width:850px}.resources-connect>div:nth-child(3) strong{color:#35e4aa}.resources-connect p{grid-column:1/-1}
@media(max-width:820px){.connection-info-values,.connection-dashboard-values{grid-template-columns:1fr 1fr}.connection-info-values>div:first-child,.connection-dashboard-values>div:first-child{grid-column:1/-1}.connection-dashboard-card{align-items:flex-start}.connection-dashboard-card>a{margin-top:4px}.resources-connect{grid-template-columns:1fr 1fr}.resources-connect>div:first-child{grid-column:1/-1}}
@media(max-width:560px){.connection-info-values,.connection-dashboard-values,.resources-connect{grid-template-columns:1fr}.connection-info-values>div:first-child,.connection-dashboard-values>div:first-child,.resources-connect>div:first-child{grid-column:auto}.connection-dashboard-card>a{width:100%;margin:2px 0 0;text-align:center}.connection-info-values em,.connection-dashboard-values em{width:min(245px,calc(100vw - 80px))}.resources-connect p{grid-column:auto}}


/* V17.4 FIX2 — polished IoT connection summary + shared resource icons */
body.is-guest .iot-connection-feature{align-items:flex-start;padding-top:8px;padding-bottom:8px}
body.is-guest .iot-feature-copy{display:flex;flex:1;min-width:0;flex-direction:column}
body.is-guest .iot-quick-settings{display:grid;grid-template-columns:1.35fr .9fr .9fr;gap:5px;width:100%;margin-top:7px}
body.is-guest .iot-quick-settings i{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:2px;padding:5px 7px;border:1px solid rgba(45,227,163,.15);border-radius:7px;background:rgba(0,0,0,.16);font-style:normal;line-height:1.05}
body.is-guest .iot-quick-settings em{display:block;color:#78958a;font-size:.45rem;font-style:normal;font-weight:800;text-transform:uppercase;letter-spacing:.055em;white-space:nowrap}
body.is-guest .iot-quick-settings b{display:block;max-width:100%;overflow:hidden;color:#35e4aa;font-size:.62rem;font-weight:850;text-overflow:ellipsis;white-space:nowrap}
body.is-guest .iot-quick-settings i:first-child b{color:#f0fbf7}
.connection-info-card{display:none!important}
.resource-icon-svg svg{width:25px;height:25px;fill:none!important;stroke:currentColor!important;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.resource-icon-svg svg *{fill:none!important;stroke:currentColor!important;vector-effect:non-scaling-stroke}
@media(max-width:540px){body.is-guest .iot-connection-feature{grid-column:1/-1}body.is-guest .iot-connection-feature .feature-icon{margin-top:2px}body.is-guest .iot-connection-feature .iot-feature-copy>small{display:block!important}body.is-guest .iot-quick-settings{grid-template-columns:1.25fr .9fr .9fr}}

/* =========================================================
   V17.5 — privacy notice + mobile legal navigation
   ========================================================= */
.cookie-notice{position:fixed;z-index:9999;left:50%;bottom:18px;transform:translateX(-50%);width:min(1120px,calc(100% - 28px));display:flex;align-items:center;gap:16px;padding:13px 18px;border:1px solid rgba(45,227,163,.32);border-radius:999px;background:rgba(7,13,22,.96);box-shadow:0 18px 55px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.035);backdrop-filter:blur(18px);color:#c8d2cf}
.cookie-notice[hidden]{display:none!important}.cookie-notice-icon{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:rgba(45,227,163,.08);border:1px solid rgba(45,227,163,.14);color:#36e3a7}.cookie-notice-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.cookie-notice-copy{flex:1;min-width:0;font-size:.72rem;line-height:1.55;letter-spacing:.11em;text-transform:uppercase;color:#aeb8b5}.cookie-notice-actions{display:flex;align-items:center;gap:12px;flex:0 0 auto}.cookie-notice-details,.cookie-notice-ok{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 18px;border-radius:999px;text-decoration:none;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.cookie-notice-details{color:#aeb8b5}.cookie-notice-details:hover{color:#42e7ae}.cookie-notice-ok{min-width:102px;border:1px solid #20e7df;background:transparent;color:#20e7df;cursor:pointer}.cookie-notice-ok:hover{background:rgba(32,231,223,.08)}
.cookie-table{width:100%;margin-top:15px;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:14px}.cookie-table th,.cookie-table td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid rgba(255,255,255,.07);font-size:.82rem;line-height:1.55}.cookie-table th{color:#dff6ed;background:rgba(255,255,255,.035);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}.cookie-table td{color:#9fb7ae}.cookie-table tr:last-child td{border-bottom:0}.cookie-table code{color:#48e7ae;font-size:.78rem}.cookie-status{display:inline-flex;margin-top:12px;padding:7px 10px;border-radius:999px;background:rgba(45,227,163,.08);border:1px solid rgba(45,227,163,.16);color:#55e9b3;font-size:.74rem;font-weight:750}
@media(max-width:720px){
  body.legal-page .site-header{align-items:flex-start;gap:10px;padding-top:10px;padding-bottom:10px}
  body.legal-page .header-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}
  body.legal-page .legal-back{display:inline-flex!important;align-items:center;justify-content:center;min-height:34px;padding:7px 10px;font-size:.7rem;order:3}
  .cookie-notice{bottom:10px;width:calc(100% - 18px);border-radius:18px;padding:12px;gap:10px;align-items:flex-start}
  .cookie-notice-icon{width:30px;height:30px;flex-basis:30px}.cookie-notice-copy{font-size:.62rem;letter-spacing:.065em;line-height:1.45;padding-top:2px}.cookie-notice-actions{gap:5px;flex-direction:column;align-items:stretch}.cookie-notice-details,.cookie-notice-ok{min-height:32px;padding:0 10px;font-size:.61rem}.cookie-notice-ok{min-width:78px}
  .cookie-table{display:block;overflow-x:auto;white-space:normal}.cookie-table th,.cookie-table td{min-width:125px;padding:10px;font-size:.74rem}
}
@media(max-width:430px){body.legal-page .brand-copy small{display:none}body.legal-page .site-header{align-items:center}body.legal-page .header-actions{max-width:205px}.cookie-notice{align-items:center}.cookie-notice-icon{display:none}.cookie-notice-copy{font-size:.59rem}.cookie-notice-details,.cookie-notice-ok{font-size:.58rem}}


/* =========================================================
   V17.6 STABLE — Account center
   ========================================================= */
.account-link{display:inline-flex;align-items:center;gap:8px;min-height:39px;padding:4px 11px 4px 5px;border:1px solid rgba(45,227,163,.18);border-radius:999px;background:rgba(45,227,163,.055);color:#dcece6;text-decoration:none;font-size:.76rem;font-weight:750;transition:.16s ease}
.account-link:hover{border-color:rgba(45,227,163,.38);background:rgba(45,227,163,.1);color:#fff}.account-avatar{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,rgba(45,227,163,.28),rgba(18,166,122,.12));border:1px solid rgba(45,227,163,.38);color:#45e8af;font-size:.78rem;font-weight:900;box-shadow:0 0 18px rgba(45,227,163,.08)}
.account-page .legal-wrap{max-width:1100px}.account-hero{padding-bottom:22px}.account-hero-row{display:flex;align-items:center;gap:16px}.account-hero-avatar{width:62px;height:62px;display:grid;place-items:center;flex:0 0 62px;border-radius:18px;background:linear-gradient(145deg,rgba(45,227,163,.2),rgba(11,65,50,.28));border:1px solid rgba(45,227,163,.3);color:#48e8b0;font-size:1.55rem;font-weight:900;box-shadow:0 15px 35px rgba(0,0,0,.2)}.account-email{color:#8da89e;font-size:.83rem;word-break:break-all}.account-status{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:5px 9px;border:1px solid rgba(45,227,163,.15);border-radius:999px;background:rgba(45,227,163,.06);color:#4ae8b1;font-size:.67rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.account-status:before{content:"";width:6px;height:6px;border-radius:50%;background:#38e6aa;box-shadow:0 0 10px rgba(56,230,170,.7)}
.account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:4px 0 18px}.account-card{padding:22px;border:1px solid rgba(255,255,255,.075);border-radius:18px;background:linear-gradient(145deg,rgba(8,31,25,.86),rgba(5,20,17,.9));box-shadow:0 18px 45px rgba(0,0,0,.16)}.account-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.account-card-head span{color:#78958a;font-size:.65rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.account-card-head b{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:rgba(45,227,163,.08);color:#45e8af;font-size:1rem}.account-energy{font-size:2.1rem;font-weight:900;letter-spacing:-.04em;color:#f3fbf8}.account-energy small{font-size:.72rem;color:#78958a;font-weight:700;letter-spacing:0}.account-card p{margin:8px 0 0;color:#819b92;font-size:.77rem;line-height:1.55}.account-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px}.account-stat{padding:12px;border:1px solid rgba(255,255,255,.06);border-radius:12px;background:rgba(0,0,0,.12)}.account-stat small{display:block;color:#78958a;font-size:.64rem;text-transform:uppercase;letter-spacing:.05em}.account-stat strong{display:block;margin-top:4px;color:#eefaf6;font-size:1.35rem}.account-security-action{display:flex;align-items:center;justify-content:space-between;gap:14px}.account-security-action>div{min-width:0}.account-btn{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border:1px solid rgba(45,227,163,.28);border-radius:10px;background:rgba(45,227,163,.08);color:#49e8b1;text-decoration:none;font-size:.72rem;font-weight:800;cursor:pointer;white-space:nowrap}.account-btn:hover{background:rgba(45,227,163,.14)}.account-btn:disabled{opacity:.55;cursor:wait}.account-message{min-height:20px;margin-top:10px!important;color:#53e5af!important}.account-message.error{color:#ff9b9b!important}.account-server{grid-column:1/-1}.account-server-grid{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:8px}.account-server-grid>div{padding:11px 12px;border:1px solid rgba(255,255,255,.06);border-radius:11px;background:rgba(0,0,0,.12)}.account-server-grid small{display:block;color:#78958a;font-size:.6rem;text-transform:uppercase;letter-spacing:.06em}.account-server-grid strong{display:block;margin-top:4px;color:#eefaf6;font-size:.9rem}.account-server-grid>div:last-child strong{color:#45e8af}.account-note{margin:0 0 50px;text-align:center;color:#69877c;font-size:.69rem}
@media(max-width:700px){.account-link{padding-right:6px}.account-link>span:last-child{display:none}.account-grid{grid-template-columns:1fr}.account-server{grid-column:auto}.account-server-grid{grid-template-columns:1fr 1fr}.account-server-grid>div:first-child{grid-column:1/-1}.account-security-action{align-items:flex-start;flex-direction:column}.account-btn{width:100%}}
@media(max-width:430px){.account-avatar{width:27px;height:27px}.account-link{min-height:36px}.account-hero-row{align-items:flex-start}.account-hero-avatar{width:50px;height:50px;flex-basis:50px;border-radius:14px;font-size:1.25rem}.account-card{padding:18px}.account-server-grid{grid-template-columns:1fr}.account-server-grid>div:first-child{grid-column:auto}}

/* V17.6 FINAL — authenticated circuit-board background only (responsive) */
body.is-authenticated .ambient-bg,body.legal-page.account-page .ambient-bg{
  display:block!important;
  position:fixed!important;
  inset:0!important;
  background-image:url("dashboard-circuit-4k.jpg")!important;
  background-repeat:no-repeat!important;
  background-size:cover!important;
  background-position:center center!important;
  opacity:1!important;
  filter:none!important;
  transform:none!important;
}
body.is-authenticated .ambient-bg:before,body.legal-page.account-page .ambient-bg:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(2,15,12,.82) 0%,rgba(2,15,12,.70) 38%,rgba(2,15,12,.54) 68%,rgba(2,15,12,.62) 100%),linear-gradient(180deg,rgba(2,14,11,.42),rgba(2,15,12,.66));
}
body.is-authenticated .ambient-bg:after,body.legal-page.account-page .ambient-bg:after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:0!important;
  background:radial-gradient(circle at 75% 40%,rgba(45,227,163,.035),transparent 34%)!important;
}
body.is-authenticated .ambient-bg .circuit-grid,body.legal-page.account-page .ambient-bg .circuit-grid{display:none!important}

/* Tablet: retain the processor on the right while keeping content area calm. */
@media (max-width:1024px){
  body.is-authenticated .ambient-bg,body.legal-page.account-page .ambient-bg{background-position:66% center!important}
  body.is-authenticated .ambient-bg:before,body.legal-page.account-page .ambient-bg:before{background:linear-gradient(90deg,rgba(2,15,12,.84),rgba(2,15,12,.63)),linear-gradient(180deg,rgba(2,14,11,.46),rgba(2,15,12,.70))}
}
/* Mobile: cover the viewport without stretching; crop toward the circuit/processor side. */
@media (max-width:640px){
  body.is-authenticated .ambient-bg,body.legal-page.account-page .ambient-bg{background-position:72% center!important;background-size:cover!important}
  body.is-authenticated .ambient-bg:before,body.legal-page.account-page .ambient-bg:before{background:rgba(2,15,12,.69)}
}
@media (max-width:430px){
  body.is-authenticated .ambient-bg,body.legal-page.account-page .ambient-bg{background-position:76% center!important}
}

/* V17.8 — Sign Up anti-bot */
.signup-honeypot{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.recaptcha-box{min-height:78px;margin:12px 0 10px;display:flex;align-items:center;justify-content:center}
.recaptcha-box>div{max-width:100%}
.recaptcha-loading,.recaptcha-error{font-size:.78rem;color:#8ba79d;text-align:center}
.recaptcha-error{color:#ff9d9d}
@media(max-width:390px){.recaptcha-box{transform:scale(.90);transform-origin:center center;margin-left:-16px;margin-right:-16px}}

/* =========================================================
   V18.2 — dashboard visual patch only
   - clear spacing between dashboard hero and connection card
   - dashboard uses the same circuit-board treatment as Account
   ========================================================= */
body.is-authenticated .ambient-bg{
  display:block!important;
  position:fixed!important;
  inset:0!important;
  background-image:url("dashboard-circuit-4k.jpg")!important;
  background-repeat:no-repeat!important;
  background-size:cover!important;
  background-position:center center!important;
  opacity:1!important;
  filter:none!important;
  transform:none!important;
}
body.is-authenticated .ambient-bg:before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:linear-gradient(90deg,rgba(2,15,12,.82) 0%,rgba(2,15,12,.70) 38%,rgba(2,15,12,.54) 68%,rgba(2,15,12,.62) 100%),linear-gradient(180deg,rgba(2,14,11,.42),rgba(2,15,12,.66))!important;
}
body.is-authenticated .ambient-bg:after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:0!important;
  background:radial-gradient(circle at 75% 40%,rgba(45,227,163,.035),transparent 34%)!important;
}
body.is-authenticated .ambient-bg .circuit-grid{display:none!important}
body.is-authenticated #app>.toolbar{margin-bottom:14px!important}
body.is-authenticated #app>.connection-dashboard-card{margin-top:0!important;margin-bottom:18px!important}
@media(max-width:1024px){
  body.is-authenticated .ambient-bg{background-position:66% center!important}
  body.is-authenticated .ambient-bg:before{background:linear-gradient(90deg,rgba(2,15,12,.84),rgba(2,15,12,.63)),linear-gradient(180deg,rgba(2,14,11,.46),rgba(2,15,12,.70))!important}
}
@media(max-width:640px){
  body.is-authenticated .ambient-bg{background-position:72% center!important;background-size:cover!important}
  body.is-authenticated .ambient-bg:before{background:rgba(2,15,12,.69)!important}
  body.is-authenticated #app>.toolbar{margin-bottom:12px!important}
}
@media(max-width:430px){body.is-authenticated .ambient-bg{background-position:76% center!important}}

/* =========================================================
   V18.3 — dashboard background parity with Account
   Root cause fixed: legacy authenticated body pseudo-layers
   (smart-home image + near-opaque dark overlay) were still
   covering the circuit-board ambient background on Dashboard.
   ========================================================= */
body.is-authenticated::before,body.is-authenticated::after{
  content:none!important;
  display:none!important;
  background:none!important;
  filter:none!important;
  transform:none!important;
}
/* Keep the V18.2 spacing fix intact. The ambient background now
   remains the single dashboard backdrop and therefore uses the
   same image/overlay treatment already shared with Account. */
body.is-authenticated #app>.toolbar{margin-bottom:14px!important}
body.is-authenticated #app>.connection-dashboard-card{margin-top:0!important;margin-bottom:18px!important}
@media(max-width:640px){body.is-authenticated #app>.toolbar{margin-bottom:12px!important}}

/* Workspace shell and desktop layout. */
/* Web workspace layout is independent from Blynk Legacy mobile coordinates. */
body.is-authenticated .workspace-grid{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;grid-auto-rows:92px;grid-auto-flow:row;gap:12px;align-items:stretch;position:relative}


.workspace-editor{margin-bottom:18px;padding:18px;background:rgba(4,24,18,.72)!important;border-color:rgba(45,227,163,.18)!important;overflow:hidden}
.workspace-toolbar{margin-bottom:14px}.workspace-toolbar small{display:block;max-width:760px;line-height:1.45;color:#8da99f}.workspace-edit-grid{padding:12px;border-radius:14px;background-image:linear-gradient(rgba(71,218,164,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(71,218,164,.055) 1px,transparent 1px);background-size:calc((100% - 132px)/12 + 12px) 104px;border:1px dashed rgba(71,218,164,.18);min-height:220px}
.workspace-drag-handle{position:absolute!important;right:10px!important;top:9px!important;z-index:20!important;width:auto!important;min-width:0!important;height:28px!important;padding:0 9px!important;border-radius:8px!important;background:rgba(3,18,14,.88)!important;border:1px solid rgba(71,218,164,.35)!important;color:#a8d8c7!important;font-size:11px!important;box-shadow:0 4px 16px #0004!important;cursor:grab!important;touch-action:none}.workspace-drag-handle:active{cursor:grabbing!important}.workspace-drag-handle span{font-size:15px;margin-right:4px}.workspace-edit-grid>.is-dragging{z-index:50;opacity:.88;box-shadow:0 20px 50px #0008!important;border-color:rgba(71,218,164,.7)!important}
@media(max-width:950px){body.is-authenticated .workspace-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important}.workspace-edit-grid{background-image:none}.workspace-drag-handle{display:none!important}.workspace-toolbar small:after{content:" Pe tabletă, aranjarea este adaptată automat."}}
@media(max-width:620px){body.is-authenticated .workspace-grid{grid-template-columns:1fr!important;grid-auto-rows:auto}.workspace-editor{padding:12px}.workspace-drag-handle{display:none!important}.workspace-toolbar small:after{content:" Pe telefon, widgeturile sunt afișate automat pe o singură coloană."}}


/* Desktop workspace interaction and drag presentation. */
body.is-authenticated .workspace-grid{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;grid-auto-rows:90px!important;grid-auto-flow:row!important;gap:14px!important;align-items:stretch!important;position:relative!important;overflow:visible!important}


.workspace-editor{overflow:visible!important;padding:20px!important}.workspace-edit-grid{padding:14px!important;border-radius:16px!important;min-height:260px!important;background-size:calc((100% - 154px)/12 + 14px) 104px!important}

.workspace-edit-handle{position:absolute!important;right:89px!important;top:9px!important;z-index:31!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;width:30px!important;min-width:30px!important;height:30px!important;min-height:30px!important;padding:0!important;margin:0!important;border-radius:9px!important;background:rgba(2,18,13,.94)!important;border:1px solid rgba(71,218,164,.42)!important;color:#b9e7d7!important;font-size:16px!important;line-height:1!important;box-shadow:0 5px 18px rgba(0,0,0,.35)!important;cursor:pointer!important;opacity:.92!important}
.workspace-edit-handle:hover{border-color:rgba(71,218,164,.78)!important;background:rgba(7,37,27,.98)!important;transform:translateY(-1px)!important}
.workspace-drag-handle{position:absolute!important;right:9px!important;top:9px!important;z-index:30!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;width:auto!important;min-width:72px!important;max-width:90px!important;height:30px!important;min-height:30px!important;padding:0 9px!important;margin:0!important;border-radius:9px!important;background:rgba(2,18,13,.94)!important;border:1px solid rgba(71,218,164,.42)!important;color:#b9e7d7!important;font-size:11px!important;line-height:1!important;box-shadow:0 5px 18px rgba(0,0,0,.35)!important;cursor:grab!important;touch-action:none!important;opacity:.92!important}
.workspace-drag-handle:hover{border-color:rgba(71,218,164,.78)!important;background:rgba(7,37,27,.98)!important;transform:translateY(-1px)!important}.workspace-drag-handle:active{cursor:grabbing!important}.workspace-drag-handle span{font-size:16px!important;line-height:1!important}.workspace-drag-handle b{font:inherit!important;color:inherit!important}
.workspace-source-dragging{opacity:.22!important;filter:saturate(.55)!important}.workspace-drag-ghost{position:fixed!important;z-index:10050!important;margin:0!important;pointer-events:none!important;opacity:.97!important;box-shadow:0 28px 70px rgba(0,0,0,.62)!important;border-color:rgba(71,218,164,.72)!important;will-change:transform!important;transition:none!important}.workspace-drag-ghost *{pointer-events:none!important}.workspace-drop-slot{grid-column:var(--drop-x) / span var(--drop-w)!important;grid-row:var(--drop-y) / span var(--drop-h)!important;border:2px dashed rgba(71,218,164,.75)!important;border-radius:15px!important;background:rgba(71,218,164,.08)!important;box-shadow:inset 0 0 28px rgba(71,218,164,.05)!important;pointer-events:none!important;z-index:5!important}.workspace-drag-active,.workspace-drag-active *{cursor:grabbing!important}
/* Workspace must never alter the visual language of the actual controls. */

@media(max-width:950px){body.is-authenticated .workspace-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important;grid-auto-rows:auto!important}.workspace-drag-handle,.workspace-edit-handle{display:none!important}}
@media(max-width:620px){body.is-authenticated .workspace-grid{grid-template-columns:1fr!important}.workspace-editor{padding:12px!important}}


/* Desktop precision grid: 24 columns. */
@media(min-width:951px){
body.is-authenticated .workspace-grid{grid-template-columns:repeat(24,minmax(0,1fr))!important;gap:8px!important;grid-auto-rows:90px!important;grid-auto-flow:row!important}
.workspace-edit-grid{background-image:linear-gradient(rgba(71,218,164,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(71,218,164,.045) 1px,transparent 1px)!important;background-size:calc((100% - 184px)/24 + 8px) 98px!important;background-position:14px 14px!important}
}
@media(max-width:950px) and (min-width:621px){body.is-authenticated .workspace-grid{grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:10px!important}}

/* Widget presentation is maintained in assets/widgets/widgets.css. */

/* Project Settings structure. */
.project-settings-modal{max-width:620px;max-height:90vh;overflow:auto}.ps-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid rgba(127,127,127,.18)}.ps-switch input{width:44px;height:24px;accent-color:#23b574}.ps-actions{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.ps-nav,.ps-device{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;margin:10px 0}.ps-device{flex-direction:column;align-items:flex-start}.ps-device small{display:block;opacity:.7;margin-top:4px}.ps-section{margin:18px 0;padding-top:8px;border-top:1px solid rgba(127,127,127,.18)}.ps-token{padding:10px;border-radius:8px;background:rgba(127,127,127,.12);word-break:break-all;font-family:monospace}.ps-token-button{width:100%;font-family:monospace;letter-spacing:.5px}.ps-checks{display:grid;gap:8px;margin:12px 0}.qr-modal{max-width:380px}.qr-target{display:flex;justify-content:center;padding:18px;background:#fff;border-radius:10px;margin:10px auto}.qr-target img,.qr-target canvas{max-width:100%}

/* Project Settings visual styling. */
.project-settings-modal{
  width:min(680px,calc(100vw - 28px));max-width:680px;max-height:90vh;overflow:auto;
  padding:0;border:1px solid rgba(53,228,170,.18);border-radius:22px;
  background:linear-gradient(180deg,rgba(14,29,26,.99),rgba(8,19,17,.99));
  box-shadow:0 28px 90px rgba(0,0,0,.48),0 0 0 1px rgba(255,255,255,.025) inset;
}
.project-settings-modal .modal-title{position:sticky;top:0;z-index:4;padding:20px 22px 16px;background:rgba(10,24,21,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(53,228,170,.12)}
.project-settings-modal .modal-title h3{margin:0;color:#f1fbf7;font-size:1.12rem;letter-spacing:-.01em}
.project-settings-modal .modal-title small{display:block;margin-top:4px;color:#73978b;font-size:.72rem}
.project-settings-modal .modal-title .icon-btn{width:36px;height:36px;padding:0;border-radius:11px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);color:#a9c5bb;font-size:1.35rem;line-height:1}
.project-settings-modal .modal-title .icon-btn:hover{background:rgba(53,228,170,.09);border-color:rgba(53,228,170,.28);color:#45e8ae}
.project-settings-modal #psBody{padding:20px 22px 22px}
.project-settings-modal #psBody>label{display:block;margin:0 0 16px;color:#8daaa0;font-size:.7rem;font-weight:800;letter-spacing:.065em;text-transform:uppercase}
.project-settings-modal input[type=text],.project-settings-modal input:not([type]),.project-settings-modal select{width:100%;box-sizing:border-box;margin-top:7px;padding:12px 13px;border-radius:12px;border:1px solid rgba(255,255,255,.09);outline:none;background:rgba(255,255,255,.045);color:#e9f8f2;box-shadow:0 1px 0 rgba(255,255,255,.025) inset;transition:.18s ease}
.project-settings-modal input:focus,.project-settings-modal select:focus{border-color:rgba(53,228,170,.48);box-shadow:0 0 0 3px rgba(53,228,170,.08)}
.project-settings-modal button{transition:transform .15s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease}
.project-settings-modal button:active{transform:translateY(1px)}
.project-settings-modal .ps-nav,.project-settings-modal .ps-device{box-sizing:border-box;padding:13px 14px;border:1px solid rgba(255,255,255,.075);border-radius:14px;background:rgba(255,255,255,.035);color:#e9f8f2;box-shadow:none}
.project-settings-modal .ps-nav:hover,.project-settings-modal .ps-device:hover{background:rgba(53,228,170,.055);border-color:rgba(53,228,170,.22)}
.project-settings-modal .ps-nav{font-size:.76rem;font-weight:850;letter-spacing:.055em}
.project-settings-modal .ps-nav span{color:#49e6ae;font-size:.9rem}
.project-settings-modal .ps-section{margin:17px 0 5px;padding:16px;border:1px solid rgba(255,255,255,.065);border-radius:16px;background:rgba(255,255,255,.025)}
.project-settings-modal .ps-section h4,.project-settings-modal #psBody>h4{margin:0 0 10px;color:#779b8f;font-size:.69rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.project-settings-modal .ps-actions{gap:8px;margin:8px 0 0}
.project-settings-modal .ps-actions button,.project-settings-modal button.secondary{padding:9px 13px;border:1px solid rgba(53,228,170,.16);border-radius:11px;background:rgba(53,228,170,.055);color:#9ee9cc;font-weight:750;box-shadow:none}
.project-settings-modal .ps-actions button:hover,.project-settings-modal button.secondary:hover{background:rgba(53,228,170,.11);border-color:rgba(53,228,170,.3);color:#c5f7e5}
.project-settings-modal .ps-row{min-height:48px;margin:8px 0;padding:11px 13px;border:1px solid rgba(255,255,255,.065);border-radius:14px;background:rgba(255,255,255,.027)}
.project-settings-modal .ps-row b{color:#d9eee6;font-size:.78rem;font-weight:700;letter-spacing:.005em}
/* true iOS/Blynk-like switches; markup already contains input + span */
.project-settings-modal .ps-switch{position:relative;display:inline-flex;align-items:center;flex:0 0 auto;width:48px;height:27px;cursor:pointer}
.project-settings-modal .ps-switch input{position:absolute;inset:0;width:48px;height:27px;margin:0;opacity:0;cursor:pointer;z-index:2}
.project-settings-modal .ps-switch span{position:absolute;inset:0;border-radius:999px;background:#263a34;border:1px solid rgba(255,255,255,.09);box-shadow:inset 0 1px 3px rgba(0,0,0,.28);transition:.2s ease}
.project-settings-modal .ps-switch span:after{content:"";position:absolute;width:21px;height:21px;left:2px;top:2px;border-radius:50%;background:#d9e5e1;box-shadow:0 2px 7px rgba(0,0,0,.38);transition:.2s cubic-bezier(.2,.8,.2,1)}
.project-settings-modal .ps-switch input:checked+span{background:linear-gradient(135deg,#24c98d,#38e8ad);border-color:rgba(71,239,180,.55);box-shadow:0 0 0 3px rgba(53,228,170,.07),inset 0 1px 1px rgba(255,255,255,.2)}
.project-settings-modal .ps-switch input:checked+span:after{transform:translateX(21px);background:#fff}
.project-settings-modal .ps-switch input:focus-visible+span{box-shadow:0 0 0 3px rgba(53,228,170,.18)}
.project-settings-modal .modal-actions{margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.065);gap:8px}
.project-settings-modal .modal-actions button:not(.secondary):not(.danger){padding:10px 17px;border:1px solid rgba(58,238,175,.42);border-radius:11px;background:linear-gradient(135deg,#20bd82,#34dfa5);color:#05241a;font-weight:900;box-shadow:0 8px 22px rgba(31,194,132,.14)}
.project-settings-modal .modal-actions button:not(.secondary):not(.danger):hover{filter:brightness(1.07);box-shadow:0 10px 26px rgba(31,194,132,.22)}
.project-settings-modal button.danger{padding:9px 13px;border:1px solid rgba(255,100,111,.22);border-radius:11px;background:rgba(255,74,89,.055);color:#ff9aa3;font-weight:760;box-shadow:none}
.project-settings-modal button.danger:hover{background:rgba(255,74,89,.11);border-color:rgba(255,100,111,.36)}
.project-settings-modal .device-list{display:grid;gap:8px;margin:10px 0 14px}
.project-settings-modal .ps-device{margin:0;gap:3px}
.project-settings-modal .ps-device b{font-size:.82rem;color:#e5f5ef}
.project-settings-modal .ps-device small{font-size:.68rem;color:#718f85;opacity:1}
.project-settings-modal .ps-token,.project-settings-modal .ps-token-button{padding:11px 12px;border:1px solid rgba(53,228,170,.12);border-radius:11px;background:rgba(0,0,0,.2);color:#73e9bc;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem}
.project-settings-modal .ps-token-button:hover{background:rgba(53,228,170,.055);border-color:rgba(53,228,170,.24)}
.project-settings-modal .ps-checks{gap:7px}
.project-settings-modal .ps-checks label{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid rgba(255,255,255,.06);border-radius:11px;background:rgba(255,255,255,.025);color:#cfe4dc;font-size:.76rem}
.project-settings-modal .ps-checks input{accent-color:#2ddba0}
.project-settings-modal #merr{margin:0 22px 20px}
@media(max-width:640px){.project-settings-modal{width:calc(100vw - 16px);border-radius:18px}.project-settings-modal #psBody{padding:16px}.project-settings-modal .modal-title{padding:17px 16px 14px}.project-settings-modal .ps-row{padding:10px 11px}.project-settings-modal .modal-actions{align-items:stretch}.project-settings-modal .modal-actions button{flex:1 1 auto}}

/* Widget-specific editor styling is maintained in assets/widgets/widgets.css. */

/* ================================================================
   PROJECT POWER CONTROL
   Global application control; intentionally not part of widget CSS.
   ================================================================ */
body.is-authenticated #projectPower.project-play{background:rgba(45,227,163,.16)!important;color:#49e6ad!important;border-color:rgba(73,230,173,.35)!important;font-weight:800}
body.is-authenticated #projectPower.project-stop{background:rgba(248,113,113,.12)!important;color:#fca5a5!important;border-color:rgba(248,113,113,.28)!important;font-weight:800}
body.is-authenticated #projectPower:disabled{opacity:.5!important;cursor:wait}

/* =========================================================
   WORKSPACE LAYOUT — RESIZE + RESPONSIVE WEB
   Desktop keeps the saved 24-column geometry. Smaller screens
   reflow automatically without overwriting the saved desktop layout.
   ========================================================= */
.workspace-resize-handle{position:absolute!important;right:7px!important;bottom:7px!important;z-index:31!important;width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;padding:0!important;margin:0!important;display:grid!important;place-items:center!important;border-radius:9px!important;background:rgba(2,18,13,.94)!important;border:1px solid rgba(71,218,164,.42)!important;color:#b9e7d7!important;box-shadow:0 5px 18px rgba(0,0,0,.35)!important;cursor:nwse-resize!important;touch-action:none!important;opacity:.94!important}
.workspace-resize-handle:hover{border-color:rgba(71,218,164,.82)!important;background:rgba(7,37,27,.98)!important}.workspace-resize-handle span{font-size:17px!important;line-height:1!important}.workspace-source-resizing{z-index:40!important;border-color:rgba(71,218,164,.68)!important;box-shadow:0 18px 45px rgba(0,0,0,.35)!important}.workspace-resize-active,.workspace-resize-active *{cursor:nwse-resize!important}
@media(max-width:950px){.workspace-resize-handle{display:none!important}.workspace-toolbar small:after{content:" Pe ecrane mici, layoutul este reașezat automat fără să modifice aranjarea salvată pe desktop."}}
@media(max-width:950px) and (min-width:621px){body.is-authenticated .workspace-grid{grid-template-columns:repeat(2,minmax(280px,1fr))!important;grid-auto-rows:auto!important;gap:12px!important}body.is-authenticated .workspace-grid>.blynk-widget,body.is-authenticated .workspace-grid>.blynk-widget.ws-positioned{grid-column:auto!important;grid-row:auto!important;width:100%!important;min-width:0!important;min-height:170px!important;height:auto!important}}
@media(max-width:620px){body.is-authenticated .workspace-grid{grid-template-columns:minmax(0,1fr)!important;grid-auto-rows:auto!important;gap:12px!important}body.is-authenticated .workspace-grid>.blynk-widget,body.is-authenticated .workspace-grid>.blynk-widget.ws-positioned{grid-column:1!important;grid-row:auto!important;width:100%!important;min-width:0!important;min-height:170px!important;height:auto!important}.workspace-grid .live-meta{gap:6px!important;flex-wrap:wrap!important}.workspace-grid .live-meta [data-role="status"]{max-width:100%!important;overflow-wrap:anywhere!important;word-break:break-word!important}.workspace-grid .blynk-widget header{padding-right:0!important}}
