/* ─────────────────────────────────────────────────────────────────────────
   마켓 — Market.dc.html 이식.

   ★ 시안 helmet CSS 그대로다. 전역 규칙(html/body/a/스크롤바)만 뺀다 —
     shell.css 가 이미 갖고 있고, 두 번 쓰면 갈라진다.
   ★ 본문 폭 상한·격자·문서 스크롤은 이 파일이 갖는다 — 화면마다 다르다.
   ───────────────────────────────────────────────────────────────────────── */

button,input,textarea{font-family:inherit;font-variant-numeric:tabular-nums}

[data-r=grid]{display:grid;height:100%;grid-template-columns:var(--rail,212px) minmax(0,1fr);grid-template-rows:56px minmax(0,1fr);grid-template-areas:"rail head" "rail main"}

[data-r=grid]{grid-template-columns:var(--rail,212px) minmax(0,1fr) minmax(0,1280px) minmax(0,1fr);grid-template-areas:"head head head head" "rail . main ."}

[data-r=grid]{--hh:56px}

[data-r=main]{grid-area:main;display:flex;flex-direction:column;min-height:0;overflow:hidden}

[data-r=content]{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}

[data-r=cards]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}

[data-r=metrics]{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}

/* ★ 팝업은 뷰포트 가운데 고정 · 안쪽 스크롤(§19.31) — 문서 높이가 아니라 화면 높이 기준 */
[data-r=dialog]{width:100%;max-width:760px;max-height:calc(100vh - 48px);border-radius:12px}

[data-r=curve]{height:200px}

[data-r=dd]{height:60px}

[data-r=postrow]{grid-template-columns:minmax(0,1fr) 220px 90px 60px 60px}

[data-r=tabbar],[data-r=monly]{display:none}

@media (max-width:760px){
[data-r=grid]{display:flex;flex-direction:column;overflow-y:auto;padding-bottom:78px}
[data-r=grid]>*{flex-shrink:0}
[data-r=rail],[data-r=dcol]{display:none}
[data-r=main]{display:contents}
[data-r=head]{order:0;height:64px}
[data-r=tabs]{order:1;position:sticky;top:0;z-index:5}
[data-r=content]{order:2;overflow:visible}
[data-r=cards]{grid-template-columns:minmax(0,1fr)}
[data-r=metrics]{grid-template-columns:repeat(2,minmax(0,1fr))}
[data-r=modal]{padding:0!important;align-items:stretch!important}
[data-r=dialog]{max-width:none;max-height:none;height:100%;border-radius:0!important;border:none!important}
[data-r=curve]{height:140px}
[data-r=dd]{height:44px}
[data-r=postrow]{grid-template-columns:minmax(0,1fr) 54px}
[data-r=filters]{padding:10px 12px!important}
[data-r=searchbox]{flex-basis:100%!important;order:9}
[data-r=tabbar],[data-r=monly]{display:flex}
[data-r=pthumb]{width:56px!important;height:56px!important}
[data-r=pcard]{padding:10px!important;gap:10px!important}
[data-r=plist]{padding:10px 10px 20px!important}
[data-r=hidem]{display:none}
}

@media (max-width:760px){[data-r=tchip]{display:none!important}[data-r=dwal] [style*="font-size: 22px"]{font-size:17px!important}}

@media (max-width:1000px){[data-r=tchip]{display:none!important}}

@media (max-width:760px){[data-r=htog]{display:none!important}}

[data-shell=page]{height:auto!important;min-height:100vh;overflow:visible!important}

[data-r=grid]{height:auto!important;min-height:100vh}

[data-r=main]{overflow:visible!important;min-height:0!important}

[data-r=main] [style*="overflow-y: auto"],[data-r=main] [style*="overflow: auto"]{overflow-y:hidden!important;max-height:none!important}

