:root{--accent:#4f8ef7;--accent2:#7c3aed;--btn-primary:#4f8ef7;--progress-color:#4f8ef7;--radius:8px;--radius-sm:6px;--radius-lg:12px}*,::after,::before{box-sizing:border-box}html{height:100dvh;overflow:hidden}body{min-height:100dvh;max-height:100dvh;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;background:#030712}body>div{opacity:0;pointer-events:none;transition:opacity .2s ease}html.tw-ready body>div{opacity:1;pointer-events:auto}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#374151;border-radius:4px}html.light ::-webkit-scrollbar-thumb{background:#cbd5e1}.btn-primary{background:var(--btn-primary);color:#fff;border:none;cursor:pointer;transition:filter .18s,box-shadow .18s;border-radius:var(--radius)}.btn-primary:hover{filter:brightness(1.18);box-shadow:0 4px 16px rgba(79,142,247,.35)}.btn-ghost{background:0 0;border:1px solid #374151;color:#9ca3af;cursor:pointer;transition:background .18s,border-color .18s,color .18s;border-radius:var(--radius)}.btn-ghost:hover{background:#1f2937;border-color:#6b7280;color:#f3f4f6}html.light .btn-ghost{border-color:#cbd5e1;color:#64748b;background:#fff}html.light .btn-ghost:hover{background:#f1f5f9;border-color:#94a3b8;color:#0f172a}.btn-skip{background:0 0;border:none;cursor:pointer;color:#6b7280;transition:color .18s}.btn-skip:hover{color:#f3f4f6}html.light .btn-skip:hover{color:#0f172a}.step-item{position:relative;flex:1}.step-item:not(:last-child)::after{content:'';position:absolute;top:14px;left:calc(50% + 17px);right:calc(-50% + 17px);height:2px;background:#374151;transition:background .3s}.step-item.completed:not(:last-child)::after{background:#22c55e}.step-item.skipped:not(:last-child)::after{background:#ef4444}html.light .step-item:not(:last-child)::after{background:#e2e8f0}.signal-bar{display:flex;align-items:flex-end;gap:2px;height:16px;flex-shrink:0}.signal-bar span{width:4px;border-radius:2px}.signal-bar span:nth-child(1){height:4px}.signal-bar span:nth-child(2){height:8px}.signal-bar span:nth-child(3){height:12px}.signal-bar span:nth-child(4){height:16px}.signal-bar span{background:#2d3748}.signal-bar.s4 span{background:#16a34a}.signal-bar.s3 span:nth-child(-n+3){background:#c3cc16}.signal-bar.s3 span:nth-child(4){background:#2d3748}.signal-bar.s2 span:nth-child(-n+2){background:#f97316}.signal-bar.s2 span:nth-child(3),.signal-bar.s2 span:nth-child(4){background:#2d3748}.signal-bar.s1 span:nth-child(1){background:#ef4444}.signal-bar.s1 span:nth-child(2),.signal-bar.s1 span:nth-child(3),.signal-bar.s1 span:nth-child(4){background:#2d3748}html.light .signal-bar span{background:#e2e8f0}html.light .signal-bar.s4 span{background:#16a34a}html.light .signal-bar.s3 span:nth-child(-n+3){background:#c3cc16}html.light .signal-bar.s3 span:nth-child(4){background:#e2e8f0}html.light .signal-bar.s2 span:nth-child(-n+2){background:#f97316}html.light .signal-bar.s2 span:nth-child(3),html.light .signal-bar.s2 span:nth-child(4){background:#e2e8f0}html.light .signal-bar.s1 span:nth-child(1){background:#ef4444}html.light .signal-bar.s1 span:nth-child(2),html.light .signal-bar.s1 span:nth-child(3),html.light .signal-bar.s1 span:nth-child(4){background:#e2e8f0}.toggle-input{opacity:0;width:0;height:0;position:absolute}.toggle-track{display:block;width:44px;height:24px;border-radius:999px;background:#374151;cursor:pointer;position:relative;transition:background .25s;flex-shrink:0}.toggle-track::before{content:'';position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .25s}.toggle-input:checked+.toggle-track{background:var(--accent)}.toggle-input:checked+.toggle-track::before{transform:translateX(20px)}html.light .toggle-track{background:#cbd5e1}.dropzone{border:2px dashed #374151;border-radius:var(--radius-lg);transition:border-color .25s,background .25s;cursor:pointer}.dropzone:hover{border-color:#4b5563}.dropzone.drag-over{border-color:var(--accent);background:rgba(79,142,247,.08)}html.light .dropzone{border-color:#cbd5e1}html.light .dropzone:hover{border-color:#94a3b8}@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fadeUp .25s ease}@keyframes spin{to{transform:rotate(360deg)}}.spinning{animation:spin 1s linear infinite}@keyframes pop{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.pop{animation:pop .4s cubic-bezier(.175,.885,.32,1.275)}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}.pulsing{animation:pulse 2s infinite}.info-more-ico-expanded{transform:rotate(180deg);transition:transform .3s ease}.info-more-ico-collapsed{transform:rotate(0);transition:transform .3s ease}.info-list-wrap{position:relative;overflow:hidden;transition:max-height .35s ease}.info-fade{position:absolute;bottom:0;left:0;right:0;height:48px;pointer-events:none;transition:opacity .3s}.info-fade-dark{background:linear-gradient(to bottom,transparent,#111827)}.info-fade-light{display:none}html.light .info-fade-dark{display:none}html.light .info-fade-light{display:block;background:linear-gradient(to bottom,transparent,#fff)}.c-card{background:#111827;border:1px solid #1f2937;border-radius:var(--radius-lg);box-shadow:0 20px 60px rgba(0,0,0,.5);overflow:hidden}.c-header{background:linear-gradient(135deg,#111827,#1a2235);border-bottom:1px solid #1f2937}.c-stepper{border-bottom:1px solid #1f2937}.c-footer{background:#0f172a;border-top:1px solid #1f2937}.info-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid #1a2235;font-size:11px}.info-row:last-child{border-bottom:none}.info-row .ikey{color:#6b7280}.info-row .ival{font-weight:600;color:#d1d5db;text-align:right;margin-left:8px;word-break:break-all}.badge-ap{display:inline-block;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:700;background:rgba(245,158,11,.15);color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.badge-sta{display:inline-block;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:700;background:rgba(34,197,94,.15);color:#4ade80;border:1px solid rgba(34,197,94,.3)}.badge-disconnected{display:inline-block;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:700;background:rgba(239,68,68,.15);color:#f87171;border:1px solid rgba(239,68,68,.3)}.field-label{display:block;font-size:10px;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}.field-input{width:100%;padding:9px 12px;background:#1f2937;border:1px solid #374151;border-radius:var(--radius);color:#f3f4f6;font-size:13px;outline:0;transition:border-color .2s,box-shadow .2s;appearance:none;-webkit-appearance:none}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(79,142,247,.18)}.form-group{margin-bottom:12px}.eye-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:0 0;border:none;color:#6b7280;cursor:pointer;padding:4px;font-size:13px;transition:color .2s}.eye-btn:hover{color:#d1d5db}.svc-block{margin-bottom:5px;border-radius:var(--radius);overflow:hidden;border:1px solid #1f2937}.svc-row{display:flex;align-items:center;justify-content:space-between;padding:9px 13px;background:#1a2235}.svc-ico{width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;background:rgba(79,142,247,.15);color:#60a5fa}.svc-name{font-size:13px;font-weight:600;color:#f3f4f6}.svc-desc{font-size:11px;color:#6b7280}.svc-params{padding:11px 13px;background:rgba(79,142,247,.04);border-top:1px solid rgba(79,142,247,.15)}.divider{border:none;border-top:1px solid #1a2235;margin:10px 0}.qbtn{display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:var(--radius);font-size:12px;font-weight:600;cursor:pointer;border:1px solid #1f2937;background:#1a2235;color:#9ca3af;transition:all .2s;text-decoration:none;white-space:nowrap}.qbtn:hover{border-color:#374151;color:#f3f4f6;background:#1f2937}.qbtn .qbtn-ico{font-size:14px;flex-shrink:0}.topbar-btn{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#1f2937;border:1px solid #374151;color:#9ca3af;cursor:pointer;font-size:13px;transition:all .2s;flex-shrink:0}.topbar-btn:hover{border-color:#6b7280;color:#f3f4f6;background:#374151}.lang-wrap{position:relative;display:inline-block}.lang-wrap select{appearance:none;-webkit-appearance:none;background:#1f2937;border:1px solid #374151;color:#9ca3af;font-size:11px;border-radius:999px;padding:5px 24px 5px 26px;cursor:pointer;outline:0;transition:border-color .2s,color .2s}.lang-wrap select:hover{border-color:#6b7280;color:#f3f4f6}.lang-wrap .lang-globe{position:absolute;left:8px;top:50%;transform:translateY(-50%);font-size:10px;color:#6b7280;pointer-events:none}.lang-wrap .lang-chevron{position:absolute;right:7px;top:50%;transform:translateY(-50%);font-size:9px;color:#6b7280;pointer-events:none}.mode-badge{display:flex;align-items:center;gap:6px;flex-shrink:0;padding:4px 10px;border-radius:999px;font-size:11px;background:#1f2937;border:1px solid #374151;color:#9ca3af}.review-section{margin-bottom:16px}.review-section h3{font-size:10px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px;padding-bottom:5px;border-bottom:1px solid #1a2235}.review-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:12px;border-bottom:1px solid #111827;gap:10px}.review-row:last-child{border-bottom:none}.review-row .rkey{color:#9ca3af;flex-shrink:0}.review-row .rval{font-weight:600;color:#f3f4f6;text-align:right;word-break:break-all}.wifi-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius);cursor:pointer;background:#1a2235;border:1px solid #1f2937;transition:all .2s}.wifi-item:hover{border-color:rgba(79,142,247,.4);background:rgba(79,142,247,.06)}.wifi-item.selected{border-color:var(--accent);background:rgba(79,142,247,.1)}.wifi-ssid{font-size:13px;font-weight:600;color:#f3f4f6}.wifi-meta{font-size:11px;color:#6b7280}.scan-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:8px;border-radius:var(--radius);font-size:12px;font-weight:600;cursor:pointer;background:#1a2235;border:1px solid #1f2937;color:#9ca3af;transition:all .2s}.scan-btn:hover{background:#1f2937;border-color:#374151;color:#f3f4f6}.pbar-track{height:4px;border-radius:999px;background:#1f2937;overflow:hidden}.pbar-fill{height:100%;border-radius:999px;background:var(--progress-color);transition:width .5s ease}.loader-spinner{border-radius:50%;border-style:solid;border-top-color:var(--accent);animation:spin 1s linear infinite}.loader-spinner-dark{border-color:#1f2937;border-top-color:var(--accent)}.loader-spinner-light{border-color:#e2e8f0;border-top-color:var(--accent)}.modal-overlay{position:fixed;inset:0;z-index:50;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.65);backdrop-filter:blur(4px);padding:16px}.modal-overlay.open{display:flex}.modal-box{width:100%;max-width:420px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.5);background:#111827;border:1px solid #1f2937}.modal-header{padding:16px 20px;border-bottom:1px solid #1f2937;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.modal-body{padding:18px 20px;display:flex;flex-direction:column;gap:12px}.modal-footer{padding:12px 20px;border-top:1px solid #1f2937;display:flex;align-items:center;justify-content:flex-end;gap:8px}.modal-title{font-weight:700;font-size:14px;color:#f3f4f6}.modal-sub{font-size:11px;color:#6b7280;margin-top:2px}.step-title{font-size:14px;font-weight:700;color:#d1d5db;margin-bottom:2px}.step-sub{font-size:11px;color:#6b7280;margin-bottom:14px}.svc-divider{border:none;border-top:1px solid #1f2937;margin:12px 0}.svc-section-label{color:#9ca3af}html.light body{background:#e8edf3}html.light .c-card{background:#fff;border-color:#e2e8f0;box-shadow:0 8px 32px rgba(0,0,0,.1)}html.light .c-header{background:linear-gradient(135deg,#fff,#f8fafc);border-color:#e2e8f0}html.light .c-stepper{border-color:#e2e8f0;background:#f8fafc}html.light .c-footer{background:#f8fafc;border-color:#e2e8f0}html.light .step-title{color:#374151}html.light .step-sub{color:#64748b}html.light .info-row{border-color:#f1f5f9}html.light .info-row .ikey{color:#64748b}html.light .info-row .ival{color:#1e293b}html.light .field-input{background:#f8fafc;border-color:#e2e8f0;color:#0f172a}html.light .field-input:focus{border-color:var(--accent)}html.light .field-label{color:#64748b}html.light .eye-btn{color:#94a3b8}html.light .eye-btn:hover{color:#475569}html.light .svc-block{border-color:#e2e8f0}html.light .svc-row{background:#f8fafc}html.light .svc-name{color:#0f172a}html.light .svc-desc{color:#64748b}html.light .svc-params{background:rgba(79,142,247,.03);border-color:rgba(79,142,247,.15)}html.light .svc-divider{border-color:#e2e8f0}html.light .svc-section-label{color:#64748b}html.light .review-section h3{border-color:#e2e8f0;color:#94a3b8}html.light .review-row{border-color:#f1f5f9}html.light .review-row .rkey{color:#64748b}html.light .review-row .rval{color:#0f172a}html.light .topbar-btn{background:#fff;border-color:#e2e8f0;color:#475569}html.light .topbar-btn:hover{border-color:#94a3b8;color:#0f172a;background:#f1f5f9}html.light .lang-wrap select{background:#fff;border-color:#e2e8f0;color:#475569}html.light .lang-wrap select:hover{border-color:#94a3b8;color:#0f172a}.lang-wrap .lang-chevron,html.light .lang-wrap .lang-globe{color:#94a3b8}html.light .qbtn{background:#fff;border-color:#e2e8f0;color:#475569}html.light .qbtn:hover{background:#f1f5f9;border-color:#94a3b8;color:#0f172a}html.light .wifi-item{background:#f8fafc;border-color:#e2e8f0}html.light .wifi-item:hover{border-color:rgba(79,142,247,.4);background:rgba(79,142,247,.04)}html.light .wifi-item.selected{background:rgba(79,142,247,.08);border-color:var(--accent)}html.light .wifi-ssid{color:#0f172a}html.light .wifi-meta{color:#64748b}html.light .scan-btn{background:#fff;border-color:#e2e8f0;color:#64748b}html.light .scan-btn:hover{background:#f1f5f9;border-color:#94a3b8;color:#0f172a}html.light .pbar-track{background:#e2e8f0}html.light .modal-box{background:#fff;border-color:#e2e8f0}html.light .modal-header{border-color:#e2e8f0}html.light .modal-footer{border-color:#e2e8f0;background:#f8fafc}html.light .modal-title{color:#0f172a}html.light .modal-sub{color:#64748b}html.light .modal-body .field-input{background:#f8fafc;border-color:#e2e8f0;color:#0f172a}html.light .modal-body .field-label{color:#64748b}html.light .dropzone{border-color:#cbd5e1}html.light .dropzone p{color:#475569}html.light .dropzone small{color:#94a3b8}html.light #ota-filename{color:var(--accent)}html.light .divider{border-color:#e2e8f0}html.light #hdr-desc{color:#64748b}html.light .mode-badge{background:#f1f5f9;border-color:#e2e8f0;color:#475569}html.light .badge-ap{background:rgba(245,158,11,.1);color:#d97706;border-color:rgba(245,158,11,.3)}html.light .badge-sta{background:rgba(34,197,94,.1);color:#16a34a;border-color:rgba(34,197,94,.3)}html.light .badge-disconnected{background:rgba(239,68,68,.1);color:#dc2626;border-color:rgba(239,68,68,.3)}html.light .btn-skip{color:#94a3b8}html.light .btn-skip:hover{color:#0f172a}html.light .wifi-pass-alert{background:rgba(79,142,247,.06)!important;border-color:rgba(79,142,247,.25)!important;color:#2563eb!important}html.light .wifi-pass-alert strong{color:#1d4ed8!important}html.light .reconnect-alert{background:rgba(245,158,11,.12)!important;border-color:rgba(245,158,11,.4)!important;color:#92400e!important}html.light .reconnect-alert strong{color:#78350f!important}html.light .reconnect-box{background:#f8fafc!important;border-color:#e2e8f0!important}html.light .reconnect-box p{color:#64748b!important}html.light .reconnect-box a{color:var(--accent)!important}html.light .info-more-btn{color:var(--accent)}html.light .result-title{color:#0f172a}html.light .result-desc{color:#64748b}html.light .saving-title-el{color:#0f172a!important}html.light .saving-desc-el{color:#64748b!important}html.light .mc-desc-text{color:#64748b}