:root {
  --bg:#f5f9ff;
  --ink:#17324d;
  --blue:#175cd3;
  --sky:#cce7ff;
  --muted:#506780;
  --line:#d5e4f3;
}

* {
  box-sizing:border-box;
}

body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:Arial,Helvetica,sans-serif;
  font-size:18px;
  line-height:1.6;
}

button,input,select {
  font:inherit;
}

button,a,input,select {
  -webkit-tap-highlight-color:transparent;
}

button {
  cursor:pointer;
  min-height:44px;
  line-height:1.4;
}

button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible {
  outline:3px solid #077ea4;
  outline-offset:4px;
}

header,main,footer {
  max-width:1160px;
  margin:auto;
}

header {
  height:100px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--line);
}

a {
  text-decoration:none;
  color:inherit;
}

.brand {
  display:flex;
  align-items:center;
  font-size:22px;
  font-weight:800;
  letter-spacing:-1px;
}

.brand-icon {
  background:var(--blue);
  color:var(--sky);
  border-radius:12px;
  font-size:36px;
  width:43px;
  height:43px;
  display:grid;
  place-items:center;
  margin-right:12px;
  font-weight:400;
}

.brand-end {
  font-weight:400;
  color:#506780;
}

.header-note {
  font-size:16px;
  color:var(--muted);
}

.intro {
  padding:52px 0 42px;
  position:relative;
}

.eyebrow {
  font-size:14px;
  font-weight:700;
  letter-spacing:1.5px;
  color:#37668d;
}

h1 {
  font-size:66px;
  letter-spacing:-3.5px;
  line-height:1.12;
  margin:17px 0 20px;
  position:relative;
  width:fit-content;
}

h2,h3 {
  line-height:1.3;
}

h1 span {
  color:#1763bb;
}

h1 svg {
  position:absolute;
  width:45%;
  right:0;
  bottom:-12px;
  fill:none;
  stroke:#80c6f8;
  stroke-width:5;
}

.intro>p {
  font-size:18px;
  line-height:1.7;
  color:#506780;
}

.intro-badges {
  position:absolute;
  right:0;
  bottom:50px;
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  font-size:14px;
  color:#486b89;
}

.tabs {
  display:flex;
  gap:34px;
  border-bottom:1px solid var(--line);
  margin-bottom:34px;
}

.tabs button {
  font-size:18px;
  border:0;
  background:none;
  color:#506780;
  padding:15px 0 19px;
  font-weight:600;
  border-bottom:3px solid transparent;
  margin-bottom:-1px;
}

.tabs button span {
  font-size:14px;
  margin-right:8px;
  font-weight:400;
}

.tabs button.active {
  color:var(--blue);
  border-bottom-color:var(--blue);
}

.panel h2 {
  font-size:27px;
  letter-spacing:-.8px;
  margin:10px 0 18px;
}

.section-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.little-note {
  font-family:Georgia,serif;
  font-style:italic;
  color:#526d88;
}

.rows {
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:10px;
  margin:10px 0 27px;
}

.rows button {
  height:54px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#ffffff;
  font-size:19px;
  color:var(--ink);
  transition:transform .15s,background .15s;
}

.rows button:hover {
  transform:translateY(-3px);
  background:#e3f1ff;
}

.rows button.active {
  background:var(--blue);
  color:white;
  border-color:var(--blue);
  box-shadow:0 4px 0 #123d84;
}

.learn-grid {
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
  gap:23px;
}

.visual-card {
  min-width:0;
  padding:27px 30px;
  border:1px solid #c8def5;
  background:#e9f3ff;
  border-radius:18px;
}

.card-top {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:space-between;
  align-items:center;
  font-size:16px;
  color:#426482;
}

.pill {
  font-size:14px;
  line-height:1.4;
  font-weight:bold;
  letter-spacing:.6px;
  background:#d4e9ff;
  padding:8px 10px;
  border-radius:5px;
}

.visual-card h3 {
  font-size:39px;
  letter-spacing:-1px;
  margin:27px 0;
}

.dots {
  display:grid;
  gap:9px;
  width:fit-content;
  max-width:100%;
  margin:0 auto 20px;
  min-height:125px;
  align-content:center;
}

