/* 1023 블로그 2차(대표 지시) — 대본 작업실(#/ex-script) 기획표 배치 · 완성본 꾸밈(주제 색 · 강조 · 인용구 · 네이버 썸네일)
 *  기획표: 왼쪽 = 주제 · 키워드 · 흐름 · 가이드 → [글 설정] 두 칸 · 오른쪽 = [목차 · 그림] 두 칸 + 예상 금액 상자 → 그림 스타일 → [장소 · 지도]
 *  두 칸은 칸이 좁으면(420px 아래 · 폰) 한 칸으로 접힘 · 누르는 곳 44px 이상 */
.artcol { container-type: inline-size; }
.artgrp { border: 1px solid var(--line-2); border-radius: 14px; padding: 10px 16px 16px; margin: 6px 0 0; display: flex; flex-direction: column; gap: 8px; min-width: 0; background: var(--surface); }
.artgrp > legend { font-weight: 700; font-size: 16px; padding: 0 6px; color: var(--ink); }
.artgrp > legend .muted { font-weight: 400; font-size: 13px; margin-left: 4px; }
.artg2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; align-items: end; }
.artg2 > * { min-width: 0; }
.artg2 .lbl2 { margin-top: 0; }
.artgrp select.inp, .artgrp input.inp { width: 100%; min-height: 44px; }
.artg2.artopts { display: grid; align-items: center; gap: 6px 16px; }
.artg2 .artck { min-height: 44px; }
.artg2 .artnum { display: flex; justify-content: space-between; min-height: 44px; }
.artg2 .artnum .inp { width: auto; min-width: 96px; }
.artg2 .artnum[hidden] { display: none; }
.artcost { margin: 2px 0 0; padding: 10px 14px; border-radius: 10px; background: var(--teal-light); border: 1px solid #B7DCD8; color: var(--ink); font-size: 14px; line-height: 1.5; }
.artcost[hidden] { display: none; }
.artplace .artmapsel { flex-direction: column; align-items: stretch; gap: 4px; }
.artplace .artmapsel .inp { width: 100%; min-width: 0; }
.artplace [data-placehelp] { margin: 0; }
@container (max-width: 440px) { .artg2 { grid-template-columns: minmax(0, 1fr); } }   /* 1023 완성본이 넓어지면 기획표 칸이 좁아져 한 칸으로 */
@media (max-width: 700px) { .artg2 { grid-template-columns: minmax(0, 1fr); } }
/* 아래 단추 — 블로그 = [원고 먼저 생성하기] [원고와 사진 동시에 생성하기] · 영상 대본 = 하나 */
.artgobar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; margin-top: 6px; }
.artgobar.one { grid-template-columns: minmax(0, 1fr); }
.artgoall { display: flex; flex-direction: column; gap: 4px; min-width: 0; } .artgoall[hidden] { display: none; }
.artgobar .btn[disabled] { opacity: .55; cursor: not-allowed; }
@media (max-width: 700px) { .artgobar { grid-template-columns: minmax(0, 1fr); } }
/* 진행(원고 쓰는 중 → 사진 n/m → 썸네일) */
.artprog { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin: 8px 0 0; padding: 12px 14px; border-radius: 12px; background: var(--teal-light); font-size: 15px; }
.artprog li { padding: 4px 12px; border-radius: 999px; border: 1px solid var(--line-2); background: var(--surface); color: var(--ink-2); }
.artprog li.on { border-color: var(--teal); color: var(--teal); font-weight: 700; box-shadow: 0 0 0 2px #B7DCD8; }
.artprog li.done { border-color: var(--teal); background: var(--teal); color: #fff; }
.artprog li.sep { border: 0; background: none; padding: 0; color: var(--muted); }

/* 완성본 — 주제 색(--art-accent 진한 색 · --art-soft 옅은 바탕) · 예전 글은 남색 */
.artdoc { --art-accent: #1E3A8A; --art-soft: #EEF2FF; }
.artdoc .arttoc { background: var(--art-soft); border: 1px solid color-mix(in srgb, var(--art-accent) 22%, transparent); border-left: 6px solid var(--art-accent); border-radius: 12px; padding: 14px 20px; color: var(--ink); }
.artdoc .arttoc > b { color: var(--art-accent); font-size: 17px; }
.artdoc .arttoc ol { margin: 8px 0 0 22px; display: flex; flex-direction: column; gap: 4px; }
.artdoc .arttoc li::marker { color: var(--art-accent); font-weight: 700; }
.artdoc h2.arth { display: block; width: 100%; box-sizing: border-box; margin: 14px 0 2px; padding: 12px 16px; border-radius: 8px; background: var(--art-soft); border-left: 6px solid var(--art-accent); color: var(--art-accent); font-size: 20px; line-height: 1.45; overflow-wrap: anywhere; }
.artdoc p { overflow-wrap: anywhere; }
.artdoc .mk { font-weight: 800; }
.artdoc .mk-a { color: var(--art-accent); }
.artdoc .mk-u { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; text-decoration-color: var(--art-accent); }
.artquote { position: relative; margin: 6px 0; padding: 18px 20px 18px 56px; border-radius: 12px; background: var(--art-soft); color: var(--ink); font-size: 18px; font-weight: 700; line-height: 1.6; }
.artquote::before { content: '“'; position: absolute; left: 16px; top: 6px; font-size: 52px; line-height: 1; color: var(--art-accent); font-family: Georgia, serif; }
.artquote p { margin: 0; }
/* SEO 키워드 · 해시태그 줄 */
.artseo { margin-top: 10px; padding: 10px 14px; border-radius: 10px; background: var(--bg); border: 1px solid var(--line-2); font-size: 14px; color: var(--ink); display: flex; flex-direction: column; gap: 4px; }
.artseo p { margin: 0; line-height: 1.6; }
.artseo mark { background: #FFF1B8; color: var(--ink); font-weight: 700; padding: 0 4px; border-radius: 4px; }
.artseo .seok { display: inline-block; padding: 0 8px; border-radius: 999px; border: 1px solid var(--line-2); background: var(--surface); margin: 2px 2px 0 0; }
.arttags { color: var(--ink-2); overflow-wrap: anywhere; }
/* ③ 네이버 썸네일 */
.artthumb { margin-top: 16px; border-top: 1px solid var(--line-2); padding-top: 12px; display: flex; flex-direction: column; gap: 10px; }
.artthumb h3 { font-size: 17px; margin: 0; } .artthumb h3 .min { font-weight: 400; }
.artthumbrow { display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: 16px; align-items: start; }
.artthumbfig { margin: 0; } .artthumbfig img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 12px; display: block; }
.artthumbph { aspect-ratio: 1 / 1; border-radius: 12px; border: 2px dashed var(--line-2); background: var(--bg); display: flex; flex-direction: column; justify-content: flex-end; padding: 14px; gap: 8px; }
.artthumbph span { background: var(--art-accent); color: #fff; font-weight: 800; font-size: 20px; line-height: 1.3; padding: 12px 14px; border-radius: 10px; text-align: center; }
.artthumbph i { font-style: normal; font-size: 13px; color: var(--muted); text-align: center; }
.artthumbact { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; min-width: 0; }
.artthumbact p { margin: 0; overflow-wrap: anywhere; }
/* 1031 대표 17:41 — 문구 · [문구만 바꾸기] · [그림 다시 그리기] · [썸네일 받기]는 미리보기 아래로(오른쪽 칸 = 편집기만 → 칸 높이가 미리보기 높이에 가깝게) · 폰은 예전과 같은 순서 */
.artthumbcol { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.artthumbbtns { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; min-width: 0; }
.artthumbbtns p { margin: 0; flex: 1 0 100%; overflow-wrap: anywhere; }
.artthumbcol > .tshelp { margin: 0; }   /* 끌어 옮기기 안내 = 미리보기 바로 아래(편집기 칸 높이를 줄임) */
@container tsed (max-width: 330px) { .tsalpha > span { display: none; } }
/* 1026 대표 지시 — 썸네일 옆 빈 공간에 문구 꾸미기(편집기)를 바로 붙여 스크롤을 줄임 · 템플릿 칸도 같은 줄 */
.artthumbact > .artthumbed { width: 100%; min-width: 0; }
/* 1027 편집기 2열 — 왼쪽 템플릿 · 오른쪽 문구 · 글자 설정(넓은 화면) · 좁은 화면은 한 줄로 쌓임 */
.tsbody { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 12px; min-width: 0; }
.tsleft, .tsright { min-width: 0; }
/* 1031 대표 17:41 "템플릿이 아래로 계속 늘어나지 않게" — 위 = 템플릿 고르기 한 칸(탭 · 가로 한 줄) · 아래 = 설정 칸 둘(넓으면 나란히) */
.artthumbed { container: tsed / inline-size; }   /* 편집기 폭으로 나눔(화면 폭 X — 미리보기 옆 좁은 칸 · 넓은 칸 모두) */
.tsright { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 14px; align-items: start; }
.tsc { min-width: 0; }
@container tsed (min-width: 540px) { .tsright { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
@media (max-width: 700px) { .artthumbrow { grid-template-columns: minmax(0, 1fr); } .artthumbbtns .btn { width: 100%; } }
[data-artflash] { margin-bottom: 10px; }

/* 1023 블로그 3차 — [키워드 고르는 법] 직접 입력 / 실제 검색량으로 자동 고르기 · 키 없으면 자동 잠김 + 까닭 */
.artkwmode { display: flex; flex-direction: column; gap: 2px; }
.artkwmode .lbl2 { margin-top: 0; }
.artkwopts { display: flex; flex-wrap: wrap; gap: 0 18px; }
.artkwopts .artck input { width: 20px; height: 20px; }
.artkwopts [aria-disabled="true"] { cursor: not-allowed; }
.artkwnote { margin: 2px 0 0; line-height: 1.55; }
.artkwoff { display: block; padding: 8px 12px; border-radius: 10px; background: var(--warn-bg); color: var(--warn-ink); font-weight: 600; }
/* 자동 키워드 표(확인 창 안) — 대표 · 연관 · 월간 PC · 모바일 · 경쟁 정도 · 연관은 체크를 풀면 뺌 */
.kwtblwrap { max-width: 100%; overflow-x: auto; margin: 8px 0; }
.kwtbl { width: 100%; border-collapse: collapse; font-size: 14px; color: var(--ink); }
.kwtbl .kwcap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.kwtbl th, .kwtbl td { padding: 6px 6px; border-bottom: 1px solid var(--line-2); text-align: left; vertical-align: middle; }
.kwtbl thead th { font-size: 13px; color: var(--ink-2); font-weight: 600; white-space: nowrap; }
.kwtbl tbody th { font-weight: 600; overflow-wrap: anywhere; }
.kwtbl .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.kwtbl tr.kwmain { background: #FFF8DB; }
.kwtbl .kwtag { display: inline-block; padding: 1px 8px; border-radius: 999px; background: var(--ink); color: #fff; font-size: 12px; font-weight: 700; }
.kwtbl .kwck { width: 48px; }
.kwtbl .kwcl { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; cursor: pointer; }
.kwtbl .kwcl input { width: 20px; height: 20px; }
@media (max-width: 480px) { .kwtbl { font-size: 13px; } .kwtbl th, .kwtbl td { padding: 4px 3px; } .kwtbl .kwck { width: 44px; } }

/* 1023 블로그 3차 — SEO 점검표: 완성본 오른쪽(넓을 때) · 아래(좁을 때 · 폰) · 늘 보이는 알림 · 항목마다 점수 · 고칠 점 */
[data-artdoc] { container-type: inline-size; }
.artdocmain { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: start; }
@container (min-width: 620px) {
  .artdocmain.hasseo { grid-template-columns: minmax(0, 1fr) 248px; }
  .artdocmain.hasseo .artside { position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow-y: auto; margin-top: 12px; }   /* 1024 SEO 점검표 + AI 브리핑 인용 점검을 한 칸에 */
}
.artside { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
@media (min-width: 1280px) { .artgrid:not(.solo) { grid-template-columns: minmax(0, 9fr) minmax(0, 15fr); } }   /* 결과가 있으면 기획표 4.5 : 완성본 7.5 — 완성본 오른쪽에 SEO 점검표가 들어가게(1440 에서 완성본 칸 620px 넘음) */
.seock { border: 1px solid var(--line-2); border-radius: 14px; background: var(--surface); padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; font-size: 14px; color: var(--ink); line-height: 1.5; min-width: 0; }
.seock h3 { margin: 0; font-size: 17px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.seock h3 .min { font-weight: 400; }
.seock h4 { margin: 0 0 4px; font-size: 15px; }
.seock h4 .muted { font-weight: 400; font-size: 13px; }
.seoscore { margin: 0; font-size: 16px; }
.seoscore b { font-size: 22px; color: var(--teal-link); }
.seometer { height: 8px; border-radius: 999px; background: var(--track, #E5E7EB); overflow: hidden; }
.seometer i { display: block; height: 100%; background: var(--teal); border-radius: 999px; }
.seowarn { margin: 0; padding: 10px 12px; border-radius: 10px; background: var(--warn-bg); color: var(--warn-ink); border-left: 4px solid var(--warn-ink); font-size: 13px; font-weight: 600; line-height: 1.55; }
.seosec { border-top: 1px solid var(--line-2); padding-top: 8px; min-width: 0; }
.seosec mark { background: #FFF1B8; color: var(--ink); padding: 0 4px; border-radius: 4px; }
.seolist, .seorel, .seorules { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.seolist li { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.seolist li > span:first-child { color: var(--ink-2); }
.seo-ok { color: var(--ok); } .seo-no { color: var(--warn-ink); }
.seorel li { overflow-wrap: anywhere; }
.seok2 { display: inline-block; padding: 0 8px; border-radius: 999px; border: 1px solid var(--line-2); background: var(--bg); }
.seok2.none { border-style: dashed; }
.seoout { margin: 0; padding-left: 0; list-style: none; display: flex; flex-direction: column; gap: 2px; counter-reset: none; }
.seoout li { display: flex; justify-content: space-between; gap: 8px; padding: 2px 0 2px 10px; border-left: 3px solid var(--line-2); }
.seoout li > span { min-width: 0; overflow-wrap: anywhere; }
.seoout li b { white-space: nowrap; }
.seorules li { padding: 6px 8px; border-radius: 8px; background: var(--surface); border: 1px solid var(--line-2); }
.seorules li.no { background: var(--warn-bg); border-color: var(--warn-bg); }
.seorules .seorow { display: flex; justify-content: space-between; gap: 8px; }
.seorules .seorow > span { min-width: 0; }
.seorules .seorow .muted { font-size: 12px; display: block; }
.seorules li.no .muted, .seorules li.no .seotip { color: var(--warn-ink); }
.seorules li.ok .seorow b { color: var(--ok); }
.seotip { margin: 4px 0 0; font-size: 13px; }

/* 1023 16:01 — 미리보기 = 네이버(도우미 3.1.8): 썸네일은 인트로 바로 아래 · 목차 위 첫 사진(작게) · 사진 위아래 여백 · 문단 사이 빈 줄 */
.artdoc .artthumbtop { margin: 18px 0; width: 100%; max-width: 360px; align-self: center; display: flex; flex-direction: column; gap: 6px; }
.artdoc .artthumbtop img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 12px; display: block; }
.artdoc .artthumbtop figcaption { font-size: 13px; color: var(--muted); text-align: center; }
.artdoc .artfig { margin: 18px 0; }

/* 1023 16:42 썸네일 문구 꾸미기 · 템플릿(요금 0) — 미리보기는 배경 그림이 없어도 옅은 주제 색 바탕에 그려 보여 줌 */
.artthumbph { padding: 0; overflow: hidden; position: relative; }
.artthumbph img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; border-radius: 10px; }
.artthumbph i { position: absolute; left: 8px; right: 8px; top: 8px; background: rgba(255, 255, 255, .92); color: var(--ink-2); border-radius: 8px; padding: 4px 8px; }
.artthumbhint { margin: 0; padding: 6px 10px; border-radius: 8px; background: var(--teal-light); color: var(--teal-link); }
.artthumbed { border: 1px solid var(--line-2); border-radius: 12px; padding: 10px 14px; background: var(--surface); }
.artthumbed > summary { cursor: pointer; font-weight: 700; min-height: 44px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.artthumbed > summary .min { font-weight: 400; }
/* 1031 템플릿 고르기 — 탭 3개 · [전체 보기] · 가로 한 줄(좌우 44px 넘김 단추 · 칸에 맞춰 멈춤) · 폰은 칸 안에서만 옆으로 밀림 */
.tspick { min-width: 0; margin: 2px 0 6px; }
/* 탭 = 공통 폴더 탭 모양(1014 N54) 그대로 · 좁은 칸이라 칸을 나눠 꽉 채우고 낮게(44px) · 편집기가 좁으면 "템플릿" 낱말을 뺌 */
.tstabs[role="tablist"] { flex-wrap: nowrap; padding: 0; overflow: visible; }
.tstabs[role="tablist"] > [role="tab"], .tstabs[role="tablist"] > [role="tab"][aria-selected="true"] { flex: 1 1 0; min-width: 0; min-height: 44px; padding: 0 6px; font-size: 14px; }
.tstabn { font-weight: 400; font-variant-numeric: tabular-nums; }
@container tsed (max-width: 519px) { .tstabw { display: none; } }
.tsscroll:focus-visible, .tstpl:focus-visible { outline: 3px solid var(--teal); outline-offset: 2px; }
.tsfoot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 4px; min-width: 0; }
.tsfoot .tsall { flex: 0 0 auto; min-height: 44px; font-size: 14px; white-space: nowrap; }
.tsrow { display: flex; align-items: stretch; gap: 6px; min-width: 0; margin-top: 8px; }
.tsscroll { flex: 0 0 44px; width: 44px; min-height: 44px; padding: 0; border: 1px solid var(--line-2); border-radius: 10px; background: var(--surface); color: var(--ink); font: 700 24px/1 var(--font-body); cursor: pointer; }
.tsscroll[hidden] { display: none; }
.tsscroll[aria-disabled="true"] { opacity: .4; cursor: default; }
.tstpls { display: grid; grid-auto-flow: column; grid-auto-columns: 88px; grid-template-rows: auto; gap: 8px; flex: 1 1 auto; min-width: 0; margin: 0; padding: 2px 2px 6px; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding: 0 2px; scrollbar-width: thin; }
.tstpls[hidden] { display: none; }
.tstpls:has(> .tsempty) { display: block; }
.tstpls > .tsempty { margin: 8px 4px; }
.tstpls > .tstpl { scroll-snap-align: start; }
.tspickhelp { margin: 0; min-width: 0; }
.tstpl { display: flex; flex-direction: column; gap: 4px; align-items: stretch; padding: 4px; border: 1px solid var(--line-2); border-radius: 10px; background: var(--surface); color: var(--ink); cursor: pointer; min-height: 44px; font: inherit; font-size: 13px; line-height: 1.3; text-align: center; }
.tstpl > span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.6em; overflow-wrap: anywhere; }
/* [전체 보기] 겹창 — 가운데 · 반투명 바탕(.overlay) · 탭 3개 묶음 */
.dlg.tsalldlg { width: min(980px, 100%); max-height: 88vh; padding: 20px 22px; gap: 12px; overflow: hidden; }
.tsallh { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.tsallh h2 { margin: 0; font-size: 20px; }
.tsallh .btn { min-height: 44px; }
.tsallb { overflow-y: auto; min-height: 0; flex: 1 1 auto; display: flex; flex-direction: column; gap: 16px; padding: 2px; }
.tsallg h3 { margin: 0 0 8px; font-size: 16px; }
.tsallg > p { font-size: 14px; margin: 0; }
.tsallgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(108px, 1fr)); gap: 8px; }
@media (max-width: 480px) { .dlg.tsalldlg { padding: 14px; } .tsallgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.tstpl img { width: 100%; aspect-ratio: 1 / 1; border-radius: 6px; background: var(--bg); display: block; }
.tstpl:hover, .tstpl:focus-visible { border-color: var(--teal); }
/* 1025 썸네일 편집기(대표 지시 — 심플하게 딸깍으로) — 줄 3개(글꼴 · 크기 · 글자 색 / 띠 · 띠 색 · 진하기 / 테두리 · 그림자) · 미리보기 위에서 끌어 옮김 */
.tshelp { margin: 4px 0 0; }
.tslines { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
.tsline { display: flex; align-items: center; gap: 6px; flex-wrap: nowrap; min-width: 0; }
.tsline select.inp { flex: 1 1 auto; width: auto; min-width: 0; min-height: 44px; font-size: 15px; padding: 0 8px; border-radius: 10px; border-width: 1px; }
.tsnum { display: inline-flex; align-items: center; gap: 2px; flex: 0 0 auto; font-size: 13px; color: var(--muted); }
.tsnum input { width: 58px; min-height: 44px; padding: 0 4px; border: 1px solid var(--line-2); border-radius: 10px; font: 600 15px var(--font-body); color: var(--ink); background: var(--surface); text-align: center; }
.tsnum input:focus { border-color: var(--teal); outline: none; box-shadow: 0 0 0 3px var(--teal-light); }
.tscolor { flex: 0 0 auto; width: 44px; height: 44px; padding: 2px; border: 1px solid var(--line-2); border-radius: 8px; background: var(--surface); }
.tsalpha { display: inline-flex; align-items: center; gap: 6px; flex: 1 1 0; min-width: 96px; font-size: 13px; color: var(--ink-2); min-height: 44px; }
.tsalpha input { flex: 1 1 auto; min-width: 36px; width: 100%; accent-color: var(--teal); }
.tsalpha > span { white-space: nowrap; flex: 0 0 auto; }
.tsalpha output { flex: 0 0 auto; min-width: 38px; text-align: right; font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; }
.tsline[data-tsrow="band"] select.inp { flex: 0 1 132px; }
/* 1025 2차 스타일 템플릿(여러 층) — 작은 글 · 꼬리표 · 배지 칸(그 템플릿이 쓸 때만) · 강조 색 */
.tsextra { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; margin-top: 8px; }
.tsextra:not(:has(.tsx:not([hidden]))) { display: none; }
.tsx { display: flex; flex-direction: column; gap: 4px; font-size: 14px; font-weight: 600; min-width: 0; }
.tsx[hidden] { display: none; }
.tsx .inp { min-height: 44px; font-size: 15px; padding: 0 10px; border-radius: 10px; border-width: 1px; }
.tsline.tsaccrow { flex-wrap: wrap; justify-content: space-between; margin-top: 8px; row-gap: 4px; }
.tsacc { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: var(--ink-2); }
.tstpl[aria-pressed="true"] { border-color: var(--teal); box-shadow: 0 0 0 2px var(--teal-light); }
.tsmini { z-index: 3; }
.tsline .artck { min-height: 44px; font-size: 15px; gap: 6px; }
@media (max-width: 420px) { .tsalpha > span { display: none; } }
.tsline[data-tsrow="edge"] { gap: 10px; }
/* 미리보기 위 끌기 층 — 글자 상자 · 띠 상자(고르면 손잡이 8개) */
.tsstage { position: relative; }
.tsstage > img { display: block; }
.artthumbph.tsstage i { pointer-events: none; z-index: 1; }
.tsov { position: absolute; inset: 0; border-radius: 12px; outline: none; touch-action: pan-y; z-index: 2; }
.tsov:focus-visible { box-shadow: 0 0 0 3px var(--teal-light), inset 0 0 0 2px var(--teal); }
.tsobj { position: absolute; box-sizing: border-box; cursor: move; touch-action: none; }
.tsobj[hidden] { display: none; }
.tstext { z-index: 2; border: 1.5px dashed transparent; border-radius: 4px; }
.tstext::before { content: ""; position: absolute; inset: -6px; }
.tsov:hover .tstext, .tstext.on { border-color: rgba(255, 255, 255, .95); box-shadow: 0 0 0 1.5px rgba(15, 118, 110, .9); }
.tsband { z-index: 1; border: 1.5px dashed transparent; border-radius: 6px; }
.tsov:hover .tsband { border-color: rgba(255, 255, 255, .7); }
.tsband.on { z-index: 3; border: 2px solid var(--teal); box-shadow: 0 0 0 1px rgba(255, 255, 255, .9); }
.tsh { display: none; position: absolute; width: 14px; height: 14px; margin: -7px 0 0 -7px; background: #fff; border: 2px solid var(--teal); border-radius: 3px; box-sizing: border-box; touch-action: none; }
.tsh::before { content: ""; position: absolute; inset: -8px; }
.tsband.on .tsh { display: block; }
.tsh-nw { left: 0; top: 0; cursor: nwse-resize; } .tsh-n { left: 50%; top: 0; cursor: ns-resize; } .tsh-ne { left: 100%; top: 0; cursor: nesw-resize; } .tsh-e { left: 100%; top: 50%; cursor: ew-resize; }
.tsh-se { left: 100%; top: 100%; cursor: nwse-resize; } .tsh-s { left: 50%; top: 100%; cursor: ns-resize; } .tsh-sw { left: 0; top: 100%; cursor: nesw-resize; } .tsh-w { left: 0; top: 50%; cursor: ew-resize; }
.tswarn { color: var(--warn-ink); font-weight: 600; } .tsok { color: var(--ok); }
[data-thumbwarn] { margin: 8px 0; }
@media (max-width: 480px) { .tstpls { grid-auto-columns: 84px; } }
/* 1023 [글 설정] 올릴 블로그 · 광고 표시(블로그가 둘 이상일 때만) · 고른 블로그의 최근 30일 광고 글 비율(알림만 · 막지 않음) */
.artnv { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; padding-top: 10px; border-top: 1px dashed var(--line-2); min-width: 0; }
.artnv .artnvgone { margin: 0; }
.artnvad { margin: 0; padding: 8px 12px; border-radius: 10px; background: var(--surface-2, #F5F5F4); color: var(--ink); font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.artnvad.warn { background: var(--warn-bg); color: var(--warn-ink); }
.artnvad.warn [data-artnvadline] { font-weight: 700; }
.artnvad .artnvhonest { font-size: 14px; }
.artnvto { margin: 0; }

/* 1024 네이버 AI 브리핑 — 켜기 · 끄기 단추(role=switch · 44px) · 인용 점검 카드(SEO 점검표 아래) · 출처 막대 · #/naver 카드 */
.aisw { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 56px; padding: 8px 14px; margin-top: 8px; border: 1px solid var(--line-2); border-radius: 14px; background: var(--surface); color: var(--ink); text-align: left; cursor: pointer; font: inherit; }
.aisw:focus-visible { outline: 3px solid var(--teal); outline-offset: 2px; }
.aisw[aria-checked="true"] { border: 2px solid var(--teal); background: var(--teal-light); padding: 7px 13px; }
.aisw[disabled] { cursor: not-allowed; opacity: .75; }
.aisw .aitrack { flex: none; width: 46px; height: 26px; border-radius: 999px; background: var(--line); position: relative; }
.aisw .aitrack i { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.3); transition: left .15s; }
.aisw[aria-checked="true"] .aitrack { background: var(--teal); }
.aisw[aria-checked="true"] .aitrack i { left: 23px; }
.aisw .t { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.aisw .t b { font-size: 15px; } .aisw .t span { font-size: 13px; color: var(--ink-2); line-height: 1.45; }
.aisw .aistate { flex: none; font-size: 13px; font-weight: 700; color: var(--ink-2); }
.aisw[aria-checked="true"] .aistate { color: var(--teal-link); }
.aifmt { margin-top: 4px; }
.aicite { border: 1px solid var(--line-2); border-radius: 14px; background: var(--surface); padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; font-size: 14px; color: var(--ink); line-height: 1.5; min-width: 0; }
.aicite h3 { margin: 0; font-size: 17px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; } .aicite h3 .min { font-weight: 400; }
.aicite .gobar { margin: 0; }
.aiintro { padding: 10px 12px; border-radius: 10px; background: var(--teal-light); border-left: 4px solid var(--teal); }
.aiintro p { margin: 0 0 6px; } .aiintro ul { margin: 0 0 8px; padding-left: 18px; display: flex; flex-direction: column; gap: 4px; }
.aikws { display: flex; flex-wrap: wrap; gap: 6px; }
.aikw { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--line-2); background: var(--bg); font-size: 14px; overflow-wrap: anywhere; }
.aikw.main { border: 2px solid var(--teal); background: var(--teal-light); font-weight: 700; }
.aikw input { width: 20px; height: 20px; accent-color: var(--teal); margin: 0; }
.airesults { display: flex; flex-direction: column; gap: 10px; }
.airesult { border-top: 1px solid var(--line-2); padding-top: 8px; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.airhead { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; }
.aibadge { white-space: normal; height: auto; min-height: 28px; line-height: 1.3; padding: 4px 10px; align-self: flex-start; flex-direction: row; }
.aibars { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.aibars li { min-width: 0; }
.aibars li.mine .aibar i { background: var(--ok); }
.aibrow { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.aibrow .ainame { min-width: 0; overflow-wrap: anywhere; color: var(--teal-link); font-weight: 600; }
.aibrow b { white-space: nowrap; }
.aibar { height: 8px; border-radius: 999px; background: var(--track, #E5E7EB); overflow: hidden; margin-top: 3px; }
.aibar i { display: block; height: 100%; background: var(--teal); border-radius: 999px; }
.aibar.unk i { background: repeating-linear-gradient(90deg, var(--line) 0 6px, transparent 6px 10px); }
.aisub { margin: 2px 0 0; font-size: 13px; color: var(--ink-2); overflow-wrap: anywhere; }
.aiwarn { border-top: 1px solid var(--line-2); padding-top: 8px; }
.aicard .aiswlist { display: flex; flex-direction: column; }
.aicard .aih3 { margin: 8px 0 0; font-size: 16px; }
.aihist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.aihist li { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; padding: 6px 0; border-top: 1px solid var(--line-2); font-size: 14px; }
.aihist .aihk { font-weight: 600; overflow-wrap: anywhere; }
.aijobline { margin: 0; }
[data-seoai] .seorules .seorow .muted { font-size: 13px; }   /* 1024 AI 인용 형식 줄은 13px(점검표 위쪽 줄은 그대로) */
.airesult > .stchip { align-self: flex-start; }
/* 1025 내 예전 글 링크(대표 10/25 10:59) — 완성본 안: 본문 중간 "👉 관련 글" 한 줄 · 끝 "함께 보면 좋은 글" 상자 / 완성본 아래: 켜기 · 개수 · 고른 글(빼기 · 바꾸기) · 예전 글 직접 추가 · 누르는 곳 44px */
.artlkin { margin: 4px 0 10px; padding: 8px 12px; border-radius: 10px; background: var(--art-soft, var(--teal-light)); font-weight: 600; overflow-wrap: anywhere; }
.artlkin a, .artlkend a { color: var(--art-accent, var(--teal-link, var(--teal))); text-decoration: underline; text-underline-offset: 3px; }
.artlkend { margin: 18px 0 4px; padding: 14px 16px; border: 1px solid var(--line-2); border-left: 4px solid var(--art-accent, var(--teal)); border-radius: 12px; background: var(--surface); }
.artlkend > b { display: block; font-size: 16px; margin-bottom: 6px; }
.artlkend ul { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; }
.artlkend li { overflow-wrap: anywhere; }
.artlkurl { display: block; font-size: 12px; color: var(--ink-3, #6b7280); overflow-wrap: anywhere; word-break: break-all; }
.artlinks { margin-top: 16px; border: 1px solid var(--line-2); border-radius: 14px; padding: 12px 16px 14px; display: flex; flex-direction: column; gap: 8px; background: var(--surface); min-width: 0; }
.artlkhead { display: flex; flex-direction: column; gap: 6px; }
.artlkhead h3 { font-size: 17px; margin: 0; } .artlkhead h3 .min { font-weight: 400; margin-left: 4px; }
.artlkctl { display: flex; flex-wrap: wrap; gap: 4px 18px; align-items: center; }
.artlkctl .artck, .artlkctl .artnum, .artlkfrow .artck { min-height: 44px; display: inline-flex; align-items: center; gap: 6px; }
.artlkctl .artnum .inp { width: auto; min-width: 84px; min-height: 40px; }
.artlklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.artlklist li { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 12px; padding: 6px 10px; border-radius: 10px; border: 1px solid var(--line-2); min-width: 0; }
.artlklist li.on { background: var(--teal-light); border-color: #B7DCD8; }
.artlklist li .artck { min-height: 40px; display: inline-flex; align-items: center; gap: 8px; min-width: 0; overflow-wrap: anywhere; flex: 1 1 260px; }
.artlklist li select.inp { max-width: 100%; min-height: 40px; flex: 0 1 240px; min-width: 0; }
.artlknote { margin: 0; display: block; font-size: 14px; line-height: 1.6; } .artlknote a { margin-left: 6px; white-space: nowrap; }
.artlkctl .artck { flex-wrap: wrap; } .artlkctl .artck .muted { font-size: 13px; }
.artlkman summary { cursor: pointer; min-height: 40px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-weight: 600; }
.artlkman summary .muted { font-weight: 400; font-size: 13px; }
.artlkman textarea { width: 100%; }
.artlkman-l { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.artlinks .btn { min-height: 40px; }
.artlkman-l li { display: flex; align-items: center; gap: 10px; min-width: 0; } .artlkman-l li .grow { min-width: 0; overflow-wrap: anywhere; }
.artlkf[hidden] { display: none; }
.artlkf { display: flex; flex-direction: column; gap: 4px; } .artlkfrow { align-items: end; }
.artlkf p { margin: 0; }
/* 1025 노출 가능성 (추정) — 구조 점수 아래 칸(같은 상자 모양 · 폰은 완성본 아래) */
.expo .expoband { margin: 0; font-size: 15px; }
.expolv { display: inline-flex; align-items: center; padding: 1px 8px; border-radius: 999px; font-size: 13px; font-weight: 700; white-space: nowrap; flex: none; border: 1px solid var(--line-2); color: var(--ink-2); background: var(--surface); }
.expolv.high { color: var(--ok); background: var(--ok-light); border-color: var(--ok-light); }
.expolv.mid { color: var(--teal-link); background: var(--teal-light); border-color: var(--teal-light); }
.expolv.low { color: var(--warn-ink); background: var(--warn-bg); border-color: var(--warn-bg); }
.expolv.na { color: var(--muted); border-style: dashed; }
.expolist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.expolist li { padding: 6px 8px; border-radius: 8px; border: 1px solid var(--line-2); min-width: 0; overflow-wrap: anywhere; }
.expolist .seorow { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.expolist p { margin: 2px 0 0; }
.expolist .expotip { color: var(--ink-2); }
/* 1025 네이버 글 전용 형식 — [내 경험 · 직접 찍은 사진 메모] 칸 */
.artexp { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.artexp[hidden] { display: none; }
.artexp p { margin: 0; }
/* 1026 AI 브리핑 뜨는 키워드인지 미리 확인 */
.artkwbrief:empty { display: none; }
.artkwbrief { margin-top: 6px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; display: flex; flex-direction: column; gap: 6px; }
.artkwbrief .kbhead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.artkwbrief .kbhead .btn { min-height: 44px; }
.artkwbrief .kblist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.artkwbrief .kblist li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; overflow-wrap: anywhere; }
.artkwbrief p { margin: 0; line-height: 1.5; }
