/* =====================================================================
   assets/css/wiki.css - 문서 보기 · 본문 글꼴 · 목차 · 각주 · 정보 상자 · 편집기 · 차이 비교
   읽기 편한 글 폭(약 40자/줄)과 넉넉한 줄 간격을 기준으로.
   ===================================================================== */

/* ---------- 문서 머리 ---------- */
.pw-doc { max-width: 1040px; }
.pw-doc-head { margin-bottom: 14px; }
.pw-doc-title { font-size: 28px; font-weight: 800; letter-spacing: -0.03em; margin: 2px 0 10px; word-break: keep-all; }
.pw-doc-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.pw-doc-actions .pw-btn[aria-disabled="true"] { opacity: .65; cursor: help; }
.pw-doc-meta { font-size: 13.5px; color: var(--pw-muted); margin: 0; }
.pw-doc-meta a { color: var(--pw-text-2); }
.pw-protect { color: var(--pw-warn); }
.pw-redirect-note { font-size: 14px; color: var(--pw-muted); background: var(--pw-surface-2); border-radius: 8px; padding: 6px 12px; display: inline-block; }
.pw-doc-vet { margin: 0 0 16px; }
.pw-doc-vet p { margin: 0; }
.pw-vet-sources { margin-top: 6px !important; font-size: 13.5px; color: #3c6e6c; }
.pw-hide-m { display: none !important; }

/* ---------- 본문 ---------- */
.pw-doc-content { background: var(--pw-surface); border: 1px solid var(--pw-border); border-radius: var(--pw-radius);
                  padding: 18px 16px; box-shadow: var(--pw-shadow); }
.pw-doc-content::after { content: ''; display: block; clear: both; }
.pw-doc-body { font-size: 16.5px; line-height: 1.8; color: var(--pw-text); max-width: var(--pw-read-width); }
.pw-doc-body > :first-child { margin-top: 0; }
.pw-doc-body p { margin: 0 0 1em; }
.pw-doc-body h2, .pw-doc-body h3, .pw-doc-body h4, .pw-doc-body h5, .pw-doc-body h6 { scroll-margin-top: 80px; }
.pw-doc-body h2 { display: flow-root; font-size: 22px; margin: 1.8em 0 .6em; padding-bottom: 6px; border-bottom: 2px solid var(--pw-border); }
.pw-doc-body h3 { font-size: 19px; margin: 1.5em 0 .5em; }
.pw-doc-body h4, .pw-doc-body h5, .pw-doc-body h6 { font-size: 17px; margin: 1.3em 0 .4em; }
.pw-heading-num { color: var(--pw-brand); font-weight: 800; text-decoration: none !important; margin-right: 2px; }
.pw-doc-body ul, .pw-doc-body ol { padding-left: 1.4em; margin: 0 0 1em; }
.pw-doc-body li { margin: .25em 0; }
.pw-doc-body li > ul, .pw-doc-body li > ol { margin: .25em 0; }
.pw-doc-body blockquote { margin: 0 0 1em; padding: 10px 14px; border-left: 4px solid var(--pw-brand); background: var(--pw-brand-soft);
                          border-radius: 0 8px 8px 0; color: var(--pw-text-2); }
.pw-doc-body blockquote p:last-child { margin-bottom: 0; }
.pw-doc-body pre { background: #2b2620; color: #f7f1e8; padding: 14px; border-radius: 10px; overflow-x: auto; font-size: 14px; line-height: 1.6; }
.pw-doc-body pre code { background: none; padding: 0; color: inherit; }
.pw-doc-body hr { border: 0; border-top: 1px dashed var(--pw-border-strong); margin: 1.6em 0; }
.pw-doc-body img { max-width: 100%; height: auto; border-radius: 10px; }
.pw-doc-body a { text-decoration: underline; text-decoration-color: rgba(29, 106, 134, .3); text-underline-offset: 3px; }
.pw-doc-body a:hover { text-decoration-color: currentColor; }
.pw-doc-body a.pw-wl { text-decoration: none; border-bottom: 1px solid rgba(29, 106, 134, .25); }
.pw-doc-body a.pw-wl-missing, a.pw-wl-missing { color: var(--pw-link-missing); border-bottom-style: dashed; border-bottom-color: rgba(194, 64, 47, .4); }
.pw-doc-body a[target="_blank"]::after { content: '↗'; font-size: .75em; margin-left: 1px; color: var(--pw-muted); }

/* 표: 휴대폰에서 옆으로 밀기 */
.pw-table-wrap { overflow-x: auto; margin: 0 0 1.2em; -webkit-overflow-scrolling: touch; }
.pw-doc-body table { border-collapse: collapse; min-width: 100%; font-size: 15px; line-height: 1.55; }
.pw-doc-body th, .pw-doc-body td { border: 1px solid var(--pw-border); padding: 8px 10px; vertical-align: top; }
.pw-doc-body th { background: var(--pw-surface-2); font-weight: 700; }

/* 유튜브 */
.pw-video { display: block; position: relative; padding-top: 56.25%; margin: 0 0 1em; border-radius: 10px; overflow: hidden; background: #000; }
.pw-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- 목차 ---------- */
.pw-toc { display: inline-block; min-width: 220px; max-width: 100%; margin: .4em 0 1.4em; padding: 12px 18px 12px 14px;
          background: var(--pw-surface-2); border: 1px solid var(--pw-border); border-radius: 10px; font-size: 15px; }
.pw-toc-title { font-weight: 800; margin: 0 0 6px; }
.pw-toc ol { list-style: none; padding: 0; margin: 0; }
.pw-toc li { margin: 3px 0; }
.pw-toc a { color: var(--pw-text-2); text-decoration: none !important; border: 0 !important; }
.pw-toc a:hover { color: var(--pw-link); }
.pw-toc-num { color: var(--pw-brand); font-weight: 700; }
.pw-toc-l2 { padding-left: 16px; } .pw-toc-l3 { padding-left: 32px; } .pw-toc-l4 { padding-left: 48px; }

/* ---------- 각주 ---------- */
.pw-fn-ref { font-size: .72em; line-height: 0; }
.pw-fn-ref a { text-decoration: none !important; font-weight: 700; padding: 0 1px; }
.pw-footnotes { margin-top: 2em; border-top: 1px solid var(--pw-border); padding-top: 10px; font-size: 14.5px; color: var(--pw-text-2); }
.pw-footnotes-title { font-size: 15px !important; border: 0 !important; margin: 0 0 6px !important; padding: 0 !important; }
.pw-footnotes ol { list-style: none; padding-left: 0; }
.pw-footnotes li { margin: 4px 0; scroll-margin-top: 80px; }
.pw-footnotes li:target, .pw-doc-body h2:target, .pw-doc-body h3:target { background: #fff6d6; border-radius: 6px; }
.pw-fn-back { font-weight: 700; text-decoration: none !important; margin-right: 4px; }
.pw-fn-pop { position: absolute; z-index: 120; max-width: min(360px, 90vw); background: #fff; border: 1px solid var(--pw-border-strong);
             border-radius: 10px; box-shadow: 0 8px 22px rgba(60, 40, 20, .18); padding: 10px 12px; font-size: 14px; line-height: 1.6; }

/* ---------- 정보 상자 ---------- */
.pw-infobox { border: 1px solid var(--pw-border-strong); border-radius: 12px; overflow: hidden; margin: 0 0 18px; background: #fff; font-size: 14.5px; }
.pw-infobox-title { margin: 0; padding: 10px 14px; background: var(--pw-brand); color: #fff; font-weight: 800; font-size: 17px; text-align: center; }
.pw-infobox-health .pw-infobox-title { background: var(--pw-health); }
.pw-infobox-photo { margin: 0; background: var(--pw-surface-2); }
.pw-infobox-photo img { display: block; width: 100%; max-height: 320px; object-fit: cover; }
.pw-infobox-photo figcaption { font-size: 12px; color: var(--pw-muted); padding: 5px 10px; line-height: 1.4; }
.pw-infobox table { width: 100%; border-collapse: collapse; }
.pw-infobox th, .pw-infobox td { padding: 7px 12px; border-top: 1px solid var(--pw-border); text-align: left; vertical-align: top; line-height: 1.5; }
.pw-infobox th { width: 34%; background: var(--pw-surface-2); color: var(--pw-text-2); font-weight: 700; white-space: nowrap; }

/* ---------- 문서 꼬리 ---------- */
.pw-doc-foot { margin-top: 14px; display: grid; gap: 10px; }
.pw-doc-cats { margin: 0; padding: 10px 14px; background: var(--pw-surface); border: 1px solid var(--pw-border); border-radius: 10px; font-size: 14px;
               display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.pw-doc-cats strong { margin-right: 4px; }
.pw-doc-improve { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 14px;
                  border: 1px dashed var(--pw-border-strong); border-radius: 10px; font-size: 14.5px; color: var(--pw-text-2); }
.pw-doc-improve p { margin: 0; }

/* ---------- 원문·역링크·작성 필요 ---------- */
.pw-raw { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 14px; background: #fffdf9; }
.pw-wanted { list-style: none; columns: 1; }
.pw-wanted li { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; border-bottom: 1px dashed var(--pw-border); break-inside: avoid; }
.pw-new-doc { max-width: 520px; }

/* =====================================================================
   편집기
   ===================================================================== */
.pw-editor-page { max-width: 1000px; }
.pw-editor-head h1 { font-size: 24px; margin: 0 0 12px; }
.pw-editor-head h1 a { color: var(--pw-text); }
.pw-editor-head .pw-meta { margin: 0; }
.pw-editor-form { display: grid; gap: 14px; }
.pw-editor-meta { background: var(--pw-surface); border: 1px solid var(--pw-border); border-radius: var(--pw-radius); padding: 14px; }
.pw-infobox-form { border: 1px solid var(--pw-border); border-radius: var(--pw-radius); background: var(--pw-surface); padding: 0; }
.pw-infobox-form > summary { cursor: pointer; padding: 12px 14px; font-weight: 800; list-style-position: inside; }
.pw-infobox-form[open] > summary { border-bottom: 1px solid var(--pw-border); }
.pw-infobox-form fieldset { border: 0; margin: 0; padding: 12px 14px; min-width: 0; }
.pw-infobox-grid { display: grid; grid-template-columns: 1fr; gap: 10px; }
.pw-infobox-grid .pw-help { margin: 0; }

.pw-editor { border: 1px solid var(--pw-border-strong); border-radius: var(--pw-radius); background: #fff; overflow: hidden; }
.pw-editor-tabs { display: flex; align-items: center; gap: 2px; background: var(--pw-surface-2); border-bottom: 1px solid var(--pw-border); padding: 6px 6px 0; }
.pw-editor-tabs button { border: 0; background: transparent; padding: 8px 14px; border-radius: 8px 8px 0 0; font-weight: 700; color: var(--pw-muted); cursor: pointer; }
.pw-editor-tabs button.is-active { background: #fff; color: var(--pw-text); box-shadow: 0 -1px 0 var(--pw-border) inset; }
.pw-editor-help { margin-left: auto; font-size: 13px; padding: 0 8px; }
.pw-editor-toolbar { display: flex; gap: 4px; padding: 6px; border-bottom: 1px solid var(--pw-border); overflow-x: auto; scrollbar-width: thin; }
.pw-editor-toolbar button { flex: none; min-width: 36px; height: 34px; padding: 0 9px; border: 1px solid var(--pw-border); border-radius: 7px;
                            background: #fff; font-size: 13.5px; font-weight: 700; cursor: pointer; color: var(--pw-text-2); }
.pw-editor-toolbar button:hover { border-color: var(--pw-brand); color: var(--pw-brand-strong); }
.pw-editor-toolbar button[data-cmd="italic"] { font-style: italic; }
.pw-editor-toolbar button[data-cmd="strike"] { text-decoration: line-through; }
.pw-editor-text { display: block; width: 100%; min-height: 55vh; border: 0; padding: 14px; resize: vertical; outline: none;
                  font-family: var(--pw-font); font-size: 15.5px; line-height: 1.75; tab-size: 4; }
.pw-editor-preview { padding: 16px; min-height: 55vh; max-width: none; }
.pw-editor-preview .pw-infobox { max-width: 320px; }
.pw-editor-status { margin: 0; padding: 6px 12px; font-size: 12.5px; color: var(--pw-muted); border-top: 1px solid var(--pw-border); background: var(--pw-surface-2); }
.pw-editor-bottom { display: grid; gap: 10px; background: var(--pw-surface); border: 1px solid var(--pw-border); border-radius: var(--pw-radius); padding: 14px; }
.pw-editor-actions { display: flex; justify-content: flex-end; gap: 8px; }
.pw-editor-actions .pw-btn-lg { min-width: 140px; }
.pw-mass-confirm { background: var(--pw-danger-soft); color: var(--pw-danger); padding: 10px; border-radius: 8px; }
.pw-conflict { border-color: #f1d18a; background: #fffdf3; }

/* 휴대폰: 저장 버튼을 화면 아래에 붙여 언제든 누를 수 있게 */
@media (max-width: 899px) {
    .pw-page-edit .pw-tabbar { display: none; }
    .pw-page-edit .pw-main { padding-bottom: 96px; }
    .pw-editor-actions { position: fixed; left: 0; right: 0; bottom: 0; z-index: 210; background: rgba(255, 255, 255, .97);
                         border-top: 1px solid var(--pw-border); padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); }
    .pw-editor-actions .pw-btn { flex: 1; }
}

/* ---------- 차이 비교 (편집 충돌 · ④ 버전 비교에서도 사용) ---------- */
.pw-diff-wrap { overflow-x: auto; border: 1px solid var(--pw-border); border-radius: 8px; margin: 10px 0; background: #fff; }
.pw-diff { width: 100%; border-collapse: collapse; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13.5px; line-height: 1.55; }
.pw-diff td { padding: 2px 8px; vertical-align: top; }
.pw-diff-no { width: 1%; color: var(--pw-muted); text-align: right; user-select: none; white-space: nowrap; background: var(--pw-surface-2); }
.pw-diff-text { white-space: pre-wrap; word-break: break-word; }
.pw-diff-sign { display: inline-block; width: 1.2em; color: var(--pw-muted); user-select: none; }
.pw-diff-del { background: #fdecea; }
.pw-diff-add { background: #e9f6ee; }
.pw-diff-del mark { background: #f6b9b0; color: inherit; border-radius: 2px; }
.pw-diff-add mark { background: #a9dcbb; color: inherit; border-radius: 2px; }
.pw-diff-skip td { text-align: center; color: var(--pw-muted); background: var(--pw-surface-2); font-size: 12.5px; }
.pw-diff-none { color: var(--pw-muted); }

/* =====================================================================
   PC
   ===================================================================== */
@media (min-width: 600px) {
    .pw-infobox-grid { grid-template-columns: 1fr 1fr; }
    .pw-field-wide { grid-column: 1 / -1; }
    .pw-wanted { columns: 2; column-gap: 28px; }
}
@media (min-width: 900px) {
    .pw-doc-title { font-size: 34px; }
    .pw-hide-m { display: inline-flex !important; }
    .pw-doc-content { padding: 26px 30px; }
    .pw-infobox { float: right; width: 300px; margin: 0 0 18px 24px; }
    .pw-editor-head h1 { font-size: 28px; }
}

/* =====================================================================
   ④ 이력·복구 (v0.4.0) - 문서 역사 · 옛 버전 · 버전 비교 · 되돌리기 · 최근 변경
   ===================================================================== */

/* ---------- 공통: 표식 · 쪽 번호 ---------- */
.pw-badge { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 12px; font-weight: 700; line-height: 1.6;
            background: var(--pw-surface-2); color: var(--pw-text-2); white-space: nowrap; }
.pw-badge-now { background: var(--pw-brand-soft); color: var(--pw-brand-strong); }
.pw-badge-create { background: var(--pw-ok-soft); color: var(--pw-ok); }
.pw-badge-revert { background: var(--pw-warn-soft); color: var(--pw-warn); }
.pw-badge-move { background: var(--pw-info-soft); color: #1d5c74; }
.pw-delta.is-zero { color: var(--pw-muted); font-weight: 600; }
.pw-delta { font-variant-numeric: tabular-nums; }
.pw-author { font-weight: 600; }
.pw-author-site { color: var(--pw-brand-strong); }
.pw-h3 { font-size: 15px; margin: 18px 0 8px; }
.pw-req { color: var(--pw-danger); font-size: 13px; font-weight: 600; }
.pw-chip.is-active { background: var(--pw-brand); border-color: var(--pw-brand); color: #fff; }
.pw-input-sm { min-height: 36px; padding-top: 4px; padding-bottom: 4px; font-size: 14px; }
.pw-hist-hidden-note { color: var(--pw-muted); font-style: italic; }

.pw-pager { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px; margin: 22px 0 8px; }
.pw-pager a, .pw-pager strong { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; min-height: 38px;
                                padding: 0 12px; border-radius: 10px; border: 1px solid var(--pw-border); background: var(--pw-surface);
                                color: var(--pw-text-2); text-decoration: none; font-size: 14px; }
.pw-pager a:hover { border-color: var(--pw-brand); color: var(--pw-brand-strong); }
.pw-pager strong { background: var(--pw-brand); border-color: var(--pw-brand); color: #fff; }

/* ---------- 문서 역사 ---------- */
.pw-hist-guide { font-size: 14px; color: var(--pw-text-2); background: var(--pw-surface-2); border-radius: var(--pw-radius-sm);
                 padding: 10px 14px; margin-bottom: 14px; }
.pw-hist-guide p { margin: 0; }
.pw-hist-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 10px 0; }
.pw-hist { list-style: none; padding: 0; margin: 0; background: var(--pw-surface); border: 1px solid var(--pw-border);
           border-radius: var(--pw-radius); overflow: hidden; }
.pw-hist-item { display: flex; gap: 10px; padding: 12px 14px; border-top: 1px solid var(--pw-border); scroll-margin-top: 80px; }
.pw-hist-item:first-child { border-top: 0; }
.pw-hist-item.is-current { background: #fffaf4; }
.pw-hist-item.is-hidden { background: repeating-linear-gradient(-45deg, #faf7f2, #faf7f2 8px, #f3eee6 8px, #f3eee6 16px); }
.pw-hist-item:target { box-shadow: inset 4px 0 0 var(--pw-brand); }
.pw-hist-pick { display: flex; gap: 4px; padding-top: 2px; flex: none; }
.pw-hist-pick input { width: 20px; height: 20px; margin: 0; accent-color: var(--pw-brand); cursor: pointer; }
.pw-hist-main { min-width: 0; flex: 1; }
.pw-hist-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin: 0; font-size: 14px; color: var(--pw-text-2); }
.pw-hist-no { font-weight: 800; color: var(--pw-text); font-size: 15px; }
.pw-hist-summary { margin: 4px 0 0; font-size: 14.5px; color: var(--pw-text); word-break: break-word; }
.pw-hist-tools { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 6px 0 0; font-size: 13.5px; }
.pw-hist-tools a { color: var(--pw-link); }
.pw-hist-revert { color: var(--pw-brand-strong) !important; font-weight: 700; }
.pw-hist-admin { margin-top: 22px; border-color: #e7c9c4; }
.pw-hist-hide { display: grid; gap: 6px; max-width: 520px; }
.pw-hist-hide .pw-btn { justify-self: start; margin-top: 6px; }
.pw-hist-unhide { list-style: none; padding: 0; margin: 0; }
.pw-hist-unhide li { padding: 6px 0; border-top: 1px dashed var(--pw-border); }
.pw-hist-unhide form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }

/* ---------- 옛 버전 보기 ---------- */
.pw-oldver { background: var(--pw-warn-soft); border: 1px solid #ecd9a6; border-radius: var(--pw-radius); padding: 12px 14px; margin: 0 0 16px; }
.pw-oldver p { margin: 0 0 6px; }
.pw-oldver-title { font-size: 15px; }
.pw-oldver-meta { font-size: 13.5px; color: var(--pw-text-2); }
.pw-oldver-hidden { font-size: 13.5px; color: var(--pw-danger); }
.pw-oldver-nav { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.pw-doc-old .pw-doc-content { border-style: dashed; }

/* ---------- 버전 비교 ---------- */
.pw-diff-cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; margin-bottom: 12px; }
.pw-diff-card { background: var(--pw-surface); border: 1px solid var(--pw-border); border-radius: var(--pw-radius-sm); padding: 10px 12px; }
.pw-diff-card p { margin: 0 0 4px; }
.pw-diff-card-old { border-left: 4px solid #e6a59c; }
.pw-diff-card-new { border-left: 4px solid #8fcca4; }
.pw-diff-card-no { font-weight: 800; }
.pw-diff-card-sum { font-size: 14px; color: var(--pw-text-2); word-break: break-word; }
.pw-diff-arrow { display: none; align-self: center; color: var(--pw-muted); font-size: 20px; }
.pw-diff-nav { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.pw-diff-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: 13px; margin: 0 0 6px; }
.pw-diff-key { padding: 1px 8px; border-radius: 6px; font-weight: 600; }
.pw-diff-key-del { background: #fdecea; color: #8f2a20; }
.pw-diff-key-add { background: #e9f6ee; color: #23623e; }
.pw-diff-meta { font-size: 14px; margin: 8px 0 12px; background: var(--pw-surface); }
.pw-diff-meta th, .pw-diff-meta td { border: 1px solid var(--pw-border); padding: 6px 10px; text-align: left; vertical-align: top; word-break: break-word; }
.pw-diff-meta thead th { background: var(--pw-surface-2); }
.pw-diff-meta-old { background: #fdf3f1; }
.pw-diff-meta-new { background: #f1f9f4; }

/* ---------- 되돌리기 ---------- */
.pw-revert-form { max-width: 640px; margin-bottom: 20px; }
.pw-revert-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.pw-mass-confirm { margin-top: 10px; }
.pw-revert-diff-title { margin-top: 8px; }

/* ---------- 최근 변경 ---------- */
.pw-recent-filter { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.pw-recent-cat select { width: auto; max-width: 220px; }
.pw-recent-day { margin-bottom: 18px; }
.pw-recent-date { position: sticky; top: 0; z-index: 2; font-size: 14px; font-weight: 800; color: var(--pw-brand-strong);
                  background: var(--pw-bg); padding: 6px 2px; margin: 0; }
.pw-recent { list-style: none; padding: 0; margin: 0; background: var(--pw-surface); border: 1px solid var(--pw-border); border-radius: var(--pw-radius); overflow: hidden; }
.pw-recent-item { display: flex; gap: 12px; padding: 10px 14px; border-top: 1px solid var(--pw-border); }
.pw-recent-item:first-child { border-top: 0; }
.pw-recent-item.is-hidden { opacity: .7; }
.pw-recent-time { flex: none; width: 42px; font-size: 13px; color: var(--pw-muted); font-variant-numeric: tabular-nums; padding-top: 2px; }
.pw-recent-main { min-width: 0; flex: 1; }
.pw-recent-main p { margin: 0; }
.pw-recent-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.pw-recent-title { font-weight: 700; font-size: 15.5px; word-break: keep-all; }
.pw-recent-sub { font-size: 13.5px; color: var(--pw-text-2); margin-top: 2px !important; }
.pw-recent-sum { color: var(--pw-text-2); word-break: break-word; }
.pw-recent-tools { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 13px; margin-top: 4px !important; }

/* 공개 프로필 기여 목록 */
.pw-contrib-diff { font-size: 13px; }

@media (min-width: 900px) {
    .pw-recent-date { top: var(--pw-header-h); }
}
@media (min-width: 700px) {
    .pw-diff-cards { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
    .pw-diff-arrow { display: block; }
}

/* =====================================================================
   ⑤ 태그 (v0.5.0) - 문서 아래 태그 줄
   ===================================================================== */
.pw-doc-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; padding: 10px 14px;
               background: var(--pw-surface); border: 1px solid var(--pw-border); border-radius: 10px; font-size: 14px; }
.pw-doc-tags strong { margin-right: 4px; }

/* =====================================================================
   ⑥ 사진 (v0.6.0) - 사진 올리기 · 사진 정보 · 내 사진 · 편집기 사진 창
   ===================================================================== */
.pw-doc-body a.pw-photo-link { display: inline-block; border: 0; text-decoration: none; }
.pw-doc-body a.pw-photo-link::after { content: none; }
.pw-doc-body img { height: auto; }
.pw-infobox-photo a.pw-photo-link { display: block; }

.pw-photo-form { max-width: 640px; display: grid; gap: 4px; }
.pw-photo-meta-grid { display: grid; gap: 0 12px; grid-template-columns: minmax(0, 1fr); }
.pw-photo-rule { margin-bottom: 10px !important; }
.pw-photo-grid { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pw-photo-grid li { background: var(--pw-surface); border: 1px solid var(--pw-border); border-radius: var(--pw-radius-sm); padding: 8px; min-width: 0; }
.pw-photo-grid img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; background: var(--pw-surface-2); }
.pw-photo-grid .pw-meta { margin: 6px 0; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pw-photo-md { font-size: 12.5px; min-height: 34px; padding: 4px 8px; font-family: ui-monospace, Menlo, Consolas, monospace; }
.pw-photo-view { margin: 0 0 16px; text-align: center; background: var(--pw-surface); border: 1px solid var(--pw-border); border-radius: var(--pw-radius); padding: 12px; }
.pw-photo-view img { max-width: 100%; height: auto; max-height: 70vh; border-radius: 8px; }
.pw-photo-view figcaption { margin-top: 8px; color: var(--pw-text-2); font-size: 14.5px; }
.pw-photo-info th { width: 90px; text-align: left; color: var(--pw-text-2); font-weight: 600; padding: 8px 6px; vertical-align: top; }
.pw-photo-info td { padding: 8px 6px; word-break: break-word; }
.pw-photo-info tr + tr { border-top: 1px dashed var(--pw-border); }
.pw-photo-delete { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 8px; }

/* 편집기: 사진 창 · 정보 상자 사진 */
.pw-photo-dialog { width: min(560px, calc(100vw - 24px)); max-height: calc(100vh - 32px); border: 0; border-radius: var(--pw-radius); padding: 18px 16px;
                   box-shadow: 0 18px 60px rgba(40, 25, 10, .3); background: var(--pw-surface); color: var(--pw-text); }
.pw-photo-dialog::backdrop { background: rgba(30, 20, 10, .45); }
.pw-photo-dialog-form { display: grid; gap: 4px; }
.pw-photo-dialog-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 8px; }
.pw-photo-dialog-actions .pw-meta { flex-basis: 100%; font-size: 13px; text-align: left; }
@media (min-width: 600px) { .pw-photo-dialog-actions .pw-meta { flex-basis: auto; margin-right: auto; } }
.pw-photo-progress { list-style: none; padding: 0; margin: 4px 0; display: grid; gap: 6px; font-size: 13.5px; }
.pw-photo-progress li { display: grid; grid-template-columns: minmax(0, 1fr) 90px; align-items: center; gap: 2px 8px; }
.pw-photo-progress li > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pw-photo-progress progress { width: 90px; accent-color: var(--pw-brand); }
.pw-photo-progress li > .pw-meta { grid-column: 1 / -1; }
.pw-photo-progress li.is-ok > .pw-meta { color: var(--pw-ok); }
.pw-photo-progress li.is-error > .pw-meta { color: var(--pw-danger); }
.pw-infobox-photo-tools { display: flex; align-items: center; gap: 10px; margin-top: 6px; }
.pw-infobox-photo-preview { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; border: 1px solid var(--pw-border); }
.pw-editor-toolbar button[data-photo-open] { font-weight: 700; }

@media (min-width: 600px) {
    .pw-photo-meta-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .pw-photo-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
ul.pw-chips { list-style: none; padding: 0; margin: 0; }

/* =====================================================================
   ⑦ 문서 관리·신고 (v0.7.0)
   ===================================================================== */
.pw-btn-ghost { background: transparent; border-color: transparent; color: var(--pw-muted); }
.pw-btn-ghost:hover { color: var(--pw-danger); border-color: var(--pw-border); }
.pw-manage-form { display: grid; gap: 6px; max-width: 560px; }
.pw-manage-form .pw-btn { justify-self: start; margin-top: 4px; }
.pw-manage-danger { border-color: #ecc7c1; }
.pw-photo-report { margin: 10px 0; }

/* =====================================================================
   ⑦-2 커뮤니티 (v0.7.5) - 게시판 · 공지 · 댓글 · 문서 토론 · 우리집 강아지
   ===================================================================== */
.pw-board-tabs { margin-bottom: 12px; }
.pw-board-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.pw-board-search { display: flex; gap: 6px; flex: 1 1 220px; max-width: 420px; }
.pw-board-search .pw-input { flex: 1; width: auto; }
.pw-board-list { list-style: none; padding: 0; margin: 0; background: var(--pw-surface); border: 1px solid var(--pw-border); border-radius: var(--pw-radius); overflow: hidden; }
.pw-board-list li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; padding: 12px 14px; border-top: 1px solid var(--pw-border); }
.pw-board-list li:first-child { border-top: 0; }
.pw-board-list li.is-pinned { background: #fffaf4; }
.pw-board-title { font-weight: 700; color: var(--pw-text); word-break: break-word; }
.pw-board-meta { flex-basis: 100%; font-size: 13px; }

.pw-post { max-width: 860px; }
.pw-post-head { margin-bottom: 12px; }
.pw-post-title { font-size: 24px; font-weight: 800; margin: 4px 0 6px; word-break: break-word; }
.pw-post-head .pw-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.pw-post-body { margin-bottom: 12px; }
.pw-post-tools { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.pw-post-tools form { display: inline; }
.pw-post-form { max-width: 760px; display: grid; gap: 6px; }

.pw-comments { margin-top: 24px; max-width: 860px; }
.pw-comment-thread { border-bottom: 1px solid var(--pw-border); padding: 4px 0 8px; }
.pw-comment { padding: 10px 0 4px; scroll-margin-top: 90px; }
.pw-comment.is-reply { margin-left: 22px; padding-left: 12px; border-left: 3px solid var(--pw-border); }
.pw-comment.is-admin .pw-comment-body { background: var(--pw-brand-soft); }
.pw-comment:target .pw-comment-body { box-shadow: 0 0 0 2px var(--pw-brand); }
.pw-comment-head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 14px; }
.pw-comment-body { margin: 6px 0 2px; padding: 8px 12px; background: var(--pw-surface); border: 1px solid var(--pw-border); border-radius: 10px;
                   font-size: 15px; line-height: 1.65; word-break: break-word; }
.pw-comment-gone { color: var(--pw-muted); font-style: italic; margin: 6px 0; }
.pw-comment-tools { display: flex; gap: 12px; font-size: 13px; }
.pw-comment-tools form { display: inline; }
.pw-link-btn { background: none; border: 0; padding: 0; color: var(--pw-muted); font: inherit; cursor: pointer; text-decoration: underline; }
.pw-link-btn:hover { color: var(--pw-danger); }
.pw-reply { margin: 2px 0 0 22px; font-size: 14px; }
.pw-reply summary { cursor: pointer; color: var(--pw-link); }
.pw-comment-form { display: grid; gap: 6px; margin-top: 8px; }
.pw-comment-form .pw-btn { justify-self: end; }
.pw-comment-new { margin-top: 14px; }

.pw-pet-grid { list-style: none; padding: 0; margin: 0 0 12px; display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pw-pet-card { background: var(--pw-surface); border: 1px solid var(--pw-border); border-radius: var(--pw-radius); padding: 8px; min-width: 0; }
.pw-pet-card a { display: block; color: var(--pw-text); text-decoration: none; }
.pw-pet-card img, .pw-pet-noimg { display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 1; object-fit: cover;
                                  border-radius: 10px; background: var(--pw-surface-2); font-size: 44px; }
.pw-pet-name { display: block; margin-top: 6px; font-size: 15.5px; }
.pw-pet-card .pw-meta { margin: 2px 0 0; font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pw-pet-card.is-rainbow img { filter: saturate(.6); }
.pw-pet-hero { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); margin-bottom: 14px; }
.pw-pet-photo img, .pw-pet-photo .pw-pet-noimg { width: 100%; max-width: 420px; aspect-ratio: 1; object-fit: cover; border-radius: var(--pw-radius); }
.pw-pet-title { font-size: 28px; font-weight: 800; margin: 0 0 4px; }
.pw-pet-info { border-collapse: collapse; margin-top: 10px; font-size: 15px; }
.pw-pet-info th { text-align: left; color: var(--pw-text-2); font-weight: 600; padding: 6px 14px 6px 0; white-space: nowrap; vertical-align: top; }
.pw-pet-info td { padding: 6px 0; }
.pw-pet-intro { white-space: normal; line-height: 1.7; margin-bottom: 10px; }
.pw-pet-others { margin-top: 22px; }
.pw-pet-form { max-width: 680px; display: grid; gap: 6px; }
.pw-pet-form fieldset { border: 0; padding: 0; margin: 0; }
.pw-inline-choices { display: flex; flex-wrap: wrap; gap: 4px 14px; }
.pw-inline-choices legend { width: 100%; }
.pw-pet-form-photo { width: 120px; height: 120px; object-fit: cover; border-radius: 10px; display: block; margin-bottom: 6px; }
.pw-pet-rainbow summary { cursor: pointer; color: var(--pw-text-2); }
.pw-pet-profile.is-rainbow .pw-pet-title { color: #6c5a8a; }
.pw-breed-pets { padding: 12px 14px; background: var(--pw-surface); border: 1px solid var(--pw-border); border-radius: 10px; }
.pw-breed-pets-empty { margin: 0; padding: 10px 14px; background: var(--pw-surface-2); border-radius: 10px; font-size: 14px; color: var(--pw-text-2); }

@media (min-width: 700px) {
    .pw-pet-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .pw-pet-hero { grid-template-columns: 300px minmax(0, 1fr); }
    .pw-board-meta { flex-basis: auto; margin-left: auto; }
}

/* v2.8.0 위키 문서 아래 "주의할 질환 / 잘 걸리는 견종" (견종 백과 색인) */
.pw-relations { margin: 0 0 16px; padding: 14px 16px; border: 1px solid var(--pw-border); border-radius: var(--pw-radius); background: var(--pw-surface); }
.pw-relations .pw-h2 { margin: 0 0 8px; font-size: 17px; }
.pw-relations-list { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.pw-relations-list li { padding: 8px 10px; border: 1px solid var(--pw-border); border-radius: var(--pw-radius-sm); background: var(--pw-bg); font-size: 14px; line-height: 1.5; }
.pw-relations-list small { color: var(--pw-muted); }
.pw-rel-urg { display: inline-block; margin-left: 4px; padding: 0 6px; border-radius: 999px; font-size: 11.5px; background: var(--pw-surface-2); color: var(--pw-text-2); }
.pw-rel-urg.is-u3 { background: var(--pw-warn-soft); color: var(--pw-warn); }
.pw-rel-urg.is-u4 { background: var(--pw-danger-soft); color: var(--pw-danger); }

/* v2.9.0 견종 문서 아래 "입양을 기다리는 ○○" (유기견 공고) */
.pw-adoptables { margin: 0 0 16px; }
.pw-adopt-mini { list-style: none; margin: 8px 0; padding: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.pw-adopt-mini a { display: flex; flex-direction: column; gap: 6px; border: 1px solid var(--pw-border); border-radius: var(--pw-radius-sm); overflow: hidden;
    background: var(--pw-surface); color: var(--pw-text); text-decoration: none; font-size: 13.5px; }
.pw-adopt-mini a > span:last-child { padding: 0 8px 8px; line-height: 1.45; }
.pw-adopt-mini small { color: var(--pw-muted); }
.pw-adopt-ph { display: block; aspect-ratio: 1 / 1; background: var(--pw-surface-2); }
.pw-adopt-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* 📚 최근 연구 (PubMed) - 질병 문서 아래 (v2.12.0) */
.pw-papers { margin: 0 0 16px; padding: 14px 16px; border: 1px solid var(--pw-border); border-radius: var(--pw-radius); background: var(--pw-surface); }
.pw-papers[hidden] { display: none; }
.pw-papers .pw-h2 { margin: 0 0 8px; font-size: 17px; }
.pw-papers .pw-h2 small { font-size: 12.5px; font-weight: 500; }
.pw-papers-list { margin: 0 0 8px 1.3em; padding: 0; display: grid; gap: 10px; }
.pw-papers-list li { font-size: 14.5px; line-height: 1.5; overflow-wrap: anywhere; }
.pw-papers-list small { display: block; margin-top: 2px; color: var(--pw-muted); font-size: 12.5px; }
.pw-paper-badge { display: inline-block; padding: 0 7px; border-radius: 999px; font-size: 11.5px; background: var(--pw-brand-soft); color: var(--pw-brand-strong); vertical-align: 1px; }
.pw-paper-hide { display: inline-block; margin-top: 2px; }

/* 🏛️ 공식 기관 정보 - 질병 문서 (v2.13.0) */
.pw-authority { margin: 0 0 16px; padding: 14px 16px; border: 1px solid var(--pw-border); border-radius: var(--pw-radius); background: var(--pw-surface); }
.pw-authority .pw-h2 { margin: 0 0 8px; font-size: 17px; }
.pw-authority-alert { margin: 0 0 10px; padding: 10px 12px; border-radius: var(--pw-radius-sm); background: var(--pw-warn-soft); color: var(--pw-text); font-size: 14.5px; line-height: 1.6; }
.pw-authority-list { list-style: none; margin: 0 0 6px; padding: 0; display: grid; gap: 8px; }
.pw-authority-list li { font-size: 14.5px; line-height: 1.5; overflow-wrap: anywhere; }
.pw-authority-org { display: inline-block; min-width: 3.5em; margin-right: 4px; padding: 0 8px; border-radius: 999px; font-size: 12px; text-align: center;
    background: var(--pw-surface-2); color: var(--pw-text-2); }

/* 함께 보면 좋은 문서 (v2.14.0) */
.pw-related-docs { margin: 24px 0 12px; }
.pw-related-docs ul { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.pw-related-docs li { padding: 10px 12px; border: 1px solid var(--pw-border); border-radius: 10px; background: var(--pw-surface); }
.pw-related-docs a { font-weight: 600; }
.pw-related-docs small { display: block; margin-top: 2px; color: var(--pw-muted, #6b6b6b); font-size: 13px; line-height: 1.45; }
@media (max-width: 640px) {
    .pw-related-docs ul { grid-template-columns: 1fr 1fr; gap: 6px; }
    .pw-related-docs li { padding: 8px 10px; font-size: 14.5px; line-height: 1.4; }
    .pw-related-docs small { display: none; }
}