.dot {
  width:14px;
  height:14px;
  background:#2164b4;
  border-radius:50%;
}

.dots .dot:nth-child(2n) {
  background:#4a8dd6;
}

#addition {
  text-align:center;
  font-size:18px;
  color:#456787;
  overflow-wrap:anywhere;
}

.stepper {
  display:flex;
  align-items:center;
  gap:12px;
  margin:25px 0;
  font-size:16px;
  color:#426482;
}

.stepper button {
  background:#ffffff;
  border:1px solid #bfd7ef;
  border-radius:50%;
  width:44px;
  height:44px;
  font-size:24px;
  color:var(--blue);
  flex-shrink:0;
}

.stepper input {
  width:100%;
  min-width:0;
  min-height:44px;
  accent-color:var(--blue);
}

.stepper label {
  white-space:nowrap;
}

.tip {
  display:flex;
  gap:12px;
  border-top:1px solid #c5dcf3;
  padding-top:20px;
  font-size:18px;
}

.tip>span {
  font-size:25px;
  color:#3274bb;
}

.tip p {
  margin:6px 0 0;
  line-height:1.6;
  color:#426482;
}

.sequence-card {
  min-width:0;
  background:#ffffff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:25px;
}

.sequence-card h3 {
  font-size:21px;
  margin:0 0 7px;
}

.sequence-card>p {
  font-size:16px;
  color:var(--muted);
  margin-bottom:16px;
}

#sequence {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5px 14px;
  margin-bottom:18px;
}

.sequence-line {
  background:#f3f8ff;
  padding:9px 12px;
  border-radius:6px;
  font-size:20px;
  gap:8px;
  line-height:1.5;
  display:flex;
  justify-content:space-between;
  color:#506780;
}

.sequence-line.highlight {
  background:#ddecff;
  color:var(--blue);
}

.sequence-line strong {
  color:var(--ink);
}

.primary {
  border:0;
  background:var(--blue);
  color:#fff;
  border-radius:9px;
  padding:14px 20px;
  font-weight:600;
  font-size:18px;
}

.primary:hover {
  background:#124da9;
}

.primary.full {
  width:100%;
  display:flex;
  justify-content:space-between;
}

.bottom-strip {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;
  margin-top:37px;
  padding:28px 0;
  border-bottom:1px solid var(--line);
}

.bottom-strip>div {
  display:flex;
  gap:15px;
  align-items:flex-start;
}

.feature-icon {
  font-size:25px;
  color:#2f74b9;
}

.bottom-strip strong {
  font-size:18px;
}

.bottom-strip p {
  font-size:16px;
  color:var(--muted);
  line-height:1.6;
  margin:7px 0;
}

footer {
  display:flex;
  flex-wrap:wrap;
  gap:16px 24px;
  justify-content:space-between;
  align-items:center;
  padding:27px 0;
  font-size:14px;
  color:#506780;
}

.footer-brand {
  font-weight:bold;
  color:#426482;
}

.text-button {
  border:0;
  background:none;
  color:#306496;
  padding:8px;
  font-size:16px;
}

.settings {
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  align-items:end;
  padding:25px;
  background:#e9f3ff;
  border-radius:15px;
}

.settings label {
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:16px;
}

.settings select {
  min-height:48px;
  font-size:18px;
  max-width:100%;
  padding:12px;
  border-radius:7px;
  border:1px solid var(--line);
  background:white;
}

.quiz {
  max-width:650px;
  margin:0 auto;
  text-align:center;
  padding:30px;
  background:#e9f3ff;
  border-radius:18px;
}

.quiz-top {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:space-between;
  align-items:center;
  font-size:16px;
}

.quiz progress {
  width:100%;
  accent-color:var(--blue);
  height:9px;
  margin-top:15px;
}

.quiz h2 {
  font-size:58px;
  margin:30px;
}

.quiz input {
  width:135px;
  padding:12px;
  font-size:28px;
  border:1px solid #8ab3df;
  border-radius:8px;
  text-align:center;
}

.quiz form {
  display:flex;
  gap:12px;
  justify-content:center;
}

