:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;--bg: #1c1c1e;--surface: #2c2c2e;--surface-hover: #3a3a3c;--border: rgba(255, 255, 255, .08);--text: #f5f5f7;--text-secondary: rgba(255, 255, 255, .55);--accent: #0a84ff;--accent-hover: #409cff;--green: #30d158;--green-bg: rgba(48, 209, 88, .12);--red: #ff453a;--yellow: #ffd60a;--radius: 12px;--radius-sm: 8px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh;background:var(--bg);color:var(--text)}.app{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.panel{width:100%;max-width:420px;background:var(--surface);border-radius:16px;overflow:hidden;box-shadow:0 8px 32px #0006}.panel-header{padding:20px 20px 16px;border-bottom:1px solid var(--border)}.panel-title-row{display:flex;align-items:center;gap:10px;margin-bottom:16px;color:var(--text)}.panel-title-row h1{font-size:1.25rem;font-weight:600;letter-spacing:-.01em}.toggle-row{display:flex;align-items:center;justify-content:space-between;cursor:pointer}.toggle-label{font-size:.95rem;font-weight:500}.toggle-switch{width:51px;height:31px;border-radius:16px;background:var(--surface-hover);position:relative;transition:background .2s}.toggle-switch.on{background:var(--green)}.toggle-knob{width:27px;height:27px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:transform .2s;box-shadow:0 1px 3px #0000004d}.toggle-switch.on .toggle-knob{transform:translate(20px)}.connected-section{padding:12px 20px 0}.section-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:8px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.btn-refresh{display:flex;align-items:center;gap:5px;background:none;border:none;color:var(--accent);font-size:.8rem;font-weight:500;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .15s}.btn-refresh:hover:not(:disabled){background:#0a84ff1a}.btn-refresh:disabled{opacity:.5;cursor:default}.networks-section{padding:12px 20px 8px}.network-list{display:flex;flex-direction:column;gap:2px;max-height:420px;overflow-y:auto}.network-list::-webkit-scrollbar{width:6px}.network-list::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.network-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 14px;background:none;border:none;border-radius:var(--radius-sm);color:var(--text);cursor:pointer;transition:background .12s;text-align:left;font-family:inherit}.network-item:hover:not(:disabled){background:var(--surface-hover)}.network-item:disabled{opacity:.6;cursor:default}.network-item.connected,.network-item.active{background:var(--green-bg)}.network-item.active{border-left:3px solid var(--green)}.network-left{display:flex;align-items:center;gap:12px;min-width:0}.signal-wrap{flex-shrink:0;width:24px;display:flex;align-items:center;justify-content:center}.network-info{min-width:0}.network-ssid{font-size:.95rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.lock-badge{color:var(--text-secondary);display:inline-flex;align-items:center}.network-meta{font-size:.75rem;color:var(--text-secondary);margin-top:1px}.signal-pct{font-size:.8rem;color:var(--text-secondary);font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:8px}.btn-disconnect{background:none;border:1px solid var(--red);color:var(--red);font-size:.8rem;font-weight:500;padding:5px 14px;border-radius:6px;cursor:pointer;transition:all .15s;flex-shrink:0;font-family:inherit}.btn-disconnect:hover{background:#ff453a1f}.empty-state{display:flex;flex-direction:column;align-items:center;gap:10px;padding:40px 20px;color:var(--text-secondary);font-size:.9rem}.panel-footer{padding:12px 20px 16px;border-top:1px solid var(--border);margin-top:4px}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-secondary);cursor:pointer}.checkbox-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:100;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.dialog{background:var(--surface);border-radius:16px;padding:28px 24px 24px;width:90%;max-width:340px;box-shadow:0 16px 48px #00000080;animation:slideUp .2s ease}@keyframes slideUp{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.dialog-icon{width:48px;height:48px;border-radius:50%;background:#0a84ff1f;color:var(--accent);display:grid;place-items:center;margin:0 auto 16px}.dialog h2{font-size:1.05rem;font-weight:600;text-align:center;margin-bottom:4px}.dialog-sub{font-size:.8rem;color:var(--text-secondary);text-align:center;margin-bottom:20px;line-height:1.4}.input-group{margin-bottom:20px}.input-group label{display:block;font-size:.8rem;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.input-wrap{display:flex;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;transition:border-color .15s}.input-wrap:focus-within{border-color:var(--accent)}.input-wrap input{flex:1;background:none;border:none;color:var(--text);padding:10px 12px;font-size:.95rem;font-family:inherit;outline:none;min-width:0}.input-wrap input::placeholder{color:#ffffff40}.btn-show{background:none;border:none;color:var(--accent);font-size:.8rem;font-weight:500;padding:0 12px;cursor:pointer;font-family:inherit;white-space:nowrap}.input-error{color:var(--red);font-size:.75rem;margin-top:6px}.dialog-actions{display:flex;gap:10px}.dialog-actions button{flex:1;padding:10px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit;border:none}.btn-cancel{background:var(--surface-hover);color:var(--text)}.btn-cancel:hover{background:#48484a}.btn-connect{background:var(--accent);color:#fff}.btn-connect:hover:not(:disabled){background:var(--accent-hover)}.btn-connect:disabled{opacity:.4;cursor:default}
