*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d0d0d;--surface: #1a1a1a;--surface-2: #222222;--border: #2e2e2e;--text: #f0f0f0;--muted: #888888;--accent: #FFE600;--accent-dim: rgba(255, 230, 0, .12);--accent-dark: #c9b600;--green: #22c55e;--green-bg: rgba(34, 197, 94, .12);--red: #ef4444;--red-bg: rgba(239, 68, 68, .12);--radius: 10px;--shadow: 0 2px 8px rgba(0,0,0,.4)}body{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:14px;background:var(--bg);color:var(--text);min-height:100vh}.page{max-width:520px;margin:0 auto;padding:2.5rem 1rem 4rem}.header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.header-logo{height:36px;width:auto;object-fit:contain;flex-shrink:0}.header h1{font-size:1.1rem;font-weight:700;color:var(--text);line-height:1.2}.header p{font-size:.75rem;color:var(--muted);margin-top:2px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;margin-bottom:1rem}.card-title{font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem}.status-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.ssid-name{font-size:1.4rem;font-weight:700;color:var(--accent);line-height:1.2}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .8rem;border-radius:999px;font-size:.72rem;font-weight:600;white-space:nowrap}.badge.on{background:var(--green-bg);color:var(--green)}.badge.off{background:var(--red-bg);color:var(--red)}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.field{margin-bottom:1rem}.field label{display:block;font-size:.75rem;font-weight:500;color:var(--muted);margin-bottom:.4rem}.field input[type=text]{width:100%;padding:.6rem .75rem;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;font-size:.9rem;font-family:inherit;color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}.field input[type=text]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.field input[type=text]::placeholder{color:var(--muted)}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:.7rem 0;border-top:1px solid var(--border)}.toggle-label{font-size:.88rem;font-weight:500}.toggle{position:relative;width:44px;height:24px;flex-shrink:0}.toggle input{opacity:0;width:0;height:0}.slider{position:absolute;top:0;right:0;bottom:0;left:0;background:#333;border-radius:999px;cursor:pointer;transition:background .2s}.slider:before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#666;border-radius:50%;transition:transform .2s,background .2s}.toggle input:checked+.slider{background:var(--accent-dim);border:1px solid var(--accent)}.toggle input:checked+.slider:before{transform:translate(20px);background:var(--accent)}.btn{width:100%;margin-top:1.25rem;padding:.65rem 1rem;background:var(--accent);color:#0d0d0d;border:none;border-radius:8px;font-size:.88rem;font-weight:700;font-family:inherit;cursor:pointer;transition:background .15s,opacity .15s;display:flex;align-items:center;justify-content:center;gap:.5rem;letter-spacing:.02em}.btn:hover:not(:disabled){background:var(--accent-dark)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn .spinner{width:14px;height:14px;border:2px solid rgba(0,0,0,.25);border-top-color:#000;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{padding:.65rem 1rem;border-radius:8px;font-size:.82rem;margin-top:1rem;display:none;align-items:flex-start;gap:.5rem;line-height:1.4}.toast.show{display:flex}.toast.success{background:var(--green-bg);color:var(--green);border:1px solid rgba(34,197,94,.25)}.toast.error{background:var(--red-bg);color:var(--red);border:1px solid rgba(239,68,68,.25)}.diff-table{width:100%;border-collapse:collapse;font-size:.8rem;margin-top:.5rem}.diff-table th{text-align:left;font-weight:600;color:var(--muted);padding:.3rem .5rem;border-bottom:1px solid var(--border)}.diff-table td{padding:.4rem .5rem}.diff-table tr:not(:last-child) td{border-bottom:1px solid var(--border)}.diff-old{color:var(--red);text-decoration:line-through;opacity:.7}.diff-new{color:var(--accent);font-weight:600}.skeleton{background:linear-gradient(90deg,#1e1e1e 25%,#2a2a2a,#1e1e1e 75%);background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:6px;height:1.2em}@keyframes shimmer{to{background-position:-200% 0}}
