.nqr-preparation-page { margin: 0; min-height: 100vh; display: grid; place-items: center; padding: 20px; box-sizing: border-box; background: #f2f5fa; }
.nqr-preparation-page main { width: min(100%, 850px); }
.nqr-preparation { --nqr-ink: #0f2343; --nqr-blue: #2457e6; width: min(100%, 850px); max-height: calc(100dvh - 32px); overflow-y: auto; box-sizing: border-box; border: 1px solid #e1e8f2; border-radius: 22px; background: #fff; color: var(--nqr-ink); padding: 30px; box-shadow: 0 24px 80px #0f234318; font: 14px/1.5 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; text-align: left; }
.nqr-preparation * { box-sizing: border-box; }
.nqr-preparation [hidden] { display: none !important; }
.nqr-preparation p { margin: 0; }
.nqr-preparation__eyebrow { color: var(--nqr-blue); font-size: 10px; font-weight: 750; letter-spacing: .15em; }
.nqr-preparation h2 { margin: 7px 0; font-size: clamp(22px, 3.6vw, 30px); letter-spacing: -.035em; line-height: 1.2; font-weight: 750; color: var(--nqr-ink); }
.nqr-preparation__heading > p:last-child { color: #65738a; font-size: 13px; }
.nqr-preparation__meter { margin: 22px 0 20px; border: 1px solid #e2eafa; border-radius: 14px; padding: 16px 18px; background: #f6f8fe; }
.nqr-preparation__numbers { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.nqr-preparation__numbers strong { font-size: 27px; line-height: 1; color: var(--nqr-blue); font-variant-numeric: tabular-nums; }
.nqr-preparation__numbers > span:not(.nqr-preparation__spinner) { color: #536681; font-size: 12px; }
.nqr-preparation__spinner { margin-left: auto; flex-shrink: 0; width: 21px; height: 21px; border: 2px solid #d7e1fa; border-top-color: var(--nqr-blue); border-radius: 50%; animation: nqr-turn 1s linear infinite; }
.nqr-preparation progress { display: block; width: 100%; height: 7px; border: 0; border-radius: 10px; overflow: hidden; background: #e2e8f5; accent-color: var(--nqr-blue); }
.nqr-preparation progress::-webkit-progress-bar { background: #e2e8f5; border-radius: 10px; }
.nqr-preparation progress::-webkit-progress-value { background: var(--nqr-blue); border-radius: 10px; }
.nqr-preparation progress::-moz-progress-bar { background: var(--nqr-blue); border-radius: 10px; }
.nqr-preparation__meter p { margin-top: 10px; color: #65738a; font-size: 12px; }
.nqr-preparation__list-heading { display: flex; justify-content: space-between; margin-bottom: 10px; font-size: 11px; font-weight: 700; }
.nqr-preparation__list-heading span:last-child { color: #7b899d; font-weight: 500; }
.nqr-preparation__questions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 54px; gap: 6px; list-style: none; margin: 0; padding: 0; }
.nqr-preparation__questions li { display: grid; grid-template-columns: 27px minmax(0, 1fr); grid-template-rows: 1fr auto; align-items: center; gap: 1px 9px; padding: 7px 10px; border: 1px solid #e8edf4; border-radius: 10px; background: #fff; }
.nqr-preparation__number { display: grid; grid-row: 1 / 3; place-items: center; width: 27px; height: 27px; border-radius: 8px; background: #f0f4fa; color: #74849b; font-size: 10px; font-weight: 750; font-variant-numeric: tabular-nums; }
.nqr-preparation__question-title { font-size: 12px; line-height: 1.2; font-weight: 600; }
.nqr-preparation__state { grid-column: 2; display: flex; align-items: center; gap: 4px; color: #7b899d; font-size: 9px; line-height: 1.1; white-space: nowrap; }
.nqr-preparation__pages { display: flex; align-items: center; gap: 6px; margin-top: 10px; }
.nqr-preparation__pages button { min-height: 32px; padding: 5px 12px; border: 1px solid #e2eafa; border-radius: 8px; background: #fff; color: #65738a; font: inherit; font-size: 11px; cursor: pointer; }
.nqr-preparation__pages [aria-current="true"] { background: #eff4ff; color: var(--nqr-blue); border-color: #a9bef5; font-weight: 700; }
.nqr-preparation__pages button:last-child { margin-left: auto; border-color: transparent; padding-right: 0; }
.nqr-preparation__questions[data-entering="true"] { animation: nqr-page-in .3s ease both; }
.nqr-preparation [data-state="preparing"] .nqr-preparation__state { color: var(--nqr-blue); }
.nqr-preparation [data-state="preparing"] .nqr-preparation__state::before { content: ""; width: 4px; height: 4px; background: currentColor; border-radius: 50%; animation: nqr-pulse 1.7s ease-in-out infinite; }
.nqr-preparation [data-state="ready"] { background: #f7fcfa; border-color: #dcefe7; }
.nqr-preparation [data-state="ready"] .nqr-preparation__number { color: #087657; background: #e2f3eb; }
.nqr-preparation [data-state="ready"] .nqr-preparation__state { color: #087657; }
.nqr-preparation [data-state="ready"] .nqr-preparation__state::before { content: "✓"; font-weight: 800; animation: nqr-tick .3s ease both; }
.nqr-preparation [data-state="almost_prepared"] { background: #fffbeb; border-color: #fde68a; }
.nqr-preparation [data-state="almost_prepared"] .nqr-preparation__number { color: #854d0e; background: #fef3c7; }
.nqr-preparation [data-state="almost_prepared"] .nqr-preparation__state { color: #854d0e; }
.nqr-preparation [data-state="almost_prepared"] .nqr-preparation__state::before { content: "✓"; color: #ca8a04; font-weight: 800; }
.nqr-preparation [data-state="failed"] .nqr-preparation__state { color: #a7462b; }
.nqr-preparation__footer { margin-top: 16px; font-size: 11px; color: #65738a; }
.nqr-preparation .nqr-preparation__legend { margin-bottom: 7px; }
.nqr-preparation__legend-ready { color: #087657; font-weight: 650; }
.nqr-preparation__legend-almost { color: #854d0e; font-weight: 650; }
.nqr-preparation__footer a { display: inline-block; margin-top: 9px; color: var(--nqr-blue); text-underline-offset: 3px; }
.nqr-preparation__footer .nqr-preparation__error { margin-top: 10px; color: #a7462b; }
.nqr-preparation__footer button { display: block; margin-top: 10px; padding: 10px 16px; min-height: 42px; border: 0; border-radius: 9px; background: var(--nqr-blue); color: #fff; font: inherit; font-weight: 650; cursor: pointer; }
.nqr-preparation :focus-visible { outline: 2px solid var(--nqr-blue); outline-offset: 3px; }
.nqr-preparation[data-complete="true"] .nqr-preparation__spinner { animation: none; border-color: #b4dfd0; border-top-color: #087657; }
@keyframes nqr-turn { to { transform: rotate(360deg); } }
@keyframes nqr-pulse { 50% { opacity: .25; } }
@keyframes nqr-page-in { from { opacity: .35; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
@keyframes nqr-tick { from { transform: scale(.5); } to { transform: scale(1); } }
@media (max-width: 600px) {
  .nqr-preparation-page { padding: 10px; }
  .nqr-preparation { padding: 16px 12px; border-radius: 17px; max-height: calc(100dvh - 24px); }
  .nqr-preparation__meter { margin: 12px 0; padding: 12px; }
  .nqr-preparation__questions { gap: 5px; grid-auto-rows: 54px; }
  .nqr-preparation__questions li { grid-template-columns: 19px minmax(0, 1fr); gap: 1px 5px; padding: 6px; }
  .nqr-preparation__number { width: 19px; height: 24px; font-size: 9px; border-radius: 5px; }
  .nqr-preparation__question-title { font-size: 11px; }
  .nqr-preparation__footer { margin-top: 10px; }
}
@media (max-height: 740px) {
  .nqr-preparation { padding: 12px; }
  .nqr-preparation__heading > p { display: none; }
  .nqr-preparation h2 { font-size: 22px; margin: 0; }
  .nqr-preparation__meter { margin: 10px 0; padding: 9px 12px; }
  .nqr-preparation__meter p { display: none; }
  .nqr-preparation__numbers { margin-bottom: 7px; }
  .nqr-preparation__numbers strong { font-size: 24px; }
  .nqr-preparation__questions { grid-auto-rows: 44px; gap: 4px; }
  .nqr-preparation__questions li { padding-top: 3px; padding-bottom: 3px; }
  .nqr-preparation__question-title { font-size: 10px; }
  .nqr-preparation__pages { margin-top: 7px; }
  .nqr-preparation__footer { margin-top: 8px; font-size: 10px; }
  .nqr-preparation__footer a { margin-top: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  .nqr-preparation *, .nqr-preparation *::before { animation: none !important; transition: none !important; }
}
