/* 매장 CRM 수집 브릿지 (store.dffdf.click) — 공문서 톤, 모바일 퍼스트 */
.st-page { max-width: 880px; margin: 0 auto; padding: 20px 16px 60px; font-family: -apple-system, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif; color: #1a1a1a; line-height: 1.55; }
.st-top { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; border-bottom: 2px solid #1a1a1a; padding-bottom: 10px; margin-bottom: 22px; flex-wrap: wrap; }
.st-top a { color: #1a1a1a; text-decoration: none; }
.st-brand { font-weight: 800; letter-spacing: .02em; }
.st-brand small { font-weight: 500; color: #666; margin-left: 8px; }
.st-links a { margin-left: 14px; font-size: 14px; color: #444; }
.st-eyebrow { color: #C2401F; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 6px; }
.st-h1 { font-size: 26px; line-height: 1.25; margin: 0 0 10px; font-family: "Noto Serif KR", serif; }
.st-lead { color: #444; margin: 0 0 24px; }
.st-h2 { font-size: 17px; margin: 30px 0 10px; padding-left: 10px; border-left: 4px solid #C2401F; }
.st-dl { display: grid; gap: 12px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .st-dl { grid-template-columns: repeat(3, 1fr); } }
.st-card { border: 1px solid #ddd; padding: 16px; background: #fff; display: flex; flex-direction: column; gap: 8px; }
.st-card b { font-size: 16px; }
.st-card p { margin: 0; color: #555; font-size: 14px; flex: 1; }
/* ants.dffdf.click — 카드 제목(노트북 이름)을 누르면 그 자리에서 고친다 */
.st-rename summary { list-style: none; cursor: pointer; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.st-rename summary::-webkit-details-marker { display: none; }
.st-rename summary:hover b { text-decoration: underline; }
.st-rename-hint { font-size: 12px; color: #C2401F; }
.st-rename[open] .st-rename-hint { visibility: hidden; }
.st-rename .st-form { grid-template-columns: 1fr auto; align-items: center; margin-top: 8px; }
.st-rename .st-form input[type=text] { min-width: 0; }
/* ants.dffdf.click — 카드의 윈앱 칸(연결 상태·양쪽 버튼 기록) */
.st-winapp { border-top: 1px dashed #ddd; padding-top: 8px; display: grid; gap: 6px; font-size: 13px; }
.st-winapp-state { display: grid; gap: 4px; }
.st-winapp-in { font-weight: 700; color: #1565c0; }
.st-winapp-in.fresh { animation: st-winapp-flash 1.2s ease-out 2; }
@keyframes st-winapp-flash { 0% { background: #fff3c4; } 100% { background: transparent; } }
.st-winapp form { margin: 0; }
.st-winapp-actions { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.st-winapp-install { font-size: 13px; border-top: 1px dashed #ddd; padding-top: 8px; display: grid; gap: 2px; }
.st-winapp-install a { color: #1565c0; font-weight: 600; }
.st-btn { display: inline-block; text-align: center; padding: 10px 14px; background: #1a1a1a; color: #fff !important; text-decoration: none; font-weight: 600; border: 1px solid #1a1a1a; cursor: pointer; font-size: 14px; }
.st-btn-ghost { background: #fff; color: #1a1a1a !important; }
.st-btn-danger { background: #C2401F; border-color: #C2401F; }
.st-steps { counter-reset: s; padding: 0; margin: 0; list-style: none; }
.st-steps li { position: relative; padding: 8px 0 8px 36px; border-bottom: 1px dashed #ddd; }
.st-steps li::before { counter-increment: s; content: counter(s); position: absolute; left: 0; top: 8px; width: 24px; height: 24px; border: 1.5px solid #1a1a1a; text-align: center; font-size: 13px; line-height: 22px; font-weight: 700; }
.st-steps code, .st-kv code, .st-table code { background: #f4f1ea; padding: 1px 5px; font-size: 13px; }
.st-note { background: #fbf7ee; border-left: 4px solid #C2401F; padding: 10px 14px; margin: 14px 0; font-size: 14px; }
.st-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.st-table th, .st-table td { border-bottom: 1px solid #e3e3e3; padding: 8px 6px; text-align: left; vertical-align: top; }
.st-table th { border-bottom: 2px solid #1a1a1a; font-size: 13px; }
.st-wrap { overflow-x: auto; }
.st-badge { display: inline-block; padding: 1px 8px; font-size: 12px; border: 1px solid #999; border-radius: 10px; color: #555; }
.st-badge.online, .st-badge.done { border-color: #2e7d32; color: #2e7d32; }
.st-badge.offline { border-color: #999; }
.st-badge.failed, .st-badge.halted { border-color: #C2401F; color: #C2401F; }
.st-badge.running, .st-badge.sent { border-color: #1565c0; color: #1565c0; }
.st-form { display: grid; gap: 10px; max-width: 560px; }
.st-form label { display: grid; gap: 4px; font-size: 13px; color: #444; }
.st-form input, .st-form select, .st-form textarea { font: inherit; padding: 8px; border: 1px solid #bbb; }
.st-form textarea { min-height: 90px; font-family: ui-monospace, Menlo, monospace; font-size: 13px; }
.st-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.st-token { background: #1a1a1a; color: #fff; padding: 14px; font-family: ui-monospace, Menlo, monospace; word-break: break-all; margin: 12px 0; }
.st-token small { display: block; color: #ccc; font-family: inherit; margin-bottom: 6px; }
.st-kv { display: grid; grid-template-columns: 120px 1fr; gap: 6px 12px; font-size: 14px; }
.st-kv dt { color: #666; } .st-kv dd { margin: 0; }
.st-pre { background: #f7f7f5; border: 1px solid #ddd; padding: 12px; overflow: auto; max-height: 480px; font-size: 12.5px; white-space: pre-wrap; word-break: break-all; }
.st-flash { padding: 10px 14px; margin-bottom: 14px; border: 1px solid #2e7d32; color: #2e7d32; background: #f3faf3; }
.st-flash.alert { border-color: #C2401F; color: #C2401F; background: #fdf3f0; }
.st-muted { color: #777; font-size: 13px; }

/* 노드 작업 버튼 묶음 — 줄바꿈 격자. 목록 셀과 상세 화면에서 공용 */
.st-btn-sm { padding: 3px 8px; font-size: 12px; }
.st-actions { display: flex; flex-direction: column; gap: 6px; }
.st-actions-group { display: flex; align-items: flex-start; gap: 10px; }
.st-actions-label { flex: 0 0 92px; font-size: 12px; color: #6b7280; padding-top: 4px; }
.st-actions-items { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.st-actions code { background: #f4f1ea; padding: 1px 5px; font-size: 13px; }
.st-kv-item { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px; font-size: 13px; color: #333; margin-right: 14px; }
@media (max-width: 560px) { .st-actions-group { flex-direction: column; gap: 2px; } .st-actions-label { flex: none; padding-top: 0; } }
.st-actions form { display: inline; margin: 0; }
.st-actions form.st-actions-group { display: flex; }
.st-input-sm { padding: 3px 6px; font-size: 12px; border: 1px solid #c9ced4; border-radius: 4px; }
.st-settings { padding: 4px 6px; background: #f6f7f9; border-radius: 6px; }

/* 관리 화면 매장 노드 — 매장 하나를 카드 하나로(표는 칸이 많아 매장 이름이 한 글자씩 꺾였다) */
.st-page-wide { max-width: 1240px; }
.st-nodes { display: grid; gap: 14px; }
.st-node { border: 1px solid #ddd; border-left: 4px solid #999; background: #fff; padding: 12px 14px; }
.st-node.online { border-left-color: #2e7d32; }
.st-node-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.st-node-name { font-size: 17px; font-weight: 700; color: #1a1a1a; text-decoration: none; }
.st-node-name:hover { text-decoration: underline; }
.st-node-stats { display: flex; flex-wrap: wrap; gap: 2px 24px; margin: 8px 0 4px; font-size: 13px; }
.st-node-stats div { display: flex; gap: 6px; }
.st-node-stats dt { color: #777; }
.st-node-stats dd { margin: 0; font-weight: 600; }
.st-node-error { margin: 2px 0; color: #C2401F; font-size: 13px; }
.st-node .st-actions { margin-top: 8px; padding-top: 8px; border-top: 1px dashed #e3e3e3; }
/* 넓은 화면에서는 명령 묶음을 두 줄로 나란히 — 접속 정보·매장 설정은 한 줄 전체 */
@media (min-width: 1000px) {
  .st-node .st-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 24px; }
  .st-node .st-actions > .st-remote, .st-node .st-actions > .st-settings { grid-column: 1 / -1; }
}
.st-node { min-width: 0; }

/* 외부 개발자용 API 문서 (/api) — docs/*.md 를 GFM 으로 그린 본문 */
.st-doc-page { max-width: 1160px; }
.st-links form { display: inline; margin-left: 10px; }
.st-doc-toc { border: 1px solid #ddd; background: #fafaf8; padding: 10px 16px; margin-bottom: 24px; font-size: 14px; }
.st-doc-toc ul { list-style: none; margin: 6px 0 0; padding: 0; columns: 2 280px; column-gap: 24px; }
.st-doc-toc li { break-inside: avoid; padding: 1px 0; }
.st-doc-toc li.lv3 { padding-left: 14px; font-size: 13px; }
.st-doc-toc a { color: #1a1a1a; text-decoration: none; }
.st-doc-toc a:hover { text-decoration: underline; }
.st-doc h1 { font-size: 26px; line-height: 1.25; margin: 0 0 12px; font-family: "Noto Serif KR", serif; }
.st-doc h2 { font-size: 20px; margin: 40px 0 12px; padding-left: 10px; border-left: 4px solid #C2401F; }
.st-doc h3 { font-size: 16px; margin: 28px 0 8px; }
.st-doc .anchor { margin-left: 6px; color: #bbb; text-decoration: none; }
.st-doc .anchor::before { content: "#"; }
.st-doc :is(h1, h2, h3):not(:hover) .anchor { visibility: hidden; }
.st-doc table { display: block; overflow-x: auto; border-collapse: collapse; font-size: 14px; margin: 12px 0; }
.st-doc th, .st-doc td { border: 1px solid #e3e3e3; padding: 6px 10px; text-align: left; vertical-align: top; }
.st-doc th { background: #f7f7f5; font-size: 13px; }
.st-doc code { background: #f4f1ea; padding: 1px 5px; font-size: 13px; font-family: ui-monospace, Menlo, monospace; }
.st-doc pre { background: #f7f7f5; border: 1px solid #ddd; padding: 12px 14px; overflow-x: auto; font-size: 13px; line-height: 1.5; }
.st-doc pre code { background: none; padding: 0; }
.st-doc img { max-width: 100%; height: auto; border: 1px solid #e3e3e3; border-radius: 12px; }
.st-doc li { margin: 3px 0; }
