
    .tool-page { --pz-label: #9aa8c4; }
    .pz-field label,
    .pz-style label,
    .pz-types label,
    #pz-status,
    .pz-seclabel,
    .tool-lead { color: var(--pz-label) !important; }
    .pz-types label:has(input:checked) { color: #000 !important; }
    .tool-back { color: var(--pz-label) !important; }
    .btn.btn-primary { color: #000 !important; }
    .pz-style label b { color: #c6d4ec !important; }

    .pz-seclabel-h { font-size:11px; text-transform:uppercase; letter-spacing:.1em;
                     color:var(--pz-label); align-self:center; }
    .pz-panel { background:var(--card-bg); border:1px solid var(--border); border-radius:12px;
                padding:14px 18px 18px; margin:0 0 18px; color:var(--text); }
    .pz-panel-h { display:flex; align-items:center; gap:10px; margin-bottom:10px;
                  font-size:13px; letter-spacing:.04em; }
    .pz-panel-h b { color:#c6d4ec; }
    .pz-x { background:none; border:0; color:var(--pz-label); cursor:pointer; font-size:14px;
            margin-left:auto; padding:2px 6px; }
    .pz-x:hover { color:#e6edf9; }
    .pz-panel-note { font-size:12px; line-height:1.5; color:var(--pz-label); margin:12px 0 0; }
    .pz-row { display:flex; align-items:center; gap:10px; padding:9px 0;
              border-bottom:1px solid var(--border); font-size:13px; }
    .pz-row:last-child { border-bottom:0; }
    .pz-row .nm { font-weight:600; color:#dbe4f5; min-width:190px; }
    .pz-row .meta { color:var(--pz-label); font-size:12px; flex:1; }
    .pz-row .acts { display:flex; gap:6px; }
    .pz-row .btn { padding:4px 10px; font-size:12px; }
    .pz-tag { font-size:10px; text-transform:uppercase; letter-spacing:.08em;
              padding:2px 7px; border-radius:99px; border:1px solid var(--border);
              color:var(--pz-label); }
    .pz-tag.on { background:var(--accent-dk); color:#000; border-color:transparent; }
    .pz-drop { border:2px dashed var(--border); border-radius:10px; padding:26px 18px;
               text-align:center; color:var(--pz-label); font-size:13px; line-height:1.6; }
    .pz-drop.over { border-color:var(--accent-dk); color:#dbe4f5; }
    .pz-found { font-size:12.5px; line-height:1.7; color:var(--text); }
    .pz-found li { color:var(--pz-label); }
    .pz-found b { color:#dbe4f5; }
    .pz-err { color:#e0a04a; font-size:12.5px; line-height:1.6; }

    .pz-controls {
      display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px 18px;
      background: var(--card-bg); border: 1px solid var(--border);
      border-radius: 12px; padding: 16px 18px; margin-bottom: 12px;
    }
    .pz-controls + .pz-controls { margin-bottom: 22px; }
    .pz-field { display: flex; flex-direction: column; gap: 5px; }
    .pz-field label { font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-mute); }
    .pz-field select, .pz-field input[type=number], .pz-field input[type=text] {
      background: var(--soft-1); color: var(--text); border: 1px solid var(--border);
      border-radius: 8px; padding: 8px 10px; font-family: 'Klee One', cursive; font-size: 14px; min-width: 92px;
    }
    .pz-field select:disabled { opacity: 0.4; }
    .pz-field.wide select { max-width: 300px; }
    .pz-types { display: inline-flex; border: 1px solid var(--border); border-radius: 999px; overflow: hidden; }
    .pz-types label { padding: 8px 16px; font-size: 14px; cursor: pointer; color: var(--text-mute); }
    .pz-types input { display: none; }
    .pz-types label:has(input:checked) { background: var(--accent-dk); color: var(--bg); }
    .pz-actions { display: flex; gap: 8px; margin-left: auto; flex-wrap: wrap; }
    .pz-style { display: flex; flex-direction: column; gap: 4px; min-width: 132px; }
    .pz-style label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-mute); display: flex; justify-content: space-between; }
    .pz-style label b { color: var(--accent-dk); font-weight: 700; }
    .pz-style input[type=range] { width: 100%; accent-color: var(--accent-dk); }
    .pz-secgroup { display:flex; align-items:flex-end; gap:16px; flex-wrap:wrap; }
    .pz-seclabel { font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--text-mute);
                   writing-mode: vertical-rl; transform: rotate(180deg); padding: 2px 0; opacity: 0.65; }
    #pz-status { font-size: 12px; color: var(--text-mute); margin: 0 0 16px; min-height: 16px; line-height: 1.5; }
    #pz-status.warn { color: #e0a04a; }

    #pz-output { display: flex; justify-content: center; }
    .pz-sheet {
      width: var(--pz-page-w, 8.5in); min-height: var(--pz-page-h, 11in);
      background: #fff; color: #1c1d1d;
      font-family: 'Poppins', system-ui, sans-serif; display: flex; flex-direction: column;
      box-shadow: 0 10px 40px rgba(0,0,0,0.35); overflow: hidden;
    }

    .pz-hband.pz-h-torn-band { background: var(--pz-band-fill, #63C6B8); color: #fff; text-align: center;
                               padding: 0.34in 0 0.13in; position: relative; }
    .pz-hband .cs { font-family: var(--pz-title-font, 'Tomarik Brush'), cursive;
                    font-size: var(--pz-title-size, 42.67px); line-height: 0.9; }
    .pz-hband .sp { font-family: 'Tomarik Poster', 'Poppins'; font-size: var(--pz-sub-size, 17.33px);
                    letter-spacing: var(--pz-sub-track, 0.18em); text-transform: uppercase; margin-top: 6px; }
    .pz-torn { position: absolute; left: 0; bottom: -18px; width: 100%; height: 20px; display: block; }

    .pz-hband.pz-h-rule-logos { padding: var(--pz-pad-top, 0.1in) var(--pz-pad-x, 0.583in) 0.10in; }
    .pz-lockup { display: flex; align-items: center; gap: 14px; }
    .pz-lockup .pz-logo { width: 0.62in; height: 0.62in; object-fit: contain; flex: none; }
    .pz-lockup .pz-rule { flex: 1 1 60px; min-width: 40px; height: var(--pz-rule-px, 3px); background: var(--pz-rule-color, #63C6B8); }
    .pz-lockup .pz-title {
      font-family: var(--pz-title-font, 'Tilt Warp'), 'Poppins', sans-serif;
      font-size: var(--pz-title-size, 45.33px); font-weight: 400; line-height: 1;
      color: var(--pz-title-color, #1c1d1d); text-transform: var(--pz-title-transform, uppercase);
      margin: 0; white-space: nowrap; letter-spacing: 0.01em;
    }

    .pz-hband.pz-h-stacked-logo { padding: var(--pz-pad-top, 0.1in) var(--pz-pad-x, 0.583in) 0.08in;
                                  text-align: center; }
    .pz-hband.pz-h-stacked-logo .pz-logo { width: 0.62in; height: 0.62in; object-fit: contain;
                                           display: block; margin: 0 auto 8px; }
    .pz-hband.pz-h-stacked-logo .pz-title {
      font-family: var(--pz-title-font, 'Poppins'), 'Poppins', sans-serif;
      font-size: var(--pz-title-size, 31.92px); font-weight: 700; line-height: 1.05;
      color: var(--pz-title-color, #232253); text-transform: var(--pz-title-transform, uppercase);
      letter-spacing: var(--pz-title-track, 0.2027em); margin: 0; white-space: nowrap;
      display: inline-block;
    }
    .pz-hband.pz-h-stacked-logo .pz-sub {
      font-family: var(--pz-sub-font, 'Poppins'), sans-serif;
      font-size: var(--pz-sub-size, 19.92px); font-weight: 700;
      color: var(--pz-sub-color, #3e8e89); text-transform: uppercase;
      letter-spacing: var(--pz-sub-track, -0.0094em); margin: 2px 0 0;
    }
    .pz-hband.pz-h-stacked-logo .pz-hairline { height: var(--pz-rule-px, 0.72px);
      background: var(--pz-rule-color, #59beb8); margin-top: 10px; }

    .pz-sheet.pz-pinned > .pz-clues,
    .pz-sheet.pz-pinned > .pz-wordbank,
    .pz-sheet.pz-pinned > .pz-list { margin-top: auto; }
    .pz-sheet.pz-pinned > .pz-gridwrap { margin-top: auto; }

    .pz-gridwrap { display: flex; justify-content: center;
                   padding: 0.30in var(--pz-pad-x, 0.4in) 0.14in; }
    .pz-grid { display: grid; }
    .pz-grid .c { position: relative; background: #fff;
                  border: var(--pz-cell-border, 1px) solid var(--pz-border-color, #1c1d1d);
                  margin: calc(var(--pz-cell-border, 1px) / -2); }
    .pz-grid .c.b { background: transparent; border: none; }
    .pz-grid .n { position: absolute; top: var(--pz-number-inset, 1px); left: calc(var(--pz-number-inset, 1px) + 1px);
                  font-size: var(--pz-cell-number, 7.5px); font-weight: var(--pz-number-weight, 700);
                  color: var(--pz-number-color, #3E4761); line-height: 1; }
    .pz-grid .l { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
                  font-weight: var(--pz-letter-weight, 700); font-size: var(--pz-cell-letter, 17px); }
    .pz-cross .l { color: var(--pz-letter-color, #63C6B8); }
    .pz-ws .c { border-color: var(--pz-ws-border-color, #9fb0b4); }
    .pz-ws .l { color: var(--pz-ws-letter-color, #1c1d1d); font-family: 'Poppins'; }
    .pz-grid .c.hit { background: var(--pz-hit-fill, #bfe9e3); }

    .pz-clues { padding: 0.12in var(--pz-pad-x, 0.55in) var(--pz-pad-bot, 0.2in);
                display: grid; grid-template-columns: repeat(var(--pz-clue-cols, 2), 1fr);
                gap: var(--pz-clue-gutter, 0.34in); flex: none; align-content: start; }
    .pz-clues h2, .pz-wordbank h2 { font-size: var(--pz-head-font, 14.67px); font-weight: 800;
                text-transform: uppercase; letter-spacing: 0.08em; color: #1c1d1d;
                border-bottom: var(--pz-head-rule, 2.5px) solid var(--pz-head-rule-color, #63C6B8);
                padding-bottom: 3px; margin-bottom: 8px; }
    .pz-tpl-pathology-focused .pz-clues h2 { text-decoration: underline; text-underline-offset: 3px; }
    .pz-clues ul { list-style: none; margin: 0; padding: 0; }

    .pz-clues-flow { display: block; column-count: var(--pz-clue-cols, 3);
                     column-gap: var(--pz-clue-gutter, 0.13in); }
    .pz-clues-flow h2 { break-after: avoid; break-inside: avoid; margin-top: 0; }
    .pz-clues-flow h2.pz-h-down { margin-top: 0.10in; }
    .pz-clues-flow ul { margin: 0 0 0.04in; }
    .pz-clues-flow li { break-inside: avoid; }
    .pz-clues li { display: flex; gap: 5px;
                   font-size: var(--pz-clue-font, 12.27px); line-height: var(--pz-clue-lead, 1.4);
                   margin-bottom: var(--pz-clue-gap, 5px); break-inside: avoid; }
    .pz-clues li b { color: var(--pz-clue-numcolor, #3E4761);
                     min-width: var(--pz-clue-numw, 16px); text-align: right; flex: none; }

    .pz-tpl-pathology-focused .pz-clues li { display: block; }
    .pz-tpl-pathology-focused .pz-clues li b { display: inline; min-width: 0; margin-right: 3px; }

    .pz-wordbank { padding: 0.12in var(--pz-pad-x, 0.55in) var(--pz-pad-bot, 0.2in); flex: none; }
    .pz-wordbank .cols { column-count: var(--pz-wb-cols, 4); column-gap: var(--pz-wb-gutter, 0.3in); }
    .pz-wordbank .cols span { display: block; font-size: var(--pz-wb-font, 12.67px);
                              line-height: var(--pz-wb-lead, 1.7); color: #1c1d1d; break-inside: avoid; }

    .pz-foot { background: var(--pz-band-fill, #63C6B8); color: #fff; text-align: center;
               font-size: var(--pz-foot-size, 10px); letter-spacing: 0.04em;
               padding: 0.16in 0.4in 0.12in; margin-top: auto; position: relative; }
    .pz-foot .pz-torn { bottom: auto; top: -18px; transform: scaleY(-1); }
    .pz-msg { color: #3c4250; font-size: 15px; line-height: 1.6; padding: 30px 34px; max-width: 46em; }
    .pz-msg.warn { color: #e0a04a; }
    .pz-draft { text-align: center; font-size: 8pt; color: #a05a00; background: #fff7ea; padding: 5px 12px; letter-spacing: 0.04em; }

    .pz-code .c { border-color: var(--pz-border-color, #1c1d1d); }
    .pz-code .n { color: #63C6B8; font-size: var(--pz-cell-number, 8.5px); font-weight: 800; }
    .pz-code .l { color: #1c1d1d; font-size: var(--pz-cell-letter, 16px); }

    .pz-list { padding: 0.3in var(--pz-pad-x, 0.55in) var(--pz-pad-bot, 0.2in); flex: none; }
    .pz-note { font-size: 8.5pt; line-height: 1.5; color: #a05a00; background: #fff7ea;
               border: 1px solid #f0d9b0; border-radius: 4px; padding: 8px 12px; margin: 0 0 12px; }
    .pz-instr { font-size: 9.5pt; line-height: 1.5; color: #3E4761; margin: 0 0 10px; }
    .pz-legend { font-family: 'Poppins'; font-weight: 700; font-size: 10pt; letter-spacing: 0.06em;
                 color: #1c1d1d; background: #eaf7f5; border-left: 4px solid #63C6B8;
                 padding: 8px 12px; margin: 0 0 14px; }
    .pz-list-two { display: grid; grid-template-columns: 1fr 1.25fr; gap: var(--pz-clue-gutter, 0.34in); }
    .pz-items { list-style: none; margin: 0; padding: 0; }
    .pz-items li { display: flex; align-items: baseline; gap: 6px;
                   font-size: var(--pz-clue-font, 13.33px); line-height: var(--pz-clue-lead, 1.85);
                   margin-bottom: var(--pz-clue-gap, 0); break-inside: avoid; }
    .pz-items li b { color: #3E4761; min-width: 18px; text-align: right; font-weight: 700; }
    .pz-list-one .pz-items { column-count: var(--pz-clue-cols, 2); column-gap: var(--pz-clue-gutter, 0.4in); }

    .pz-items li > .pz-prompt,
    .pz-items li > .pz-hint { min-width: 0; overflow-wrap: break-word; }
    .pz-prompt { font-weight: 600; letter-spacing: 0.06em; }
    .pz-items .pz-hint { font-weight: 400; letter-spacing: 0; color: #6b7280; font-size: 0.9em; }
    .pz-items .pz-hint::before { content: ' - '; }
    .pz-rule { flex: 1; border-bottom: 1px dotted #9fb0b4; min-width: 0.7in; margin-left: 4px; transform: translateY(-3px); }
    .pz-ans { color: #63C6B8; font-weight: 700; letter-spacing: 0.04em; margin-left: 4px; }
    .pz-right li .pz-prompt { font-weight: 400; letter-spacing: 0; }

    @media print {
      @page { size: Letter; margin: 0; }
      body { background: #fff !important; }
      .tool-back, .tool-header, .pz-controls, #pz-status, .dd-theme { display: none !important; }
      #pz-output { display: block; }
      .pz-sheet { box-shadow: none; width: 8.5in; }
      .pz-hband, .pz-foot, .torn path, .pz-grid .c.hit, .pz-draft, .pz-lockup .pz-rule,
      .pz-hband.pz-h-stacked-logo .pz-hairline {
        -webkit-print-color-adjust: exact; print-color-adjust: exact;
      }
    }