#feedback {
  min-height:28px;
  line-height:1.6;
}

.result-score {
  font-size:clamp(32px,5vw,50px);
  line-height:1.25;
  margin:20px 0;
  color:var(--blue);
}

table {
  width:100%;
  border-collapse:collapse;
  margin:20px 0;
}

td,th {
  padding:12px;
  border-bottom:1px solid var(--line);
  text-align:left;
}

.history {
  font-size:16px;
  color:#506780;
}

.history h3 {
  font-size:18px;
}

.history-items {
  display:flex;
  flex-wrap:wrap;
  gap:15px;
}

.history-items span {
  padding:10px;
  background:#e9f3ff;
  border-radius:7px;
}

dialog {
  width:min(550px,calc(100% - 32px));
  max-height:calc(100dvh - 32px);
  overflow-y:auto;
  font-size:18px;
  max-width:550px;
  border:1px solid var(--line);
  border-radius:15px;
  padding:30px;
  background:var(--bg);
  color:var(--ink);
}

dialog p {
  line-height:1.7;
}

dialog::backdrop {
  background:#102c5077;
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip:rect(0,0,0,0);
}

[hidden] {
  display:none!important;
}

@media(min-width:1450px) {
  .intro {
    padding-top:65px;
  }
}

@media(max-width:1220px) {
  header,main,footer {
    margin-left:30px;
    margin-right:30px;
  }
}

@media(max-width:1000px) {
  .intro-badges {
    position:static;
    margin-top:23px;
  }
  .learn-grid {
    grid-template-columns:1fr;
  }
}

@media(max-width:750px) {
  header {
    height:80px;
  }
  .header-note,.little-note {
    display:none;
  }
  .brand {
    font-size:18px;
  }
  .brand-icon {
    width:35px;
    height:35px;
    font-size:30px;
  }
  .intro {
    padding:35px 0 25px;
  }
  h1 {
    font-size:46px;
    letter-spacing:-2.5px;
  }
  .intro-badges {
    position:static;
    font-size:14px;
    gap:8px 14px;
    margin-top:23px;
  }
  .tabs {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:0;
  }
  .tabs button {
    min-width:0;
    min-height:68px;
    padding:12px 4px;
    font-size:16px;
    white-space:normal;
    hyphens:manual;
    overflow-wrap:normal;
  }
  .tabs button span {
    display:none;
  }
  .section-heading h2 {
    font-size:26px;
  }
  .rows {
    grid-template-columns:repeat(6,1fr);
    gap:8px;
  }
  .rows button {
    height:44px;
  }
  .bottom-strip {
    grid-template-columns:1fr;
    gap:17px;
  }
  .settings .primary {
    width:100%;
  }
  .visual-card {
    padding:23px 20px;
  }
  .dot {
    width:12px;
    height:12px;
  }
  .dots {
    gap:8px;
  }
  .stepper {
    gap:8px;
  }
  .stepper label {
    display:none;
  }
  footer {
    gap:18px;
  }
  footer>span {
    display:none;
  }
  header,main,footer {
    margin-left:20px;
    margin-right:20px;
  }
  .quiz {
    padding:20px 12px;
  }
  .quiz h2 {
    font-size:45px;
    margin:26px 0;
  }
  .quiz form {
    flex-wrap:wrap;
  }
  .sequence-card {
    padding:20px;
  }
  .sequence-line {
    padding:9px 10px;
  }
  td,th {
    padding:10px 8px;
    font-size:16px;
  }
  dialog {
    padding:24px;
  }
}

.visitor-count {
  display:inline-flex;
  align-items:center;
  padding:7px 10px;
  border:1px solid var(--line);
  border-radius:6px;
  background:#e9f3ff;
  color:#426482;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}

.result-actions,.pdf-actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:24px;
}

.secondary {
  border:1px solid #8ab3df;
  background:#ffffff;
  color:var(--blue);
  border-radius:9px;
  padding:13px 20px;
  font-weight:600;
  font-size:18px;
}

.secondary:hover {
  background:#e9f3ff;
}

#pdf-dialog {
  width:min(500px,calc(100% - 32px));
}

