/* AEO 검사기 - 웹툴 전용 스타일
 * style.css 의 토큰(--ink/--muted/--line/--card/--accent/--pass/--warn/--fail/--radius/--mono)을 그대로 쓴다.
 * 도구 페이지에서만 로드하므로 본체 페이지의 CSS 용량에는 영향을 주지 않는다.
 */

/* ─── 허브 · 연관 도구 카드 ──────────────────────────────── */
/* 허브의 묶음은 .content-body>section 의 카드 배경을 벗긴다 - 카드 안에 카드가 겹쳐 보이지 않게.
   (style.css 의 .feature-detail-grid 가 쓰는 방식과 같다) */
.content-body>section.tool-group{padding:0;background:transparent;border:0;box-shadow:none}
.tool-group{margin:0 0 34px}
.tool-group-head{display:flex;align-items:baseline;gap:10px;margin:0 0 14px}
.tool-group-head h2{margin:0;font-size:20px;letter-spacing:-.4px}
.tool-group-head p{margin:0;color:var(--muted);font-size:13px}
.tool-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tool-card{display:flex;align-items:flex-start;gap:14px;padding:18px 20px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--ink);
  transition:border-color .15s}
.tool-card:hover{border-color:#c7c9d0;text-decoration:none}
.tool-card-ic{flex:0 0 auto;display:grid;place-items:center;width:40px;height:40px;border-radius:11px;
  background:#f2f3f6;color:var(--accent)}
.tool-card-ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.tool-card-body{min-width:0;display:flex;flex-direction:column;gap:5px}
.tool-card-body strong{font-size:14.5px;line-height:1.35;letter-spacing:-.2px}
/* body 의 word-break:keep-all 때문에 "Organization·LocalBusiness·…" 처럼 공백 없는 긴 토큰이
   카드 밖으로 삐져나간다. 설명 영역에서만 중간 줄바꿈을 허용한다. */
.tool-card-body span{color:var(--muted);font-size:12.5px;line-height:1.6;overflow-wrap:anywhere}
.tool-related{max-width:960px;margin:34px auto 0}
.tool-related h2{font-size:19px;margin:0 0 14px;letter-spacing:-.4px}
.tool-related-more{margin:14px 0 0;font-size:13.5px;font-weight:700}

/* ─── 도구 페이지 공통 ───────────────────────────────────── */
.tool-hero{padding:34px 0 26px}
.tool-hero h1{font-size:clamp(27px,4.4vw,40px);letter-spacing:-1.2px}
.tool-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin:16px 0 0}
.tool-badges span{padding:5px 12px;border:1px solid var(--line);border-radius:999px;background:var(--card);
  color:var(--muted);font-size:12px;font-weight:600}

.tool-panel{margin:0 0 20px;padding:22px 24px;background:var(--card);border:1px solid var(--line);
  border-radius:18px;box-shadow:var(--shadow)}
.tool-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  margin:0 0 16px;padding-bottom:13px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.tool-panel-head h2{margin:0;font-size:17px;letter-spacing:-.3px}
.tool-panel-head p{margin:0;color:var(--muted);font-size:12.5px}
.tool-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}

/* 폼 요소 */
.tool-field{margin:0 0 14px}
.tool-field:last-child{margin-bottom:0}
.tool-field>label,.tool-field-label{display:block;margin:0 0 6px;font-size:13px;font-weight:700;color:var(--ink)}
.tool-field-hint{display:block;margin:5px 0 0;color:var(--muted);font-size:11.5px;line-height:1.55}
.tool-input,.tool-textarea,.tool-select{width:100%;padding:10px 12px;border:1px solid var(--line);
  border-radius:10px;background:#fff;color:var(--ink);font-size:14px;font-family:inherit;line-height:1.5;
  transition:border-color .15s,box-shadow .15s}
.tool-textarea{font-family:var(--mono);font-size:12.5px;line-height:1.6;resize:vertical;min-height:150px}
/* 코드가 아니라 일반 문장을 넣는 textarea */
.tool-textarea.is-plain{font-family:inherit;font-size:14px;min-height:78px}
.tool-textarea.is-tall{min-height:300px}
.tool-input:focus,.tool-textarea:focus,.tool-select:focus{outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(17,19,23,.07)}
.tool-select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2371757e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;background-size:16px;padding-right:34px}
.tool-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.tool-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}

