:root{color:#e5e7eb;background:#12151a;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Yu Gothic,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{min-width:320px;margin:0;background:#12151a}button{font:inherit}.screen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(20px,4vh,32px);padding:max(28px,env(safe-area-inset-top)) 24px max(28px,env(safe-area-inset-bottom))}header{text-align:center}.eyebrow{margin:0 0 6px;color:#9ca3af;font-size:11px;font-weight:700;letter-spacing:.18em}h1{margin:0;font-size:20px;letter-spacing:.05em}.meter{position:relative;width:min(76vw,310px);aspect-ratio:1}svg{width:100%;height:100%;transform:rotate(-90deg)}.track,.fill{fill:none;stroke-width:12}.track{stroke:#2a2f38}.fill{stroke:#6ee7b7;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;transition:stroke .15s linear,stroke-dashoffset .08s linear}.reading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:6px;text-align:center}.reading-caption{color:#9ca3af;font-size:12px}#level-label{font-size:clamp(34px,9vw,44px);font-weight:750;line-height:1.1}.reading-detail{color:#9ca3af;font-size:12px}.reading-detail b{font-size:16px;font-variant-numeric:tabular-nums}.level-scale{display:flex;justify-content:space-between;width:min(82vw,330px);margin-top:calc(clamp(20px,4vh,32px)*-.55);color:#9ca3af;font-size:11px;line-height:1.3;text-align:center}.level-scale span:nth-child(2),.level-scale span:nth-child(3){color:#d1d5db}.statistics{display:flex;gap:12px;width:min(100%,360px)}.statistics div{flex:1;display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:3px 8px;padding:13px 16px;border:1px solid #2a2f38;border-radius:14px;background:#1b1f26}.statistics span{grid-column:1 / -1;color:#9ca3af;font-size:12px}.statistics b{font-size:20px;font-variant-numeric:tabular-nums}.statistics small{color:#9ca3af}.microphone-name{width:min(100%,360px);min-height:1.4em;margin:9px 0 0;overflow:hidden;color:#9ca3af;font-size:12px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.microphone-picker{display:grid;width:min(100%,360px);margin:10px auto 0;color:#9ca3af;font-size:11px;text-align:left}.microphone-picker span{margin:0 0 4px 3px}.microphone-picker select{width:100%;min-height:34px;padding:6px 30px 6px 10px;overflow:hidden;border:1px solid #374151;border-radius:8px;background:#1b1f26;color:#e5e7eb;font:inherit;text-overflow:ellipsis;white-space:nowrap}.microphone-picker select:disabled{color:#6b7280}.prepare-microphones{margin-top:8px;padding:0;border:0;background:transparent;color:#6ee7b7;font-size:12px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.prepare-microphones:disabled{color:#6b7280}.control{min-width:210px;min-height:54px;padding:14px 32px;border:0;border-radius:999px;background:#6ee7b7;color:#0b0f0c;font-size:16px;font-weight:700;cursor:pointer}.control.stop{background:#374151;color:#e5e7eb}.control:disabled{opacity:.6}.history-button{margin-top:-16px;padding:8px 14px;border:0;background:transparent;color:#9ca3af;font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.history-panel{width:min(100%,420px);padding:16px;border:1px solid #2a2f38;border-radius:14px;background:#1b1f26}.history-heading{display:flex;align-items:baseline;justify-content:space-between}.history-heading h2{margin:0;font-size:15px}.history-heading span{color:#9ca3af;font-size:12px}.chart-wrap{position:relative;height:160px;margin-top:12px;padding-left:42px}.chart-wrap svg{width:100%;height:100%;transform:none}.chart-grid{fill:none;stroke:#374151;stroke-width:1}.history-line{fill:none;stroke:#6ee7b7;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5;vector-effect:non-scaling-stroke}.chart-label{position:absolute;left:0;color:#9ca3af;font-size:10px}.chart-label.top{top:8px}.chart-label.middle{top:50%;transform:translateY(-50%)}.chart-label.bottom{bottom:7px}.chart-axis{display:flex;justify-content:space-between;padding:5px 0 0 42px;color:#9ca3af;font-size:10px}.status{min-height:1.5em;margin:-12px 0 0;color:#9ca3af;font-size:13px;text-align:center}.notice{max-width:350px;margin:0;color:#9ca3af;font-size:12px;line-height:1.7;text-align:center}
