/* Paper-accurate worksheet preview and print isolation. */
.tu-paper-settings{border:1px solid #dae3f0;border-radius:10px;padding:14px;margin:14px 0;background:#f8fafd;min-width:0}
.tu-paper-settings legend{font-weight:650;font-size:14px;color:#344966;padding:0 5px}
.tu-paper-settings .field{flex:1 1 150px;min-width:0}
.tu-paper-settings .row{flex-wrap:wrap;align-items:start}
.tu-paper-settings select{width:100%}
.tu-print-check{display:flex!important;flex-direction:row!important;align-items:center;gap:9px;margin:10px 0;cursor:pointer}
.tu-print-check input{width:auto!important;flex:none}
#paper-warning:not(:empty){padding:9px;border-radius:8px;color:#765011;background:#fff7e6}
#result{overflow-x:auto;overflow-y:visible;overscroll-behavior-x:contain}
#result .paper.tu-paper-sheet{box-sizing:border-box;width:var(--tu-sheet-width);height:var(--tu-sheet-height);min-height:0;max-width:none;overflow:hidden;margin:12px auto 18px;padding:var(--tu-sheet-padding);border:1px solid #d7dfe9;border-radius:2px;box-shadow:0 3px 15px #20385512;background:#fff;break-inside:avoid;page-break-inside:avoid}
.tu-paper-sheet .tu-paper-body{transform-origin:top left;zoom:var(--tu-zoom,1)}
.tu-paper-sheet .problem-grid{grid-template-columns:repeat(var(--tu-columns,4),minmax(0,1fr));gap:var(--tu-row-gap,19px) 11px;margin-top:var(--tu-top-gap,22px);font-size:var(--tu-problem-font,18px)}
.tu-paper-sheet .problem{min-height:var(--tu-problem-height,50px)}
.tu-paper-sheet .flash-grid{grid-template-columns:repeat(var(--tu-flash-columns,2),minmax(0,1fr));gap:var(--tu-card-gap,10px)}
.tu-paper-sheet .flash-card{box-sizing:border-box;min-height:var(--tu-card-height,80px);padding:var(--tu-card-padding,11px);font-size:var(--tu-card-font,17px);break-inside:avoid;page-break-inside:avoid}
.tu-paper-sheet .trace-sheet{gap:var(--tu-trace-gap,8px)}
.tu-paper-sheet .trace-line{min-height:var(--tu-trace-height,78px);font-size:var(--tu-trace-font,34px);line-height:1.6}
.tu-paper-sheet .match-row,.tu-paper-sheet .scramble-row{margin:var(--tu-row-margin,9px) 0;padding:var(--tu-row-padding,7px) 0;break-inside:avoid;page-break-inside:avoid}
.tu-paper-sheet .word-grid{max-width:100%;font-size:var(--tu-word-font,17px)}
.tu-paper-sheet .word-grid td{width:var(--tu-cell,25px);height:var(--tu-cell,25px);font-size:inherit}
.tu-paper-sheet h2{font-size:var(--tu-heading-font,21px);line-height:1.25;margin:0 0 9px}
.tu-paper-sheet .word-list{white-space:pre-line}
.tu-paper-sheet.tu-density-spacious{--tu-columns:3;--tu-row-gap:25px;--tu-problem-height:64px;--tu-top-gap:29px;--tu-problem-font:19px;--tu-card-height:105px;--tu-card-gap:14px;--tu-card-padding:15px;--tu-card-font:19px;--tu-trace-height:99px;--tu-trace-font:37px;--tu-trace-gap:13px;--tu-row-margin:14px;--tu-row-padding:10px}
.tu-paper-sheet.tu-density-normal{--tu-columns:4;--tu-row-gap:17px;--tu-problem-height:47px;--tu-card-height:75px;--tu-trace-height:73px;--tu-row-margin:8px}
.tu-paper-sheet.tu-density-compact{--tu-columns:5;--tu-row-gap:8px;--tu-problem-height:33px;--tu-top-gap:14px;--tu-problem-font:15px;--tu-card-height:53px;--tu-card-gap:6px;--tu-card-padding:7px;--tu-card-font:15px;--tu-trace-height:48px;--tu-trace-font:28px;--tu-trace-gap:4px;--tu-row-margin:3px;--tu-row-padding:3px;--tu-heading-font:19px}
#tu-print-portal{display:none}
@media print{
 html,body{background:#fff!important;padding:0!important;margin:0!important;width:auto!important;height:auto!important;overflow:visible!important}
 body>:not(#tu-print-portal){display:none!important}
 #tu-print-portal{display:block!important;position:static!important;inset:auto!important;padding:0!important;margin:0!important;overflow:visible!important}
 #tu-print-portal .paper.tu-paper-sheet{display:block!important;box-sizing:border-box!important;width:var(--tu-sheet-width)!important;height:calc(var(--tu-sheet-height) - 1.2mm)!important;max-width:none!important;min-height:0!important;overflow:hidden!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:var(--tu-sheet-padding)!important;break-after:page;page-break-after:always;break-inside:avoid;page-break-inside:avoid}
 #tu-print-portal .paper.tu-paper-sheet:last-child{break-after:auto;page-break-after:auto}
 #tu-print-portal .tu-paper-sheet *{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}

/* CJK learners get a visible square guide rather than Latin-only ruled lines. */
.tu-paper-sheet .trace-cjk{border-bottom:0;line-height:1.45;overflow-wrap:anywhere}
.tu-paper-sheet .trace-cjk em{display:inline-block;max-width:100%;padding:4px 7px;line-height:1.65;letter-spacing:.35em;background-image:linear-gradient(to right,#d1dce799 1px,transparent 1px),linear-gradient(to bottom,#d1dce799 1px,transparent 1px),repeating-linear-gradient(to bottom,transparent 0 50%,#e1e7efaa 50% calc(50% + 1px),transparent calc(50% + 1px) 100%);background-size:1.55em 1.55em;border:1px solid #d1dce7}
.tu-paper-sheet .word-grid{direction:ltr;unicode-bidi:isolate}

/* Teacher-specific worksheet variants and handwriting guides. */
.tu-teacher-options{border:1px solid #dce5ef;background:#f9fbfe;border-radius:10px;padding:12px 14px;margin:13px 0;min-width:0}
.tu-teacher-options legend{font-weight:650;font-size:14px;color:#334866;padding:0 6px}
.tu-teacher-options .row{flex-wrap:wrap}
.tu-teacher-options .field{min-width:125px;flex:1 1 155px}
.tu-teacher-options select,.tu-teacher-options input{width:100%;max-width:100%}
.tu-teacher-options .mini{font-size:12px;line-height:1.6}
.tu-dictation-row{display:grid;grid-template-columns:minmax(65px,.7fr) minmax(0,2fr);gap:12px;align-items:end;min-height:52px;break-inside:avoid;page-break-inside:avoid}
.tu-dictation-label{font-size:15px;overflow-wrap:anywhere}
.tu-guide-mark{display:block;width:100%;height:31px;border-bottom:1px solid #8e9eb5}
.tu-guide-four .tu-guide-mark{height:38px;border:0;background:linear-gradient(#9aaac0 1px,transparent 1px) 0 0/100% 12px repeat-y,linear-gradient(#b9c8da 1px,transparent 1px) 0 6px/100% 12px repeat-y}
.tu-guide-grid .tu-guide-mark{height:38px;border:1px solid #b9c8da;background-image:linear-gradient(90deg,#b9c8da 1px,transparent 1px),linear-gradient(#b9c8da 1px,transparent 1px);background-size:38px 38px}
.tu-density-spacious .tu-dictation-row{min-height:65px}.tu-density-compact .tu-dictation-row{min-height:41px}
@media(max-width:650px){.tu-dictation-row{grid-template-columns:1fr;gap:2px}.tu-guide-mark{height:26px}}

/* Task-first, compact grouping of the worksheet types. */
.tu-tab-group{display:flex;align-items:center;gap:7px;flex-wrap:wrap;width:100%;padding:6px 0}
.tu-tab-group+.tu-tab-group{border-top:1px solid #e4eaf2;margin-top:3px;padding-top:12px}
.tu-tab-category{font-size:12px;font-weight:700;color:#61758d;min-width:100%;letter-spacing:.01em}
@media(max-width:530px){.tu-tab-group{gap:6px}.tu-tab-category{font-size:12px}}
.regional-presets{padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin:4px 0 15px}.regional-presets .row{display:flex;flex-wrap:wrap;gap:8px}.regional-presets .row button{flex:none}.trace-pronunciation{display:inline-block;font-size:13px;margin:0 8px;color:#58708a;letter-spacing:0}.tu-paper-sheet .trace-pronunciation{font-size:12px}