/* tool-parts.css - 공개 도구 프로그램(/tool/{이름}.do) 조각의 새 공통 규칙 (밝은 테마 전용). 도구 16개 개편.
   담는 것 : ① 토큰(더하거나 바꾼 것)  ② 배치 패턴 P1 · P1-L · P2 · P3 · P4 의 뼈대  ③ 공통 부품
             + 여닫기(.nxt [hidden]) · 시각 숨김(.nxt .sr-only)
   뿌리    : <div class="nxt nxt-{이름} nxt-{normal|wide|full} nxt-light [nxt-calc]" data-nxt="{이름}" data-ctx="{컨텍스트 경로}">

   [거는 순서] tool-common.css → tool-parts.css → (tool-p2.css | tool-p3.css) → {이름}.css
               순서를 바꾸면 안 된다 - 이 파일은 tool-common.css 의 바탕 규칙을 "같은 무게로 뒤에서" 덮는다 :
               토큰 블록(.nxt.nxt-light) · .nxt-panel-head · .nxt-stage · .nxt-stage-area · .nxt-empty (같은 선택자),
               패널에 더하는 클래스(.nxt-stage · .nxt-preview · .nxt-drop 이 .nxt-panel 의 여백 · 테두리 · 바탕을 바꾼다).
               조각에는 sols-tool-guide.css 를 걸지 않는다(옛 계산기 공통 tool-calc.css 는 2026.10.15 에 지웠다).
   [닿는 곳]   이 파일은 전환한 조각만 건다 - 미전환 도구에는 닿지 않는다.
               (그래서 tool-common.css 에 넣지 않았다. 같은 이름의 값이 달라, 한 파일에 두면 미전환 도구의 무대 · 빈 상태가 어긋난다.)
   [출처]      docs/design/2026-10-14_tool_renewal_시안/renewal.css ①②③ (④ 계산형 도구별은 각 도구 CSS 로 간다)
               기획 docs/design/2026-10-13_tool_renewal_기획.md 6절 · 배정 docs/design/2026-10-14_tool_renewal_배정서.md 1절 (a)
               시안 노트 A = design-notes.md, B = design-notes-p2.md, C = design-notes-p3.md (같은 시안 폴더)
   [시안에서 바꾼 값]  시안에서는 renewal-p2.css · renewal-p3.css 가 뒤에서 덮던 것이다. 여기서는 덮는 줄을 더하지 않고 원래 줄을 그 값으로 고쳤다.
     B 7절 1   .nxt-sticky 의 max-height + 안쪽 스크롤을 무대(.nxt-stage.nxt-sticky)에는 걸지 않는다
     B 7절 2   .nxt-stage-area 의 최소 높이 320px → 0 (높이는 판이 정한다)
     B 7절 3   .nxt-stage-main 의 바탕 폭 200px → 120px
     C 14절 1  900px 이하 .nxt-p3 → display:block
     C 14절 2  .nxt-dock : 세로 flex · 900px 이하 position:fixed → sticky; bottom. 쓰이지 않는 .nxt-dock>.nxt-btn 규칙은 뺐다
     C 14절 3  .nxt-preview : 격자 + 최소 높이 420px → 세로 flex(무대 + 아래 줄) + PC 위 고정
     C 14절 6  전환 단추 안 아이콘의 여백(.nxt-seg>button>.bi)을 공통 규칙으로 올렸다
     더한 것   토큰 --nxt-shadow-dock (C 8절. 고친 .nxt-dock 이 읽는다) · .nxt .sr-only (배정서 4절 11)
               .nxt-icon-btn[disabled] 의 흐림 · 움직임 줄이기에서 .nxt-spinner 멈춤 (묶음 1 공통 후보)
     고친 것   .nxt-tabs 의 바닥 줄 : border-bottom + 탭의 margin-bottom:-1px → 안쪽 그림자(inset box-shadow). 탭 줄에 세로 스크롤 막대가 생기던 것(1B 가 화면에서 확인)
   [공용 수거 2026.10.15]  묶음 1 · 2 의 도구 CSS 에 임시로 있던 줄을 올렸다(전부 추가 - 앞의 이름 · 값은 그대로다)
     ② .nxt-viewtabs 의 scroll-margin-top(900px 이하)
     ③-2 글자 칸 .nxt-input-text(보통 굵기) · 줄바꿈하는 가로 줄 .nxt-field-row-wrap(--nxt-row-min) · 입력칸 + [추가] 한 줄 .nxt-add-row
     ③-3 상세 행 값의 둘째 줄 .nxt-rows-sub
     ③-4 월별 줄(.nxt-table-sub)의 th 굵기 - 선택자 무게가 모자라 굵게 나오던 것을 고쳤다
     ③-5 선택 창의 항목을 단추로 쓰는 꼴(button.nxt-picker-item[aria-pressed])
     ③-6 기록 줄의 꼬리표(.nxt-history-item>.nxt-badge) : 줄어들지 않게, 뒤에 삭제 단추가 없으면 오른쪽 여백
     ③-9 안내 본문의 목록 · 링크 · 글 표(.nxt-guide ul / ol / li / a, .nxt-guide .nxt-table)
   [묶음 5 2026.10.15]  묶음 3 · 4 의 도구 CSS 에 임시로 있던 줄을 올렸다
     ③-2 접이식 머리의 못 누름 .nxt-more-head[disabled] (로또)
     ③-9 저장 카드의 주 결과 숫자 .nxt-shot .nxt-hero-num : 줄바꿈 허용(긴 글 결과가 카드 밖으로 나가던 것 - 제비뽑기)
   [tool-calc.css]  2026.10.15 에 지웠다(어느 조각도 걸지 않는다). 그 파일의 button:disabled 흐림은 부품마다의 [disabled] 규칙이 대신한다

   [이름]  새 부품은 전부 nxt- 접두. 상태는 클래스가 아니라 속성으로 그린다.
           [aria-pressed="true"] 고름 · [aria-selected="true"] 탭 · [aria-expanded="true"] 열림 · [hidden] 숨김 ·
           [aria-invalid="true"] 오류 · [aria-busy="true"] 진행 중 · [aria-current] 지금 · [disabled] / [aria-disabled="true"] 못 누름
   [범위]  선택자는 .nxt-light … 로 시작한다(무게 0,2,0 부터). 예외 셋 : .nxt.nxt-light(토큰) · .nxt [hidden] · .nxt .sr-only.
           틀 선택자(.bbs-*, .nxf-*, body, main)를 쓰지 않는다. 도구 하나만의 규칙을 두지 않는다(→ {이름}.css, .nxt-light.nxt-{이름} …).
   [토큰]  색은 ① 과 tool-common.css ④ 의 --nxt-* 로 낸다(색 위의 흰 글자 #fff 와 눌림 · 덮개의 반투명 값은 그 자리에 적었다).
   [굵기]  400 과 700 만. 글자 최소 13px.

   [구성]  ① 토큰 · [hidden] · .sr-only
           ② 배치 패턴 : P1 계산형 · P1-L 목록형 · P2 뽑기형 · P3 이미지 작업형 · P4 편집기형 · 패널 머리
           ③-1 단추 · 전환 단추 · 탭 · 칩            ③-2 입력칸 · 접이식 · 안내 상자 · 오류
           ③-3 결과 영역 · 행동 줄 · 빈 상태          ③-4 아래 패널 · 표 · 차트
           ③-5 토스트 · 확인창 · 선택 창              ③-6 기록 목록 · 저장 카드 줄 · 불러오기
           ③-7 모바일 결과 막대                      ③-8 무대 주 단추 · 상태 안내 · 단계 표시 · 진행 막대
           ③-9 저장 이미지 카드 · 안내 본문
           P2 · P3 의 안쪽(무대 위 판, 올리기 칸, 미리보기 무대, 조절 패널 …)은 tool-p2.css · tool-p3.css, P4 안쪽은 sols-canvas.css 에 있다.

   [명도 대비 - 상대휘도 계산. 글자 4.5:1 / 비텍스트 3:1]  바탕 토큰의 수치는 tool-common.css 머리 주석에 있다. 이 파일이 더한 조합 :
     주 결과 숫자 #1A56DB / 옅은 파랑 #EAF1FE 5.5 · 결과 막대 값 #1A56DB / 흰 6.2 · 요약 글 #1445B0 / 흰 8.4
     상승 #B42318 / 흰 6.6 · 하락 #1A56DB / 흰 6.2 (화살표 아이콘과 부호를 함께 쓴다)
     토스트 흰 / #0F172A 17.9 · 토스트 위 포커스 링 #E8590C / #0F172A 5.0
     진행 막대 채움 #1A56DB / 받침 #CBD5E1 4.2 (비텍스트) · 진행 중 주 단추 글 #1445B0 / #EAF1FE 7.4
     빈 상태 글 #334155 / #F5F7FB 9.7 · 주의 상자 글 #6B3A06 / #FFF7E6 8.8 · 조건 안내 글 #334155 / #EAF1FE 9.1
     (시안 머리 주석의 "게이지 5색"은 ④ BMI 것이라 bmi-calculator.css 로 간다)
   2026.10.14 최초 생성 (시안 renewal.css ①②③ 이식) */

/* ==========================================================================================
   ① 토큰  (더하거나 바꾼 것만)
   ========================================================================================== */
.nxt.nxt-light{
	/* 숫자 크기 체계 : xl 주 결과 한 줄 / lg 주 결과 두 줄 · 비교 열 · 날짜형 주 결과 / md 보조 수치 · 결과 막대 / sm 상세 값 · 표 */
	--nxt-num-xl:40px; --nxt-num-lg:30px; --nxt-num-md:18px; --nxt-num-sm:15px;
	--nxt-chip-h:40px;            /* 칩 높이(촘촘한 줄). 900px 이하 44px */
	--nxt-sticky-top:88px;        /* 결과 패널 · 무대 고정의 위 띄움 = 틀 헤더 64 + 24 */
	--nxt-bar-h:60px;             /* 모바일 결과 막대 높이 */
	--nxt-z-bar:40;               /* 결과 막대 · 아래 고정 줄. 틀 헤더(50) · 서랍 덮개(65) 아래 */
	--nxt-up:var(--nxt-danger);   /* 상승 */
	--nxt-down:var(--nxt-primary);/* 하락 */
	--nxt-scrim:rgba(15,23,42,.5);
	--nxt-shadow-pop:0 16px 40px rgba(15,23,42,.18);
	--nxt-shadow-bar:0 -6px 16px rgba(15,23,42,.08);
	--nxt-shadow-dock:0 8px 24px rgba(15,23,42,.16);   /* P3 아래 고정 줄(.nxt-dock)의 그림자 - 시안 노트 C 8절 */
	word-break:keep-all;          /* 한글은 낱말 단위로 줄을 바꾼다 */
	overflow-wrap:anywhere;       /* 긴 한 덩어리는 칸 안에서 꺾는다 */
}
/* [hidden] 은 display 를 준 요소에서도 반드시 숨는다 (부품의 여닫기는 전부 이 속성이다) */
.nxt [hidden]{display:none!important}
/* 시각 숨김 : 낭독기에만 들리는 글(결과 알림, 숨긴 제목, "(끝남)"). 새 마크업 16개가 모두 쓴다.
   틀(theme-daegu.css)의 .sr-only 와 같은 선언이다 - 틀이 달라도 도구가 스스로 갖게 여기에 둔다 */
.nxt .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

@media (max-width:900px){
	.nxt.nxt-light{--nxt-num-xl:34px;--nxt-num-lg:26px;--nxt-num-md:17px;--nxt-chip-h:44px}
}

/* ==========================================================================================
   ② 배치 패턴
   ========================================================================================== */
/* ---------- P1 계산형 ----------
   <div class="nxt nxt-{이름} nxt-wide nxt-light nxt-calc" data-nxt="{이름}">
     <div class="nxt-cols nxt-p1">
       <section class="nxt-panel nxt-panel-in"  aria-labelledby="…">  입력 (5)
       <section class="nxt-panel nxt-panel-out nxt-sticky" id="…" aria-labelledby="…">  결과 (6) - PC 에서 고정
     </div>
     <section class="nxt-panel nxt-below" aria-labelledby="…">  아래 패널 "더 계산하기" (전체 폭)
     <section class="nxt-guide">  안내 본문
     <div class="nxt-resultbar" hidden>  모바일 결과 막대
     <div class="nxt-toasts" aria-live="polite">
   </div>
   칸 비율 5 : 6 과 900px 이하 한 줄(입력 → 결과 → 아래 → 안내)은 tool-common.css 의 .nxt-cols 그대로다. */
