/* Settings chrome stays quiet; the rain supplies the spectacle. */
.matrix-modal .auto-keep-buttons { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; }
.matrix-modal #autoCloudDuration { margin-top:12px; }
.matrix-modal #autoCloudDuration[hidden] { display:none; }
.matrix-modal { --ink:#d2dbd6; --muted:#8e9f96; --accent:#80b997; --line:#29362f; font:14px/1.45 system-ui,sans-serif; color:var(--ink); background:#0b100ef5; border:1px solid var(--line); border-radius:0!important; box-shadow:0 12px 36px #0008; width:410px; height:min(82dvh,850px); max-width:calc(100vw - 32px); max-height:calc(100dvh - 32px); bottom:16px; right:16px; }
.matrix-modal *, .matrix-modal *::before, .matrix-modal *::after { border-radius:0!important; }
.matrix-modal .modal-header { background:#101713; color:var(--ink); border-bottom:1px solid var(--line); padding:12px 14px; min-height:54px; }
.matrix-modal .full-header-text { font-size:14px; font-weight:650; letter-spacing:.12em; }
.matrix-modal .panel-drag-hint { color:var(--muted); font-size:11px; letter-spacing:.02em; margin-top:3px; }
.matrix-modal .modal-header > div { gap:10px; }
.matrix-modal .full-header-text { min-width:0; }
.matrix-modal .settings-header-actions { display:flex; align-items:center; gap:6px; flex-shrink:0; }
.matrix-modal .settings-header-actions button { min-height:32px; padding:6px 8px!important; font-size:12px!important; }
.matrix-modal #rain-emergency-stop { color:#d9aaaa!important; border-color:#674444!important; background:#251919!important; }
.matrix-modal #rain-emergency-stop:hover { background:#362222!important; }
.matrix-modal #rain-emergency-stop[data-state=stopped] { color:#c3e8ce!important; border-color:#638271!important; background:#253c2e!important; }
.matrix-modal.minimized #rain-emergency-stop,.matrix-modal.minimized #rain-reset { display:none; }
.matrix-modal .modal-content { padding:0 14px 14px; }
.matrix-modal fieldset { min-width:0; padding:0; margin:0; border:0; display:grid; gap:12px; }
.matrix-modal fieldset:disabled { opacity:.42; filter:none!important; }
.matrix-modal button { font:inherit; font-size:13px!important; font-weight:500!important; letter-spacing:.01em; color:var(--ink)!important; background:#151f19!important; border:1px solid #314439!important; padding:8px 10px!important; min-height:38px; margin:0!important; box-shadow:none!important; transition:background .12s; }
.matrix-modal button:hover:not(:disabled) { background:#203327!important; border-color:#638271!important; transform:none!important; }
.matrix-modal button[aria-pressed=true], .matrix-modal .pattern-btn.active { background:#253c2e!important; color:#c3e8ce!important; border-color:#6d9e7d!important; outline:none!important; }
.matrix-modal button:disabled { opacity:.45; cursor:not-allowed; }
.matrix-modal :focus-visible { outline:2px solid #8ecba5!important; outline-offset:2px; }
.matrix-modal .settings-category { border:0; border-bottom:1px solid var(--line); margin:0; padding:0; }
.matrix-modal .settings-category > summary { list-style:none; cursor:pointer; padding:15px 0; display:flex; gap:12px; align-items:center; color:var(--ink); font-size:14px; font-weight:600; }
.matrix-modal summary::-webkit-details-marker { display:none; }
.matrix-modal .settings-category > summary::before { content:'+'; font:16px monospace; width:10px; color:var(--accent); }
.matrix-modal .settings-category[open] > summary::before { content:'−'; }
.matrix-modal .category-note { margin-left:auto; color:var(--muted); font-size:11px; font-weight:400; letter-spacing:.015em; }
.matrix-modal .audio-letter-0 { color:#ff7b7b; }
.matrix-modal .audio-letter-1 { color:#f2aa67; }
.matrix-modal .audio-letter-2 { color:#e2d370; }
.matrix-modal .audio-letter-3 { color:#91c99d; }
.matrix-modal .audio-letter-4 { color:#80b4ec; }
.matrix-modal .audio-letter-5 { color:#a899e5; }
.matrix-modal .audio-letter-6 { color:#d199df; }
.matrix-modal .category-body { padding:0 0 16px; display:grid; gap:14px; }
.matrix-modal .settings-subcategory { border-top:1px solid var(--line); padding-top:10px; }
.matrix-modal .settings-subcategory > summary { color:var(--muted); font-size:13px; cursor:pointer; list-style:none; padding:5px 0; }
.matrix-modal .settings-subcategory > summary::after { content:' +'; color:var(--accent); }
.matrix-modal .settings-subcategory[open] > summary::after { content:' −'; }
.matrix-modal .settings-subcategory > div { padding-top:12px; display:grid; gap:12px; }
.matrix-modal .control-item, .matrix-modal .audio-reactivity-control { margin:0!important; padding:0; }
.matrix-modal label { font-size:13px!important; color:var(--ink)!important; font-weight:400!important; margin:0; display:block; }
.matrix-modal label:has(input[type=checkbox]) { display:flex; align-items:center; gap:8px; }
.matrix-modal small, .matrix-modal p, .matrix-modal .settings-hint { font-size:12px!important; color:var(--muted)!important; line-height:1.5; }
.matrix-modal .settings-hint { margin:0; }
.matrix-modal .settings-value { float:right; color:var(--accent); font-size:12px; }
.matrix-modal #charSizeDisplay { color:var(--accent)!important; }
.matrix-modal .settings-row { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.matrix-modal .settings-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.matrix-modal .setting-choices { gap:6px; margin-top:6px; }
.matrix-modal .pattern-controls { display:flex; flex-wrap:wrap; gap:6px; }
.matrix-modal input[type=range] { accent-color:var(--accent); width:100%; min-height:30px; margin:3px 0 0; background:transparent; box-shadow:none; }
.matrix-modal input[type=range]::-webkit-slider-runnable-track { background:#34463b; box-shadow:none; height:4px; }
.matrix-modal input[type=range]::-webkit-slider-thumb { background:#90bba0; box-shadow:none; width:12px; height:16px; margin-top:-6px; border:1px solid #b2ccbb; }
.matrix-modal input[type=range]::-moz-range-track { background:#34463b; box-shadow:none; height:4px; }
.matrix-modal input[type=range]::-moz-range-thumb { background:#90bba0; box-shadow:none; width:12px; height:16px; border:1px solid #b2ccbb; }
.matrix-modal input[type=checkbox] { accent-color:var(--accent); width:16px; height:16px; flex-shrink:0; }
.matrix-modal input[type=color] { width:100%; height:35px; background:#101713; border:1px solid var(--line); padding:4px; }
.matrix-modal input[type=text], .matrix-modal textarea { color:var(--ink)!important; background:#060b08!important; border:1px solid var(--line)!important; font:13px/1.5 monospace!important; width:100%; }
.matrix-modal .audio-reactivity-control > span { color:var(--accent)!important; font-size:12px!important; }
.matrix-modal .audio-color-controls { gap:12px!important; justify-content:stretch!important; }
.matrix-modal #audioVisualizer { height:36px!important; border:1px solid var(--line)!important; background:#070b09!important; }
.matrix-modal #audioStatus { font-size:12px!important; color:var(--muted)!important; }
.matrix-modal #audioModeSettings { display:grid; gap:12px; margin:0!important; padding:0!important; background:none!important; text-align:left!important; }
.matrix-modal #rain-camera-panel, .matrix-modal #rain-rendering-panel, .matrix-modal #rain-trails-panel { border:0!important; background:none!important; margin:0!important; padding:0!important; }
.matrix-modal #rain-camera-panel > strong, .matrix-modal #rain-rendering-panel > strong, .matrix-modal #rain-trails-panel > strong { display:none; }
.matrix-modal #rain-camera-panel > label, .matrix-modal #rain-rendering-panel > label { margin-top:12px!important; }
.matrix-modal #cameraViewPolicy { margin:10px 0!important; }
.matrix-modal #rain-share-panel { border-bottom:0; background:none!important; }
.matrix-modal #rain-share-panel p { margin:0 0 10px!important; }
.matrix-modal #rain-share-panel label { margin-top:8px; }
.matrix-modal .minimize-btn { width:32px; min-height:32px; padding:4px!important; flex-shrink:0; }
.matrix-modal .settings-launch-icon { display:none; }
.matrix-modal.minimized { width:52px!important; min-width:52px!important; height:52px!important; border:0; background:none; box-shadow:none; top:max(14px,env(safe-area-inset-top))!important; right:max(14px,env(safe-area-inset-right))!important; overflow:visible; }
.matrix-modal.minimized .modal-header { padding:0; min-height:0; border:0; background:none; }
.matrix-modal.minimized .modal-header > div { display:block!important; }
.matrix-modal.minimized .minimize-btn { width:52px; height:52px; min-height:52px; padding:2px!important; background:transparent!important; border:1px solid transparent!important; color:#82ac8d!important; opacity:.5; cursor:pointer; }
.matrix-modal.minimized .minimize-btn:hover, .matrix-modal.minimized .minimize-btn:focus-visible { opacity:.9; }
.matrix-modal.minimized .settings-launch-icon { display:block; width:22px; height:22px; }
.matrix-modal.minimized .settings-beacon { width:48px; height:48px; pointer-events:none; }
.matrix-modal.minimized .settings-collapse-icon { display:none; }
.matrix-modal.minimized .minimize-btn:hover::after, .matrix-modal.minimized .minimize-btn:focus-visible::after { content:'Settings · M'; position:absolute; right:62px; top:14px; width:max-content; background:#0b100eee; color:#b5c7bc; padding:5px 8px; font-size:11px; border:1px solid #314439; }
.matrix-modal .modal-content::-webkit-scrollbar-thumb { background:#405c49; }
.matrix-modal .modal-content { scrollbar-color:#405c49 #0b100e; }
@media(max-width:700px) { .matrix-modal:not(.minimized) { width:calc(100vw - 20px); max-width:none; height:48dvh; max-height:calc(100dvh - 20px); bottom:max(10px,env(safe-area-inset-bottom)); right:10px; } .matrix-modal button { min-height:44px; } .matrix-modal input[type=text], .matrix-modal textarea { font-size:16px!important; } .matrix-modal .modal-content { padding:0 12px 12px; } }
@media(max-width:700px) { .matrix-modal .settings-header-actions button { min-height:44px; } .matrix-modal .full-header-text { font-size:12px; letter-spacing:.08em; } }
@media(max-height:500px) and (min-width:701px) { .matrix-modal:not(.minimized) { width:360px; height:calc(100dvh - 24px); bottom:12px; right:12px; } }
.matrix-modal .auto-program fieldset { border:0; margin:0; padding:0; min-width:0; }
.matrix-modal .auto-program legend { font-size:13px; color:var(--ink); margin:0 0 10px; }
.matrix-modal .auto-program label:has(input[type=radio]) { display:flex; align-items:center; gap:8px; }
.matrix-modal .auto-program input[type=radio] { accent-color:var(--accent); margin:0; width:16px; height:16px; flex-shrink:0; }
.matrix-modal .auto-program input[type=number] { width:100%; min-width:0; box-sizing:border-box; padding:7px; margin-top:5px; color:var(--ink); background:#060b08; border:1px solid var(--line); font:14px monospace; }
.matrix-modal .auto-program input:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.matrix-modal .auto-program fieldset:disabled { opacity:.5; }
.matrix-modal .auto-program .auto-pool { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.matrix-modal .auto-choice { display:grid; gap:9px; }
.matrix-modal .auto-range { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.matrix-modal .auto-appearance { display:grid; gap:9px; padding:12px; margin-bottom:8px; border:1px solid var(--line); border-radius:6px; }
.matrix-modal .auto-program-summary { margin:0; color:var(--ink)!important; }
.matrix-modal .auto-program-error { margin:0; color:#ffb7a4!important; }
.matrix-modal .auto-program-error:empty { display:none; }
.matrix-modal .auto-program [hidden] { display:none!important; }