#pdf-dialog h2 {
  font-size:27px;
  letter-spacing:-.6px;
  margin-bottom:12px;
}

#pdf-dialog label {
  display:block;
  font-size:16px;
  font-weight:600;
  margin:22px 0 8px;
}

#pdf-first-name {
  display:block;
  width:100%;
  font-size:18px;
  min-height:48px;
  padding:13px;
  border:1px solid #8ab3df;
  border-radius:8px;
  background:white;
  color:var(--ink);
}

.pdf-actions {
  justify-content:flex-end;
}

.pdf-error {
  font-size:16px;
  color:#17324d;
}

.primary:disabled {
  cursor:wait;
  opacity:.7;
}

.training-mode {
  border:0;
  padding:0;
  margin:25px 0 12px;
  min-width:0;
}

.training-mode legend {
  font-size:16px;
  font-weight:600;
  margin-bottom:10px;
}

.mode-options {
  display:inline-flex;
  gap:5px;
  padding:5px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#e9f3ff;
  max-width:100%;
}

.mode-options label {
  position:relative;
  cursor:pointer;
}

.mode-options input {
  position:absolute;
  opacity:0;
  width:1px;
  height:1px;
}

.mode-options span {
  display:block;
  padding:12px 22px;
  border-radius:8px;
  font-size:18px;
  font-weight:600;
  color:#426482;
}

.mode-options input:checked+span {
  background:var(--blue);
  color:#ffffff;
  box-shadow:0 2px 4px #123d8420;
}

.mode-options input:focus-visible+span {
  outline:3px solid #077ea4;
  outline-offset:3px;
}

.training-hint {
  font-size:16px;
  line-height:1.6;
  color:var(--muted);
  margin:0 0 16px;
}

@media(max-width:400px) {
  header,main,footer {
    margin-left:16px;
    margin-right:16px;
  }
  .rows {
    gap:4px;
  }
  #sequence {
    grid-template-columns:1fr;
  }
  .settings {
    padding:20px;
  }
  .mode-options {
    display:flex;
  }
  .mode-options label {
    flex:1;
    text-align:center;
  }
  .mode-options span {
    padding:12px 14px;
  }
}