.nxt-light .nxt-sticky{position:sticky;top:var(--nxt-sticky-top)}
/* 안쪽 스크롤(max-height + overflow-y)은 결과 패널에만 건다. 무대(.nxt-stage.nxt-sticky)는 안에서 굴리지 않는다 - 판과 주 단추가 카드 안에서 굴러가면 안 된다.
   :where() 는 무게를 더하지 않는다(0,2,0 그대로) - 바로 아래 900px 규칙과 도구 CSS 가 그대로 덮는다. (시안 노트 B 7절 1 · 2절) */
.nxt-light .nxt-sticky:where(:not(.nxt-stage)){max-height:calc(100vh - var(--nxt-sticky-top) - 16px);overflow-y:auto}
.nxt-light .nxt-below{margin-top:var(--nxt-gap)}
@media (max-width:900px){
	.nxt-light .nxt-sticky{position:static;max-height:none;overflow:visible}
}

/* ---------- P1-L 목록형 (N빵) ----------
   P1 과 같은 2단. 왼쪽이 목록 편집, 오른쪽이 정산표(고정).
   <div class="nxt-viewtabs nxt-tabs" role="tablist" aria-label="화면 고르기">  [입력] [정산서]  - 900px 이하에서만 보인다
   <div class="nxt-cols nxt-p1l" data-view="in">  data-view = in | out (탭이 바꾼다. PC 에서는 뜻이 없다) */
/* (.nxt-tabs 의 display:flex 가 뒤에 있으므로 클래스 둘로 무겁게 적는다) */
.nxt-light .nxt-tabs.nxt-viewtabs{display:none}
@media (max-width:900px){
	/* scroll-margin-top : 결과 막대의 단추가 이 탭 줄을 화면에 들일 때(scrollIntoView) 화면 맨 위에 바짝 붙지 않게 */
	.nxt-light .nxt-tabs.nxt-viewtabs{display:flex;scroll-margin-top:12px}
	.nxt-light .nxt-tabs.nxt-viewtabs>[role="tab"]{flex:1 1 0}
	.nxt-light .nxt-p1l[data-view="in"]>.nxt-panel-out,
	.nxt-light .nxt-p1l[data-view="out"]>.nxt-panel-in{display:none}
}

/* ---------- P2 뽑기형 (뼈대만 - 안쪽은 tool-p2.css) ----------
   <div class="nxt-cols nxt-p2">
     <section class="nxt-panel nxt-stage nxt-sticky">  무대 (6) : 상태 안내 → 판 → 주 단추 → 결과 → 행동 줄
     <div class="nxt-side">  설정 · 기록 패널 묶음 (5)
   로또는 무대 카드 맨 아래에 div.nxt-stage-set(추첨 설정)이 더 있고, 제비뽑기는 결과 줄이 주 단추 위다(시안 노트 B 3절 · 7절 4).
   무대는 카드 안에서 굴리지 않는다(위 .nxt-sticky). 고정을 푸는 조건(낮은 화면 · data-sticky="off")은 tool-p2.css ② 에 있다.
   900px 이하 : 무대 → 주 단추 → 결과 · 행동 줄 → 항목 → 옵션 → 기록 (마크업 순서 그대로). 주 단추는 첫 화면(812px) 안. */
.nxt-light .nxt-p2{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}
.nxt-light .nxt-side{display:grid;gap:var(--nxt-gap);min-width:0}
@media (max-width:900px){
	.nxt-light .nxt-p2{grid-template-columns:minmax(0,1fr)}
}

/* ---------- P3 이미지 작업형 (뼈대만 - 안쪽은 tool-p3.css) ----------
   ol.nxt-steps (3칸)
   ① 올리기 : <section class="nxt-panel nxt-drop">  한 장, 전체 폭
   ② 작업대 : <div class="nxt-p3">
                <div class="nxt-p3-main"> (축소 안내 .nxt-preview-note) + <section class="nxt-panel nxt-preview"> 무대 + 아래 줄 </section> </div>
                <div class="nxt-p3-side"> <section class="nxt-panel nxt-controls"> 조절 </section> + <div class="nxt-dock"> [다른 이미지] + 주 단추 </div> </div>
              </div>
   칸 비율 : 미리보기 1fr : 조절 340px (901~1199px 는 300px). 미리보기는 세로 flex(무대 + 아래 줄)이고 높이는 무대가 가진다. PC 에서는 위에 붙는다.
   900px 이하 : .nxt-p3 를 블록으로 푼다 - 격자 칸 안의 sticky 는 자기 칸(= 자기 높이)을 벗어나지 못해 붙지 않는다. 미리보기를 위에 붙인다(화면 높이 40%).
                아래 줄(.nxt-dock)은 position:sticky; bottom 이다(fixed 가 아니다) - 조절 칸이 화면에 있는 동안만 붙고, 안내 본문 · 푸터를 가리지 않는다.
   감싸개 둘(.nxt-p3-main · .nxt-p3-side)과 줄 안쪽(.nxt-dock-row)의 규칙은 tool-p3.css 에 있다. (시안 노트 C 2절 · 14절 1~3) */
.nxt-light .nxt-p3{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--nxt-gap);align-items:start}
.nxt-light .nxt-preview{position:sticky;top:var(--nxt-sticky-top);display:flex;flex-direction:column;align-items:stretch;gap:12px;min-height:0;padding:16px}
.nxt-light .nxt-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:280px;border:2px dashed var(--nxt-field-line);background:var(--nxt-soft);text-align:center}
.nxt-light .nxt-dock{display:flex;flex-direction:column;gap:8px;margin:0}
@media (max-width:1199px){
	.nxt-light .nxt-p3{grid-template-columns:minmax(0,1fr) 300px}
}
@media (max-width:900px){
	.nxt-light .nxt-p3{display:block}
	.nxt-light .nxt-preview{position:sticky;top:0;z-index:5;height:40vh;min-height:220px}
	.nxt-light .nxt-dock{position:sticky;bottom:calc(8px + env(safe-area-inset-bottom,0px));z-index:var(--nxt-z-bar);margin:12px 0 0;padding:8px;border:1px solid var(--nxt-line-dk);border-radius:var(--nxt-r-panel);background:var(--nxt-panel);box-shadow:var(--nxt-shadow-dock)}
}

/* ---------- P4 편집기형 (뼈대만 - 안쪽은 sols-canvas.css) ----------
   지금의 nxt-full 셸 그대로. 880px 이하에서는 편집기 대신 안내 카드가 먼저 보인다.
   <div class="nxt-panel nxt-p4-notice"> 안내 글 + [그래도 열기] </div> */
.nxt-light .nxt-p4-notice{display:none;flex-direction:column;align-items:flex-start;gap:12px}
@media (max-width:880px){
	.nxt-light .nxt-p4-notice{display:flex}
}

/* ---------- 패널 머리 ----------
   <div class="nxt-panel-head"><h2 class="nxt-panel-title" id="…">대출 조건</h2>
     <div class="nxt-panel-tools"><button type="button" class="nxt-btn nxt-btn-ghost nxt-reset">처음으로</button></div></div> */
.nxt-light .nxt-panel-head{min-height:44px;margin:0 0 16px}
.nxt-light .nxt-panel-tools{flex:none;display:flex;align-items:center;gap:4px;margin:0 -8px 0 auto}

/* ==========================================================================================
   ③-1 단추 · 전환 단추 · 탭 · 칩
   ========================================================================================== */
/* ---------- 단추 ----------
   button.nxt-btn                 보조(기본)        옅은 파랑 바탕 + 진한 파랑 글자(2026.10.14 - 단추를 파란 계열로 통일. 그 전에는 흰 바탕 + 회색 테두리였다)
                                                    hover 파란 테두리 + 더 진한 옅은 파랑 / active 한 단계 더 / disabled 흐림
   button.nxt-btn.nxt-btn-primary 주 단추(화면에 1개)
   button.nxt-btn.nxt-btn-ghost   글자 단추([처음으로], [전체 삭제])
   button.nxt-btn.nxt-btn-danger  지우는 확인 단추(확인창 안에서만)
   +nxt-btn-lg 52px(무대 주 단추) / +nxt-btn-block 가로 전체 / button.nxt-icon-btn 아이콘만(44 × 44, aria-label 필수) */
.nxt-light .nxt-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--nxt-h);margin:0;padding:8px 16px;border:1px solid var(--nxt-tint-line);border-radius:var(--nxt-r);
	background:var(--nxt-tint);color:var(--nxt-primary-dk);font:inherit;font-size:15px;font-weight:700;line-height:1.3;text-align:center;text-decoration:none;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}