@media (min-width:761px){
[data-r=main]{display:flex;flex-direction:column}
[data-r=main]{padding:16px;gap:12px}
[data-r=main] [style*="background: rgb(15, 17, 19)"],[data-r=main] [style*="background: rgb(12, 13, 15)"]{background:transparent!important}
[data-r=main] [style*="background: rgb(18, 20, 23)"]{background:#181b20!important;border-color:transparent!important}
[data-r=main] [data-r=tabs],[data-r=main] [data-r=filters]{background:#181b20!important;border:none!important;border-radius:12px;overflow:hidden}
[data-r=main] [data-r=content]{display:flex;flex-direction:column;gap:12px}
}

@keyframes conn-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}

[data-r=rail] [data-r=mi]{transition:background .12s}

[data-r=rail] [data-r=mi]:hover{background:#23282e!important}

[data-r=rail] [data-r=mi]:hover a,[data-r=rail] a[data-r=mi]:hover{color:#e6e8ea!important}

@media (max-width:1100px){[data-r=conn]{display:none!important}}

@media (max-width:760px){[data-r=dwal]{display:none!important}}

/* 시안 §19.31 · §19.32 — 모바일 방식 칩은 한 줄 가로 스크롤, 등록 슬롯은 1열 */
@media (max-width:760px){[data-r=mfilt]{flex-wrap:nowrap!important;overflow-x:auto;max-width:100%;scrollbar-width:none}[data-r=mfilt] button{flex:none}}
@media (max-width:760px){[data-r=slotgrid]{grid-template-columns:1fr!important}}

/* ★ 모바일 잔고 — 데스크톱 칩(dwal)이 760 이하에서 숨으므로 축약 칩을 대신 띄운다.
   같이 브랜드 글자를 감춰 즐은 헤더에 자리를 만든다 — 로고 마크는 남는다.
   ★ 게임은 이 규칙이 없다. 헤더 아래 펼친 지갑 카드(mwal)가 같은 것을 보여준다
     (2026-09-26 디자인: 「모바일은 모든 화면에서 잔고가 보이고, 게임만 펼친 형태」). */
@media (max-width:760px){[data-r=mbal]{display:flex!important}[data-r=hbname]{display:none!important}}

/* ★ 머리는 본문을 내려도 따라온다(시안). 이 한 줄이 없으면 모바일에서
   잔고 칩과 메뉴가 스크롤과 같이 사라진다 — 이식 때 생성기가 전역 규칙로 오해해
   버렸던 것을 되살렸다. 게임은 바깥이 100vh 라 필요 없다. */
[data-r=head]{position:sticky;top:0;z-index:40}

/* ★ 더보기 시트는 모바일 것이다. 데스크톱은 왼쪽 메뉴가 있어서 필요 없다. */
@media (min-width:761px){[data-r=moresheet]{display:none!important}}

/* ── 필터 줄 §19.35 ─────────────────────────────────────────────────────
   시안 helmet 그대로 + 두 군데 우회(시안 버그):
   ① 데스크톱 필터 박스의 overflow:hidden 이 열린 목록을 잘라서 visible 로 푼다(모서리는 자식이 안 닿아 그대로다)
   ② 모바일 가격 칸 지정 — 시안의 [data-r=dd]:nth-of-type(2) 는 방식 칩 묶음을 가리킨다. data-dd 로 짚는다 */
[data-r=mfilt]::-webkit-scrollbar{display:none}
[data-r=ddlist] [role=option]:hover{background:#23282e!important}
@media (min-width:761px){[data-r=main] [data-r=filters]{overflow:visible!important}}
/* 761~1060: 검색칸 최소 120 · 드롭다운 라벨(정렬/가격) 숨김 · 폭 auto(최대 150) · 등록은 짧은 글자 */
@media (min-width:761px) and (max-width:1060px){
[data-r=searchbox]{min-width:120px!important}
[data-id=dd-Sort],[data-id=dd-Price]{width:auto!important;max-width:150px}
[data-id=dd-Sort]>span:first-child,[data-id=dd-Price]>span:first-child{display:none}
[data-r=reglong]{display:none}[data-r=regshort]{display:inline!important}
}
/* 필터 줄의 칸은 전부 높이 34 — 높이가 들쭉날쭉하지 않게 */
[data-r=filters]>*{box-sizing:border-box;height:34px!important;margin-top:0!important;margin-bottom:0!important}
[data-r=filters] [data-id=dd-Sort],[data-r=filters] [data-id=dd-Price]{height:34px!important;line-height:normal}
@media (max-width:760px){[data-r=filters]{height:auto!important}}
@media (max-width:760px){
[data-r=mwrap]{min-width:0!important}
[data-r=filters]{display:grid!important;grid-template-columns:auto auto 1fr auto;grid-template-areas:"sort price . reg" "meth meth meth meth" "srch srch srch srch";row-gap:8px!important}
[data-r=filters]>[data-dd=sort]{grid-area:sort}[data-r=filters]>[data-dd=price]{grid-area:price}
[data-r=filters] [data-id=dd-Sort],[data-r=filters] [data-id=dd-Price]{width:auto!important;min-width:128px}
[data-r=mwrap]{grid-area:meth}[data-r=searchbox]{grid-area:srch;max-width:none!important;min-width:0!important}
[data-r=regbtn]{grid-area:reg;margin-left:0!important}[data-r=reglong]{display:none}[data-r=regshort]{display:inline!important}
}

/* ── 시안 §19.36 ~ §19.38 — 자동 카드 · 상세 요약 비율 · 카드 지표 한 줄 · 카드 차트 높이 ── */
@media (max-width:760px){[data-r=autocards]{grid-template-columns:1fr!important}}
[data-r=dsum]{grid-template-columns:minmax(0,1fr) minmax(0,.8fr) minmax(0,1.2fr) minmax(0,1.7fr) minmax(0,1.1fr) minmax(0,.6fr)}
[data-r=cmet] [style*="font-size: 16px"]{font-size:15px!important}
@media (max-width:900px){[data-r=dsum]{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:420px){[data-r=cmet] [style*="font-size: 16px"]{font-size:14px!important}[data-r=cmet]{gap:8px!important}}
[data-r=cmet]>*{min-width:0}
[data-r=cmet] [style*="JetBrains Mono"]{white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;max-width:100%}
[data-r=cards]:not(.x) [data-r=cmet] [style*="font-size: 16px"],[data-r=cmet] [style*="font-size: 15px"]{font-size:14px!important}
@media (min-width:1300px){[data-r=cmet] [style*="font-size: 15px"],[data-r=cmet] [style*="font-size: 16px"]{font-size:15px!important}}
@media (max-width:760px){[data-r=cspark]{height:60px!important}[data-r=cdd]{height:26px!important}[data-r=cempty]{height:86px!important}}

/* 팝업 오류 깜빡임(시안 §19.39) — 0.18초 켜짐/꺼짐 × 2 */
@keyframes err-blink{0%,50%,100%{opacity:1}25%,75%{opacity:.25}}
.err-blink{animation:err-blink .72s linear 1}

/* 게시판 탭에서 설정 탭 요소를 숨긴다(board.js) — 인라인 display 를 건드리지 않으려고 속성으로.
   ★ 파일 맨 끝 · 속성 두 번 — 모바일 필터 줄의 display:grid!important 보다 이겨야 한다 */
[data-hide][data-hide]{display:none!important}

/* §19.60 휴대폰 카드 — 이름 한 줄 전체(겹침 금지) · 배지는 이름 아래 · 가격은 판매자 줄 아래 오른쪽 · 통계 4칸 → 2×2(생존 · 누적 손익 안 잘리게) */
@media (max-width:760px){[data-r=chead]{flex-wrap:wrap!important;row-gap:6px!important}[data-r=chead]>div:first-child{flex:1 1 100%}[data-r=chead]>span:last-child{margin-left:auto}[data-r=cname]{flex-wrap:wrap!important;row-gap:4px!important}[data-r=cnm]{flex:1 1 100%!important}[data-r=cmet]{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
