.page-heading{margin-bottom:20px}
.page-heading h1{font-size:clamp(1.8rem,3vw,2.5rem);margin:0 0 8px;word-break:keep-all;text-wrap:balance}
.page-heading>p{font-size:.9rem}
.tool-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
.tool-layout .panel h2,.save-panel h2{font-size:1.1rem;margin:0 0 14px}
.stack{display:flex;flex-direction:column;gap:14px}
.field input[type=number],.field input[type=text]{min-height:44px}
.range-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.check-group{border:0;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.check-group legend{font-size:.9rem;font-weight:600;padding:0;margin-bottom:8px}
.check{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border);border-radius:8px;padding:12px;background:var(--bg);cursor:pointer;min-height:44px;min-width:0;font-size:.88rem}
.check:has(input:checked){border-color:#a2b9ed;background:#f0f5ff}
.check input{margin:2px 0 0;flex-shrink:0}
.check strong{display:block;font-size:.88rem;word-break:keep-all;overflow-wrap:anywhere}
.check small{display:block;margin-top:4px;font-size:.75rem;line-height:1.5;overflow-wrap:anywhere}
/* 모든 체크박스 텍스트 줄바꿈 보장 */
.check span{overflow-wrap:anywhere;min-width:0}
/* 키보드 포커스 표시 명확화 */
.check:has(input:focus-visible){outline:3px solid #e9aa23;outline-offset:2px}
.field input[type=number]:focus-visible,.field input[type=text]:focus-visible,.action-row button:focus-visible,.action-row .button:focus-visible{outline:3px solid #e9aa23;outline-offset:2px}
.guide summary:focus-visible{outline:3px solid #e9aa23;outline-offset:2px;border-radius:4px}
.small{font-size:.78rem;margin:0;overflow-wrap:anywhere}
.action-row{display:flex;gap:10px;flex-wrap:wrap}
.action-row button,.action-row .button{min-height:44px}
.result-block{margin-top:18px;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--border);padding-top:16px}
.result-block>label{font-size:.9rem;font-weight:600}
textarea.result{width:100%;resize:vertical;font:.95rem/1.6 ui-monospace,SFMono-Regular,Consolas,"Malgun Gothic",monospace;overflow-wrap:anywhere;word-break:break-all;background:#f9fbff;min-height:84px}
textarea.result:focus-visible{outline:3px solid #e9aa23;outline-offset:2px}
/* 엔트로피 및 안내 정보 긴 문자열 줄바꿈 */
.metric{margin:0;font-size:.85rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.metric:empty,.status:empty{display:none}
.status{margin:0;overflow-wrap:anywhere}
.status.error{color:var(--danger)}
.error-box{border:1px solid #efd3d7;background:#fff7f8;border-radius:8px;padding:12px 14px;font-size:.88rem}
.error-box p{margin:0 0 4px;overflow-wrap:anywhere}
.error-box .error-title{color:var(--danger)}
input[aria-invalid=true]{border-color:var(--danger)!important;outline:2px solid var(--danger);outline-offset:1px}
.privacy-note{color:var(--muted);font-size:.76rem;line-height:1.5;margin:14px 0 0;overflow-wrap:anywhere}
.save-panel{margin-top:20px}
.save-panel .muted{font-size:.88rem}
.guide{margin:32px 0 40px;padding-top:22px;border-top:1px solid var(--border);color:var(--muted);font-size:.86rem;line-height:1.8}
.guide h2{color:var(--text);font-size:1.1rem}
.guide h3{color:var(--text);margin:20px 0 6px}
.guide summary{cursor:pointer;color:var(--text);font-weight:650;padding:10px 0;min-height:44px}
button,input,select,summary,a{touch-action:manipulation}
@media(max-width:760px){
  .tool-layout{grid-template-columns:1fr}
  .check-group{grid-template-columns:1fr}
}
@media(max-width:480px){
  .range-grid{grid-template-columns:1fr}
  /* 모바일 360px 가로 넘침 방지 및 터치 타겟 확보 */
  .action-row button,.action-row .button{flex:1 1 100%;width:100%}
}