.nxt-light .nxt-btn:hover{border-color:var(--nxt-primary);background:var(--nxt-tint-dk);color:var(--nxt-primary-dk)}
.nxt-light .nxt-btn:active{background:var(--nxt-tint-dk);box-shadow:inset 0 0 0 999px rgba(26,86,219,.08)}
.nxt-light .nxt-btn>.bi{flex:none;font-size:16px;line-height:1}
.nxt-light .nxt-btn-primary{border-color:var(--nxt-primary);background:var(--nxt-primary);color:#fff}
.nxt-light .nxt-btn-primary:hover{border-color:var(--nxt-primary-dk);background:var(--nxt-primary-dk);color:#fff}
.nxt-light .nxt-btn-primary:active{background:var(--nxt-primary-dk)}
.nxt-light .nxt-btn-danger{border-color:var(--nxt-danger);background:var(--nxt-danger);color:#fff}
.nxt-light .nxt-btn-danger:hover{border-color:var(--nxt-danger);background:var(--nxt-danger);color:#fff;box-shadow:inset 0 0 0 999px rgba(0,0,0,.14)}
.nxt-light .nxt-btn-ghost{padding:8px 10px;border-color:transparent;background:none;box-shadow:none;color:var(--nxt-text-2);font-size:14px;font-weight:400}
.nxt-light .nxt-btn-ghost:hover{border-color:transparent;background:var(--nxt-soft);color:var(--nxt-text)}
.nxt-light .nxt-btn-lg{min-height:52px;padding:10px 24px;font-size:17px}
.nxt-light .nxt-btn-block{display:flex;width:100%}
.nxt-light .nxt-btn[disabled],
.nxt-light .nxt-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;pointer-events:none}
.nxt-light .nxt-icon-btn{flex:none;display:inline-grid;place-items:center;width:44px;height:44px;margin:0;padding:0;border:0;border-radius:var(--nxt-r);background:none;color:var(--nxt-text-3);font-size:16px;line-height:1;cursor:pointer}
.nxt-light .nxt-icon-btn:hover{background:var(--nxt-soft);color:var(--nxt-text)}
.nxt-light .nxt-icon-btn[disabled]{opacity:.45;cursor:not-allowed;pointer-events:none}   /* 못 누르는 아이콘 단추(더하기 · 빼기의 끝 값 등) - .nxt-btn 과 같은 흐림 */

/* ---------- 전환 단추 : 2~4개 중 하나 고르기 ----------
   <span class="nxt-label" id="x">상환 방식</span>
   <div class="nxt-seg" role="group" aria-labelledby="x"><button type="button" aria-pressed="true">원리금 균등</button>…</div>
   고른 것 = 색 + 2px 테두리 + 굵은 글자. +nxt-seg-auto 글자 폭만큼(단위 전환) / +nxt-seg-grid 2열 격자(4개, 둘째 줄 글이 있을 때) */
.nxt-light .nxt-seg{display:flex;gap:6px;margin:0 0 16px;padding:0}
.nxt-light .nxt-seg>button{flex:1 1 0;min-width:0;min-height:var(--nxt-h);margin:0;padding:6px 8px;border:1px solid var(--nxt-field-line);border-radius:var(--nxt-r);
	background:var(--nxt-panel);box-shadow:var(--nxt-field-shadow);color:var(--nxt-text-2);font:inherit;font-size:14px;font-weight:400;line-height:1.3;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}
.nxt-light .nxt-seg>button:hover{border-color:var(--nxt-primary);color:var(--nxt-primary-dk)}
.nxt-light .nxt-seg>button[aria-pressed="true"]{border-color:var(--nxt-primary);box-shadow:inset 0 0 0 1px var(--nxt-primary);background:var(--nxt-tint);color:var(--nxt-primary-dk);font-weight:700}
.nxt-light .nxt-seg>button[disabled]{opacity:.45;cursor:not-allowed;pointer-events:none}
.nxt-light .nxt-seg-auto>button{flex:none;min-width:56px;padding:6px 12px}
.nxt-light .nxt-seg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.nxt-light .nxt-seg-sub{display:block;margin-top:2px;font-size:13px;font-weight:400;color:var(--nxt-text-3)}
.nxt-light .nxt-seg>button[aria-pressed="true"] .nxt-seg-sub{color:var(--nxt-primary-dk)}
/* 단추 안 아이콘(글자 앞) : <button type="button" aria-pressed="true"><i class="bi bi-brush" aria-hidden="true"></i>붓</button>  (시안 노트 C 14절 6) */
.nxt-light .nxt-seg>button>.bi{margin-right:6px;font-size:15px;line-height:1}

/* ---------- 탭 : 화면을 바꾸는 것만 ----------
   <div class="nxt-tabs" role="tablist" aria-label="…"><button type="button" role="tab" id="t1" aria-selected="true" aria-controls="p1">방식 비교</button>…</div>
   <div class="nxt-tabpanel" role="tabpanel" id="p1" aria-labelledby="t1" tabindex="0">…</div>
   전환 단추와 모양이 다르다 : 밑줄형. 좌우 화살표 키로 옮긴다. +nxt-tabs-lg 도구 맨 위 모드 전환(주휴수당 / 퇴직금)
   바닥 줄은 테두리가 아니라 안쪽 그림자다(시안은 border-bottom + 탭의 margin-bottom:-1px 였다 - 그 1px 가 세로로 넘쳐, overflow-x:auto 인 이 줄에
   세로 스크롤 막대가 생겼다). 그림자 줄은 줄 안쪽에 그려져 넘침이 없고, 고른 탭의 밑줄이 그 위를 덮는다. 높이는 같다(44px). */
.nxt-light .nxt-tabs{display:flex;gap:4px;margin:0 0 16px;padding:0;box-shadow:inset 0 -1px 0 var(--nxt-line-dk);overflow-x:auto}
.nxt-light .nxt-tabs>[role="tab"]{flex:none;min-height:var(--nxt-h);margin:0;padding:8px 14px;border:0;border-bottom:3px solid transparent;border-radius:var(--nxt-r) var(--nxt-r) 0 0;
	background:none;color:var(--nxt-text-2);font:inherit;font-size:15px;font-weight:400;line-height:1.3;white-space:nowrap;cursor:pointer}
.nxt-light .nxt-tabs>[role="tab"]:hover{background:var(--nxt-soft);color:var(--nxt-text)}
.nxt-light .nxt-tabs>[role="tab"][aria-selected="true"]{border-bottom-color:var(--nxt-primary);color:var(--nxt-primary);font-weight:700}
.nxt-light .nxt-tabs>[role="tab"]:focus-visible{outline-offset:-3px}
.nxt-light .nxt-tabs-lg{margin-bottom:var(--nxt-gap)}
.nxt-light .nxt-tabs-lg>[role="tab"]{min-height:52px;padding:10px 20px;font-size:17px}
.nxt-light .nxt-tabs-lg>[role="tab"]>.bi{margin-right:8px}
.nxt-light .nxt-tabpanel:focus-visible{outline-offset:4px;border-radius:var(--nxt-r)}

/* ---------- 칩 ----------
   더하기 칩(값을 더한다. 작은 것부터, 최대 4개. 단위는 지금 입력 단위를 따른다)
     <div class="nxt-chips nxt-chips-add" role="group" aria-label="빠른 입력"><button type="button" class="nxt-chip">+100만</button>…</div>
   예시 칩(항목 · 날짜를 채운다. 이름은 "예시")
     <div class="nxt-chips" role="group" aria-labelledby="…"><button type="button" class="nxt-chip nxt-chip-ex">크리스마스</button>…</div>
   고르는 칩(N빵 참석자) : button.nxt-chip[aria-pressed] */
.nxt-light .nxt-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0}
.nxt-light .nxt-chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--nxt-chip-h);margin:0;padding:0 14px;border:1px solid var(--nxt-tint-line);border-radius:999px;
	background:var(--nxt-tint);color:var(--nxt-primary-dk);font:inherit;font-size:14px;font-weight:700;line-height:1.2;white-space:nowrap;text-decoration:none;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}
.nxt-light .nxt-chip:hover{border-color:var(--nxt-primary);background:var(--nxt-tint-dk);color:var(--nxt-primary-dk)}
.nxt-light .nxt-chip:active{background:var(--nxt-tint-dk);box-shadow:inset 0 0 0 999px rgba(26,86,219,.08)}
.nxt-light .nxt-chips-add>.nxt-chip{flex:1 1 auto;padding:0 10px}
.nxt-light .nxt-chip-ex{border-color:var(--nxt-tint-line);background:var(--nxt-panel);font-weight:400}
.nxt-light .nxt-chip-ex>.bi{color:var(--nxt-primary)}
.nxt-light .nxt-chip[aria-pressed="true"]{border-color:var(--nxt-primary);box-shadow:inset 0 0 0 1px var(--nxt-primary);background:var(--nxt-tint);color:var(--nxt-primary-dk)}
.nxt-light .nxt-chip[aria-pressed="false"]{border-color:var(--nxt-field-line);background:var(--nxt-panel);color:var(--nxt-text-3);font-weight:400}
.nxt-light .nxt-chip[disabled]{opacity:.45;cursor:not-allowed;pointer-events:none}
/* 옅은 파랑 상자 안의 보조 단추 · 칩은 흰 바탕이다 - 단추 바탕도 옅은 파랑이라 같은 색끼리 묻힌다(2026.10.14) */
.nxt-light :is(.nxt-hero,.nxt-note-info,.nxt-cmp-col,.nxt-mini,.nxt-stage-area,.nxt-dock-note) :is(.nxt-btn:not(.nxt-btn-primary):not(.nxt-btn-danger):not(.nxt-btn-ghost),.nxt-chip:not([aria-pressed="true"])){background:var(--nxt-panel)}
.nxt-light :is(.nxt-hero,.nxt-note-info,.nxt-cmp-col,.nxt-mini,.nxt-stage-area,.nxt-dock-note) :is(.nxt-btn:not(.nxt-btn-primary):not(.nxt-btn-danger):not(.nxt-btn-ghost),.nxt-chip:not([aria-pressed="true"])):hover{background:var(--nxt-tint-dk)}

/* ==========================================================================================
   ③-2 입력칸 · 접이식 · 안내 상자
   ========================================================================================== */
/* ---------- 입력칸 ----------
   <div class="nxt-field">
     <label class="nxt-label" for="a">대출 금액 <span class="nxt-opt">(선택)</span></label>
     <div class="nxt-input">
       <input type="text" inputmode="numeric" id="a" placeholder="예: 100,000,000" aria-describedby="aRead aErr">
       <span class="nxt-unit">원</span>
       <button type="button" class="nxt-clear" aria-label="대출 금액 지우기"><i class="bi bi-x-circle-fill" aria-hidden="true"></i></button>   금액 칸만
     </div>
     <p class="nxt-read" id="aRead">1억 원</p>              금액 한글 읽기(원화 금액 칸 전부)
     <div class="nxt-chips nxt-chips-add">…</div>
     <p class="nxt-error" id="aErr" hidden><i class="bi bi-exclamation-circle-fill" aria-hidden="true"></i>1원 ~ 50억 원 사이로 넣어 주세요.</p>
   </div>
   테두리는 감싸개(.nxt-input)가 그린다. 오류 = input 에 aria-invalid="true" + .nxt-error 의 hidden 을 뗀다.
   칸 안 × 는 값이 있을 때만 보인다(placeholder 가 있어야 한다). 빈 칸은 오류가 아니다. */
.nxt-light .nxt-field{min-width:0;margin:0 0 16px}
.nxt-light .nxt-opt{margin-left:2px;font-weight:400;color:var(--nxt-text-3)}
.nxt-light .nxt-input{display:flex;align-items:center;min-width:0;min-height:var(--nxt-h);border:1px solid var(--nxt-field-line);border-radius:var(--nxt-r);background:var(--nxt-panel);box-shadow:var(--nxt-field-shadow);transition:border-color .15s ease}
.nxt-light .nxt-input:hover{border-color:var(--nxt-field-line-hover,#94A3B8)}
.nxt-light .nxt-input:focus-within{border-color:var(--nxt-primary);outline:3px solid var(--nxt-focus);outline-offset:1px}
.nxt-light .nxt-input>input,
.nxt-light .nxt-input>select{flex:1 1 auto;width:100%;min-width:0;height:42px;margin:0;padding:0 12px;border:0;border-radius:var(--nxt-r);background:transparent;
	color:var(--nxt-text);font:inherit;font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;box-shadow:none}
.nxt-light .nxt-input>input:focus,
.nxt-light .nxt-input>input:focus-visible,
.nxt-light .nxt-input>select:focus,
.nxt-light .nxt-input>select:focus-visible{outline:none}
.nxt-light .nxt-input>input::placeholder{color:var(--nxt-placeholder);font-weight:400;opacity:1}
/* 글자 칸 : 이름 · 계좌번호 · 찾기처럼 수가 아닌 값은 보통 굵기다. 감싸개에 nxt-input-text 를 더한다(기본인 굵은 글자는 금액 · 수 칸의 것)
   <div class="nxt-input nxt-input-text"><input type="text" …></div>  (select 도 같다) */
.nxt-light .nxt-input-text>input,
.nxt-light .nxt-input-text>select{font-weight:400}
.nxt-light .nxt-input>input:disabled,
.nxt-light .nxt-input>select:disabled{color:var(--nxt-text-3);cursor:not-allowed}
.nxt-light .nxt-input:has(:disabled){background:var(--nxt-soft)}
.nxt-light .nxt-unit{flex:none;padding-right:12px;font-size:14px;font-weight:700;color:var(--nxt-text-3);white-space:nowrap}
.nxt-light .nxt-clear{flex:none;display:grid;place-items:center;width:44px;height:44px;margin:-1px -1px -1px -8px;padding:0;border:0;border-radius:var(--nxt-r);background:none;color:var(--nxt-text-3);font-size:16px;line-height:1;cursor:pointer}
.nxt-light .nxt-clear:hover{color:var(--nxt-text)}
.nxt-light .nxt-clear:focus-visible{outline-offset:-6px}
.nxt-light .nxt-input>input:placeholder-shown~.nxt-clear{display:none}
/* 오류 : 빨간 2px 테두리 + 아래 글 + 느낌표 (색 하나에 기대지 않는다) */
.nxt-light .nxt-input:has([aria-invalid="true"]){border-color:var(--nxt-danger);box-shadow:inset 0 0 0 1px var(--nxt-danger)}
.nxt-light .nxt-error{display:flex;align-items:flex-start;gap:6px;margin:6px 0 0;font-size:13px;font-weight:700;line-height:1.5;color:var(--nxt-danger)}
.nxt-light .nxt-error>.bi{flex:none;margin-top:3px;font-size:13px;line-height:1}
.nxt-light .nxt-hint{margin:6px 0 0;font-size:13px;line-height:1.5;color:var(--nxt-text-3)}
/* 금액 한글 읽기 : 비어 있어도 한 줄 높이를 지킨다(글자를 칠 때 아래가 밀리지 않게) */
.nxt-light .nxt-read{min-height:20px;margin:4px 0 0;font-size:13px;font-weight:700;line-height:20px;color:var(--nxt-primary-dk)}
/* 가로 줄 · 격자 */
.nxt-light .nxt-field-row{display:flex;align-items:flex-start;gap:8px;min-width:0}
.nxt-light .nxt-field-row>.nxt-field{flex:1 1 0}
.nxt-light .nxt-field-row>.nxt-seg{flex:none;margin-top:27px}        /* 27px = 레이블 21 + 6 : 입력칸과 윗선을 맞춘다 */
/* 좁아지면 줄을 바꾸는 가로 줄 : .nxt-field-row 에 nxt-field-row-wrap 을 더한다. 칸이 --nxt-row-min(기본 150px)보다 좁아지면 한 칸씩 내려간다
   (날짜 두 칸 - 150px 아래에서는 글자와 달력 단추가 겹친다 / 은행 + 계좌번호 - 도구 CSS 에서 --nxt-row-min:200px).
   <div class="nxt-field-row nxt-field-row-wrap"><div class="nxt-field">…</div><div class="nxt-field">…</div></div> */
.nxt-light .nxt-field-row-wrap{flex-wrap:wrap;gap:0 8px}
.nxt-light .nxt-field-row-wrap>.nxt-field{flex:1 1 var(--nxt-row-min,150px)}
/* 입력칸 + [추가] 한 줄 (목록에 하나씩 더하는 칸 - 돌림판 항목, N빵 멤버)
   <div class="nxt-field"><div class="nxt-add-row"><div class="nxt-input nxt-input-text"><input …></div><button type="button" class="nxt-btn">추가</button></div>
     <p class="nxt-error" hidden></p><p class="nxt-hint">…</p></div>
   오류 글이 줄 "아래"에 오도록 줄을 .nxt-field 로 감싼다(NxTool.fieldError 는 그 칸 안의 .nxt-error 를 쓴다) */
.nxt-light .nxt-add-row{display:flex;gap:8px;min-width:0}
.nxt-light .nxt-add-row>.nxt-input{flex:1 1 auto}
.nxt-light .nxt-add-row>.nxt-btn{flex:none}
.nxt-light .nxt-field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:0 12px}
/* 더하기 · 빼기 : <div class="nxt-stepper" role="group" aria-labelledby="…"><button class="nxt-icon-btn" aria-label="…줄이기">…</button><output>1</output><span>명</span><button …></div> */
.nxt-light .nxt-stepper-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}
.nxt-light .nxt-stepper-row>.nxt-label{margin:0}
.nxt-light .nxt-stepper{flex:none;display:flex;align-items:center;gap:4px}
.nxt-light .nxt-stepper>.nxt-icon-btn{border:1px solid var(--nxt-tint-line);background:var(--nxt-tint);color:var(--nxt-primary-dk)}
.nxt-light .nxt-stepper>.nxt-icon-btn:hover{border-color:var(--nxt-primary);background:var(--nxt-tint-dk);color:var(--nxt-primary-dk)}
.nxt-light .nxt-stepper>output{min-width:28px;text-align:right;font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}
.nxt-light .nxt-stepper>span{margin-right:4px;font-size:14px;color:var(--nxt-text-3)}

