/* 전각 ↔ 반각 변환기 '글자 폭 대조판' — 2026-10-21. 칸 보기는 고정폭 칸(반각 1ch, 넓은 글자 2ch), 돋보기는 전각 정사각형 틀과 반각 절반 틀. */
.fhw-work{container:fhww/inline-size;overflow:hidden}
.fhw-hl{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 10px;margin:0 0 8px}
.fhw-hint{font-family:var(--sans);font-size:12px;color:var(--muted)}

/* 머리: 방향 · 종류 */
.fhw-head{display:grid;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}
.fhw-ctl > .v2-label{display:block;margin:0 0 6px}
.fhw-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.fhw-modes button{display:grid;gap:2px;justify-items:start;min-height:50px;padding:7px 12px;border:1px solid var(--soft);border-radius:var(--radius);background:var(--paper);color:var(--ink);text-align:left;cursor:pointer;transition:background var(--ease),border-color var(--ease),color var(--ease)}
.fhw-modes button:hover{border-color:var(--line)}
.fhw-modes b{font-family:var(--sans);font-size:14px;font-weight:750;line-height:1.25}
.fhw-modes small{font-family:var(--sans);font-size:11.5px;font-weight:500;color:var(--muted);line-height:1.3}
.fhw-modes button[aria-pressed="true"]{background:var(--fill);border-color:var(--fill);color:var(--on-fill)}
.fhw-modes button[aria-pressed="true"] small{color:var(--on-fill);opacity:.82}
.fhw-kinds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.fhw-kinds button{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:6px;height:38px;padding:0 8px 0 5px;border:1px dashed var(--line);border-radius:var(--radius);background:transparent;color:var(--muted);font-family:var(--sans);font-size:12.5px;font-weight:650;cursor:pointer;text-align:left;transition:background var(--ease),border-color var(--ease),color var(--ease)}
.fhw-kinds button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fhw-kinds i{display:grid;place-items:center;width:24px;height:24px;border:1px dashed var(--line);border-radius:var(--radius);font-style:normal;font-family:var(--mono);font-size:14px;font-weight:700;line-height:1}
.fhw-kinds b{font-family:var(--sans);font-size:12px;font-weight:800;font-variant-numeric:tabular-nums lining-nums;color:var(--ink)}
.fhw-kinds button[aria-pressed="true"]{border-style:solid;border-color:var(--ink);background:var(--paper);color:var(--ink)}
.fhw-kinds button[aria-pressed="true"] i{border:0;background:var(--fill);color:var(--on-fill)}
.fhw-kinds button[aria-pressed="false"] b{color:var(--muted)}
.fhw-kinds button.is-zero b{color:var(--muted);font-weight:600;opacity:.7}
.fhw-modes button:focus-visible,.fhw-kinds button:focus-visible,.fhw-pair:focus-visible,.fhw-view:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* 두 칸: 원문 | 결과 칸 보기 */
.fhw-panes{display:grid;grid-template-columns:minmax(0,1fr)}
.fhw-pane{display:flex;flex-direction:column;min-width:0;padding:12px 16px 12px}
.fhw-src{border-bottom:1px solid var(--soft)}
.fhw-ph{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 6px}
.fhw-meta{font-family:var(--sans);font-size:12px;font-weight:650;color:var(--muted);font-variant-numeric:tabular-nums}
.fhw-ta{flex:1 1 auto;display:block;width:100%;min-height:96px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.7;resize:vertical;outline:0}
.fhw-ta:focus{border-color:var(--ink);box-shadow:0 0 0 2px var(--accent-wash)}
.fhw-ta::placeholder{color:var(--muted);opacity:.8}
/* 칸 보기: 줄 높이 30px × 3~12줄(걸친 줄 없게 높이 = 줄 수 × 30 + 위아래 8 + 테두리) */
.fhw-view{flex:1 1 auto;position:relative;min-height:108px;max-height:378px;overflow:auto;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);
  background-color:var(--paper);background-image:repeating-linear-gradient(to bottom,transparent 0 29px,color-mix(in srgb,var(--soft) 80%,transparent) 29px 30px);background-position:0 8px;background-attachment:local;
  font-family:var(--mono);font-size:15px;line-height:30px;color:var(--ink);overflow-wrap:anywhere;word-break:break-all;scrollbar-width:thin}
