
:root{--bg:#eafff2;--panel:#fbfffc;--ink:#0e1a36;--muted:#697083;--line:#cbe9d6;--navy:#13264a;--green:#16805f;--red:#b51f3d;--gold:#d99a00;--soft-green:#eef7ee;--soft-red:#fff4f3;--soft-gold:#fff8e6;--shadow:0 18px 45px rgba(40,32,18,.08)}
*{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:650} .topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--line);background:rgba(255,250,240,.78);backdrop-filter:blur(10px);position:sticky;top:0;z-index:5}.brand{font-size:12px;letter-spacing:.18em;color:#12824e;font-weight:900}.topbar h1{font-size:22px;margin:2px 0 0}.home-btn,.pill,.small-btn{border:1px solid var(--line);background:#f8fff9;border-radius:14px;color:var(--ink);font-weight:900;padding:10px 15px;box-shadow:0 4px 12px rgba(0,0,0,.04);cursor:pointer}.home-btn{font-size:17px}.home{max-width:1120px;margin:32px auto}.hero{display:flex;gap:26px;align-items:center;background:#fbfffc;border:1px solid var(--line);border-radius:28px;padding:34px;box-shadow:var(--shadow)}.mark{width:78px;height:78px;border-radius:22px;background:#0f7b4c;color:white;display:grid;place-items:center;font-size:38px;font-weight:900}.hero h2{font-size:34px;margin:8px 0}.hero p{color:var(--muted);margin:0}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px}.card{background:#fbfffc;border:1px solid var(--line);border-radius:20px;padding:24px;min-height:116px;box-shadow:var(--shadow);cursor:pointer}.card:hover{transform:translateY(-1px)}.card h3{margin:0 0 12px;font-size:21px}.card p{margin:0;color:var(--muted)}.study{display:grid;grid-template-columns:58.5% 41.5%;height:calc(100vh - 72px)}.left,.right{padding:18px}.left{border-right:1px solid var(--line);overflow:auto}.right{overflow:auto}.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:18px}.toolbar .spacer{flex:1}.qcard{background:rgba(255,250,240,.95);border:1px solid var(--line);border-radius:18px;margin:0 0 14px;padding:20px 18px;cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.035)}.qcard.selected{background:var(--soft-green);outline:3px solid rgba(22,128,95,.20);border-color:#a8cdbf}.qhead{display:flex;align-items:center;gap:10px;margin-bottom:12px}.qno{font-size:18px;font-weight:950}.section{font-size:12px;color:var(--muted)}.badge{margin-left:auto;border-radius:999px;padding:6px 10px;background:white;border:1px solid var(--line);font-size:12px}.badge.easy{background:#e8f7ef;color:#096a4a}.badge.sus{background:#fff1c7;color:#865b00}.badge.bad{background:#ffe4e7;color:#a10d2c}.question{font-size:17px;line-height:1.85;white-space:pre-wrap}.command{background:#fbfffc;border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow)}.cmdtop{display:flex;justify-content:space-between;align-items:start}.label{font-size:11px;letter-spacing:.18em;color:#12824e}.cmdno{font-size:28px;font-weight:950}.answer-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.big{border:0;border-radius:14px;color:white;padding:20px;font-size:24px;font-weight:950;cursor:pointer}.ok{background:var(--green)}.ng{background:var(--red)}.feedback{min-height:48px;border:1px dashed var(--line);border-radius:16px;padding:14px;color:var(--muted);background:rgba(255,255,255,.45)}.rank-row{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:12px 0}.rank{border:0;border-radius:12px;color:white;padding:14px;font-size:18px;font-weight:950;cursor:pointer}.rank.easy{background:#159b70}.rank.sus{background:#dfa000}.rank.bad{background:#d51d3f}.explain{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.explain summary{cursor:pointer;font-size:17px;font-weight:950}.exp-body{line-height:1.8;font-size:15px;margin-top:10px}.selects{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.selects select{width:100%;border:1px solid var(--line);border-radius:10px;padding:8px;background:white}.memoBox{background:#fbfffc;border:1px solid var(--line);border-radius:22px;margin-top:14px;padding:18px;box-shadow:var(--shadow)}.tabs{display:flex;gap:10px;margin-bottom:10px}.tab{border:0;border-radius:10px;background:#fff;padding:10px 14px;font-weight:950;cursor:pointer}.tab.active{background:#0f7b4c;color:white}textarea{width:100%;min-height:160px;resize:vertical;border:1px solid var(--line);border-radius:16px;padding:14px;font-size:16px;line-height:1.7;background:white}.memo-actions{display:flex;gap:10px;margin-top:10px}.hidden{display:none}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:16px}.stat{background:#fbfffc;border:1px solid var(--line);border-radius:16px;padding:16px}.stat b{font-size:28px} .chapters{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.chapter{padding:18px;border:1px solid var(--line);border-radius:16px;background:#fbfffc;cursor:pointer}.search{flex:0 0 260px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:white;font-weight:700}@media(max-width:1100px){.study{grid-template-columns:1fr}.right{border-top:1px solid var(--line)}.grid{grid-template-columns:repeat(2,1fr)}}

.explain.locked{padding:14px 16px; border:1px dashed #d8cbb8; border-radius:14px; color:#6f6a60; background:#fffdf7; margin-top:12px;}
.explain.locked p{margin:6px 0 0;}
.copyline{display:flex;align-items:center;gap:10px;margin:10px 0 8px 0;}
.copy-btn{background:#14224a;color:white;border-color:#14224a;}
.copyhint{font-size:12px;color:#6b7280;}

.syncbox{margin-top:18px;background:#fbfffc;border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:var(--shadow);display:grid;gap:14px;max-width:850px}.sync-input{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:white;font-size:16px;font-weight:700;color:var(--ink)}.checkline{display:flex;gap:10px;align-items:center;font-weight:900}.sync-actions{display:flex;gap:10px;flex-wrap:wrap}.sync-status{padding:12px 14px;border:1px dashed var(--line);border-radius:14px;background:#fffdf7}.sync-note{color:var(--muted);font-size:14px;margin:0}

.answer-row.wide{display:block}.answer-row .choice{background:#127d4f}.multi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:10px}.big.choice.chosen{outline:4px solid rgba(18,125,79,.28);filter:brightness(1.18)}.big.submit{width:100%;margin-top:4px}.copyhint{font-size:12px;color:var(--muted);margin-left:8px}.copyline{margin:10px 0}.qcard{border-left:6px solid rgba(18,125,79,.25)}


/* clean-v4: 長い解説をカード内で読みやすくする */
.exp-body{
  line-height:1.78;
  font-size:15px;
  max-height:58vh;
  overflow:auto;
  padding-right:8px;
}
.exp-result{
  position:sticky;
  top:0;
  z-index:1;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid rgba(12,82,53,.16);
  padding:6px 0 8px;
  margin-bottom:8px;
  font-weight:900;
}
.exp-para{
  margin:0 0 10px;
  padding:0;
}
.exp-para.key{
  margin-top:14px;
  padding:8px 10px;
  border-left:4px solid #11854f;
  background:rgba(17,133,79,.07);
  border-radius:8px;
  font-weight:800;
}
.explain summary{
  position:sticky;
  top:0;
  z-index:2;
  background:rgba(250,255,252,.98);
  padding:8px 0;
}
.copyline{
  position:sticky;
  top:38px;
  z-index:2;
  background:rgba(250,255,252,.98);
  padding:6px 0 10px;
}
@media(max-width: 760px){
  .exp-body{max-height:52vh;font-size:14.5px;line-height:1.72;}
  .exp-para.key{padding:7px 9px;}
}


/* clean-v5: 解説の不自然なぶつ切りを抑え、見出し＋本文の読み物カードにする */
.exp-body{
  line-height:1.86;
  font-size:15.5px;
  max-height:58vh;
  overflow:auto;
  padding:0 10px 8px 2px;
}
.exp-result{
  position:sticky;
  top:0;
  z-index:1;
  background:rgba(255,255,255,.98);
  border-bottom:1px solid rgba(12,82,53,.16);
  padding:8px 0 10px;
  margin-bottom:12px;
  font-weight:950;
}
.exp-lead{
  margin:10px 0 16px;
  padding:12px 14px;
  border-radius:12px;
  background:#f7fbf8;
  border:1px solid rgba(17,133,79,.16);
  font-weight:850;
  line-height:1.85;
}
.exp-heading{
  margin:18px 0 8px;
  padding:8px 12px;
  border-left:5px solid #11854f;
  background:#eef8f2;
  border-radius:10px;
  font-weight:950;
  line-height:1.45;
}
.exp-para{
  margin:0 0 13px;
  padding:0 2px;
  line-height:1.9;
  font-weight:720;
}
.exp-para + .exp-heading{margin-top:20px;}
.explain summary{
  position:sticky;
  top:0;
  z-index:2;
  background:rgba(250,255,252,.99);
  padding:8px 0;
}
.copyline{
  position:sticky;
  top:38px;
  z-index:2;
  background:rgba(250,255,252,.99);
  padding:6px 0 10px;
}
@media(max-width: 760px){
  .exp-body{max-height:52vh;font-size:14.8px;line-height:1.78;}
  .exp-para{line-height:1.82;}
  .exp-heading{margin-top:15px;}
}


/* clean-v6: 解説を「①について → 説明」のまとまりで見せる */
.exp-answer{border-left:5px solid #0f7b4c;background:#f3fbf6;border-radius:12px;padding:12px 14px;margin:12px 0 14px;font-weight:900;line-height:1.75;}
.exp-section-block{margin:18px 0 20px;border:1px solid #d9eadf;border-radius:16px;background:#fff;overflow:hidden;}
.exp-heading{display:block;background:#edf7f1;border-left:6px solid #0f7b4c;padding:11px 14px;font-size:17px;font-weight:950;line-height:1.5;color:#10223b;}
.exp-section-body{padding:12px 16px 14px;}
.exp-para{margin:0 0 12px;line-height:1.95;font-size:16px;font-weight:750;}
.exp-para:last-child{margin-bottom:0;}
.exp-lead{display:none;}


/* clean-v8: 解説と問題文の可読性調整 */
.qtext, .question, .card { line-height: 1.9; }
.exp-body { line-height: 1.9; }
.exp-section-block { margin: 18px 0 20px; padding: 0 0 0 10px; border-left: 4px solid #15935f; }
.exp-heading { display: inline-block; margin: 0 0 8px; padding: 6px 10px; border-radius: 10px; background: #eef7f1; font-weight: 800; color: #173b2a; }
.exp-section-body { padding-left: 2px; }
.exp-para { margin: 0 0 12px; }
.exp-answer { margin: 0 0 14px; padding: 10px 12px; border-radius: 10px; background: #fffdf0; font-weight: 700; }

/* clean-v9-source */
.card .source, .source { display:block; margin-bottom:10px; }

/* clean-v10-polish */
.exp-body{line-height:1.85;}
.exp-section-block{margin:14px 0 18px; padding:0 0 0 10px; border-left:4px solid var(--accent, #0b8f55);}
.exp-heading{font-weight:800; font-size:1.05em; margin:0 0 8px; padding:6px 10px; background:rgba(0,0,0,.04); border-radius:8px;}
.exp-section-body .exp-para{margin:8px 0;}
.exp-answer{font-weight:800; margin:8px 0 14px; padding:8px 10px; border-radius:8px; background:rgba(0,0,0,.035);}
.qtext{line-height:1.75;}


/* clean-v12: source/肢番号の余白を圧縮し、カード密度を上げる */
.qcard{padding:14px 16px;margin-bottom:10px;}
.qhead{margin-bottom:8px;}
.question{font-size:17px;line-height:1.65;white-space:normal;}
.qtext{line-height:1.68;white-space:normal;}
.source{display:block;margin:0 0 6px;font-size:15px;font-weight:950;color:#14224a;}
.qtext br{display:block;content:"";margin:3px 0;}
.left,.right{padding:14px;}
.toolbar{margin-bottom:12px;gap:10px;}
@media(max-width:760px){.qcard{padding:13px 14px}.question{font-size:16px;line-height:1.62}.source{font-size:14px}}


/* clean-v13: 会話・語句群・選択肢の読みやすさを改善 */
.qtext{line-height:1.72;}
.qtext br{display:block;content:"";margin:4px 0;}
.source{margin-bottom:8px;}


/* clean-v14: 問題文の会話・語句群・選択肢をさらに整形 */
.qtext{line-height:1.74;}
.qtext br{display:block;content:"";margin:4px 0;}
.source{margin-bottom:10px;}


/* clean-v15: 会話問題の最終整形 */
.qtext{line-height:1.76;}
.qtext br{display:block;content:"";margin:4px 0;}


/* iPhone clean-v18: スマホ専用の圧縮レイアウト */
@media (max-width: 760px){
  html, body { width:100%; overflow-x:hidden; }
  body{ padding-bottom: calc(92px + env(safe-area-inset-bottom)); font-weight:700; }
  .topbar{
    height:auto; min-height:62px; padding:10px 14px;
    align-items:center; gap:10px;
  }
  .brand{font-size:10px; letter-spacing:.15em; white-space:nowrap;}
  .topbar h1{font-size:22px; line-height:1.18; margin:2px 0 0; letter-spacing:0;}
  .home-btn{font-size:20px; padding:12px 16px; border-radius:18px; flex:0 0 auto;}

  .home{margin:14px auto; padding:0 12px; max-width:100%;}
  .hero{
    gap:14px; padding:18px 16px; border-radius:24px;
    align-items:center; box-shadow:0 8px 20px rgba(40,32,18,.06);
  }
  .mark{width:54px; height:54px; border-radius:16px; font-size:30px; flex:0 0 54px;}
  .hero .label{font-size:10px; letter-spacing:.16em;}
  .hero h2{font-size:26px; line-height:1.28; margin:5px 0 6px; word-break:keep-all;}
  .hero p{font-size:14px; line-height:1.55;}
  .grid{grid-template-columns:1fr 1fr; gap:12px; margin-top:14px;}
  .card{min-height:118px; padding:18px 16px; border-radius:20px;}
  .card h3{font-size:24px; line-height:1.25; margin-bottom:12px;}
  .card p{font-size:15px; line-height:1.55;}
  .stats{grid-template-columns:repeat(2,1fr); gap:10px;}
  .stat{padding:13px;}
  .stat b{font-size:24px;}

  .study{display:flex; flex-direction:column; height:auto; min-height:100dvh;}
  .right{order:-1; overflow:visible; padding:12px 12px 8px; border-bottom:1px solid var(--line); background:rgba(234,255,242,.96);}
  .left{order:0; overflow:visible; padding:10px 12px 18px; border-right:0;}
  .toolbar{gap:8px; flex-wrap:wrap; margin-bottom:10px;}
  .toolbar .pill{font-size:13px; padding:8px 10px; border-radius:12px;}
  .toolbar .small-btn{font-size:13px; padding:8px 10px; border-radius:12px;}
  .toolbar .spacer{display:none;}
  .search{flex:1 1 100%; order:10; width:100%; font-size:16px; padding:11px 12px;}

  .command{padding:14px; border-radius:20px; box-shadow:0 8px 20px rgba(40,32,18,.06);}
  .cmdtop{align-items:center;}
  .label{font-size:10px; letter-spacing:.14em;}
  .cmdno{font-size:24px;}
  .answer-row{gap:10px; margin:12px 0;}
  .big{padding:16px 12px; font-size:22px; border-radius:14px;}
  .rank-row{gap:8px; margin:10px 0;}
  .rank{padding:13px 8px; font-size:18px; border-radius:13px;}
  .feedback{min-height:42px; padding:12px; font-size:14px;}

  .qcard{padding:13px 13px; margin-bottom:10px; border-radius:18px; border-left-width:5px;}
  .qhead{gap:6px; margin-bottom:8px; flex-wrap:wrap;}
  .qno{font-size:18px;}
  .section{font-size:11px; line-height:1.35; flex:1 1 100%;}
  .badge{margin-left:0; font-size:11px; padding:5px 9px;}
  .question{font-size:16px; line-height:1.72;}
  .source{font-size:14px; margin:0 0 8px;}
  .qtext{line-height:1.72;}

  .explain{margin-top:10px; padding-top:10px;}
  .explain summary{font-size:16px; padding:6px 0;}
  .copyline{position:static; flex-wrap:wrap; gap:6px; padding:4px 0 8px;}
  .copy-btn{font-size:13px; padding:9px 10px;}
  .copyhint{font-size:11px; line-height:1.4;}
  .exp-body{max-height:none; overflow:visible; font-size:15px; line-height:1.75; padding-right:0;}
  .exp-answer{padding:10px 12px; margin:10px 0 12px; line-height:1.65;}
  .exp-section-block{margin:12px 0 14px; border-radius:14px;}
  .exp-heading{font-size:15px; padding:9px 12px;}
  .exp-section-body{padding:10px 12px 12px;}
  .exp-para{font-size:15px; line-height:1.78; margin-bottom:10px;}

  .memoBox{padding:14px; border-radius:20px; margin-top:12px;}
  textarea{min-height:110px; font-size:15px; line-height:1.6;}
  .selects{grid-template-columns:1fr;}
  .multi-grid{grid-template-columns:repeat(3,1fr); gap:8px;}
  .chapters{grid-template-columns:1fr;}
}

@media (max-width: 390px){
  .topbar h1{font-size:20px;}
  .hero h2{font-size:23px;}
  .card h3{font-size:21px;}
  .card{padding:16px 14px; min-height:108px;}
  .big{font-size:20px;}
}


/* mobile-v19: 憲法短答iPhone版風レイアウト */
body{background:#f4f1ea; color:#14224a;}
.topbar{height:94px;padding:16px 18px 12px;background:#f4f1ea;border-bottom:1px solid #d8cfbf;align-items:flex-end}
.brand{font-size:14px;letter-spacing:.16em;color:#b18a2b;font-weight:950;margin-bottom:2px}
.topbar h1{font-size:28px;line-height:1.1;margin:0 0 2px;font-weight:950}
.home-btn{background:#f8f5ef;border-color:#cfc6b7;border-radius:18px;padding:12px 18px;font-size:18px;min-width:106px;color:#13264a;box-shadow:none}
.mhome,.mstudy{max-width:820px;margin:0 auto;padding:18px 14px 110px}
.mhero{background:#f8f5ef;border:1px solid #d3c9b8;border-radius:22px;padding:22px 18px;margin:14px 0 16px}
.meyebrow{font-size:12px;letter-spacing:.22em;color:#b18a2b;font-weight:950;margin-bottom:8px}
.mhero h2{font-size:28px;line-height:1.25;margin:0 0 8px;font-weight:950}
.mhero p{margin:0;color:#6b7280;font-size:16px;line-height:1.6}
.mcard{display:block;width:100%;text-align:left;background:#f8f5ef;border:1px solid #d3c9b8;border-radius:22px;padding:22px 18px;margin:0 0 14px;box-shadow:none;color:#13264a}
.mcard h3{margin:0 0 8px;font-size:22px;line-height:1.2}
.mcard p{margin:0;color:#6b7280;font-size:17px;line-height:1.5}
.mprogress{font-size:14px;letter-spacing:.18em;color:#b18a2b;font-weight:950;margin-top:2px}
.mno{font-size:58px;line-height:1;margin:4px 0 14px;font-weight:950;color:#13264a}
.mqcard{background:#f8f5ef;border:1px solid #d3c9b8;border-radius:22px;padding:16px;margin-bottom:14px}
.mchips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.mchip{display:inline-flex;align-items:center;padding:10px 14px;border-radius:999px;border:1px solid #cfc6b7;background:#fbfaf6;font-size:14px;font-weight:900;color:#13264a}
.mchip.easy{background:#e8f7ef;color:#096a4a}.mchip.sus{background:#fff1c7;color:#865b00}.mchip.bad{background:#ffe4e7;color:#a10d2c}.mchip.plain{background:#fbfaf6;color:#525a6b}
.mobileq .source{font-size:15px;font-weight:900;margin-bottom:12px}
.mobileq .qtext{font-size:23px;line-height:1.9;font-weight:800;color:#13264a}
.mnav{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:8px 0 14px}
.navbtn{border:1px solid #d3c9b8;background:#f8f5ef;border-radius:16px;padding:16px 14px;font-size:22px;font-weight:950;color:#13264a}
.mobilefb{background:#fbfaf6;border:2px dashed #d8cfbf;border-radius:18px;padding:18px 16px;color:#6b7280;font-size:16px;line-height:1.7;min-height:96px;margin-bottom:14px}
.mexplain{background:#f8f5ef;border:1px solid #d3c9b8;border-radius:18px;padding:14px 14px 8px;margin-bottom:16px}
.mexplain summary{font-size:18px;font-weight:950;cursor:pointer;color:#13264a}
.copyline{position:static;background:transparent;padding:8px 0 10px}
.copy-btn{border-radius:14px;padding:11px 14px}
.copyhint{display:block;font-size:12px;line-height:1.5;margin-top:6px;margin-left:0;color:#6b7280}
.exp-body{max-height:none;overflow:visible;padding:0;font-size:15px;line-height:1.85}
.exp-result{position:static;background:transparent;border-bottom:1px solid #ded6c9;padding:6px 0 10px;margin-bottom:10px}
.exp-section-block{margin:12px 0 14px;border:1px solid #dde4da;border-radius:14px}.exp-heading{font-size:18px;padding:10px 12px}.exp-section-body{padding:12px 14px}.exp-para{font-size:16px;line-height:1.9}
.mobileMemoButtons{display:flex;gap:10px;margin-bottom:10px}.msmall{background:#fff;border-color:#d3c9b8;border-radius:14px;font-size:16px;padding:11px 16px;box-shadow:none}.msmall.active{background:#15855f;color:#fff;border-color:#15855f}
.mmemobox{background:#f8f5ef;border:1px solid #d3c9b8;border-radius:18px;padding:14px;margin-bottom:18px}
textarea{min-height:160px;border-color:#d3c9b8;border-radius:16px;font-size:17px;background:#fff}
.memo-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.memo-actions .small-btn{border-radius:14px;padding:12px 8px;font-size:16px;background:#fff;box-shadow:none}
.bottomDock{position:fixed;left:0;right:0;bottom:0;background:#f4f1ea;border-top:1px solid #d8cfbf;padding:12px 12px calc(env(safe-area-inset-bottom) + 10px);z-index:50}
.dock-answer{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.dock-answer .big{padding:18px 10px;font-size:26px;border-radius:18px}
.dock-answer .big.choice,.dock-answer .big.ok.submit{grid-column:auto / span 1;background:#19855e}
.dock-answer .multi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:10px}
.dock-rank{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.dock-rank .rank{padding:16px 8px;border-radius:16px;font-size:20px}
.spacer-bottom{height:10px}
.study,.left,.right,.toolbar,.grid,.home,.hero,.stats{all:unset}
@media(min-width:700px){.mhome,.mstudy{max-width:760px}.mobileq .qtext{font-size:25px}.mhero h2{font-size:36px}}


/* layout-v20: iPhoneでは問題文を一文ずつ見せる */
.mobile-sentence-view{display:block}
.mobile-sentence-view .qsent{margin:0 0 12px;padding:0;font-size:23px;line-height:1.95;font-weight:800;color:#13264a}
.mobile-sentence-view .qlabel{margin:10px 0 8px;padding:6px 0;font-size:20px;line-height:1.5;font-weight:950;color:#13264a}
.mobile-sentence-view .qspeaker{margin:14px 0 6px;padding:0;font-size:21px;line-height:1.5;font-weight:950;color:#13264a}
.mobile-sentence-view .qnum{margin:14px 0 6px;font-size:20px;line-height:1.4;font-weight:950;color:#13264a}
.mobile-sentence-view .qnum.kana{display:inline-block;padding:2px 10px;border-radius:999px;background:#eef4ef;border:1px solid #d3c9b8;margin-bottom:8px}
.mobileq .source{font-size:16px;font-weight:900;margin-bottom:14px;line-height:1.6}
@media(max-width:480px){
  .mobile-sentence-view .qsent{font-size:21px;line-height:1.9}
  .mobile-sentence-view .qlabel{font-size:18px}
  .mobile-sentence-view .qspeaker,.mobile-sentence-view .qnum{font-size:19px}
}


/* layout-v21: iPhoneは完全に1問表示。問題直下に回答ボタン */
.study,.left,.right,.toolbar,.grid,.home,.hero,.stats,.command,.qcard{all:unset}
.mstudy.single-mode{max-width:820px;margin:0 auto;padding:14px 12px 34px;display:block}
.msearch{margin:4px 0 14px}.msearch .search{display:block;width:100%;border:1px solid #d3c9b8;border-radius:18px;padding:16px 18px;background:#fff;font-size:20px;font-weight:800;color:#13264a}
.mprogress{font-size:14px;letter-spacing:.18em;color:#b18a2b;font-weight:950;margin:2px 0 0}.mno{font-size:48px;line-height:1;margin:4px 0 12px;font-weight:950;color:#13264a}
.mqcard.only-one{display:block;background:#f8f5ef;border:1px solid #d3c9b8;border-radius:22px;padding:16px;margin:0 0 12px;box-shadow:0 10px 22px rgba(40,32,18,.05)}
.mchips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.mchip{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;border:1px solid #cfc6b7;background:#fbfaf6;font-size:13px;font-weight:900;color:#13264a}.mchip.easy{background:#e8f7ef;color:#096a4a}.mchip.sus{background:#fff1c7;color:#865b00}.mchip.bad{background:#ffe4e7;color:#a10d2c}.mchip.plain{background:#fbfaf6;color:#525a6b}
.mobileq .source{font-size:15px;font-weight:900;margin-bottom:12px;line-height:1.6}.mobileq .qtext{font-size:22px;line-height:1.9;font-weight:850;color:#13264a}.mobile-sentence-view .qsent{margin:0 0 11px;padding:0;font-size:22px;line-height:1.9;font-weight:850;color:#13264a}.mobile-sentence-view .qlabel{margin:10px 0 8px;font-size:18px;font-weight:950}.mobile-sentence-view .qspeaker{margin:12px 0 6px;font-size:19px;font-weight:950}.mobile-sentence-view .qnum{margin:12px 0 6px;font-size:19px;font-weight:950}
.manswer{display:block;background:#f8f5ef;border:1px solid #d3c9b8;border-radius:22px;padding:14px;margin:0 0 12px;box-shadow:0 10px 22px rgba(40,32,18,.05)}
.manswer .big{border:0;border-radius:18px;color:white;padding:18px 10px;font-size:26px;font-weight:950;cursor:pointer}.manswer .ok{background:#188a62}.manswer .ng{background:#bb183c}.manswer .choice{background:#188a62}.manswer .answer-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0}.manswer .multi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:10px}.manswer .submit{width:100%}
.inline-rank{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 12px}.inline-rank .rank{border:0;border-radius:16px;color:white;padding:16px 8px;font-size:20px;font-weight:950}.rank.easy{background:#159b70}.rank.sus{background:#dfa000}.rank.bad{background:#d51d3f}
.mnav{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 12px}.navbtn{border:1px solid #d3c9b8;background:#f8f5ef;border-radius:16px;padding:15px 14px;font-size:20px;font-weight:950;color:#13264a}
.mobilefb{background:#fbfaf6;border:2px dashed #d8cfbf;border-radius:18px;padding:16px;color:#6b7280;font-size:16px;line-height:1.7;min-height:72px;margin-bottom:12px}.mexplain{background:#f8f5ef;border:1px solid #d3c9b8;border-radius:18px;padding:14px;margin-bottom:14px}.mexplain summary{font-size:18px;font-weight:950;cursor:pointer;color:#13264a}.copyline{position:static;background:transparent;padding:8px 0 10px}.copy-btn{border-radius:14px;padding:11px 14px}.copyhint{display:block;font-size:12px;line-height:1.5;margin-top:6px;margin-left:0;color:#6b7280}.exp-body{max-height:none;overflow:visible;padding:0;font-size:15px;line-height:1.85}.exp-result{position:static;background:transparent;border-bottom:1px solid #ded6c9;padding:6px 0 10px;margin-bottom:10px}
.mobileMemoButtons{display:flex;gap:10px;margin-bottom:10px}.msmall{background:#fff;border-color:#d3c9b8;border-radius:14px;font-size:16px;padding:11px 16px;box-shadow:none}.msmall.active{background:#13264a;color:#fff;border-color:#13264a}.mmemobox{background:#f8f5ef;border:1px solid #d3c9b8;border-radius:18px;padding:14px;margin-bottom:18px}textarea{min-height:140px;border-color:#d3c9b8;border-radius:16px;font-size:17px;background:#fff}.memo-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.memo-actions .small-btn{border-radius:14px;padding:12px 8px;font-size:15px;background:#fff;box-shadow:none}
.bottomDock{display:none!important}
body{padding-bottom:0!important;background:#f4f1ea;color:#13264a}.topbar{height:94px;padding:16px 18px 12px;background:#f4f1ea;border-bottom:1px solid #d8cfbf;align-items:flex-end}.brand{font-size:14px;letter-spacing:.16em;color:#b18a2b;font-weight:950;margin-bottom:2px}.topbar h1{font-size:28px;line-height:1.1;margin:0 0 2px;font-weight:950}.home-btn{background:#f8f5ef;border-color:#cfc6b7;border-radius:18px;padding:12px 18px;font-size:18px;min-width:106px;color:#13264a;box-shadow:none}
@media(max-width:480px){.mno{font-size:42px}.mobileq .qtext,.mobile-sentence-view .qsent{font-size:21px;line-height:1.85}.manswer .big{font-size:24px}.topbar h1{font-size:25px}.home-btn{min-width:90px}}

/* single-v22: 回答ボタンの横幅バランス修正 */
.manswer{padding:16px!important;}
.manswer .answer-row{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:12px!important;margin:0!important;width:100%!important;}
.manswer .answer-row.one{grid-template-columns:1fr!important;}
.manswer .big{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;min-width:0!important;white-space:nowrap!important;text-align:center!important;line-height:1.1!important;}
.manswer .choice-grid{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:10px!important;width:100%!important;}
.manswer .choice-grid .big.choice{aspect-ratio:1/1!important;border-radius:18px!important;padding:0!important;font-size:24px!important;}
.manswer .multi-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:10px!important;}
.manswer .multi-grid .big.choice{aspect-ratio:1/1!important;border-radius:18px!important;padding:0!important;font-size:24px!important;}
@media(max-width:380px){.manswer .choice-grid,.manswer .multi-grid{gap:8px!important}.manswer .choice-grid .big.choice,.manswer .multi-grid .big.choice{font-size:22px!important;border-radius:16px!important}.manswer .big{font-size:22px!important}}