/* 버튼 */
.tool-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.tool-btn{display:inline-flex;align-items:center;gap:7px;padding:10px 16px;border:1px solid var(--line);
  border-radius:999px;background:var(--card);color:var(--ink);font-size:13.5px;font-weight:700;
  font-family:inherit;cursor:pointer;transition:background .15s,border-color .15s}
.tool-btn:hover{background:#f4f5f7;border-color:#c7c9d0;text-decoration:none}
.tool-btn svg{width:15px;height:15px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.9;
  stroke-linecap:round;stroke-linejoin:round}
.tool-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.tool-btn-primary:hover{background:var(--accent-d);border-color:var(--accent-d)}
.tool-btn-sm{padding:6px 12px;font-size:12.5px}
.tool-btn:disabled{opacity:.55;cursor:default}
.tool-btn.is-done{border-color:var(--pass);color:var(--pass)}

/* 체크박스 묶음 (봇 목록 등) */
.tool-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;border:0;list-style:none}
.tool-check{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;border:1px solid var(--line);
  border-radius:11px;background:#fafafb;cursor:pointer;transition:border-color .15s,background .15s}
.tool-check:hover{border-color:#c7c9d0;background:#fff}
.tool-check input{margin:2px 0 0;flex:0 0 auto;width:15px;height:15px;accent-color:#111317;cursor:pointer}
.tool-check-tx{min-width:0;display:flex;flex-direction:column;gap:2px}
.tool-check-tx b{font-size:13px;font-weight:700;font-family:var(--mono)}
.tool-check-tx span{color:var(--muted);font-size:11.5px;line-height:1.5}
.tool-fieldset{margin:0 0 16px;padding:0;border:0}
.tool-fieldset>legend{padding:0;margin:0 0 4px;font-size:13px;font-weight:700;color:var(--ink)}
.tool-fieldset>p{margin:0 0 9px;color:var(--muted);font-size:11.5px;line-height:1.55}

/* 프리셋 칩 */
.tool-presets{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 16px}
.tool-preset{padding:7px 13px;border:1px solid var(--line);border-radius:999px;background:var(--card);
  color:var(--ink);font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer;transition:background .15s,border-color .15s}
.tool-preset:hover{background:#f4f5f7;border-color:#c7c9d0}

/* 반복 입력 행 */
.tool-rows{display:flex;flex-direction:column;gap:10px}
.tool-row{position:relative;padding:14px 40px 14px 14px;border:1px solid var(--line);border-radius:12px;background:#fafafb}
.tool-row .tool-field:last-child{margin-bottom:0}
.tool-row-del{position:absolute;top:10px;right:10px;width:26px;height:26px;display:grid;place-items:center;
  border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);
  font-size:15px;line-height:1;cursor:pointer;transition:color .15s,border-color .15s}
.tool-row-del:hover{color:var(--fail);border-color:#f3c3c3}
.tool-row-num{display:inline-block;margin:0 0 8px;padding:2px 9px;border-radius:999px;background:#eceef1;
  color:var(--muted);font-size:11px;font-weight:800}

/* 출력 블록 */
.tool-out-wrap{display:flex;flex-direction:column;gap:9px;position:sticky;top:72px}
.tool-out-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.tool-out-head h3{margin:0;font-size:14px;letter-spacing:-.2px}
.tool-out-head .tool-out-meta{color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums}
.tool-out{margin:0;padding:14px 15px;max-height:460px;overflow:auto;background:#0f172a;color:#e2e8f0;
  border-radius:12px;font-family:var(--mono);font-size:12px;line-height:1.62;white-space:pre-wrap;
  word-break:break-word;-webkit-overflow-scrolling:touch}
.tool-out:empty::before{content:"입력하면 결과가 여기에 표시됩니다.";color:#64748b}

/* 판정 리스트 */
.tool-verdicts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.tool-verdicts li{display:flex;align-items:flex-start;gap:11px;padding:11px 0;border-bottom:1px solid var(--line)}
.tool-verdicts li:last-child{border-bottom:0}
.tool-vd{flex:0 0 auto;min-width:54px;text-align:center;padding:3px 9px;border-radius:999px;
  font-size:11px;font-weight:800}
.tool-vd-pass{background:#ecfdf3;color:#067647}
.tool-vd-warn{background:#fffaeb;color:#b54708}
.tool-vd-fail{background:#fef3f2;color:#b42318}
.tool-vd-na{background:#f2f4f7;color:#667085}
.tool-vd-body{min-width:0;display:flex;flex-direction:column;gap:3px}
.tool-vd-body strong{font-size:13.5px;font-weight:700;line-height:1.4}
.tool-vd-body span{color:var(--muted);font-size:12.5px;line-height:1.6}
.tool-vd-body code{padding:1px 6px;border-radius:5px;background:#f1f1f4;font-family:var(--mono);font-size:11.5px;color:var(--ink)}

/* 요약 통계 */
.tool-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 16px}
.tool-stat{padding:14px 12px;border:1px solid var(--line);border-radius:12px;background:#fafafb;text-align:center}
.tool-stat b{display:block;font-size:22px;font-weight:800;letter-spacing:-.8px;line-height:1.2;font-variant-numeric:tabular-nums}
.tool-stat span{display:block;margin-top:4px;color:var(--muted);font-size:11.5px;line-height:1.4}
.tool-stat.is-pass b{color:var(--pass)} .tool-stat.is-warn b{color:var(--warn)} .tool-stat.is-fail b{color:var(--fail)}

/* 패널 안 소제목 */
.tool-subhead{margin:22px 0 6px;font-size:15px;letter-spacing:-.2px}
.tool-subhead:first-of-type{margin-top:6px}
.tool-subnote{margin:0 0 10px;color:var(--muted);font-size:12.5px;line-height:1.6}

/* 표 */
.tool-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.tool-table{width:100%;min-width:520px;border-collapse:collapse;font-size:13px}
.tool-table th,.tool-table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tool-table thead th{background:#f4f5f7;font-size:11.5px;color:var(--muted);white-space:nowrap}
.tool-table tbody tr:last-child td{border-bottom:0}
.tool-table code{font-family:var(--mono);font-size:11.5px;color:var(--muted);word-break:break-all}

/* 도구 페이지 본문의 코드 표기 (style.css 의 .article-body 규칙은 여기 적용되지 않는다) */
.tool-page code,.tool-note code,.tool-field-hint code{padding:2px 6px;border-radius:5px;background:#f0f1f3;
  font-family:var(--mono);font-size:.88em;color:var(--ink)}
.tool-page .content-body pre{margin:0 0 14px;padding:14px 16px;overflow-x:auto;background:#0f172a;color:#e2e8f0;
  border-radius:12px;font-family:var(--mono);font-size:12.5px;line-height:1.62;
  white-space:pre-wrap;word-break:break-word}
.tool-page .content-body pre code{padding:0;background:none;color:inherit;font-size:inherit}
/* body 의 word-break:keep-all 은 "A·B·C·…" 처럼 공백 없이 이어붙인 긴 토큰을 한 단어로 봐서
   문단을 화면 밖까지 늘린다. 다른 줄바꿈 자리가 없을 때만 끊도록 한다(한국어 줄바꿈은 그대로). */
.tool-page .content-body p,.tool-page .content-body li,
.tool-page .content-body td,.tool-page .content-body th{overflow-wrap:break-word}

/* 안내 박스 */
.tool-note{margin:14px 0 0;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#fafafb;
  color:var(--muted);font-size:12.5px;line-height:1.65}
.tool-note strong{color:var(--ink)}
.tool-alert{margin:0 0 14px;padding:11px 13px;border-radius:10px;font-size:13px;line-height:1.6}
.tool-alert-err{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}
.tool-alert-ok{background:#ecfdf5;border:1px solid #a7f3d0;color:#047857}

/* 길이 카운터 */
.tool-counter{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0 0;
  color:var(--muted);font-size:11.5px}
.tool-counter b{font-variant-numeric:tabular-nums;color:var(--ink)}
.tool-counter.is-over b{color:var(--fail)}
.tool-counter.is-ok b{color:var(--pass)}
.tool-gauge{flex:1;height:4px;border-radius:99px;background:#eef1f7;overflow:hidden}
.tool-gauge i{display:block;height:100%;border-radius:99px;background:var(--muted);transition:width .2s,background .2s}
.tool-gauge.is-ok i{background:var(--pass)} .tool-gauge.is-over i{background:var(--fail)}

/* 검색결과 · SNS 미리보기 */
.tool-preview{padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff}
.tool-preview+.tool-preview{margin-top:12px}
.tool-preview-label{display:block;margin:0 0 10px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em}
.serp-site{display:flex;align-items:center;gap:8px;margin:0 0 4px}
.serp-favicon{width:20px;height:20px;border-radius:50%;background:#eceef1;display:grid;place-items:center;
  color:var(--muted);font-size:10px;font-weight:800;flex:0 0 auto}
.serp-host{font-size:12px;color:#202124;line-height:1.3}
.serp-host small{display:block;color:#4d5156;font-size:11px;word-break:break-all}
.serp-title{margin:2px 0 3px;color:#1a0dab;font-size:18px;line-height:1.35;font-weight:400;word-break:break-all}
.serp-desc{margin:0;color:#4d5156;font-size:13px;line-height:1.58;word-break:break-all}
.og-card{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.og-thumb{aspect-ratio:1200/630;background:#eceef1;display:grid;place-items:center;color:var(--muted);
  font-size:12px;font-weight:700;text-align:center;padding:10px;word-break:break-all}
.og-meta{padding:10px 12px;border-top:1px solid var(--line);background:#f7f8fa}
.og-meta b{display:block;font-size:13.5px;line-height:1.4;word-break:break-all}
.og-meta span{display:block;margin-top:3px;color:var(--muted);font-size:12px;line-height:1.5;word-break:break-all}
.og-meta em{display:block;margin-top:6px;color:var(--muted);font-size:11px;font-style:normal;text-transform:uppercase}

/* 헤딩 아웃라인 */
.tool-outline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}
.tool-outline li{display:flex;align-items:baseline;gap:8px;padding:4px 0;font-size:13px;min-width:0}
.tool-outline .oh-tag{flex:0 0 auto;padding:1px 6px;border-radius:5px;background:var(--muted);color:#fff;
  font-family:var(--mono);font-size:10.5px;font-weight:700}
.tool-outline .oh-1 .oh-tag{background:var(--accent)}
.tool-outline .oh-2{padding-left:16px} .tool-outline .oh-3{padding-left:32px}
.tool-outline .oh-4{padding-left:48px} .tool-outline .oh-5{padding-left:64px} .tool-outline .oh-6{padding-left:80px}
.tool-outline .oh-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tool-outline .oh-flag{flex:0 0 auto;padding:1px 6px;border-radius:5px;font-size:10px;font-weight:800}
.tool-outline .oh-q{background:rgba(37,99,235,.09);color:var(--good)}
.tool-outline .oh-skip{background:#fef3f2;color:#b42318}
.tool-outline li.is-skip{background:#fff7f6;border-radius:6px}

/* 문장 길이 막대 */
.tool-bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.tool-bars li{display:flex;align-items:center;gap:10px;font-size:12.5px}
.tool-bars .tb-label{flex:0 0 96px;color:var(--muted)}
.tool-bars .tb-track{flex:1;height:8px;border-radius:99px;background:#eef1f7;overflow:hidden}
.tool-bars .tb-fill{display:block;height:100%;border-radius:99px;background:var(--accent)}
.tool-bars .tb-fill.is-warn{background:var(--warn)} .tool-bars .tb-fill.is-fail{background:var(--fail)}
.tool-bars .tb-val{flex:0 0 66px;text-align:right;font-variant-numeric:tabular-nums;font-weight:700}
.tool-long-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.tool-long-list li{padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fafafb;
  color:var(--muted);font-size:12px;line-height:1.55}
.tool-long-list b{color:var(--fail);font-variant-numeric:tabular-nums}

@media(max-width:820px){
  .tool-split{grid-template-columns:1fr}
  .tool-out-wrap{position:static}
  .tool-card-grid{grid-template-columns:1fr}
  .tool-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .tool-panel{padding:18px 16px}
  .tool-checks,.tool-grid-2,.tool-grid-3{grid-template-columns:1fr}
  .tool-hero{padding:24px 0 20px}
  .tool-out{font-size:11.5px;max-height:340px}
  .tool-bars .tb-label{flex-basis:76px}
}
