/* ── Генератор llms.txt: страница инструмента (tools/llms-txt-generator.html) ──
   Использует только токены из ../styles.css. Радиусы ≤ 8px, акцент — терракота. */

/* ── Хлебные крошки ── */

/* ── Hero ── */

/* ── Панель генератора ── */

.gen-field .req{color:var(--accent)}
.gen-field .label-note{color:var(--quiet);font-weight:400}

.tool-url:has(.gen-url-input--error){border-color:var(--danger)}

.gen-captcha__input--error{border-color:var(--danger)}


/* ── Ошибка ── */
.gen-error{display:none;margin-top:16px;padding:12px 14px;border:1px solid var(--danger);border-left-width:3px;border-radius:var(--r1);color:var(--danger);font-size:14px;line-height:1.55}
.gen-error.is-visible{display:block}

/* ── Прогресс ── */
.gen-progress{display:none;margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}
.gen-progress.is-visible{display:block}
.gen-progress__steps{display:flex;flex-direction:column;gap:12px}
.gen-step{display:flex;align-items:center;gap:12px;color:var(--quiet);font-size:14px;transition:color 160ms var(--ease)}
.gen-step.is-done{color:var(--text)}
.gen-step.is-active{color:var(--accent)}
.gen-step__icon{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:var(--r1);font-size:11px;transition:background 160ms var(--ease),border-color 160ms var(--ease),color 160ms var(--ease)}
.gen-step.is-done .gen-step__icon{background:var(--accent);border-color:var(--accent);color:var(--surface-deep);font-size:13px}
.gen-step.is-active .gen-step__icon{border-color:var(--accent)}
.gen-spinner{width:12px;height:12px;border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;animation:gen-spin .7s linear infinite}
@keyframes gen-spin{to{transform:rotate(360deg)}}

/* ── Результат ── */
.gen-result{display:none;margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}
.gen-result.is-visible{display:block}
.gen-result__header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px 14px;margin-bottom:12px}
.gen-result__title{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:14px;font-weight:580}
.gen-result__badge{padding:2px 8px;border:1px solid var(--accent);border-radius:var(--r1);color:var(--accent);font-size:12px;font-weight:500}
#gen-pages-found{color:var(--quiet);font-size:12px;font-weight:400}
.gen-result__actions{display:flex;flex-wrap:wrap;gap:8px}


.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.gen-output-wrap{border:1px solid var(--line-strong);border-radius:var(--r1);background:var(--bg);overflow:hidden}
.gen-output-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:8px 14px;border-bottom:1px solid var(--line);color:var(--quiet);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}
#gen-filename{color:var(--accent)}
.gen-output{display:block;width:100%;min-height:280px;max-height:460px;padding:14px;border:0;background:transparent;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.7;resize:vertical;outline:none;white-space:pre;overflow:auto;box-sizing:border-box}
.gen-output:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;box-shadow:none}
.gen-result__disclaimer{margin-top:10px;color:var(--quiet);font-size:12px;line-height:1.6}

.tool-page code{padding:1px 5px;border:1px solid var(--line);border-radius:3px;background:var(--surface-deep);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}

/* ── Переключатель ручного режима ── */
.gen-manual-toggle{margin-top:24px;padding-top:16px;border-top:1px solid var(--line)}
.gen-manual-toggle button{min-height:44px;display:inline-flex;align-items:center;padding:0;border:0;background:none;color:var(--text);font:inherit;font-size:15px;font-weight:560;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:7px;text-decoration-thickness:1px;cursor:pointer;transition:color 160ms var(--ease)}
.gen-manual-toggle button:hover{color:var(--accent)}

/* ── Ручной режим ── */
.gen-manual{display:none;max-width:760px;margin-top:40px;padding-top:32px;border-top:1px solid var(--line-strong)}
.gen-manual.is-open{display:block}
.gen-manual h2{font-size:clamp(30px,4.6vw,48px);line-height:1.06;letter-spacing:-.04em;font-weight:580}
.gen-manual__lead{margin-top:8px;color:var(--muted);font-size:14px}
.gen-manual .gen-field{margin-top:20px}
.form-input,.form-textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--line-control);border-radius:var(--r1);background:var(--bg);color:var(--text);font:inherit;font-size:16px;line-height:1.45;outline:none;transition:border-color 160ms var(--ease),box-shadow 160ms var(--ease)}
.form-input::placeholder,.form-textarea::placeholder{color:var(--quiet)}
.form-input:focus,.form-input:focus-visible,.form-textarea:focus,.form-textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--focus)}
.form-textarea{min-height:76px;resize:vertical}

