/* 인쇄도구(/print-tools.php, /print-tool-*.php). 모든 규칙은 .pt 안에만 적용한다.
   typography.css 의 :where(body *){font-size:inherit!important} 때문에 글자 크기에는 !important 를 붙인다. */
.pt{--pt-ink:#192338;--pt-muted:#526079;--pt-line:#e3e8f1;--pt-blue:#2456df;--pt-soft:#f5f8ff;--pt-bg:#f8fafc;color:var(--pt-ink)}
.pt *{box-sizing:border-box}
.pt-tabs{display:flex;gap:8px;overflow-x:auto;margin:0 0 24px;padding-bottom:4px;-webkit-overflow-scrolling:touch}
.pt-tabs a{flex:0 0 auto;display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border:1px solid var(--pt-line);border-radius:999px;background:#fff;color:var(--pt-muted);font-size:var(--text-label)!important;font-weight:500;white-space:nowrap;text-decoration:none}
.pt-tabs a:hover{border-color:#b9c7ea;color:var(--pt-ink)}
.pt-tabs a[aria-current=page]{border-color:var(--pt-blue);background:var(--pt-soft);color:var(--pt-blue);font-weight:600}
.pt-lead{max-width:760px;margin:0 0 28px;color:var(--pt-muted);font-size:var(--text-body)!important;line-height:1.7!important}

/* 목록 화면 */
.pt-group{margin:0 0 36px}
.pt-group>h2{margin:0 0 14px}
.pt-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.pt-card{display:flex;flex-direction:column;gap:6px;padding:24px;border:1px solid var(--pt-line);border-radius:12px;background:#fff;color:var(--pt-ink);text-decoration:none;transition:border-color .15s,box-shadow .15s}
.pt-card:hover{border-color:var(--pt-blue);box-shadow:0 8px 20px #1426461a}
.pt-card small{color:var(--pt-blue);font-size:var(--text-caption)!important;font-weight:600}
.pt-card b{font-size:var(--text-card)!important;font-weight:600;line-height:1.3!important}
.pt-card span{color:var(--pt-muted);font-size:var(--text-helper)!important;line-height:1.6!important}
.pt-card em{margin-top:8px;color:var(--pt-blue);font-style:normal;font-size:var(--text-label)!important;font-weight:600}
.pt-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 36px;padding:0;list-style:none}
.pt-points li{padding:16px 20px;border-radius:12px;background:var(--pt-bg);color:var(--pt-muted);font-size:var(--text-helper)!important;line-height:1.6!important}
.pt-points b{display:block;margin-bottom:2px;color:var(--pt-ink);font-size:var(--text-body)!important;font-weight:600}

/* 목록 화면: 도구 카드 5개를 한 줄에. 분류는 카드 안 작은 표시로 */
.pt-lead.is-hub{max-width:none;margin:0 0 20px}
.pt-lead.is-hub span{display:block;margin-top:4px;font-size:var(--text-helper)!important}
.pt-cards.is-hub{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin:0 0 36px}
.pt-cards.is-hub .pt-card{padding:14px 16px 18px}
.pt-thumb{display:block;margin:0 0 6px;border-radius:8px;background:var(--pt-bg);overflow:hidden;font-style:normal}
.pt-thumb svg{display:block;width:100%;height:auto;fill:none;stroke:none}
.pt-cards.is-hub .pt-card small{align-self:flex-start;padding:2px 10px;border-radius:999px;background:var(--pt-soft)}
/* 최근 계산 · 다른 도구로 이어 가기 */
.pt-recent,.pt-next{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 20px}
.pt-recent b,.pt-next>span{color:var(--pt-muted);font-size:var(--text-label)!important;font-weight:600}
.pt-recent a{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:4px 12px;border:1px solid var(--pt-line);border-radius:999px;background:#fff;color:var(--pt-ink);font-size:var(--text-helper)!important;text-decoration:none}
.pt-recent a:hover{border-color:var(--pt-blue);color:var(--pt-blue)}
.pt-recent a i{color:var(--pt-blue);font-style:normal;font-weight:600}
.pt-recent button{min-height:36px;padding:4px 6px;border:0;background:none;color:var(--pt-muted);font-size:var(--text-helper)!important;text-decoration:underline;cursor:pointer}
.pt-next .pt-btn{min-height:40px}

/* 도구 화면: 입력 | 결과 */
.pt-layout{display:grid;grid-template-columns:minmax(0,23rem) minmax(0,1fr);gap:24px;align-items:start}
.pt-panel{padding:24px;border:1px solid var(--pt-line);border-radius:12px;background:#fff}
.pt-panel>h2{margin:0 0 18px;font-size:var(--text-card)!important;font-weight:600!important}
.pt-panel>h2:not(:first-child){margin-top:28px;padding-top:24px;border-top:1px solid var(--pt-line)}
.pt-field{display:block;margin:0 0 20px}
.pt-field>span,.pt-field>legend{display:block;margin:0 0 8px;padding:0;color:var(--pt-muted);font-size:var(--text-label)!important;font-weight:500}
.pt-field input[type=number],.pt-field input[type=text],.pt-field select,.pt-field textarea{display:block;width:100%;border:1px solid #cfd8e6;border-radius:8px;background:#fff;color:var(--pt-ink)}
.pt-field input:focus,.pt-field select:focus,.pt-field textarea:focus{border-color:var(--pt-blue);outline:3px solid #2456df33;outline-offset:0}
.pt-field textarea{min-height:6rem!important}
.pt-field small{display:block;margin-top:6px;color:var(--pt-muted);font-size:var(--text-helper)!important;line-height:1.5!important}
fieldset.pt-field{border:0;padding:0;min-width:0}
.pt-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.pt-row.is-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pt-row .pt-field{margin-bottom:20px}
.pt-unit{position:relative;display:block}
.pt-unit input{padding-right:3rem!important}
.pt-unit i{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--pt-muted);font-style:normal;font-size:var(--text-helper)!important;pointer-events:none}
.pt-choices{display:flex;flex-wrap:wrap;gap:8px}
.pt-choices label{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border:1px solid #cfd8e6;border-radius:8px;background:#fff;color:var(--pt-ink);font-size:var(--text-label)!important;font-weight:500;cursor:pointer}
.pt-choices label:has(input:checked){border-color:var(--pt-blue);background:var(--pt-soft);color:var(--pt-blue);font-weight:600}
.pt-choices label:has(input:focus-visible){outline:3px solid #2456df55}
.pt [hidden]{display:none!important}

.pt-result>h2{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.pt-big{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 20px}
.pt-big>div{flex:1 1 9rem;padding:16px 18px;border-radius:12px;background:var(--pt-bg)}
.pt-big>div.is-main{background:var(--pt-soft)}
.pt-big dt,.pt-big .k{display:block;color:var(--pt-muted);font-size:var(--text-label)!important;font-weight:500}
.pt-big .v{display:block;margin-top:2px;font-size:var(--text-price)!important;font-weight:700;line-height:1.3!important;font-variant-numeric:tabular-nums}
.pt-big .is-main .v{color:var(--pt-blue);font-size:var(--text-total)!important}
.pt-big .v small{margin-left:3px;color:var(--pt-muted);font-size:var(--text-helper)!important;font-weight:500}
.pt-big .s{display:block;margin-top:2px;color:var(--pt-muted);font-size:var(--text-helper)!important}
.pt-figure{margin:0 0 20px;padding:16px;border:1px solid var(--pt-line);border-radius:12px;background:var(--pt-bg);overflow:hidden}
.pt-figure svg{display:block;width:100%;height:auto;max-height:560px;margin:0 auto;fill:none;stroke:none}
.pt-figure figcaption{margin-top:10px;color:var(--pt-muted);font-size:var(--text-helper)!important;text-align:center}
.pt-figure.is-white{background:#fff}
.pt-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.pt-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 16px;border:1px solid #cfd8e6;border-radius:8px;background:#fff;color:var(--pt-ink);font-size:var(--text-label)!important;font-weight:600!important;text-decoration:none;cursor:pointer}
.pt-btn:hover{border-color:var(--pt-blue);color:var(--pt-blue)}
.pt-btn.is-primary{min-height:48px;border-color:#2853df;background:#2853df;color:#fff;font-size:var(--text-action)!important}
.pt-btn.is-primary:hover{background:#1b42c5;color:#fff}
.pt-btn.is-done{border-color:#16794c;color:#16794c}
.pt-note{margin:0 0 20px;padding:12px 16px;border-radius:10px;background:#fff7ed;color:#8a3a0f;font-size:var(--text-helper)!important;line-height:1.6!important}
.pt-note.is-info{background:var(--pt-soft);color:#24439b}
.pt-note.is-error{background:#fff2f2;color:#a52c3d}
.pt-note.is-ok{background:#effaf3;color:#16663f}
.pt-table-wrap{max-width:100%;margin:0 0 20px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.pt-table{width:100%;border-collapse:collapse;font-size:var(--text-helper)!important}
.pt-table th,.pt-table td{padding:10px 12px;border-bottom:1px solid var(--pt-line);text-align:left;vertical-align:middle;white-space:nowrap}
.pt-table th{background:#f1f5f9;color:var(--pt-muted);font-weight:600}
.pt-table td.n,.pt-table th.n{text-align:right;font-variant-numeric:tabular-nums}
.pt-table tr.is-on td{background:var(--pt-soft);font-weight:600}
.pt-table tr[data-pick]{cursor:pointer}
.pt-table tr[data-pick]:hover td{background:#f8fafc}
.pt-table button{min-height:36px;padding:4px 10px;border:1px solid #cfd8e6;border-radius:6px;background:#fff;color:var(--pt-blue);font-size:var(--text-label)!important;cursor:pointer}
.pt-list{margin:0 0 20px;padding-left:20px;color:var(--pt-ink);font-size:var(--text-body)!important;line-height:1.7!important}
.pt-list li{margin-bottom:4px}

/* 설명 글 */
.pt-doc{max-width:820px;margin:44px 0 0}
.pt-doc h2{margin:32px 0 10px}
.pt-doc p,.pt-doc li{color:#334155;font-size:var(--text-body)!important;line-height:1.8!important}
.pt-doc ul,.pt-doc ol{margin:8px 0;padding-left:22px}
.pt-doc dl{margin:8px 0}
.pt-doc dt{margin-top:14px;color:var(--pt-ink);font-size:var(--text-body)!important;font-weight:600}
.pt-doc dd{margin:4px 0 0;color:#334155;font-size:var(--text-body)!important;line-height:1.8!important}

.pt-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin:44px 0 0;padding:24px;border-radius:12px;background:var(--pt-soft)}
.pt-cta b{display:block;font-size:var(--text-card)!important;font-weight:600}
.pt-cta span{display:block;margin-top:4px;color:var(--pt-muted);font-size:var(--text-helper)!important}
.pt-more{margin:44px 0 0}
.pt-more .pt-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.pt-more .pt-card{padding:18px}
.pt-more .pt-card b{font-size:var(--text-body)!important}

/* 쪽 배열 그림(대수 계산기) */
.pt-sig{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 20px}
.pt-sig figure{margin:0;padding:14px;border:1px solid var(--pt-line);border-radius:12px;background:var(--pt-bg)}
.pt-sig figcaption{margin-bottom:8px;color:var(--pt-muted);font-size:var(--text-label)!important;font-weight:600}
.pt-sig-grid{display:grid;gap:0;border:1px solid #94a3b8;background:#fff}
.pt-sig-grid span{display:flex;align-items:center;justify-content:center;aspect-ratio:1/1.25;border:1px dashed #cbd5e1;font-size:var(--text-card)!important;font-weight:700;font-variant-numeric:tabular-nums}
.pt-sig-grid span.is-flip{transform:rotate(180deg);color:#64748b}
.pt-sig-grid span.is-blank{color:#cbd5e1;font-weight:400;font-size:var(--text-helper)!important}

@media(max-width:79.999rem){.pt-cards.is-hub{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:47.999rem){.pt-cards.is-hub{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:35rem){
  .pt-cards.is-hub{grid-template-columns:1fr;gap:12px}
  .pt-cards.is-hub .pt-card{display:grid;grid-template-columns:6.5rem minmax(0,1fr);column-gap:14px;row-gap:4px;align-items:start;padding:14px}
  .pt-cards.is-hub .pt-thumb{grid-row:1/span 3;margin:0}
  .pt-cards.is-hub .pt-card small{justify-self:start}
}
/* 인쇄도구 화면에서는 오른쪽 아래 떠 있는 문자문의·개선 의견이 계산 화면을 가리지 않게 문자문의 단추만 작게 둔다.
   개선 의견은 꼬리말의 '사이트 개선 의견'으로 연다. (본문 폭 바깥에 자리가 남는 넓은 화면은 그대로) */
@media(min-width:48rem) and (max-width:100rem){
  body:has(.pt) .site-feedback:not(:has(details[open])){width:max-content}
  body:has(.pt) .site-feedback details:not([open]){display:none}
  body:has(.pt) .site-feedback .site-feedback-sms{width:auto;min-height:44px;margin:0;padding:8px 14px;gap:6px}
  body:has(.pt) .site-feedback .site-feedback-sms-more{display:none}
}
@media(max-width:63.999rem){
  .pt-layout{grid-template-columns:minmax(0,1fr)}
  .pt-cards,.pt-points{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pt-more .pt-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:35rem){
  .pt-cards,.pt-points,.pt-more .pt-cards,.pt-sig{grid-template-columns:1fr}
  .pt-panel{padding:20px}
  .pt-row.is-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
