.niji-drill {
  --niji-pink: #e65f8e;
  --niji-pink-dark: #bd3f70;
  --niji-purple: #7958a6;
  --niji-blue: #55acd0;
  --niji-yellow: #f3bd4f;
  --niji-ink: #4b4351;
  --niji-muted: #756d7c;
  --niji-line: #ecdce7;
  --niji-paper: #fffefa;
  color: var(--niji-ink);
  font-family: inherit;
  line-height: 1.8;
  margin: 24px auto 64px;
  max-width: 1180px;
}

/* くり上がり足し算ドリル：完成済みドリルと区別できる、あたたかなオレンジ系 */
.niji-carry-drill {
  --niji-accent: #ff873d;
  --niji-accent-dark: #d96527;
  --niji-accent-soft: #fff2e9;
}

.niji-carry-drill .niji-drill__hero {
  background: linear-gradient(135deg, #fff8f1 0%, #fff2e8 55%, #f4f7ff 100%);
}

.niji-carry-drill .niji-drill__hero-copy h2,
.niji-carry-drill .niji-drill__eyebrow {
  color: #c65f2d;
}

.niji-carry-drill .niji-drill__sheet-head {
  border-bottom-color: #f0a071;
}

.niji-carry-drill .niji-drill__sheet-badge {
  color: #a74f27;
  border-color: #f0a071;
  background: #fff2e9;
}

.niji-carry-drill .niji-drill__problem-number,
.niji-carry-drill .niji-drill__answer {
  color: #c65f2d;
}

.niji-drill *, .niji-drill *::before, .niji-drill *::after { box-sizing: border-box; }
.niji-drill button, .niji-drill input, .niji-drill summary { font: inherit; }
.niji-drill button { cursor: pointer; }
.niji-drill h2, .niji-drill h3, .niji-drill h4, .niji-drill p { margin-top: 0; }
.niji-drill h2, .niji-drill h3, .niji-drill h4 {
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.niji-drill h2::before, .niji-drill h2::after,
.niji-drill h3::before, .niji-drill h3::after,
.niji-drill h4::before, .niji-drill h4::after { display: none !important; }

.niji-drill__back { margin: 0 0 14px; }
.niji-drill__back a { color: #6d5d70; display: inline-flex; font-size: 14px; font-weight: 800; text-decoration: none; }
.niji-drill__back a:hover { color: var(--niji-pink-dark); text-decoration: underline; }

.niji-drill__hero {
  align-items: center;
  background: linear-gradient(125deg, #fff3f7 0%, #fbf7ff 55%, #edf8fd 100%);
  border: 1px solid #f1dce8;
  border-radius: 34px;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(220px, .65fr);
  min-height: 210px;
  overflow: hidden;
  padding: clamp(24px, 3.5vw, 42px);
  position: relative;
}

.niji-drill__hero::before {
  background: radial-gradient(circle, rgba(255,255,255,.9) 0 2px, transparent 3px);
  background-size: 29px 29px;
  content: "";
  inset: 0;
  opacity: .35;
  pointer-events: none;
  position: absolute;
}

.niji-drill__hero-copy { position: relative; z-index: 1; }
.niji-drill__hero-copy::after { color: #ef83ad; content: "♡  ✦"; font-size: 18px; letter-spacing: .18em; opacity: .72; position: absolute; right: 2%; top: -12px; transform: rotate(5deg); }
.niji-drill__eyebrow { color: var(--niji-pink); font-size: 12px; font-weight: 800; letter-spacing: .17em; margin-bottom: 8px; }
.niji-drill__hero h2 { color: var(--niji-pink-dark); font-size: clamp(34px, 4.2vw, 50px); letter-spacing: .02em; line-height: 1.25; margin-bottom: 14px; }
.niji-carry-drill .niji-drill__hero h2 { font-size: clamp(34px, 3.5vw, 42px); white-space: nowrap; }
.niji-drill__hero-copy > p:not(.niji-drill__eyebrow) { font-size: clamp(16px, 2vw, 20px); margin-bottom: 20px; }
.niji-drill__benefits { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 0; padding: 0; }
.niji-drill__benefits li { background: rgba(255,255,255,.88); border: 1px solid #edd5e3; border-radius: 999px; color: #695d6d; font-size: 15px; font-weight: 700; padding: 7px 17px; }

.niji-drill__hero-art { align-items: center; align-self: stretch; display: flex; justify-content: center; min-height: 145px; position: relative; }
.niji-drill__hero-art img { filter: drop-shadow(0 14px 18px rgba(102,74,111,.16)); max-height: 180px; max-width: 100%; object-fit: contain; }
.niji-drill__rainbow { filter: drop-shadow(0 10px 12px rgba(100,75,120,.15)); font-size: clamp(78px, 10vw, 118px); transform: rotate(-5deg); }
.niji-drill__cloud { color: #fff; filter: drop-shadow(0 3px 4px rgba(119,86,139,.18)); font-size: 62px; position: absolute; }
.niji-drill__cloud--one { bottom: 20px; left: 5%; }
.niji-drill__cloud--two { right: 0; top: 20px; }
.niji-drill__sparkle { color: var(--niji-yellow); font-size: 34px; position: absolute; right: 18%; top: 7%; }

.niji-drill__steps { display: grid; gap: 12px; grid-template-columns: repeat(3, 1fr); list-style: none; margin: 20px auto 32px; max-width: 820px; padding: 0; }
.niji-drill__steps li { align-items: center; background: #fff; border: 1px solid var(--niji-line); border-radius: 18px; box-shadow: 0 6px 22px rgba(93,72,100,.06); display: grid; grid-template-columns: 38px 1fr; padding: 13px 16px; }
.niji-drill__steps span { align-items: center; background: #fff0f5; border-radius: 50%; color: var(--niji-pink-dark); display: flex; font-weight: 900; grid-row: 1/3; height: 30px; justify-content: center; width: 30px; }
.niji-drill__steps strong { font-size: 14px; line-height: 1.4; }
.niji-drill__steps small { color: var(--niji-muted); font-size: 11px; line-height: 1.4; }

.niji-drill__app { align-items: start; display: grid; gap: 28px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.niji-drill__settings, .niji-drill__preview { background: #fff; border: 1px solid var(--niji-line); border-radius: 26px; box-shadow: 0 12px 36px rgba(74,53,80,.08); padding: clamp(20px, 3vw, 32px); position: relative; }
.niji-drill__settings::after { bottom: 13px; color: #e790b4; content: "♡  ✦  ☆"; font-size: 13px; letter-spacing: .18em; opacity: .48; pointer-events: none; position: absolute; right: 18px; }
.niji-drill__preview::after { bottom: 14px; color: #78b9d6; content: "☆  ✦"; font-size: 13px; letter-spacing: .2em; opacity: .42; pointer-events: none; position: absolute; right: 18px; }
.niji-drill__settings-heading, .niji-drill__preview-head { align-items: center; display: flex; justify-content: space-between; margin-bottom: 22px; }
.niji-drill__settings-heading h3, .niji-drill__preview-head h3 { font-size: clamp(21px, 2.2vw, 28px); line-height: 1.4; margin-bottom: 0; min-width: 0; }
.niji-drill__settings-heading h3 { white-space: nowrap; }
.niji-drill__settings-heading > span { align-items: center; aspect-ratio: 1; background: #fff3c8; border-radius: 16px; color: #d18c16; display: flex; flex: 0 0 52px; font-size: 25px; height: 52px; justify-content: center; line-height: 1; transform: rotate(-5deg); width: 52px; }

.niji-drill fieldset { border: 0; margin: 0 0 24px; padding: 0; }
.niji-drill legend { align-items: center; display: flex; font-size: 15px; font-weight: 800; gap: 8px; margin-bottom: 11px; padding: 0; width: 100%; }
.niji-drill legend span { align-items: center; background: #fce6ef; border-radius: 50%; color: var(--niji-pink-dark); display: inline-flex; height: 25px; justify-content: center; width: 25px; }
.niji-drill__choices { display: grid; gap: 9px; }
.niji-drill__choices--2 { grid-template-columns: repeat(2, 1fr); }
.niji-drill__choices--3 { grid-template-columns: repeat(3, 1fr); }
.niji-drill__choices label, .niji-drill__level { cursor: pointer; position: relative; }
.niji-drill__choices input, .niji-drill__level input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.niji-drill__choices label > span { align-items: center; background: #fff; border: 2px solid #eadfe7; border-radius: 14px; color: #8a7081; display: flex; flex-direction: column; font-size: 17px; justify-content: center; min-height: 61px; padding: 9px; transition: .18s ease; }
.niji-drill__choices label > span strong { color: var(--niji-ink); font-size: clamp(11px, 1.1vw, 14px); line-height: 1.3; white-space: nowrap; }
.niji-drill__choices input:checked + span { background: #fff2f7; border-color: var(--niji-pink); box-shadow: 0 4px 12px rgba(205,72,124,.12); color: var(--niji-pink-dark); }
.niji-drill__choices input:focus-visible + span, .niji-drill__level input:focus-visible + span { outline: 3px solid #3a78d2; outline-offset: 2px; }

.niji-drill__levels { display: grid; gap: 8px; grid-template-columns: repeat(3, 1fr); }
.niji-drill__level > span { align-items: center; border: 2px solid transparent; border-radius: 15px; display: flex; flex-direction: column; min-height: 105px; padding: 10px 6px; text-align: center; transition: .18s ease; }
.niji-drill__level i { font-size: 23px; font-style: normal; line-height: 1.3; }
.niji-drill__level strong { font-size: 14px; }
.niji-drill__level small { color: var(--niji-muted); font-size: 10px; }
.niji-drill__level--easy > span { background: #fff3f7; }
.niji-drill__level--normal > span { background: #eff9fd; }
.niji-drill__level--challenge > span { background: #f6f1fb; }
.niji-drill__level--easy input:checked + span { border-color: #e8799e; }
.niji-drill__level--normal input:checked + span { border-color: #65b5d3; }
.niji-drill__level--challenge input:checked + span { border-color: #9a78c1; }
.niji-drill__level-note { color: var(--niji-muted); font-size: 11px; margin: 8px 0 0; text-align: center; }

.niji-drill__options { border: 1px solid var(--niji-line); border-radius: 14px; margin-bottom: 18px; overflow: hidden; }
.niji-drill__options summary { background: #fcfafc; cursor: pointer; font-size: 14px; font-weight: 700; min-height: 48px; padding: 11px 15px; }
.niji-drill__option-grid { display: grid; font-size: 13px; gap: 10px; grid-template-columns: repeat(2, 1fr); padding: 14px 15px 16px; }
.niji-drill__option-grid label { align-items: center; display: flex; gap: 7px; }
.niji-drill__option-grid input { accent-color: var(--niji-pink-dark); height: 18px; width: 18px; }
.niji-drill__create { background: linear-gradient(110deg, #d94c81, #8e65b7); border: 0; border-radius: 15px; box-shadow: 0 7px 0 #763e75, 0 12px 24px rgba(116,63,117,.2); color: #fff; display: block; font-size: 17px; font-weight: 800; margin-bottom: 26px; min-height: 56px; padding: 12px 20px; width: 100%; }
.niji-drill__create:hover { filter: brightness(1.04); transform: translateY(-1px); }
.niji-drill__create:active { box-shadow: 0 3px 0 #763e75; transform: translateY(4px); }
.niji-drill__privacy { color: var(--niji-muted); font-size: 10px; line-height: 1.7; margin: 0; text-align: center; }

.niji-drill__preview { background: linear-gradient(180deg, #fbf8fc, #f5f9fb); min-width: 0; overflow: hidden; scroll-margin-top: 92px; }
.niji-drill__tabs { background: #ebe6ed; border-radius: 999px; display: flex; padding: 3px; }
.niji-drill__tabs button { background: transparent; border: 0; border-radius: 999px; color: #6f6574; font-size: 12px; font-weight: 700; min-height: 34px; padding: 5px 15px; }
.niji-drill__tabs button[aria-selected="true"] { background: #fff; box-shadow: 0 2px 6px rgba(73,56,78,.12); color: var(--niji-pink-dark); }
.niji-drill__tabs button:disabled { cursor: not-allowed; opacity: .35; }
.niji-drill__paper-wrap { margin: 0 auto; max-width: 560px; min-width: 0; overflow: hidden; scroll-margin-top: 92px; width: 100%; }
.niji-drill__paper { aspect-ratio: 210 / 297; background: var(--niji-paper); border: 1px solid #ddd6d0; box-shadow: 0 13px 34px rgba(59,47,61,.16); max-width: 100%; min-width: 0; overflow: hidden; padding: 5.7% 5.7% 3.2%; width: 100%; }
.niji-drill__sheet { display: flex; flex-direction: column; height: 100%; }
.niji-drill__sheet-head { align-items: start; border-bottom: 2px solid #d8a6bd; display: grid; gap: 2px 3%; grid-template-areas: "title badge" "meta student"; grid-template-columns: minmax(0, 1fr) auto; padding-bottom: 3.1%; }
.niji-drill__sheet-title { grid-area: title; min-width: 0; }
.niji-drill__sheet-head p { align-items: center; color: #a94d75; display: flex; font-size: clamp(8px, 1.25vw, 11px); font-weight: 800; gap: .35em; letter-spacing: .08em; margin-bottom: 0; }
.niji-drill__brand-rainbow { display: inline-block; font-size: 1.16em; letter-spacing: 0; line-height: 1; }
.niji-drill__sheet-head h4 { color: #443b48; font-size: clamp(17px, 2.45vw, 23px); line-height: 1.28; margin-bottom: 0; white-space: nowrap; }
.niji-drill__sheet-meta { align-self: end; color: #746b76; font-size: clamp(8px, 1.18vw, 11px); font-weight: 700; grid-area: meta; line-height: 1.35; margin-top: 1px; white-space: nowrap; }
.niji-drill__sheet-badge { align-self: start; background: #fae5ee; border: 1px solid #e9b7cc; border-radius: 999px; color: #a84770; font-size: clamp(7px, 1.1vw, 10px); font-weight: 800; grid-area: badge; justify-self: end; padding: 3px 9px; }
.niji-drill__student { align-items: flex-end; align-self: end; display: flex; font-size: clamp(7px, 1.02vw, 10px); gap: 24px; grid-area: student; justify-content: flex-end; justify-self: end; min-width: 0; padding-bottom: 1px; white-space: nowrap; width: max-content; }
.niji-drill__student .niji-drill__date { display: flex; gap: 32px; }
.niji-drill__student .niji-drill__name { border-bottom: 1px solid #9f969d; flex: 1; min-width: 110px; }
.niji-drill__paper-wrap .niji-drill__student { gap: 12px; width: 130px; }
.niji-drill__paper-wrap .niji-drill__sheet-meta { font-size: 11px; }
.niji-drill__paper-wrap .niji-drill__student .niji-drill__date { gap: 18px; }
.niji-drill__paper-wrap .niji-drill__student .niji-drill__name { min-width: 80px; }
.niji-drill__problem-grid { align-content: start; display: grid; flex: 1; gap: 1.3% 5%; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; margin: 4% 0 0; min-height: 0; min-width: 0; padding: 0; }
.niji-drill__problem { align-items: center; border-bottom: 1px dotted #bbb1ba; box-sizing: border-box; column-gap: 4px; display: grid; font-size: clamp(9px, 1.7vw, 15px); grid-template-columns: 24px minmax(0, 1fr) auto; min-height: 28px; min-width: 0; padding: 2px 0; width: 100%; }
.niji-drill__problem-number { color: #a75479; font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif; font-size: .78em; font-weight: 800; line-height: 1; }
.niji-drill__problem-prompt { font-weight: 700; letter-spacing: .03em; min-width: 0; overflow: hidden; white-space: nowrap; }
.niji-drill__problem--text .niji-drill__problem-prompt,
.niji-drill__problem--compare .niji-drill__problem-prompt { font-size: .9em; }
.niji-drill__problem--dots .niji-drill__problem-prompt { font-size: .6em; letter-spacing: .13em; line-height: 1; white-space: nowrap; }
.niji-drill__answer-space { display: inline-block; min-width: 18px; }
.niji-drill__answer { color: #d62e45; font-weight: 900; min-width: 24px; text-align: center; }
.niji-drill__filled-box { align-items: center; border: 1.5px solid #d62e45; color: #d62e45; display: inline-flex; font-size: .88em; font-weight: 900; height: 1.18em; justify-content: center; line-height: 1; margin: 0 .12em; min-width: 1.18em; padding: 0 .08em; vertical-align: .04em; }
.niji-drill__problem.has-answer { column-gap: 6px; grid-template-columns: 24px auto minmax(0, 1fr); }
.niji-drill__problem.has-answer .niji-drill__answer { justify-self: start; min-width: 0; text-align: left; }
.niji-drill__sheet.has-30 .niji-drill__problem-grid { align-content: stretch; grid-auto-flow: column; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(10, minmax(0, 1fr)); gap: 0 3%; margin: 2% 0 1%; }
.niji-drill__paper-wrap .niji-drill__sheet.has-30 .niji-drill__problem-grid { transform: translateX(-2px); }
.niji-drill__sheet.has-30 .niji-drill__problem { column-gap: 2px; font-size: clamp(9px, 1.15vw, 12px); grid-template-columns: 18px minmax(0, 1fr) auto; min-height: 17px; padding-block: 0; }
.niji-drill__sheet.has-30 .niji-drill__problem-prompt { letter-spacing: 0; overflow: visible; }
.niji-drill__sheet.has-10 .niji-drill__problem-grid { align-content: space-evenly; gap: 0 7%; grid-auto-flow: column; grid-template-rows: repeat(5, minmax(0, 1fr)); margin: 2% 0; }
.niji-drill__sheet.has-10 .niji-drill__problem { font-size: clamp(10px, 1.65vw, 15px); min-height: 42px; }
.niji-drill__sheet.has-20 .niji-drill__problem-grid { align-content: stretch; grid-auto-flow: column; grid-template-rows: repeat(10, minmax(0, 1fr)); margin: 3% 0 2%; }
.niji-drill__paper-wrap .niji-drill__sheet.has-20 .niji-drill__problem { font-size: 14px; }
.niji-drill__sheet.is-large-text .niji-drill__problem { font-size: clamp(11px, 1.9vw, 17px); }
.niji-drill__sheet.is-large-text .niji-drill__problem-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.niji-drill__sheet.is-large-text.has-30 .niji-drill__problem { font-size: clamp(10px, 1.45vw, 13px); grid-template-columns: 18px minmax(0, 1fr) auto; min-height: 18px; }
.niji-drill__sheet.is-large-text.has-30 .niji-drill__problem-grid { grid-auto-flow: column; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(10, minmax(0, 1fr)); }
.niji-drill__sheet-foot { align-items: flex-end; color: #8b7180; display: grid; flex-shrink: 0; font-size: clamp(6px, 1vw, 9px); gap: 8px; grid-template-columns: auto minmax(0, 1fr); padding-top: .6%; }
.niji-drill__site-name { color: #75677a; font-size: .72em; font-weight: 700; letter-spacing: 0; text-align: center; white-space: nowrap; }
.niji-drill__character-wrap { align-items: flex-end; display: flex; justify-self: start; line-height: 1; min-width: 0; }
.niji-drill__sheet-character { background: transparent !important; display: block; height: clamp(36px, 6.2vw, 58px); max-width: 100%; object-fit: contain; object-position: left bottom; position: relative; top: 1px; width: auto; }
.niji-drill__footer-balance { display: none; }
.niji-drill__sheet.is-ink-saver .niji-drill__sheet-character { display: none; }
.niji-drill__sheet.is-ink-saver .niji-drill__sheet-badge { background: #fff; border: 1px solid #aaa; color: #444; }
.niji-drill__sheet.is-ink-saver .niji-drill__sheet-head { border-color: #777; }
.niji-drill__sheet.is-ink-saver .niji-drill__sheet-head p, .niji-drill__sheet.is-ink-saver .niji-drill__problem-number { color: #333; }

.niji-drill__actions { display: grid; gap: 10px; grid-template-columns: .8fr 1.2fr; margin: 20px 0 20px; }
.niji-drill__actions button { border-radius: 13px; font-size: 14px; font-weight: 800; min-height: 49px; padding: 9px 13px; }
.niji-drill__secondary { background: #fff; border: 2px solid #ccb8c9; color: #665a68; }
.niji-drill__print { background: linear-gradient(110deg, #598fcf, #6a6bc2); border: 0; box-shadow: 0 5px 0 #444f96; color: #fff; }
.niji-drill__print-note { clear: both; color: var(--niji-muted); font-size: 10px; line-height: 1.7; margin: 0; padding-top: 2px; position: relative; text-align: center; }
.niji-drill__print-pages { display: none; }

.niji-drill__tips { align-items: center; background: linear-gradient(120deg, #fff7f9, #faf7ff); border: 1px solid var(--niji-line); border-radius: 28px; display: grid; gap: 35px; grid-template-columns: 1.05fr .95fr; margin-top: 36px; padding: clamp(25px, 4vw, 48px); }
.niji-drill__tips h3 { font-size: clamp(23px, 3vw, 34px); line-height: 1.55; margin-bottom: 15px; }
.niji-drill__tips p:not(.niji-drill__eyebrow) { color: #625966; font-size: 14px; margin-bottom: 0; }
.niji-drill__tips ul { display: grid; gap: 10px; list-style: none; margin: 0; padding: 0; }
.niji-drill__tips li { align-items: center; background: rgba(255,255,255,.84); border: 1px solid #efe2eb; border-radius: 16px; display: grid; grid-template-columns: 40px 1fr; padding: 10px 15px; }
.niji-drill__tips li > span { align-items: center; color: var(--niji-pink); display: flex; font-size: 22px; grid-row: 1/3; justify-content: center; }
.niji-drill__tips li strong { font-size: 13px; line-height: 1.4; }
.niji-drill__tips li small { color: var(--niji-muted); font-size: 10px; line-height: 1.4; }

@media (max-width: 850px) {
  .niji-drill { margin-top: 12px; }
  .niji-drill__hero { grid-template-columns: 1fr minmax(150px, .4fr); min-height: 185px; padding: 24px 28px; }
  .niji-drill__app { grid-template-columns: 1fr; }
  .niji-drill__settings, .niji-drill__preview { padding: 22px; }
  .niji-drill__tips { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .niji-drill__back { margin-bottom: 10px; }
  .niji-drill__back a { font-size: 13px; }
  .niji-carry-drill .niji-drill__hero h2 { font-size: clamp(21px, 5.8vw, 25px) !important; }
  .niji-drill { margin-bottom: 40px; }
  .niji-drill__hero { border-radius: 24px; display: block; min-height: 175px; padding: 20px 18px; position: relative; }
  .niji-drill__hero h2 { font-size: clamp(24px, 7.2vw, 30px); white-space: nowrap; }
  .niji-drill__hero-copy > p:not(.niji-drill__eyebrow) { font-size: 15px; max-width: 72%; }
  .niji-drill__hero-art { min-height: 0; position: absolute; right: 10px; top: 78px; width: 100px; }
  .niji-drill__rainbow { font-size: 78px; }
  .niji-drill__cloud { font-size: 38px; }
  .niji-drill__benefits { gap: 5px; }
  .niji-drill__benefits li { font-size: 14px; padding: 6px 10px; }
  .niji-drill__choices label > span strong { font-size: 13px; }
  .niji-drill__steps { gap: 5px; margin: 14px 0 22px; }
  .niji-drill__steps li { display: flex; flex-direction: column; min-width: 0; padding: 10px 4px; text-align: center; }
  .niji-drill__steps span { font-size: 11px; height: 25px; width: 25px; }
  .niji-drill__steps strong { font-size: 11px; }
  .niji-drill__steps small { display: none; }
  .niji-drill__settings, .niji-drill__preview { border-radius: 21px; padding: 18px 15px; }
  .niji-drill__levels { gap: 5px; }
  .niji-drill__level > span { min-height: 96px; padding-inline: 2px; }
  .niji-drill__level strong { font-size: 12px; }
  .niji-drill__level small { font-size: 9px; }
  .niji-drill__option-grid { grid-template-columns: 1fr; }
  .niji-drill__preview-head { align-items: flex-start; gap: 10px; }
  .niji-drill__preview-head h3 { font-size: 19px; }
  .niji-drill__paper { padding: 5.2% 5.2% 3%; }
  .niji-drill__paper { position: relative; }
  .niji-drill__paper-wrap .niji-drill__problem-grid { padding-bottom: 68px; }
  .niji-drill__paper-wrap .niji-drill__sheet-foot { bottom: 10px; left: 5.2%; position: absolute; right: 5.2%; transform: none; }
  .niji-drill__sheet.has-30 .niji-drill__problem-grid { gap: 0 2.4%; margin: .5% 0 .5%; padding-bottom: 68px; }
  .niji-drill__sheet.has-30 .niji-drill__problem { font-size: 9px; min-height: 14px; }
  .niji-drill__paper-wrap .niji-drill__sheet-foot { font-size: 6.5px; }
  .niji-drill__sheet.has-30 .niji-drill__sheet-foot { font-size: 6.5px; padding-top: 1%; }
  .niji-drill__sheet.has-30 .niji-drill__site-name { white-space: nowrap; }
  .niji-drill__tabs button { min-height: 37px; padding-inline: 12px; }
  .niji-drill__paper { box-shadow: 0 8px 22px rgba(59,47,61,.13); }
  .niji-drill__actions { grid-template-columns: 1fr; }
  .niji-drill__actions button { min-height: 50px; }
  .niji-drill__tips { border-radius: 22px; gap: 22px; padding: 25px 19px; }
}

@media (prefers-reduced-motion: reduce) {
  .niji-drill *, .niji-drill *::before, .niji-drill *::after { scroll-behavior: auto !important; transition: none !important; }
}

@page { size: A4 portrait; margin: 0; }

@media print {
  html, body { margin: 0 !important; padding: 0 !important; }
  body.niji-drill-printing > *:not(.niji-drill__print-pages) { display: none !important; }
  body.niji-drill-printing > .niji-drill__print-pages { display: block !important; margin: 0 !important; max-width: none !important; position: static !important; width: 100% !important; }
  .niji-drill__print-pages .niji-drill__paper { aspect-ratio: auto; border: 0; break-after: page; break-inside: avoid; box-shadow: none; height: 297mm; margin: 0; overflow: hidden; padding: 12mm 12mm 6mm; page-break-after: always; page-break-inside: avoid; position: relative; width: 100%; }
  .niji-drill__print-pages .niji-drill__paper:last-child { break-after: auto; page-break-after: auto; }
  .niji-drill__print-pages .niji-drill__sheet-head { padding-bottom: 3.5mm; position: relative; }
  .niji-drill__print-pages .niji-drill__sheet-head p { font-size: 12pt; }
  .niji-drill__print-pages .niji-drill__sheet-head h4 { font-size: 27pt; }
  .niji-drill__print-pages .niji-drill__sheet-badge, .niji-drill__print-pages .niji-drill__student { font-size: 11pt; }
  .niji-drill__print-pages .niji-drill__student { position: static; }
  .niji-drill__print-pages .niji-drill__sheet-meta { font-size: 13pt; }
  .niji-drill__print-pages .niji-drill__student .niji-drill__date { gap: 16mm; }
  .niji-drill__print-pages .niji-drill__sheet-badge { background: #fae5ee !important; border: 1.3pt solid #d88dad !important; border-radius: 999px; color: #9f3f68 !important; padding: 2.2mm 4.2mm; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .niji-drill__print-pages .niji-drill__problem-grid { align-content: space-evenly; gap: 0 5%; margin: 3mm 0 2mm; padding-bottom: 20mm; }
  .niji-drill__print-pages .niji-drill__problem { font-size: 16pt; min-height: 8.5mm; }
  .niji-drill__print-pages .niji-drill__sheet.has-30 .niji-drill__problem-grid { align-content: stretch; gap: 0 3.5mm; grid-auto-flow: column; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(10, minmax(0, 1fr)); margin: 2mm 0 1mm; }
  .niji-drill__print-pages .niji-drill__sheet.has-30 .niji-drill__problem { font-size: 15pt; grid-template-columns: 5mm minmax(0, 1fr) auto; min-height: 6.5mm; }
  .niji-drill__print-pages .niji-drill__sheet.has-10 .niji-drill__problem-grid { align-content: space-evenly; margin: 4mm 0 2mm; }
  .niji-drill__print-pages .niji-drill__sheet.has-10 .niji-drill__problem { font-size: 16pt; min-height: 13mm; }
  .niji-drill__print-pages .niji-drill__sheet.is-large-text .niji-drill__problem { font-size: 18pt; min-height: 7mm; }
  .niji-drill__print-pages .niji-drill__sheet.is-large-text.has-30 .niji-drill__problem { font-size: 11.5pt; min-height: 5.5mm; }
  .niji-drill__print-pages .niji-drill__sheet-foot { bottom: 8mm; font-size: 8.5pt; left: 12mm; padding-top: .8mm; position: absolute; right: 12mm; transform: none; }
  .niji-drill__print-pages .niji-drill__site-name { font-size: 10pt; }
  .niji-drill__print-pages .niji-drill__sheet-character { background: transparent !important; height: 17mm; max-width: 64mm; top: .5mm; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .niji-drill__print-pages .niji-drill__answer { color: #d62e45 !important; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .niji-drill__print-pages .niji-drill__filled-box { background: #fff0f5 !important; border-width: 1.8px; font-size: 1em; font-weight: 900; min-width: 1.28em; padding: .02em .12em; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .niji-drill__print-pages .niji-drill__paper { background-image: none; }
  body.niji-drill-ios-print .niji-drill__print-pages .niji-drill__paper { height: 104vh; max-height: none; overflow: visible; padding-bottom: 11mm; }
  body.niji-drill-ios-print .niji-drill__print-pages .niji-drill__problem-grid { margin-top: 6mm; }
  body.niji-drill-ios-print .niji-drill__print-pages .niji-drill__sheet.has-30 .niji-drill__problem-grid { margin-top: 5mm; }
  body.niji-drill-ios-print .niji-drill__print-pages .niji-drill__sheet-foot { margin-bottom: 0; transform: translateY(9mm); }
}

