chore: Cursor 末尾改行を整理

This commit is contained in:
posimai 2026-04-19 08:42:29 +09:00
parent 83193927c6
commit 934e53e1c6
1 changed files with 2 additions and 121 deletions

View File

@ -258,21 +258,6 @@ header{display:flex;align-items:center;justify-content:space-between;padding:0 1
.score-chip{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:600;padding:1px 5px;border-radius:4px;background:rgba(74,222,128,.12);border:1px solid rgba(74,222,128,.25);color:var(--ok);margin-left:auto;flex-shrink:0} .score-chip{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:600;padding:1px 5px;border-radius:4px;background:rgba(74,222,128,.12);border:1px solid rgba(74,222,128,.25);color:var(--ok);margin-left:auto;flex-shrink:0}
.score-chip.partial{background:rgba(251,146,60,.10);border-color:rgba(251,146,60,.28);color:var(--warn)} .score-chip.partial{background:rgba(251,146,60,.10);border-color:rgba(251,146,60,.28);color:var(--warn)}
.score-chip.zero{background:var(--surface2);border-color:var(--border);color:var(--text3)} .score-chip.zero{background:var(--surface2);border-color:var(--border);color:var(--text3)}
.weak-dot{font-size:9px;font-weight:700;padding:1px 5px;border-radius:4px;background:rgba(248,113,113,.12);border:1px solid rgba(248,113,113,.3);color:var(--err);margin-left:auto;flex-shrink:0}
/* Today's review */
.today-section{margin-bottom:20px}
.today-label{font-size:10px;font-weight:600;color:var(--text3);letter-spacing:.09em;text-transform:uppercase;display:flex;align-items:center;gap:6px;margin-bottom:10px}
.today-label svg{width:13px;height:13px;color:var(--accent)}
.today-card{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--surface);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s,background .15s;margin-bottom:8px}
.today-card:hover{border-color:var(--accent-border);background:var(--accent-dim)}
.today-card:last-child{margin-bottom:0}
.today-tag{font-size:9px;font-weight:700;padding:2px 7px;border-radius:20px;letter-spacing:.04em;flex-shrink:0}
.today-tag-weak{background:rgba(248,113,113,.12);border:1px solid rgba(248,113,113,.3);color:var(--err)}
.today-tag-new{background:rgba(34,211,238,.08);border:1px solid rgba(34,211,238,.2);color:var(--accent)}
.today-tag-review{background:rgba(251,146,60,.10);border:1px solid rgba(251,146,60,.28);color:var(--warn)}
.today-num{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text3);flex-shrink:0;min-width:30px}
.today-title{font-size:13px;font-weight:500;color:var(--text);flex:1}
.today-arrow{color:var(--text3);flex-shrink:0}
/* Exam tips card */ /* Exam tips card */
.exam-tips-text{font-size:13px;line-height:1.8;color:var(--text2)} .exam-tips-text{font-size:13px;line-height:1.8;color:var(--text2)}
.exam-tips-text strong{color:var(--text);font-weight:600} .exam-tips-text strong{color:var(--text);font-weight:600}
@ -389,9 +374,8 @@ header{display:flex;align-items:center;justify-content:space-between;padding:0 1
@click="openUnit(u); sidebarOpen=false"> @click="openUnit(u); sidebarOpen=false">
<span class="item-num" x-text="u.num"></span> <span class="item-num" x-text="u.num"></span>
<span class="item-title" x-text="u.title"></span> <span class="item-title" x-text="u.title"></span>
<span class="score-chip" x-show="bestScore(u.id) && !hasWrong(u.id)" :class="scoreChipCls(u.id)" x-text="bestScore(u.id)"></span> <span class="score-chip" x-show="bestScore(u.id)" :class="scoreChipCls(u.id)" x-text="bestScore(u.id)"></span>
<span class="weak-dot" x-show="hasWrong(u.id)" x-text="bestScore(u.id)||'苦'"></span> <i data-lucide="check" class="item-check" style="width:11px;height:11px" x-show="!bestScore(u.id)"></i>
<i data-lucide="check" class="item-check" style="width:11px;height:11px" x-show="!bestScore(u.id) && !hasWrong(u.id)"></i>
</div> </div>
</template> </template>
</div> </div>
@ -419,21 +403,6 @@ header{display:flex;align-items:center;justify-content:space-between;padding:0 1
</div> </div>
</div> </div>
</div> </div>
<!-- Today's review -->
<div class="today-section" x-show="todayUnits.length > 0">
<div class="today-label">
<i data-lucide="calendar-check" style="width:13px;height:13px"></i>
今日の学習
</div>
<template x-for="u in todayUnits" :key="u.id">
<div class="today-card" @click="openUnit(u)">
<span class="today-tag" :class="u.todayTag==='苦手'?'today-tag-weak':u.todayTag==='復習'?'today-tag-review':'today-tag-new'" x-text="u.todayTag"></span>
<span class="today-num" x-text="u.num"></span>
<span class="today-title" x-text="u.title"></span>
<i data-lucide="chevron-right" class="today-arrow" style="width:14px;height:14px"></i>
</div>
</template>
</div>
<div class="home-cats"> <div class="home-cats">
<template x-for="cat in categories" :key="cat.id"> <template x-for="cat in categories" :key="cat.id">
<div class="home-cat-card" @click="openUnit(cat.units[0])"> <div class="home-cat-card" @click="openUnit(cat.units[0])">
@ -605,9 +574,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'c03', num:'C03', title:'固定資産と減価償却', { id:'c03', num:'C03', title:'固定資産と減価償却',
freq:'high', diff:2,
concept:`<p>固定資産は使用に伴い価値が減少します。この減少額を<strong>減価償却費</strong>として費用計上します。</p><div class="formula-box"><div class="formula-label">主要な償却方法</div>定額法:(取得原価 残存価額)÷ 耐用年数<br>定率法:期首帳簿価額 × 償却率<br>生産高比例法:(取得 残存)× 当期利用量 ÷ 総利用可能量</div><p>仕訳(間接法):(借)減価償却費 /(貸)減価償却累計額</p><p>売却時帳簿価額¥100,000の備品を¥80,000で売却<br>現金80,000・固定資産売却損20,000 備品100,000</p>`, concept:`<p>固定資産は使用に伴い価値が減少します。この減少額を<strong>減価償却費</strong>として費用計上します。</p><div class="formula-box"><div class="formula-label">主要な償却方法</div>定額法:(取得原価 残存価額)÷ 耐用年数<br>定率法:期首帳簿価額 × 償却率<br>生産高比例法:(取得 残存)× 当期利用量 ÷ 総利用可能量</div><p>仕訳(間接法):(借)減価償却費 /(貸)減価償却累計額</p><p>売却時帳簿価額¥100,000の備品を¥80,000で売却<br>現金80,000・固定資産売却損20,000 備品100,000</p>`,
examtips:['精算表・財務諸表問題第3・4問で頻出。定額法の計算式は反射的に出てくるまで練習する。', '期中取得は<strong>月割り計算</strong>使用月数÷12を忘れずに。年度途中の取得・売却問題で必ず問われる。', '間接法:帳簿価額=取得原価−累計額。売却損益=売却価額−帳簿価額。符号ミスに注意。'],
keypoints:['定額法:毎期同額','定率法:期首帳簿価額に率をかける→年々減少','間接法:備品勘定は取得原価のまま・累計額を別勘定で管理','売却損益 売却価額 帳簿価額(取得原価 累計額)'], keypoints:['定額法:毎期同額','定率法:期首帳簿価額に率をかける→年々減少','間接法:備品勘定は取得原価のまま・累計額を別勘定で管理','売却損益 売却価額 帳簿価額(取得原価 累計額)'],
quiz:[ quiz:[
{q:'取得原価¥500,000・残存価額¥0・耐用年数5年を定額法で償却する場合の毎期償却費は',choices:['¥50,000','¥100,000','¥125,000','¥500,000'],answer:1,exp:'500,000 0÷ 5 100,000円/年'}, {q:'取得原価¥500,000・残存価額¥0・耐用年数5年を定額法で償却する場合の毎期償却費は',choices:['¥50,000','¥100,000','¥125,000','¥500,000'],answer:1,exp:'500,000 0÷ 5 100,000円/年'},
@ -616,9 +583,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'c04', num:'C04', title:'引当金', { id:'c04', num:'C04', title:'引当金',
freq:'high', diff:2,
concept:`<p><strong>引当金</strong>とは将来発生が見込まれる費用・損失を当期に見越計上するものです。</p><div class="formula-box"><div class="formula-label">貸倒引当金(差額補充法)</div>設定額 売上債権残高 × 貸倒実績率<br>繰入額 設定額 既存の引当金残高</div><p>設定:(借)貸倒引当金繰入 /(貸)貸倒引当金<br>貸倒発生(引当金範囲内):(借)貸倒引当金 /(貸)売掛金<br>超過分:(借)貸倒損失 /(貸)売掛金</p><p><strong>退職給付引当金</strong>:(借)退職給付費用 /(貸)退職給付引当金</p>`, concept:`<p><strong>引当金</strong>とは将来発生が見込まれる費用・損失を当期に見越計上するものです。</p><div class="formula-box"><div class="formula-label">貸倒引当金(差額補充法)</div>設定額 売上債権残高 × 貸倒実績率<br>繰入額 設定額 既存の引当金残高</div><p>設定:(借)貸倒引当金繰入 /(貸)貸倒引当金<br>貸倒発生(引当金範囲内):(借)貸倒引当金 /(貸)売掛金<br>超過分:(借)貸倒損失 /(貸)売掛金</p><p><strong>退職給付引当金</strong>:(借)退職給付費用 /(貸)退職給付引当金</p>`,
examtips:['差額補充法が出題の主流。「設定額−既存残高=繰入額」の手順を確実に。', '貸倒発生時:引当金残高の範囲内→貸倒引当金で処理、超過分のみ→貸倒損失。この境界を間違えやすい。', '引当金の設定要件4つ将来の費用・当期以前起因・見積可能・不確実な債務も選択問題で出題される。'],
keypoints:['差額補充法:不足分だけ繰入(期末残高まで積む)','洗替法:いったん全額取崩して再設定','貸倒れ発生 → 引当金範囲内は引当金で処理・超過分は貸倒損失','退職給付引当金:長期負債として計上'], keypoints:['差額補充法:不足分だけ繰入(期末残高まで積む)','洗替法:いったん全額取崩して再設定','貸倒れ発生 → 引当金範囲内は引当金で処理・超過分は貸倒損失','退職給付引当金:長期負債として計上'],
quiz:[ quiz:[
{q:'売掛金¥400,000に2%設定・既存残高¥3,000のとき差額補充法での繰入額は',choices:['¥8,000','¥5,000','¥3,000','¥11,000'],answer:1,exp:'設定額 400,000 × 2% 8,000。繰入額 8,000 3,000 5,000円'}, {q:'売掛金¥400,000に2%設定・既存残高¥3,000のとき差額補充法での繰入額は',choices:['¥8,000','¥5,000','¥3,000','¥11,000'],answer:1,exp:'設定額 400,000 × 2% 8,000。繰入額 8,000 3,000 5,000円'},
@ -627,9 +592,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'c05', num:'C05', title:'有価証券', { id:'c05', num:'C05', title:'有価証券',
freq:'high', diff:2,
concept:`<p>有価証券は保有目的により4分類されます。</p><div class="formula-box"><div class="formula-label">分類と評価</div>売買目的有価証券 → 時価評価(差額は当期損益)<br>満期保有目的債券 → 原価法または償却原価法<br>子会社・関連会社株式 → 取得原価法<br>その他有価証券  → 時価評価(差額は純資産:その他包括利益)</div><p>売買目的時価↑¥10,000有価証券10,000 有価証券評価益10,000<br>その他有価証券時価↑¥10,000その他有価証券10,000 その他有価証券評価差額金10,000</p>`, concept:`<p>有価証券は保有目的により4分類されます。</p><div class="formula-box"><div class="formula-label">分類と評価</div>売買目的有価証券 → 時価評価(差額は当期損益)<br>満期保有目的債券 → 原価法または償却原価法<br>子会社・関連会社株式 → 取得原価法<br>その他有価証券  → 時価評価(差額は純資産:その他包括利益)</div><p>売買目的時価↑¥10,000有価証券10,000 有価証券評価益10,000<br>その他有価証券時価↑¥10,000その他有価証券10,000 その他有価証券評価差額金10,000</p>`,
examtips:['4分類売買目的・満期保有・子会社株式・その他と評価方法のマトリクスを表で暗記。損益計上先P/L or B/S純資産の違いが最頻出。', '「その他有価証券評価差額金」はB/S純資産の部。<strong>損益計算書には計上しない</strong>。頻出の引っかけ。', '売買目的と「その他有価証券」の仕訳で使う勘定科目名が異なることに注意「有価証券」vs「その他有価証券」。'],
keypoints:['売買目的流動資産、時価評価、評価損益はP/Lへ','満期保有固定資産、原価or償却原価法','子会社・関連会社株式:固定資産、取得原価のまま','その他有価証券固定資産、評価差額はB/S純資産税効果後'], keypoints:['売買目的流動資産、時価評価、評価損益はP/Lへ','満期保有固定資産、原価or償却原価法','子会社・関連会社株式:固定資産、取得原価のまま','その他有価証券固定資産、評価差額はB/S純資産税効果後'],
quiz:[ quiz:[
{q:'売買目的有価証券取得原価¥100,000の期末時価が¥110,000のとき計上する損益は',choices:['有価証券評価損¥10,000','有価証券評価益¥10,000','投資有価証券評価益¥10,000','損益は計上しない'],answer:1,exp:'売買目的有価証券は時価評価し差額を当期損益(有価証券評価益)に計上します。'}, {q:'売買目的有価証券取得原価¥100,000の期末時価が¥110,000のとき計上する損益は',choices:['有価証券評価損¥10,000','有価証券評価益¥10,000','投資有価証券評価益¥10,000','損益は計上しない'],answer:1,exp:'売買目的有価証券は時価評価し差額を当期損益(有価証券評価益)に計上します。'},
@ -638,9 +601,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'c06', num:'C06', title:'手形取引', { id:'c06', num:'C06', title:'手形取引',
freq:'mid', diff:2,
concept:`<p><strong>約束手形</strong>振出人と受取人の2者。<strong>為替手形</strong>振出人・引受人・受取人の3者。</p><div class="formula-box"><div class="formula-label">手形の割引</div>受取額 手形額面 割引料<br>割引料 手形額面 × 割引率 × 残存日数 ÷ 365</div><p>割引仕訳:(借)当座預金・手形売却損 /(貸)受取手形<br>裏書き(支払のため):(借)買掛金 /(貸)受取手形</p>`, concept:`<p><strong>約束手形</strong>振出人と受取人の2者。<strong>為替手形</strong>振出人・引受人・受取人の3者。</p><div class="formula-box"><div class="formula-label">手形の割引</div>受取額 手形額面 割引料<br>割引料 手形額面 × 割引率 × 残存日数 ÷ 365</div><p>割引仕訳:(借)当座預金・手形売却損 /(貸)受取手形<br>裏書き(支払のため):(借)買掛金 /(貸)受取手形</p>`,
examtips:['手形割引料の計算は<strong>365日法 or 360日法</strong>を問題文で確認してから計算する。', '裏書き譲渡:買掛金 受取手形。受取手形が<strong>貸方</strong>に来ることを確認する。', '手形売却損(割引)と支払利息(借入)の区別がよく問われる。割引は売却なので支払利息ではない。'],
keypoints:['受取手形(資産)・支払手形(負債)','割引:銀行に売却→手形売却損(費用)計上','裏書き:受取手形を他者への支払いに使用','不渡り:決済されなかった手形→さかのぼり請求が発生'], keypoints:['受取手形(資産)・支払手形(負債)','割引:銀行に売却→手形売却損(費用)計上','裏書き:受取手形を他者への支払いに使用','不渡り:決済されなかった手形→さかのぼり請求が発生'],
quiz:[ quiz:[
{q:'額面¥200,000の手形を年利3%・残存60日で割り引いた割引料365日計算は概算でいくらか。',choices:['¥985','¥1,479','¥6,000','¥3,000'],answer:0,exp:'割引料 200,000 × 3% × 60÷365 ≒ 985円'}, {q:'額面¥200,000の手形を年利3%・残存60日で割り引いた割引料365日計算は概算でいくらか。',choices:['¥985','¥1,479','¥6,000','¥3,000'],answer:0,exp:'割引料 200,000 × 3% × 60÷365 ≒ 985円'},
@ -649,9 +610,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'c07', num:'C07', title:'外貨建取引', { id:'c07', num:'C07', title:'外貨建取引',
freq:'high', diff:2,
concept:`<p>外貨建取引は取引発生時のレートで換算し、決算時に為替換算調整を行います。</p><div class="formula-box"><div class="formula-label">換算レートの原則</div>売上・仕入(収益・費用) → 取引日レートHR<br>売掛金・買掛金(流動)  → 決算日レートCR<br>長期外貨建債権・債務   → 決算日レートCR</div><p>例:$1,000売掛金HR=¥140、決算時CR=¥145<br>売掛金5,000 為替差益5,000</p>`, concept:`<p>外貨建取引は取引発生時のレートで換算し、決算時に為替換算調整を行います。</p><div class="formula-box"><div class="formula-label">換算レートの原則</div>売上・仕入(収益・費用) → 取引日レートHR<br>売掛金・買掛金(流動)  → 決算日レートCR<br>長期外貨建債権・債務   → 決算日レートCR</div><p>例:$1,000売掛金HR=¥140、決算時CR=¥145<br>売掛金5,000 為替差益5,000</p>`,
examtips:['換算レートの原則を表で整理収益・費用→取引日レートHR、期末の外貨建金銭債権債務→決算日レートCR。', '円高になると→輸出企業の売掛金は為替差損、輸入企業の買掛金は為替差益。直感で判断できるように練習する。', '為替予約(振当処理):予約日から予約レートを適用。問題文に「振当処理」と書いてあれば即このルールを適用。'],
keypoints:['取引日:取引時のレートで記帳','決算日外貨建金銭債権債務はCRで換算替え','差額:為替差損益(営業外損益)','為替予約(振当処理):予約レートを適用してヘッジ'], keypoints:['取引日:取引時のレートで記帳','決算日外貨建金銭債権債務はCRで換算替え','差額:為替差損益(営業外損益)','為替予約(振当処理):予約レートを適用してヘッジ'],
quiz:[ quiz:[
{q:'ドル建て売掛金$2,000計上時¥140が決算日CR=¥138のとき為替差損はいくらか。',choices:['¥4,000','¥2,000','¥276,000','¥4,000の為替差益'],answer:0,exp:'円高になったため評価減。140138× 2,000 4,000円の為替差損。'}, {q:'ドル建て売掛金$2,000計上時¥140が決算日CR=¥138のとき為替差損はいくらか。',choices:['¥4,000','¥2,000','¥276,000','¥4,000の為替差益'],answer:0,exp:'円高になったため評価減。140138× 2,000 4,000円の為替差損。'},
@ -660,9 +619,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'c08', num:'C08', title:'リース取引', { id:'c08', num:'C08', title:'リース取引',
freq:'mid', diff:2,
concept:`<p>リース取引は2種類あります。</p><div class="formula-box"><div class="formula-label">分類</div>ファイナンス・リース:実質的に購入と同じ → 資産・負債を計上<br>オペレーティング・リース:賃貸借として処理 → 支払リース料(費用)</div><p>ファイナンス・リース開始時:(借)リース資産 /(貸)リース債務<br>リース料支払時:(借)リース債務・支払利息 /(貸)現金<br>決算時:(借)減価償却費 /(貸)減価償却累計額</p>`, concept:`<p>リース取引は2種類あります。</p><div class="formula-box"><div class="formula-label">分類</div>ファイナンス・リース:実質的に購入と同じ → 資産・負債を計上<br>オペレーティング・リース:賃貸借として処理 → 支払リース料(費用)</div><p>ファイナンス・リース開始時:(借)リース資産 /(貸)リース債務<br>リース料支払時:(借)リース債務・支払利息 /(貸)現金<br>決算時:(借)減価償却費 /(貸)減価償却累計額</p>`,
examtips:['ファイナンス・リースの判定基準3つ所有権移転・割安購入選択権・リース期間が耐用年数の75%以上)を暗記。', 'ファイナンス開始仕訳:リース資産 リース債務(双方同額)。利子抜き法では利息相当額を除いた金額で計上。', 'オペレーティング・リースは毎期「支払リース料 現金」のみ。資産・負債は計上しない。'],
keypoints:['ファイナンス:所有権移転・割安購入選択権・リース期間等で判定','利子抜き法:リース料総額から利息相当額を除いた金額で資産計上','オペレーティング:毎期「支払リース料」を計上するだけ','減価償却:ファイナンスは自己所有資産同様に行う'], keypoints:['ファイナンス:所有権移転・割安購入選択権・リース期間等で判定','利子抜き法:リース料総額から利息相当額を除いた金額で資産計上','オペレーティング:毎期「支払リース料」を計上するだけ','減価償却:ファイナンスは自己所有資産同様に行う'],
quiz:[ quiz:[
{q:'ファイナンス・リース取引開始時の借方科目はどれか。',choices:['リース費用','支払リース料','リース資産','減価償却費'],answer:2,exp:'ファイナンス・リースは資産計上します。(借)リース資産 /(貸)リース債務'}, {q:'ファイナンス・リース取引開始時の借方科目はどれか。',choices:['リース費用','支払リース料','リース資産','減価償却費'],answer:2,exp:'ファイナンス・リースは資産計上します。(借)リース資産 /(貸)リース債務'},
@ -671,9 +628,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'c09', num:'C09', title:'税効果会計', { id:'c09', num:'C09', title:'税効果会計',
freq:'high', diff:3,
concept:`<p>会計上の利益と税務上の所得の差異(<strong>一時差異</strong>)を調整する手続きです。</p><div class="formula-box"><div class="formula-label">繰延税金資産・負債</div>将来減算一時差異(会計費用 税務損金)→ 繰延税金資産<br>将来加算一時差異(会計費用 税務損金)→ 繰延税金負債<br><br>繰延税金資産 一時差異 × 法定実効税率</div><p>貸倒引当金¥100,000が税務上損金不算入・実効税率30%<br>繰延税金資産30,000 法人税等調整額30,000</p>`, concept:`<p>会計上の利益と税務上の所得の差異(<strong>一時差異</strong>)を調整する手続きです。</p><div class="formula-box"><div class="formula-label">繰延税金資産・負債</div>将来減算一時差異(会計費用 税務損金)→ 繰延税金資産<br>将来加算一時差異(会計費用 税務損金)→ 繰延税金負債<br><br>繰延税金資産 一時差異 × 法定実効税率</div><p>貸倒引当金¥100,000が税務上損金不算入・実効税率30%<br>繰延税金資産30,000 法人税等調整額30,000</p>`,
examtips:['「将来減算一時差異→繰延税金資産」「将来加算一時差異→繰延税金負債」の対応を確実に。逆は絶対NG。', '<strong>永久差異</strong>(交際費超過・寄付金超過等)は税効果の対象外。一時差異との区別が頻出。', '繰延税金資産の計算:一時差異 × 法定実効税率。税率は問題文で与えられる。計算自体はシンプル。'],
keypoints:['一時差異:会計と税務の費用認識タイミングのズレ(いずれ解消)','永久差異(交際費超過額等)は税効果の対象外','繰延税金資産:将来の税金を前払い(資産)の概念','法人税等調整額P/Lで税負担を調整する科目'], keypoints:['一時差異:会計と税務の費用認識タイミングのズレ(いずれ解消)','永久差異(交際費超過額等)は税効果の対象外','繰延税金資産:将来の税金を前払い(資産)の概念','法人税等調整額P/Lで税負担を調整する科目'],
quiz:[ quiz:[
{q:'将来減算一時差異が生じた場合に計上される勘定科目はどれか。',choices:['繰延税金負債','法人税等','繰延税金資産','法人税等調整額(借方)'],answer:2,exp:'将来減算一時差異は「繰延税金資産」として計上します(将来の税金軽減効果)。'}, {q:'将来減算一時差異が生じた場合に計上される勘定科目はどれか。',choices:['繰延税金負債','法人税等','繰延税金資産','法人税等調整額(借方)'],answer:2,exp:'将来減算一時差異は「繰延税金資産」として計上します(将来の税金軽減効果)。'},
@ -682,9 +637,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'c10', num:'C10', title:'純資産と株式', { id:'c10', num:'C10', title:'純資産と株式',
freq:'mid', diff:2,
concept:`<p>株式会社の純資産は株主資本と評価・換算差額等等で構成されます。</p><div class="formula-box"><div class="formula-label">株主資本の構成</div>資本金 資本準備金 その他資本剰余金<br> 利益準備金 その他利益剰余金 自己株式</div><p>株式発行¥1,000,000・うち資本金¥600,000<br>現金1,000,000 資本金600,000・資本準備金400,000</p><p>剰余金配当¥500,000利益準備金積立¥50,000<br>繰越利益剰余金550,000 未払配当金500,000・利益準備金50,000</p>`, concept:`<p>株式会社の純資産は株主資本と評価・換算差額等等で構成されます。</p><div class="formula-box"><div class="formula-label">株主資本の構成</div>資本金 資本準備金 その他資本剰余金<br> 利益準備金 その他利益剰余金 自己株式</div><p>株式発行¥1,000,000・うち資本金¥600,000<br>現金1,000,000 資本金600,000・資本準備金400,000</p><p>剰余金配当¥500,000利益準備金積立¥50,000<br>繰越利益剰余金550,000 未払配当金500,000・利益準備金50,000</p>`,
examtips:['株式発行:払込額の<strong>最低1/2以上</strong>を資本金に計上。残りは資本準備金。問題文の指定を確認する。', '配当時の利益準備金積立配当額×1/10上限資本金の1/4に達するまで。計算手順を練習する。', '<strong>自己株式はB/S純資産のマイナス</strong>(資産ではない)。「資産の部に計上」という選択肢は頻出の引っかけ。'],
keypoints:['払込額の最低1/2を資本金、残りは資本準備金に計上可','配当時利益準備金を資本金の1/4まで積立義務配当額の1/10','自己株式:純資産のマイナス項目(資産ではない)','その他有価証券評価差額金は純資産の部に表示'], keypoints:['払込額の最低1/2を資本金、残りは資本準備金に計上可','配当時利益準備金を資本金の1/4まで積立義務配当額の1/10','自己株式:純資産のマイナス項目(資産ではない)','その他有価証券評価差額金は純資産の部に表示'],
quiz:[ quiz:[
{q:'1株¥500で1,000株発行し全額を資本金とした場合、貸方に計上される金額は',choices:['資本準備金¥500,000','資本金¥500,000','資本金¥250,000と資本準備金¥250,000','普通株式¥500,000'],answer:1,exp:'全額資本金の場合現金500,000 資本金500,000'}, {q:'1株¥500で1,000株発行し全額を資本金とした場合、貸方に計上される金額は',choices:['資本準備金¥500,000','資本金¥500,000','資本金¥250,000と資本準備金¥250,000','普通株式¥500,000'],answer:1,exp:'全額資本金の場合現金500,000 資本金500,000'},
@ -693,9 +646,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'c11', num:'C11', title:'社債', { id:'c11', num:'C11', title:'社債',
freq:'mid', diff:2,
concept:`<p><strong>社債</strong>は企業が資金調達のために発行する債券です。</p><div class="formula-box"><div class="formula-label">償却原価法(定額法)</div>毎期の償却額 =(額面 発行価額)÷ 償還までの年数<br>割引発行:帳簿価額を毎期増額 割増発行:毎期減額</div><p>発行額面¥1,000,000・発行¥970,000・3年<br>現金970,000 社債970,000<br>決算時償却¥10,000社債利息10,000 社債10,000<br>満期社債1,000,000 現金1,000,000</p>`, concept:`<p><strong>社債</strong>は企業が資金調達のために発行する債券です。</p><div class="formula-box"><div class="formula-label">償却原価法(定額法)</div>毎期の償却額 =(額面 発行価額)÷ 償還までの年数<br>割引発行:帳簿価額を毎期増額 割増発行:毎期減額</div><p>発行額面¥1,000,000・発行¥970,000・3年<br>現金970,000 社債970,000<br>決算時償却¥10,000社債利息10,000 社債10,000<br>満期社債1,000,000 現金1,000,000</p>`,
examtips:['割引発行(額面>発行価額)→毎期償却額を加算→帳簿価額が<strong>増加</strong>して満期に額面へ。方向を間違えやすい。', 'クーポン利息(額面×クーポン率×期間)と償却原価法の調整額の合算が「社債利息」として費用計上される。', '満期償還時は帳簿価額=額面になっている。仕訳後に差額が出ないことを確認する。'],
keypoints:['割引発行:額面>発行価額 → 社債勘定を毎期増額','割増発行:額面<発行価額 → 社債勘定を毎期減額','社債利息 クーポン利息 償却原価法の調整額','社債は固定負債1年以内償還分は流動負債'], keypoints:['割引発行:額面>発行価額 → 社債勘定を毎期増額','割増発行:額面<発行価額 → 社債勘定を毎期減額','社債利息 クーポン利息 償却原価法の調整額','社債は固定負債1年以内償還分は流動負債'],
quiz:[ quiz:[
{q:'額面¥2,000,000を¥1,940,000で発行・5年満期のとき定額法での毎期償却額は',choices:['¥12,000','¥60,000','¥388,000','¥400,000'],answer:0,exp:'2,000,000 1,940,000÷ 5 12,000円/年'}, {q:'額面¥2,000,000を¥1,940,000で発行・5年満期のとき定額法での毎期償却額は',choices:['¥12,000','¥60,000','¥388,000','¥400,000'],answer:0,exp:'2,000,000 1,940,000÷ 5 12,000円/年'},
@ -704,9 +655,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'c12', num:'C12', title:'本支店会計', { id:'c12', num:'C12', title:'本支店会計',
freq:'high', diff:3,
concept:`<p>本支店会計では本店と支店が独立した帳簿を持ちます。</p><div class="formula-box"><div class="formula-label">照合勘定</div>本店側:「支店」勘定(資産)<br>支店側:「本店」勘定(純資産的な勘定)<br>→ 未達取引調整後は必ず一致</div><p>内部利益の控除本店が原価¥100,000の商品を¥120,000で支店に振替 → 内部利益¥20,000<br>合併財務諸表作成:①未達取引整理 ②照合勘定の相殺消去 ③内部利益の控除</p>`, concept:`<p>本支店会計では本店と支店が独立した帳簿を持ちます。</p><div class="formula-box"><div class="formula-label">照合勘定</div>本店側:「支店」勘定(資産)<br>支店側:「本店」勘定(純資産的な勘定)<br>→ 未達取引調整後は必ず一致</div><p>内部利益の控除本店が原価¥100,000の商品を¥120,000で支店に振替 → 内部利益¥20,000<br>合併財務諸表作成:①未達取引整理 ②照合勘定の相殺消去 ③内部利益の控除</p>`,
examtips:['未達取引整理後に「支店」勘定(本店帳)と「本店」勘定(支店帳)が一致するかを確認する手順が出題の核。', '内部利益の計算振替価格原価内部利益単価。期末商品に含まれる分だけ合併B/Sから控除する。', '合併P/Lでは内部取引振替売上・振替仕入を相殺消去。消去後の売上高・仕入高を確認すること。'],
keypoints:['本店の「支店」勘定と支店の「本店」勘定は対応','未達取引:片方だけ処理済み → 調整して一致させる','内部利益:振替価格と原価の差 → 期末商品から控除','合併P/Lでは内部取引振替売上・振替仕入を相殺'], keypoints:['本店の「支店」勘定と支店の「本店」勘定は対応','未達取引:片方だけ処理済み → 調整して一致させる','内部利益:振替価格と原価の差 → 期末商品から控除','合併P/Lでは内部取引振替売上・振替仕入を相殺'],
quiz:[ quiz:[
{q:'本店が支店に商品を送付した際、本店で使用する勘定科目はどれか。',choices:['売上','支店','本店','商品振替'],answer:1,exp:'本店は「支店」勘定(資産)の増加として記帳します。'}, {q:'本店が支店に商品を送付した際、本店で使用する勘定科目はどれか。',choices:['売上','支店','本店','商品振替'],answer:1,exp:'本店は「支店」勘定(資産)の増加として記帳します。'},
@ -715,9 +664,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'c13', num:'C13', title:'連結会計の基礎', { id:'c13', num:'C13', title:'連結会計の基礎',
freq:'high', diff:3,
concept:`<p><strong>連結財務諸表</strong>は親会社と子会社を一体とみなして作成します。議決権の<span class="hl">50%超</span>を保有する会社が子会社です。</p><div class="viz-org"><div class="vo-node vo-parent">親会社<div class="vo-sub">連結財務諸表を作成</div></div><div class="vo-connector"><div class="vo-vline"></div><div class="vo-pct">議決権 51〜100% 保有</div><div class="vo-vline"></div></div><div class="vo-row"><div class="vo-branch"><div class="vo-node vo-child1">子会社100%<div class="vo-sub">完全子会社</div></div></div><div class="vo-branch" style="margin-top:32px"><div class="vo-node vo-child2">子会社60%<div class="vo-sub">非支配株主持分 40%</div></div></div></div></div><div class="formula-box"><div class="formula-label">支配獲得時の連結修正仕訳</div>(借)子会社純資産 × 持分率<br>(借)のれん(差額)<br>(貸)子会社株式(投資)<br><br>のれん 投資額 子会社純資産の持分相当額</div><p>のれんは20年以内で規則的に償却。毎期①配当金消去 ②内部取引消去 ③未実現利益消去</p>`, concept:`<p><strong>連結財務諸表</strong>は親会社と子会社を一体とみなして作成します。議決権の<span class="hl">50%超</span>を保有する会社が子会社です。</p><div class="viz-org"><div class="vo-node vo-parent">親会社<div class="vo-sub">連結財務諸表を作成</div></div><div class="vo-connector"><div class="vo-vline"></div><div class="vo-pct">議決権 51〜100% 保有</div><div class="vo-vline"></div></div><div class="vo-row"><div class="vo-branch"><div class="vo-node vo-child1">子会社100%<div class="vo-sub">完全子会社</div></div></div><div class="vo-branch" style="margin-top:32px"><div class="vo-node vo-child2">子会社60%<div class="vo-sub">非支配株主持分 40%</div></div></div></div></div><div class="formula-box"><div class="formula-label">支配獲得時の連結修正仕訳</div>(借)子会社純資産 × 持分率<br>(借)のれん(差額)<br>(貸)子会社株式(投資)<br><br>のれん 投資額 子会社純資産の持分相当額</div><p>のれんは20年以内で規則的に償却。毎期①配当金消去 ②内部取引消去 ③未実現利益消去</p>`,
examtips:['のれん投資額子会社純資産×持分比率。20年以内で規則的償却。この2点はほぼ毎回出題。', '非支配株主持分子会社純資産のうち親会社が持たない部分。B/S純資産の部に株主資本とは別枠で表示。', '毎期の連結修正仕訳3本①配当消去 ②のれん償却 ③内部取引・未実現利益消去)の順序と仕訳を体系的に覚える。'],
keypoints:['連結の範囲議決権の過半数50%超)を持つ子会社','のれん:超過収益力(投資超過額)、規則的に償却','非支配株主持分:子会社純資産のうち親が持たない部分','内部取引・未実現利益は連結上消去する'], keypoints:['連結の範囲議決権の過半数50%超)を持つ子会社','のれん:超過収益力(投資超過額)、規則的に償却','非支配株主持分:子会社純資産のうち親が持たない部分','内部取引・未実現利益は連結上消去する'],
quiz:[ quiz:[
{q:'子会社株式¥800,000取得子会社純資産¥700,000・持分100%)ののれんはいくらか。',choices:['¥700,000','¥100,000','¥800,000','のれんは発生しない'],answer:1,exp:'のれん 800,000 700,000 100,000円'}, {q:'子会社株式¥800,000取得子会社純資産¥700,000・持分100%)ののれんはいくらか。',choices:['¥700,000','¥100,000','¥800,000','のれんは発生しない'],answer:1,exp:'のれん 800,000 700,000 100,000円'},
@ -726,9 +673,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'c14', num:'C14', title:'キャッシュフロー計算書', { id:'c14', num:'C14', title:'キャッシュフロー計算書',
freq:'high', diff:2,
concept:`<p>CF計算書は<strong>営業・投資・財務</strong>の3区分でキャッシュの増減を示します。</p><div class="formula-box"><div class="formula-label">間接法営業CFの主な調整項目</div>税引前当期純利益<br> 減価償却費(非現金費用の加戻し)<br>/ 売上債権の減少/増加(回収状況)<br>/ 棚卸資産の減少/増加<br>/ 仕入債務の増加/減少</div><p>投資CF固定資産・有価証券の取得・売却<br>財務CF借入・返済・社債発行・株式発行・配当金支払い</p>`, concept:`<p>CF計算書は<strong>営業・投資・財務</strong>の3区分でキャッシュの増減を示します。</p><div class="formula-box"><div class="formula-label">間接法営業CFの主な調整項目</div>税引前当期純利益<br> 減価償却費(非現金費用の加戻し)<br>/ 売上債権の減少/増加(回収状況)<br>/ 棚卸資産の減少/増加<br>/ 仕入債務の増加/減少</div><p>投資CF固定資産・有価証券の取得・売却<br>財務CF借入・返済・社債発行・株式発行・配当金支払い</p>`,
examtips:['間接法の調整項目を表で整理:減価償却費→加算、売上債権増加→減算、棚卸資産増加→減算、仕入債務増加→加算。', '投資CF vs 財務CF の区分:固定資産・有価証券の取得/売却→投資CF、借入/返済/社債/株式/配当→財務CF。', '直接法と間接法では営業CFの表示方法が違うが、合計額は同じになることを理解しておく。'],
keypoints:['間接法:純利益からスタートし非現金項目を調整','減価償却費はキャッシュアウトなし → 加算して戻す','売上債権増加 → 現金未回収 → 営業CFから減算','固定資産の取得・売却 → 投資CF'], keypoints:['間接法:純利益からスタートし非現金項目を調整','減価償却費はキャッシュアウトなし → 加算して戻す','売上債権増加 → 現金未回収 → 営業CFから減算','固定資産の取得・売却 → 投資CF'],
quiz:[ quiz:[
{q:'間接法のCF計算書で減価償却費¥50,000は営業CFにどう影響するか。',choices:['¥50,000を減算','¥50,000を加算','影響なし','財務CFに計上'],answer:1,exp:'減価償却費は現金支出を伴わない費用のため純利益から控除した分を加算して戻します。'}, {q:'間接法のCF計算書で減価償却費¥50,000は営業CFにどう影響するか。',choices:['¥50,000を減算','¥50,000を加算','影響なし','財務CFに計上'],answer:1,exp:'減価償却費は現金支出を伴わない費用のため純利益から控除した分を加算して戻します。'},
@ -737,9 +682,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'c15', num:'C15', title:'財務諸表分析', { id:'c15', num:'C15', title:'財務諸表分析',
freq:'mid', diff:1,
concept:`<p>財務比率で企業の収益性・安全性・効率性を分析します。</p><div class="formula-box"><div class="formula-label">主要な財務比率</div>収益性:売上高総利益率 売上総利益 ÷ 売上高 × 100<br>    ROE 当期純利益 ÷ 自己資本 × 100<br>安全性:流動比率 流動資産 ÷ 流動負債 × 100200%以上良好)<br>    自己資本比率 自己資本 ÷ 総資産 × 100<br>効率性:売上債権回転率 売上高 ÷ 売上債権<br>    棚卸資産回転率 売上高 ÷ 棚卸資産</div>`, concept:`<p>財務比率で企業の収益性・安全性・効率性を分析します。</p><div class="formula-box"><div class="formula-label">主要な財務比率</div>収益性:売上高総利益率 売上総利益 ÷ 売上高 × 100<br>    ROE 当期純利益 ÷ 自己資本 × 100<br>安全性:流動比率 流動資産 ÷ 流動負債 × 100200%以上良好)<br>    自己資本比率 自己資本 ÷ 総資産 × 100<br>効率性:売上債権回転率 売上高 ÷ 売上債権<br>    棚卸資産回転率 売上高 ÷ 棚卸資産</div>`,
examtips:['計算式は「分子は何か・分母は何か」を意識して整理する。特に分母を流動負債にするか総資産にするかで迷いやすい。', 'ROEが高い ≠ 安全。自己資本比率が低い会社でもROEが高い場合があるレバレッジ効果という逆説も出題される。', '「改善策はどれか」という選択問題では指標の意味から考える。例:流動比率↑には流動資産増 or 流動負債減が必要。'],
keypoints:['流動比率が高い → 短期支払能力が高い','自己資本比率が高い → 財務安全性が高い','回転率が高い → 効率よく資産を活用','ROEが高い → 株主資本を効率よく使って利益創出'], keypoints:['流動比率が高い → 短期支払能力が高い','自己資本比率が高い → 財務安全性が高い','回転率が高い → 効率よく資産を活用','ROEが高い → 株主資本を効率よく使って利益創出'],
quiz:[ quiz:[
{q:'流動資産¥600,000・流動負債¥300,000のとき流動比率はいくらか。',choices:['50%','150%','200%','300%'],answer:2,exp:'流動比率 600,000 ÷ 300,000 × 100 200%'}, {q:'流動資産¥600,000・流動負債¥300,000のとき流動比率はいくらか。',choices:['50%','150%','200%','300%'],answer:2,exp:'流動比率 600,000 ÷ 300,000 × 100 200%'},
@ -750,9 +693,7 @@ const CATEGORIES = [
]}, ]},
{ id:'industrial', label:'工業簿記', icon:'factory', units:[ { id:'industrial', label:'工業簿記', icon:'factory', units:[
{ id:'i01', num:'I01', title:'工業簿記の基礎と勘定体系', { id:'i01', num:'I01', title:'工業簿記の基礎と勘定体系',
freq:'mid', diff:1,
concept:`<p><strong>工業簿記</strong>は製造業の原価計算を記録する簿記です。<span class="hl">材料 → 仕掛品 → 製品</span> の流れで原価を管理します。</p><div class="viz-flow"><div class="vf-node"><div>材料</div><div class="vf-sub">材料費</div></div><div class="vf-arrow"></div><div class="vf-node vf-hl"><div>仕掛品</div><div class="vf-sub">製造途中</div></div><div class="vf-arrow"></div><div class="vf-node"><div>製品</div><div class="vf-sub">完成品</div></div><div class="vf-arrow"></div><div class="vf-node"><div>売上原価</div><div class="vf-sub">販売時</div></div></div><p>仕掛品には製造原価の3要素が集計されます。</p><div class="viz-cost3"><div class="vc3-inputs"><div class="vc3-item vc3-mat">直接材料費</div><div class="vc3-item vc3-lab">直接労務費</div><div class="vc3-item vc3-ovh">製造間接費<span class="vc3-note">(配賦)</span></div></div><div class="vc3-arr"></div><div class="vc3-box vc3-wip">仕掛品<div class="vc3-sublbl">製造途中</div></div><div class="vc3-arr"></div><div class="vc3-box vc3-fin">製品<div class="vc3-sublbl">完成品</div></div></div>`, concept:`<p><strong>工業簿記</strong>は製造業の原価計算を記録する簿記です。<span class="hl">材料 → 仕掛品 → 製品</span> の流れで原価を管理します。</p><div class="viz-flow"><div class="vf-node"><div>材料</div><div class="vf-sub">材料費</div></div><div class="vf-arrow"></div><div class="vf-node vf-hl"><div>仕掛品</div><div class="vf-sub">製造途中</div></div><div class="vf-arrow"></div><div class="vf-node"><div>製品</div><div class="vf-sub">完成品</div></div><div class="vf-arrow"></div><div class="vf-node"><div>売上原価</div><div class="vf-sub">販売時</div></div></div><p>仕掛品には製造原価の3要素が集計されます。</p><div class="viz-cost3"><div class="vc3-inputs"><div class="vc3-item vc3-mat">直接材料費</div><div class="vc3-item vc3-lab">直接労務費</div><div class="vc3-item vc3-ovh">製造間接費<span class="vc3-note">(配賦)</span></div></div><div class="vc3-arr"></div><div class="vc3-box vc3-wip">仕掛品<div class="vc3-sublbl">製造途中</div></div><div class="vc3-arr"></div><div class="vc3-box vc3-fin">製品<div class="vc3-sublbl">完成品</div></div></div>`,
examtips:['商業簿記との違いは「製品原価を製造工程で集計する」点。フロー(材料→仕掛品→製品→売上原価)を図で描けるようにする。', '直接費と間接費の分類:特定製品に跡付けできるか否か。工場長の給与や電力料はすべて間接費。', '製造原価報告書の構造(期首仕掛品+当期製造費用−期末仕掛品=当期製造原価)を押さえる。工業簿記全体の土台になる。'],
keypoints:['直接費:特定製品に直接跡付けできる原価','間接費:複数製品に共通して発生→配賦が必要','仕掛品:製造途中の未完成品(期末に残る)','製造原価報告書→損益計算書の売上原価へ連動'], keypoints:['直接費:特定製品に直接跡付けできる原価','間接費:複数製品に共通して発生→配賦が必要','仕掛品:製造途中の未完成品(期末に残る)','製造原価報告書→損益計算書の売上原価へ連動'],
quiz:[ quiz:[
{q:'工場の電力料は製造原価のどの区分に含まれるか。',choices:['直接材料費','直接労務費','製造間接費','販売費及び一般管理費'],answer:2,exp:'電力料は複数製品に共通して発生するため製造間接費に分類されます。'}, {q:'工場の電力料は製造原価のどの区分に含まれるか。',choices:['直接材料費','直接労務費','製造間接費','販売費及び一般管理費'],answer:2,exp:'電力料は複数製品に共通して発生するため製造間接費に分類されます。'},
@ -761,9 +702,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'i02', num:'I02', title:'材料費の計算', { id:'i02', num:'I02', title:'材料費の計算',
freq:'mid', diff:2,
concept:`<p>材料の消費額(材料費)は消費単価×消費量で計算します。</p><div class="formula-box"><div class="formula-label">消費単価の計算方法</div>先入先出法:先に仕入れた材料から順に消費<br>移動平均法:仕入のたびに平均単価を計算<br>総平均法:月末に全体の平均単価を計算</div><div class="formula-box"><div class="formula-label">材料費の計算式</div>材料費 月初在庫 当月仕入 月末在庫<br><br>棚卸減耗費 =(帳簿棚卸数量 実地棚卸数量)× 消費単価</div>`, concept:`<p>材料の消費額(材料費)は消費単価×消費量で計算します。</p><div class="formula-box"><div class="formula-label">消費単価の計算方法</div>先入先出法:先に仕入れた材料から順に消費<br>移動平均法:仕入のたびに平均単価を計算<br>総平均法:月末に全体の平均単価を計算</div><div class="formula-box"><div class="formula-label">材料費の計算式</div>材料費 月初在庫 当月仕入 月末在庫<br><br>棚卸減耗費 =(帳簿棚卸数量 実地棚卸数量)× 消費単価</div>`,
examtips:['先入先出法・移動平均法の計算手順を確実に。物価上昇時は先入先出法の方が材料費が<strong>低くなる</strong>ことを押さえる。', '予定消費単価を使う場合:月末に実際消費単価と比較して「材料消費価格差異」を把握する手順も出題される。', '棚卸減耗費の処理(製造間接費 or 営業外費用)は問題文の指示に従う。どちらの処理も練習する。'],
keypoints:['先入先出法:物価上昇時は期末在庫が高め・材料費が低め','移動平均法:仕入のたびに平均計算→実務でよく使われる','予定消費単価:年間平均などを事前設定・差額は材料消費価格差異','棚卸減耗費:原則として製造間接費または営業外費用'], keypoints:['先入先出法:物価上昇時は期末在庫が高め・材料費が低め','移動平均法:仕入のたびに平均計算→実務でよく使われる','予定消費単価:年間平均などを事前設定・差額は材料消費価格差異','棚卸減耗費:原則として製造間接費または営業外費用'],
quiz:[ quiz:[
{q:'月初在庫¥30,000・当月仕入¥120,000・月末在庫¥25,000のとき当月材料費は',choices:['¥115,000','¥125,000','¥150,000','¥95,000'],answer:1,exp:'材料費 30,000 120,000 25,000 125,000円'}, {q:'月初在庫¥30,000・当月仕入¥120,000・月末在庫¥25,000のとき当月材料費は',choices:['¥115,000','¥125,000','¥150,000','¥95,000'],answer:1,exp:'材料費 30,000 120,000 25,000 125,000円'},
@ -772,9 +711,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'i03', num:'I03', title:'労務費と経費', { id:'i03', num:'I03', title:'労務費と経費',
freq:'mid', diff:2,
concept:`<p><strong>労務費</strong>は労働に対する対価。直接工の賃金は直接労務費、間接工・工場管理者の給与は間接労務費(製造間接費)。</p><div class="formula-box"><div class="formula-label">消費賃金・賃率差異の計算</div>消費賃金 実際消費時間 × 実際賃率or 予定賃率)<br>賃率差異 =(予定賃率 実際賃率)× 実際消費時間</div><p><strong>経費</strong>は材料費・労務費以外の製造原価。<br>外注加工費・特許権使用料 → 直接経費(仕掛品へ直接)<br>工場家賃・減価償却費 → 間接経費(製造間接費へ)</p>`, concept:`<p><strong>労務費</strong>は労働に対する対価。直接工の賃金は直接労務費、間接工・工場管理者の給与は間接労務費(製造間接費)。</p><div class="formula-box"><div class="formula-label">消費賃金・賃率差異の計算</div>消費賃金 実際消費時間 × 実際賃率or 予定賃率)<br>賃率差異 =(予定賃率 実際賃率)× 実際消費時間</div><p><strong>経費</strong>は材料費・労務費以外の製造原価。<br>外注加工費・特許権使用料 → 直接経費(仕掛品へ直接)<br>工場家賃・減価償却費 → 間接経費(製造間接費へ)</p>`,
examtips:['直接工の賃金→直接労務費、間接工・工場管理者の給与→製造間接費(間接労務費)。分類の判断が頻出。', '予定賃率使用時の賃率差異:(予定−実際)×実際時間。プラスが有利差異。符号の向きを確実に。', '外注加工費・特許権使用料→直接経費として仕掛品へ直接集計(製造間接費を経由しない)。'],
keypoints:['予定賃率使用時:消費賃金は予定計算→月末に差異把握','賃率差異(有利):実際賃率が予定より低い','直接経費は仕掛品へ直接集計','間接経費は製造間接費へ集計し後で配賦'], keypoints:['予定賃率使用時:消費賃金は予定計算→月末に差異把握','賃率差異(有利):実際賃率が予定より低い','直接経費は仕掛品へ直接集計','間接経費は製造間接費へ集計し後で配賦'],
quiz:[ quiz:[
{q:'直接工の賃金はどのように分類されるか。',choices:['製造間接費','直接労務費','販売費','直接材料費'],answer:1,exp:'直接工(製品に直接携わる作業員)の賃金は直接労務費です。'}, {q:'直接工の賃金はどのように分類されるか。',choices:['製造間接費','直接労務費','販売費','直接材料費'],answer:1,exp:'直接工(製品に直接携わる作業員)の賃金は直接労務費です。'},
@ -783,9 +720,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'i04', num:'I04', title:'製造間接費の配賦', { id:'i04', num:'I04', title:'製造間接費の配賦',
freq:'high', diff:2,
concept:`<p>製造間接費は直接特定製品に割り当てられないため、何らかの基準で<strong>配賦</strong>します。</p><div class="formula-box"><div class="formula-label">予定配賦</div>予定配賦率 製造間接費予算額 ÷ 基準操業度<br>予定配賦額 予定配賦率 × 実際操業度<br>配賦差異 実際発生額 予定配賦額(プラス=不利)</div><div class="formula-box"><div class="formula-label">差異の3分析</div>予算差異 変動費予算 固定費予算 実際発生額<br>操業度差異 固定費率 ×(実際操業度 基準操業度)<br>能率差異 変動費率 ×(標準操業度 実際操業度)</div>`, concept:`<p>製造間接費は直接特定製品に割り当てられないため、何らかの基準で<strong>配賦</strong>します。</p><div class="formula-box"><div class="formula-label">予定配賦</div>予定配賦率 製造間接費予算額 ÷ 基準操業度<br>予定配賦額 予定配賦率 × 実際操業度<br>配賦差異 実際発生額 予定配賦額(プラス=不利)</div><div class="formula-box"><div class="formula-label">差異の3分析</div>予算差異 変動費予算 固定費予算 実際発生額<br>操業度差異 固定費率 ×(実際操業度 基準操業度)<br>能率差異 変動費率 ×(標準操業度 実際操業度)</div>`,
examtips:['予定配賦率=製造間接費予算÷基準操業度。配賦差異=実際発生額−予定配賦額(プラスが不利差異)。', '3分析の公式予算差異・操業度差異・能率差異はそれぞれの意味と公式を表で整理して暗記する。', '操業度差異は「設備の遊休や過稼働による固定費の回収差」。実際操業度が基準を下回ると不利差異になる。'],
keypoints:['配賦基準:直接作業時間・機械時間・直接材料費など','配賦差異 実際 予定(プラスなら不利差異)','予算差異:コスト管理の問題','操業度差異:設備の遊休・過稼働による差異'], keypoints:['配賦基準:直接作業時間・機械時間・直接材料費など','配賦差異 実際 予定(プラスなら不利差異)','予算差異:コスト管理の問題','操業度差異:設備の遊休・過稼働による差異'],
quiz:[ quiz:[
{q:'製造間接費予算¥600,000・基準操業度600時間のとき予定配賦率はいくらか。',choices:['¥100/時間','¥1,000/時間','¥600/時間','¥10/時間'],answer:1,exp:'予定配賦率 600,000 ÷ 600 1,000円/時間'}, {q:'製造間接費予算¥600,000・基準操業度600時間のとき予定配賦率はいくらか。',choices:['¥100/時間','¥1,000/時間','¥600/時間','¥10/時間'],answer:1,exp:'予定配賦率 600,000 ÷ 600 1,000円/時間'},
@ -794,9 +729,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'i05', num:'I05', title:'個別原価計算', { id:'i05', num:'I05', title:'個別原価計算',
freq:'mid', diff:2,
concept:`<p><strong>個別原価計算</strong>は受注ごとに原価を集計する方法です。製造指図書ごとに原価計算表を作成します。</p><div class="formula-box"><div class="formula-label">原価計算表(例:指図書#101</div>直接材料費 ¥50,000<br>直接労務費 ¥30,000<br>製造間接費 ¥20,000配賦<br>─────────────<br>製造原価合計 ¥100,000</div><p>完成時:(借)製品 /(貸)仕掛品<br>販売時:(借)売上原価 /(貸)製品<br>月末仕掛品:完成していない指図書の原価合計</p>`, concept:`<p><strong>個別原価計算</strong>は受注ごとに原価を集計する方法です。製造指図書ごとに原価計算表を作成します。</p><div class="formula-box"><div class="formula-label">原価計算表(例:指図書#101</div>直接材料費 ¥50,000<br>直接労務費 ¥30,000<br>製造間接費 ¥20,000配賦<br>─────────────<br>製造原価合計 ¥100,000</div><p>完成時:(借)製品 /(貸)仕掛品<br>販売時:(借)売上原価 /(貸)製品<br>月末仕掛品:完成していない指図書の原価合計</p>`,
examtips:['製造指図書ごとの原価計算表を頭の中に描く。指図書が完成→製品へ振替、未完成→期末仕掛品残高。', '製造間接費は「予定配賦率 × その指図書の操業時間」で按分。配賦額の計算は確実に。', '複数指図書が同時進行する問題では、合計が仕掛品・製品の期末残高と一致するか検算する習慣をつける。'],
keypoints:['各指図書を「小さな仕掛品勘定」と考えると整理しやすい','製造間接費は予定配賦率 × その指図書の操業量で按分','指図書が完成 → 製品勘定へ振替','月末に完成していない指図書の合計 → 期末仕掛品残高'], keypoints:['各指図書を「小さな仕掛品勘定」と考えると整理しやすい','製造間接費は予定配賦率 × その指図書の操業量で按分','指図書が完成 → 製品勘定へ振替','月末に完成していない指図書の合計 → 期末仕掛品残高'],
quiz:[ quiz:[
{q:'個別原価計算で使用する原価集計の単位はどれか。',choices:['製品の種類ごと','製造工程ごと','製造指図書ごと','月ごと'],answer:2,exp:'個別原価計算では製造指図書(受注)ごとに原価を集計します。'}, {q:'個別原価計算で使用する原価集計の単位はどれか。',choices:['製品の種類ごと','製造工程ごと','製造指図書ごと','月ごと'],answer:2,exp:'個別原価計算では製造指図書(受注)ごとに原価を集計します。'},
@ -805,9 +738,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'i06', num:'I06', title:'総合原価計算', { id:'i06', num:'I06', title:'総合原価計算',
freq:'high', diff:3,
concept:`<p><strong>総合原価計算</strong>は同種製品を大量生産する場合に使います。月末仕掛品を完成品換算量に変換して原価を按分します。</p><div class="formula-box"><div class="formula-label">完成品換算量と計算方法</div>月末仕掛品の換算量(加工費)= 月末仕掛品数量 × 加工進捗度<br><br>平均法:単価 =(月初仕掛品原価 当月投入原価)÷(完成品量 月末換算量)<br>先入先出法:月初仕掛品は先に完成したと仮定して計算</div><p>材料費は<strong>投入時点</strong>(通常始点)、加工費は<strong>加工進捗度</strong>に応じて配分。</p>`, concept:`<p><strong>総合原価計算</strong>は同種製品を大量生産する場合に使います。月末仕掛品を完成品換算量に変換して原価を按分します。</p><div class="formula-box"><div class="formula-label">完成品換算量と計算方法</div>月末仕掛品の換算量(加工費)= 月末仕掛品数量 × 加工進捗度<br><br>平均法:単価 =(月初仕掛品原価 当月投入原価)÷(完成品量 月末換算量)<br>先入先出法:月初仕掛品は先に完成したと仮定して計算</div><p>材料費は<strong>投入時点</strong>(通常始点)、加工費は<strong>加工進捗度</strong>に応じて配分。</p>`,
examtips:['加工費の完成品換算量(月末仕掛品数量 × 進捗度)の計算が最頻出。材料費(始点投入)は進捗度不要=数量そのまま。', '平均法と先入先出法の違い:先入先出法は月初仕掛品を先に完成させる前提で計算(月初分を別途計算)。', '検算:完成品原価 月末仕掛品原価 月初仕掛品原価 当月投入原価。計算後は必ず確認する。'],
keypoints:['始点投入材料月末仕掛品も100%消費済み','終点投入材料:月末仕掛品には含まれない','加工費(労務費+製造間接費):進捗度に応じて按分','先入先出法:月初仕掛品分と当月分を分けて計算'], keypoints:['始点投入材料月末仕掛品も100%消費済み','終点投入材料:月末仕掛品には含まれない','加工費(労務費+製造間接費):進捗度に応じて按分','先入先出法:月初仕掛品分と当月分を分けて計算'],
quiz:[ quiz:[
{q:'月末仕掛品200個・加工進捗度50%のとき加工費の完成品換算量は?',choices:['200個','100個','150個','400個'],answer:1,exp:'換算量 200 × 50% 100個'}, {q:'月末仕掛品200個・加工進捗度50%のとき加工費の完成品換算量は?',choices:['200個','100個','150個','400個'],answer:1,exp:'換算量 200 × 50% 100個'},
@ -816,9 +747,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'i07', num:'I07', title:'標準原価計算', { id:'i07', num:'I07', title:'標準原価計算',
freq:'high', diff:3,
concept:`<p><strong>標準原価計算</strong>はあらかじめ設定した標準原価と実際原価との差異(<strong>原価差異</strong>)を分析します。</p><div class="formula-box"><div class="formula-label">差異分析(直接材料費)</div>価格差異 =(標準価格 実際価格)× 実際消費量<br>数量差異 =(標準消費量 実際消費量)× 標準価格</div><div class="formula-box"><div class="formula-label">差異分析(直接労務費)</div>賃率差異 =(標準賃率 実際賃率)× 実際時間<br>時間差異 =(標準時間 実際時間)× 標準賃率</div>`, concept:`<p><strong>標準原価計算</strong>はあらかじめ設定した標準原価と実際原価との差異(<strong>原価差異</strong>)を分析します。</p><div class="formula-box"><div class="formula-label">差異分析(直接材料費)</div>価格差異 =(標準価格 実際価格)× 実際消費量<br>数量差異 =(標準消費量 実際消費量)× 標準価格</div><div class="formula-box"><div class="formula-label">差異分析(直接労務費)</div>賃率差異 =(標準賃率 実際賃率)× 実際時間<br>時間差異 =(標準時間 実際時間)× 標準賃率</div>`,
examtips:['差異の計算「標準実際」の符号でプラスが有利・マイナスが不利。価格と数量の2分析公式を確実に暗記。', '価格差異=(標準価格−実際価格)×実際消費量。数量差異=(標準量−実際量)×標準価格。混同に注意。', '製造間接費差異の3分析はI04の配賦差異をさらに細分化したもの。I04の理解が前提になる。'],
keypoints:['有利差異:標準より少ないコスト','不利差異:標準より多いコスト(管理改善が必要)','直接労務費差異 → 賃率差異 時間差異','製造間接費差異 → 予算差異 操業度差異(+能率差異)'], keypoints:['有利差異:標準より少ないコスト','不利差異:標準より多いコスト(管理改善が必要)','直接労務費差異 → 賃率差異 時間差異','製造間接費差異 → 予算差異 操業度差異(+能率差異)'],
quiz:[ quiz:[
{q:'標準価格¥200/kg・実際価格¥210/kg・実際消費量500kgのとき価格差異は',choices:['¥5,000の有利差異','¥5,000の不利差異','¥500の有利差異','¥500の不利差異'],answer:1,exp:'価格差異 200 210× 500 5,000不利差異実際が標準より高かった'}, {q:'標準価格¥200/kg・実際価格¥210/kg・実際消費量500kgのとき価格差異は',choices:['¥5,000の有利差異','¥5,000の不利差異','¥500の有利差異','¥500の不利差異'],answer:1,exp:'価格差異 200 210× 500 5,000不利差異実際が標準より高かった'},
@ -827,9 +756,7 @@ const CATEGORIES = [
] ]
}, },
{ id:'i08', num:'I08', title:'直接原価計算とCVP分析', { id:'i08', num:'I08', title:'直接原価計算とCVP分析',
freq:'high', diff:2,
concept:`<p><strong>直接原価計算</strong>は変動費のみを製品原価とし、固定費は期間費用として処理します。</p><div class="formula-box"><div class="formula-label">直接原価計算P/L</div>売上高<br> 変動費(変動製造原価 変動販売費)<br> 貢献利益<br> 固定費(固定製造間接費 固定販売費 一般管理費)<br> 営業利益</div><div class="formula-box"><div class="formula-label">CVP分析損益分岐点</div>貢献利益率 貢献利益 ÷ 売上高<br>損益分岐点売上高 固定費 ÷ 貢献利益率<br>目標利益達成売上高 =(固定費 目標利益)÷ 貢献利益率</div><p>損益分岐点グラフ:売上高線と総原価線の交点が損益分岐点です。</p><svg viewBox="0 0 300 190" style="width:100%;max-width:380px;display:block;margin:12px auto;font-family:JetBrains Mono,monospace" aria-label="CVP分析グラフ"><rect width="300" height="190" fill="none"/><line x1="44" y1="10" x2="44" y2="155" stroke="rgba(255,255,255,0.15)" stroke-width="1.5"/><line x1="44" y1="155" x2="285" y2="155" stroke="rgba(255,255,255,0.15)" stroke-width="1.5"/><text x="38" y="158" text-anchor="end" font-size="9" fill="#64748B">0</text><text x="155" y="170" text-anchor="middle" font-size="9" fill="#64748B">販売量</text><text x="22" y="85" text-anchor="middle" font-size="9" fill="#64748B" transform="rotate(-90,22,85)">金額</text><line x1="44" y1="105" x2="275" y2="105" stroke="rgba(251,146,60,0.6)" stroke-width="1.5" stroke-dasharray="5,3"/><text x="278" y="108" font-size="9" fill="#FB923C">固定費</text><line x1="44" y1="155" x2="255" y2="25" stroke="#22D3EE" stroke-width="2"/><text x="258" y="22" font-size="9" fill="#22D3EE">売上高</text><line x1="44" y1="105" x2="255" y2="55" stroke="rgba(167,139,250,0.85)" stroke-width="2"/><text x="258" y="58" font-size="9" fill="#A78BFA">総原価</text><line x1="44" y1="105" x2="44" y2="155" stroke="rgba(251,146,60,0.4)" stroke-width="1.5" stroke-dasharray="3,3"/><circle cx="152" cy="90" r="5" fill="none" stroke="#4ADE80" stroke-width="2"/><line x1="152" y1="90" x2="152" y2="155" stroke="rgba(74,222,128,0.4)" stroke-width="1" stroke-dasharray="3,3"/><text x="152" y="180" text-anchor="middle" font-size="9" fill="#4ADE80">損益分岐点</text><text x="200" y="70" font-size="9" fill="rgba(74,222,128,0.8)">利益ゾーン</text><text x="75" y="135" font-size="9" fill="rgba(248,113,113,0.8)">損失ゾーン</text></svg>`, concept:`<p><strong>直接原価計算</strong>は変動費のみを製品原価とし、固定費は期間費用として処理します。</p><div class="formula-box"><div class="formula-label">直接原価計算P/L</div>売上高<br> 変動費(変動製造原価 変動販売費)<br> 貢献利益<br> 固定費(固定製造間接費 固定販売費 一般管理費)<br> 営業利益</div><div class="formula-box"><div class="formula-label">CVP分析損益分岐点</div>貢献利益率 貢献利益 ÷ 売上高<br>損益分岐点売上高 固定費 ÷ 貢献利益率<br>目標利益達成売上高 =(固定費 目標利益)÷ 貢献利益率</div><p>損益分岐点グラフ:売上高線と総原価線の交点が損益分岐点です。</p><svg viewBox="0 0 300 190" style="width:100%;max-width:380px;display:block;margin:12px auto;font-family:JetBrains Mono,monospace" aria-label="CVP分析グラフ"><rect width="300" height="190" fill="none"/><line x1="44" y1="10" x2="44" y2="155" stroke="rgba(255,255,255,0.15)" stroke-width="1.5"/><line x1="44" y1="155" x2="285" y2="155" stroke="rgba(255,255,255,0.15)" stroke-width="1.5"/><text x="38" y="158" text-anchor="end" font-size="9" fill="#64748B">0</text><text x="155" y="170" text-anchor="middle" font-size="9" fill="#64748B">販売量</text><text x="22" y="85" text-anchor="middle" font-size="9" fill="#64748B" transform="rotate(-90,22,85)">金額</text><line x1="44" y1="105" x2="275" y2="105" stroke="rgba(251,146,60,0.6)" stroke-width="1.5" stroke-dasharray="5,3"/><text x="278" y="108" font-size="9" fill="#FB923C">固定費</text><line x1="44" y1="155" x2="255" y2="25" stroke="#22D3EE" stroke-width="2"/><text x="258" y="22" font-size="9" fill="#22D3EE">売上高</text><line x1="44" y1="105" x2="255" y2="55" stroke="rgba(167,139,250,0.85)" stroke-width="2"/><text x="258" y="58" font-size="9" fill="#A78BFA">総原価</text><line x1="44" y1="105" x2="44" y2="155" stroke="rgba(251,146,60,0.4)" stroke-width="1.5" stroke-dasharray="3,3"/><circle cx="152" cy="90" r="5" fill="none" stroke="#4ADE80" stroke-width="2"/><line x1="152" y1="90" x2="152" y2="155" stroke="rgba(74,222,128,0.4)" stroke-width="1" stroke-dasharray="3,3"/><text x="152" y="180" text-anchor="middle" font-size="9" fill="#4ADE80">損益分岐点</text><text x="200" y="70" font-size="9" fill="rgba(74,222,128,0.8)">利益ゾーン</text><text x="75" y="135" font-size="9" fill="rgba(248,113,113,0.8)">損失ゾーン</text></svg>`,
examtips:['「貢献利益売上高変動費」「損益分岐点売上高固定費÷貢献利益率」の2公式は反射的に出せるようにする。', '目標利益達成売上高=(固定費+目標利益)÷貢献利益率。目標利益が与えられたらこの公式。', '全部原価計算と直接原価計算の利益差額=期末在庫に含まれる固定費相当額。生産量>販売量なら全部原価計算の利益が大きい。'],
keypoints:['直接原価計算:固定製造間接費は期間費用として全額計上','損益分岐点:利益ゼロの売上高(固定費をちょうど回収できる点)','安全余裕率 =(実際売上 損益分岐点売上)÷ 実際売上 × 100','全部原価計算との利益差額 固定費の期首・期末仕掛品への含み'], keypoints:['直接原価計算:固定製造間接費は期間費用として全額計上','損益分岐点:利益ゼロの売上高(固定費をちょうど回収できる点)','安全余裕率 =(実際売上 損益分岐点売上)÷ 実際売上 × 100','全部原価計算との利益差額 固定費の期首・期末仕掛品への含み'],
quiz:[ quiz:[
{q:'売上高¥1,000,000・変動費¥600,000・固定費¥300,000のとき貢献利益は',choices:['¥400,000','¥100,000','¥700,000','¥300,000'],answer:0,exp:'貢献利益 売上高 変動費 1,000,000 600,000 400,000円'}, {q:'売上高¥1,000,000・変動費¥600,000・固定費¥300,000のとき貢献利益は',choices:['¥400,000','¥100,000','¥700,000','¥300,000'],answer:0,exp:'貢献利益 売上高 変動費 1,000,000 600,000 400,000円'},
@ -850,7 +777,6 @@ function bokiApp(){
isDark:true, isDark:true,
progress:{}, progress:{},
scores:{}, scores:{},
wrongUnits:{},
keys:['A','B','C','D','E'], keys:['A','B','C','D','E'],
init(){ init(){
@ -862,8 +788,6 @@ function bokiApp(){
catch{ this.progress = {}; } catch{ this.progress = {}; }
try{ this.scores = JSON.parse(localStorage.getItem('posimai-boki-scores')||'{}'); } try{ this.scores = JSON.parse(localStorage.getItem('posimai-boki-scores')||'{}'); }
catch{ this.scores = {}; } catch{ this.scores = {}; }
try{ this.wrongUnits = JSON.parse(localStorage.getItem('posimai-boki-wrong')||'{}'); }
catch{ this.wrongUnits = {}; }
const t = localStorage.getItem('posimai-boki-theme')||'system'; const t = localStorage.getItem('posimai-boki-theme')||'system';
this.isDark = t==='dark'||(t==='system'&&matchMedia('(prefers-color-scheme:dark)').matches); this.isDark = t==='dark'||(t==='system'&&matchMedia('(prefers-color-scheme:dark)').matches);
const uid=(new URLSearchParams(location.search).get('unit')||'').trim().toLowerCase(); const uid=(new URLSearchParams(location.search).get('unit')||'').trim().toLowerCase();
@ -982,55 +906,12 @@ function bokiApp(){
}); });
}, },
// Weak unit tracking
hasWrong(id){ return !!this.wrongUnits[id]; },
_onAllAnswered(){
if(!this.currentUnit) return;
const uid=this.currentUnit.id;
const total=this.currentUnit.quiz?.length||0;
const correct=Object.values(this.quizState).filter(s=>s?.correct).length;
if(correct>=total){
delete this.wrongUnits[uid];
} else {
this.wrongUnits[uid]=(this.wrongUnits[uid]||0)+1;
}
localStorage.setItem('posimai-boki-wrong',JSON.stringify(this.wrongUnits));
this.wrongUnits={...this.wrongUnits};
},
get weakUnits(){
return this.allUnits().filter(u=>this.wrongUnits[u.id]>0)
.sort((a,b)=>(this.wrongUnits[b.id]||0)-(this.wrongUnits[a.id]||0));
},
get todayUnits(){
const result=[];
// P0-1: pick worst wrong unit
const weak=this.weakUnits;
if(weak.length>0) result.push({...weak[0], todayTag:'苦手'});
// P0-2: pick first undone unit (skip if same as weak)
const all=this.allUnits();
const weakId=result[0]?.id;
// First try units with wrong answers but done (review)
const review=all.find(u=>!this.wrongUnits[u.id] && this.scores[u.id] && u.id!==weakId && !this.progress[u.id]);
if(review) result.push({...review, todayTag:'復習'});
// Otherwise first unlearned
if(result.length<2){
const next=all.find(u=>!this.progress[u.id] && u.id!==weakId && !result.find(r=>r.id===u.id));
if(next) result.push({...next, todayTag:'未学習'});
}
return result;
},
// Quiz // Quiz
answered(qi){ return !!this.quizState[qi]; }, answered(qi){ return !!this.quizState[qi]; },
doAnswer(qi,ci,correct,exp){ doAnswer(qi,ci,correct,exp){
if(this.quizState[qi]) return; if(this.quizState[qi]) return;
this.quizState[qi]={selected:ci,correct:ci===correct,exp}; this.quizState[qi]={selected:ci,correct:ci===correct,exp};
this.quizState={...this.quizState}; this.quizState={...this.quizState};
// Check if all questions answered
const total=this.currentUnit?.quiz?.length||0;
if(total>0 && Object.keys(this.quizState).length>=total){
this._onAllAnswered();
}
}, },
qCardCls(qi){ qCardCls(qi){
const s=this.quizState[qi]; const s=this.quizState[qi];