.noise-console,.noise-presets { margin-bottom: 22px; }
.noise-console [hidden] { display:none!important; }
.noise-state { display:flex; align-items:center; gap:12px; margin-bottom:18px; }
#noise-indicator { width:12px; height:12px; border-radius:50%; flex:0 0 auto; background:#9ca3af; }
#noise-indicator.playing { background:var(--jade,#327b64); }
#noise-indicator.interrupted { background:#b45309; }
#noise-status { margin:0; font-weight:600; }
.noise-actions { display:flex; flex-wrap:wrap; gap:12px; }
.noise-primary { background:var(--jade,#327b64); color:#fff; border:0; padding:12px 30px; border-radius:7px; font:inherit; font-weight:700; cursor:pointer; }
.noise-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:end; margin-top:22px; }
.noise-field { min-width:0; }
.noise-field label { display:block; font-size:13px; font-weight:600; margin-bottom:8px; }
.noise-field input,.noise-field select { width:100%; max-width:100%; min-width:0; box-sizing:border-box; font:inherit; padding:10px 12px; border:1px solid var(--line,#ddd); border-radius:7px; background:#fff; color:inherit; }
.noise-field input[type=range] { padding:8px 0; accent-color:var(--jade,#327b64); }
.noise-field output { font-weight:400; margin-left:8px; color:var(--muted,#687078); }
.noise-console button,.noise-presets button { max-width:100%; white-space:normal; }
.noise-console button:disabled { opacity:.5; cursor:not-allowed; }
.noise-timer { display:flex; flex-wrap:wrap; gap:12px; align-items:end; padding-top:22px; margin-top:22px; border-top:1px solid var(--line,#ddd); }
#noise-remaining { font:600 24px ui-monospace,monospace; padding:8px 0; overflow-wrap:anywhere; }
.noise-related { display:flex; flex-wrap:wrap; gap:16px; margin-top:24px; }
.noise-console :focus-visible,.noise-presets :focus-visible { outline:2px solid var(--jade,#327b64); outline-offset:3px; }
@media(max-width:760px){.noise-grid{grid-template-columns:minmax(0,1fr);} .noise-timer{align-items:stretch;} .noise-timer .noise-field{flex-basis:100%;} .noise-actions button{flex:1 1 130px;}}
