/* Typing Coach Core v1.87.169 — shared desktop practice canvas.
   New and existing PC lessons: same physical JIS keys, same Japanese
   font size, and a stable 1–2 line reading area with progressive long-text pages. No mobile/flick changes.
   The 1600x690 reference geometry is zoomed *as a unit* by app.js.
   It supersedes the previously seeded-lesson-only height patches. */
@media (min-width:1101px) {
  /* Unconstrain the intro's 1180px card when practice begins. */
  html body.tc-stage-practice .tc-app-main:has(.tc-shell.tc-unified-pc-practice) {
    padding:8px 12px !important;
    overflow:hidden !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice {
    display:block !important;
    position:relative !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    box-sizing:border-box !important;
    margin:0 auto !important;
    padding:0 !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice {
    min-height:0 !important;
    height:var(--tc-unified-pc-height,calc(100dvh - 110px)) !important;
    max-height:var(--tc-unified-pc-height,calc(100dvh - 110px)) !important;
    overflow:hidden !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-formal:not([hidden]),
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-viewport,
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-fit {
    position:relative !important;
    inset:auto !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:100% !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-fit {
    display:flex !important;
    align-items:flex-start !important;
    justify-content:center !important;
    padding:0 !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type].tc-unified-pc-practice .tc-practice-canvas {
    box-sizing:border-box !important;
    position:relative !important;
    display:grid !important;
    width:1600px !important;
    min-width:1600px !important;
    max-width:1600px !important;
    height:690px !important;
    min-height:690px !important;
    max-height:690px !important;
    flex:0 0 1600px !important;
    grid-template-rows:46px 65px 215px 68px 28px 210px 34px !important;
    row-gap:2px !important;
    padding:5px 24px 5px !important;
    margin:0 auto !important;
    transform:none !important;
    transform-origin:top center !important;
    overflow:hidden !important;
    align-content:start !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-practice-head {
    height:46px !important; min-height:46px !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-practice-title h2 {
    font-size:24px !important; line-height:1.2 !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-metrics-formal {
    height:65px !important; min-height:65px !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-metric-card {
    height:65px !important; min-height:65px !important;
    padding:5px 12px !important; grid-template-columns:46px minmax(0,1fr) !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-metric-icon {
    width:38px !important; height:38px !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-metric-icon svg {
    width:24px !important; height:24px !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-metric-copy b {
    font-size:26px !important; line-height:1 !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-sentence-formal,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type].tc-unified-pc-practice .tc-practice-canvas .tc-sentence-formal {
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:center !important;
    height:215px !important; min-height:215px !important; max-height:215px !important;
    padding:3px 52px 2px !important;
    margin:0 !important;
    gap:2px !important;
    overflow:hidden !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-current-example {
    height:auto !important; min-height:0 !important; max-height:194px !important;
    width:100% !important; min-width:0 !important; max-width:100% !important;
    display:flex !important; flex-direction:column !important;
    justify-content:center !important; align-items:stretch !important;
    gap:2px !important; margin:0 !important; padding:0 !important;
    overflow:visible !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-current-example .tc-jp,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type].tc-unified-pc-practice .tc-practice-canvas .tc-current-example .tc-jp {
    width:100% !important; min-width:0 !important; max-width:100% !important;
    height:auto !important; min-height:0 !important; max-height:150px !important;
    margin:0 auto !important; padding:0 0 4px !important;
    display:block !important;
    font-family:'Yu Mincho','Hiragino Mincho ProN',serif !important;
    font-size:34px !important; line-height:1.26 !important;
    letter-spacing:.025em !important; font-weight:650 !important;
    text-align:center !important; white-space:normal !important;
    word-break:normal !important; overflow-wrap:normal !important;
    border-bottom:1px dashed #c8cbd0 !important;
    /* A rare paragraph longer than three lines remains accessible in this
       text-only pane; never cut off source text or move the keyboard. */
    overflow-y:auto !important; overflow-x:hidden !important;
    scrollbar-width:thin !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-jp .tc-meaning-line,
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-jp .tc-jp-line {
    display:block !important; width:100% !important; max-width:100% !important;
    margin:0 auto !important; padding:0 !important; text-align:center !important;
    font-size:inherit !important; line-height:inherit !important;
    white-space:normal !important; word-break:normal !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-current-example .tc-kana,
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-current-example .tc-roman {
    width:100% !important; max-width:100% !important;
    height:auto !important; min-height:0 !important;
    margin:1px auto !important; padding:0 !important;
    text-align:center !important; line-height:1.28 !important;
    white-space:normal !important; overflow-wrap:anywhere !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-current-example .tc-kana {font-size:16px !important;letter-spacing:.035em !important;}
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-current-example .tc-roman {font-size:19px !important;letter-spacing:.04em !important;}
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-long-lookahead:not([hidden]) {
    flex:0 0 auto !important; min-height:0 !important; max-height:31px !important;
    padding:3px 12px !important; margin:2px 0 !important; overflow:hidden !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-progress-row {
    flex:0 0 auto !important; margin:2px auto 0 !important; height:13px !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-next-finger-formal {
    height:68px !important; min-height:68px !important; max-height:68px !important;
    padding:5px 12px !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-next-key {height:49px !important;}
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-guide-toolbar-formal {
    height:28px !important; min-height:28px !important; max-height:28px !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-keyboard-wrap-formal {
    height:210px !important; min-height:210px !important; max-height:210px !important;
    overflow:visible !important; align-items:flex-start !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-keyboard-wrap-formal .tc-keyboard {
    height:206px !important; min-height:206px !important; max-height:206px !important;
    grid-template-rows:repeat(5,38px) !important; row-gap:4px !important;
    overflow:visible !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-key-row,
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-key {
    height:38px !important; min-height:38px !important; max-height:38px !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-practice-footer {
    height:34px !important; min-height:34px !important; max-height:34px !important;
    display:flex !important; align-items:flex-end !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-quit-button {
    height:32px !important; min-height:32px !important;
  }
}

/* v1.87.169 — one 2-line presentation slot, including 1-line questions.
   A long lesson advances the displayed paragraph in JS; never scroll this
   panel or shrink its font to fit an unusually long source sentence. */
@media (min-width:1101px) {
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-current-example .tc-jp,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type].tc-unified-pc-practice .tc-practice-canvas .tc-current-example .tc-jp {
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 104px !important;
    height:104px !important;
    min-height:104px !important;
    max-height:104px !important;
    font-size:34px !important;
    line-height:1.26 !important;
    overflow:hidden !important;
    white-space:normal !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-jp .tc-meaning-line {
    flex:0 0 auto !important;
    max-width:100% !important;
    white-space:nowrap !important;
    overflow:visible !important;
  }
  /* The fixed reference width is never stretched to fill a large monitor.
     Equal scaling of the entire practice canvas preserves JIS key ratios. */
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-keyboard-wrap-formal .tc-keyboard {
    width:1140px !important;
    min-width:1140px !important;
    max-width:1140px !important;
    flex:0 0 1140px !important;
    margin:0 auto !important;
    grid-template-rows:repeat(5,38px) !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-keyboard-wrap-formal .tc-key-row {
    width:1140px !important;
    min-width:1140px !important;
    max-width:1140px !important;
    justify-content:center !important;
    gap:4px !important;
    height:38px !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-keyboard-wrap-formal .tc-key {
    box-sizing:border-box !important;
    height:38px !important;
    min-height:38px !important;
    max-height:38px !important;
    min-width:0 !important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-current-example .tc-kana,
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-current-example .tc-roman {
    flex:0 0 auto !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:clip !important;
  }
}

/* The former 'next whole question' strip consumed another full line inside
   the fixed 215px sentence row. With progressive paragraphs the current
   text must stay readable; the lookahead remains available outside desktop
   compact practice, without deleting its underlying lesson functionality. */
@media (min-width:1101px) {
  html body.tc-stage-practice .tc-shell[data-tc-app].tc-unified-pc-practice .tc-practice-canvas .tc-long-lookahead {
    display:none !important;
  }
}
