/* Compact information hierarchy shared by the daily app. */
:root{--green:#146a54;--green-soft:#a8d7c8;--write-soft:#f0d3b2;--read-soft:#d8cbed;--catch-soft:#f0ccc5;--learning-fill:#a8d7c8;--learning-ink:#164f3c;--learning-border:#367f68}
.daily-app{font-size:14px;line-height:1.45}
.app-header{height:calc(44px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 14px 0;max-width:1052px}
.app-brand{gap:7px}.app-brand img{width:24px;height:24px}.app-brand>span{font-size:16px;letter-spacing:-.3px}.app-brand small{display:none}
.header-tools{gap:8px}#connectionStatus{font-size:10px}.header-tools .icon-button{width:32px;height:32px;font-size:17px}
#appMain{padding:12px 14px calc(76px + env(safe-area-inset-bottom));min-height:calc(100svh - 44px)}
.daily-app h1{font-size:22px;line-height:1.2;letter-spacing:-.5px;margin:0}.daily-app h2{font-size:17px}.daily-app h3{font-size:15px}
.page-heading{margin:0 0 12px;align-items:center;gap:10px}.page-description{font-size:12px;margin:5px 0 0;line-height:1.5}.eyebrow:empty{display:none}
.section-heading{margin:16px 0 8px}.section-heading h2{font-size:16px}.back-link{margin-bottom:10px}
.daily-app button.primary,.daily-app a.primary,.daily-app button.secondary,.daily-app a.secondary{min-height:36px;padding:8px 11px;font-size:12px;gap:7px;border-radius:7px}
.text-button{min-height:32px;padding:6px 0;font-size:12px}.icon-button{width:32px;height:32px;font-size:17px}
.app-nav{padding:5px 5px calc(5px + env(safe-area-inset-bottom));gap:0}.app-nav a{min-height:41px;gap:2px;padding:3px 8px;font-size:10px;min-width:0;flex:1}.app-nav .ui-icon{width:19px;height:19px}.app-nav .active:before{top:-6px}
/* The sprint grid and its controls fit above the fold. */
#sprintPane{max-width:820px}.sp-heading{gap:12px;margin:0 0 7px;align-items:center}.sp-heading h1{font-size:20px;margin:0;line-height:1.2;letter-spacing:-.4px}.sp-heading .eyebrow{display:none}.sp-heading p:not(.eyebrow){font-size:11px;margin:4px 0 0;line-height:1.3}.sp-heading>.secondary{min-height:34px!important;padding:6px 11px!important;font-size:12px!important}
.sp-progress-track{height:3px}.sp-tabs{margin:6px 0 9px;padding:0 0 4px;gap:3px}.sp-tabs>a{font-size:12px;padding:8px 2px;min-height:34px;border-radius:6px}.sp-tabs>a.selected{background:#e0ebe4;color:#164d3a}
.sp-overview-actions{margin:0 0 8px;gap:7px;align-items:center}.sp-overview-actions button{min-height:34px!important;padding:6px 11px!important;font-size:12px!important}.sp-overview-actions .sp-goal-rule{margin-left:auto;min-height:28px!important;max-width:100%;padding:3px 0!important;font-size:10px!important;color:#59685d;overflow-wrap:anywhere;text-align:right}
.sp-symbol-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.sp-symbol{border-radius:8px;border-color:#cbd5ca;position:relative}.sp-symbol.new{background:#fff}.sp-symbol.underway{background:var(--learning-fill);border:1px dashed var(--learning-border)}.sp-symbol.complete{background:#146a54;border:1px solid #146a54;color:#fff}
.daily-app .sp-symbol-main{padding:10px 8px!important;gap:8px!important;min-height:92px;align-items:center;color:inherit}.sp-symbol-glyph{width:35px;font-size:35px;line-height:1.1;color:#214f3d}.sp-symbol-main b{font-size:13px;line-height:1.25}.sp-symbol-main small{font-size:10px;line-height:1.3;margin:3px 0;display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sp-symbol-main .sp-streak-line{font-size:10px;white-space:normal;margin:5px 0 0;color:#344f40}.sp-symbol-check{position:absolute;right:6px;top:5px;font-size:9px;color:#53705b}.sp-symbol-main>span:nth-child(2){padding-top:6px}.sp-symbol.complete .sp-symbol-glyph,.sp-symbol.complete .sp-symbol-check,.sp-symbol.complete b,.sp-symbol.complete small{color:white}.sp-symbol.complete .sp-symbol-check{font-size:13px}.sp-symbol.underway .sp-symbol-main small{color:#24533e}.sp-symbol-main .sp-dots{display:none}
.sp-practice{margin:14px 0 0;padding:12px;border-radius:9px}.sp-practice .eyebrow{display:none}.sp-practice h2{font-size:15px;margin:0 0 8px}.sp-practice-buttons{margin:0;gap:7px}.sp-practice-buttons>button{padding:9px!important;font-size:12px!important}.sp-check-links{margin:8px 0 0;gap:12px}
.sp-journal,.sp-note{margin:14px 0}.sp-journal>label,.sp-note>label{margin-bottom:5px}.sp-journal>textarea,.sp-note>textarea,.sp-comparison-notes textarea{padding:9px;font-size:16px;border-radius:7px}.sp-footer{margin-top:12px;gap:12px}.sp-footer .text-button{font-size:11px!important;padding:3px 0!important}
.sp-suggestions{margin:12px 0;padding:11px;border-radius:8px;background:#f0f2e9}.sp-suggestions .eyebrow{display:none}.sp-suggestions h2{font-size:15px;margin:0 0 8px}.sp-suggestions p:empty{display:none}.sp-suggestions button{padding:8px;gap:7px}.sp-suggestions button>[lang]{font-size:26px}.sp-suggestions>div:last-child{gap:6px}.sp-suggestions small{font-size:10px}
.sp-broad-review{margin:12px 0 0;padding-top:10px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.sp-broad-review>b{font-size:12px}.sp-broad-review button{margin:0;font-size:12px!important}.sp-broad-review p{flex-basis:100%}
.sp-study-nav{margin:0 0 8px;gap:6px}.sp-study-nav>button{padding:6px 10px!important;min-height:34px!important}.sp-study-nav>span{font-size:10px}.sp-study-nav>select{font-size:16px;padding:5px 7px;height:34px;border-radius:6px}#spStudyCard{margin-top:0}
body:has(#sprintPane[data-tab=study]:not([hidden])) .app-header{display:none}
body:has(#sprintPane[data-tab=study]:not([hidden])) #appMain{padding-top:calc(8px + env(safe-area-inset-top))}
.sp-study-goals{margin:6px 0;gap:5px}.sp-study-goals>span{font-size:10px;padding:4px 6px;border-radius:4px;border:1px solid #bac7bd;color:#506353;background:#fff}.sp-study-goals>.underway{background:var(--learning-fill);border:1px dashed var(--learning-border);color:#164f3c}.sp-study-goals>.done{background:#146a54;border-color:#146a54;color:#fff}.sp-study-goals .write.done{background:var(--write);border-color:var(--write);color:white}.sp-study-goals .read.done{background:var(--read);border-color:var(--read);color:white}.sp-study-goals .catch.done{background:var(--catch);border-color:var(--catch);color:#351d16}
.sp-study-actions{margin:6px 0;gap:6px;align-items:center}.sp-study-actions>button{min-height:32px!important;padding:6px 9px!important;font-size:11px!important}.sc-study-tools:empty{display:none}
.sp-compare-selects{gap:8px}.sp-compare-selects select{padding:6px;font-size:16px;height:36px}.sp-comparison{gap:8px;margin:8px 0}.sp-comparison>article{padding:10px;border-radius:8px}.sp-comparison h2{font-size:16px;margin:4px 0}.sp-comparison p{margin:5px 0;line-height:1.45}.sp-compare-glyph{max-width:125px;margin-bottom:4px}.sp-comparison .sp-clue{padding-top:6px}.sp-stroke-total{margin:5px 0}.sp-intro:empty{display:none}.sp-color-key{margin:6px 0}.sp-shared{margin:8px 0;padding:9px;border-radius:8px}.sp-comparison-notes{margin:10px 0}.sp-hunt-intro{display:none}.sp-hunt-filters{margin:0 0 9px;gap:7px}.sp-hunt-filters>button{padding:6px 11px;min-height:32px}.sp-hunt-list{gap:7px}.sp-hunt-list>article{padding:10px 11px;column-gap:9px;border-radius:8px}.sp-hunt-glyph{font-size:32px}.sp-hunt-list h3{font-size:13px;margin:0}.sp-hunt-list p{font-size:10px}.sp-hunt-list .text-button{min-height:25px!important}
.sp-editor-meta{gap:9px;margin:0 0 12px}.sp-editor-goals{padding:11px;margin:12px 0;border-radius:8px}.sp-skill-choices{margin:12px 0;gap:8px}.sp-editor-goals>label:has(select){font-size:12px;margin:10px 0}.sp-editor-meta input,.sp-editor-goals select{min-height:38px;padding:8px;border-radius:6px}.sp-editor-goals .sp-small{font-size:10px;line-height:1.5}.sp-selected-heading{margin:14px 0 8px}.sp-selected{gap:6px;margin-bottom:12px}.sp-selected>button{padding:8px 7px 6px;min-width:45px}.sp-search input{padding:9px}.sp-picker-tools{margin:8px 0}.sp-picker{margin:10px 0;gap:5px}.sp-picker>button{padding:8px}.sp-editor-footer{bottom:calc(52px + env(safe-area-inset-bottom));padding:8px 0}.sp-history{margin:12px 0}.sp-history>article{padding:12px;margin:9px 0;border-radius:9px}.sp-history h2{font-size:17px}.sp-empty{padding:16px;margin:12px 0}.sp-empty>.eyebrow{display:none}
/* Home retains a compact kanji grid, then review and game actions. */
.sp-home.hunt-card{background:#fff;color:var(--ink);border:1px solid #cbd8cd;border-radius:10px;padding:12px;margin:0 0 12px}.sp-home-heading{align-items:center;gap:8px}.sp-home-heading h2{font-size:17px;margin:0;color:var(--ink)}.sp-home .text-button{color:#285f47!important;font-size:11px!important}.sp-home-heading .eyebrow{display:none}.sp-home-progress{font-size:11px;color:#576b5b;margin:5px 0 6px}.sp-home-progress>b{font-size:11px;color:#224d39}.sp-home .sp-progress-track{background:#dce6dc}.sp-home .sp-progress-track>i{background:#237c5e}
.sp-home-symbols.hunt-symbols{gap:6px;margin:10px 0 7px;grid-template-columns:repeat(5,minmax(0,1fr))}.sp-home-symbol{min-height:56px;gap:5px;background:#fff;border:1px solid #bdcbbf;color:#365d45;border-radius:6px}.sp-home-symbol>span[lang]{font-size:29px}.sp-home-symbol.complete{background:#146a54;border-color:#146a54;color:white}.sp-home-symbol:has(.started):not(.complete){background:var(--learning-fill);border:1px dashed var(--learning-border)}.sp-home-symbol:not(.complete) .sp-dots>i{background:#d0d8cf}.sp-home-symbol:not(.complete) .sp-dots>.started{background:#32876a}.sp-home-symbol .sp-dots>.done,.sp-home-symbol:not(.complete) .sp-dots>.done{background:#146a54;box-shadow:none}.sp-home-symbol.complete .sp-dots>.done{background:white}.sp-home-symbol .hunt-tick.done{background:#fff;border-color:#146a54;color:#146a54}.sp-home-caption{font-size:10px;color:#526a57;line-height:1.4;margin:6px 0}.sp-home-actions{gap:7px}.sp-home .sp-home-actions>a{min-height:33px;padding:6px 11px;font-size:11px}.sp-home .sp-home-actions>.primary{background:#203b2d;color:white;border-color:#203b2d}.sp-home .sp-home-actions>.secondary{background:#fff;color:#31583e;border-color:#c1d0c0}
.sp-empty-home{padding:12px;border-radius:9px;gap:8px;margin-bottom:12px;grid-template-columns:28px 1fr}.sp-empty-home>span{font-size:26px}.sp-empty-home h2{font-size:16px}.sp-empty-home p{font-size:11px;margin:3px 0}.sp-empty-home>a.primary{padding:8px}
.fp-home{margin:12px 0;padding:12px;border-radius:9px}.fp-home-top{margin-bottom:7px}.fp-home-top h2{font-size:16px}.fp-home-top a{font-size:11px}.fp-home-actions{gap:7px}.fp-home-actions>a{padding:8px;min-height:35px;font-size:12px}.fp-home .sp-broad-review{margin:8px 0 0;padding-top:8px;gap:10px}.fp-home .sp-broad-review>b{font-size:11px}
.lane-stack{gap:8px}.lane-card{padding:12px;border-radius:9px}.lane-heading{gap:8px;align-items:center}.lane-heading h2{font-size:16px;margin:0}.lane-symbol{width:28px;height:28px;font-size:22px;background:none}.lane-state{font-size:10px}.lane-metrics{gap:16px;margin:9px 0;font-size:10px}.lane-metrics b{font-size:15px;margin-right:3px;display:inline}.lane-actions{margin-left:0;gap:7px}.lane-actions>.primary,.lane-actions>.secondary{font-size:12px!important;min-height:34px!important;padding:6px 10px!important}.lane-actions>.text-button{font-size:11px}.preview-glyphs{margin:8px 0 0;gap:5px}.preview-glyph{width:27px;height:28px;font-size:19px}.lane-card.deferred{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px}.deferred-copy{margin:0}.deferred-copy .secondary{width:auto!important;min-height:32px!important;padding:5px 10px!important}.lane-empty{font-size:11px}
.welcome-card{padding:12px;border-radius:9px;gap:8px;margin-bottom:12px}.welcome-card .eyebrow{display:none}.welcome-card h2{font-size:16px;margin-bottom:4px}.welcome-card p:not(.eyebrow){font-size:11px}.notice{padding:10px;margin-bottom:10px}.session-banner{padding:10px;margin-bottom:10px}.session-banner p{font-size:11px}
/* Search and collection results get the screen space rather than preamble. */
.collection-shortcuts{display:flex;gap:12px;font-size:12px;white-space:nowrap}.collection-shortcuts a{text-decoration:none;color:#315e47}.collection-tools{flex-direction:row;gap:8px;margin:0 0 7px;align-items:center}.collection-tools .search-field{flex:1;min-width:0}.search-field input{font-size:16px;padding:8px 9px;min-height:38px}.collection-tools>.secondary{font-size:11px!important;min-height:36px!important;padding:6px 8px!important;flex:none;align-self:auto}.filter-row{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;scrollbar-width:none;gap:5px;margin:7px 0;padding:0 0 2px}.filter-row>button{min-height:32px;padding:5px 9px;font-size:11px;flex:none}.collection-order,#cardsPane .collection-order{margin:5px 0 7px;gap:8px}.collection-order label{font-size:10px;gap:3px}.collection-order select{min-height:34px;padding:5px 24px 5px 8px;font-size:12px}.collection-count{font-size:10px;margin:5px 0 7px}.kanji-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.collection-tile{padding:5px 3px;border-radius:7px;min-width:0}.collection-tile .kanji-badge{width:52px;height:52px}.collection-tile .badge-glyph{font-size:28px}.collection-tile>b{font-size:11px;line-height:1.3;margin:1px 0}.collection-tile>span:last-child{font-size:9px;line-height:1.3}.collection-tile.underway{background:#d8ede5;border-color:#6da18a}.collection-tile.complete{background:#e2eee3;border-color:#4c8a62}.badge-legend{font-size:10px;gap:12px;margin:6px 0}.quarter{stroke:#bcc9bc}.quarter.partial{stroke-opacity:1;stroke-width:3;stroke-dasharray:2.4 3}.quarter.lit{stroke-width:3.4}.sp-dots>.started{background:#3e9879}.sp-dots>.write.done{background:var(--write)}.sp-dots>.read.done{background:var(--read)}
.dictionary-heading{margin:0 0 9px;align-items:center;gap:10px}.dictionary-heading .eyebrow{display:none}.dictionary-heading h1{font-size:22px;margin:0}.dictionary-draw-toggle{min-height:34px!important;padding:6px 10px!important;font-size:12px!important}.dictionary-draw-toggle svg{width:18px;height:18px}.dictionary-search{padding:7px 10px;border-radius:8px;gap:8px}.dictionary-search input{padding:3px 0;font-size:16px}.dictionary-search svg{width:19px;height:19px}.dictionary-filter-row{gap:7px;margin:8px 0}.dictionary-filter-row label{font-size:9px;gap:3px}.dictionary-filter-row select{padding:6px;min-height:34px;font-size:12px;border-radius:6px}.dictionary-results-heading{margin:8px 0;font-size:11px}.dictionary-results{border-radius:8px;margin-bottom:10px}.dictionary-entry>.dictionary-result{padding:8px 9px!important;gap:9px;min-height:70px}.dictionary-glyph{height:48px;width:44px}.dictionary-glyph>.kanji-badge{width:44px;height:44px}.dictionary-glyph .badge-glyph{font-size:27px}.dictionary-result-copy{gap:2px}.dictionary-result-copy>b{font-size:13px}.dictionary-meaning{font-size:11px;-webkit-line-clamp:1}.dictionary-readings{font-size:11px;line-height:1.4}.dictionary-result-meta{font-size:9px;max-width:54px}.dictionary-entry>.dictionary-sprint-add{width:30px;min-height:36px;font-size:18px;margin-right:7px}.dictionary-target{font-size:10px;padding:7px 9px;margin-top:12px}.dictionary-footnote{font-size:10px;margin:12px 0}.dictionary-drawing{padding:10px;margin:9px 0;border-radius:9px}.dictionary-drawing>p{font-size:11px}.dictionary-pad-wrap{max-width:240px;margin:10px auto}
/* Distinct fills, border patterns and labels identify learning states. */
.overview-heading{margin-bottom:8px}.daily-app .overview-heading h1{font-size:22px;margin:0}.overview-heading p{font-size:10px}.overview-order{margin-bottom:7px;font-size:10px}.overview-order select{min-height:32px}.overview-skills{gap:4px}.overview-skills button{min-height:34px;padding:6px 3px;font-size:11px}.overview-tally{margin:8px 0 5px;font-size:11px}.overview-tally b{font-size:20px}.overview-meter{margin-bottom:8px}.overview-grid{gap:3px}.daily-app .map-cell{background:#fff;border-color:#bbc9bd;color:#4b5d4d;border-radius:4px;max-height:none}.in-overview .map-cell{max-height:none}.daily-app .map-cell.underway{background:var(--skill-soft,var(--learning-fill));border:1px dashed var(--skill,#367f68);color:#193d2c;box-shadow:inset 0 -3px 0 var(--skill,#367f68)}.daily-app .map-cell.complete{background:var(--skill,#146a54);color:#fff;border:1px solid var(--skill,#146a54);box-shadow:none}.overview-legend{font-size:10px;margin:9px 0 0}.overview-legend .underway{background:var(--learning-fill);border:1px dashed var(--learning-border)}.overview-hint{font-size:10px;margin-top:7px}
/* Reference facts are visible before explanations and examples. */
.in-session .app-header,.practice-playing .app-header{display:none}.in-session #appMain{padding:calc(8px + env(safe-area-inset-top)) 12px calc(84px + env(safe-area-inset-bottom))}.deck-header{margin:0 0 8px;font-size:11px}.deck-header .icon-button{width:32px;height:32px}.deck-controls{padding:8px 12px calc(8px + env(safe-area-inset-bottom))}.reference-actions{gap:7px}.reference-actions>button{font-size:12px!important;min-height:36px!important;padding:7px 8px!important}.reference-progress{display:flex;gap:12px;align-items:center;margin:12px 0}.reference-progress>.kanji-badge{width:46px;height:46px}.reference-progress .badge-glyph{font-size:24px}#referenceExtras{margin:14px 0;border-top:1px solid #d5dfd3;padding-top:8px}.next-connection{padding:10px;margin:10px 0}.next-connection small{font-size:10px}.personal-note{margin-top:12px}
.semantic-card .card-head{padding:0;margin:0 0 8px;gap:8px}.semantic-card .card-head>.type-pill{font-size:10px;padding:3px 7px;margin:0}.semantic-card .card-head .eyebrow{display:none}.semantic-card .card-head h1{font-size:22px;line-height:1.2;margin:0}.semantic-card .meanings{font-size:13px;line-height:1.45;margin:4px 0 0}.semantic-card .content-grid{gap:10px}.semantic-card .panel{padding:10px;border-radius:9px}.semantic-card .symbol-row{max-width:100%;grid-template-columns:minmax(0,1fr) 50px;gap:9px}.semantic-card[data-mode=full] .symbol-row{grid-template-columns:128px 45px minmax(0,1fr);gap:9px}.semantic-card .hero-svg{max-width:150px;max-height:150px}.semantic-card .printed{padding-left:5px}.semantic-card .printed .glyph{font-size:34px;line-height:1.25}.semantic-card .printed small{font-size:9px;margin-top:3px}.semantic-card .player{margin:6px 0 0;gap:8px}.semantic-card .player>button{font-size:11px;padding:5px 8px;min-height:32px}.semantic-card .player input{height:24px;min-width:0}.semantic-card .counter{font-size:10px;white-space:nowrap}.semantic-card .stroke-strip{gap:5px;margin:5px 0 0;padding:2px 0}.semantic-card .stroke-step{min-width:42px;width:42px;border-radius:5px;padding:3px}.semantic-card .stroke-step svg{width:38px;height:38px}.semantic-card .stroke-step small{font-size:9px}.semantic-card .parts{gap:5px;margin:7px 0}.semantic-card .part{font-size:11px;padding:4px 6px;border-radius:5px;gap:5px;min-height:31px}.semantic-card .part-svg{width:25px;height:25px}.semantic-card .audit,.semantic-card .residual,.semantic-card .match-detail{font-size:10px;line-height:1.45;margin:5px 0}.semantic-card .audit button{font-size:10px;min-height:28px;padding:2px}.semantic-card .memory{padding:11px;margin:10px 0 0;border-radius:8px}.semantic-card .memory p{font-size:13px;line-height:1.65;margin-bottom:8px}.semantic-card .memory .eyebrow{display:block;font-size:9px!important;margin:0 0 5px!important}.semantic-card .roles{gap:6px}.semantic-card .role{font-size:11px;padding:5px 8px}.semantic-card .footer-note{margin:9px 0 0;font-size:10px}.semantic-card .sc-other-words h2,.semantic-card .panel h2{font-size:17px}.semantic-card .sc-connections .connections{gap:6px}.semantic-card .connection{padding:7px;font-size:11px}.semantic-card .reading-group{padding-top:10px;margin-top:10px}.semantic-card .reading-top{gap:7px}.semantic-card .reading-help{font-size:11px;margin-bottom:9px;line-height:1.5}.semantic-card .reading-sound{font-size:21px}.semantic-card .word{padding:9px 0}.semantic-card .word-written{font-size:23px}.semantic-card .word>p{font-size:12px;margin:4px 0}.semantic-card .reading-tabs button{font-size:12px;min-height:32px}.semantic-card .section-heading{margin:0 0 7px}.semantic-card .frequency{font-size:9px}.sc-basic-readings{min-width:0;font-size:13px}.sc-basic-row{margin:0 0 8px}.sc-basic-row:last-child{margin:0}.sc-basic-type{display:block;font-size:9px;font-weight:650;color:#5d7061;line-height:1.3;margin-bottom:3px}.sc-basic-row>div{display:flex;gap:5px 8px;flex-wrap:wrap}.sc-basic-reading{display:inline-flex;align-items:baseline;gap:4px;max-width:100%}.sc-basic-reading>b{font-size:16px;font-weight:600;color:var(--reading);line-height:1.3}.sc-basic-reading>small{font-size:10px;color:#667568;white-space:nowrap}.sc-component-status{font-size:11px;color:#657563;line-height:1.4}
/* Practice starts with its pool and action, with optional configuration below. */
.fp-heading{margin:0 0 10px}.fp-heading .eyebrow{display:none}.fp-heading h1{font-size:22px;margin:0}.fp-modes{gap:8px;margin:10px 0}.fp-mode{padding:9px;min-height:50px;border-radius:8px;display:flex;align-items:center;gap:8px}.fp-mode>[lang]{font-size:24px}.fp-mode>b{font-size:13px;margin:0}.fp-mode>small{display:none}.fp-setup{padding:12px;border-radius:9px;margin:10px 0}.fp-section-top{margin-bottom:9px}.fp-section-top h2{font-size:16px;margin:0}.fp-quick-settings{display:grid;gap:10px}.fp-quick-settings>label{display:grid;gap:5px;font-size:11px;color:var(--muted)}.fp-quick-settings select,.fp-quick-settings input{width:100%;min-width:0;font-size:16px;padding:9px;border:1px solid #bccdbb;border-radius:7px;background:#fff;color:var(--ink)}.fp-quick-settings>button{font-size:13px;min-height:40px}.fp-options{border-top:1px solid #d5dfcf;margin-top:10px;padding-top:8px}.fp-options>summary{font-size:12px;color:#42644b;padding:4px 0;cursor:pointer;min-height:32px}.fp-options .fp-settings{margin-top:10px}.fp-best{font-size:11px;margin:9px 0 0}.fp-lab-link{padding:12px;margin:10px 0;border-radius:8px}.fp-lab-link small{font-size:11px}.fp-lab-link .secondary{font-size:11px!important}.fp-sprint-progress{font-size:10px;margin-bottom:8px;padding:5px 0}.fp-game-top{padding:0 0 5px;margin:0}.fp-hud{padding:6px 0;margin:0}.fp-hud b{font-size:23px}.fp-hud small{font-size:9px}.fp-timer{margin:5px 0 8px}.fp-prompt{padding:5px 0}.fp-prompt .fp-glyph{font-size:110px;line-height:1.2}.fp-prompt h1{font-size:25px;margin:7px 0}.fp-prompt p{font-size:13px;line-height:1.4}.fp-instruction{font-size:10px;margin:5px 0}.fp-ink-actions{gap:6px}.fp-pad{max-width:310px;margin:8px auto}.fp-hints{margin-top:7px;gap:6px}.fp-hints>button{font-size:11px;min-height:32px}.practice-playing #appMain{padding-top:calc(8px + env(safe-area-inset-top))}
.recall-prompt{margin:14px auto 10px}.prompt-kanji{font-size:118px;min-height:130px;margin:6px 0 12px}.prompt-kanji.word-prompt{font-size:55px}.prompt-context{font-size:13px;margin:8px 0}.recall-prompt .eyebrow{font-size:10px!important;margin-bottom:6px!important}.answer-feedback{padding:11px;border-radius:8px}.answer-feedback p{font-size:12px}.lesson-intro{margin-bottom:10px}.lesson-intro h1{font-size:22px}.session-summary{margin:16px auto}.session-summary h1{font-size:23px}
/* Progress and settings use compact factual sections. */
.overview-entry{padding:9px 11px;margin:9px 0;gap:10px;border-radius:8px}.overview-entry-icon{font-size:18px;line-height:1.1}.overview-entry b{font-size:13px}.overview-entry small{font-size:10px}.progress-pool{margin:8px 0}.progress-overview{padding:12px;gap:14px;border-radius:9px}.completion-orb{width:75px;height:75px;min-width:75px;border-width:3px}.completion-orb b{font-size:25px}.completion-orb span{font-size:8px}.progress-overview h2{font-size:16px;margin-bottom:4px}.progress-overview p{font-size:11px;margin-bottom:4px}.progress-lanes{gap:8px;margin:10px 0}.progress-skill{padding:11px;border-radius:8px}.progress-skill h2{font-size:24px;margin:5px 0}.progress-skill p{font-size:10px;margin:5px 0 0}.stroke-milestones{margin:13px 0}.stroke-milestones>p{font-size:11px;margin-bottom:8px}.stroke-milestone{padding:9px 11px;margin:6px 0;border-radius:7px}.week-strip>div{padding:7px 2px}.rules-card{padding:12px;border-radius:8px}.rules-card p{font-size:12px;line-height:1.6}.settings-card{padding:13px;margin:10px 0;border-radius:9px}.settings-card h2{font-size:16px;margin-bottom:9px}.settings-card p{font-size:12px;line-height:1.5}.setting-row{min-height:42px;font-size:12px;padding:7px 0}.setting-row select{font-size:13px;padding:6px 8px;min-height:34px}.toggle-row{padding:8px 0;font-size:13px}.toggle-row small{font-size:11px}.settings-status{font-size:11px}.known-grid{gap:5px;grid-template-columns:repeat(5,minmax(0,1fr))}.known-grid .kanji-badge{width:51px;height:51px}.known-grid .badge-glyph{font-size:29px}.selection-note{font-size:12px;margin:8px 0;line-height:1.5}.selection-toolbar{margin:8px 0}.selection-footer{bottom:calc(51px + env(safe-area-inset-bottom));padding:9px}.set-grid{gap:8px}.set-art{height:62px}.set-art>span{font-size:30px}.set-tile-body{padding:10px}.set-tile h3{font-size:15px;margin:5px 0}.set-tile p{font-size:11px;line-height:1.4}.set-progress{margin:8px 0}.custom-set-cta{padding:13px}.custom-set-cta h2{font-size:17px}.set-details-card,.familiar-note{padding:13px}.set-tip{padding:10px}.set-selection{margin:15px 0;gap:15px 8px}
@media(min-width:700px){#appMain{padding-top:16px}.sp-symbol-list{grid-template-columns:repeat(4,minmax(0,1fr))}.sp-home-symbols.hunt-symbols{grid-template-columns:repeat(10,minmax(0,1fr))}.kanji-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.lane-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid{max-width:760px;margin:auto}.map-cell>span[lang]{font-size:30px}.semantic-card[data-mode=full] .symbol-row{grid-template-columns:minmax(100px,150px) 44px minmax(0,1fr)}.fp-quick-settings{grid-template-columns:1fr auto;align-items:end}.fp-quick-settings>.fp-full{grid-column:1/-1}.fp-quick-settings>button{padding:10px 18px;min-width:190px}.sp-study-nav{max-width:560px}}
@media(max-width:350px){#appMain{padding-left:10px;padding-right:10px}.sp-overview-actions{gap:6px}.sp-overview-actions .sp-goal-rule{font-size:9px!important;flex:1;max-width:135px}.daily-app .sp-symbol-main{padding:8px 6px!important;gap:6px!important;min-height:90px}.sp-symbol-glyph{width:30px;font-size:31px}.sp-symbol-main b{font-size:12px}.sp-symbol-main .sp-streak-line{font-size:9px}.sp-heading h1{font-size:19px}.sp-suggestions>div:last-child{grid-template-columns:1fr 1fr}.sp-home-symbols.hunt-symbols{gap:5px}.semantic-card[data-mode=full] .symbol-row{grid-template-columns:104px 37px minmax(0,1fr);gap:6px}.semantic-card .printed .glyph{font-size:30px}.semantic-card .panel{padding:8px}.sc-basic-reading>b{font-size:15px}.sc-basic-reading>small{font-size:9px}.sc-basic-row>div{gap:4px}.semantic-card .hero-svg{max-height:120px}.collection-shortcuts{font-size:11px;gap:9px}.collection-tile .kanji-badge{width:49px;height:49px}.dictionary-result-meta{max-width:44px}.dictionary-entry>.dictionary-result{padding:7px!important;gap:7px}.dictionary-entry>.dictionary-sprint-add{width:27px;margin-right:4px}.dictionary-result-copy>b{font-size:12px}.dictionary-glyph{width:39px}.dictionary-glyph>.kanji-badge{width:39px;height:39px}.dictionary-meaning{font-size:10px}.overview-skills button{font-size:10px}.sp-goal-rule{line-height:1.3}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

#sprintPane[data-tab=study] .sp-heading{margin:0 0 3px;min-height:28px}#sprintPane[data-tab=study] .sp-heading h1{font-size:15px;line-height:1.2}#sprintPane[data-tab=study] .sp-heading p{display:none}#sprintPane[data-tab=study] .sp-heading>.secondary{min-height:28px!important;padding:3px 9px!important;font-size:11px!important}#sprintPane[data-tab=study]>.sp-progress-track{display:none}#sprintPane[data-tab=study] .sp-tabs{margin:0 0 6px;padding-bottom:3px}#sprintPane[data-tab=study] .sp-tabs>a{min-height:31px;padding:6px 2px}.overview-grid{max-width:min(760px,calc((100svh - 230px)*.9))}

.fp-quick-settings>.fp-exclude-sprint{display:flex;align-items:center;gap:8px;font-size:12px;color:#385442}.fp-exclude-sprint>input{width:18px!important;height:18px;min-height:18px;padding:0;accent-color:#146a54;flex:none}.fp-coach-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:7px 0 3px;font-size:11px;color:#2e624b}.fp-coach-bar select{font-size:13px;min-height:32px;padding:4px 7px;border:1px solid #bfd1bf;border-radius:6px;background:#fff;color:#294b36;max-width:100px}.fp-coach-note{font-size:11px;line-height:1.4;color:#60765f;min-height:16px;margin:0 0 5px}.fp-coach-bar+div+.fp-pad{margin-top:5px}.fp-options .fp-settings input,.fp-options .fp-settings select{font-size:16px}@media(min-width:700px){.fp-quick-settings>.fp-exclude-sprint{grid-column:1/-1}.fp-quick-settings>label:has([data-fp-setting=writeSupport]){grid-column:1}.fp-quick-settings>button{grid-column:2;grid-row:1 / span 2}.fp-quick-settings>.fp-exclude-sprint{grid-row:auto}}

body:has(#sprintPane:not([hidden])) .app-header{display:none}body:has(#sprintPane:not([hidden])) #appMain{padding-top:calc(8px + env(safe-area-inset-top))}

.practice-playing .fp-game-top{font-size:11px;padding:0 0 4px;min-height:28px}.practice-playing .fp-game-top button{min-height:28px;padding:3px 0}.practice-playing .fp-hud{display:flex;align-items:center;justify-content:space-between;padding:5px 0;margin:0;border:0;background:none;box-shadow:none;min-height:34px;gap:10px}.practice-playing .fp-hud>div{display:flex;align-items:baseline;gap:7px}.practice-playing .fp-hud small{font-size:9px}.practice-playing .fp-hud b{font-size:21px;line-height:1.2}.practice-playing #fpLives{font-size:16px}.practice-playing .fp-timer{margin:3px 0 7px}.practice-playing .fp-prompt{padding:3px 0;margin:5px 0}.practice-playing .fp-write-label{display:none}.practice-playing .fp-prompt h1{font-size:25px;line-height:1.2;margin:3px 0}.practice-playing .fp-prompt p{margin:4px 0;font-size:12px}.practice-playing .fp-pad{max-width:335px}.practice-playing .fp-coach-bar{margin-top:4px}.practice-playing .fp-sprint-progress{padding:4px 0;margin-bottom:4px}
.daily-app .fp-mode{flex-direction:row;align-items:center;justify-content:flex-start;min-height:46px;gap:8px}.daily-app .fp-mode>[lang]{margin:0;line-height:1;font-size:24px}.daily-app .fp-mode>b{margin:0;line-height:1.3;font-size:13px}.daily-app.in-overview .app-header{height:calc(44px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 14px 0}

/* Writing feedback stays on the drawing surface. */
.practice-playing .fp-writing .fp-pad{position:relative;width:min(100%,335px,calc(100dvh - 335px));min-width:190px;overflow:hidden;transition:background .15s,border-color .15s}
.fp-canvas-result{position:absolute;top:6px;left:7px;right:7px;padding:5px 7px;font-size:12px;font-weight:700;text-align:center;background:#fffefaeb;border-radius:6px;pointer-events:none;z-index:1}
.fp-canvas-result[hidden]{display:none}.fp-ink-correct .fp-pad{border:3px solid #18855b!important;background:#e3f6eb!important}.fp-ink-incorrect .fp-pad,.fp-stroke-error .fp-pad{border-color:#c04039!important;background:#fff4ef!important}.fp-ink-uncertain .fp-pad{border-color:#ae7a2e!important;background:#fff8e8!important}
.fp-ink-correct .fp-canvas-result{color:#087745}.fp-ink-incorrect .fp-canvas-result{color:#a82b28}.practice-playing .fp-writing-feedback{margin:4px 0 0;padding:0;border:0;background:none!important}.fp-inline-explanation{font-size:11px;line-height:1.3;text-align:center;margin:3px 0 6px;color:#3d5549}.fp-inline-actions{display:flex;justify-content:center;gap:9px}.fp-inline-actions button{min-height:42px;padding:8px 17px;font-size:13px}.fp-writing-details{font-size:11px;margin:8px 0}.fp-writing-details>summary{color:#506b5b;cursor:pointer;text-align:center;padding:4px}.fp-writing-details .fp-comparison{max-width:350px;margin:10px auto}.fp-writing .fp-ink-actions[hidden],.fp-writing #fpHints[hidden]{display:none}.fp-writing .fp-coach-note{height:28px;min-height:28px;font-size:11px;margin-bottom:2px}.fp-writing .fp-prompt p{max-height:34px;overflow:auto}.fp-writing .fp-hint-text:empty{display:none}
@media(max-height:700px){.practice-playing .fp-writing .fp-pad{width:min(100%,calc(100dvh - 380px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));min-width:175px}.fp-writing .fp-prompt h1{font-size:21px}.fp-writing #fpSprintProgress{display:none}.fp-writing .fp-coach-note{height:23px;min-height:23px}.fp-writing .fp-writing-details{margin:3px 0}}