/* ---------- 접이식 "옵션 더 보기" ----------
   도구마다 하나, 입력 패널 맨 아래, 기본 닫힘. 닫혀 있어도 기본값과 다르면 머리에 요약을 적는다.
   <div class="nxt-more">
     <button type="button" class="nxt-more-head" aria-expanded="false" aria-controls="m">
       <span class="nxt-more-text"><span class="nxt-more-title">옵션 더 보기</span><span class="nxt-more-sum">바꾼 값: 비과세 30만 원 · 부양가족 3명</span></span>
       <i class="bi bi-chevron-down nxt-more-chev" aria-hidden="true"></i></button>
     <div class="nxt-more-body" id="m" hidden>…</div>
   </div>
   .nxt-more-sum 은 기본값 그대로면 넣지 않는다. */
.nxt-light .nxt-more{margin:0 0 16px;border:1px solid var(--nxt-line-dk);border-radius:var(--nxt-r)}
.nxt-light .nxt-more-head{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;margin:0;padding:8px 14px;border:0;border-radius:var(--nxt-r);background:none;
	color:var(--nxt-text);font:inherit;font-size:15px;font-weight:700;line-height:1.4;text-align:left;cursor:pointer}
.nxt-light .nxt-more-head:hover{background:var(--nxt-soft)}
.nxt-light .nxt-more-head:focus-visible{outline-offset:-3px}
/* 못 누름(disabled) : 글자색을 직접 정해 두어 브라우저의 흐림이 먹지 않는다 - 흐림을 직접 준다(로또가 추첨하는 동안 접이식 머리를 잠근다) */
.nxt-light .nxt-more-head[disabled]{opacity:.45;cursor:not-allowed}
.nxt-light .nxt-more-text{display:grid;gap:2px;min-width:0}
.nxt-light .nxt-more-sum{font-size:13px;font-weight:700;color:var(--nxt-primary-dk)}
.nxt-light .nxt-more-chev{flex:none;font-size:14px;color:var(--nxt-text-3);transition:transform .2s ease}
.nxt-light .nxt-more-head[aria-expanded="true"]{border-radius:var(--nxt-r) var(--nxt-r) 0 0;box-shadow:inset 0 -1px 0 var(--nxt-line)}
.nxt-light .nxt-more-head[aria-expanded="true"] .nxt-more-chev{transform:rotate(180deg)}
.nxt-light .nxt-more-body{padding:16px 14px 4px}

/* ---------- 안내 상자 ----------
   조건 안내(결과의 전제 - 결과 "위"에 계속 보인다) : <div class="nxt-note nxt-note-info" role="note"><i class="bi bi-info-circle-fill" aria-hidden="true"></i><p>…</p></div>
   경고(결과에 붙는 주의 - 보조 수치 "아래")       : <div class="nxt-note nxt-note-warn" role="note"><i class="bi bi-exclamation-triangle" aria-hidden="true"></i><p>…</p></div>
   토스트는 방금 한 행동의 확인에만 쓴다. 계속 알아야 하는 것은 이 상자다. */
.nxt-light .nxt-note{display:flex;align-items:flex-start;gap:8px;margin:0;padding:12px 14px;border:1px solid;border-radius:var(--nxt-r);font-size:14px;line-height:1.6}
.nxt-light .nxt-note>.bi{flex:none;margin-top:4px;font-size:15px;line-height:1}
.nxt-light .nxt-note>p{min-width:0;margin:0}
.nxt-light .nxt-note-info{border-color:var(--nxt-tint-line);background:var(--nxt-tint);color:var(--nxt-text-2)}
.nxt-light .nxt-note-info>.bi{color:var(--nxt-primary-dk)}
.nxt-light .nxt-note-warn{border-color:var(--nxt-warn-line);background:var(--nxt-warn-50);color:var(--nxt-warn-dk)}

/* ==========================================================================================
   ③-3 결과 영역 · 행동 줄 · 빈 상태
   ========================================================================================== */
/* ---------- 결과 영역 ---------- 순서 고정
   <div class="nxt-result">
     (조건 안내 .nxt-note-info)
     ① <div class="nxt-hero"> 주 결과 1개 + 조건 한 줄
     ② <dl class="nxt-stats"> 보조 2~4개
     ③ (경고 .nxt-note-warn)
     ④ <div class="nxt-actions"> 행동 단추 줄
     ⑤ 상세 (.nxt-rows, .nxt-breakdown, 접이식 …) - 긴 표 · 입력이 딸린 계산은 아래 패널로
     ⑥ <p class="nxt-basis"> 기준 · 면책
   </div>
   <div class="nxt-empty"> 빈 상태 (결과가 없으면 .nxt-result 에 hidden, 있으면 .nxt-empty 에 hidden)
   <p class="sr-only" aria-live="polite"> 값이 바뀌고 0.6초 뒤 주 결과 한 문장만 넣는다 */
.nxt-light .nxt-result{display:grid;gap:12px;min-width:0}
/* ① 주 결과
   <div class="nxt-hero"><p class="nxt-hero-label">월 상환액</p>
     <p class="nxt-hero-value"><span class="nxt-hero-line"><span class="nxt-hero-pre">매달</span><strong class="nxt-hero-num">506,685<span class="nxt-hero-unit">원</span></strong></span></p>
     <p class="nxt-hero-cond">1억 원 · 30년 · 연 4.5% · 원리금 균등</p></div>
   두 줄(원금 균등 · 만기일시)이면 .nxt-hero 에 nxt-hero-2 를 더하고 .nxt-hero-line 을 둘 둔다. 날짜처럼 긴 값도 nxt-hero-2. */
.nxt-light .nxt-hero{min-width:0;margin:0;padding:20px 16px;border-radius:12px;background:var(--nxt-tint);text-align:center}
.nxt-light .nxt-hero-label{margin:0 0 4px;font-size:14px;font-weight:700;line-height:1.5;color:var(--nxt-text-2)}
.nxt-light .nxt-hero-value{display:grid;gap:2px;justify-items:center;margin:0}
.nxt-light .nxt-hero-line{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:0 8px;line-height:1.25}
.nxt-light .nxt-hero-pre{font-size:16px;font-weight:700;color:var(--nxt-text-2)}
.nxt-light .nxt-hero-num{font-size:var(--nxt-num-xl);font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--nxt-primary)}
.nxt-light .nxt-hero-unit{margin-left:2px;font-size:.55em;letter-spacing:0}
.nxt-light .nxt-hero-2 .nxt-hero-num{font-size:var(--nxt-num-lg)}
.nxt-light .nxt-hero-cond{margin:8px 0 0;font-size:13px;line-height:1.5;color:var(--nxt-text-2)}
/* 주 결과 옆 꼬리표 : BMI 분류, D-값 등  <span class="nxt-badge">정상</span> */
.nxt-light .nxt-badge{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:2px 12px;border:1px solid var(--nxt-tint-line);border-radius:999px;background:var(--nxt-panel);color:var(--nxt-primary-dk);font-size:14px;font-weight:700;line-height:1.3;white-space:nowrap}
.nxt-light .nxt-hero-value>.nxt-badge{margin-top:6px}
.nxt-light .nxt-dot{flex:none;display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--nxt-series-1)}

/* ② 보조 수치 : 늘 2열. 홀수 개면 마지막에 nxt-stat-wide
   <dl class="nxt-stats"><div class="nxt-stat"><dt>총이자</dt><dd>82,406,841원</dd></div>…</dl> */
.nxt-light .nxt-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}
.nxt-light .nxt-stat{min-width:0;margin:0;padding:10px 14px 12px;border:1px solid var(--nxt-line);border-radius:10px;background:var(--nxt-panel)}
.nxt-light .nxt-stat>dt{margin:0 0 2px;font-size:13px;line-height:1.5;color:var(--nxt-text-3)}
.nxt-light .nxt-stat>dd{margin:0;font-size:var(--nxt-num-md);font-weight:700;line-height:1.3;font-variant-numeric:tabular-nums;color:var(--nxt-text)}
.nxt-light .nxt-stat-wide{grid-column:1/-1}

/* 비율 막대(둘로 나뉘는 비율 : 원금 / 이자)
   <div class="nxt-ratio"><div class="nxt-ratio-bar" aria-hidden="true"><span style="width:54.8%"></span><span style="width:45.2%"></span></div>
     <p class="nxt-ratio-legend"><span><i class="nxt-dot"></i>원금 54.8%</span><span><i class="nxt-dot nxt-dot-2"></i>이자 45.2%</span></p></div> */
.nxt-light .nxt-ratio{min-width:0;padding:12px 14px;border:1px solid var(--nxt-line);border-radius:10px}
.nxt-light .nxt-ratio-bar{display:flex;gap:2px;height:12px;border-radius:6px;overflow:hidden}
.nxt-light .nxt-ratio-bar>span{flex:none;background:var(--nxt-series-1)}
.nxt-light .nxt-ratio-bar>span+span{flex:1 1 auto;background:var(--nxt-series-2)}
.nxt-light .nxt-ratio-legend{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;margin:8px 0 0;font-size:13px;font-weight:700;color:var(--nxt-text-2)}
.nxt-light .nxt-ratio-legend>span{display:inline-flex;align-items:center;gap:6px}
.nxt-light .nxt-dot-2{background:var(--nxt-series-2)}
.nxt-light .nxt-dot-3{background:var(--nxt-series-3)}
.nxt-light .nxt-dot-4{background:var(--nxt-series-4)}

/* 도넛 + 범례(넷으로 나뉘는 비율 : 연봉 공제)
   <div class="nxt-breakdown"><div class="nxt-donut" style="background:conic-gradient(…)" aria-hidden="true"><div class="nxt-donut-hole"><span>총 공제액</span><strong>595,090원</strong></div></div>
     <ul class="nxt-legend"><li><i class="nxt-dot"></i><span>국민연금</span><span class="nxt-legend-pct">31.7%</span><strong>188,380원</strong></li>…</ul></div> */
