/* Chinese characters (characters/index, characters/show): the list by level and a character's page with its stroke
   order (Hanzi Writer draws into .hz__canvas). Builds on the dictionary's tdict and zdict classes. */
.hz__crumbs { margin-bottom: 12px; font-size: 14px; }
.hz__crumbs a { color: var(--text-muted); }
.hz__lead { max-width: 640px; color: var(--text-body); margin: -6px 0 18px; }
.hz__head { display: grid; grid-template-columns: 300px 1fr; gap: 28px; align-items: start; }
.hz__writer-box { display: flex; flex-direction: column; align-items: center; }
.hz__writer { display: flex; flex-direction: column; align-items: center; gap: 10px; width: 100%; }
.hz__canvas { width: 280px; height: 280px; max-width: 100%; border-radius: var(--radius-lg, 16px);
  background:
    linear-gradient(to right, transparent calc(50% - .5px), var(--line, #E6E0D4) calc(50% - .5px), var(--line, #E6E0D4) calc(50% + .5px), transparent calc(50% + .5px)),
    linear-gradient(to bottom, transparent calc(50% - .5px), var(--line, #E6E0D4) calc(50% - .5px), var(--line, #E6E0D4) calc(50% + .5px), transparent calc(50% + .5px)),
    var(--paper); border: 1px solid var(--line, #E6E0D4); }
.hz__status { min-height: 1.4em; margin: 0; font-size: 14px; color: var(--text-muted); text-align: center; }
.hz__tools { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.hz__glyph { font-family: var(--font-arabic); font-size: 160px; line-height: 1; }
.hz__readings { list-style: none; padding: 0; margin: 10px 0; display: grid; gap: 6px; }
.hz__facts { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 14px 0; }
.hz__facts dt { color: var(--text-muted); font-size: 14px; }
.hz__facts dd { margin: 0; }
.hz__link, .hz__part { font-family: var(--font-arabic); font-size: 20px; text-decoration: none; color: var(--ink); }
.hz__parts { display: flex; flex-wrap: wrap; gap: 12px; }
.hz__part-py { font-family: var(--font-sans); font-size: 13px; color: var(--clay); }
.hz__origin { margin: 10px 0; color: var(--text-body); }
.hz__actions { justify-content: flex-start; margin-top: 12px; }
.hz__words { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.hz__word { display: grid; gap: 2px; padding: 10px 12px; border-radius: 12px; background: var(--paper); text-decoration: none; color: inherit; }
.hz__word:hover { background: var(--sand); }
.hz__word-zh { font-family: var(--font-arabic); font-size: 22px; }
.hz__word-py { font-size: 13px; color: var(--clay); }
.hz__word-en { font-size: 13px; color: var(--text-muted); }
.hz__credit { margin-top: 18px; font-size: 13px; color: var(--text-muted); }
.hz__levels { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0; }
.hz__levels .chip { text-decoration: none; }
.hz__levels .chip.is-active { background: var(--ink); color: var(--paper); }
.hz__level-range { opacity: .7; font-size: 12px; }
.hz__grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 8px; }
.hz__cell { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 6px; border-radius: 12px; background: var(--white, #fff);
  border: 1px solid var(--line, #E6E0D4); text-decoration: none; color: inherit; text-align: center; }
.hz__cell:hover { border-color: var(--ink); }
.hz__cell-zh { font-family: var(--font-arabic); font-size: 34px; line-height: 1.2; }
.hz__cell-py { font-size: 13px; color: var(--clay); }
.hz__cell-en { font-size: 11px; color: var(--text-muted); line-height: 1.3; }
@media (max-width: 760px) {
  .hz__head { grid-template-columns: 1fr; }
}
