/* Format-page tools; uses the editorial theme without changing the main editor. */
.format-generator {
  margin: 0 0 28px;
  padding: clamp(22px, 3.3vw, 42px);
  border: 1px solid var(--article-line);
  border-radius: 24px;
  color: var(--article-text);
  background: var(--article-panel);
  scroll-margin-top: 24px;
}
.format-generator *, .format-generator *::before, .format-generator *::after { box-sizing: border-box; }
.format-generator [hidden] { display: none !important; }
.format-generator h2 { margin: 0 0 10px; color: var(--article-heading); font-size: clamp(23px,2.4vw,30px); line-height: 1.3; }
.format-generator p { margin: 0 0 18px; font-size: 15px; line-height: 1.65; }
.format-generator__layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 28px; align-items: start; }
.format-generator__form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 9px 12px; align-items: end; }
.format-generator__field { display: grid; gap: 9px; min-width: 0; color: var(--article-heading); font-size: 15px; font-weight: 650; }
.format-generator :is(input, textarea) { display: block; width: 100%; min-width: 0; min-height: 48px; margin: 0; padding: 12px 14px; border: 1px solid var(--article-line); border-radius: 10px; color: var(--article-heading); background: var(--article-soft); font-family: inherit; font-size: 16px; line-height: 1.45; letter-spacing: normal; }
.format-generator textarea { min-height: 112px; resize: vertical; }
.format-generator :is(input,textarea)::placeholder { color: var(--article-muted); opacity: 1; }
.format-generator :is(input,textarea)[aria-invalid="true"] { border-color: #b62749; }
.format-generator :is(input,textarea,button,a):focus-visible { outline: 3px solid #739bf0; outline-offset: 3px; }
.format-generator button { min-height: 48px; margin: 0; padding: 12px 18px; border: 1px solid #1458ed; border-radius: 10px; color: #fff; background: #1458ed; font-family: inherit; font-size: 14px; line-height: 1.5; font-weight: 700; cursor: pointer; }
.format-generator button:hover:not(:disabled) { background: #0c46ca; border-color: #0c46ca; }
.format-generator button:disabled { opacity: .5; cursor: not-allowed; }
.format-generator .format-generator__hint { grid-column: 1 / -1; margin: 0; color: var(--article-muted); font-size: 13px; line-height: 1.6; }
.format-generator__hint code { white-space: pre-wrap; overflow-wrap: anywhere; }
.format-generator .format-generator__status { min-height: 26px; margin: 16px 0 0; color: var(--article-muted); font-size: 14px; }
.format-generator__status[data-error="true"] { color: #ab2342; }
html[data-theme="dark"] .format-generator__status[data-error="true"] { color: #ffb4c4; }
.format-generator .format-generator__privacy { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--article-line); color: var(--article-muted); font-size: 12px; }
.format-generator__preview { min-width: 0; padding: 18px; border: 1px solid var(--article-line); border-radius: 16px; background: var(--article-soft); }
.format-generator__preview figure { margin: 0; }
.format-generator__image { display: grid; min-height: 155px; place-items: center; padding: 10px; border-radius: 8px; background: #fff; }
.format-generator__image img { display: block; max-width: 100%; max-height: 250px; width: auto; height: auto; }
.format-generator:is([data-format-generator="qrcode"],[data-format-generator="datamatrix"]) .format-generator__image img { width: min(100%,220px); }
.format-generator figcaption { margin: 12px 0 0; color: var(--article-muted); font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.format-generator figcaption code { color: var(--article-heading); white-space: pre-wrap; }
.format-generator__downloads { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.format-generator__downloads button { flex: 1 1 130px; }
.format-generator__downloads button + button { color: var(--article-accent); border-color: var(--article-line); background: var(--article-panel); }
.format-generator__downloads button + button:hover:not(:disabled) { background: var(--article-accent-soft); border-color: var(--article-accent); }
.format-generator .format-generator__note { margin: 18px 0 0; color: var(--article-muted); font-size: 13px; }
.format-generator noscript p { padding: 14px; border: 1px solid var(--article-line); border-radius: 10px; background: var(--article-soft); }
@media (max-width: 900px) { .format-generator__layout { grid-template-columns: minmax(0,1fr); gap: 22px; } }
@media (max-width: 520px) { .format-generator { padding: 22px 18px; border-radius: 18px; } .format-generator__form { grid-template-columns: minmax(0,1fr); } .format-generator__form > button { width: 100%; grid-row: 3; } .format-generator__preview { padding: 14px; } }