.nxt-light .nxt-breakdown{display:flex;flex-wrap:wrap;align-items:center;gap:16px 20px;min-width:0;padding:14px;border:1px solid var(--nxt-line);border-radius:10px}
.nxt-light .nxt-donut{position:relative;flex:none;width:128px;height:128px;margin:0 auto;border-radius:50%}
.nxt-light .nxt-donut-hole{position:absolute;inset:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;background:var(--nxt-panel);text-align:center}
.nxt-light .nxt-donut-hole>span{font-size:13px;color:var(--nxt-text-3)}
.nxt-light .nxt-donut-hole>strong{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--nxt-text)}
.nxt-light .nxt-legend{flex:1 1 200px;display:grid;gap:8px;min-width:0;margin:0;padding:0;list-style:none}
.nxt-light .nxt-legend>li{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--nxt-text-2)}
.nxt-light .nxt-legend-pct{color:var(--nxt-text-3)}
.nxt-light .nxt-legend>li>strong{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--nxt-text)}

/* ④ 행동 단추 줄 : 주 결과 · 보조 바로 아래. 순서 고정 [결과 복사] [이미지로 저장] [공유] + 도구 고유(둘째 줄, 가로 전체)
   <div class="nxt-actions">
     <button type="button" class="nxt-btn"><i class="bi bi-clipboard" aria-hidden="true"></i>결과 복사</button>
     <button type="button" class="nxt-btn"><i class="bi bi-image" aria-hidden="true"></i>이미지로 저장</button>
     <button type="button" class="nxt-btn"><i class="bi bi-share" aria-hidden="true"></i>공유</button>
     <button type="button" class="nxt-btn nxt-actions-own">…</button>
   </div>
   해당 없는 것은 빼되 순서는 지킨다. 결과가 없으면 통째로 숨는다(.nxt-result 와 함께). */
.nxt-light .nxt-actions{display:flex;flex-wrap:wrap;gap:8px;min-width:0;margin:0}
.nxt-light .nxt-actions>.nxt-btn{flex:1 1 0;min-width:0;padding:8px;font-size:14px}
.nxt-light .nxt-actions>.nxt-actions-own{flex:1 1 100%}
.nxt-light .nxt-actions-note{flex:1 1 100%;margin:0;font-size:13px;line-height:1.5;color:var(--nxt-text-3)}
/* 칸이 좁은 폭(2단의 901~1199px, 600px 이하) : 아이콘 위 · 글자 아래 */
@media (max-width:600px),(min-width:901px) and (max-width:1199px){
	.nxt-light .nxt-actions>.nxt-btn:not(.nxt-actions-own){flex-direction:column;gap:4px;min-height:56px;padding:8px 4px;font-size:13px}
}

/* ⑤ 상세 행 : <p class="nxt-rows-title">기념일 일정</p><dl class="nxt-rows"><div><dt>살아온 날수</dt><dd>13,302일째</dd></div>…</dl>   지금 줄 = div[aria-current="true"] */
.nxt-light .nxt-rows{min-width:0;margin:0;border:1px solid var(--nxt-line);border-radius:10px}
.nxt-light .nxt-rows>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:10px 14px;border-top:1px solid var(--nxt-line)}
.nxt-light .nxt-rows>div:first-child{border-top:0}
.nxt-light .nxt-rows dt{margin:0;font-size:14px;color:var(--nxt-text-2)}
.nxt-light .nxt-rows dd{margin:0;font-size:var(--nxt-num-sm);font-weight:700;font-variant-numeric:tabular-nums;text-align:right;color:var(--nxt-text)}
.nxt-light .nxt-rows [aria-current="true"]{background:var(--nxt-tint)}
.nxt-light .nxt-rows-title{margin:4px 0 -4px;font-size:14px;font-weight:700;color:var(--nxt-text-2)}
/* 값의 둘째 줄 : 그 값이 어떻게 나왔는지 적는 작은 글(보통 굵기 · 회색 7.6:1). 빈 글이면 숨는다
   <div><dt>1일 평균 임금</dt><dd><span>98,901원</span><span class="nxt-rows-sub">9,000,000원 / 91일</span></dd></div> */
.nxt-light .nxt-rows-sub{display:block;margin-top:2px;font-size:13px;font-weight:400;line-height:1.5;color:var(--nxt-text-3)}
.nxt-light .nxt-rows-sub:empty{display:none}
/* ⑥ 기준 · 면책 */
.nxt-light .nxt-basis{margin:0;font-size:13px;line-height:1.6;color:var(--nxt-text-3)}
/* 계산기 머리의 기준 한 줄 (뿌리 맨 앞) : <p class="nxt-basis-head"><span data-rates="year">2026</span>년 기준 · <span data-rates="checked">2026.10.31 (토)</span> 확인</p> - 글자는 NxToolRates.fill 이 넣는다 */
.nxt-light .nxt-basis-head{margin:0 0 10px;font-size:13px;line-height:1.6;color:var(--nxt-text-3)}

/* ---------- 비교(두 열 + 차이) : 대출 조건 A / B ----------
   <div class="nxt-cmp"><div class="nxt-cmp-col"><p class="nxt-cmp-tag"><i class="nxt-dot"></i>조건 A</p> 주 결과(nxt-hero-line) + <dl class="nxt-cmp-rows">…</dl></div> ×2</div>
   <dl class="nxt-rows nxt-cmp-diff">  차이 */
.nxt-light .nxt-cmp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0}
.nxt-light .nxt-cmp-col{min-width:0;padding:14px 12px;border-radius:12px;background:var(--nxt-tint);text-align:center}
.nxt-light .nxt-cmp-tag{display:inline-flex;align-items:center;gap:6px;margin:0 0 6px;padding:2px 10px;border-radius:999px;background:var(--nxt-panel);font-size:13px;font-weight:700;color:var(--nxt-text)}
.nxt-light .nxt-cmp-col .nxt-hero-num{font-size:var(--nxt-num-lg)}
.nxt-light .nxt-cmp-col .nxt-hero-cond{margin-top:4px}
.nxt-light .nxt-cmp-rows{display:grid;gap:6px;margin:10px 0 0;padding:10px 0 0;border-top:1px solid var(--nxt-tint-line)}
.nxt-light .nxt-cmp-rows dt{margin:0;font-size:13px;color:var(--nxt-text-2)}
.nxt-light .nxt-cmp-rows dd{margin:0;font-size:var(--nxt-num-sm);font-weight:700;font-variant-numeric:tabular-nums;color:var(--nxt-text)}

/* ---------- 빈 상태 : 한 줄 + [예시로 해 보기] ----------
   <div class="nxt-empty"><p class="nxt-empty-text">대출 금액을 넣으면 월 상환액이 나옵니다.</p>
     <button type="button" class="nxt-btn"><i class="bi bi-magic" aria-hidden="true"></i>예시로 해 보기</button></div>
   "나올 결과 목록"(ul.nxt-empty-list)과 큰 아이콘 · 설명 문단은 없앤다. */
.nxt-light .nxt-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:168px;padding:24px 16px;border:1px dashed var(--nxt-line-dk);border-radius:12px;background:var(--nxt-soft);text-align:center}
.nxt-light .nxt-empty-text{margin:0;font-size:15px;font-weight:700;line-height:1.5;color:var(--nxt-text-2)}

/* ==========================================================================================
   ③-4 아래 패널 "더 계산하기" · 표 · 차트
   ========================================================================================== */
/* <section class="nxt-panel nxt-below" aria-labelledby="…">
     <div class="nxt-panel-head"><h2 class="nxt-panel-title" id="…">더 계산하기</h2><p class="nxt-below-cond">1억 원 · 30년 · 연 4.5% · 원리금 균등 기준</p></div>
     <div class="nxt-tabs" role="tablist">…</div> + <div class="nxt-tabpanel" role="tabpanel">…</div>
   입력이 딸린 계산(중도상환, 해외직구)은 자기 입력 + 자기 결과(.nxt-mini)를 한 탭 안에 둔다. */
.nxt-light .nxt-below .nxt-panel-head{flex-wrap:wrap;gap:4px 16px}
.nxt-light .nxt-below-cond{margin:0;font-size:13px;color:var(--nxt-text-3)}
.nxt-light .nxt-tabpanel-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin:0 0 12px}
.nxt-light .nxt-tabpanel-head>p{margin:0;font-size:14px;color:var(--nxt-text-2)}
/* 딸린 계산의 작은 결과 : <div class="nxt-mini"><p class="nxt-mini-label">예상 중도상환수수료</p><p class="nxt-mini-value">788,192원</p><p class="nxt-mini-desc">…</p></div> */
.nxt-light .nxt-mini{min-width:0;padding:16px;border-radius:12px;background:var(--nxt-tint)}
.nxt-light .nxt-mini-label{margin:0;font-size:14px;font-weight:700;color:var(--nxt-text-2)}
.nxt-light .nxt-mini-value{margin:2px 0 0;font-size:24px;font-weight:700;line-height:1.3;font-variant-numeric:tabular-nums;color:var(--nxt-primary)}
.nxt-light .nxt-mini-desc{margin:6px 0 0;font-size:14px;line-height:1.6;color:var(--nxt-text-2)}
.nxt-light .nxt-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 24px;align-items:start}
@media (max-width:900px){
	.nxt-light .nxt-split{grid-template-columns:minmax(0,1fr)}
}

/* ---------- 표 ----------
   <div class="nxt-table-wrap" tabindex="0" role="region" aria-label="…"><table class="nxt-table">…</table></div>
   첫 열 왼쪽, 나머지 오른쪽(숫자). 지금 줄 = tr[aria-current="true"]. 넓은 표는 감싸개 안에서만 가로로 굴린다.
   +nxt-table-stack : 600px 이하에서 줄마다 카드로 쌓는다(td 에 data-th="머리글") */
.nxt-light .nxt-table-wrap{min-width:0;overflow-x:auto;border:1px solid var(--nxt-line);border-radius:10px}
.nxt-light .nxt-table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
.nxt-light .nxt-table th,
.nxt-light .nxt-table td{padding:10px 12px;border-bottom:1px solid var(--nxt-line);text-align:right;white-space:nowrap;color:var(--nxt-text-2)}
.nxt-light .nxt-table th:first-child,
.nxt-light .nxt-table td:first-child{text-align:left}
.nxt-light .nxt-table thead th{background:var(--nxt-soft);font-weight:700;color:var(--nxt-text)}
.nxt-light .nxt-table tbody th{font-weight:700;color:var(--nxt-text)}
.nxt-light .nxt-table tbody:last-child>tr:last-child>*{border-bottom:0}
.nxt-light .nxt-table tr[aria-current="true"]>*{background:var(--nxt-tint)}
.nxt-light .nxt-table .nxt-cell-wrap{min-width:200px;white-space:normal}       /* 문장이 들어가는 칸 */
.nxt-light .nxt-table th>.nxt-badge{margin-left:8px}
.nxt-light .nxt-table-sub td,
.nxt-light .nxt-table-sub th{padding-top:6px;padding-bottom:6px;background:var(--nxt-soft);font-size:13px}
.nxt-light .nxt-table-sub th{padding-left:44px}
/* 월별 줄의 "1회차"는 보통 굵기 · 옅은 글자다. 위의 ".nxt-table tbody th"(굵게 · 진하게)보다 무겁게 적는다
   (전에는 ".nxt-table-sub th" 로 적어 그 규칙에 졌다 - 굵게 나왔다) */
.nxt-light .nxt-table tbody.nxt-table-sub th{font-weight:400;color:var(--nxt-text-2)}
/* 줄을 펼치는 단추(연도별 → 월별) : <th scope="row"><button type="button" class="nxt-rowtoggle" aria-expanded="false" aria-controls="y1"><i class="bi bi-chevron-right" aria-hidden="true"></i>1년차</button></th> */
.nxt-light .nxt-rowtoggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:-10px 0 -10px -8px;padding:0 8px;border:0;border-radius:var(--nxt-r);background:none;color:var(--nxt-text);font:inherit;font-weight:700;cursor:pointer}
.nxt-light .nxt-rowtoggle:hover{color:var(--nxt-primary)}
.nxt-light .nxt-rowtoggle>.bi{font-size:13px;color:var(--nxt-text-3);transition:transform .2s ease}
.nxt-light .nxt-rowtoggle[aria-expanded="true"]>.bi{transform:rotate(90deg)}
@media (max-width:600px){
	.nxt-light .nxt-table-stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
	.nxt-light .nxt-table-stack,
	.nxt-light .nxt-table-stack tbody,
	.nxt-light .nxt-table-stack tr,
	.nxt-light .nxt-table-stack th,
	.nxt-light .nxt-table-stack td{display:block}
	.nxt-light .nxt-table-stack tr{padding:10px 12px;border-bottom:1px solid var(--nxt-line)}
	.nxt-light .nxt-table-stack tbody:last-child>tr:last-child{border-bottom:0}
	.nxt-light .nxt-table-stack th,
	.nxt-light .nxt-table-stack td{padding:2px 0;border:0;background:none;text-align:left;white-space:normal}
	.nxt-light .nxt-table-stack td{display:flex;justify-content:space-between;gap:12px;text-align:right}
	.nxt-light .nxt-table-stack td::before{content:attr(data-th);flex:none;color:var(--nxt-text-3);text-align:left}
	.nxt-light .nxt-table-stack tr[aria-current="true"]{background:var(--nxt-tint)}
}

