/* Editor tools: infobox (정보상자), quick tags, document templates, editor lounge, editor conveniences. */

/* ---------- infobox ---------- */
.wiki-infobox{display:block;margin:0 0 var(--sp-5);border:1px solid var(--line-strong,#343743);border-radius:var(--r-lg,10px);background:var(--surface);overflow:hidden;font-size:14px;line-height:1.55}
.wiki-infobox-head{display:flex;flex-direction:column;gap:2px;padding:12px 14px;background:var(--surface-2,#1b1d24);border-bottom:1px solid var(--line)}
.wiki-infobox-head strong{min-width:0;font-size:16px;font-weight:750;letter-spacing:-.01em;overflow-wrap:anywhere}
.wiki-infobox-kind{font-size:12px;color:var(--muted)}
.wiki-infobox-media{margin:0;padding:12px 14px 4px;text-align:center}
.wiki-infobox-media img{display:block;max-width:100%;max-height:360px;margin:0 auto;border-radius:var(--r,8px);object-fit:contain}
.wiki-infobox-media figcaption{margin-top:6px;font-size:12px;color:var(--muted)}
.wiki-infobox dl{margin:0;padding:6px 0}
.wiki-infobox-row{display:grid;grid-template-columns:minmax(72px,38%) minmax(0,1fr);gap:10px;padding:7px 14px;border-top:1px solid var(--line)}
.wiki-infobox-row:first-child{border-top:0}
.wiki-infobox dt{min-width:0;color:var(--secondary);font-weight:650;overflow-wrap:anywhere}
.wiki-infobox dd{min-width:0;margin:0;color:var(--text);overflow-wrap:anywhere}
@media (min-width:900px){
  .article-body .wiki-infobox,.cm-preview .wiki-infobox{float:right;width:min(320px,42%);margin:4px 0 var(--sp-5) var(--sp-5)}
  .article-body::after,.cm-preview::after{content:"";display:table;clear:both}
}

/* ---------- quick tags on articles ---------- */
.ed-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 4px}
.ed-tag{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:4px 11px;border-radius:999px;border:1px solid var(--line);font-size:12.5px;font-weight:650;color:var(--text);text-decoration:none}
.ed-tag span{font-variant-numeric:tabular-nums;color:var(--muted)}
.ed-tag-edit{border-color:var(--amber-line);background:var(--amber-soft);color:var(--amber)}
.ed-tag-source{border-color:var(--red-line);background:var(--red-soft);color:var(--red-strong)}
.ed-tag-stale{border-color:var(--blue-line);background:var(--blue-soft);color:var(--blue-strong)}
.ed-tag-menu{position:relative}
.ed-tag-menu>summary{display:inline-flex;align-items:center;min-height:30px;padding:4px 10px;border:1px dashed var(--line);border-radius:999px;color:var(--secondary);font-size:12.5px;cursor:pointer;list-style:none}
.ed-tag-menu>summary::-webkit-details-marker{display:none}
.ed-tag-forms{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.ed-tag-forms form{margin:0}
.ed-tag-forms .cm-muted{flex-basis:100%;margin:2px 0 0;font-size:12px}
.cm-btn.is-on{border-color:var(--accent);color:var(--accent-light,#c9c4ff);background:var(--accent-soft,#24224a)}

/* ---------- shared cards ---------- */
.ed-card{min-width:0;margin:0 0 var(--sp-5);padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-lg,10px);background:var(--surface)}
.ed-card>summary{cursor:pointer}
.ed-card-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 12px;margin-bottom:12px}
.ed-card-head h2{margin:0;font-size:17px;font-weight:750;min-width:0}
.ed-card-head .cm-muted,.ed-card-head a{font-size:12.5px}
.ed-status{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:650;vertical-align:middle;border:1px solid var(--line);color:var(--secondary)}
.ed-status-suggested,.ed-status-proposed{border-color:var(--amber-line);color:var(--amber)}
.ed-status-fulfilled,.ed-status-approved{border-color:var(--green-line);color:var(--green)}
.ed-status-declined,.ed-status-rejected,.ed-status-archived{color:var(--muted)}

/* ---------- lounge ---------- */
.ed-lounge-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0 var(--sp-5);align-items:start}
@media (min-width:1080px){.ed-lounge-grid{grid-template-columns:minmax(0,1fr) minmax(300px,380px)}}
.ed-side{min-width:0}
.ed-brief-list{margin:0;padding-left:20px;display:grid;gap:6px;line-height:1.6}
.ed-brief-list a{font-variant-numeric:tabular-nums}
.ed-game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.ed-game-chip{display:flex;flex-direction:column;gap:2px;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:9px;color:var(--text);text-decoration:none}
.ed-game-chip strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-game-chip span{font-size:12px;color:var(--muted)}
.ed-game-chip:hover{border-color:var(--accent)}
.ed-filter{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;margin:0 0 10px;scrollbar-width:thin}
.ed-filter a{flex:none;display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:4px 11px;border:1px solid var(--line);border-radius:999px;font-size:12.5px;color:var(--secondary);text-decoration:none;white-space:nowrap}
.ed-filter a.is-on{border-color:var(--accent);color:var(--text);background:var(--accent-soft,#24224a)}
.ed-filter small{color:var(--muted);font-variant-numeric:tabular-nums}
.ed-task{display:flex;align-items:flex-start;gap:12px;padding:12px 2px;border-top:1px solid var(--line)}
.ed-task:first-of-type{border-top:0}
.ed-task:target{background:var(--accent-soft,#24224a);border-radius:8px}
.ed-task.is-held{opacity:.78}
.ed-task-main{flex:1 1 auto;min-width:0}
.ed-task-title{display:block;min-width:0;margin-top:3px;font-weight:650;color:var(--text);overflow-wrap:anywhere}
.ed-task-detail{margin:3px 0 0;font-size:12.5px;color:var(--muted);overflow-wrap:anywhere}
.ed-task-actions{flex:none;display:flex;flex-direction:column;gap:6px;align-items:stretch}
.ed-task-actions form{margin:0}
.ed-kind{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11.5px;font-weight:700;border:1px solid var(--line);color:var(--secondary)}
.ed-kind-objection{border-color:var(--red-line);color:var(--red-strong)}
.ed-kind-tag_source,.ed-kind-few_sources{border-color:var(--orange-line);color:var(--orange-strong)}
.ed-kind-tag_edit,.ed-kind-stub,.ed-kind-missing_section{border-color:var(--amber-line);color:var(--amber)}
.ed-kind-red_link{border-color:var(--accent-line);color:var(--accent-strong)}
.ed-kind-stale,.ed-kind-tag_stale{border-color:var(--blue-line);color:var(--blue-strong)}
.ed-request-form{display:grid;gap:8px;margin:0 0 12px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.ed-request-form .cm-btn{justify-self:start}
.ed-requests{list-style:none;margin:0;padding:0}
.ed-request{display:flex;flex-wrap:wrap;gap:8px 12px;padding:10px 0;border-top:1px solid var(--line)}
.ed-request:first-child{border-top:0}
.ed-request:target{background:var(--accent-soft,#24224a);border-radius:8px}
.ed-request-main{flex:1 1 200px;min-width:0}
.ed-request-main strong{display:block;overflow-wrap:anywhere}
.ed-request-main small{color:var(--muted);font-size:12px}
.ed-request-main p{margin:4px 0 0;font-size:13px;color:var(--secondary);overflow-wrap:anywhere}
.ed-request-actions{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px}
.ed-request-actions form{margin:0}
.ed-decide form{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.ed-decide input{min-width:0;flex:1 1 140px}
.ed-done{margin:10px 0 0;font-size:12.5px;color:var(--muted)}
.ed-empty-line{padding:8px 0}
.ed-top{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.ed-top li{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.ed-top a{display:inline-flex;align-items:center;gap:8px;min-width:0;color:var(--text);text-decoration:none}
.ed-top a span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-top small{flex:none;color:var(--muted)}

/* game hub teaser */
.ed-teaser-body{display:grid;gap:12px}
.ed-teaser-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ed-teaser-stats a{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:9px;color:var(--text);text-decoration:none}
.ed-teaser-stats strong{font-size:20px;font-variant-numeric:tabular-nums}
.ed-teaser-stats span{font-size:12px;color:var(--muted)}
.ed-teaser-actions{display:flex;flex-wrap:wrap;gap:8px}

/* ---------- templates ---------- */
.ed-tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.ed-tpl-card{display:flex;flex-direction:column;gap:4px;min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;color:var(--text);text-decoration:none}
.ed-tpl-card:hover{border-color:var(--accent)}
.ed-tpl-card.is-pending{border-style:dashed}
.ed-tpl-card span{font-size:13px;color:var(--secondary);overflow-wrap:anywhere}
.ed-tpl-card small{font-size:12px;color:var(--muted)}
.ed-tpl-form textarea{font-family:var(--mono,monospace);font-size:13px}
.ed-game-switch{min-width:0}
.ed-tpl-preview{display:grid;grid-template-columns:minmax(0,1fr);gap:0 var(--sp-5)}
@media (min-width:980px){.ed-tpl-preview{grid-template-columns:minmax(260px,340px) minmax(0,1fr)}}
.ed-tpl-preview .wiki-infobox{float:none;width:auto;margin:0}
.ed-field-table{width:100%;border-collapse:collapse;font-size:13.5px}
.ed-field-table th,.ed-field-table td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:anywhere}
.ed-field-table th{color:var(--muted);font-weight:650;font-size:12.5px}
.ed-sections{margin:6px 0 0;padding-left:20px;display:grid;gap:4px}
.ed-decide-form{display:flex;flex-wrap:wrap;gap:8px}
.ed-decide-form input{flex:1 1 220px;min-width:0}

/* template picker on /contribute */
.ed-tpl-picker{min-width:0;margin:0;padding:0;border:0}
.ed-tpl-picker legend{padding:0;margin-bottom:6px;font-size:13px;font-weight:650;color:var(--secondary)}
.ed-tpl-picker legend small{font-weight:500;color:var(--muted)}
.ed-tpl-options{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:thin}
.ed-tpl-option{flex:none;display:flex;flex-direction:column;gap:2px;min-width:120px;max-width:200px;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:9px;color:var(--text);text-decoration:none}
.ed-tpl-option small{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-tpl-option.is-on{border-color:var(--accent);background:var(--accent-soft,#24224a)}
.ed-tpl-note{margin:6px 0 0;font-size:12.5px}

/* infobox panel */
.ed-ib-panel{min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2,#1b1d24)}
.ed-ib-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:10px}
.ed-ib-head strong{font-size:14px}
.ed-ib-head .cm-muted{font-size:12px}
.ed-ib-head select{min-height:36px}
.ed-ib-link{margin-left:auto;font-size:12.5px}
.ed-ib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 12px}
.ed-ib-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.ed-ib-wide{grid-column:1/-1}
.ed-ib-label{font-size:12.5px;font-weight:650;color:var(--secondary)}
.ed-req{color:var(--red)}
.ed-ib-control{display:flex;align-items:center;gap:6px;min-width:0}
.ed-ib-control input,.ed-ib-control select{flex:1 1 auto;min-width:0;min-height:38px}
.ed-ib-unit{flex:none;font-size:12.5px;color:var(--muted)}
.ed-ib-control .cm-btn{flex:none}

/* ---------- editor conveniences ---------- */
.ed-split-btn{border:1px solid var(--line)!important}
@media (max-width:859px){.ed-split-btn{display:none!important}}
@media (min-width:860px){
  .cm-editor.ed-split .cm-editor-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .cm-editor.ed-split textarea[data-cm-input]{display:block!important;height:70vh;resize:vertical}
  .cm-editor.ed-split .cm-preview{display:block;border-top:0;border-left:1px dashed var(--line-strong);height:70vh;max-height:none;overflow:auto}
}
.ed-saved{font-size:12px;color:var(--green)}
.ed-suggest{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 2px}
.ed-suggest:empty{display:none}
.ed-suggest-label{font-size:12px;color:var(--muted)}
.ed-chip{border-color:var(--accent-line);color:var(--accent-strong)}
.ed-diff-panel{margin:12px 0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);max-height:60vh;overflow:auto}
.ed-diff-stat{margin:0 0 8px;font-size:13px;color:var(--secondary)}

@media (max-width:760px){
  .ed-card{padding:14px 14px}
  .ed-task{flex-direction:column;gap:8px}
  .ed-task-actions{flex-direction:row;flex-wrap:wrap}
  .ed-task-actions .cm-btn,.ed-request-actions .cm-btn,.ed-teaser-actions .cm-btn,.ed-tag-forms .cm-btn{min-height:40px}
  .ed-teaser-stats strong{font-size:18px}
}

/* lounge rows have no kind badge: one column, meta under the title */
.ed-card .cm-mini-row{grid-template-columns:minmax(0,1fr)}
.ed-card .cm-mini-row small{grid-column:1}
.ed-card .cm-mini-title{min-width:0;overflow-wrap:anywhere}
/* inputs outside .cm-form use the same field style */
.ed-request-form input,.ed-request-form select,.ed-decide input,.ed-decide-form input,.ed-ib-control input,.ed-ib-control select,.ed-ib-head select{width:100%;min-width:0;background:var(--surface);border:1px solid var(--line-strong);border-radius:7px;color:var(--text);padding:9px 11px;font:inherit;font-size:14px;line-height:1.45;outline:0}
.ed-request-form input:focus,.ed-request-form select:focus,.ed-decide input:focus,.ed-decide-form input:focus,.ed-ib-control input:focus,.ed-ib-control select:focus,.ed-ib-head select:focus{border-color:var(--accent)}
.ed-ib-head select{width:auto}
.ed-game-switch select{min-width:200px;background:var(--surface);border:1px solid var(--line-strong);border-radius:7px;color:var(--text);padding:9px 11px;font:inherit;font-size:14px}
