.grout-controls{min-width:0;margin:12px 0 18px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#edf0e9}
.grout-controls[hidden]{display:none}
.grout-controls legend{padding:0 4px;font-size:13px;font-weight:600}
.grout-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.grout-presets button{min-width:0;min-height:52px;padding:6px 3px;border:1px solid #afb8ad;border-radius:5px;background:var(--paper);color:var(--ink);font:11px Arial,sans-serif;cursor:pointer}
.grout-presets span{display:block;width:100%;height:18px;border:1px solid #0002;border-radius:2px;margin-bottom:5px}
.grout-presets [aria-pressed="true"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.grout-inputs{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;margin-top:12px}
.grout-inputs label{display:block;min-width:0;font-size:12px;font-weight:normal;margin:0}
.grout-inputs input{display:block;width:100%;height:44px;margin-top:6px;padding:7px;border:1px solid #8b968e;border-radius:5px;background:white;font:14px ui-monospace,monospace}
.grout-inputs input[type="color"]{padding:3px;cursor:pointer}
.grout-note,.grout-error{font-size:11px;line-height:1.5;margin:10px 0 0}
.grout-error{color:#85291f}.grout-error:empty{display:none}
.grout-controls :disabled{cursor:not-allowed;opacity:.5}
.grout-controls :focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.grout-controls [aria-invalid="true"]{border-color:#85291f}
