.m8-patterns{margin-top:12px;padding:12px;border:2px solid var(--color-ink,#1e1b4b);border-radius:14px;background:var(--color-paper-2,#fff)}
.m8-patterns summary{min-height:44px;display:list-item;align-content:center;font-weight:800;cursor:pointer;list-style-position:inside}
.m8-patterns p{margin:8px 0;font-size:.83rem;line-height:1.5;overflow-wrap:anywhere}
.m8-patterns label{display:block;margin:10px 0 4px;font-size:.83rem;font-weight:700}
.m8-patterns input,.m8-patterns select{display:block;width:100%;min-height:44px;min-width:0;padding:8px;border:2px solid var(--color-ink,#1e1b4b);border-radius:8px;font:inherit;font-size:16px;background:#fff;color:#1e1b4b}
.m8-patterns option{font-size:14px}
.m8-patterns .m8-pattern-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.m8-patterns button{min-height:44px;min-width:44px;padding:8px;border:2px solid var(--color-ink,#1e1b4b);border-radius:8px;background:#fff;color:#1e1b4b;font-family:inherit;font-weight:700;font-size:.82rem;line-height:1.2;cursor:pointer}
.m8-patterns button:disabled{opacity:.55;cursor:not-allowed}
.m8-patterns #m8-pattern-prepare{width:100%;margin-top:8px;background:#1e1b4b;color:#fff}
.m8-patterns :focus-visible{outline:3px solid var(--color-focus,#2563eb);outline-offset:3px}
.m8-patterns .m8-pattern-reading{border-left:3px solid #1e1b4b;padding-left:10px;margin-top:12px}