.fhw-view .c{position:relative;display:inline-block;width:1ch;height:30px;vertical-align:top;text-align:center;white-space:pre;box-shadow:inset -1px 0 0 color-mix(in srgb,var(--soft) 55%,transparent);cursor:pointer}
.fhw-view .c.w{width:2ch}
.fhw-view .c.x{background:var(--accent-wash);color:var(--ink);font-weight:700;box-shadow:inset 0 -2px 0 var(--accent)}
.fhw-view .c.s{background-image:linear-gradient(var(--paper),var(--paper));outline:1px dashed var(--muted);outline-offset:-5px}
.fhw-view .c.x.s{background:var(--accent-wash)}
.fhw-view .c.sp.x::after{content:"·";position:absolute;inset:0;color:var(--accent);font-weight:800}
.fhw-view .c.tb::after{content:"⇥";color:var(--muted);opacity:.6}
.fhw-view .c.z{background:radial-gradient(circle,var(--accent) 1px,transparent 1.4px) left bottom 2px/4px 4px repeat-x}
.fhw-view .c.h{outline:2px solid var(--accent);outline-offset:-2px;z-index:1}
.fhw-view .c.is-sel{outline:2px solid var(--ink);outline-offset:-2px;z-index:1}
.fhw-view .c s{position:absolute;inset:0;text-decoration:none;color:var(--muted);font-weight:400;user-select:none;pointer-events:none}
.fhw-view.is-anim .c.a{animation:fhw-w .38s cubic-bezier(.2,.7,.2,1) both,fhw-in .38s ease both}
.fhw-view.is-anim .c.a s{animation:fhw-out .38s ease both}
@keyframes fhw-w{from{width:calc(var(--w0,1) * 1ch)}}
@keyframes fhw-in{0%,35%{color:transparent}}
@keyframes fhw-out{to{opacity:0;transform:scaleX(.5)}}
.fhw-rest{white-space:pre-wrap;color:var(--ink)}
.fhw-empty{font-family:var(--sans);font-size:13.5px;color:var(--muted)}
.fhw-foot{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:7px 0 0;font-family:var(--sans);font-size:12px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
.fhw-lg{display:inline-flex;align-items:center;gap:5px;margin-left:auto;font-weight:500}
.fhw-lg i{display:inline-block;width:12px;height:12px;margin-left:6px;border-radius:2px}
.fhw-lg i:first-child{margin-left:0}
.fhw-lg i.x{background:var(--accent-wash);box-shadow:inset 0 -2px 0 var(--accent)}
.fhw-lg i.s{outline:1px dashed var(--muted);outline-offset:-2px}
.fhw-lg i.z{background:radial-gradient(circle,var(--accent) 1px,transparent 1.4px) left bottom/4px 4px repeat-x}
.fhw-more:empty,.fhw-off:empty{display:none}
.fhw-more{margin:6px 0 0;font-family:var(--sans);font-size:12px;color:var(--muted)}
.fhw-off{margin:0;padding:8px 16px;border-top:1px solid var(--soft);background:var(--accent-wash);font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--ink)}

/* 칸 아래 줄: 원문 = 예시·지우기, 결과 = 상태·복사 */
.fhw-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:10px}
.fhw-ex{display:flex;flex-wrap:wrap;align-items:center;gap:5px}
.fhw-ex .v2-label{margin-right:2px}
.fhw-ex button{height:30px;padding:0 10px;border:1px dashed var(--line);border-radius:var(--radius);background:var(--paper);font-family:var(--sans);font-size:12.5px;font-weight:650;color:var(--ink);cursor:pointer;transition:background var(--ease),border-color var(--ease)}
.fhw-ex button:hover{border-style:solid;background:var(--btn)}
.fhw-ex button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.fhw-clear{margin-left:auto}
.fhw-row .v2-status{flex:1 1 140px;min-width:0}
.fhw-cmd{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}

/* 돋보기 | 목록 */
.fhw-duo{display:grid;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--line)}
.fhw-lens{margin:0;padding:14px 16px;border-bottom:1px solid var(--soft)}
.fhw-frames{--u:44px;display:flex;align-items:center;justify-content:center;gap:14px;min-height:calc(var(--u) * 2 + 2px);margin:4px 0 10px}
.fhw-fr{position:relative;display:grid;place-items:center;width:calc(var(--w,1) * var(--u));height:calc(var(--u) * 2);border:1.5px solid var(--ink);border-radius:var(--radius);background:var(--paper);
  background-image:linear-gradient(to right,transparent calc(50% - .5px),var(--soft) calc(50% - .5px) calc(50% + .5px),transparent calc(50% + .5px)),linear-gradient(transparent calc(50% - .5px),var(--soft) calc(50% - .5px) calc(50% + .5px),transparent calc(50% + .5px));
  transition:width .32s cubic-bezier(.2,.7,.2,1)}
