.bs-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem;margin:2rem 0 0}.bs-tool-card{display:block;padding:1rem 1.1rem;border:var(--bs-hair)solid var(--bs-rule);background:var(--bs-paper-raised)}.bs-tool-card:hover{border-color:var(--bs-accent)}.bs-tool-card__name{display:block;font-family:var(--bs-font-headline);font-weight:700;font-size:1.02rem;margin-bottom:.3rem;color:var(--bs-ink)}.bs-tool-card__desc{display:block;font-family:var(--bs-font-sans);font-size:.78rem;line-height:1.65;color:var(--bs-ink-muted)}.bs-article__body--plain{text-align:left}.bs-article__body--plain>p{text-indent:0}@media(min-width:68rem){.bs-article--tool .bs-article__layout{grid-template-columns:minmax(0,56rem)}}.bs-tool{margin:1.5rem 0 0}.bs-tool+.bs-tool{margin-top:2.5rem}.bs-tool__panel{border:var(--bs-hair)solid var(--bs-rule);background:var(--bs-paper-raised);padding:1.15rem 1.25rem 1.25rem}.bs-tool__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.4rem 1rem;margin:0 0 .9rem;padding-bottom:.6rem;border-bottom:var(--bs-hair)solid var(--bs-rule)}.bs-tool__title{font-family:var(--bs-font-headline);font-size:.8rem;font-weight:700;letter-spacing:.2em;text-indent:.2em;margin:0}.bs-tool__privacy{font-family:var(--bs-font-sans);font-size:.72rem;color:var(--bs-ink-muted);margin:0}.bs-tool__grid{display:grid;grid-template-columns:1fr;gap:1rem}@media(min-width:52rem){.bs-tool__grid--2{grid-template-columns:1fr 1fr}.bs-tool__grid--3{grid-template-columns:repeat(3,1fr)}}.bs-tool__field{display:block;min-width:0}.bs-tool__label{display:block;font-family:var(--bs-font-sans);font-size:.74rem;letter-spacing:.1em;color:var(--bs-ink-muted);margin-bottom:.35rem}.bs-tool__hint{font-family:var(--bs-font-sans);font-size:.74rem;line-height:1.6;color:var(--bs-ink-muted);margin:.5rem 0 0}.bs-tool input[type=text],.bs-tool input[type=number],.bs-tool input[type=search],.bs-tool input[type=datetime-local],.bs-tool input[type=date],.bs-tool select,.bs-tool textarea{width:100%;font-family:var(--bs-font-mono);font-size:.86rem;line-height:1.6;color:var(--bs-ink);background:var(--bs-paper);border:var(--bs-hair)solid var(--bs-rule);border-radius:0;padding:.55rem .7rem}.bs-tool textarea{min-height:13rem;resize:vertical}.bs-tool input:focus-visible,.bs-tool select:focus-visible,.bs-tool textarea:focus-visible{outline:2px solid var(--bs-accent);outline-offset:1px}.bs-tool label.bs-tool__check{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--bs-font-sans);font-size:.78rem;color:var(--bs-ink-soft)}.bs-tool input[type=checkbox],.bs-tool input[type=radio]{accent-color:var(--bs-ink)}.bs-tool__out{min-height:13rem;max-height:34rem;overflow:auto;white-space:pre-wrap;word-break:break-word;font-family:var(--bs-font-mono);font-size:.86rem;line-height:1.65;color:var(--bs-ink);background:var(--bs-code-bg);border:var(--bs-hair)solid var(--bs-rule);padding:.7rem .8rem;margin:0;text-align:left}.bs-tool__out--short{min-height:0}.bs-tool__bar{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin:0 0 .9rem}.bs-tool__bar--end{justify-content:flex-end}.bs-tool__bar--after{margin:.9rem 0 0}.bs-tool__btn{font-family:var(--bs-font-sans);font-size:.78rem;letter-spacing:.06em;color:var(--bs-ink);background:var(--bs-paper);border:var(--bs-hair)solid var(--bs-rule);padding:.42rem .85rem;cursor:pointer}.bs-tool__btn:hover{border-color:var(--bs-accent);color:var(--bs-accent)}.bs-tool__btn--primary{background:var(--bs-bar-bg);color:var(--bs-bar-ink);border-color:var(--bs-bar-bg)}.bs-tool__btn--primary:hover{background:var(--bs-accent);border-color:var(--bs-accent);color:var(--bs-paper)}.bs-tool__btn[disabled]{opacity:.45;cursor:not-allowed}.bs-tool__status{font-family:var(--bs-font-sans);font-size:.76rem;line-height:1.6;color:var(--bs-ink-muted);margin:.7rem 0 0;min-height:1.2em;text-align:left}.bs-tool__status.is-ok{color:var(--bs-ink)}.bs-tool__status.is-error{color:#8c1c13}[data-bs-theme=night] .bs-tool__status.is-error{color:#ff9d8f}.bs-tool__kv{width:100%;border-collapse:collapse;font-family:var(--bs-font-sans);font-size:.82rem;text-align:left}.bs-tool__kv th,.bs-tool__kv td{border-bottom:var(--bs-hair)solid var(--bs-rule-soft);padding:.45rem .35rem;text-align:left;vertical-align:top}.bs-tool__kv th{color:var(--bs-ink-muted);font-weight:400;width:38%}.bs-tool__kv td{font-family:var(--bs-font-mono);word-break:break-all}.bs-tool__kv tr:last-child th,.bs-tool__kv tr:last-child td{border-bottom:0}.bs-tool__chips{display:flex;flex-wrap:wrap;gap:.35rem;margin:.6rem 0 0}.bs-tool__chip{font-family:var(--bs-font-sans);font-size:.74rem;border:var(--bs-hair)solid var(--bs-rule);padding:.2rem .5rem;color:var(--bs-ink-soft);cursor:pointer;background:0 0}.bs-tool__chip:hover{border-color:var(--bs-accent);color:var(--bs-accent)}.bs-tool__tabs{display:flex;flex-wrap:wrap;gap:.35rem;padding-bottom:.6rem;margin:1.5rem 0 0;border-bottom:2px solid var(--bs-rule-strong)}.bs-tool__tab{font-family:var(--bs-font-sans);font-size:.78rem;letter-spacing:.05em;background:0 0;border:var(--bs-hair)solid var(--bs-rule);color:var(--bs-ink-soft);padding:.38rem .7rem;cursor:pointer}.bs-tool__tab:hover{border-color:var(--bs-accent);color:var(--bs-accent)}.bs-tool__tab[aria-selected=true]{background:var(--bs-bar-bg);color:var(--bs-bar-ink);border-color:var(--bs-bar-bg)}.bs-tool__page[hidden]{display:none}.bs-tool__drop{border:2px dashed var(--bs-rule);padding:1.4rem 1rem;text-align:center;font-family:var(--bs-font-sans);font-size:.8rem;color:var(--bs-ink-muted);cursor:pointer}.bs-tool__drop.is-over{border-color:var(--bs-accent);color:var(--bs-accent)}.bs-tool__canvas{max-width:100%;height:auto;border:var(--bs-hair)solid var(--bs-rule);background:var(--bs-paper-sunken)}.bs-tool__swatch{display:inline-block;width:4rem;height:4rem;border:var(--bs-hair)solid var(--bs-rule);vertical-align:middle}.bs-tool__code{font-family:var(--bs-font-mono);font-size:.82rem;background:var(--bs-paper-sunken);border-radius:2px;padding:.12em .36em}.bs-tool__draw{width:100%;max-width:20rem;aspect-ratio:1/1;border:var(--bs-hair)solid var(--bs-rule);background:#fff}.bs-tool__notes{margin:2.5rem 0 0}.bs-tool__notes p{text-indent:0}