/* 운영 화면 반응형 보정(2026-10-24) — 모바일 우선, min-width 만. 화면별 CSS 가 본문에서 늦게 불려도 이기도록 html body.ops-workspace 접두어 */
/* 글씨 · 터치 */
html body.ops-workspace .ops-required{font-size:12px}
html body.ops-workspace #ops-main .ops-field-name,html body.ops-workspace[data-page] #ops-main .ops-field-name{min-height:44px}
html body.ops-workspace #ops-main label[for]{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
html body.ops-workspace .settings-jump a{display:inline-flex;align-items:center;min-height:44px;font-size:13px}
/* 체크 · 라디오: 누르는 칸 44px, 보이는 표시는 20px(사장님 화면 cd-confirm 과 같은 방식) */
html body.ops-workspace #ops-main :is(input[type=checkbox],input[type=radio]){appearance:none;-webkit-appearance:none;width:44px;height:44px;min-width:44px;min-height:44px;flex:0 0 44px;margin:-12px -6px -12px -12px;position:relative;background:transparent;border:0;cursor:pointer;vertical-align:middle}
html body.ops-workspace #ops-main :is(input[type=checkbox],input[type=radio])::before{content:"";position:absolute;left:12px;top:12px;width:20px;height:20px;border:2px solid #98A2B3;border-radius:5px;background:#fff;box-sizing:border-box}
html body.ops-workspace #ops-main input[type=radio]::before{border-radius:50%}
html body.ops-workspace #ops-main input[type=checkbox]:checked::before{background:#4338ca url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/16px no-repeat;border-color:#4338ca}
html body.ops-workspace #ops-main input[type=radio]:checked::before{border-color:#4338ca;box-shadow:inset 0 0 0 4px #fff;background:#4338ca}
html body.ops-workspace #ops-main :is(input[type=checkbox],input[type=radio]):focus-visible{outline:2px solid #4338ca;outline-offset:-6px;border-radius:8px}
html body.ops-workspace #ops-main :is(input[type=checkbox],input[type=radio]):disabled{cursor:not-allowed}
html body.ops-workspace #ops-main :is(input[type=checkbox],input[type=radio]):disabled::before{opacity:.45}
/* 직접 그린 체크(통계 "예시 가게 포함")는 투명 입력이 라벨 전체를 덮는 원래 방식 유지 */
html body.ops-workspace #ops-main :is(label.oa-demo,label.lpchk) input[type=checkbox]{position:absolute;inset:0;width:100%;height:100%;min-width:0;margin:0;opacity:0}
html body.ops-workspace #ops-main :is(label.oa-demo,label.lpchk) input[type=checkbox]::before{display:none}
/* 긴 값이 든 입력 칸은 말줄임으로 표시 */
html body.ops-workspace #ops-main input:not([type=checkbox]):not([type=radio]){text-overflow:ellipsis}
/* 넓은 표: 모바일은 카드(approved-ops.css), 900px 고정은 넓은 화면에서만 */
html body.ops-workspace table.ot.ops-wide-table{min-width:0}
/* 일별 그래프: 모바일은 화면 폭에 맞추고 줄어든 만큼 글자를 키움 */
html body.ops-workspace .oa-chart svg{min-width:0}
html body.ops-workspace .oa-chart svg text{font-size:22px}
@media (min-width:768px){html body.ops-workspace .oa-chart svg text{font-size:12px}}
@media (min-width:1024px){
 html body.ops-workspace #ops-main :is(input[type=checkbox],input[type=radio]){width:18px;height:18px;min-width:18px;min-height:18px;flex:0 0 18px;margin:0}
 html body.ops-workspace #ops-main :is(input[type=checkbox],input[type=radio])::before{left:0;top:0;width:18px;height:18px}
 html body.ops-workspace #ops-main :is(label.oa-demo,label.lpchk) input[type=checkbox]{width:100%;height:100%;min-width:0;min-height:0}
}
/* 숫자 칸 · 여러 줄에 감기는 명령어와 링크(설정 화면) */
html body.ops-workspace table.ot td.n{white-space:normal;overflow-wrap:anywhere}
html body.ops-workspace #ops-main :is(b,p,div) > code{display:inline-block;max-width:100%;overflow-wrap:anywhere}
html body.ops-workspace #ops-main :is(b,p,div) > code + a,html body.ops-workspace #ops-main :is(b,p,div) > code ~ a{display:inline-block}
/* 설정 요약 줄 안의 링크 — 누르는 칸 44px */
html body.ops-workspace[data-page=settings] #ops-main div > b > a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;vertical-align:middle}
/* 열 8개 이상 표의 900px 최소 폭은 사이드바를 빼고도 들어가는 1280px 이상에서만 */
@media (min-width:1280px){html body.ops-workspace table.ot.ops-wide-table{min-width:900px}}
html body.ops-workspace .oa-chart-hint{display:none}
/* 설정 묶음 펼침 화살표 — 글자(⌄) 대신 선으로 그린 화살표, 항목 수와 같은 높이 가운데 */
html body.ops-workspace .settings-group summary i.sg-chev{display:inline-block;width:9px;height:9px;font-size:0;border-right:2px solid #64748b;border-bottom:2px solid #64748b;transform:translateY(-2px) rotate(45deg);transition:transform .15s}
html body.ops-workspace .settings-group[open] summary i.sg-chev{transform:translateY(2px) rotate(-135deg)}
@media (prefers-reduced-motion:reduce){html body.ops-workspace .settings-group summary i.sg-chev{transition:none}}
/* 목록 줄 동작 — 자주 쓰는 버튼 두 개 + ⋯ 더보기(정산 설정 · 삭제) */
html body.ops-workspace .ops-row-acts{display:flex;flex-wrap:nowrap;align-items:center;gap:6px}
html body.ops-workspace table.ot td .ops-row-acts .obtn,html body.ops-workspace .ops-row-acts .obtn{display:inline-block;flex:0 1 auto;min-width:44px;line-height:42px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
html body.ops-workspace .ops-row-acts{min-width:0}
@media (min-width:1024px){html body.ops-workspace table.ot :is(th,td):has(.ops-row-acts),html body.ops-workspace[data-page=merchants] table.ot th:last-child{width:236px}}
html body.ops-workspace .ops-more{position:relative}
html body.ops-workspace .ops-more>summary{list-style:none;min-width:44px;justify-content:center;font-weight:800;letter-spacing:1px}
html body.ops-workspace .ops-more>summary::-webkit-details-marker{display:none}
html body.ops-workspace .ops-more-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;display:flex;flex-direction:column;min-width:140px;padding:6px;border:1px solid #dbe1ea;border-radius:10px;background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.12)}
html body.ops-workspace .ops-more-menu a{display:flex;align-items:center;min-height:44px;padding:0 12px;border-radius:8px;color:#1e293b;font-size:14px;text-decoration:none;white-space:nowrap}
html body.ops-workspace .ops-more-menu a:hover,html body.ops-workspace .ops-more-menu a:focus-visible{background:#eef2ff}
html body.ops-workspace .ops-more-menu a.danger{color:#b42318}
/* 설정 칸(입력 + 저장) — 좁은 화면에서는 줄을 바꾸고 저장 글자도 줄바꿈 */
html body.ops-workspace .setting-control{flex-wrap:wrap}
html body.ops-workspace .setting-control .obtn{max-width:100%;height:auto;white-space:normal;overflow-wrap:anywhere}
html body.ops-workspace .setting-control :is(input,select){flex:1 1 160px}
/* 카드 안 필터 · 처리 폼과 그 아래 표 · 빈 상자 사이 간격 */
html body.ops-workspace #ops-main .ocard > form:not(:last-child){margin-bottom:18px}
html body.ops-workspace .oa-src{display:inline-flex;align-items:center;min-height:44px;overflow-wrap:anywhere}