.fhw-fr span{font-family:var(--mono);font-size:62px;line-height:1;color:var(--ink);white-space:pre}
.fhw-fr--b{border-color:var(--accent);background-color:var(--accent-wash)}
.fhw-fr--b span{color:var(--ink);font-weight:700}
.fhw-fr::after{content:"";position:absolute;left:-1.5px;top:-1.5px;width:calc(var(--u) * 2);height:calc(100% + 3px);border:1px dashed var(--line);border-radius:var(--radius);pointer-events:none;opacity:0;transition:opacity .2s}
.fhw-fr.is-n::after{opacity:1}
.fhw-arr{flex:0 0 auto;width:26px;height:14px;color:var(--accent)}
.fhw-lens.is-same .fhw-arr,.fhw-lens.is-same .fhw-fr--b,.fhw-lens.is-blank .fhw-arr,.fhw-lens.is-blank .fhw-fr--b{display:none}
.fhw-cap{margin:0 0 6px;font-family:var(--sans);font-size:13px;font-weight:650;line-height:1.55;color:var(--ink);text-align:center}
.fhw-lrows li{padding:6px 0;font-size:13px}
.fhw-lrows li b{font-size:12.5px;white-space:normal;text-align:right;overflow-wrap:anywhere}
.fhw-list{min-width:0;padding:14px 16px}
.fhw-hl--look{margin-top:14px}
.fhw-pairs{display:flex;flex-wrap:wrap;gap:6px}
.fhw-pair{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 9px 0 7px;border:1px solid var(--soft);border-radius:var(--radius);background:var(--paper);color:var(--ink);cursor:pointer;transition:border-color var(--ease),background var(--ease)}
.fhw-pair:hover{border-color:var(--line)}
.fhw-pair b{display:grid;place-items:center;min-width:1.2em;font-family:var(--mono);font-size:16px;font-weight:700;line-height:1;white-space:pre}
.fhw-pair i{font-style:normal;font-size:12px;color:var(--accent)}
.fhw-pair small{margin-left:3px;font-family:var(--sans);font-size:11.5px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.fhw-pair[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-wash)}
.fhw-pair.is-look{border-style:dashed}
.fhw-all{margin-top:8px;padding:0;border:0;background:none;font-family:var(--sans);font-size:12.5px;font-weight:700;color:var(--ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.fhw-all[hidden]{display:none}
.fhw-none{font-family:var(--sans);font-size:12.5px;color:var(--muted);align-self:center}
.fhw-nfkc:empty{display:none}
.fhw-nfkc{margin:14px 0 0;padding:9px 11px;border-left:3px solid var(--line);background:var(--wash);font-family:var(--sans);font-size:12.5px;line-height:1.6;color:var(--ink);overflow-wrap:anywhere}

/* 폭: 넓은 작업면은 원문 | 결과, 돋보기 | 목록 */
@container fhww (min-width:760px){
  .fhw-kinds{grid-template-columns:repeat(6,minmax(0,1fr))}
  .fhw-panes{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .fhw-src{border-bottom:0;border-right:1px solid var(--soft)}
  /* 두 칸 줄 맞춤: [머리 | 상자 | 예시·통계 | 지우기·복사] — 결과 쪽 통계가 두 줄이어도 원문 상자 안에 빈 줄이 생기지 않게 */
  .fhw-panes{grid-template-rows:auto 1fr auto auto}
  .fhw-pane{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0}
  .fhw-src .fhw-row{display:contents}
  .fhw-src .fhw-ex{grid-row:3;align-self:start;margin-top:10px}
  .fhw-src .fhw-clear{grid-row:4;justify-self:end;align-self:end;margin-top:10px}
  .fhw-ta{min-height:147px}
  .fhw-view{min-height:138px;max-height:none}
}
@container fhww (min-width:760px) and (max-width:899px){ /* 6열인데 칩이 좁은 구간: 예시 글자 상자를 빼 이름 자리를 넓힘(es 'Símbolos') */
  .fhw-kinds button{grid-template-columns:minmax(0,1fr) auto;gap:4px;padding:0 9px}
  .fhw-kinds i{display:none}
}
@container fhww (min-width:600px){
  .fhw-duo{grid-template-columns:minmax(250px,.9fr) minmax(0,1.1fr)}
  .fhw-lens{border-bottom:0;border-right:1px solid var(--soft)}
}
@container fhww (max-width:420px){
  .fhw-head,.fhw-pane,.fhw-lens,.fhw-list{padding-left:12px;padding-right:12px}
  .fhw-modes button{padding:6px 8px}
  .fhw-modes b{font-size:13px}
  .fhw-modes small{font-size:11px}
  .fhw-kinds button{grid-template-columns:minmax(0,1fr) auto;gap:4px;padding:0 8px}
  .fhw-kinds i{display:none}
  .fhw-frames{--u:38px}
  .fhw-fr span{font-size:52px}
  .fhw-lg{margin-left:0}
}
/* 본문: 큰 글자 칸·코드 */
.v2-article td.fhw-ch{font-family:var(--mono);font-size:17px;font-weight:700;text-align:center;white-space:pre;width:2.6em;vertical-align:middle}
.v2-article td.fhw-ch small{display:block;margin-top:2px;font-family:var(--sans);font-size:10.5px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
.v2-article td.fhw-ch.is-f{background:var(--accent-wash)}
.v2-article code{padding:1px 4px;border-radius:2px;background:var(--wash);font-family:var(--mono);font-size:.88em;overflow-wrap:anywhere}
.v2-article pre.fhw-code{margin:10px 0 16px;padding:12px 14px;overflow-x:auto;border:1px solid var(--soft);border-radius:var(--radius);background:var(--card);font-family:var(--mono);font-size:13px;line-height:1.6;color:var(--ink)}
.v2-article pre.fhw-code code{padding:0;background:none;font-size:inherit;overflow-wrap:normal}
@media (prefers-reduced-motion:reduce){
  .fhw-view.is-anim .c.a,.fhw-view.is-anim .c.a s{animation:none}
  .fhw-fr,.fhw-fr::after{transition:none}
}