.daily-card {display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px;background:#e9f3ff;border:1px solid #c8def5;border-radius:18px;margin-bottom:28px;}
.daily-card h2 {font-size:27px;line-height:1.3;margin:10px 0;}
.daily-card p {margin:8px 0;color:var(--muted);}
.daily-card button {flex-shrink:0;max-width:100%;}
@media(max-width:750px) {.daily-card {flex-direction:column;align-items:stretch;padding:20px;}.daily-card button {width:100%;}}

.learning-guide {margin:40px 0;max-width:800px;line-height:1.7;}
.learning-guide h2 {font-size:28px;line-height:1.3;}
.learning-guide h3 {font-size:21px;margin:24px 0 8px;}
.learning-guide p {color:var(--muted);margin:10px 0;}

.daily-actions {display:flex;flex-direction:column;gap:10px;flex-shrink:0;max-width:100%;}.daily-actions .training-hint {text-align:center;margin:0;}

.number-groups {gap:10px;}
.number-group {display:grid;place-items:center;min-height:46px;border:1px solid #8ab3df;border-radius:9px;background:#e9f3ff;color:var(--blue);font-size:20px;font-weight:600;}
#addition {overflow-wrap:anywhere;}
.quiz input {width:160px;max-width:100%;}
@media(max-width:400px) {.quiz h2 {font-size:36px;}.rows button {font-size:18px;}}

/* The compact keypad expands below the answer, reserving its own space. */
.answer-entry {display:inline-flex;align-items:center;gap:6px;max-width:100%;}
#keypad-toggle {display:grid;place-items:center;flex-shrink:0;width:44px;height:48px;padding:8px;border:1px solid #8ab3df;border-radius:8px;background:white;color:var(--blue);touch-action:manipulation;}
#keypad-toggle[aria-expanded="true"] {background:var(--blue);color:white;}
.number-pad {display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:186px;max-width:100%;margin:12px auto 0;padding:10px;border:1px solid #8ab3df;border-radius:12px;background:#fff;box-shadow:0 4px 12px #123d8415;}
.number-pad[hidden] {display:none;}
.number-pad button {min-width:44px;min-height:44px;padding:4px;border:1px solid #c8def5;border-radius:7px;background:#e9f3ff;color:var(--blue);font-size:22px;font-weight:600;touch-action:manipulation;}
.number-pad button:active {background:#c8def5;}
.number-pad button:disabled {opacity:.45;}
#answer-form {align-items:center;flex-wrap:wrap;}


.operation-switch {
  display:flex;
  gap:8px;
  padding:6px;
  margin-top:26px;
  border:1px solid #c8def5;
  border-radius:14px;
  background:#e9f3ff;
  width:fit-content;
  max-width:100%;
}
.operation-switch button {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:12px 24px;
  border:0;
  border-radius:9px;
  background:transparent;
  color:#426482;
  font-size:20px;
  font-weight:600;
}
.operation-switch button span {font-size:27px;line-height:1;}
.operation-switch button.active {background:var(--blue);color:#fff;}
.operation-switch button:disabled {cursor:default;opacity:.65;}
.operation-switch + .intro {padding-top:32px;}
#intro-title {color:var(--ink);}
#intro-description {max-width:690px;}
.sequence-line {border:0;cursor:pointer;text-align:left;font-family:inherit;}
.sequence-line:hover {background:#ddecff;}
.dots.division-groups {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(110px,1fr));
  gap:12px;
  width:100%;
  margin-bottom:20px;
}
.division-group {border:2px solid #8ab3df;border-radius:12px;padding:12px 8px;background:#fff;}
.group-points {display:grid;grid-template-columns:repeat(4,12px);gap:6px;justify-content:center;align-content:center;min-height:48px;}
.group-points .dot {width:12px;height:12px;}
.group-count {display:block;text-align:center;margin-top:8px;font-size:16px;color:#426482;}
@media(max-width:750px) {
  .operation-switch {width:100%;}
  .operation-switch button {flex:1;min-width:0;padding:12px 8px;font-size:18px;}
  .dots.division-groups {grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:8px;}
  #intro-description {max-width:100%;}
}

/* A short path from choosing a task to practising. */
.intro {padding:22px 0 20px;}
.operation-switch + .intro {padding-top:22px;}
h1 {font-size:40px;letter-spacing:-1.5px;line-height:1.2;margin:0 0 8px;}
.intro>p {margin:0;font-size:16px;}
.daily-card {padding:20px 24px;margin-bottom:22px;}
.daily-card h2 {font-size:24px;margin:0 0 4px;}
.daily-card p {font-size:16px;margin:0;}
.daily-actions {min-width:155px;gap:4px;}
.tabs {margin-bottom:24px;}
.row-picker {display:flex;align-items:center;gap:14px;margin:0 0 22px;font-weight:600;}
.row-picker select {min-height:48px;min-width:180px;max-width:100%;padding:10px 36px 10px 12px;border:1px solid #8ab3df;border-radius:8px;background:white;color:var(--ink);}
.training-mode {margin:0 0 18px;}
.session-settings {margin:18px 0 24px;}
summary {cursor:pointer;min-height:44px;padding:9px 0;color:#306496;font-size:16px;}
summary:focus-visible {outline:3px solid #077ea4;outline-offset:4px;border-radius:3px;}
.settings {padding:16px;margin:8px 0;}
.tip {display:block;padding-top:12px;}
.tip p {margin:4px 0 12px;}
.visual-card #equation {font-size:clamp(28px,4vw,39px);letter-spacing:-1px;margin:20px 0;}
.stepper {flex-wrap:wrap;gap:8px;margin:20px 0 12px;}
.stepper label {display:block;width:100%;}
.sequence-line {cursor:default;}
.sequence-line:hover {background:#f3f8ff;}
.sequence-line.highlight:hover {background:#ddecff;}
.history-details,.help-details {border-top:1px solid var(--line);margin-top:22px;padding-top:8px;}
.learning-guide {margin:10px 0 24px;}
.learning-guide h2 {font-size:22px;}
.history-items {padding:8px 0;}
.result-details {margin:18px 0;}
.result-details table {margin:8px 0;}
body[data-view="quiz"] header,body[data-view="quiz"] footer,
body[data-view="quiz"] .operation-switch,body[data-view="quiz"] .intro,
body[data-view="quiz"] .tabs,body[data-view="quiz"] .help-details,
body[data-view="quiz"] .history-details {display:none;}
body[data-view="quiz"] main {padding-top:24px;}
body[data-view="results"] .intro,body[data-view="results"] .help-details,
body[data-view="results"] .history-details,
body[data-view="train"] .history-details,body[data-view="test"] .history-details {display:none;}
@media(max-width:750px) {
  header {height:70px;}
  h1 {font-size:32px;letter-spacing:-1px;}
  .operation-switch {margin-top:16px;}
  .intro {padding:18px 0;}
  .daily-card {gap:14px;}
  .daily-actions {width:100%;}
  .tabs button {min-height:52px;font-size:18px;}
  .row-picker select {min-width:0;flex:1;}
  .session-settings .settings {gap:12px;}
  .visual-card {padding:20px;}
  .stepper label {display:block;}
}

/* A shared tablet, one independent touch keypad on each side. */
.dojo-heading {display:flex;gap:16px;align-items:center;margin:0 0 20px;}
.dojo-heading h2 {margin:0 0 6px;}
.dojo-heading p {margin:0;color:var(--muted);}
.dojo-mark {display:grid;place-items:center;flex-shrink:0;width:62px;height:62px;border-radius:18px;background:#17324d;color:#fff;font-size:32px;}
.dojo-tablet-note {padding:16px 20px;border:1px solid #c5dcf3;border-left:4px solid var(--blue);border-radius:10px;background:#e9f3ff;font-size:16px;max-width:850px;margin:0 0 26px;}
.dojo-tablet-note strong {display:block;font-size:18px;}
.dojo-settings {display:flex;flex-wrap:wrap;gap:20px;margin-bottom:26px;}
.dojo-settings label {display:flex;flex-direction:column;gap:8px;font-size:16px;font-weight:600;}
.dojo-settings select {min-height:48px;padding:10px 40px 10px 14px;border:1px solid #8ab3df;border-radius:8px;background:white;color:var(--ink);}
.dojo-row-choice {border:0;padding:0;margin:0;min-width:0;}
.dojo-row-choice legend {padding:0;margin-bottom:8px;font-weight:600;}
.dojo-row-choice .training-hint {margin-bottom:12px;}
.dojo-rules {max-width:850px;font-size:16px;color:var(--muted);margin:0 0 24px;}
.dojo-arena-top {display:flex;align-items:center;justify-content:space-between;gap:16px;}
.dojo-arena-name {font-weight:700;}
.dojo-arena-name span {margin-left:10px;font-size:16px;font-weight:400;color:var(--muted);}
.dojo-challenge {text-align:center;margin:0 auto 18px;}
#dojo-round {margin:0;font-size:16px;color:var(--muted);}
.dojo-challenge #dojo-question {margin:4px 0;font-size:clamp(40px,6vw,60px);line-height:1.15;letter-spacing:-1.5px;min-height:1.15em;font-variant-numeric:tabular-nums;}
#dojo-status {min-height:29px;margin:8px 0 0;font-size:18px;font-weight:600;}
.dojo-round-actions {display:flex;justify-content:center;flex-wrap:wrap;gap:10px;}
.dojo-round-actions:has(button:not([hidden])) {margin-top:12px;}
.dojo-round-actions button {padding:10px 18px;}
.dojo-players {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;}
.dojo-player {--player-color:#175cd3;--player-light:#e9f3ff;min-width:0;border:2px solid #b9d2f0;border-top:5px solid var(--player-color);border-radius:18px;background:var(--player-light);padding:16px 22px 20px;}
.dojo-right {--player-color:#087b72;--player-light:#eaf7f3;border-color:#add8d0;border-top-color:var(--player-color);}
.dojo-player-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;}
.dojo-player h3 {font-size:22px;margin:0;color:var(--player-color);}
.dojo-score {white-space:nowrap;margin:0;color:var(--ink);font-size:16px;}
.dojo-score strong {font-size:28px;line-height:1;}
.dojo-answer {display:block;width:100%;height:58px;padding:5px 12px;text-align:center;background:white;color:var(--ink);border:2px solid var(--player-color);border-radius:10px;font-size:32px;font-weight:600;letter-spacing:2px;opacity:1;-webkit-text-fill-color:var(--ink);}
.dojo-answer::placeholder {color:#71849a;-webkit-text-fill-color:#71849a;}
.dojo-feedback {font-size:16px;line-height:1.4;min-height:23px;margin:8px 0;color:var(--player-color);}
.dojo-keypad {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.dojo-keypad button {min-width:0;min-height:50px;padding:4px;border:1px solid #b5cde5;border-radius:9px;background:#fff;color:var(--ink);font-size:26px;font-weight:600;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;}
.dojo-right .dojo-keypad button {border-color:#add8d0;}
.dojo-keypad button:active {background:var(--player-light);border-color:var(--player-color);}
.dojo-keypad .dojo-submit {grid-column:1/-1;background:var(--player-color);color:#fff;border-color:var(--player-color);font-size:20px;}
.dojo-keypad button:disabled {opacity:.45;cursor:default;}
.dojo-player.dojo-winner {box-shadow:0 0 0 3px var(--player-color);}
.dojo-arena-note {text-align:center;font-size:14px;color:var(--muted);margin:16px 0 0;}
body[data-view="dojo-play"] header,body[data-view="dojo-play"] footer,
body[data-view="dojo-play"] .operation-switch,body[data-view="dojo-play"] .intro,
body[data-view="dojo-play"] .tabs,body[data-view="dojo-play"] .help-details,
body[data-view="dojo-play"] .history-details,body[data-view="dojo"] .history-details {display:none;}
body[data-view="dojo-play"] main {padding-top:12px;padding-bottom:16px;}
@media(max-width:750px) {
  .tabs {grid-template-columns:repeat(4,minmax(0,1fr));}
  .tabs button {font-size:16px;}
  .dojo-players {gap:16px;}
  .dojo-player {padding:14px;}
  .dojo-player h3 {font-size:20px;}
  .dojo-feedback {min-height:45px;}
}
@media(max-width:600px) {
  .dojo-heading {align-items:flex-start;}
  .dojo-mark {width:48px;height:48px;font-size:25px;border-radius:12px;}
  .dojo-heading h2 {font-size:24px;}
  .dojo-players {gap:12px;}
  .dojo-player {padding:10px 8px 12px;border-radius:12px;}
  .dojo-player-heading {flex-direction:column;gap:4px;}
  .dojo-player h3 {font-size:16px;}
  .dojo-score strong {font-size:24px;}
  .dojo-feedback {font-size:14px;min-height:60px;}
  .dojo-keypad {gap:4px;}
  .dojo-keypad button {font-size:21px;min-height:44px;}
  .dojo-keypad .dojo-submit {font-size:18px;}
  .dojo-answer {height:50px;font-size:28px;}
  .dojo-arena-note {font-size:14px;}
}
@media(max-height:750px) and (min-width:751px) {
  body[data-view="dojo-play"] main {padding-top:4px;}
  .dojo-challenge {margin-bottom:12px;}
  .dojo-challenge #dojo-question {font-size:48px;}
  .dojo-player {padding:12px 18px;}
  .dojo-player-heading {margin-bottom:8px;}
  .dojo-keypad button {min-height:44px;}
  .dojo-answer {height:50px;}
  .dojo-arena-note {margin-top:10px;}
}

#learn {max-width:760px;}
.learn-controls {display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;}
.learn-controls .row-picker {margin:0;flex:1;}
.learn-controls .primary {min-width:100px;}
.learn-grid {display:block;}
.sequence-card {padding:4px 20px;margin-top:16px;}
.sequence-card summary {font-size:16px;}
#sequence {padding-top:10px;}
@media(max-width:400px) {.learn-controls .row-picker {flex-basis:100%;}.learn-controls .primary {width:100%;}}