.gen-sections-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:28px 0 12px}
.gen-sections-head span:first-child{font-size:14px;font-weight:580}
.gen-sections-head span:last-child{color:var(--quiet);font-size:12px}
.gen-section{padding:16px;border:1px solid var(--line);border-radius:var(--r2);background:var(--surface);margin-bottom:12px}
.gen-section:focus-within{border-color:var(--line-strong)}
.gen-section__header{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.gen-section__header .form-input{flex:1;min-width:0}
.gen-item{display:grid;grid-template-columns:1.1fr 1.6fr auto;gap:8px;align-items:center;margin-bottom:8px}
.gen-btn-remove{min-width:44px;min-height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--r1);background:none;color:var(--quiet);font-size:15px;cursor:pointer;transition:color 160ms var(--ease),border-color 160ms var(--ease)}
.gen-btn-remove:hover{color:var(--danger);border-color:var(--danger)}
.m-add-item{margin-top:4px}
.gen-add-row{display:flex;justify-content:flex-start;margin-top:12px}

.gen-manual-output-wrap{margin-top:32px;border:1px solid var(--line-strong);border-radius:var(--r1);background:var(--bg);overflow:hidden}
.gen-manual-output-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:10px 14px;border-bottom:1px solid var(--line)}
.gen-manual-output-filename{color:var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}
.gen-manual-output-actions{display:flex;flex-wrap:wrap;gap:8px}
.gen-manual-output{display:block;width:100%;min-height:280px;padding:14px;border:0;background:transparent;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.7;resize:vertical;outline:none;white-space:pre;overflow:auto;box-sizing:border-box}
.gen-manual-output-meta{padding:6px 14px;border-top:1px solid var(--line);color:var(--quiet);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}

/* ── Редакционные секции ── */
.tool-section{padding-block:var(--s20);border-top:1px solid var(--line)}
.tool-section--deep{background:var(--surface-deep)}
.tool-section h2{max-width:24ch;margin-top:12px;font-size:clamp(30px,4.6vw,48px);line-height:1.06;letter-spacing:-.04em;font-weight:580;text-wrap:balance}
.tool-section .section-lead{max-width:62ch;margin-top:18px;color:var(--muted);font-size:clamp(15px,1.3vw,17px);line-height:1.62}

.step-register{list-style:none;margin-top:36px;border-top:1px solid var(--line-strong)}
.step-register li{display:grid;grid-template-columns:36px 1fr;gap:6px 14px;padding:22px 0;border-bottom:1px solid var(--line)}
.step-register li>span{grid-row:1/3;padding-top:5px;color:var(--accent);font-size:12px}
.step-register h3{font-size:20px;line-height:1.25;letter-spacing:-.02em;font-weight:540}
.step-register p{max-width:66ch;margin-top:6px;color:var(--muted);font-size:15px;line-height:1.55}

.limits-line{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:28px;padding-top:18px;border-top:1px solid var(--line-strong);color:var(--muted);font-size:13px}
.limits-line strong{color:var(--text);font-weight:580}
.limits-line span+span::before{content:"·";margin-right:16px;color:var(--quiet)}

.gen-note{max-width:70ch;margin-top:36px;padding:16px 20px;border-left:3px solid var(--accent);background:var(--surface);color:var(--muted);font-size:15px;line-height:1.6}
.gen-note strong{color:var(--text)}

/* ── Размещение и проверка: спецификация ── */
.spec-list{margin-top:36px;border-top:1px solid var(--line-strong)}
.spec-list>div{display:grid;grid-template-columns:1fr;gap:4px 24px;padding:18px 0;border-bottom:1px solid var(--line)}
.spec-list dt{font-size:15px;font-weight:580}
.spec-list dd{margin:0;color:var(--muted);font-size:15px;line-height:1.55}
@media (min-width:60rem){.spec-list>div{grid-template-columns:220px 1fr}}

.article-cta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 24px;margin-top:48px;padding-top:24px;border-top:1px solid var(--line-strong)}
.article-cta p{max-width:44ch;color:var(--muted);font-size:15px}

/* ── Автор и FAQ ── */
.faq-list details>div a{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:4px;transition:color 160ms var(--ease)}
.faq-list details>div a:hover{color:var(--accent)}

/* ── Адаптив ── */
@media (max-width:40rem){
  .gen-item{grid-template-columns:1fr auto}
  .gen-result__header{flex-direction:column;align-items:flex-start}
  .article-cta{flex-direction:column;align-items:flex-start}
  .step-register li{grid-template-columns:28px 1fr}
}
@media (prefers-contrast:more){
  .tool-url__input,.tool-cap__input,.form-input,.form-textarea,.ghost-btn{border-width:2px}
}
@media (forced-colors:active){
  .ghost-btn,.gen-btn-remove,.gen-captcha__refresh{forced-color-adjust:auto}
  .gen-spinner{border-color:CanvasText;border-top-color:Highlight}
}


/* Недопустимая ссылка видна сразу, а не после скачивания файла */
.m-item-url.is-invalid { border-color: var(--danger); }


/* Шаг, который фактически не выполнился, не должен выглядеть выполненным */
.gen-step.is-skipped { opacity: .8; }
.gen-step.is-skipped .gen-step__icon {
  border-color: var(--line-strong); background: transparent; color: var(--quiet);
}