/* ---------- 꺾은선 차트 ----------
   글자(축 값 · 날짜)는 HTML 이고 선만 SVG 다 - SVG 를 칸에 맞춰 늘려도 글자가 찌그러지지 않는다.
   <div class="nxt-chart">
     <div class="nxt-chart-y" aria-hidden="true"><span>1,355</span>…위에서 아래로…</div>
     <div class="nxt-chart-plot"><svg viewBox="0 0 568 180" preserveAspectRatio="none" role="img" aria-label="…">
         <path class="nxt-chart-grid" d="…"/><path class="nxt-chart-area" d="…"/><path class="nxt-chart-line" d="…"/></svg>
       <span class="nxt-chart-dot" style="left:100%;top:64%" aria-hidden="true"></span></div>
     <div class="nxt-chart-x" aria-hidden="true"><span>9.14</span>…</div>
   </div>
   세로축 : 보이는 기간의 최저 · 최고에 위아래 여유(값 폭의 10% 이상)를 두고 끝을 보기 좋은 수로 맞춘다. 0 에서 시작하지 않는다. 눈금 4줄.
   색 : 선 --nxt-series-1 2px, 아래 채움은 같은 색 8%, 격자 --nxt-line, 축 글자 --nxt-text-3 13px. 값은 아래 "값 표"(details)로도 준다. */
.nxt-light .nxt-chart{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;min-width:0;padding-top:8px}
.nxt-light .nxt-chart-y{display:flex;flex-direction:column;justify-content:space-between;height:200px;font-size:13px;font-variant-numeric:tabular-nums;text-align:right;color:var(--nxt-text-3)}
.nxt-light .nxt-chart-y>span{height:0;line-height:0}
.nxt-light .nxt-chart-plot{position:relative;min-width:0;height:200px}
.nxt-light .nxt-chart-plot>svg{display:block;width:100%;max-width:none;height:100%;overflow:visible}
.nxt-light .nxt-chart-grid{fill:none;stroke:var(--nxt-line);stroke-width:1;vector-effect:non-scaling-stroke}
.nxt-light .nxt-chart-area{fill:var(--nxt-series-1);fill-opacity:.08;stroke:none}
.nxt-light .nxt-chart-line{fill:none;stroke:var(--nxt-series-1);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.nxt-light .nxt-chart-dot{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border:2px solid var(--nxt-panel);border-radius:50%;background:var(--nxt-series-1)}
.nxt-light .nxt-chart-x{grid-column:2;display:flex;justify-content:space-between;font-size:13px;font-variant-numeric:tabular-nums;color:var(--nxt-text-3)}
/* 등락 : <span class="nxt-delta" data-dir="down"><i class="bi bi-caret-down-fill" aria-hidden="true"></i>4.70원 (-0.35%)</span>   data-dir = up | down | flat */
.nxt-light .nxt-delta{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--nxt-text-2)}
.nxt-light .nxt-delta[data-dir="up"]{color:var(--nxt-up)}
.nxt-light .nxt-delta[data-dir="down"]{color:var(--nxt-down)}
/* 값 표 접이식 : <details class="nxt-fold"><summary>값 표 보기<i class="bi bi-chevron-down" aria-hidden="true"></i></summary>…</details> */
.nxt-light .nxt-fold{min-width:0;border:1px solid var(--nxt-line);border-radius:10px}
.nxt-light .nxt-fold>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:6px 14px;border-radius:10px;font-size:14px;font-weight:700;color:var(--nxt-text);cursor:pointer;list-style:none}
.nxt-light .nxt-fold>summary::-webkit-details-marker{display:none}
.nxt-light .nxt-fold>summary:hover{background:var(--nxt-soft)}
.nxt-light .nxt-fold>summary>.bi{flex:none;font-size:14px;color:var(--nxt-text-3);transition:transform .2s ease}
.nxt-light .nxt-fold[open]>summary>.bi{transform:rotate(180deg)}
.nxt-light .nxt-fold>summary:focus-visible{outline-offset:-3px}
.nxt-light .nxt-fold-body{padding:4px 14px 14px}

/* ==========================================================================================
   ③-5 토스트 · 확인창 · 선택 창
   ========================================================================================== */
/* ---------- 토스트 ---------- 한 종류. 방금 한 행동의 확인만.
   <div class="nxt-toasts" aria-live="polite"><div class="nxt-toast">복사했습니다.</div>
     <div class="nxt-toast">입력을 처음으로 돌렸습니다.<button type="button" class="nxt-toast-act">되돌리기</button></div></div>
   확인 2.4초 / 되돌리기가 있으면 5초(포커스 · 포인터가 올라가 있는 동안 멈춘다). 화면 아래 가운데, 결과 막대가 떠 있으면 그 위. */
.nxt-light .nxt-toasts{position:fixed;left:16px;right:16px;bottom:24px;z-index:var(--nxt-z-overlay,1000);display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}
.nxt-light .nxt-toast{display:flex;align-items:center;gap:8px;max-width:100%;min-height:48px;padding:2px 18px;border-radius:12px;background:var(--nxt-inverse);color:#fff;font-size:14px;font-weight:700;line-height:1.4;box-shadow:var(--nxt-shadow-pop);pointer-events:auto}
.nxt-light .nxt-toast-act{flex:none;min-height:44px;margin:0 -10px 0 4px;padding:0 10px;border:0;border-radius:var(--nxt-r);background:none;color:#fff;font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.nxt-light .nxt-toast-act:hover{background:rgba(255,255,255,.14)}
@media (max-width:900px){
	.nxt-light[data-nxt-bar="on"] .nxt-toasts{bottom:calc(var(--nxt-bar-h) + 12px + env(safe-area-inset-bottom,0px))}
}

/* ---------- 확인창 ---------- 큰 작업물을 지울 때만(픽셀 · 배경 제거의 [다른 이미지] · [전체 리셋], 캔버스 템플릿). 그 밖의 지우기는 즉시 + 되돌리기 토스트.
   <div class="nxt-backdrop" hidden><div class="nxt-dialog" role="alertdialog" aria-modal="true" aria-labelledby="t" aria-describedby="d">
     <h2 class="nxt-dialog-title" id="t">작업 중인 이미지를 지울까요?</h2><p class="nxt-dialog-body" id="d">…</p>
     <div class="nxt-dialog-actions"><button type="button" class="nxt-btn">취소</button><button type="button" class="nxt-btn nxt-btn-danger">지우고 새로 올리기</button></div></div></div>
   확인 단추는 하는 일을 적는다("확인" 금지). 열면 [취소]에 포커스, Esc = 취소, 닫으면 연 단추로 포커스. */
.nxt-light .nxt-backdrop{position:fixed;inset:0;z-index:var(--nxt-z-overlay,1000);display:grid;place-items:center;padding:16px;background:var(--nxt-scrim)}
.nxt-light .nxt-dialog{width:100%;max-width:400px;max-height:calc(100vh - 32px);overflow-y:auto;padding:24px;border-radius:16px;background:var(--nxt-panel);color:var(--nxt-text);box-shadow:var(--nxt-shadow-pop);text-align:left}
.nxt-light .nxt-dialog-title{margin:0 0 8px;font-size:18px;font-weight:700;line-height:1.4}
.nxt-light .nxt-dialog-body{margin:0 0 20px;font-size:15px;line-height:1.6;color:var(--nxt-text-2)}
.nxt-light .nxt-dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}

/* ---------- 선택 창 ---------- 많은 것 중 하나 고르기(통화 22개). PC = 가운데 창 / 600px 이하 = 아래 시트
   <div class="nxt-backdrop" hidden><div class="nxt-dialog nxt-picker" role="dialog" aria-modal="true" aria-labelledby="t">
     <div class="nxt-picker-head"><h2 class="nxt-dialog-title" id="t">통화 고르기</h2><button type="button" class="nxt-icon-btn" aria-label="닫기">…</button></div>
     <div class="nxt-picker-top"> 빠른 칩 줄(.nxt-chips) + 검색(.nxt-input) </div>
     <ul class="nxt-picker-list" role="listbox" aria-label="전체 통화"><li class="nxt-picker-item" role="option" aria-selected="true" tabindex="0">…</li>…</ul></div></div>
   위아래 화살표 · Enter · Esc. 검색 칸 자동 포커스는 PC 에서만(모바일은 키보드가 목록을 가린다). */
.nxt-light .nxt-picker{display:flex;flex-direction:column;max-width:480px;height:640px;max-height:calc(100vh - 32px);padding:0;overflow:hidden}
.nxt-light .nxt-picker-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 8px 4px 20px}
.nxt-light .nxt-picker-head>.nxt-dialog-title{margin:0}
.nxt-light .nxt-picker-top{flex:none;display:grid;gap:12px;padding:4px 20px 12px;border-bottom:1px solid var(--nxt-line)}
.nxt-light .nxt-picker-top>.nxt-chips{margin:0}
.nxt-light .nxt-picker-list{flex:1 1 auto;min-height:0;margin:0;padding:8px;overflow-y:auto;list-style:none}
.nxt-light .nxt-picker-item{display:flex;align-items:center;gap:12px;min-height:52px;padding:6px 12px;border-radius:var(--nxt-r);font-size:15px;color:var(--nxt-text);cursor:pointer}
.nxt-light .nxt-picker-item:hover{background:var(--nxt-soft)}
.nxt-light .nxt-picker-item:focus-visible{outline-offset:-3px}
.nxt-light .nxt-picker-item[aria-selected="true"]{background:var(--nxt-tint);font-weight:700}
.nxt-light .nxt-picker-item>.nxt-picker-sub{margin-left:auto;font-size:14px;font-weight:400;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--nxt-text-3)}
.nxt-light .nxt-picker-item>.bi{flex:none;width:16px;color:var(--nxt-primary)}
.nxt-light .nxt-picker-item[aria-selected="false"]>.bi{visibility:hidden}
/* 항목을 단추로 쓸 때 (Tab 으로 항목마다 닿게 - 환율의 통화 고르기) : 고른 것은 aria-pressed="true". 모양은 위의 li[role=option] 꼴과 같다
   <ul class="nxt-picker-list"><li><button type="button" class="nxt-picker-item" aria-pressed="true">…<i class="bi bi-check-lg" aria-hidden="true"></i></button></li>…</ul> */
.nxt-light .nxt-picker-list>li:not(.nxt-picker-item){margin:0;padding:0}
.nxt-light button.nxt-picker-item{width:100%;margin:0;border:0;background:none;font:inherit;font-size:15px;line-height:1.4;text-align:left}
.nxt-light button.nxt-picker-item:hover{background:var(--nxt-soft)}
.nxt-light .nxt-picker-item[aria-pressed="true"]{background:var(--nxt-tint);font-weight:700}
.nxt-light .nxt-picker-item[aria-pressed="false"]>.bi{visibility:hidden}
/* 통화 코드 배지 (국기 이모지 대신) : <span class="nxt-code">USD</span> */
.nxt-light .nxt-code{flex:none;display:inline-grid;place-items:center;min-width:46px;height:26px;padding:0 6px;border:1px solid var(--nxt-line-dk);border-radius:6px;background:var(--nxt-soft);color:var(--nxt-text-2);font-size:13px;font-weight:700;letter-spacing:.02em;line-height:1}
@media (max-width:600px){
	.nxt-light .nxt-backdrop-sheet{place-items:end stretch;padding:0}
	.nxt-light .nxt-backdrop-sheet>.nxt-picker{max-width:none;height:80vh;max-height:640px;border-radius:16px 16px 0 0}
	.nxt-light .nxt-backdrop-sheet>.nxt-picker::before{content:"";flex:none;align-self:center;width:36px;height:4px;margin:8px 0 0;border-radius:2px;background:var(--nxt-line-dk)}
}

