:root{--bg:#0b1626;--bg-panel:#12233b;--bg-panel-2:#1a3050;--bg-hover:#22406a;--border:#24405f;--text:#e8eef6;--text-dim:#94a9c2;--accent:#38bdf8;--accent-dark:#0284c7;--ok:#34d399;--warn:#fbbf24;--err:#f87171;--distress:#dc2626;--lcd-bg:#1a2b12;--lcd-text:#b8e986;--radius:10px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Avenir Next,Segoe UI,system-ui,-apple-system,sans-serif}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#eef2f7;--bg-panel:#fff;--bg-panel-2:#e2eaf3;--bg-hover:#d2deec;--border:#c6d4e2;--text:#16283e;--text-dim:#51698a;--accent:#0369a1;--accent-dark:#0284c7;--ok:#047857;--warn:#a16207;--err:#dc2626;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}:root[data-theme=light]{--bg:#eef2f7;--bg-panel:#fff;--bg-panel-2:#e2eaf3;--bg-hover:#d2deec;--border:#c6d4e2;--text:#16283e;--text-dim:#51698a;--accent:#0369a1;--accent-dark:#0284c7;--ok:#047857;--warn:#a16207;--err:#dc2626;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);min-height:100vh;margin:0}#root{max-width:1200px;margin:0 auto;padding:0 20px 60px}h1,h2,h3{letter-spacing:.01em;font-weight:650}h1{font-size:1.5rem}h2{font-size:1.2rem}h3{font-size:1.02rem}p{line-height:1.55}a{color:var(--accent)}.topnav{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:22px;padding:14px 0;display:flex}.topnav .logo{color:var(--text);align-items:center;gap:8px;margin-right:14px;font-size:1.05rem;font-weight:700;display:flex}.topnav button{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 12px;font-size:.92rem}.topnav button:hover{color:var(--text);background:var(--bg-panel)}.topnav button.active{color:var(--text);background:var(--bg-panel-2)}.card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px}.card+.card{margin-top:14px}.btn{background:var(--bg-panel-2);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:9px 16px;font-size:.93rem;transition:background .12s}.btn:hover{background:var(--bg-hover)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--accent-dark);border-color:var(--accent-dark)}.btn.primary:hover{background:#0369a1}.btn.small{padding:5px 10px;font-size:.85rem}.badge{background:var(--bg-panel-2);color:var(--text-dim);border:1px solid var(--border);border-radius:999px;padding:2px 9px;font-size:.78rem;display:inline-block}.badge.ok{color:var(--ok);border-color:var(--ok)}.badge.warn{color:var(--warn);border-color:var(--warn)}.badge.err{color:var(--err);border-color:var(--err)}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spacer{flex:1}.dim{color:var(--text-dim)}.small{font-size:.86rem}.grid2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}@media (width<=860px){.grid2,.grid3{grid-template-columns:1fr}}.answer{text-align:left;background:var(--bg-panel-2);border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;border-radius:8px;margin:8px 0;padding:11px 14px;font-size:.95rem;line-height:1.45;display:block}.answer:hover{border-color:var(--accent)}.answer.correct{border-color:var(--ok);background:#34d3991f}.answer.wrong{border-color:var(--err);background:#f871711f}.answer.selected{border-color:var(--accent)}.answer:disabled{cursor:default;opacity:1}.bar{background:var(--bg-panel-2);border-radius:999px;height:8px;overflow:hidden}.bar>div{background:var(--accent-dark);border-radius:999px;height:100%;transition:width .3s}.bar.ok>div{background:var(--ok)}.diff-ok{color:var(--text)}.diff-missing{color:var(--err);-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.diff-extra{color:var(--warn);text-decoration:line-through}textarea,input[type=text],select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-family:inherit;font-size:.95rem}textarea{resize:vertical;width:100%;min-height:120px}textarea:focus,input:focus,select:focus{outline:2px solid var(--accent-dark)}.mono-input{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:.88rem}@media (pointer:coarse){textarea,input[type=text],select,.mono-input{font-size:16px}}.radio-message{background:var(--bg);border:1px solid var(--border);white-space:pre-wrap;border-radius:8px;padding:14px 16px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:.88rem;line-height:1.7}.device .dim{color:#94a9c2}.device{background:linear-gradient(#2b3442,#1c2431);border:1px solid #3a465a;border-radius:16px;grid-template-columns:minmax(280px,1.2fr) minmax(230px,1fr);gap:18px;padding:18px;display:grid;box-shadow:0 10px 30px #0006}@media (width<=760px){.device{grid-template-columns:1fr}}.device>*{min-width:0}.device-key,.distress-button,.ptt-button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.lcd{background:var(--lcd-bg);color:var(--lcd-text);text-shadow:0 0 6px #b8e98659;border:3px solid #0d1608;border-radius:8px;flex-direction:column;min-height:240px;padding:12px 14px;font-family:SF Mono,ui-monospace,Menlo,monospace;display:flex}.lcd .status-line{opacity:.85;border-bottom:1px solid #b8e98640;flex-wrap:wrap;justify-content:space-between;margin-bottom:8px;padding-bottom:5px;font-size:.72rem;display:flex}.lcd .channel-big{font-size:3.4rem;font-weight:700;line-height:1.1}.lcd .channel-label{opacity:.8;font-size:.75rem}.lcd .menu-item{padding:3px 6px;font-size:.92rem}.lcd .menu-item.selected{background:var(--lcd-text);color:var(--lcd-bg);border-radius:3px}.lcd .field-name{opacity:.8;margin-top:8px;font-size:.75rem}.lcd .field-value{padding:2px 6px;font-size:1.05rem}.lcd .field-value.active{background:var(--lcd-text);color:var(--lcd-bg);border-radius:3px}.lcd .blink{animation:1s step-end infinite lcdblink}@keyframes lcdblink{50%{opacity:.25}}.lcd .alert{color:#ff8f8f;text-shadow:0 0 8px #ff646499}.lcd input{color:var(--lcd-text);background:#b8e9861f;border:1px solid #b8e98666;border-radius:3px;width:100%;padding:3px 6px;font-family:inherit;font-size:1rem}.lcd .lcd-footer{opacity:.7;margin-top:auto;padding-top:8px;font-size:.7rem}.controls{flex-direction:column;gap:12px;display:flex}.key-row{flex-wrap:wrap;gap:8px;display:flex}.device-key{color:#e8eef6;cursor:pointer;background:linear-gradient(#4a5568,#323d4e);border:1px solid #202836;border-radius:8px;flex:1;min-width:52px;padding:10px 0;font-size:.82rem;font-weight:600;box-shadow:0 2px #161c26}.device-key:active{transform:translateY(1px);box-shadow:0 1px #161c26}.device-key.wide{flex:2}.device-key.k16{background:linear-gradient(#b91c1c,#7f1d1d)}.knobs{color:#94a9c2;align-items:center;gap:8px;font-size:.8rem;display:flex}.knobs input[type=range]{min-width:0;accent-color:var(--accent-dark);flex:1}.distress-area{text-align:center;background:#7f1d1d26;border:2px solid #7f1d1d;border-radius:10px;padding:10px}.distress-cover{color:#94a9c2;margin-bottom:6px;font-size:.75rem}.distress-button{color:#fff;letter-spacing:.08em;cursor:pointer;background:linear-gradient(#ef4444,#b91c1c);border:2px solid #7f1d1d;border-radius:10px;width:100%;padding:14px 0;font-size:1rem;font-weight:800;box-shadow:0 3px #641414}.distress-button:disabled{filter:grayscale(.8)brightness(.6);cursor:not-allowed}.distress-button:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #641414}.ptt-button{color:#fff;cursor:pointer;background:linear-gradient(#0ea5e9,#0369a1);border:1px solid #075985;border-radius:10px;width:100%;padding:16px 0;font-size:.95rem;font-weight:700;box-shadow:0 3px #073e5c}.ptt-button.transmitting{background:linear-gradient(#f59e0b,#b45309);animation:1.2s step-end infinite lcdblink}.traffic-log{flex-direction:column;gap:8px;max-height:260px;display:flex;overflow-y:auto}.traffic-log .message{border-left:3px solid var(--border);white-space:pre-wrap;padding:6px 10px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:.85rem;line-height:1.5}.traffic-log .message.own{border-left-color:var(--accent)}.traffic-log .message .head{color:var(--text-dim);font-size:.72rem}.step{border-radius:8px;gap:10px;padding:8px 10px;font-size:.9rem;line-height:1.5;display:flex}.step.current{background:var(--bg-panel-2);border:1px solid var(--accent-dark)}.step.done{color:var(--text-dim)}.step .nr{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:50%;flex:0 0 22px;justify-content:center;align-items:center;height:22px;font-size:.75rem;display:flex}.step.done .nr{background:var(--ok);color:var(--bg-panel);border-color:var(--ok)}
