/* Geometry only: existing Penzista panels, buttons and type remain shared. */
.pz-extra :is(button, input, select) { scroll-margin-top: 200px; }
.pz-extra-board-panel { min-width: 0; }
.pz-extra-controls { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; align-items: center; }
.pz-extra-controls > p { flex-basis: 100%; margin: 0; }
.pz-extra [data-extra-finish] { margin-top: 18px; background: var(--accent-soft); }
.pz-crossword-grid { width: 100%; max-width: 720px; margin: 0 auto 24px; }
.pz-crossword-line { display: grid; grid-template-columns: 1.6em repeat(var(--pz-crossword-columns), minmax(0, 1fr)); align-items: center; gap: 1px; margin-bottom: 3px; }
.pz-crossword-line > span { text-align: center; font-size: clamp(.68rem, 1.8vw, 1.1rem); }
.pz-crossword-letter { aspect-ratio: 1; border: 1px solid var(--text); background: var(--bg); display: grid; place-items: center; min-width: 0; }
.pz-crossword-letter.is-secret { background: var(--accent-soft); border-width: 2px; font-weight: 800; }
.pz-crossword-line.is-current { outline: 2px solid var(--primary); outline-offset: 1px; }
.pz-crossword-line.is-correct { border-left: 4px solid var(--primary); }
.pz-crossword-editor { display: grid; gap: 12px; max-width: 720px; margin: 0 auto; }
.pz-crossword-editor label { display: grid; gap: 8px; }
.pz-crossword-editor select, .pz-crossword-editor input { min-width: 0; width: 100%; min-height: 48px; font: inherit; border: 1px solid var(--border); border-radius: 10px; padding: 8px; background: var(--bg); color: var(--text); }
.pz-crossword-editor input { font-size: 1.35rem; letter-spacing: .1em; }
.pz-mahjong-board { position: relative; --pz-tile-width: clamp(48px, 14vw, 76px); --pz-tile-height: calc(var(--pz-tile-width) * 1.25); width: calc(4 * (var(--pz-tile-width) + 6px) + 12px); max-width: 100%; margin: 0 auto; }
.pz-mahjong-tile { position: absolute; width: var(--pz-tile-width); height: var(--pz-tile-height); min-width: 44px; min-height: 44px; border: 2px solid var(--text); border-radius: 8px; color: var(--text); background: var(--bg); box-shadow: 2px 3px 0 var(--border); cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1px; }
.pz-mahjong-tile .pz-tile-symbol { font: 2rem/1.2 Georgia, serif; }
.pz-mahjong-tile .pz-tile-code { font: 700 .65rem/1.1 system-ui, sans-serif; }
.pz-mahjong-tile.is-blocked { background: var(--surface); border-style: dashed; }
.pz-mahjong-tile.is-selected, .pz-mahjong-tile.is-hint { outline: 3px solid var(--primary); outline-offset: 2px; background: var(--accent-soft); }
.pz-mahjong-tile:focus-visible { outline: var(--focus); outline-offset: 3px; }
.pz-extra.pz-games-expanded .pz-mahjong-board { --pz-tile-width: clamp(48px, 17vw, 96px); }
.pz-crossword-paper { width: 100%; table-layout: fixed; border-collapse: collapse; }
.pz-crossword-paper td { text-align: center; height: 7mm; font-size: 12pt; }
.pz-crossword-paper .pz-paper-cell { border: 1px solid #142033; }
.pz-crossword-paper .pz-paper-secret { border: 2px solid #142033; background: #fff2cd; font-weight: bold; }
.pz-crossword-paper th { width: 6mm; font-size: 10pt; }
.pz-crossword-print ol { font-size: 10pt; line-height: 1.35; margin-top: 8mm; }
.pz-crossword-print ol li { margin-bottom: 2mm; }
@media (max-width: 380px) { .pz-extra-controls .btn { width: 100%; } }
@media (forced-colors: active) { .pz-mahjong-tile.is-selected, .pz-mahjong-tile.is-hint { outline-color: Highlight; } }
