.tool-icon.blue, .print-tool-header .tool-title-icon { background: #e6edf8; color: #315b8c; }
.print-loading { padding: 2rem; border: 1px dashed var(--line); border-radius: 1rem; color: var(--muted); text-align: center; }
.print-calculator-shell { border: 1px solid rgba(33,75,59,.1); border-radius: 1.7rem 1.7rem 1.7rem .65rem; background: rgba(252,253,249,.94); box-shadow: var(--shadow); overflow: hidden; }
.print-calculator-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(19rem, .95fr); min-height: 38rem; }
.print-price-form { padding: clamp(1.5rem, 4vw, 3rem); border-right: 1px solid var(--line); }
.print-form-heading { margin-bottom: 2rem; }
.print-form-heading > span { color: #315b8c; font-size: .68rem; font-weight: 750; letter-spacing: .16em; }
.print-form-heading h2 { margin: .45rem 0 .6rem; font-size: clamp(1.65rem, 3vw, 2.25rem); letter-spacing: -.04em; }
.print-form-heading p { margin: 0; color: var(--muted); font-size: .88rem; line-height: 1.7; }
.print-field { display: block; margin-bottom: 1.35rem; }
.print-field > span, .print-duration-field legend, .print-duration-field label > span { display: block; margin-bottom: .55rem; color: #464c47; font-size: .8rem; font-weight: 680; }
.print-field select { min-height: 3.35rem; }
.print-input-unit { display: flex; align-items: center; border: 1px solid var(--line-strong, #cbd1c8); border-radius: .72rem; background: rgba(255,255,255,.88); transition: border-color .2s, box-shadow .2s; }
.print-input-unit:focus-within { border-color: var(--green); box-shadow: var(--focus, 0 0 0 3px rgba(36,75,58,.08)); }
.print-input-unit input { width: 100%; min-width: 0; height: 3.2rem; padding: 0 .95rem; border: 0; outline: 0; background: transparent; }
.print-input-unit b { padding: 0 .95rem; color: var(--muted); font-size: .76rem; font-weight: 550; white-space: nowrap; }
.print-duration-field { margin: 0 0 1.35rem; padding: 0; border: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.print-duration-field legend { grid-column: 1 / -1; width: 100%; }
.print-current-rule { margin: .25rem 0 1.4rem; padding: 1rem 1.1rem; border-radius: .8rem; background: #edf2f8; display: grid; gap: .35rem; }
.print-current-rule span { color: #667486; font-size: .7rem; }
.print-current-rule strong { color: #294e79; font-size: .86rem; }
.print-current-rule i { font-style: normal; }
.print-submit { width: 100%; }
.print-submit:disabled { cursor: wait; opacity: .68; }
.print-price-result { padding: clamp(1.5rem, 4vw, 3rem); background: linear-gradient(145deg, #f7fafc, #edf2f6); display: grid; place-items: center; }
.print-result-empty, .print-result-error { max-width: 22rem; text-align: center; color: var(--muted); }
.print-result-empty > span { width: 4rem; height: 4rem; margin: 0 auto 1rem; border-radius: 1.2rem 1.2rem 1.2rem .42rem; background: #dfe8f3; color: #315b8c; display: grid; place-items: center; }
.print-result-empty h3, .print-result-error h3 { margin: 0 0 .55rem; color: var(--ink); }
.print-result-empty p, .print-result-error p { margin: 0; font-size: .82rem; line-height: 1.7; }
.print-result-content { width: 100%; }
.print-result-kicker { color: #61748a; font-size: .72rem; font-weight: 700; letter-spacing: .06em; }
.print-result-total { display: block; margin-top: .35rem; color: #244d78; font-size: clamp(2.8rem, 6vw, 4.6rem); line-height: 1.05; letter-spacing: -.06em; }
.print-result-content > p { margin: .7rem 0 1.8rem; color: var(--muted); font-size: .82rem; }
.print-result-content dl { margin: 0; border-top: 1px solid #d6dee6; }
.print-result-content dl > div { padding: .78rem 0; border-bottom: 1px solid #d6dee6; display: flex; justify-content: space-between; gap: 1rem; font-size: .82rem; }
.print-result-content dt { color: var(--muted); }
.print-result-content dd { margin: 0; color: var(--ink); font-weight: 680; text-align: right; }
.print-formula-result { margin-top: 1.2rem; padding: .9rem 1rem; border-radius: .75rem; background: rgba(255,255,255,.72); color: #536273; font-size: .75rem; line-height: 1.65; }
.print-formula-result b { color: #244d78; }
.print-result-error span { display: inline-block; margin-bottom: .8rem; padding: .3rem .65rem; border-radius: 2rem; background: #f9e4df; color: #9e4235; font-size: .7rem; }
.print-rate-details { border-top: 1px solid var(--line); }
.print-rate-details summary { min-height: 4rem; padding: 0 clamp(1.5rem, 4vw, 3rem); cursor: pointer; color: var(--green); font-size: .82rem; font-weight: 680; list-style: none; display: flex; align-items: center; justify-content: space-between; }
.print-rate-details summary::-webkit-details-marker { display: none; }
.print-rate-details[open] summary span { font-size: 0; }
.print-rate-details[open] summary span::after { content: "收起"; font-size: .82rem; }
.print-rate-table-wrap { padding: 0 clamp(1rem, 3vw, 2.25rem) 2.25rem; overflow-x: auto; }
.print-rate-table-wrap table { min-width: 36rem; }
.print-rate-table-wrap td:last-child { color: #244d78; font-weight: 700; }

@media (max-width: 820px) {
  .print-calculator-grid { grid-template-columns: 1fr; }
  .print-price-form { border-right: 0; border-bottom: 1px solid var(--line); }
  .print-price-result { min-height: 28rem; }
}

@media (max-width: 480px) {
  .print-calculator-shell { border-radius: 1.1rem 1.1rem 1.1rem .45rem; }
  .print-price-form, .print-price-result { padding: 1.25rem; }
  .print-duration-field { grid-template-columns: 1fr; gap: .8rem; }
  .print-duration-field legend { grid-column: 1; }
  .print-result-content dl > div { align-items: flex-start; }
  .print-rate-details summary { padding-inline: 1.25rem; }
}