/* ==========================================================================================
   ③-6 기록 목록 · 저장 카드 줄 · 불러오기
   ========================================================================================== */
/* ---------- 기록 목록 (로또 · D-Day 공용) ----------
   <div class="nxt-history"><div class="nxt-history-head"><h3 class="nxt-history-title">추첨 기록 <span>3</span></h3><button type="button" class="nxt-btn nxt-btn-ghost">전체 삭제</button></div>
     <ul class="nxt-history-list"><li class="nxt-history-item">
        <button type="button" class="nxt-history-main">(누르면 불러오는 목록만 button, 아니면 div) <span class="nxt-history-name">…</span><span class="nxt-history-sub">…</span></button>
        <span class="nxt-badge">D-72</span><button type="button" class="nxt-icon-btn" aria-label="크리스마스 삭제">…</button></li></ul>
     <p class="nxt-hint">이 브라우저에만 저장됩니다.</p></div>
   줄 삭제 · 전체 삭제 = 즉시 + 되돌리기 토스트(5초). 비면 <p class="nxt-history-none">. */
.nxt-light .nxt-history{min-width:0}
.nxt-light .nxt-history-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;margin:0 0 4px}
.nxt-light .nxt-history-title{margin:0;font-size:15px;font-weight:700;color:var(--nxt-text)}
.nxt-light .nxt-history-title>span{margin-left:4px;font-weight:400;color:var(--nxt-text-3)}
.nxt-light .nxt-history-list{margin:0;padding:0;border:1px solid var(--nxt-line);border-radius:10px;list-style:none}
.nxt-light .nxt-history-item{display:flex;align-items:center;gap:8px;min-height:56px;padding:0 4px 0 0;border-top:1px solid var(--nxt-line)}
.nxt-light .nxt-history-item:first-child{border-top:0}
/* 줄의 꼬리표 : 줄어들지 않는다. 뒤에 삭제 단추가 없는 목록(돌림판의 최근 결과)에서는 줄의 오른쪽 안 여백(4px - 삭제 단추 기준)이 좁아 꼬리표를 띄운다 */
.nxt-light .nxt-history-item>.nxt-badge{flex:none}
.nxt-light .nxt-history-item>.nxt-badge:last-child{margin-right:10px}
.nxt-light .nxt-history-main{flex:1 1 auto;display:grid;gap:2px;min-width:0;min-height:56px;margin:0;padding:8px 8px 8px 14px;border:0;border-radius:10px;background:none;color:inherit;font:inherit;text-align:left;align-content:center}
.nxt-light button.nxt-history-main{cursor:pointer}
.nxt-light button.nxt-history-main:hover{background:var(--nxt-soft)}
.nxt-light button.nxt-history-main:focus-visible{outline-offset:-3px}
.nxt-light .nxt-history-name{font-size:15px;font-weight:700;color:var(--nxt-text)}
.nxt-light .nxt-history-sub{font-size:13px;color:var(--nxt-text-3)}
.nxt-light .nxt-history-none{margin:0;padding:20px 14px;border:1px dashed var(--nxt-line-dk);border-radius:10px;font-size:14px;text-align:center;color:var(--nxt-text-3)}

/* ---------- 저장 카드 줄 (D-Day : 본문 맨 위. 저장한 것이 있을 때만) ----------
   <section class="nxt-saved" aria-labelledby="…"><div class="nxt-history-head">…</div>
     <ul class="nxt-saved-list"><li class="nxt-saved-card"><button type="button" class="nxt-saved-load">이름 · 값 · 날짜</button><button type="button" class="nxt-icon-btn nxt-saved-del" aria-label="… 삭제">…</button></li></ul></section>
   카드를 누르면 제목 · 날짜 · 모드가 입력칸에 들어간다. 넘치면 줄 안에서 가로로 굴린다. */
.nxt-light .nxt-saved{min-width:0;margin:0 0 var(--nxt-gap)}
.nxt-light .nxt-saved-list{display:flex;gap:12px;margin:0;padding:4px;overflow-x:auto;list-style:none}
.nxt-light .nxt-saved-card{position:relative;flex:0 0 208px;min-width:0;border:1px solid var(--nxt-line);border-radius:12px;background:var(--nxt-panel)}
.nxt-light .nxt-saved-load{display:grid;gap:2px;width:100%;min-height:104px;margin:0;padding:12px 44px 12px 14px;border:0;border-radius:12px;background:none;color:inherit;font:inherit;text-align:left;align-content:start;cursor:pointer}
.nxt-light .nxt-saved-load:hover{background:var(--nxt-tint)}
.nxt-light .nxt-saved-name{font-size:14px;color:var(--nxt-text-2)}
.nxt-light .nxt-saved-num{font-size:24px;font-weight:700;line-height:1.3;font-variant-numeric:tabular-nums;color:var(--nxt-primary)}
.nxt-light .nxt-saved-date{font-size:13px;color:var(--nxt-text-3)}
.nxt-light .nxt-saved-del{position:absolute;top:0;right:0}
.nxt-light .nxt-saved-card[aria-current="true"]{border-color:var(--nxt-primary);box-shadow:inset 0 0 0 1px var(--nxt-primary)}

/* ---------- 불러오는 중 · 실패 (환율 · 로또 공용) ----------
   <div class="nxt-state" role="status"><span class="nxt-spinner" aria-hidden="true"></span><p>환율을 불러오는 중입니다.</p></div>
   <div class="nxt-state nxt-state-fail" role="alert"><i class="bi bi-exclamation-circle" aria-hidden="true"></i><p>환율을 불러오지 못했습니다.</p><button type="button" class="nxt-btn">다시 시도</button></div> */
.nxt-light .nxt-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:200px;padding:24px 16px;text-align:center}
.nxt-light .nxt-state>p{margin:0;font-size:15px;line-height:1.6;color:var(--nxt-text-2)}
.nxt-light .nxt-state>.bi{font-size:28px;line-height:1;color:var(--nxt-danger)}
.nxt-light .nxt-spinner{display:block;width:32px;height:32px;border:3px solid var(--nxt-tint-line);border-top-color:var(--nxt-primary);border-radius:50%;animation:nxt-spin .9s linear infinite}
@keyframes nxt-spin{to{transform:rotate(360deg)}}
/* 움직임 줄이기 : 돌지 않는다(모양은 남아 "기다리는 중"임을 알린다 - 옆에 글이 있다). 기본 틀은 theme-daegu.css 가 이미 멈추지만 틀이 달라도 도구가 스스로 멈추게 여기에도 둔다 */
@media (prefers-reduced-motion:reduce){
	.nxt-light .nxt-spinner{animation:none}
}

/* ==========================================================================================
   ③-7 모바일 결과 막대  (900px 이하의 P1 · P1-L 만)
   ========================================================================================== */
/* <div class="nxt-resultbar" role="region" aria-label="결과 요약" hidden>
     <p class="nxt-resultbar-text"><span class="nxt-resultbar-label">월 상환액</span><strong class="nxt-resultbar-value">506,685원</strong></p>
     <a class="nxt-btn nxt-resultbar-go" href="#결과 패널 id">자세히<i class="bi bi-chevron-down" aria-hidden="true"></i></a></div>
   높이 60px(+ 아래 안전 영역), 층 40(틀 헤더 50 · 서랍 덮개 65 아래), 화면 아래에 붙는다.
   숨는 조건(hidden) : ① 결과가 없다 ② 결과 패널이 화면에 20% 이상 보인다 ③ 안내 본문이 화면에 들어왔거나 지나갔다
                       ④ 선택 창 · 확인창이 열렸다 ⑤ 901px 이상(CSS)
   떠 있는 동안 뿌리에 data-nxt-bar="on" (토스트가 그 위로 올라간다). 낭독기 알림 대상이 아니다(결과 패널의 알림과 겹친다). */
.nxt-light .nxt-resultbar{display:none}
@media (max-width:900px){
	.nxt-light .nxt-resultbar{position:fixed;left:0;right:0;bottom:0;z-index:var(--nxt-z-bar);display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--nxt-bar-h);
		padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px)) 16px;border-top:1px solid var(--nxt-line-dk);background:var(--nxt-panel);box-shadow:var(--nxt-shadow-bar)}
	.nxt-light .nxt-resultbar-text{display:grid;min-width:0;margin:0}
	.nxt-light .nxt-resultbar-label{font-size:13px;line-height:1.3;color:var(--nxt-text-3)}
	.nxt-light .nxt-resultbar-value{font-size:var(--nxt-num-md);font-weight:700;line-height:1.3;font-variant-numeric:tabular-nums;color:var(--nxt-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
	.nxt-light .nxt-resultbar-go{flex:none;padding:8px 12px;font-size:14px}
}

/* ==========================================================================================
   ③-8 무대 주 단추 · 상태 안내 · 단계 표시 · 진행 막대  (P2 · P3 공용)
   ========================================================================================== */
/* ---------- 무대 ----------
   <section class="nxt-panel nxt-stage nxt-sticky">
     <p class="nxt-stage-status" role="status"><i class="bi bi-hand-index" aria-hidden="true"></i>이름을 눌러 내려가 보세요 · 남은 2명</p>
     <div class="nxt-stage-area"> 판 · 추첨기 · 카드 </div>
     <div class="nxt-stage-run">
       <button type="button" class="nxt-btn nxt-btn-primary nxt-btn-lg nxt-stage-main">돌리기</button>
       <button type="button" class="nxt-btn nxt-btn-lg nxt-stage-skip" hidden>바로 결과 보기</button></div>
     <p class="nxt-stage-result" aria-live="polite">결과: 국밥</p>
     <div class="nxt-actions">…</div></section>
   주 단추 3상태 : 기본 "돌리기" → 진행 중 aria-busy="true" + aria-disabled="true" "돌리는 중…" → 끝 "한 번 더". 자리는 판 바로 아래 고정.
   [바로 결과 보기]는 진행 중에만 hidden 을 뗀다. 무대 바탕 : 카드는 흰색, 판이 놓이는 곳(.nxt-stage-area)은 옅은 파랑. */
.nxt-light .nxt-stage{display:flex;flex-direction:column;align-items:stretch;gap:12px;background:var(--nxt-panel)}
.nxt-light .nxt-stage-status{display:flex;align-items:center;justify-content:center;gap:8px;min-height:24px;margin:0;font-size:15px;font-weight:700;line-height:1.5;text-align:center;color:var(--nxt-text-2)}
.nxt-light .nxt-stage-status>.bi{flex:none;color:var(--nxt-primary)}
/* 받침의 높이는 판이 정한다(최소 높이 없음). min-height:0 을 적어 둔다 - 빼면 tool-common.css ⑦ 의 260px 가 비친다. (시안 노트 B 7절 2) */
.nxt-light .nxt-stage-area{display:grid;place-items:center;width:100%;min-height:0;padding:16px;border-radius:12px;background:var(--nxt-tint)}
.nxt-light .nxt-stage-run{display:flex;flex-wrap:wrap;gap:8px}
/* 바탕 폭 120px : 보조 단추([바로 결과 보기] 등)가 옆에 서도 둘째 줄로 떨어지지 않는다. 남는 폭은 주 단추가 다 쓴다. (시안 노트 B 7절 3) */
.nxt-light .nxt-stage-main{flex:1 1 120px}
.nxt-light .nxt-stage-main[aria-busy="true"]{opacity:1;border-color:var(--nxt-tint-line);background:var(--nxt-tint);color:var(--nxt-primary-dk);cursor:progress}
.nxt-light .nxt-stage-skip{flex:0 1 auto}
.nxt-light .nxt-stage-result{min-height:36px;margin:0;font-size:24px;font-weight:700;line-height:1.5;text-align:center;color:var(--nxt-text)}
.nxt-light .nxt-btn>.nxt-spinner{width:18px;height:18px;border-width:2px}

/* ---------- 단계 표시 3칸 (P3 공용) ----------
   <ol class="nxt-steps" aria-label="진행 단계">
     <li data-done="true"><span class="nxt-step-n"><i class="bi bi-check-lg" aria-hidden="true"></i></span>올리기<span class="sr-only"> (끝남)</span></li>
     <li aria-current="step"><span class="nxt-step-n">2</span>남길 부분</li>
     <li><span class="nxt-step-n">3</span>결과</li></ol>
   끝난 칸을 눌러 그 단계로 돌아가게 할 때는 칸 안에 button.nxt-step-btn 을 둔다 - 그 규칙은 tool-p3.css ③-1 (시안 노트 C 3절 · 14절 5). */
.nxt-light .nxt-steps{display:flex;gap:8px;margin:0 0 var(--nxt-gap);padding:0;list-style:none}
.nxt-light .nxt-steps>li{flex:1 1 0;display:flex;align-items:center;gap:8px;min-width:0;min-height:44px;padding:6px 12px;border:1px solid var(--nxt-line-dk);border-radius:var(--nxt-r);background:var(--nxt-panel);font-size:14px;line-height:1.3;color:var(--nxt-text-3)}
.nxt-light .nxt-step-n{flex:none;display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--nxt-field-line);border-radius:50%;font-size:13px;font-weight:700;line-height:1;color:var(--nxt-text-3)}
.nxt-light .nxt-steps>li[data-done="true"]{color:var(--nxt-text-2)}
.nxt-light .nxt-steps>li[data-done="true"]>.nxt-step-n{border-color:var(--nxt-primary);background:var(--nxt-tint);color:var(--nxt-primary)}
.nxt-light .nxt-steps>li[aria-current="step"]{border-color:var(--nxt-primary);box-shadow:inset 0 0 0 1px var(--nxt-primary);background:var(--nxt-tint);color:var(--nxt-primary-dk);font-weight:700}
.nxt-light .nxt-steps>li[aria-current="step"]>.nxt-step-n{border-color:var(--nxt-primary);background:var(--nxt-primary);color:#fff}
@media (max-width:600px){
	.nxt-light .nxt-steps{gap:4px}
	.nxt-light .nxt-steps>li{flex-direction:column;gap:4px;padding:8px 4px;font-size:13px;text-align:center}
}

/* 진행 막대 (전역일 복무율 · 처리 진행) :
   <div class="nxt-progress"><p class="nxt-progress-head"><span>복무율</span><strong>51.81560%</strong></p>
     <div class="nxt-progress-track" role="progressbar" aria-label="복무율" aria-valuemin="0" aria-valuemax="100" aria-valuenow="52"><span style="width:51.82%"></span></div>
     <p class="nxt-progress-ends"><span>입대 2026.01.05</span><span>전역 2027.07.04</span></p></div> */
.nxt-light .nxt-progress{min-width:0;padding:12px 14px;border:1px solid var(--nxt-line);border-radius:10px}
.nxt-light .nxt-progress-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 8px;font-size:14px;color:var(--nxt-text-2)}
.nxt-light .nxt-progress-head>strong{font-size:var(--nxt-num-md);font-weight:700;font-variant-numeric:tabular-nums;color:var(--nxt-text)}
.nxt-light .nxt-progress-track{height:12px;border-radius:6px;background:var(--nxt-line-dk);overflow:hidden}
.nxt-light .nxt-progress-track>span{display:block;height:100%;border-radius:6px;background:var(--nxt-primary)}
.nxt-light .nxt-progress-ends{display:flex;justify-content:space-between;gap:12px;margin:6px 0 0;font-size:13px;font-variant-numeric:tabular-nums;color:var(--nxt-text-3)}

