:root{--background:#d8dde3;--surface:#f8fafc;--surface-strong:#fff;--text:#161b22;--muted:#687483;--line:#c8d0da;--accent:#b47a2a;--accent-strong:#7a4a16;--menu-dark:#151a22;--menu-dark-2:#242b35;--gold:#d6a949;--gold-2:#f0cf76;--correct:#177245;--correct-bg:#e8f7ef;--incorrect:#aa2e25;--incorrect-bg:#fff0ed;--tile-shadow:#1f293324}*{box-sizing:border-box}html{background:var(--background);min-height:100%}body{min-height:100%;color:var(--text);background:radial-gradient(circle at 50% -8%, #ffffffa3, transparent 28rem), linear-gradient(180deg, #636f7e33, #d8dde300 320px), var(--background);margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button{font:inherit}.appShell{width:min(980px,100% - 32px);margin:0 auto;padding:32px 0 48px}.appShell.quizMode{padding-top:8px}.quizHeader{margin-bottom:24px}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(2rem,5vw,3.5rem);line-height:1.08}h2{margin-bottom:14px;font-size:1.15rem}.lead{max-width:680px;color:var(--muted);margin-bottom:0;line-height:1.8}.titleRow{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.versionBadge{color:var(--gold-2);background:#0000002e;border:1px solid #ffffff24;border-radius:999px;padding:3px 8px;font-size:.78rem;font-weight:800;line-height:1.2}.menuFrame{background:linear-gradient(#ffffffeb,#eef2f7e0);border:1px solid #0b122029;border-radius:24px;overflow:hidden;box-shadow:0 22px 52px #1118272e}.menuTop{color:#f8f4e8;background:radial-gradient(circle at 50% 0%, #f0cf762e, transparent 20rem), linear-gradient(180deg, var(--menu-dark-2), var(--menu-dark));justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 22px 18px;display:flex}.menuTop h1{letter-spacing:0;text-shadow:0 3px #0000005c;margin-bottom:0;font-size:clamp(2rem,10vw,4.6rem);line-height:.95}.menuTopActions{justify-items:end;gap:8px;display:grid}.menuActionButtons{gap:8px;display:flex}.settingsButton{color:#e7ebf1;cursor:pointer;background:#0003;border:1px solid #ffffff29;border-radius:12px;place-items:center;gap:2px;min-width:72px;min-height:56px;padding:7px 12px;font-size:.72rem;font-weight:900;display:grid}.settingsButton.active{color:#211603;background:linear-gradient(#f4d77c,#d49b36);border-color:#f4d77cb8}.settingsIcon{font-size:1.3rem;line-height:1}.menuEyebrow{color:var(--gold-2);margin-bottom:8px;font-size:.86rem;font-weight:900}.announcementPanel{color:#e7edf6;background:#182335;border-top:1px solid #f4d77c33;border-bottom:1px solid #ffffff1f;gap:10px;padding:14px 22px;display:grid}.announcementPanel>strong{color:var(--gold-2);font-size:.86rem;font-weight:1000}.announcementList{gap:8px;display:grid}.announcementItem{grid-template-columns:7.4rem minmax(0,1fr);align-items:baseline;gap:10px;display:grid}.announcementItem time{color:#f4d77c;font-size:.78rem;font-weight:900}.announcementItem p{margin:0;font-size:.82rem;font-weight:800;line-height:1.55}.menuTabs{background:#111827;grid-template-columns:repeat(5,1fr);gap:1px;padding:6px;display:grid}.menuTab{color:#d7dde8;cursor:pointer;background:0 0;border:0;border-radius:14px;min-height:46px;font-weight:900}.menuTab.active{color:#1c1405;background:radial-gradient(circle at 50% 0,#ffffff7a,#0000 70%),linear-gradient(#f4d77c,#d49b36);box-shadow:inset 0 1px #fff6,0 10px 20px #00000038}.menuSection{padding:18px}.difficultySelector{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.difficultyOption{min-height:40px;color:var(--text);cursor:pointer;background:#ffffffb8;border:1px solid #11182724;border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:8px 12px;font-weight:900;display:grid}.difficultyOption:has(input:checked){background:#eaf3ff;border-color:#1268c875}.difficultyOption input{accent-color:#1268c8;width:18px;height:18px;margin:0}.difficultyOption small{color:var(--muted);font-size:.78rem}.challengeCard:disabled{cursor:not-allowed;opacity:.45;transform:none}.challengeGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.challengeCard{color:#eef2f7;text-align:left;cursor:pointer;background:radial-gradient(circle at 50% 0,#ffffff29,#0000 68%),linear-gradient(#374151,#111827);border:1px solid #11182724;border-radius:8px;align-content:start;gap:7px;min-height:132px;padding:14px;display:grid;box-shadow:inset 0 1px #ffffff21,0 14px 28px #1118272e}.challengeCard.primary{color:#1f1404;background:radial-gradient(circle at 50% 0,#ffffff75,#0000 62%),linear-gradient(#ffd56e,#e58b26 48%,#7a330b)}.challengeCard.recommended{background:radial-gradient(circle at 50% 0,#ffffff2e,#0000 66%),linear-gradient(#166f65,#0d4741)}.challengeCard:hover{transform:translateY(-1px)}.challengeLabel{font-size:1.35rem;font-weight:900;line-height:1.14}.challengeMeta{color:currentColor;opacity:.74;font-size:.85rem;font-weight:900}.challengeRecord{opacity:.9;border-top:1px solid;align-self:end;gap:3px;margin-top:auto;padding-top:7px;font-size:.78rem;line-height:1.25;display:grid}.challengeRecord small{opacity:.72;font-size:.7rem;font-weight:800}.challengeRecord strong{font-size:1rem;font-weight:1000}.challengeRecord span{font-weight:800}.challengeRecordLine{white-space:nowrap;align-items:center;gap:8px;min-width:0;display:flex}.challengeRecordRank{flex:none;font-weight:1000;line-height:1;font-size:1.2rem!important}.challengeRecordResult{text-overflow:ellipsis;min-width:0;overflow:hidden;font-size:.88rem!important}.challengeRecordTime{margin-left:auto;font-size:.82rem}.challengeGodRankImage{object-fit:cover;filter:drop-shadow(0 0 5px #f2d27b7a);border-radius:50%;flex:none;width:28px;height:28px}.typeChallengePanel{border-top:1px solid var(--line);gap:12px;margin-top:16px;padding-top:16px;display:grid}.typeChallengePanel h3{margin:0;font-size:1rem}.typeFilterGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.typeFilterButton{min-height:50px;color:var(--text);cursor:pointer;background:#ffffffad;border:1px solid #11182724;border-radius:8px;align-content:center;justify-items:center;gap:3px;padding:8px 10px;display:grid}.typeFilterButton.active{color:#1f1404;background:linear-gradient(#ffe29a,#dca03d);border-color:#7a4a167a;box-shadow:inset 0 1px #ffffff6b}.typeFilterGroup{color:#1268c8;font-size:.72rem;font-weight:900;line-height:1.05}.typeFilterMain{color:var(--text);text-align:center;font-size:.9rem;font-weight:900;line-height:1.15}.typeFilterButton.active .typeFilterGroup{color:#0750a5}.typeFilterButton.active .typeFilterMain{color:#1f1404}.typeStartButton{color:#fff;background:var(--accent);cursor:pointer;border:0;border-radius:8px;width:fit-content;min-height:44px;padding:10px 18px;font-weight:900}.typeStartButton:hover:not(:disabled){background:var(--accent-strong)}.typeStartButton:disabled{cursor:default;opacity:.54}.analysisGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.analysisCard{background:#ffffffb8;border:1px solid #1118271a;border-radius:16px;align-content:center;gap:8px;min-height:98px;padding:14px;display:grid}.analysisCard span{color:var(--muted);font-size:.78rem;font-weight:900}.analysisCard strong{color:var(--text);font-size:1.35rem;line-height:1}.dailyAnalysisTable{background:#ffffffb8;border:1px solid #1118271a;border-radius:8px;overflow:hidden}.dailyAnalysisHeader,.dailyAnalysisRow{text-align:center;grid-template-columns:.8fr repeat(4,1fr);align-items:center;gap:4px;min-height:44px;padding:7px 10px;display:grid}.dailyAnalysisHeader{min-height:36px;color:var(--muted);background:#1118270f;font-size:.7rem;font-weight:900}.dailyAnalysisRow{color:var(--text);border-top:1px solid #11182714;font-size:.85rem;font-weight:800}.dailyAnalysisRow strong{color:#9a671f}.analysisEmpty{color:var(--muted);text-align:center;padding:28px 12px;font-weight:800}.rankingCategoryTabs,.rankingPeriodTabs,.rankGenreGrid{background:#11182714;border-radius:8px;gap:5px;padding:4px;display:grid}.rankingCategoryTabs{grid-template-columns:repeat(2,minmax(0,1fr))}.rankingPeriodTabs{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:8px}.rankGenreGrid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:8px}.rankGenreGrid.fiveGenres{grid-template-columns:repeat(5,minmax(0,1fr))}.rankingCategoryTabs button,.rankingPeriodTabs button,.rankGenreGrid button{min-height:40px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;font-weight:900}.rankingCategoryTabs button.active,.rankingPeriodTabs button.active,.rankGenreGrid button.active{color:#1f1404;background:linear-gradient(#f4d77c,#d49b36)}.rankGenreGrid button{padding:7px 3px;font-size:.72rem;line-height:1.2}.rankingDescription{color:var(--muted);margin:12px 0;font-size:.78rem;font-weight:700}.learningReportCard{background:#fff8df;border:1px solid #9a671f38;border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px 12px;margin:12px 0;padding:12px;display:grid}.learningReportCard strong{color:var(--text)}.learningReportCard p{color:var(--text);margin:4px 0 0;font-size:.82rem;font-weight:800}.learningReportCard small{color:var(--muted);margin-top:3px;font-size:.72rem;font-weight:800;display:block}.learningReportCard button{color:#1f1404;cursor:pointer;background:linear-gradient(#f4d77c,#d49b36);border:0;border-radius:8px;min-height:40px;padding:8px 14px;font-weight:900}.learningReportCard button:disabled{cursor:default;opacity:.5}.rankingList{gap:6px;display:grid}.rankingRow{background:#ffffffbd;border:1px solid #1118271a;border-radius:8px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:64px;padding:9px 11px;display:grid}.rankingEffortRow{grid-template-columns:24px minmax(5.5rem,1fr) auto;gap:6px;min-height:46px;padding:7px 9px}.rankingPlace{color:#9a671f;text-align:center;font-size:1.05rem}.rankingEffortName{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.rankingPlayer{gap:4px;min-width:0;display:grid}.rankingPlayer strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rankingPlayer span{color:var(--muted);font-size:.7rem;font-weight:800}.rankingEffortValue{color:#177245;white-space:nowrap;font-size:.92rem}.rankingRank{text-align:center;min-width:42px;font-size:1.5rem;font-weight:1000}.rankingGodRankImage{object-fit:cover;width:38px;height:38px;display:block}.rankingRankRow{grid-template-columns:24px minmax(7rem,1fr) auto auto;min-height:54px;padding:7px 9px}.rankingRankStats{text-align:right;gap:2px;min-width:7.5rem;display:grid}.rankingRankStats strong,.rankingRankStats span{white-space:nowrap}.rankingRankStats strong{font-size:.75rem}.rankingRankStats span{color:var(--muted);font-size:.72rem;font-weight:800}.rankingEmpty{color:var(--muted);text-align:center;padding:30px 12px;font-weight:800}.rankingEmpty.error{color:var(--incorrect)}.settingsSection{gap:12px;display:grid}.settingsGroup{background:#ffffffb8;border:1px solid #1118271a;border-radius:8px;gap:9px;padding:15px;display:grid}.settingsLabel,.settingsLabelRow{color:var(--text);font-size:.9rem;font-weight:900}.settingsLabelRow{justify-content:space-between;align-items:center;display:flex}.settingsTextInput{width:100%;min-height:46px;color:var(--text);font:inherit;background:#fff;border:1px solid #1118272e;border-radius:8px;padding:10px 12px;font-weight:800}.settingsTextInput:focus{border-color:#1268c8;outline:3px solid #1268c824}.settingsHelp{color:var(--muted);margin:0;font-size:.78rem;font-weight:700;line-height:1.55}.volumeSlider{accent-color:#d49b36;width:100%}.volumeScale{color:var(--muted);justify-content:space-between;font-size:.72rem;font-weight:900;display:flex}.settingsToggleRow{grid-template-columns:1fr auto;align-items:center}.toggleSwitch{color:#fff;cursor:pointer;background:#6b7280;border:0;border-radius:999px;width:72px;height:38px;padding:0 9px 0 34px;font-size:.7rem;font-weight:1000;position:relative}.toggleSwitch:before{content:"";background:#fff;border-radius:50%;width:30px;height:30px;transition:transform .18s;position:absolute;top:4px;left:4px;box-shadow:0 2px 6px #1118273d}.toggleSwitch.active{background:#177245;padding:0 34px 0 9px}.toggleSwitch.active:before{transform:translate(34px)}.backupGroup{background:#f9f5e8e6}.backupButton{min-height:44px;color:var(--text);text-align:center;cursor:pointer;background:#fff;border:1px solid #1118272e;border-radius:8px;place-items:center;padding:10px 14px;font-size:.86rem;font-weight:900;display:grid}.backupButton.primary{color:#1f1404;background:linear-gradient(#f4d77c,#d49b36);border-color:#0000}.backupStatus{color:#7a4a16;margin:0;font-size:.78rem;font-weight:900}.shortcutIconGroup{background:#eaf2fddb}.shortcutIconPreview{min-height:92px;color:var(--muted);background:#ffffffbd;border:1px dashed #1268c861;border-radius:8px;place-items:center;font-size:.84rem;font-weight:900;display:grid;overflow:hidden}.shortcutIconPreview img{object-fit:cover;border-radius:8px;width:72px;height:72px}.shortcutIconDropZone{color:#0d518f;text-align:center;cursor:pointer;background:#ffffffbd;border:2px dashed #1268c86b;border-radius:8px;place-items:center;gap:3px;min-height:86px;padding:14px;font-size:.92rem;font-weight:900;transition:border-color .16s,background-color .16s,box-shadow .16s;display:grid}.shortcutIconDropZone span{color:var(--muted);font-size:.72rem}.shortcutIconDropZone:hover,.shortcutIconDropZone:focus-within,.shortcutIconDropZone.dragActive{background:#e4f1ff;border-color:#1268c8;box-shadow:0 0 0 3px #1268c81f}.shortcutIconActions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.shortcutIconStatus{border-radius:6px;margin:0;padding:9px 10px;font-size:.8rem;font-weight:900;line-height:1.55}.shortcutIconStatus.success{color:#155b36;background:#e5f5eb}.shortcutIconStatus.error{color:#a71d24;background:#fff0f0}.visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.timeAttackButton,.menuBackButton{cursor:pointer;border-radius:8px;min-height:44px;font-weight:800}.questionList{border:1px solid var(--line);background:#ffffff9e;border-radius:8px;gap:0;display:grid;overflow:hidden}.questionListSort{background:#11182712;border:1px solid #11182724;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-bottom:10px;padding:4px;display:grid}.reviewModeSelector{background:#11182712;border:1px solid #11182724;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-bottom:10px;padding:4px;display:grid}.reviewModeButton{min-height:40px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;font-weight:900}.reviewModeButton.active{color:#fff;background:#1f2937;box-shadow:0 2px 7px #11182733}.reviewActions{grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:10px;display:grid}.reviewEmpty{border:1px dashed var(--line);color:var(--muted);text-align:center;background:#ffffff8c;border-radius:8px;margin-bottom:0;padding:20px;font-weight:800}.questionListSortButton{min-height:38px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;font-weight:900}.questionListSortButton.active{color:#fff;background:#1f2937;box-shadow:0 2px 7px #11182733}.questionListItem{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;grid-template-columns:58px minmax(0,1fr) 230px auto;align-items:center;gap:8px;padding:8px 10px;display:grid}.questionListItem:last-child{border-bottom:0}.questionListItem:hover{background:#147c7214}.questionListItem:focus-visible{outline-offset:-3px;outline:3px solid #147c7247}.questionListStats{white-space:nowrap}.problemId{color:var(--accent-strong);font-weight:900}.problemIdGroup{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.newQuestionBadge{color:#fff;background:#d3462f;border-radius:4px;align-items:center;min-height:16px;padding:1px 5px;font-size:.65rem;font-weight:1000;line-height:1.2;display:inline-flex}.questionTitleWithBadge{align-items:center;gap:7px;display:inline-flex}.problemTiles{align-items:center;gap:0;min-width:0;display:flex;overflow:hidden}.problemTiles .tileCompact{width:min(30px, calc(100% / var(--problem-tile-count,13)));border-radius:3px}.statPill{color:var(--muted);text-align:right;font-size:.82rem;font-weight:800}.playMeta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:.9rem;font-weight:800;display:flex}.sectionTitleActions,.explanationTitleRow{align-items:center;gap:10px;display:flex}.sectionTitleActions{justify-content:flex-end}.explanationTitleRow{justify-content:space-between;margin-bottom:10px}.explanationTitleRow h2{margin-bottom:0}.menuBackButton{border:1px solid var(--line);min-height:36px;color:var(--text);background:var(--surface-strong);margin-left:auto;padding:6px 12px}.menuBackButton:hover{border-color:var(--accent);color:var(--accent-strong)}.panel{border:1px solid var(--line);background:#fffefadb;border-radius:8px;margin-top:18px;padding:20px;box-shadow:0 16px 40px #1f293314}.sectionTitleRow{justify-content:space-between;align-items:center;gap:16px;display:flex}.questionCount{color:var(--muted);font-size:.94rem;font-weight:700}.handArea,.closedTiles,.meldArea,.answerTiles{flex-wrap:wrap;align-items:center;display:flex}.handArea{background:#ffffffb3;border:1px dashed #bcc8bc;border-radius:8px;gap:8px;padding:14px}.closedTiles,.meldArea{gap:0;min-width:0}.closedTiles{flex-wrap:nowrap;width:100%}.closedTiles .tile{width:min(58px, calc(100% / var(--hand-tile-count,13)))}.meldArea{border-left:1px solid var(--line);margin-left:auto;padding-left:14px}.meld{background:#147c7214;border-radius:8px;align-items:center;gap:0;padding:6px;display:inline-flex}.tile{aspect-ratio:66/90;background:0 0;flex:none;justify-content:center;align-items:center;width:58px;height:auto;display:inline-flex;overflow:hidden}.tileCompact{width:42px;height:auto}.tileSideways{width:90px;height:66px}.tileCompact.tileSideways{width:66px;height:48px}.tile img{object-fit:fill;image-rendering:auto;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.tileSideways img{width:66px;height:90px;transform:rotate(90deg)}.tileCompact.tileSideways img{width:48px;height:66px}.tileFallback{width:100%;height:100%;color:var(--text);text-align:center;background:linear-gradient(#fff 0%,#f2f5f1 100%);justify-content:center;align-items:center;padding:4px;font-weight:800;line-height:1;display:flex}.choiceRows{touch-action:none;-webkit-user-select:none;user-select:none;gap:3px;display:grid}.shantenAnswerBlock,.tileAnswerBlock{gap:8px;display:grid}.shantenAnswerBlock{margin-bottom:18px}.shantenAnswerBlock h2,.tileAnswerBlock h2{margin-bottom:0;font-size:1rem}.shantenCategoryGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;display:grid}.shantenCategoryButton{border:1px solid var(--line);min-width:0;min-height:62px;color:var(--text);cursor:pointer;background:#e0e5e9b8;border-radius:6px;align-content:center;justify-items:center;gap:3px;padding:6px 4px;display:grid}.shantenCategoryButton:hover:not(:disabled){background:#e2effde6;border-color:#1268c875}.shantenCategoryButton.selected{background:#fff0bd;border-color:#d6a949;box-shadow:inset 0 0 0 2px #d6a94980}.shantenCategoryButton.answer{border-color:var(--correct);background:var(--correct-bg);box-shadow:inset 0 0 0 2px #1772456b}.shantenCategoryButton.incorrect{border-color:var(--incorrect);background:var(--incorrect-bg);box-shadow:inset 0 0 0 2px #aa2e2561}.shantenCategoryButton:disabled{cursor:default}.shantenCategoryGroup{color:#1268c8;font-size:.68rem;font-weight:900;line-height:1}.shantenCategoryMain{text-align:center;overflow-wrap:anywhere;max-width:100%;font-size:.78rem;font-weight:900;line-height:1.15}.choiceRow{flex-wrap:nowrap;align-items:center;gap:1px;width:100%;display:flex}.tileChoice{width:min(50px, calc((100% - ((var(--choice-tile-count,9) - 1) * 1px)) / var(--choice-tile-count,9)));aspect-ratio:66/90;height:auto;color:var(--text);box-shadow:none;cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:transform .15s,background .15s;display:flex;position:relative;overflow:hidden}.tileChoice:after{z-index:1;content:"";pointer-events:none;background:#26303a2e;border-radius:4px;transition:opacity .12s;position:absolute;inset:0}.tileChoice .tileCompact{border-radius:4px;width:100%}.tileChoice:hover:not(:disabled){transform:translateY(-2px)}.tileChoice:focus-visible{outline-offset:2px;outline:3px solid #147c7257}.tileChoice:disabled{cursor:default}.tileChoice.selected{background:0 0}.tileChoice.selected:after{opacity:0}.tileChoice.answer{background:0 0}.tileChoice.answer:after{opacity:1;box-shadow:inset 0 0 0 3px var(--correct);background:#26303a2e}.tileChoice.answer .tileCompact{box-shadow:none}.tileChoice.selected.answer:after{opacity:1;box-shadow:inset 0 0 0 3px var(--correct);background:0 0}.tileChoice.selected.answer .tileCompact{box-shadow:none}.tileChoice.blocked:not(.answer){opacity:.38;filter:grayscale(.85)}.choiceActions{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px;display:grid}.choicesPanel.submitted{padding-block:14px}.choicesPanel.submitted .shantenAnswerBlock{margin-bottom:10px}.answerStatusInline{align-items:center;gap:12px;margin-top:10px;display:flex}.submitButton,.clearButton,.menuActionButton{cursor:pointer;border-radius:8px;min-height:46px;padding:10px 18px;font-weight:800}.submitButton{color:#fff;background:var(--accent);border:0}.clearButton,.menuActionButton{border:1px solid var(--line);color:var(--text);background:var(--surface-strong)}.submitButton:hover:not(:disabled){background:var(--accent-strong)}.clearButton:hover:not(:disabled),.menuActionButton:hover{border-color:var(--accent);color:var(--accent-strong)}.submitButton:disabled,.clearButton:disabled{cursor:default;opacity:.6}.choiceActions>button{width:100%;padding-inline:8px}.explanationPanel{gap:16px;margin-top:10px;display:grid}.resultBadge{border-radius:8px;width:fit-content;padding:8px 14px;font-size:1.25rem;font-weight:800}.resultBadge.correct{color:var(--correct);background:var(--correct-bg)}.resultBadge.incorrect{color:var(--incorrect);background:var(--incorrect-bg)}.answerJudgementGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.judgementItem{border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-weight:900;display:flex}.judgementItem span{font-size:.84rem}.judgementItem.correct{color:var(--correct);background:var(--correct-bg)}.judgementItem.incorrect{color:var(--incorrect);background:var(--incorrect-bg)}.judgementItem.unanswered{color:var(--muted);background:#6874831a}.categoryAnswerSummary{border:1px solid var(--line);background:#ffffffad;border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:6px 12px;padding:10px 12px;display:flex}.categoryAnswerSummary span{color:var(--muted);font-size:.82rem;font-weight:900}.categoryAnswerSummary strong{color:var(--text)}.answerTime{color:var(--muted);margin:0;font-weight:800}.answerNextButton{white-space:nowrap;min-height:40px;margin-left:auto;padding:8px 14px}.selectedText{margin-bottom:0}.emptySelection{color:var(--muted);margin:0;font-weight:700}.answerBlock h2,.explanationBlock h2{margin-bottom:10px;font-size:1rem}.answerTiles{gap:0}.explanationHandTiles{flex-wrap:nowrap;gap:0;width:100%;margin-bottom:12px;display:flex}.explanationHandTiles .tile{width:min(48px, calc(100% / var(--hand-tile-count,13)))}.explanationImageFrame{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:12px;overflow:hidden}.explanationImage{width:100%;height:auto;display:block}.explanationBlock p,.explanationText{margin-bottom:0;font-size:1.25rem;font-weight:700;line-height:1.85}.inlineTileGroup{vertical-align:-.2em;white-space:nowrap;align-items:center;gap:0;margin:0 .08em;display:inline-flex}.inlineTileGroup .tileCompact{border-radius:2px;width:.82em}.nextButton{color:#fff;background:var(--accent);cursor:pointer;border:0;border-radius:8px;width:fit-content;min-height:44px;padding:10px 18px;font-weight:800}.nextButton:hover{background:var(--accent-strong)}.nextButton:disabled{cursor:not-allowed;opacity:.45}.resultNavigation{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px;width:100%;display:grid}.resultNavigation .nextButton,.resultNavigation .listReturnButton{width:100%;padding-inline:10px}.listReturnButton{border:1px solid var(--line);min-height:44px;color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;padding:10px 18px;font-weight:800}.listReturnButton:hover{background:#f4f6f8}.completionPanel{gap:18px;display:grid}.completionStats{flex-wrap:wrap;gap:10px;display:flex}.completionStats span{border:1px solid var(--line);background:#ffffffad;border-radius:8px;padding:8px 12px;font-weight:900}.recordPanel{background:#f4f6f8;border-color:#c8d0da;position:relative;overflow:hidden}.recordPanel:before{content:none}.recordPanel>*{z-index:1;position:relative}.resultHeader{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.resultHeader h2{margin-bottom:0;font-size:clamp(1.7rem,6vw,2.75rem);line-height:1}.resultModePill{color:#4b300d;background:#fff6d6db;border:1px solid #7a4a1640;border-radius:999px;padding:7px 11px;font-size:.86rem;font-weight:900}.scoreCard{color:#f9f3df;background:radial-gradient(circle at 50% 0,#f2d27b33,#0000 13rem),linear-gradient(#081210fa,#040807fa);border:1px solid #d8a83c47;border-radius:8px;justify-items:center;gap:12px;padding:22px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff21,0 18px 34px #1118272e}.scoreCard:before{content:"";pointer-events:none;background:linear-gradient(120deg,#0000 8%,#ffffff2e 18%,#0000 28%);animation:1.25s .22s both resultSheen;position:absolute;inset:0;transform:translate(-120%)}.rankDisplay{z-index:1;place-content:center;justify-items:center;gap:10px;min-height:190px;animation:.55s cubic-bezier(.2,1.35,.38,1) both scorePop;display:grid;position:relative}.scoreNumber{color:#fff;text-shadow:0 0 16px #f2d27b3d;font-size:clamp(1.65rem,6vw,2.35rem);line-height:1}.scoreNumber small{color:var(--gold-2);margin-left:4px;font-size:.52em}.rankBadgeResult{letter-spacing:0;text-shadow:0 4px 14px #00000047;font-size:clamp(5rem,25vw,8rem);font-weight:1000;line-height:.92;animation:.72s ease-out .18s both rankReveal}.rankGod{color:#ffd85c}.rankSS{color:#0000;background:linear-gradient(90deg,#ef4444,#f59e0b,#10b981,#3b82f6,#8b5cf6,#ef4444) 0 0/200%;filter:drop-shadow(0 0 6px #ff2d827a)drop-shadow(0 0 10px #00c8ff57);-webkit-background-clip:text;background-clip:text;animation:.72s ease-out .18s both rankReveal,3s linear infinite rankRainbow}.rankS{color:#d8a83c;text-shadow:0 0 8px #d8a83c40}.rankA{color:#7ee2a8}.rankB{color:#7fc8ff}.rankC{color:#dce7ef}.rankD{color:#cbd5e1}.rankE{color:#aab4c1}.rankF{color:#ff8f86}.rankComment{z-index:1;color:#f8f4e8;text-align:center;max-width:34rem;margin-bottom:0;font-size:1.05rem;font-weight:900;line-height:1.65;position:relative}.godRankImage{aspect-ratio:1;object-fit:cover;filter:drop-shadow(0 0 12px #f2d27b7a);border-radius:50%;width:min(190px,48vw);animation:.72s ease-out .18s both rankReveal;display:block}@keyframes rankRainbow{to{background-position:200%}}.resultStatsGrid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.rankingSubmitCard{background:#fff8df;border:1px solid #9a671f42;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 14px;padding:14px;display:grid}.rankingSubmitCard strong{color:var(--text)}.rankingSubmitCard p{color:var(--muted);margin:4px 0 0;font-size:.76rem;font-weight:700}.rankingSubmitCard button{color:#1f1404;cursor:pointer;background:linear-gradient(#f4d77c,#d49b36);border:0;border-radius:8px;min-height:42px;padding:9px 14px;font-weight:900}.rankingSubmitCard button:disabled{cursor:default;opacity:.5}.rankingSubmitStatus{grid-column:1/-1;color:#7a4a16!important;font-weight:900!important}.resultStatCard{background:#ffffffb8;border:1px solid #1118271a;border-radius:8px;align-content:center;gap:8px;min-height:88px;padding:12px;display:grid}.resultStatCard span{color:var(--muted);font-size:.78rem;font-weight:900}.resultStatCard strong{color:var(--text);font-size:clamp(1.05rem,3vw,1.45rem);line-height:1}.wrongQuestionBlock{gap:10px;display:grid}.wrongQuestionBlock h3{margin:0;font-size:1rem}.wrongQuestionList{gap:10px;display:grid}.wrongQuestionItem{background:#ffffffbd;border:1px solid #1118271f;border-radius:8px;gap:8px;padding:12px;display:grid}.wrongQuestionTitle{justify-content:space-between;align-items:center;gap:10px;display:flex}.favoriteButton{border:1px solid var(--line);color:#8a681c;cursor:pointer;background:#fff;border-radius:50%;place-items:center;width:38px;height:38px;padding:0;font-size:1.35rem;line-height:1;display:inline-grid}.favoriteButton.active{color:#b47a2a;background:#fff6d8;border-color:#d6a949}.wrongQuestionTiles,.wrongMeld,.wrongAnswerTiles{flex-wrap:nowrap;align-items:center;gap:0;min-width:0;display:flex}.wrongQuestionTiles{width:100%;overflow:hidden}.wrongQuestionTiles .tileCompact{width:min(32px, calc(100% / var(--wrong-tile-count,13)));border-radius:3px}.wrongMeld{border-left:1px solid var(--line);margin-left:3px;padding-left:3px}.wrongAnswerRows{color:var(--muted);grid-template-columns:42px minmax(0,1fr);align-items:center;gap:6px 10px;font-size:.88rem;font-weight:900;display:grid}.wrongAnswerTiles{color:var(--text);white-space:nowrap;flex-wrap:nowrap;gap:0;overflow:visible}.wrongAnswerTiles .tileCompact{border-radius:2px;flex:0 0 .82em;width:.82em}.wrongCategoryText{color:var(--text);font-size:.82rem;line-height:1.55}.completionActions{flex-wrap:wrap;gap:10px;display:flex}@keyframes resultSheen{0%{transform:translate(-120%)}to{transform:translate(120%)}}@keyframes scorePop{0%{opacity:0;transform:scale(.72)rotate(-8deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes rankReveal{0%{opacity:0;transform:translateY(16px)scale(.86)}to{opacity:1;transform:translateY(0)scale(1)}}@media (max-width:640px){.appShell{width:min(100% - 20px,1080px);padding-top:20px}.appShell.quizMode{padding-top:4px}.panel{padding:14px}.choicesPanel.submitted{padding-block:10px}.answerStatusInline{gap:10px;margin-top:8px}.answerStatusInline .resultBadge{padding:6px 10px;font-size:1.05rem}.menuTop{padding:18px 16px 16px}.settingsButton{min-width:62px;min-height:52px;padding-inline:8px}.announcementPanel{padding:12px 16px}.announcementItem{grid-template-columns:1fr;gap:2px}.shortcutIconActions{grid-template-columns:1fr}.menuTabs{grid-template-columns:repeat(5,minmax(0,1fr));padding:4px}.menuTab{border-radius:12px;min-height:42px;padding-inline:2px;font-size:.72rem}.menuSection{padding:14px}.challengeGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.typeFilterGrid,.analysisGrid{grid-template-columns:1fr}.challengeCard{min-height:124px;padding:11px}.challengeCard.recommended{grid-column:1/-1;min-height:88px}.challengeLabel{font-size:1.05rem}.challengeMeta{font-size:.7rem}.challengeRecordLine{white-space:normal;grid-template-columns:auto minmax(0,1fr);gap:3px 5px;display:grid}.challengeRecordTime{grid-column:2;margin-left:0;font-size:.72rem}.rankingSubmitCard{grid-template-columns:1fr}.rankingSubmitCard button{width:100%}.learningReportCard{grid-template-columns:1fr}.learningReportCard button{width:100%}.rankingEffortRow{grid-template-columns:20px minmax(4.8rem,1fr) auto;gap:4px;padding-inline:7px}.rankGenreGrid.fiveGenres{grid-template-columns:repeat(2,minmax(0,1fr))}.rankingRankRow{grid-template-columns:20px minmax(5.2rem,1fr) auto auto;gap:5px;padding-inline:7px}.rankingRank{min-width:30px;font-size:1.15rem}.rankingGodRankImage{width:32px;height:32px}.rankingRankStats{min-width:6.6rem}.rankingEffortName,.rankingEffortValue{font-size:.78rem}.questionListItem{grid-template-columns:48px minmax(0,1fr) auto;gap:4px 8px;padding:8px}.problemTiles{grid-column:2/3}.problemTiles .tileCompact{width:min(26px, calc(100% / var(--problem-tile-count,13)))}.problemId{align-self:center}.questionListStats{text-align:left;grid-column:1/-1}.questionListItem .favoriteButton{grid-area:1/3/3;align-self:center}.reviewActions{grid-template-columns:1fr}.playMeta{flex-direction:column;align-items:stretch}.menuBackButton{width:100%;margin-left:0}.handArea{gap:6px;padding:8px}.questionPanel{padding-inline:10px}.meldArea{border-top:1px solid var(--line);border-left:0;width:100%;margin-left:0;padding-top:10px;padding-left:0}.tile{width:44px;height:auto}.tileCompact{width:38px;height:auto}.tileSideways{width:66px;height:48px}.tileCompact.tileSideways{width:54px;height:40px}.tileSideways img{width:48px;height:66px}.tileCompact.tileSideways img{width:40px;height:54px}.choiceRows{gap:2px}.shantenCategoryGrid{gap:3px}.shantenCategoryButton{min-height:58px;padding:5px 2px}.shantenCategoryGroup{font-size:.6rem}.shantenCategoryMain{font-size:.68rem}.choiceRow{gap:1px}.tileChoice{width:min(46px, calc((100% - ((var(--choice-tile-count,9) - 1) * 1px)) / var(--choice-tile-count,9)));height:auto;padding:0}.tileChoice .tileCompact{width:100%}.resultHeader{flex-direction:column;align-items:stretch}.scoreCard{padding:18px 12px}.rankDisplay{min-height:170px}.godRankImage{width:150px}.resultStatsGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.resultStatCard{min-height:78px}.wrongAnswerRows{grid-template-columns:38px minmax(0,1fr);align-items:start}.answerJudgementGrid{grid-template-columns:1fr}}
