*,:before,:after{box-sizing:border-box}body{background:#f7f7f7;margin:0;padding:clamp(16px,4vw,32px);font-family:system-ui,sans-serif;line-height:1.5}.app{background:#fff;border-radius:0;max-width:720px;margin:0 auto;padding:clamp(16px,4vw,32px);box-shadow:0 4px 16px #0000000f}h1{margin-top:0;margin-bottom:1rem;font-size:clamp(1.5rem,2.5vw,2rem)}button{cursor:pointer;font:inherit;background:#fff;border:1px solid #ccc;border-radius:0;padding:.6rem 1.1rem;transition:background-color .2s,border-color .2s,box-shadow .2s}button:hover:not(:disabled),button:focus-visible{background:#f0f0f0;border-color:#888;box-shadow:0 0 0 3px #0000000d}button:disabled{cursor:not-allowed;opacity:.6}.row{margin:1rem 0}.controls{flex-wrap:wrap;gap:.75rem;display:flex}.controls button{flex:220px;min-width:140px}.controls button:disabled{display:none}.modulation-selector{background:#f9f9f9;border:1px solid #ccc;border-radius:0;flex:auto;align-items:center;gap:.5rem;padding:.4rem .8rem;display:flex}.modulation-label{color:#333;margin-right:.25rem;font-size:.95rem;font-weight:600}.modulation-selector label{cursor:pointer;border:1px solid #0000;border-radius:0;align-items:center;gap:.35rem;padding:.3rem .6rem;font-size:.9rem;transition:background-color .2s,border-color .2s;display:inline-flex}.modulation-selector label:hover:not(:has(input:disabled)){background:#fff;border-color:#ddd}.modulation-selector label.active{background:#fff;border-color:#888;font-weight:600}.modulation-selector input[type=radio]{cursor:pointer;margin:0}.modulation-selector input[type=radio]:disabled{cursor:not-allowed}.modulation-selector label:has(input:disabled){opacity:.6;cursor:not-allowed}details.debug-panel{margin-top:1.5rem}details.debug-panel summary{cursor:pointer;font-weight:600}.debug-panel-content{gap:1.25rem;margin-top:.75rem;display:grid}.debug-controls{flex-wrap:wrap;gap:.75rem;display:flex}.debug-controls button{flex:220px;min-width:140px}.debug-metrics{gap:.5rem;display:grid}.debug-metric{align-items:baseline;gap:.35rem;font-size:.95rem;display:flex}#out{background:#fafafa;border:1px solid #ddd;border-radius:0;gap:12px;min-height:6rem;padding:12px;display:grid}#out .provisional{opacity:.65;border-bottom:1px dotted #0006}.out-row{background:#fff;border:1px solid #eee;border-radius:0;gap:.5rem;padding:12px;display:grid}.out-row-header{color:#333;font-size:.95rem;font-weight:600}.out-row-content{gap:.35rem;display:grid}.out-row-label{color:#666;font-size:.85rem}.out-row-text{white-space:pre-wrap;font:14px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-x:auto}.decoded-ok{color:#0f7a3c;font-weight:600}.app-footer{color:#555;text-align:center;border-top:1px solid #eee;margin-top:2.5rem;padding-top:1.5rem;font-size:.95rem}.app-footer a{color:inherit;font-weight:600}.app-footer a:hover,.app-footer a:focus-visible{text-decoration:underline}@media (width<=480px){.debug-metric strong{white-space:nowrap}}.decoded-image-container{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:4px;margin-top:1rem;padding:0;display:inline-block;overflow:hidden;box-shadow:0 2px 8px #0000001a}.decoded-image{image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;display:block}.image-format{margin-bottom:.5rem}.image-scale-controls{flex-wrap:wrap;gap:.5rem;display:flex}.image-scale-controls button{min-width:50px;padding:.4rem .8rem;font-size:.9rem}.image-scale-controls button.active{background:#e0e0e0;border-color:#999;font-weight:600}