/* ==========================================================================================
   ③-9 저장 이미지 카드 · 안내 본문
   ========================================================================================== */
/* ---------- 저장 이미지 카드 ---------- [이미지로 저장]이 찍는 틀. 16개 공용, 밝은 카드 하나.
   폭 720px 고정(화면 밖에서 그린다) · 높이는 내용만큼 · 배율 2 로 찍어 1440px 폭 PNG. 여백 40px. 굵기 400 / 700 만. 모서리는 각지게(찍힌 그림에 바탕이 비치지 않게).
   <div class="nxt-shot">
     <div class="nxt-shot-head"><span class="nxt-shot-ico"><i class="bi bi-bank"></i></span><strong>대출이자 계산기</strong><span>2026.10.14 (수)</span></div>
     <div class="nxt-hero">…화면의 주 결과 그대로…</div>
     <dl class="nxt-stats">…</dl>  (상세는 .nxt-rows 6줄까지)
     <div class="nxt-shot-foot"><strong>sols</strong><span>계산 결과는 참고용입니다.</span></div></div>
   파일 이름 : sols-{도구}-{yyyymmdd}.png */
.nxt-light .nxt-shot{display:grid;gap:16px;width:720px;padding:40px;border:1px solid var(--nxt-line);border-radius:0;background:var(--nxt-panel);color:var(--nxt-text)}
.nxt-light .nxt-shot-head{display:flex;align-items:center;gap:12px;font-size:15px;color:var(--nxt-text-3)}
.nxt-light .nxt-shot-head>strong{margin-right:auto;font-size:20px;font-weight:700;color:var(--nxt-text)}
.nxt-light .nxt-shot-ico{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--nxt-primary);color:#fff;font-size:20px;line-height:1}
.nxt-light .nxt-shot .nxt-hero{padding:32px 24px}
.nxt-light .nxt-shot .nxt-hero-label{font-size:18px}
.nxt-light .nxt-shot .nxt-hero-pre{font-size:22px}
/* 주 결과가 숫자가 아니라 긴 글이면(제비뽑기의 항목 이름 등) 카드 안에서 줄을 바꾼다 - 화면의 한 줄 고정(nowrap)을 저장 카드에서는 푼다.
   금액은 카드 폭(안쪽 592px)보다 짧아 전처럼 한 줄이다. 글 결과의 글자 크기는 도구 CSS 가 줄인다(lottery-draw.css) */
.nxt-light .nxt-shot .nxt-hero-num{font-size:56px;white-space:normal;overflow-wrap:anywhere}
.nxt-light .nxt-shot .nxt-hero-cond{margin-top:12px;font-size:16px}
.nxt-light .nxt-shot .nxt-stat>dt{font-size:15px}
.nxt-light .nxt-shot .nxt-stat>dd{font-size:24px}
.nxt-light .nxt-shot-foot{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-top:16px;border-top:1px solid var(--nxt-line);font-size:14px;color:var(--nxt-text-3)}
/* 저장 카드의 증빙 칸(spec.proof) : 항목 · 결과가 길어도 이름표가 눌리지 않고 값이 줄을 바꾼다 */
.nxt-light .nxt-shot-proof dt{flex:none}
.nxt-light .nxt-shot-proof dd{min-width:0;font-size:15px;font-weight:600;overflow-wrap:anywhere}
.nxt-light .nxt-shot-foot>strong{font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--nxt-primary)}

/* ---------- 안내 본문 ---------- 순서 : 3줄 요약(늘 보임) → 기준 · 근거 → 자주 묻는 질문(접이식) → 관련 도구 → 주의
   <section class="nxt-guide" aria-labelledby="g">
     <h2 id="g">사용 안내</h2>
     <dl class="nxt-guide-sum"><div><dt>무엇을</dt><dd>…</dd></div><div><dt>어떻게</dt><dd>…</dd></div><div><dt>기준</dt><dd>…</dd></div></dl>
     <h3>…</h3><p>…</p>
     <h2>자주 묻는 질문</h2>
     <details class="nxt-faq"><summary>질문<i class="bi bi-chevron-down" aria-hidden="true"></i></summary><div class="nxt-faq-body"><p>…</p></div></details>
     <p class="nxt-related"><span>관련 도구</span><a class="nxt-chip nxt-chip-ex" data-nxt-tool="salary-calculator" href="…">연봉 실수령액</a>…</p>
     <p class="nxt-guide-note">…</p></section>
   본문 문장은 화면의 실제 기능 · 단추 이름과 같아야 한다. */
.nxt-light .nxt-guide{min-width:0;margin:var(--nxt-gap) 0 0;padding:28px var(--nxt-pad);border:1px solid var(--nxt-line);border-radius:var(--nxt-r-panel);background:var(--nxt-panel);color:var(--nxt-text);line-height:1.75}
/* 본문 폭 : 패널 폭을 다 쓴다(2026.10.14 사용자 지적 - 72ch 로 묶었더니 넓은 화면에서 오른쪽이 비었다) */
.nxt-light .nxt-guide h2{margin:0 0 12px;padding:0;border:0;font-size:19px;font-weight:700;letter-spacing:-.01em;line-height:1.4;color:var(--nxt-text)}
.nxt-light .nxt-guide>h2:not(:first-child){max-width:none;margin-top:28px;padding-top:24px;border-top:1px solid var(--nxt-line)}
.nxt-light .nxt-guide h3{margin:20px 0 6px;font-size:16px;font-weight:700;line-height:1.5;color:var(--nxt-primary-dk)}
.nxt-light .nxt-guide p{margin:0 0 10px;font-size:15px;color:var(--nxt-text-2)}
.nxt-light .nxt-guide strong{font-weight:700;color:var(--nxt-text)}
.nxt-light .nxt-guide code{padding:2px 6px;border:1px solid var(--nxt-line);border-radius:4px;background:var(--nxt-soft);font-family:Consolas,'D2Coding',monospace;font-size:14px;color:var(--nxt-text)}
/* 목록 · 링크 (관련 도구 줄의 칩 링크는 빼고) */
.nxt-light .nxt-guide ul,
.nxt-light .nxt-guide ol{margin:0 0 10px;padding-left:20px;font-size:15px;color:var(--nxt-text-2)}
.nxt-light .nxt-guide li{margin:0 0 4px}
.nxt-light .nxt-guide li::marker{color:var(--nxt-primary)}
.nxt-light .nxt-guide a:not(.nxt-chip){color:var(--nxt-primary);text-decoration:underline;text-underline-offset:3px}
.nxt-light .nxt-guide a:not(.nxt-chip):hover{color:var(--nxt-primary-dk)}
/* 글 표 : <div class="nxt-table-wrap"><table class="nxt-table">…</table></div>
   .nxt-table 은 숫자 표다(첫 열만 왼쪽, 나머지 오른쪽 · 한 줄). 안내 본문의 표는 글이라 전부 왼쪽 정렬 + 줄바꿈이고 위아래를 띄운다 */
.nxt-light .nxt-guide .nxt-table-wrap{margin:12px 0}
.nxt-light .nxt-guide .nxt-table th,
.nxt-light .nxt-guide .nxt-table td{text-align:left;white-space:normal}
.nxt-light .nxt-guide-sum{display:grid;gap:0;margin:0;border:1px solid var(--nxt-line);border-radius:10px}
.nxt-light .nxt-guide-sum>div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;padding:10px 14px;border-top:1px solid var(--nxt-line)}
.nxt-light .nxt-guide-sum>div:first-child{border-top:0}
.nxt-light .nxt-guide-sum dt{margin:0;font-size:14px;font-weight:700;line-height:1.75;color:var(--nxt-primary-dk)}
.nxt-light .nxt-guide-sum dd{margin:0;font-size:15px;color:var(--nxt-text-2)}
.nxt-light .nxt-faq{margin:0 0 8px;border:1px solid var(--nxt-line);border-radius:10px}
.nxt-light .nxt-faq>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:8px 14px;border-radius:10px;font-size:15px;font-weight:700;line-height:1.5;color:var(--nxt-text);cursor:pointer;list-style:none}
.nxt-light .nxt-faq>summary::-webkit-details-marker{display:none}
.nxt-light .nxt-faq>summary:hover{background:var(--nxt-soft)}
.nxt-light .nxt-faq>summary:focus-visible{outline-offset:-3px}
.nxt-light .nxt-faq>summary>.bi{flex:none;font-size:14px;color:var(--nxt-text-3);transition:transform .2s ease}
.nxt-light .nxt-faq[open]>summary>.bi{transform:rotate(180deg)}
.nxt-light .nxt-faq-body{padding:2px 14px 6px}
/* 아래 둘은 p 다 - 위의 ".nxt-guide p" 보다 무겁게 적는다 */
.nxt-light .nxt-guide .nxt-related{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:20px 0 0}
.nxt-light .nxt-guide .nxt-related>span{margin-right:4px;font-size:14px;font-weight:700;color:var(--nxt-text)}
.nxt-light .nxt-guide .nxt-guide-note{margin:20px 0 0;padding:12px 14px;border-radius:var(--nxt-r);background:var(--nxt-soft);font-size:14px;line-height:1.7;color:var(--nxt-text-3)}
@media (max-width:900px){
	.nxt-light .nxt-guide{padding:20px var(--nxt-pad)}
}
@media (max-width:600px){
	.nxt-light .nxt-guide-sum>div{grid-template-columns:minmax(0,1fr);gap:0}
}

/* tool-parts.css : 이식 끝 (1A) */
