/* Selection layout: no more than five kana per alphabet row. */
dialog:not(:has(.mixed-group)) .kana-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.kana-series-row {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 8px 0;
}

.kana-series-row .kana-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

dialog:has(.mixed-group) {
  width: min(1180px, calc(100% - 28px));
}

#pickerGroups:has(.mixed-group) {
  overflow-x: auto;
}

.mixed-group {
  min-width: 920px;
}

.mixed-kana-row {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) minmax(0, 1fr);
  gap: 14px;
  align-items: end;
  padding: 12px 0;
  border-top: 1px solid var(--line);
}

.mixed-kana-row:first-of-type {
  border-top: 0;
}

.row-label {
  align-self: center;
  color: var(--red);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.alphabet-label {
  display: block;
  margin: 0 0 7px 2px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.mixed-cells {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 7px;
}

.mixed-cells .kana-cell {
  min-height: 88px;
}

@media (max-width: 600px) {
  .kana-series-row {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 6px;
  }

  .kana-series-row .kana-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 5px;
  }

  .kana-series-row .kana-cell {
    min-height: 78px;
  }
}

.account-actions { display:flex; align-items:center; gap:10px; }
.account-button { display:flex; align-items:center; gap:9px; padding:7px 13px 7px 7px; border:1px solid var(--line); border-radius:99px; background:var(--ink2); color:var(--paper); font-weight:700; cursor:pointer; }
.account-avatar { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:var(--red); color:#fff; font-family:"Noto Sans JP",sans-serif; }
.auth-dialog { width:min(460px,calc(100% - 28px)); }
.auth-tabs { display:grid; grid-template-columns:1fr 1fr; gap:6px; padding:18px 24px 0; }
.auth-tabs button { padding:11px; border:1px solid var(--line); border-radius:12px; background:transparent; color:var(--muted); font-weight:700; cursor:pointer; }
.auth-tabs button.active { border-color:var(--red); background:rgba(239,77,45,.1); color:var(--paper); }
.auth-form { display:grid; gap:15px; padding:22px 24px 26px; }
.auth-form label { display:grid; gap:7px; color:var(--muted); font-size:13px; font-weight:700; }
.auth-form input { width:100%; padding:14px 15px; border:1px solid var(--line); border-radius:12px; background:var(--ink); color:var(--paper); font:inherit; outline:none; }
.auth-form input:focus { border-color:var(--red); }
.auth-form .primary { width:100%; }
.auth-error { min-height:20px; margin:0; color:#ff8a72; font-size:13px; }
.account-panel { padding:25px; }
.account-panel p { color:var(--muted); line-height:1.6; }
.account-panel .secondary { width:100%; margin-top:12px; }
@media(max-width:600px){.account-button #accountLabel{display:none}.account-button{padding:5px}.account-actions{gap:5px}}

.question-count input {
  width: 82px;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.45);
  background: transparent;
  color: white;
  font: 800 27px inherit;
  text-align: center;
  outline: none;
  -moz-appearance: textfield;
}
.question-count input:focus { border-color: white; }
.question-count input::-webkit-inner-spin-button,
.question-count input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

.streak-pill{min-width:76px;height:42px;display:flex;align-items:center;justify-content:center;gap:5px;padding:6px 11px;white-space:nowrap}.streak-pill strong{display:inline-block;min-width:3ch;text-align:center;font-size:clamp(13px,2vw,17px);line-height:1;font-variant-numeric:tabular-nums}
.dont-know{display:block;margin:4px auto 0;border:0;background:transparent;color:var(--muted);padding:12px 22px;text-decoration:underline;cursor:pointer}.dont-know:hover{color:var(--paper)}
.kana-cell.mastery-green,.symbol-stat.mastery-green{border-color:#4caf7a}.kana-cell.mastery-yellow,.symbol-stat.mastery-yellow{border-color:#e4b93f}.kana-cell.mastery-red,.symbol-stat.mastery-red{border-color:#e65845}
.activity-panel,.kana-progress-panel,.settings-panel,.deck-panel,.card-progress-panel{padding:24px;margin-top:16px}.heatmap-controls,.heatmap-filters,.card-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.heatmap-controls button,.heatmap-filters select,.card-filters input,.card-filters select,.settings-panel input,.settings-panel select,.extra-dialog select{border:1px solid var(--line);background:var(--ink);color:var(--paper);border-radius:10px;padding:9px}.heatmap-scroll{overflow-x:auto;padding:16px 0}.heatmap{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,12px);grid-auto-columns:12px;gap:4px;min-width:max-content}.heat-day{width:12px;height:12px;border-radius:2px;background:#252c28}.heat-day.l1{background:#173f2e}.heat-day.l2{background:#246445}.heat-day.l3{background:#389662}.heat-day.l4{background:#66d493}.heatmap-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:9px}.heat-summary-item{background:var(--ink);padding:12px;border-radius:12px}.heat-summary-item strong,.heat-summary-item span{display:block}.heat-summary-item span{font-size:11px;color:var(--muted);margin-bottom:4px}.mastery-legend{display:flex;gap:15px;color:var(--muted);font-size:12px;flex-wrap:wrap}.mastery-legend .red{color:#e65845}.mastery-legend .yellow{color:#e4b93f}.mastery-legend .green{color:#66d493}.symbol-progress-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:7px;margin-top:18px}.symbol-stat{border:1px solid var(--line);background:var(--ink);color:var(--paper);border-radius:12px;padding:10px;cursor:pointer;text-align:center}.symbol-stat b{display:block;font:700 27px "Noto Sans JP"}.symbol-stat small{color:var(--muted)}.symbol-stats-dialog #symbolStatsBody{padding:24px;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.symbol-detail{background:var(--ink);padding:12px;border-radius:11px}.symbol-detail span,.symbol-detail strong{display:block}.symbol-detail span{font-size:11px;color:var(--muted)}.settings-panel{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:15px;align-items:end}.settings-panel label{display:grid;gap:6px;font-size:12px;color:var(--muted)}.settings-panel small{grid-column:1/-1;color:var(--muted)}
.card-dashboard{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.study-mode-card{border:1px solid var(--line);border-radius:20px;background:var(--ink2);padding:24px}.study-mode-card>label{display:block;color:var(--muted)}.session-limit{display:block;width:100%;margin:12px 0 4px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--paper);font:800 40px Manrope,sans-serif;outline:none}.session-limit:focus{border-color:var(--red)}.study-mode-card p{color:var(--muted);min-height:38px}.deck-item{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:14px;border-top:1px solid var(--line);padding:16px 4px;cursor:pointer}.deck-item input{width:20px;height:20px;accent-color:var(--red)}.deck-item strong,.deck-item small{display:block}.deck-item small{margin-top:4px;color:var(--muted)}.card-stat-row{display:grid;width:100%;grid-template-columns:minmax(190px,1.5fr) repeat(4,minmax(90px,auto));align-items:center;gap:12px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--paper);padding:16px 10px;text-align:left;cursor:pointer}.card-stat-row:hover{background:rgba(255,255,255,.035)}.card-stat-row span{min-width:0;overflow-wrap:anywhere}.card-stat-row small{color:var(--muted)}.symbol-stats-dialog{background:var(--ink2)!important;color:var(--paper)!important}.symbol-stats-dialog #symbolStatsBody{background:var(--ink2)}.card-study-view{max-width:850px}.card-study-top{display:flex;justify-content:space-between;align-items:center}.flashcard{background:var(--paper);color:var(--ink);min-height:390px;border-radius:24px;padding:38px;margin:30px 0;text-align:center;font-size:24px;line-height:1.8;overflow-wrap:anywhere}.flashcard ruby rt{font-size:.45em}.flashcard #cardBack{border-top:1px solid #bbc2ba;margin-top:24px;padding-top:24px}.flashcard audio{width:min(100%,420px)}.reveal-answer{width:100%;justify-content:center}.rating-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.rating-buttons button{border:1px solid var(--line);background:var(--ink2);color:var(--paper);border-radius:14px;padding:15px;font-weight:700;cursor:pointer}.rating-buttons small{display:block;color:var(--muted);margin-top:3px}.rating-buttons button:first-child{border-color:#e65845}.rating-buttons button:nth-child(2){border-color:#e4b93f}.rating-buttons button:last-child{border-color:#66d493}.extra-dialog select{width:100%}
@media(max-width:800px){.card-dashboard{grid-template-columns:1fr}.settings-panel{grid-template-columns:1fr}.card-stat-row{grid-template-columns:1fr 1fr}.rating-buttons{grid-template-columns:1fr 1fr}.flashcard{padding:22px;font-size:20px}.symbol-progress-grid{grid-template-columns:repeat(5,1fr)}}
.deck-table-head,.deck-summary{display:grid;grid-template-columns:minmax(260px,1fr) 90px 110px 100px;align-items:center;gap:10px}.deck-table-head{padding:0 46px 12px 16px;color:var(--muted);font-size:13px;font-weight:800}.deck-table-head span:not(:first-child){text-align:center}.deck-row{border-top:1px solid var(--line)}.deck-summary{position:relative;width:100%;border:0;background:transparent;color:var(--paper);padding:18px 46px 18px 16px;text-align:left;cursor:pointer}.deck-summary:hover{background:rgba(255,255,255,.035)}.deck-summary b{text-align:center;font-size:18px}.deck-summary .due-count{color:#66d493}.deck-summary i{position:absolute;right:18px;font-style:normal;font-size:22px;transition:transform .2s}.deck-row.open .deck-summary i{transform:rotate(180deg)}.deck-name strong,.deck-name small{display:block}.deck-name small{margin-top:4px;color:var(--muted);font-weight:500}.deck-details{padding:2px 16px 20px}.deck-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.deck-settings{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr)) auto;align-items:end;gap:12px;padding:16px;border:1px solid var(--line);border-radius:14px;background:rgba(0,0,0,.14)}.deck-settings label{color:var(--muted);font-size:12px;font-weight:700}.deck-settings input{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:9px;background:var(--ink);color:var(--paper);padding:10px;font:700 16px Manrope,sans-serif}.deck-meta{margin:12px 2px 0;color:var(--muted);font-size:13px}
@media(max-width:700px){.deck-table-head,.deck-summary{grid-template-columns:minmax(130px,1fr) repeat(3,54px);gap:4px}.deck-table-head{padding-left:10px;padding-right:34px;font-size:10px}.deck-summary{padding-left:10px;padding-right:34px}.deck-summary b{font-size:15px}.deck-settings{grid-template-columns:1fr}.deck-actions>*{flex:1 1 100%}}
.card-study-view{max-width:920px;padding-bottom:38px}.card-study-top{padding:8px 2px 2px}.flashcard{background:#1a2923;color:#f5f0e3;border:1px solid #384c43;box-shadow:0 24px 70px rgba(0,0,0,.28);min-height:430px;padding:28px 36px;margin:26px 0 22px}.flashcard #cardFront{width:100%}.study-card-content{max-width:720px;margin:0 auto;text-align:center}.card-kicker{color:#bdd8cf;font:600 12px/1.4 Manrope,sans-serif;letter-spacing:.12em;margin-bottom:30px}.card-hero{font-family:"Noto Sans JP",Manrope,sans-serif;font-size:46px;line-height:1.45;margin:0 auto 12px}.card-hero ruby rt,.card-sentence ruby rt,.card-word-list ruby rt,.card-example-list ruby rt{font-size:.42em;color:#b9d8cf}.card-kanji>ruby{font-size:1.3em}.card-kanji>.label{font:600 12px Manrope,sans-serif;color:#93b3a8;margin:6px}.study-card-content .target,.study-card-content .accent{color:#72d9be}.card-reading{color:#c5d9d2;font-size:18px;margin:8px 0}.card-reading.accent{color:#72d9be;font-size:22px}.card-meaning{font-size:17px;color:#dce7e2;margin:12px auto 18px}.card-translation{font-size:20px;font-weight:800;margin:18px auto;color:#fff6df}.study-card-content hr{border:0;border-top:1px solid #718078;margin:28px 0}.card-sentence{font-family:"Noto Sans JP",Manrope,sans-serif;font-size:26px;line-height:1.8;margin:8px 0}.card-note{margin:22px auto 0;padding:15px 18px;border-radius:12px;background:rgba(255,255,255,.045);color:#c8d5d0;font-size:14px;line-height:1.6;text-align:left}.card-audio-button{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:18px auto;border:1px solid #dce8e3;border-radius:50%;background:#f7f8f5;color:#25322d;cursor:pointer;transition:.18s}.card-audio-button span{font-size:20px;line-height:1;margin-left:3px}.card-audio-button:hover,.card-audio-button.playing{transform:scale(1.07);background:#72d9be;border-color:#72d9be}.card-word-list,.card-example-list{text-align:left;display:grid;gap:12px}.word-row,.example{position:relative;border:1px solid rgba(185,216,207,.18);border-radius:12px;padding:14px 16px;background:rgba(255,255,255,.025)}.word-row .jp,.example .sentence{font-family:"Noto Sans JP",Manrope,sans-serif;font-size:24px;color:#f8f4e8}.word-row .ru,.example .translation{font-size:15px;margin-top:7px;color:#d5e1dc}.word-row .label,.example>.label{color:#89a79c;font-size:11px;margin-top:6px}.card-reading-notes{margin-top:20px;text-align:left;color:#c9d6d1;font-size:14px}.study-card-content details{margin-top:18px;text-align:left;color:#bcd0c8;font-size:13px}.study-card-content summary{cursor:pointer;color:#dfe9e5}.rating-buttons button{background:#15221d}.rating-buttons button:nth-child(3){border-color:#3e5149}.reveal-answer{min-height:54px;background:#f5f0e3;color:#17231e;border-color:#f5f0e3}.reveal-answer:hover{background:#fffaf0}.flashcard #cardBack{border:0;margin:0;padding:0}
.word-row .card-audio-button,.example .card-audio-button{position:absolute;right:14px;top:50%;width:36px;height:36px;margin:0;transform:translateY(-50%)}.word-row .card-audio-button:hover,.word-row .card-audio-button.playing,.example .card-audio-button:hover,.example .card-audio-button.playing{transform:translateY(-50%) scale(1.07)}.word-row:has(.card-audio-button),.example:has(.card-audio-button){padding-right:66px}
@media(max-width:650px){.flashcard{padding:24px 18px;min-height:380px;border-radius:18px}.card-kicker{margin-bottom:22px}.card-hero{font-size:36px}.card-sentence{font-size:22px}.card-word-list,.card-example-list{gap:9px}.rating-buttons{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.nav-link{padding:9px 10px}.nav-link:before{font-size:12px}.nav-link[data-view=cards]:before{content:'Карты'}#extraDialog select{width:100%;margin-top:8px;border:1px solid var(--line);border-radius:12px;background:var(--ink);color:var(--paper);padding:12px}}

/* Complete small-screen layout, including 320px phones. */
html,body{max-width:100%;overflow-x:hidden}main,.view,.panel,.setup-grid,.practice-shell,.page-heading>*{min-width:0}
@media(max-width:480px){
  .topbar{height:62px;padding:0 8px;gap:4px;display:grid;grid-template-columns:auto 1fr auto}
  .brand{gap:0}.brand-mark{width:34px;height:34px;border-radius:9px;font-size:17px}.brand>span:last-child{display:none}
  .nav{width:100%;justify-content:center;gap:0;min-width:0}
  .nav-link{padding:8px 7px;font-size:0;white-space:nowrap}
  .nav-link:before{font-size:10px}.nav-link[data-view=home]:before{content:'Квиз'}.nav-link[data-view=cards]:before{content:'Карты'}.nav-link[data-view=stats]:before{content:'Итоги'}
  .account-button{padding:3px;border:0;background:transparent}.account-avatar{width:34px;height:34px}.account-actions{gap:0}
  .view{padding:30px 10px 74px}.intro-block h1{font-size:36px;letter-spacing:-.045em}.lead,.page-heading p{font-size:14px;line-height:1.55;margin-top:15px}.practice-shell{margin-bottom:26px}
  .setup-grid{gap:12px}.setup-panel{padding:14px}.section-title{margin-bottom:15px}.section-title h2,.section-heading h2,.dialog-head h2{font-size:19px}
  .segment{gap:5px}.segment-btn{padding:10px 3px;font-size:10px;border-radius:11px}.segment-btn .jp{font-size:21px}
  .selection-summary{padding:13px 11px}.selection-summary strong{font-size:13px}.selection-summary small{font-size:10px}
  .mode-card{grid-template-columns:36px 1fr 15px;gap:9px;padding:10px;border-radius:12px}.mode-icon{width:36px;height:36px}.mode-card strong{font-size:13px}.mode-card small{font-size:10px;line-height:1.35}
  .start-card{padding:16px;border-radius:16px;gap:14px}.start-card>p{margin:0}.question-count input{width:66px}.primary,.secondary{padding:13px 14px;font-size:13px}
  .recent-section{margin-top:42px}.section-heading{align-items:flex-start;gap:10px;flex-wrap:wrap}.section-heading .text-button{font-size:12px}.page-heading{margin-bottom:28px}.page-heading h1{font-size:36px}
  .panel{border-radius:16px}.activity-panel,.kana-progress-panel,.settings-panel,.deck-panel,.card-progress-panel,.progress-panel{padding:13px;margin-top:10px}
  .stats-grid{gap:7px}.stat-card{min-height:112px;padding:13px;border-radius:15px}.stat-card strong{font-size:23px;margin:15px 0 3px}.stat-card>span,.stat-card small{font-size:10px}
  .heatmap-controls{width:100%}.heatmap-filters,.card-filters{display:grid;grid-template-columns:1fr;width:100%}.heatmap-filters select,.card-filters input,.card-filters select{width:100%;min-width:0}
  .heatmap-summary{grid-template-columns:1fr 1fr;gap:6px}.heat-summary-item{padding:9px}.mastery-legend{gap:7px;font-size:10px}.symbol-progress-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.symbol-stat{padding:7px 3px}.symbol-stat b{font-size:23px}.symbol-stat small{font-size:9px}
  .settings-panel{gap:11px}.settings-panel input,.settings-panel select{width:100%;min-width:0}.symbol-stats-dialog #symbolStatsBody{padding:12px;grid-template-columns:1fr;gap:7px}
  .deck-panel{overflow:hidden}.deck-table-head,.deck-summary{grid-template-columns:minmax(0,1fr) repeat(3,36px);gap:2px}.deck-table-head{padding:0 30px 9px 7px}.deck-table-head span{font-size:0}.deck-table-head span:first-child:after{content:'Колода';font-size:10px}.deck-table-head span:nth-child(2):after{content:'Н';font-size:10px}.deck-table-head span:nth-child(3):after{content:'Уч';font-size:10px}.deck-table-head span:nth-child(4):after{content:'Повт';font-size:9px}
  .deck-summary{padding:14px 28px 14px 7px}.deck-summary i{right:7px}.deck-summary b{font-size:13px}.deck-name strong{font-size:12px;line-height:1.3}.deck-name small{font-size:9px}.deck-details{padding:2px 7px 15px}.deck-settings{padding:11px;gap:9px}.deck-meta{font-size:10px;line-height:1.5}
  .card-stat-row{grid-template-columns:1fr;padding:12px 5px;gap:5px}.card-stat-row>span:not(:first-child){font-size:11px}.card-progress-panel .section-heading{margin-bottom:12px}
  .card-study-view{padding-left:7px;padding-right:7px}.card-study-top{padding:0 3px;font-size:12px}.close-button{width:36px;height:36px}.flashcard{min-height:330px;margin:14px 0;padding:20px 12px;border-radius:16px;font-size:16px}.study-card-content{max-width:100%}.card-kicker{font-size:9px;margin-bottom:17px;letter-spacing:.08em}.card-hero{font-size:32px}.card-kanji>ruby{font-size:1.15em}.card-sentence{font-size:19px;overflow-wrap:anywhere}.card-meaning{font-size:14px}.card-reading,.card-reading.accent{font-size:16px}.card-translation{font-size:17px}.study-card-content hr{margin:19px 0}.word-row,.example{padding:11px 53px 11px 10px}.word-row .jp,.example .sentence{font-size:19px}.word-row .ru,.example .translation{font-size:12px}.word-row .label,.example>.label{font-size:9px}.word-row .card-audio-button,.example .card-audio-button{right:9px;width:34px;height:34px}.card-audio-button{width:40px;height:40px;margin:14px auto}.card-reading-notes{font-size:12px}.rating-buttons{gap:6px}.rating-buttons button{padding:12px 5px;font-size:12px;border-radius:11px}
  .quiz-view{padding-top:20px}.quiz-top{grid-template-columns:36px minmax(0,1fr) 48px;gap:7px}.streak-pill{padding:7px 8px;font-size:11px}.quiz-stage{margin-top:38px}.quiz-prompt{font-size:13px}.quiz-symbol{font-size:96px;margin:18px 0 32px}.answer-btn{padding:15px;font-size:15px}.typing-form input{min-width:0;width:100%;padding:14px;font-size:15px}.typing-form .primary{min-width:0}.dont-know{font-size:12px}
  .result-card h1{font-size:34px}.result-seal{width:62px;height:62px;font-size:30px}.result-score{margin:24px auto}.result-score strong{font-size:48px}.result-score span{font-size:12px}.result-details{padding:14px}.result-actions{gap:7px}
  dialog{width:calc(100% - 8px);max-height:94vh;border-radius:15px}.dialog-head,.dialog-foot{padding:14px 12px}.quick-sets{padding:12px 9px 3px}.quick-sets button{padding:8px 10px;font-size:11px}#pickerGroups{padding:10px 8px}.kana-group{margin-bottom:20px}.kana-group-head{gap:5px}.kana-group h2{font-size:13px}.kana-group-head button{font-size:10px}.kana-series-row{grid-template-columns:24px minmax(0,1fr);gap:3px;padding:5px 0}.kana-series-row .kana-grid{gap:3px}.kana-series-row .kana-cell{min-height:62px;border-radius:9px;padding:5px 1px}.kana-series-row .kana-char{font-size:22px}.kana-series-row .kana-reading{font-size:8px}.row-label{font-size:9px}
  #pickerGroups:has(.mixed-group){overflow-x:hidden}.mixed-group{min-width:0}.mixed-kana-row{grid-template-columns:24px minmax(0,1fr);gap:4px;padding:8px 0;align-items:start}.mixed-kana-row .mixed-half{grid-column:2}.mixed-kana-row .kata-half{margin-top:8px}.mixed-cells{gap:3px}.mixed-cells .kana-cell{min-height:62px;border-radius:9px;padding:5px 1px}.mixed-cells .kana-char{font-size:22px}.mixed-cells .kana-reading{font-size:8px}.alphabet-label{font-size:8px;margin-bottom:4px}
  .dialog-foot{gap:8px;font-size:12px}.dialog-foot .primary{flex:0 0 auto}.toast{max-width:calc(100% - 20px);width:max-content;text-align:center;font-size:12px;bottom:12px}
}
@media(max-width:340px){
  .view{padding-left:8px;padding-right:8px}.nav-link{padding:8px 5px}.intro-block h1,.page-heading h1{font-size:33px}.setup-panel{padding:12px}.segment-btn{font-size:9px}.mode-card{padding:9px 7px}.stats-grid{grid-template-columns:1fr}.hero-stat{grid-column:auto}.heatmap-summary{grid-template-columns:1fr}.symbol-progress-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.deck-table-head,.deck-summary{grid-template-columns:minmax(0,1fr) repeat(3,31px)}.deck-summary b{font-size:12px}.flashcard{padding-left:9px;padding-right:9px}.rating-buttons button{font-size:11px}.auth-form{padding:18px 12px}.auth-tabs{padding-left:12px;padding-right:12px}
}

/* Keep kana row names clear of the cards on narrow phones. */
@media (max-width: 600px) {
  #pickerGroups .kana-group-head {
    align-items: flex-start;
  }

  #pickerGroups .kana-group-head h2 {
    min-width: 0;
    line-height: 1.35;
  }

  #pickerGroups .kana-group-head button {
    flex: 0 0 70px;
    line-height: 1.35;
    text-align: right;
  }

  #pickerGroups .kana-series-row,
  #pickerGroups .mixed-kana-row {
    grid-template-columns: minmax(0, 1fr);
  }

  #pickerGroups .kana-series-row > .row-label,
  #pickerGroups .mixed-kana-row > .row-label {
    grid-column: 1;
    width: 100%;
    margin: 0 0 2px;
    white-space: normal;
    line-height: 1.25;
  }

  #pickerGroups .kana-series-row > .kana-grid,
  #pickerGroups .mixed-kana-row > .mixed-half {
    grid-column: 1;
  }

  #pickerGroups .mixed-kana-row .kata-half {
    margin-top: 8px;
  }
}

