/* Shared tablet artwork also works without aspect-ratio or percentage heights. */
.learning-main .extension-cover.extension-cover-portrait{height:auto!important;min-height:0;align-self:center}
.learning-main .extension-cover-image,.learning-main .extension-cover-art{position:static!important;top:auto;right:auto;bottom:auto;left:auto;height:auto!important;flex:0 0 auto;max-width:100%;object-fit:contain}
.phone-study-capture{position:fixed;left:2px;bottom:2px;width:2px;height:2px;padding:0;border:0;opacity:.01;font-size:16px;z-index:1}
.typex-phone .typing-shortcuts,.typex-phone .hub-keyboard-guide,.typex-phone .lesson-catalog-guide,
.typex-phone .extension-catalog-guide,.typex-phone .extension-order-guide,
.typex-phone [aria-label*="快捷操作"],.typex-phone [aria-label*="快捷键"]{display:none!important}
.typex-phone .typing-top{flex-wrap:wrap;gap:8px}
.typex-phone .typing-top .right{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}
.typex-phone .typing-stage{width:100%;max-width:100%;margin-top:18px;padding-bottom:32px}
.typex-phone body.typing-body{height:auto;min-height:100vh;overflow-y:auto}
.typex-phone .typing-en,.typex-phone .typing-zh{overflow-wrap:break-word;word-break:normal}
.typex-phone .typing-sentence-wrap,.typex-phone .typing-line{min-width:0;max-width:100%}
.typex-phone .typing-line{flex-wrap:wrap}
.typex-phone .icon-btn,.typex-phone .typing-skip{min-width:44px;min-height:44px}
@media(max-height:500px) and (orientation:landscape){
 .typex-phone .typing-stage{margin-top:8px}.typex-phone .typing-en{font-size:24px}.typex-phone .typing-zh{font-size:18px}
 .typex-phone .typing-stats{margin-top:12px}.typex-phone .typing-tip{margin-top:12px}
}


/* Same keyboard and system-input switch on desktop, tablet and phone. */
.study-keyboard{box-sizing:border-box;max-width:100%}
.study-number-row{display:none}.typex-phone .study-number-row{display:flex}
.study-key-row button.study-key{appearance:none;min-width:0;flex:1 1 0;width:auto;padding:0;font-family:inherit;cursor:pointer;touch-action:manipulation}
.study-bottom-row button.study-key-wide{flex:1.35}
.study-bottom-row button.study-key-space{flex:3.5}
.study-key:focus-visible{outline:3px solid #b9b5ff;outline-offset:2px}
.study-key:active{transform:translateY(1px);background:#5142cf;color:#fff}
.study-key[data-study-key="Shift"][aria-pressed="true"]{background:#5142cf;color:#fff}
.typex-system-keyboard{display:block;margin:12px auto;padding:10px 16px;min-height:44px;background:#1b2a40;color:#fff;border:1px solid #7589a6;border-radius:8px;font-family:inherit;font-size:16px;cursor:pointer}
.typing-shell [data-system-keyboard],.gv-study [data-system-keyboard]{display:block!important;min-height:44px;margin:12px auto;font-size:16px;cursor:pointer}
html.typex-phone .ipad-keyboard-btn,html.typex-phone .gv-mobile-input{display:block!important}
@media(pointer:coarse){.study-keyboard .study-key-row button.study-key{min-height:44px}.ipad-keyboard-btn,.gv-mobile-input{display:block!important;min-height:44px;font-size:16px}}
@media(max-width:520px){.study-key-row{gap:3px}.study-keyboard{padding:8px 5px}.gv-study .study-key{font-size:12px}.study-bottom-row button.study-key{font-size:11px}}

/* Only while a touch-device virtual keyboard is open; desktop stays unchanged. */
@media(min-width:600px){
 html.typex-virtual-study .typing-shell.has-virtual-keyboard{box-sizing:border-box;min-height:var(--study-viewport-height,100vh);padding:10px 20px 12px;display:flex;flex-direction:column}
 html.typex-virtual-study .typing-shell.has-virtual-keyboard .typing-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1 0 auto;box-sizing:border-box;width:100%;max-width:1120px;margin:8px auto 0!important;padding:0!important;text-align:center}
 html.typex-virtual-study .has-virtual-keyboard .typing-top{width:100%;flex:0 0 auto}
 html.typex-virtual-study .has-virtual-keyboard .typing-lesson{font-size:18px!important;line-height:1.35;margin:0 0 6px;max-width:100%;overflow-wrap:break-word}
 html.typex-virtual-study .has-virtual-keyboard .typing-en{font-size:clamp(22px,3vw,30px)!important;line-height:1.3;margin:0 0 6px}
 html.typex-virtual-study .has-virtual-keyboard .typing-zh{font-size:18px!important;line-height:1.35;margin:0 0 8px!important}
 html.typex-virtual-study .has-virtual-keyboard .typing-sentence-wrap{width:100%;margin:0 auto 6px!important}
 html.typex-virtual-study .has-virtual-keyboard .typing-line{font-size:26px!important;line-height:1.4;min-height:40px}
 html.typex-virtual-study .has-virtual-keyboard .study-keyboard{width:min(100%,620px);margin:8px auto!important;flex:0 0 auto}
 html.typex-virtual-study .has-virtual-keyboard .typing-stats{margin:6px auto!important;gap:24px;font-size:13px}
 html.typex-virtual-study .has-virtual-keyboard .typing-stats b{font-size:18px}
 html.typex-virtual-study .has-virtual-keyboard .typing-shortcuts,
 html.typex-virtual-study .has-virtual-keyboard .typing-tip,
 html.typex-virtual-study .has-virtual-keyboard .tts-badge{display:none!important}
 html.typex-virtual-study .has-virtual-keyboard [data-system-keyboard]{position:static!important;width:auto!important;align-self:center;margin:6px auto!important;padding:8px 14px}
 html.typex-virtual-study .gv-study.has-virtual-keyboard{box-sizing:border-box;min-height:var(--study-viewport-height,100vh);padding:10px 20px;justify-content:center;--gv-content-gap:6px}
 html.typex-virtual-study .gv-study.has-virtual-keyboard .gv-study-bar{width:100%;padding-bottom:8px}
 html.typex-virtual-study .gv-study.has-virtual-keyboard .gv-learning{padding-top:8px;gap:6px}
 html.typex-virtual-study .gv-study.has-virtual-keyboard .gv-picture{width:135px!important;max-height:90px}
 html.typex-virtual-study .gv-study.has-virtual-keyboard .gv-english{font-size:24px}
 html.typex-virtual-study .gv-study.has-virtual-keyboard .gv-chinese{font-size:18px}
 html.typex-virtual-study .gv-study.has-virtual-keyboard .gv-letter-preview{font-size:26px;min-height:36px}
 html.typex-virtual-study .gv-study.has-virtual-keyboard .gv-slot{height:36px}
 html.typex-virtual-study .gv-study.has-virtual-keyboard .gv-shortcuts,
 html.typex-virtual-study .gv-study.has-virtual-keyboard .gv-tip{display:none}
 html.typex-virtual-study .gv-study.has-virtual-keyboard .gv-stats{margin-top:4px}
 html.typex-virtual-study .gv-study.has-virtual-keyboard .gv-stats b{font-size:18px}
}
