.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-panel{margin-bottom:20px;padding:20px}
.tool-panel h2{font-size:1.1rem;margin:0 0 14px}
.options-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px;align-items:start;margin-bottom:12px}
.options-grid .field select,.options-grid .field input{min-height:44px}
.field.wide{grid-column:1/-1}
.code-input{font:1rem/1.5 ui-monospace,SFMono-Regular,Consolas,"Malgun Gothic",monospace;unicode-bidi:isolate}
.counter{font-size:.78rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.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}
.check:has(input:checked){border-color:#a2b9ed;background:#f0f5ff}
.check:has(input:focus-visible){outline:3px solid #e9aa23;outline-offset:2px}
.check input{margin:2px 0 0;flex-shrink:0}
.check strong{display:block;font-size:.85rem;overflow-wrap:anywhere}
.check small{display:block;margin-top:4px;font-size:.75rem;line-height:1.5;overflow-wrap:anywhere}
.check span{min-width:0;overflow-wrap:anywhere}
.privacy-note{color:var(--muted);font-size:.76rem;line-height:1.5;margin:0 0 4px;overflow-wrap:anywhere}
.status{margin:10px 0 0;min-height:1.5em;overflow-wrap:anywhere}
.status.error{color:var(--danger)}
.error-box{margin:12px 0 0;border:1px solid #efd3d7;background:#fff7f8;border-radius:8px;padding:14px 16px;font-size:.88rem}
.error-box p{margin:0 0 6px;overflow-wrap:anywhere}
.error-box .error-title{color:var(--danger)}
.result-list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.result-list:empty{display:none}
.result-row{display:grid;grid-template-columns:minmax(64px,auto) minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:#f9fbff}
.result-label{font-size:.85rem;font-weight:650}
.result-value{display:block;padding:6px 0;font:.95rem/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere;unicode-bidi:isolate;text-align:left;max-height:12em;overflow:auto}
.result-row .button{font-size:.85rem}
.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
.io-block{min-width:0;border:1px solid var(--border);border-radius:8px;overflow:hidden}
.panel-top{padding:12px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.panel-top label{font-size:.95rem;font-weight:650}
.io-block textarea{display:block;width:100%;min-height:220px;resize:vertical;border:0;border-top:1px solid var(--border);border-radius:0;padding:14px 16px;color:var(--text);font:.92rem/1.7 ui-monospace,SFMono-Regular,Consolas,"Malgun Gothic",monospace;overflow-wrap:anywhere}
.io-block textarea[readonly]{background:#f9fbff}
.io-block textarea:focus-visible{outline:3px solid #e9aa23;outline-offset:-3px}
.action-row{display:flex;gap:10px;flex-wrap:wrap;padding:12px 16px 16px}
.action-row .button{font-size:.85rem;min-height:44px}
.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}
.guide summary:focus-visible{outline:3px solid #e9aa23;outline-offset:2px;border-radius:4px}
.guide code{background:var(--surface);border:1px solid var(--border);padding:2px 6px;border-radius:5px;white-space:pre-wrap;overflow-wrap:anywhere}
.example{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
button,input,select,summary,a{touch-action:manipulation}
@media(max-width:760px){
  .editor-layout{grid-template-columns:1fr;gap:16px}
  .tool-panel{padding:16px}
  .io-block textarea{min-height:160px}
}
@media(max-width:480px){
  .options-grid{grid-template-columns:1fr}
  .result-row{grid-template-columns:minmax(0,1fr) auto}
  .result-value{grid-column:1/-1;grid-row:2}
  .action-row .button{flex:1 1 100%;width:100%;text-align:center}
}
