/* Pinyin utilities extend the shared language-tools shell. */
.pt-tools .pt-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:24px; }
.pt-tools .pt-badge { flex-shrink:0; padding:7px 12px; border-radius:9px; background:var(--canvas); color:var(--muted); font-size:12px; }
.pt-tools .pt-editor { display:block; width:100%; min-height:180px; resize:vertical; padding:18px; font:21px/1.8 "Google Sans Flex",Arial,sans-serif; }
.pt-tools .pt-note { margin-top:12px; font-size:12px; line-height:1.75; }
.pt-tools .pt-result-panel { margin-top:22px; }
.pt-tools .pt-compact-option { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:12px; }
.pt-tools select { max-width:100%; min-height:42px; padding:9px 34px 9px 12px; border:1px solid var(--line); border-radius:9px; background-color:var(--surface); color:var(--ink); font:inherit; }
.pt-tools .pt-reading { min-height:160px; padding:24px; border:1px solid var(--line); border-radius:12px; background:var(--canvas); white-space:pre-wrap; overflow-wrap:anywhere; font-size:29px; line-height:2.9; }
.pt-reading ruby { margin-right:.12em; }
.pt-reading rt { color:var(--zl-accent); font-family:"Google Sans Flex",Arial,sans-serif; font-size:14px; line-height:1.5; }
.pt-reading rp { display:none; }
.pt-tools .pt-reading .lt-empty { font-size:14px; line-height:1.7; }
.pt-reading .pt-unknown { border-bottom:1px dashed var(--zl-error); }
.pt-tools .pt-alternatives { padding-top:24px; }
.pt-tools .pt-alternative-list { display:flex; flex-wrap:wrap; gap:12px; margin-top:14px; }
.pt-tools .pt-alternative { display:flex; align-items:center; gap:12px; min-width:0; max-width:100%; padding:9px 12px; border:1px solid var(--line); border-radius:10px; background:var(--canvas); }
.pt-alternative > span { max-width:100%; overflow-wrap:anywhere; font-size:21px; }
.pt-reading .pt-unaligned { font-size:22px; }
.pt-alternative select { min-width:0; font-size:14px; }
.pt-tone-options { display:flex; flex-wrap:wrap; align-items:end; gap:20px; margin-bottom:22px; }
.pt-tools .pt-tone-options .lt-field { display:block; flex:1 1 190px; }
.pt-tools .pt-tone-options .lt-field select { width:100%; }
.pt-tools .pt-neutral-option { flex:1 1 240px; display:flex; align-items:center; gap:8px; padding:10px 0; color:var(--muted); font-size:12px; line-height:1.6; }
.pt-neutral-option input { width:17px; height:17px; flex-shrink:0; }
.pt-tone-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.pt-tone-grid > * { min-width:0; }
.pt-tools .pt-tone-output { background:var(--canvas); }
.pt-tools .pt-examples { display:grid; gap:12px; margin:20px 0; }
.pt-examples span { display:block; color:var(--ink); font-size:17px; }
.pt-examples b { margin:0 12px; color:var(--muted); font-weight:400; }
.pt-tools :is(button,a,input,select,textarea,summary):focus-visible { outline-offset:-2px; }
.pt-tools .is-copied { color:var(--zl-success); }
@media(max-width:650px) {
 .pt-tools .pt-panel-heading { align-items:flex-start; flex-direction:column; gap:12px; }
 .pt-tone-grid { grid-template-columns:1fr; }
 .pt-tools .pt-editor { min-height:150px; font-size:19px; }
 .pt-tools .pt-reading { padding:16px; font-size:25px; }
 .pt-tools .pt-badge { font-size:11px; }
 .pt-tone-options { gap:13px; }
 .pt-tools .pt-neutral-option { flex-basis:100%; }
 .pt-tools .pt-alternative { flex-wrap:wrap; gap:7px; }
}
@media print {
 body:has(#pinyin-tools[data-tool="reading"]) :is(header,footer,.site-header,.site-footer,.resource-heading,.resource-related,.resource-breadcrumbs,.resource-tabs,.resource-hero,.resource-heading,.back-to-top,.site-nav) { display:none!important; }
 body:has(#pinyin-tools[data-tool="reading"]) .resource-shell { max-width:none!important; padding:0!important; }
 body:has(#pinyin-tools[data-tool="reading"]) .resource-shell > :not(#pinyin-tools) { display:none!important; }
 body:has(#pinyin-tools[data-tool="reading"]) .shell-main { margin:0!important; padding:0!important; }
 #pinyin-tools[data-tool="reading"] > :not(.pt-result-panel), #pinyin-tools .pt-result-panel :is(.lt-toolbar,.pt-compact-option,.pt-alternatives,.zl-kicker) { display:none!important; }
 #pinyin-tools .pt-result-panel { border:0; margin:0; padding:0; }
 #pinyin-tools .pt-reading { border:0; background:white; color:black; padding:0; }
 #pinyin-tools .pt-reading rt { color:#333; }
 #pinyin-tools .pt-reading ruby { break-inside:avoid; }
 #pinyin-tools .pt-unaligned { color:#111; font-size:22px; line-height:2; }
}