/* Unified progress cards. */
.progress-details{padding:0;overflow:hidden}.progress-details>summary{display:flex;align-items:center;justify-content:space-between;padding:24px;cursor:pointer;list-style:none}.progress-details>summary::-webkit-details-marker{display:none}.progress-details>summary .eyebrow{display:block;margin:0 0 6px}.progress-details>summary strong{display:block;font-size:24px}.progress-details>summary i{font-style:normal;font-size:24px;transition:transform .2s}.progress-details[open]>summary i{transform:rotate(180deg)}.progress-details-body{padding:0 24px 24px}.card-progress-panel .mastery-legend{margin-bottom:14px}.progress-count{color:var(--muted);font-size:12px}.card-progress-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:18px}.card-stat{min-width:0;min-height:126px;border:1px solid var(--line);background:var(--ink);color:var(--paper);border-radius:12px;padding:13px 11px;cursor:pointer;text-align:left;display:flex;flex-direction:column;justify-content:center}.card-stat:hover{background:#151c19}.card-stat b{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font:700 22px/1.35 "Noto Sans JP",Manrope,sans-serif;overflow-wrap:anywhere}.card-stat small,.card-stat span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-stat small{color:var(--muted);font-size:10px;margin:8px 0 4px}.card-stat span{font-size:11px;color:#cbd4d0}.card-stat.mastery-green{border-color:#4caf7a}.card-stat.mastery-yellow{border-color:#e4b93f}.card-stat.mastery-red{border-color:#e65845}.empty-progress{grid-column:1/-1;color:var(--muted);text-align:center;padding:30px}
@media(max-width:800px){.card-progress-grid{grid-template-columns:repeat(auto-fill,minmax(125px,1fr))}}
@media(max-width:480px){.progress-details>summary{padding:13px}.progress-details>summary strong{font-size:19px}.progress-details-body{padding:0 13px 13px}.card-progress-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.card-stat{min-height:112px;padding:10px 8px}.card-stat b{font-size:18px}.card-stat small,.card-stat span{font-size:9px}}
.progress-details>summary i{font-size:0;transition:none}.progress-details>summary i:before{content:'＋';font-size:22px}.progress-details[open]>summary i{transform:none}.progress-details[open]>summary i:before{content:'−'}

/* Kana quiz approach and first-attempt result metrics. */
.start-card{grid-template-columns:minmax(280px,1.2fr) minmax(220px,1fr) minmax(210px,.8fr)}
.start-label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.13em;font-weight:800;opacity:.72;margin-bottom:8px}
.approach-modes{display:flex;gap:7px;flex-wrap:wrap}.approach-modes label{cursor:pointer}.approach-modes input{position:absolute;opacity:0}.approach-modes span{display:block;padding:9px 12px;border:1px solid rgba(255,255,255,.35);border-radius:999px;font-weight:700;font-size:13px}.approach-modes input:checked+span{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.approach-count{display:flex;align-items:center;gap:9px;margin-top:12px;font-size:13px;font-weight:700}.approach-count input{width:76px;padding:8px 9px;border:1px solid rgba(255,255,255,.4);border-radius:10px;background:rgba(0,0,0,.12);color:white;font:700 16px inherit}.approach-hint{margin:0;font-size:13px;line-height:1.5;opacity:.82}.start-card .primary:disabled{opacity:.55;cursor:not-allowed;transform:none}
.result-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 12px}.result-summary>div{padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--ink2)}.result-summary span,.result-summary strong{display:block}.result-summary span{color:var(--muted);font-size:12px;margin-bottom:7px}.result-summary strong{font-size:20px}
@media(max-width:900px){.start-card{grid-template-columns:1fr}.approach-hint{order:2}.start-card>.primary{order:3}}
@media(max-width:480px){.approach-modes{display:grid;grid-template-columns:1fr 1fr}.approach-modes span{text-align:center;padding:9px 7px;font-size:11px}.result-summary{grid-template-columns:1fr}.start-card{padding:16px}.start-card>.primary{width:100%}}
.progress-summary-side{display:flex;align-items:center;gap:14px}.exercise-time-panel{padding:24px;margin-top:12px}.exercise-time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.exercise-time-grid article{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--ink)}.exercise-time-grid span,.exercise-time-grid strong{display:block}.exercise-time-grid span{color:var(--muted);font-size:12px}.exercise-time-grid strong{margin-top:8px;font-size:20px}.card-difficulty-groups{display:grid;gap:9px;margin-top:20px}.card-level-group{border:1px solid var(--line);border-radius:14px;overflow:hidden}.card-level-heading{display:flex;align-items:center;justify-content:space-between;padding:14px;cursor:pointer;list-style:none}.card-level-heading::-webkit-details-marker{display:none}.card-level-heading h3{margin:0;color:var(--red);font-size:18px}.card-level-heading span{color:var(--muted);font-size:11px}.card-level-heading i:before{content:'＋';margin-left:8px;color:var(--paper);font-size:17px;font-style:normal}.card-level-group[open] .card-level-heading i:before{content:'−'}.card-level-group .card-progress-grid{margin:0;padding:0 12px 12px;border-top:1px solid var(--line)}
.deck-stats-section{margin-top:12px}.deck-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.deck-stat-card{min-height:142px;padding:22px;border:1px solid var(--line);border-radius:20px;background:rgba(20,28,25,.72);display:flex;flex-direction:column;justify-content:space-between}.deck-stat-card.featured{border-color:var(--red)}.deck-stat-card span{color:var(--muted);font-size:13px;line-height:1.35}.deck-stat-card strong{font-size:30px;line-height:1.1;margin:18px 0 8px}.deck-stat-card small{color:var(--muted);font-size:11px}.heatmap-controls select{width:auto;min-width:82px;padding:8px 28px 8px 10px;border:1px solid var(--line);border-radius:10px;background-color:var(--ink);color:var(--paper);color-scheme:dark}.heatmap-controls select:disabled{opacity:1;cursor:default;color:var(--paper);-webkit-text-fill-color:var(--paper)}
@media(max-width:700px){.exercise-time-grid{grid-template-columns:1fr 1fr}.exercise-time-grid article{padding:12px}.exercise-time-grid strong{font-size:17px}}
@media(max-width:480px){.exercise-time-panel{padding:13px}.progress-summary-side{gap:7px}.progress-count{font-size:9px}.card-difficulty-groups{gap:8px}.card-level-heading{padding:12px}.card-level-heading h3{font-size:16px}.deck-stats-grid{grid-template-columns:1fr}.deck-stat-card{min-height:120px;padding:16px}.deck-stat-card strong{font-size:25px;margin:12px 0 6px}.heatmap-controls select{min-width:74px;padding:7px 24px 7px 8px}}
.quick-sets button.active{border-color:var(--red);background:rgba(239,77,45,.12);color:var(--paper)}.quick-sets .clear-set{margin-left:auto;color:var(--muted)}.quick-sets .clear-set:hover{border-color:var(--paper);color:var(--paper)}
