
:root {
  --teal:#1699a3;
  --bg:#ececec;
  --card:#fff;
  --text:#111;
  --shadow:0 6px 18px rgba(0,0,0,.15);
  --ok:#1f9d62;
  --ok-bg:#e8f7f1;
  --ng:#d24a43;
  --ng-bg:#fdeeee;
}
* { box-sizing:border-box; -webkit-tap-highlight-color: transparent; }
html,body { margin:0; padding:0; height:100%; min-height:100%; overflow:hidden; background:var(--bg); color:var(--text); font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic","Meiryo",sans-serif; }
body { min-height:100vh; }
button { touch-action: manipulation; }
.app { max-width:430px; margin:0 auto; height:100vh; height:100dvh; min-height:0; background:linear-gradient(180deg,#f1f1f1 0%, #ebebeb 100%); position:relative; overflow-x:hidden; overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior-y:contain; scrollbar-width:none; -ms-overflow-style:none; }
.app::-webkit-scrollbar { width:0; height:0; display:none; }
.screen { display:none; min-height:100%; }
.screen.active { display:block; }
.hero {
  background:radial-gradient(circle at 30% 20%, rgba(255,255,255,.18), transparent 35%), var(--teal);
  color:#fff;
  padding:28px 22px 42px;
}
.hero-title { font-size:50px; line-height:1.02; font-weight:900; text-shadow:0 3px 8px rgba(0,0,0,.18); }
.home-buttons { padding:22px 18px 120px; display:flex; flex-direction:column; gap:18px; }
.big-btn {
  appearance:none; border:none; border-radius:14px; padding:22px 18px; color:#fff; font-size:22px; font-weight:900;
  text-align:left; box-shadow:var(--shadow); cursor:pointer;
}
.big-btn.teal { background:linear-gradient(180deg,#19aab4,#0f8a93); }
.big-btn.green { background:linear-gradient(180deg,#67c926,#3b9920); }
.big-btn.gray { background:linear-gradient(180deg,#7e7e7e,#2f2f2f); }
.big-btn small { display:block; font-size:13px; margin-top:4px; opacity:.95; }
.big-btn[disabled] { opacity:.55; cursor:default; filter:saturate(.65); }
.topbar {
  position:sticky; top:0; z-index:40; background:var(--teal); color:#fff; text-align:center;
  padding:44px 16px 16px; box-shadow:0 2px 8px rgba(0,0,0,.12);
}
.topbar-title { font-size:22px; font-weight:900; }
.topbar-sub { margin-top:4px; font-size:12px; font-weight:700; opacity:.96; }
.section-pad { padding:18px; }
.card {
  background:#fff; border-radius:18px; box-shadow:var(--shadow); padding:18px;
}
.card + .card { margin-top:16px; }
.card-title { font-size:18px; font-weight:900; margin-bottom:12px; }
.action-btn {
  appearance:none; border:none; border-radius:14px; padding:14px 16px; font-size:17px; font-weight:900; cursor:pointer;
  box-shadow:var(--shadow); width:100%; margin-top:10px;
}
.action-btn.teal { background:var(--teal); color:#fff; }
.action-btn.gray { background:#444; color:#fff; }
.score-box {
  background:#fff; border-radius:18px; box-shadow:var(--shadow); padding:18px; text-align:center;
}
.score-big { font-size:36px; font-weight:900; margin:8px 0; }
.score-comment { font-size:24px; font-weight:900; margin-top:8px; }
.quiz-floating {
  position:fixed; right:12px; top:max(12px, env(safe-area-inset-top)); z-index:60;
  display:flex; flex-direction:column; gap:8px; align-items:flex-end;
}
.counter {
  background:rgba(255,255,255,.94); border-radius:999px; box-shadow:var(--shadow); padding:8px 12px; font-size:13px; font-weight:900;
}
.nav-row { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.nav-btn {
  appearance:none; border:none; background:rgba(255,255,255,.96); color:#111; border-radius:999px;
  box-shadow:var(--shadow); padding:10px 14px; font-size:14px; font-weight:900; cursor:pointer;
}
.nav-btn.quiz-return { color:#2d5a70; border:1px solid rgba(45,90,112,.18); }
.nav-btn:disabled { opacity:.45; cursor:default; }
/* ===== fixed page navigation ===== */
.fixed-page-nav {
  position: fixed;
  top: max(10px, calc(env(safe-area-inset-top) + 10px));
  right: max(10px, calc(env(safe-area-inset-right) + 10px));
  z-index: 78;
  display: none;
  gap: 6px;
  padding: 5px;
  border: 1px solid rgba(45,108,123,.16);
  border-radius: 999px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 10px 28px rgba(17,37,56,.16);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
.fixed-page-nav.is-visible { display: flex; }
.fixed-page-nav button {
  appearance: none;
  border: none;
  min-width: 58px;
  min-height: 42px;
  padding: 0 13px;
  border-radius: 999px;
  background: linear-gradient(180deg,#ffffff,#f2f7fa);
  color: #1d4b5a;
  font-size: 14px;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 2px 8px rgba(17,37,56,.10);
  cursor: pointer;
}
.fixed-page-nav button[data-action="forward"] {
  background: linear-gradient(180deg,#2e8db4,#17679f);
  color: #fff;
}
.fixed-page-nav button:disabled {
  opacity: .42;
  cursor: default;
  box-shadow: none;
}
.fixed-page-nav.modal-active { z-index: 92; }
@media (max-width: 430px) {
  .fixed-page-nav {
    right: max(8px, calc(env(safe-area-inset-right) + 8px));
    gap: 4px;
    padding: 4px;
  }
  .fixed-page-nav button {
    min-width: 52px;
    min-height: 40px;
    padding: 0 10px;
    font-size: 13px;
  }
}
.quiz-header { padding:14px 16px 10px; background:var(--teal); color:#fff; }
.quiz-title { font-size:24px; font-weight:900; text-align:center; }
.quiz-sub { font-size:12px; font-weight:700; text-align:center; margin-top:4px; opacity:.96; }
.quiz-body { padding-top:84px; padding-bottom:230px; }
.noteText { font-size:14px; color:#444; font-weight:700; }
.figureWrap.fullpage { padding:10px; }
.figureWrap.fullpage img { width:100% !important; height:auto !important; max-width:100% !important; display:block; }

.qText { padding:18px 16px 14px; font-size:24px; line-height:1.72; letter-spacing:.01em; }
.stmt { margin-top:10px; padding-left:1.35em; text-indent:-1.35em; font-size:20px; line-height:1.72; }
.line { height:6px; background:var(--teal); margin:0 14px; }
.figureWrap { margin:12px 10px 14px; background:#fff; border-radius:16px; box-shadow:var(--shadow); padding:12px 10px 12px; overflow:visible; }
.figureHead { font-size:18px; font-weight:900; color:#222; margin:0 2px 10px; }
.figureSub { font-size:13px; color:#666; font-weight:700; margin:0 2px 10px; line-height:1.6; }
.figureStack { display:grid; gap:12px; }
.figurePanel { background:#fff; border:1px solid #ececec; border-radius:14px; padding:8px 6px 10px; }
.figurePanelTitle { font-size:14px; font-weight:900; color:#444; margin:0 2px 8px; }
.figureWrap svg,.figureWrap img { display:block; width:100% !important; max-width:100% !important; height:auto !important; max-height:none !important; object-fit:contain; margin:0 auto; }
.figureWrap > * { box-sizing:border-box; }
.figureWrap table { width:100% !important; border-collapse:collapse; }
.figureWrap img { vertical-align:top; }
.singlePlate img{width:100% !important; height:auto !important; display:block; margin:0 auto;}
.r2tableScroll{overflow-x:auto; overflow-y:visible; padding-bottom:2px;}
.r2tableScroll img{display:block; width:100% !important; min-width:0 !important; max-width:100% !important; height:auto !important; margin:0 auto;}
@media (min-width: 840px){ .r2tableScroll img{width:100% !important; min-width:0 !important; max-width:100% !important;} }

.inlineChoices { margin:14px 0 0; display:flex; flex-direction:column; gap:10px; }
.inlineChoice {
  background:#fff; border-radius:14px; box-shadow:var(--shadow); padding:12px 14px;
  font-size:18px; line-height:1.55; font-weight:700;
}
.inlineChoice .formulaWrap { overflow-x:auto; }
.choice.compact { width:64px; text-align:center; padding:10px 0; font-size:18px; line-height:1; }
.choice.compact span { display:block; }
.dockRow.compact { grid-template-columns:64px 40px; justify-content:start; }

.inlineChoice .matrixBlock, .inlineChoice [style*="white-space:pre"] {
  overflow-x:auto;
  font-size:16px !important;
  line-height:1.3 !important;
}
.inlineChoice div { max-width:100%; }
.qText + .stmt{margin-top:8px;}
.qText br{display:block;margin-top:.6em;content:"";}
.qText .source-table-scroll{
  display:block;
  margin:12px 0 4px;
  max-width:100%;
  overflow:visible;
}
.qText .source-table-image{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  margin:0;
  border-radius:0;
  box-shadow:none;
}

@media (max-width:430px){ .qText{font-size:25px; line-height:1.78;} .stmt{font-size:21px;} .figureHead{font-size:19px;} }
.miniBox { margin:12px 14px; background:#fff; border-radius:13px; box-shadow:var(--shadow); padding:12px 14px; font-size:15px; line-height:1.65; }
.miniBox .tip { margin-top:6px; font-size:12px; color:#555; font-weight:700; }
.feedbackArea { margin:0 14px 12px; min-height:58px; }
.feedback {
  display:none; padding:13px 14px; border-radius:16px; color:#fff; font-size:17px; font-weight:900; text-align:center;
  box-shadow:0 10px 20px rgba(0,0,0,.14);
}
.feedback.show { display:block; }
.feedback.ok { background:linear-gradient(180deg,#24b06a,#198f57); }
.feedback.ng { background:linear-gradient(180deg,#e95b53,#cc433b); }
.topPillRow { display:flex; gap:8px; padding:0 14px 10px; flex-wrap:wrap; }
.pill {
  appearance:none; border:3px solid rgba(22,153,163,.35); border-radius:999px; color:#1c4e52; padding:8px 14px;
  font-size:15px; font-weight:900; background:#fff; cursor:pointer;
}
.answerDock {
  position:fixed; left:50%; transform:translateX(-50%); bottom:0; width:min(430px,100%);
  background:rgba(239,239,239,.99); border-top:1px solid rgba(0,0,0,.08); box-shadow:0 -4px 12px rgba(0,0,0,.10);
  padding:6px 7px calc(6px + env(safe-area-inset-bottom)); z-index:40;
}
.dockTitle { margin:0 0 6px 4px; font-size:12px; font-weight:900; color:#555; }
.dockList { display:flex; flex-direction:column; gap:5px; }
.dockRow { display:grid; grid-template-columns:1fr 40px; gap:5px; align-items:start; }
.choice {
  background:#fff; border-radius:13px; box-shadow:var(--shadow); padding:8px 11px; font-size:16px; font-weight:900;
  line-height:1.2; cursor:pointer;
}
.choice small { display:block; margin-top:2px; font-size:10px; color:#666; font-weight:700; }
.choice img { display:block; width:100%; height:auto; }
.choice.correct { background:var(--ok-bg); color:var(--ok); }
.choice.wrong { background:var(--ng-bg); color:var(--ng); }
.zoomBtn {
  display:grid; place-items:center; width:40px; height:40px; background:#fff; border-radius:11px;
  box-shadow:var(--shadow); color:var(--teal); font-size:22px; font-weight:900; cursor:pointer;
}
.modal {
  position:fixed; inset:0; background:rgba(0,0,0,.42); display:none; align-items:center; justify-content:center; padding:12px; z-index:80;
}
.modal.show { display:flex; }
.sheet {
  width:min(410px, 100%); max-height:82vh; overflow:auto; background:#f8f8f8; border-radius:20px;
  box-shadow:0 20px 40px rgba(0,0,0,.26); padding:16px 16px 18px;
}
.sheetTop { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.sheetTitle { font-size:22px; font-weight:900; }
.closeBtn {
  appearance:none; border:none; color:#fff; background:var(--teal); border-radius:12px; padding:8px 12px; font-size:14px; font-weight:900; cursor:pointer;
}
.tag { display:inline-block; padding:4px 10px; border-radius:999px; color:#fff; font-size:12px; font-weight:900; margin-bottom:10px; }
.tag.ok { background:#1f9d62; } .tag.ng { background:#d24a43; } .tag.memo { background:#666; }
.block { background:#fff; border-radius:14px; box-shadow:var(--shadow); padding:12px 13px; margin-bottom:10px; }
.blockTitle { font-size:14px; font-weight:900; color:#666; margin-bottom:6px; }
.block p { margin:0; font-size:15px; line-height:1.7; }
.bullet { margin:0; padding-left:1.1em; }
.bullet li { margin:0 0 8px 0; font-size:15px; line-height:1.7; }
.formula { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; background:#f3f3f3; border-radius:10px; padding:8px 10px; font-size:14px; line-height:1.6; }
.blankBox {
  display:inline-flex; align-items:center; justify-content:center; min-width:2.15em; min-height:1.7em;
  padding:0 0.24em; margin:0 0.10em; border:2.5px solid #2f4f4f; border-radius:7px;
  background:#fff; box-shadow:0 1px 0 rgba(0,0,0,.05); font-weight:900; font-size:0.92em;
  line-height:1; vertical-align:middle; white-space:nowrap; letter-spacing:0;
}
.qText.blankQuestionMode { line-height:1.84; }
.qText.blankQuestionMode .stmt { line-height:1.84; }
.qText.blankQuestionMode .inlineChoice small { display:inline-flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:6px; }

.jump-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  margin-top:12px;
}
.jump-btn{
  appearance:none;
  border:none;
  background:#f5f5f5;
  color:#111;
  border-radius:12px;
  box-shadow:var(--shadow);
  padding:12px 0;
  font-size:16px;
  font-weight:900;
  cursor:pointer;
}
.jump-btn.current{background:var(--teal); color:#fff;}
.jump-btn.unanswered{background:#f5f5f5; color:#111;}
.jump-btn.correct{background:#e8f7f1; color:#1f9d62;}
.jump-btn.wrong{background:#fdeeee; color:#d24a43;}
.score-list{
  margin-top:14px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.score-row{
  background:#fff;
  border-radius:12px;
  box-shadow:var(--shadow);
  padding:12px 14px;
  font-size:15px;
  line-height:1.7;
}
.small-note{
  margin-top:10px;
  font-size:13px;
  color:#666;
  line-height:1.7;
}

.mode-badge{
  display:inline-block;
  padding:4px 10px;
  border-radius:999px;
  background:#fff;
  color:#1c4e52;
  border:2px solid rgba(22,153,163,.25);
  font-size:12px;
  font-weight:900;
  margin-left:8px;
}
.numbers{
  font-weight:900;
  letter-spacing:.02em;
}



.revisionNote{
  margin:0 0 10px 0;
  font-size:11px;
  line-height:1.5;
  color:#777;
  font-weight:700;
}


/* ===== UI compact refresh ===== */
:root{
  --teal:#2d6c7b;
  --bg:#f3f5f7;
  --shadow:0 10px 28px rgba(17,37,56,.10);
  --ok:#198a58;
  --ok-bg:#e7f6ee;
  --ng:#cb4a45;
  --ng-bg:#fcecec;
}
html,body{background:var(--bg);}
.app{background:linear-gradient(180deg,#f7f9fb 0%, #eef2f5 100%);}
.hero{
  padding:22px 18px 30px;
  background:radial-gradient(circle at 25% 20%, rgba(255,255,255,.16), transparent 34%), linear-gradient(135deg,#3a7d91 0%, #2d6c7b 100%);
}
.hero-title{font-size:42px; letter-spacing:.01em;}
.home-buttons{padding:16px 14px 56px; gap:12px;}
.big-btn{
  position:relative;
  border-radius:18px;
  padding:18px 16px;
  font-size:20px;
  box-shadow:0 10px 26px rgba(17,37,56,.12);
}
.big-btn.teal{background:linear-gradient(180deg,#448ba0,#2d6c7b);}
.big-btn.green{background:linear-gradient(180deg,#4f9b83,#2d6f5b);}
.big-btn.gray{background:linear-gradient(180deg,#54626a,#34424a);}
.big-btn.orange{background:linear-gradient(180deg,#f0a446,#d97a18);}
.big-btn small{font-size:12px; margin-top:6px; color:rgba(255,255,255,.88); opacity:1;}
.topbar{padding:36px 14px 12px; background:linear-gradient(135deg,#3a7d91 0%, #2d6c7b 100%);}
.topbar-title{font-size:20px;}
.topbar-sub{font-size:11px; margin-top:3px;}
.section-pad{padding:12px;}
.card{padding:14px; border-radius:16px;}
.card + .card{margin-top:12px;}
.card-title{font-size:16px; margin-bottom:10px;}
.action-btn{padding:12px 14px; font-size:15px; border-radius:14px; margin-top:8px;}
.score-box{padding:14px; border-radius:16px;}
.score-big{font-size:31px; margin:6px 0;}
.score-comment{font-size:21px; margin-top:6px;}
.quiz-floating{right:10px; top:max(10px, env(safe-area-inset-top)); gap:6px;}
.counter{padding:7px 10px; font-size:12px;}
.nav-row{gap:6px;}
.nav-btn{padding:8px 11px; font-size:13px;}
.quiz-header{padding:11px 14px 8px;}
.quiz-title{font-size:20px;}
.quiz-sub{font-size:11px; margin-top:3px;}
.quiz-body{padding-top:70px; padding-bottom:116px;}
.qText{padding:12px 12px 10px; font-size:20px; line-height:1.56; letter-spacing:0;}
.stmt{margin-top:7px; padding-left:1.15em; text-indent:-1.15em; font-size:17px; line-height:1.6;}
.line{height:4px; margin:0 12px;}
.figureWrap{margin:10px 8px 12px; padding:10px 8px; border-radius:14px;}
.figureWrap.fullpage{padding:8px;}
.figureHead{font-size:16px; margin:0 2px 8px;}
.figureSub{font-size:12px; margin:0 2px 8px; line-height:1.5;}
.figureStack{gap:10px;}
.figurePanel{border-radius:12px; padding:7px 5px 8px;}
.figurePanelTitle{font-size:13px; margin:0 2px 6px;}
.inlineChoices{margin:10px 0 0; gap:8px;}
.inlineChoice{padding:10px 12px; font-size:16px; line-height:1.48; border-radius:12px;}
.inlineChoice .matrixBlock, .inlineChoice [style*="white-space:pre"]{font-size:14px !important; line-height:1.25 !important;}
@media (max-width:430px){ .qText{font-size:20px; line-height:1.58;} .stmt{font-size:17px; line-height:1.62;} .figureHead{font-size:16px;} }
.miniBox{display:none;}
.feedbackArea{margin:0 12px 8px; min-height:44px;}
.feedback{padding:10px 12px; border-radius:14px; font-size:15px;}
.topPillRow{gap:6px; padding:0 12px 8px;}
.pill{padding:6px 12px; font-size:13px; border-width:2px;}
.answerDock{
  background:rgba(243,245,247,.96);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  padding:4px 6px calc(4px + env(safe-area-inset-bottom));
}
.dockTitle{margin:0 0 4px 2px; font-size:11px;}
.dockList{display:grid; gap:6px;}
.dockRow.compact{
  display:block;
  position:relative;
  min-height:44px;
}
.dockList.choiceCount1{grid-template-columns:1fr;}
.dockList.choiceCount2{grid-template-columns:repeat(2,minmax(0,1fr));}
.dockList.choiceCount3{grid-template-columns:repeat(3,minmax(0,1fr));}
.dockList.choiceCount4{grid-template-columns:repeat(2,minmax(0,1fr));}
.dockList.choiceCount5{grid-template-columns:repeat(6,minmax(0,1fr));}
.dockList.choiceCount5 .dockCell{grid-column:span 2;}
.dockList.choiceCount5 .dockCell:nth-child(-n+2){grid-column:span 3;}
.choice.compact{
  width:100%;
  min-height:44px;
  border-radius:13px;
  padding:10px 0 9px;
  font-size:15px;
  box-shadow:0 6px 16px rgba(17,37,56,.10);
}
.choice.compact span{display:block; line-height:1;}
.zoomBtn{
  position:absolute;
  right:5px;
  bottom:5px;
  width:18px;
  height:18px;
  font-size:10px;
  border-radius:999px;
  box-shadow:none;
  background:#eef3f6;
  border:1px solid rgba(45,108,123,.18);
}
.sheet{width:min(400px,100%); border-radius:18px; padding:14px 14px 16px;}
.sheetTitle{font-size:20px;}
.closeBtn{padding:7px 11px; font-size:13px; border-radius:10px;}
.block{padding:11px 12px; margin-bottom:8px; border-radius:12px;}
.blockTitle{font-size:13px; margin-bottom:5px;}
.block p{font-size:14px; line-height:1.65;}
.bullet li{font-size:14px; line-height:1.65; margin:0 0 6px 0;}
.formula{padding:7px 9px; font-size:13px; line-height:1.55;}
.jump-grid{gap:6px; margin-top:10px;}
.jump-btn{padding:10px 0; font-size:14px; border-radius:10px;}
.score-list{margin-top:10px; gap:6px;}
.score-row{padding:10px 12px; font-size:14px; line-height:1.55;}
.small-note{margin-top:8px; font-size:12px; line-height:1.55;}
.mode-badge{padding:3px 9px; font-size:11px; margin-left:6px;}
.revisionNote{font-size:10px; line-height:1.45; margin:0 0 8px 0;}

#pastMenuScreen .section-pad,
#yearMenuScreen .section-pad,
#scoreYearScreen .section-pad{
  display:grid;
  gap:10px;
}
#yearMenuScreen .big-btn,
#scoreYearScreen .big-btn{
  background:linear-gradient(180deg,#ffffff,#f7fafb);
  color:#1b333d;
  border:1px solid rgba(45,108,123,.15);
  padding:14px 16px 14px 18px;
  font-size:18px;
  box-shadow:0 10px 24px rgba(17,37,56,.08);
}
#yearMenuScreen .big-btn::before,
#scoreYearScreen .big-btn::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:6px;
  border-radius:18px 0 0 18px;
  background:linear-gradient(180deg,#62a6b6,#2d6c7b);
}
#yearMenuScreen .big-btn small,
#scoreYearScreen .big-btn small{
  color:#687c84;
}
#yearMenuScreen .big-btn.gray,
#scoreYearScreen .big-btn.gray{
  color:#fff;
  background:linear-gradient(180deg,#46555d,#313e46);
  border:none;
}
#yearMenuScreen .big-btn.gray::before,
#scoreYearScreen .big-btn.gray::before{
  background:linear-gradient(180deg,#9cb0b9,#6a7d86);
}
#yearMenuScreen .big-btn.gray small,
#scoreYearScreen .big-btn.gray small{
  color:rgba(255,255,255,.82);
}
#scoreScreen .topbar,
#yearMenuScreen .topbar,
#scoreYearScreen .topbar{
  background:linear-gradient(135deg,#386f82 0%, #2d6c7b 100%);
}


/* ===== UI polish v2 ===== */
:root[data-font-scale="standard"] .hero-title{font-size:48px;}
:root[data-font-scale="standard"] .topbar-title{font-size:22px;}
:root[data-font-scale="standard"] .topbar-sub{font-size:12px;}
:root[data-font-scale="standard"] .big-btn{font-size:22px;padding:20px 18px;}
:root[data-font-scale="standard"] .big-btn small{font-size:13px;}
:root[data-font-scale="standard"] .card-title{font-size:18px;}
:root[data-font-scale="standard"] .action-btn{font-size:17px;padding:14px 16px;}
:root[data-font-scale="standard"] .qText{font-size:22px;line-height:1.64;}
:root[data-font-scale="standard"] .stmt{font-size:18px;line-height:1.68;}
:root[data-font-scale="standard"] .inlineChoice{font-size:17px;line-height:1.58;}
:root[data-font-scale="standard"] .figureHead{font-size:17px;}
:root[data-font-scale="standard"] .choice.compact{min-height:48px;font-size:16px;}
:root[data-font-scale="standard"] .nav-btn{font-size:15px;padding:10px 13px;}
:root[data-font-scale="standard"] .feedback{font-size:16px;padding:11px 13px;}
:root[data-font-scale="standard"] .block p,
:root[data-font-scale="standard"] .bullet li,
:root[data-font-scale="standard"] .score-row,
:root[data-font-scale="standard"] .inlineHelp,
:root[data-font-scale="standard"] .small-note,
:root[data-font-scale="standard"] .legendItem{font-size:15px;line-height:1.72;}
:root[data-font-scale="standard"] .formula{font-size:14px;line-height:1.65;}
:root[data-font-scale="compact"] .hero-title{font-size:42px;}
:root[data-font-scale="compact"] .topbar-title{font-size:20px;}
:root[data-font-scale="compact"] .topbar-sub{font-size:11px;}
:root[data-font-scale="compact"] .big-btn{font-size:20px;padding:18px 16px;}
:root[data-font-scale="compact"] .big-btn small{font-size:12px;}
:root[data-font-scale="compact"] .card-title{font-size:16px;}
:root[data-font-scale="compact"] .action-btn{font-size:15px;padding:12px 14px;}
:root[data-font-scale="compact"] .qText{font-size:19px;line-height:1.56;}
:root[data-font-scale="compact"] .stmt{font-size:16px;line-height:1.58;}
:root[data-font-scale="compact"] .inlineChoice{font-size:15px;line-height:1.48;}
:root[data-font-scale="compact"] .figureHead{font-size:15px;}
:root[data-font-scale="compact"] .choice.compact{min-height:42px;font-size:14px;}
:root[data-font-scale="compact"] .nav-btn{font-size:13px;padding:8px 11px;}
:root[data-font-scale="compact"] .topPillRow{padding:0 10px 6px;}
:root[data-font-scale="compact"] .feedback{font-size:14px;}
:root[data-font-scale="compact"] .quiz-body{padding-top:76px;padding-bottom:108px;}
:root[data-font-scale="compact"] .figureWrap{margin:8px 8px 10px;padding:8px 7px;}
:root[data-font-scale="compact"] .questionMeta{gap:6px;}
:root[data-font-scale="compact"] .block p,
:root[data-font-scale="compact"] .bullet li,
:root[data-font-scale="compact"] .score-row,
:root[data-font-scale="compact"] .inlineHelp,
:root[data-font-scale="compact"] .small-note,
:root[data-font-scale="compact"] .legendItem{font-size:14px;line-height:1.65;}
:root[data-font-scale="compact"] .formula{font-size:13px;line-height:1.55;}
:root[data-font-scale="mini"] .hero-title{font-size:36px;}
:root[data-font-scale="mini"] .topbar-title{font-size:18px;}
:root[data-font-scale="mini"] .topbar-sub{font-size:10px;}
:root[data-font-scale="mini"] .big-btn{font-size:18px;padding:16px 14px;}
:root[data-font-scale="mini"] .big-btn small{font-size:11px;}
:root[data-font-scale="mini"] .card-title{font-size:15px;}
:root[data-font-scale="mini"] .action-btn{font-size:14px;padding:11px 13px;}
:root[data-font-scale="mini"] .qText{font-size:16px;line-height:1.46;}
:root[data-font-scale="mini"] .stmt{font-size:14px;line-height:1.48;}
:root[data-font-scale="mini"] .inlineChoice{font-size:13px;line-height:1.38;padding:8px 10px;}
:root[data-font-scale="mini"] .figureHead{font-size:14px;}
:root[data-font-scale="mini"] .choice.compact{min-height:38px;font-size:13px;padding:8px 0;}
:root[data-font-scale="mini"] .nav-btn{font-size:12px;padding:7px 10px;}
:root[data-font-scale="mini"] .quiz-body{padding-top:78px;padding-bottom:104px;}
:root[data-font-scale="mini"] .figureWrap{margin:8px 7px 9px;padding:7px 6px;}
:root[data-font-scale="mini"] .feedback{font-size:13px;padding:9px 10px;}
:root[data-font-scale="mini"] .pill{font-size:12px;padding:5px 10px;}
:root[data-font-scale="mini"] .block p,
:root[data-font-scale="mini"] .bullet li,
:root[data-font-scale="mini"] .score-row,
:root[data-font-scale="mini"] .inlineHelp,
:root[data-font-scale="mini"] .small-note,
:root[data-font-scale="mini"] .legendItem{font-size:13px;line-height:1.56;}
:root[data-font-scale="mini"] .formula{font-size:12px;line-height:1.48;}
.home-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.home-card{min-height:96px;padding:16px 14px 14px;display:flex;flex-direction:column;justify-content:space-between;}
.big-btn.soft{background:linear-gradient(180deg,#fefefe,#eef3f6);color:#1f3440;border:1px solid rgba(45,108,123,.15);}
.big-btn.soft small{color:#6c7b82;}
.big-btn,.action-btn,.nav-btn,.pill,.choice,.jump-btn,.setting-chip{transition:transform .12s ease, box-shadow .12s ease, filter .12s ease, background .12s ease;}
.big-btn:active,.action-btn:active,.nav-btn:active,.pill:active,.choice:active,.jump-btn:active,.setting-chip:active{transform:translateY(1px) scale(.99);filter:saturate(.98);}
#pastMenuScreen .section-pad,#yearMenuScreen .section-pad,#scoreYearScreen .section-pad{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
#pastMenuScreen .big-btn:last-child,#yearMenuScreen .big-btn:last-child,#scoreYearScreen .big-btn:last-child{grid-column:1/-1;}
#yearMenuScreen .big-btn,#scoreYearScreen .big-btn,#pastMenuScreen .big-btn{min-height:82px;display:flex;flex-direction:column;justify-content:center;}
#yearMenuScreen .big-btn small,#scoreYearScreen .big-btn small,#pastMenuScreen .big-btn small{line-height:1.35;}
.quiz-header{padding-bottom:10px;}
.questionMeta{display:flex;flex-direction:column;gap:7px;margin-top:8px;}
.progressTrack{width:100%;height:8px;background:rgba(255,255,255,.24);border-radius:999px;overflow:hidden;}
.progressFill{height:100%;width:0;background:linear-gradient(90deg,#c8f2ff,#ffffff);border-radius:999px;transition:width .18s ease;}
.statusRow{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.statusChip{display:inline-flex;align-items:center;justify-content:center;padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22);font-size:11px;font-weight:900;color:#fff;}
.statusChip.ok{background:rgba(25,138,88,.18);border-color:rgba(200,255,226,.4);}
.statusChip.ng{background:rgba(203,74,69,.2);border-color:rgba(255,217,216,.4);}
.statusChip.pending{background:rgba(255,255,255,.14);}
.statusChip.ghost{background:rgba(255,255,255,.12);}
.statusChip.revision{background:rgba(255,232,171,.18);border-color:rgba(255,241,203,.4);cursor:pointer;}
.feedbackArea{display:flex;flex-direction:column;gap:8px;}
.nextAction{display:none;gap:6px;flex-wrap:wrap;align-items:center;margin:0 12px 4px;}
.nextAction.show{display:flex;}
.guide-btn{appearance:none;border:none;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:900;background:#fff;color:#204351;box-shadow:0 8px 18px rgba(17,37,56,.10);cursor:pointer;}
.guide-btn.primary{background:linear-gradient(180deg,#3f879b,#2d6c7b);color:#fff;}
.guide-text{font-size:12px;color:#53646d;font-weight:800;}
.answerDock{padding-top:4px;}
.dockList{gap:5px;}
.choice.compact{min-height:40px;border-radius:12px;}
.zoomBtn{right:4px;bottom:4px;width:17px;height:17px;font-size:10px;}
.jumpLegend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px;}
.legendItem{background:#fff;border-radius:10px;padding:8px 10px;font-size:12px;font-weight:900;color:#44555c;box-shadow:0 8px 18px rgba(17,37,56,.07);}
.jump-btn{display:flex;align-items:center;justify-content:space-between;padding:10px 10px 10px 12px;text-align:left;}
.jump-num{font-size:14px;font-weight:900;}
.jump-mark{font-size:12px;font-weight:900;opacity:.9;}
.jump-btn.current .jump-mark{opacity:1;}
.score-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.metric-label{font-size:14px;font-weight:900;}
.score-list.compact{margin-top:12px;}
.score-row strong{font-weight:900;}
.settingsRow{display:flex;gap:8px;flex-wrap:wrap;}
.setting-chip{appearance:none;border:none;border-radius:999px;padding:10px 14px;background:#eef3f6;color:#21414f;font-size:14px;font-weight:900;box-shadow:0 8px 18px rgba(17,37,56,.08);cursor:pointer;}
.setting-chip.active{background:linear-gradient(180deg,#3f879b,#2d6c7b);color:#fff;}
.inlineHelp{font-size:13px;line-height:1.65;color:#5a6b73;}
#settingsScreen .section-pad{display:grid;gap:12px;}
@media (max-width:430px){
  .home-buttons{grid-template-columns:repeat(2,minmax(0,1fr));}
  #pastMenuScreen .section-pad,#yearMenuScreen .section-pad,#scoreYearScreen .section-pad{grid-template-columns:repeat(2,minmax(0,1fr));}
  .year-tools-row{grid-template-columns:1fr;}
  .heatmap-row{grid-template-columns:58px repeat(5,minmax(42px,1fr));gap:4px;}
  .heatmap-head{font-size:9px;}
  .heatmap-cell{font-size:10px;padding:5px 2px;}
}


.home-wide{grid-column:1/-1;}
.home-progress-card{padding:16px 14px;border-radius:18px;}
.home-progress-title{font-size:16px;font-weight:900;margin-bottom:10px;}
.home-progress-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.home-progress-item{background:#f7fafc;border-radius:12px;padding:10px 12px;box-shadow:0 6px 16px rgba(17,37,56,.06);}
.home-progress-item b{display:block;font-size:12px;color:#5b6c74;margin-bottom:4px;}
.home-progress-item span{font-size:16px;font-weight:900;color:#1d3944;line-height:1.35;}
#categoryScreen .section-pad,#calcCategoryScreen .section-pad{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
#categoryScreen .big-btn:last-child,#categoryScreen .small-note,#calcCategoryScreen .big-btn:last-child,#calcCategoryScreen .small-note{grid-column:1/-1;}
#categoryScreen .big-btn,#calcCategoryScreen .big-btn{min-height:94px;display:flex;flex-direction:column;justify-content:center;}
.jumpFilters,.explainJumpRow{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 12px;}
.jump-filter-btn,.explain-jump-btn{appearance:none;border:none;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:900;background:#eef3f6;color:#21414f;box-shadow:0 8px 18px rgba(17,37,56,.08);cursor:pointer;}
.jump-filter-btn.active,.explain-jump-btn.active{background:linear-gradient(180deg,#3f879b,#2d6c7b);color:#fff;}
.jump-btn.review{background:#fff7df;color:#9a6a00;}
.jump-year-section{margin-bottom:12px;}
.jump-year-title{font-size:13px;font-weight:900;color:#4d616a;margin:4px 2px 8px;}
.jump-year-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;}
.jump-context{margin:2px 0 10px;font-size:13px;font-weight:900;color:#4d616a;line-height:1.5;}

.legendItem.review{background:#fff7df;color:#8a6100;}
.hl-wrong{color:#cb4a45;font-weight:900;}
.hl-correct{color:#1d7a56;font-weight:900;}
.hl-formula{color:#2d6c7b;font-weight:900;}
.hl-key{color:#d47b00;font-weight:900;}
.wrong-keyword{color:#cb4a45;font-weight:900;}
.correct-keyword{color:#1d7a56;font-weight:900;}
.important-keyword{color:#d47b00;font-weight:900;}
.formula-keyword{color:#2d6c7b;font-weight:900;}
.answer-keyword{color:#1d3f57;font-weight:900;}
.term-actual{color:#1f5f99;font-weight:900;}
.term-target{color:#b55312;font-weight:900;}
.math-chip{
  display:inline-block;
  max-width:100%;
  padding:2px 8px;
  margin:0 3px 2px;
  border-radius:999px;
  background:#e6f6ff;
  border:1px solid #9ed8f5;
  color:#0b3a5b;
  font-weight:800;
  line-height:1.55;
  white-space:nowrap;
  vertical-align:baseline;
  overflow:visible;
}
.hero-title.current-law-title{font-size:42px;line-height:1.08;letter-spacing:0;}
.hero-baseline{margin-top:14px;font-size:13px;line-height:1.65;font-weight:800;color:rgba(255,255,255,.95);}
.revision-source-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;}
.revision-source-link{display:inline-flex;align-items:center;min-height:32px;padding:6px 10px;border-radius:6px;background:#eef7fb;border:1px solid #9ecbdc;color:#174d66;font-size:12px;font-weight:800;text-decoration:none;}
.revision-source-link:focus-visible{outline:3px solid rgba(45,108,123,.25);outline-offset:2px;}
.revision-answer-change{display:inline-block;margin-top:8px;padding:4px 8px;border-radius:6px;background:#fff1ed;border:1px solid #e4a797;color:#873d2c;font-size:12px;font-weight:900;}
.revisionCaution{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin:0 0 14px;
  padding:10px 12px;
  border:1px solid #ddb16d;
  border-left:4px solid #b86d22;
  border-radius:6px;
  background:#fff8e8;
  color:#563814;
  font-size:13px;
  font-weight:800;
  line-height:1.65;
}
.revisionCautionLabel{
  flex:0 0 auto;
  color:#8d4c10;
  font-weight:900;
}
.math-chip.long{
  display:block;
  width:fit-content;
  max-width:100%;
  padding:3px 8px;
  margin:6px 0;
  border-radius:12px;
  overflow-x:auto;
  white-space:nowrap;
  -webkit-overflow-scrolling:touch;
}
#modalBody .math-chip{
  font-size:1em;
}
#modalBody .choice-explain-list{
  display:block;
  margin-top:6px;
}
#modalBody .choice-explain-item{
  display:block;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  line-height:1.7;
}
#modalBody .choice-explain-item + .choice-explain-item{
  margin-top:.35em;
}
#modalBody .choice-explain-item.is-wrong{
  background:transparent;
}
#modalBody .choice-explain-item.is-correct{
  background:transparent;
}
#modalBody .choice-explain-item .choice-marker{
  display:inline;
  min-width:0;
  margin-right:.38em;
  padding:0;
  border-radius:0;
  background:transparent;
  color:#1d3f57;
  font-weight:900;
  white-space:nowrap;
}
#modalBody .choice-explain-conclusion{
  margin:12px 0 0;
  padding-top:10px;
  border-top:1px solid #d7e1e7;
  font-weight:800;
  line-height:1.75;
}
#modalBody .combo-explain{
  display:block;
}
#modalBody .combo-answer{
  display:block;
  margin:0 0 10px;
  color:#1d3f57;
  font-weight:900;
}
#modalBody .combo-row{
  display:grid;
  grid-template-columns:34px 1fr;
  gap:8px;
  margin:8px 0;
  padding:10px;
  border:1px solid rgba(45,108,123,.18);
  border-radius:10px;
  background:#fff;
}
#modalBody .combo-mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:999px;
  background:#e6f6ff;
  border:1px solid #9ed8f5;
  color:#0b3a5b;
  font-weight:900;
  line-height:1;
}
#modalBody .combo-text{
  min-width:0;
  line-height:1.65;
}
#modalBody .combo-term{
  color:#1d7a56;
  font-weight:900;
}
#modalBody .combo-wrong{
  color:#cb4a45;
  font-weight:900;
}
#modalBody .combo-result{
  display:block;
  margin:10px 0 0;
  padding:9px 10px;
  border-radius:10px;
  background:#fff8ed;
  border:1px solid rgba(212,123,0,.24);
  font-weight:800;
}
#modalBody .explainBlock{
  background:#fff;
  border:1px solid rgba(45,108,123,.10);
  border-radius:16px;
  padding:12px;
  box-shadow:0 8px 20px rgba(17,37,56,.08);
}
#modalBody .explainBlock + .explainBlock{margin-top:10px;}
#modalBody .explainBlock:first-of-type{
  border-left:5px solid #1d7a56;
  background:#fbfffd;
}
#modalBody .explainBlock:first-of-type .blockTitle{color:#1d7a56;}
#modalBody .explain-main,
#modalBody .explain-support{
  position:relative;
  margin:10px 0 0;
  padding:38px 12px 12px;
  border-radius:14px;
  line-height:1.75;
  font-size:15px;
}
#modalBody .explain-main{
  background:#edf8f6;
  border:1px solid rgba(45,108,123,.22);
}
#modalBody .explain-support{
  background:#fff8ed;
  border:1px solid rgba(212,123,0,.22);
}
#modalBody .explain-main::before,
#modalBody .explain-support::before{
  position:absolute;
  top:10px;
  left:12px;
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:2px 9px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  letter-spacing:0;
  line-height:1.2;
}
#modalBody .explain-main::before{
  content:"正答根拠";
  color:#fff;
  background:#2d6c7b;
}
#modalBody .explain-support::before{
  display:none;
  content:"";
}
#modalBody .explain-support{
  padding:12px;
}
#modalBody .wrong-keyword,
#modalBody .correct-keyword,
#modalBody .important-keyword,
#modalBody .answer-keyword,
#modalBody .formula-keyword,
#modalBody .term-actual,
#modalBody .term-target{
  display:inline;
  padding:.08em .24em;
  border-radius:7px;
}
#modalBody .wrong-keyword{background:#fff0ed;}
#modalBody .correct-keyword{background:#edf8f0;}
#modalBody .important-keyword{background:#fff4df;}
#modalBody .answer-keyword{background:#eaf2f6;}
#modalBody .formula-keyword{background:#eef8fb;}
#modalBody .term-actual{background:#eaf3ff;border:1px solid rgba(31,95,153,.18);}
#modalBody .term-target{background:#fff1e6;border:1px solid rgba(181,83,18,.18);}
.formula-label{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  vertical-align:middle;
  white-space:nowrap;
  margin:.1em .16em;
  padding:.24em .52em .28em;
  border-radius:10px;
  background:#eef8fb;
  border:1px solid rgba(45,108,123,.22);
  box-shadow:0 4px 10px rgba(17,37,56,.06);
  color:#225f70;
  font-family:"Times New Roman","Cambria Math","STIX Two Math",serif;
  font-weight:900;
  line-height:1.22;
  -webkit-overflow-scrolling:touch;
}
.formula-label .mathChoice,
.formula-label .choiceFormulaSet{
  flex-wrap:nowrap;
  white-space:nowrap;
}
#modalBody .formulaDisplay{
  display:block;
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  margin:.55em 0;
  padding:.45em .55em;
  border-radius:12px;
  background:#eef8fb;
  border:1px solid rgba(45,108,123,.22);
  box-shadow:0 4px 10px rgba(17,37,56,.06);
  color:#225f70;
  -webkit-overflow-scrolling:touch;
}
#modalBody .formulaDisplay .mathChoice,
#modalBody .formulaDisplay .mathEquation,
#modalBody .formulaDisplay .formulaStack{
  width:max-content;
  max-width:none;
  white-space:nowrap;
  flex-wrap:nowrap;
}
.overline{text-decoration:overline;text-decoration-thickness:1.5px;}
.explain-figure{margin:10px 0 12px;padding:8px;background:#fff;border-radius:12px;box-shadow:0 8px 18px rgba(17,37,56,.08);}
.explain-figure img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain;}
.explain-figure figcaption{margin-top:6px;font-size:12px;font-weight:800;color:#52636b;}
.explain-figure-inline{margin:10px 0 12px;}
.explain-figure-inline .figureWrap{margin:8px 0 12px;padding:8px;border-radius:12px;}
.explain-figure-inline img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain;}
.modal .figureWrap,
#modalBody .figureWrap,
#modalBody .figurePanel,
#modalBody .singlePlate,
#modalBody .r2tableScroll{
  overflow:visible !important;
  max-height:none !important;
}
#modalBody .r2tableScroll{
  overflow-x:auto !important;
  overflow-y:visible !important;
}
#modalBody img,
#modalBody svg,
#modalBody canvas{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center center !important;
}
#modalBody .figureFormulaChoices{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:10px;
  overflow:visible !important;
}
#modalBody .figureFormulaChoice{
  display:flex;
  align-items:flex-start;
  gap:10px;
  overflow-x:auto;
  overflow-y:visible;
  padding:8px 6px 12px;
}
#modalBody .figureFormulaChoice img{
  width:auto !important;
  max-width:calc(100% - 38px) !important;
  height:auto !important;
  max-height:none !important;
  flex:0 1 auto;
}
.explainBlock.block-formula .blockTitle{color:#2d6c7b;}
.explainBlock.block-warn .blockTitle{color:#cb4a45;}
.explainBlock.block-key .blockTitle{color:#d47b00;}
.explainBlock.block-correct .blockTitle{color:#1d7a56;}
.explainBlock.block-related{
  background:#fffdf8;
  border-color:rgba(190,126,18,.24);
  border-left:4px solid #c98218;
}
.explainBlock.block-related .blockTitle{
  margin-bottom:2px;
  color:#855100;
  font-size:15px;
}
#modalBody .related-knowledge-list{display:grid;margin-top:2px;}
#modalBody .related-knowledge-item{
  position:relative;
  padding:9px 2px 9px 19px;
  color:#293f48;
  font-size:15px;
  font-weight:650;
  line-height:1.75;
}
#modalBody .related-knowledge-item::before{
  content:"";
  position:absolute;
  left:3px;
  top:1.05em;
  width:4px;
  height:1.05em;
  border-radius:2px;
  background:#d2922d;
}
#modalBody .related-knowledge-item + .related-knowledge-item{border-top:1px solid rgba(190,126,18,.16);}
#modalBody .related-keyword,
#modalBody .related-value{
  padding:.06em .22em;
  border-radius:4px;
  font-weight:900;
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}
#modalBody .related-keyword{
  color:#075b6d;
  background:#e7f6f8;
  border-bottom:2px solid #75bdc9;
}
#modalBody .related-value{
  color:#8a4d00;
  background:#fff0d2;
  border-bottom:2px solid #e0a54b;
}
@media (max-width:430px){
  #modalBody .related-knowledge-item{padding:8px 1px 8px 17px;font-size:14px;line-height:1.7;}
  #modalBody .related-knowledge-item::before{left:2px;}
}
.category-list-btn{appearance:none;border:none;width:100%;text-align:left;background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:12px 14px;font-size:14px;font-weight:900;cursor:pointer;line-height:1.6;color:#1b333d;}
.category-list-btn small{display:block;margin-top:4px;font-size:12px;color:#687c84;font-weight:700;}
.category-cards{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.score-category-dynamic-buttons{display:contents;}
.category-card{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:14px 14px 12px;display:flex;flex-direction:column;gap:10px;border:1px solid rgba(45,108,123,.10);}
.category-card.full{grid-column:1/-1;}
.category-wide-btn{grid-column:1/-1;}
.category-card-title{font-size:16px;font-weight:900;line-height:1.45;color:#1b333d;}
.category-card-sub{font-size:12px;line-height:1.6;color:#687c84;font-weight:700;}
.category-action-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
#categoryScreen .category-action-row{grid-template-columns:repeat(2,minmax(0,1fr));}
.category-mini-btn{appearance:none;border:none;border-radius:12px;padding:11px 10px;font-size:13px;font-weight:900;cursor:pointer;box-shadow:0 8px 20px rgba(17,37,56,.08);}
.category-mini-btn.main{background:linear-gradient(180deg,#448ba0,#2d6c7b);color:#fff;}
.category-mini-btn.random{background:linear-gradient(180deg,#4da86d,#2f8050);color:#fff;}
.category-mini-btn.alt{background:linear-gradient(180deg,#ffffff,#eef3f6);color:#1f3440;border:1px solid rgba(45,108,123,.15);}

.category-mini-btn.score{grid-column:1/-1;background:linear-gradient(180deg,#fff9e8,#f6efcf);color:#5b4a12;border:1px solid rgba(138,111,27,.18);}
.category-score-list{margin-top:12px;display:flex;flex-direction:column;gap:8px;}
.category-score-item{background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:12px 14px;border:1px solid rgba(45,108,123,.10);line-height:1.6;}
.category-score-item strong{font-weight:900;}
.category-score-item small{display:block;color:#687c84;font-size:12px;margin-top:2px;font-weight:700;}
.score-full{grid-column:1/-1;}
.score-menu-heading{
  grid-column:1/-1;
  margin:4px 2px 0;
  font-size:14px;
  font-weight:900;
  color:#294653;
}
.year-tools-card{
  grid-column:1/-1;
  background:#fff;
  border-radius:16px;
  box-shadow:var(--shadow);
  padding:14px;
  border:1px solid rgba(45,108,123,.10);
}
.year-tools-title{
  font-size:15px;
  font-weight:900;
  color:#1b333d;
  margin-bottom:8px;
}
.year-tools-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
  align-items:center;
}
.year-tools-select{
  width:100%;
  appearance:none;
  border:1px solid rgba(44,79,103,.18);
  border-radius:12px;
  padding:12px 14px;
  background:#fffdfb;
  color:#24343f;
  font-size:14px;
  font-weight:900;
  box-shadow:0 8px 18px rgba(17,37,56,.06);
}
.year-progress{
  width:100%;
  margin-top:8px;
  font-size:11px;
  line-height:1.35;
  color:#6b7372;
  font-weight:800;
}
.year-progress-top{
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin-bottom:5px;
}
.year-progress-bar{
  width:100%;
  height:7px;
  border-radius:999px;
  overflow:hidden;
  background:rgba(44,79,103,.12);
}
.year-progress-bar i{
  display:block;
  height:100%;
  width:0;
  border-radius:999px;
  background:linear-gradient(90deg,#87a2bb,#2c4f67);
}
.bookmark-pill.active{
  background:#fff4d7;
  color:#8a5700;
  border-color:rgba(196,134,73,.35);
}
.score-heatmap{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.heatmap-row{
  display:grid;
  grid-template-columns:72px repeat(5,minmax(0,1fr));
  gap:6px;
  align-items:stretch;
}
.heatmap-head{
  font-size:10px;
  color:#5d7078;
  font-weight:900;
  text-align:center;
  line-height:1.2;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
}
.heatmap-year{
  font-size:12px;
  color:#1b333d;
  font-weight:900;
  display:flex;
  align-items:center;
}
.heatmap-cell{
  border-radius:9px;
  min-height:42px;
  padding:6px 4px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  text-align:center;
  font-size:11px;
  font-weight:900;
  line-height:1.2;
  border:1px solid rgba(44,79,103,.08);
  color:#1b333d;
}
.heatmap-cell small{
  display:block;
  margin-top:2px;
  font-size:9px;
  color:rgba(27,51,61,.70);
  font-weight:800;
}
.heatmap-cell.empty{background:#f3eee8;color:#8b8580;}
.heatmap-cell.low{background:#fde7df;}
.heatmap-cell.mid{background:#fff2cf;}
.heatmap-cell.high{background:#dff1e4;}
.heatmap-cell.top{background:#c9e1f0;}
@media (max-width:430px){
  .year-tools-row{grid-template-columns:1fr;}
  .heatmap-row{grid-template-columns:58px repeat(5,minmax(42px,1fr));gap:4px;}
  .heatmap-head{font-size:9px;}
  .heatmap-cell{font-size:10px;padding:5px 2px;}
}
.score-dashboard-card,
.score-chart-card,
.score-insight-card{
  background:#fff;
  border-radius:16px;
  box-shadow:var(--shadow);
  padding:14px;
  border:1px solid rgba(45,108,123,.10);
}
.score-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.score-card-title{
  font-size:16px;
  line-height:1.45;
  font-weight:900;
  color:#1b333d;
}
.score-card-sub{
  margin-top:2px;
  font-size:12px;
  line-height:1.5;
  font-weight:800;
  color:#687c84;
}
.score-badge{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:5px 10px;
  border-radius:999px;
  background:#eef8fb;
  color:#225f70;
  font-size:12px;
  font-weight:900;
  border:1px solid rgba(45,108,123,.16);
}
.score-summary-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}
.score-metric-card{
  background:#fff;
  border-radius:14px;
  box-shadow:0 8px 20px rgba(17,37,56,.08);
  padding:12px;
  border:1px solid rgba(45,108,123,.08);
}
.score-metric-label{
  font-size:12px;
  line-height:1.4;
  color:#61737b;
  font-weight:900;
}
.score-metric-value{
  margin-top:5px;
  font-size:24px;
  line-height:1.15;
  font-weight:900;
  color:#1d3944;
}
.score-metric-note{
  margin-top:4px;
  font-size:11px;
  line-height:1.45;
  color:#6d7d84;
  font-weight:800;
}
.radar-chart{
  width:100%;
  min-height:230px;
  display:grid;
  place-items:center;
  margin-top:2px;
}
.radar-chart svg{
  width:100%;
  max-width:300px;
  height:auto;
  display:block;
}
.radar-grid{fill:none;stroke:#dbe6eb;stroke-width:1;}
.radar-axis{stroke:#d6e1e6;stroke-width:1;}
.radar-area{fill:rgba(45,108,123,.24);stroke:#2d6c7b;stroke-width:3;stroke-linejoin:round;}
.radar-point{fill:#2d6c7b;stroke:#fff;stroke-width:2;}
.radar-label{font-size:10px;font-weight:900;fill:#294653;}
.radar-empty{font-size:12px;font-weight:900;fill:#80919a;}
.radar-legend{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin-top:8px;
}
.radar-legend-item{
  background:#f7fafc;
  border-radius:11px;
  padding:8px 9px;
  border:1px solid rgba(45,108,123,.08);
}
.radar-legend-item b{
  display:block;
  font-size:12px;
  line-height:1.35;
  color:#294653;
}
.radar-legend-item span{
  display:block;
  margin-top:2px;
  font-size:11px;
  line-height:1.35;
  color:#687c84;
  font-weight:800;
}
.score-action-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:12px;
}
.score-action-grid .action-btn{
  margin-top:0;
}
.score-action-grid .wide{
  grid-column:1/-1;
}
.action-btn.danger{
  background:linear-gradient(180deg,#d8625b,#b9423b);
  color:#fff;
}
.score-category-menu{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.score-category-menu .category-mini-btn{
  min-height:58px;
  text-align:left;
}
.score-category-menu .category-mini-btn small{
  display:block;
  margin-top:4px;
  font-size:11px;
  line-height:1.35;
  opacity:.86;
}
.priority-rank{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:2.4em;
  margin-right:6px;
  padding:2px 7px;
  border-radius:999px;
  background:#eef8fb;
  color:#225f70;
  font-size:12px;
  font-weight:900;
  border:1px solid rgba(45,108,123,.16);
}
.priority-score{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-left:6px;
  padding:2px 7px;
  border-radius:999px;
  background:#fff7df;
  color:#8a6100;
  font-size:11px;
  font-weight:900;
}
.priority-reason{
  display:block;
  margin-top:4px;
  color:#687c84;
  font-size:12px;
  line-height:1.45;
  font-weight:800;
}
@media (max-width:430px){
  .score-summary-grid,.radar-legend,.score-category-menu{grid-template-columns:repeat(2,minmax(0,1fr));}
  .score-metric-value{font-size:22px;}
}

@media (max-width:430px){#categoryScreen .section-pad,#calcCategoryScreen .section-pad{grid-template-columns:repeat(2,minmax(0,1fr));}.category-action-row{grid-template-columns:1fr;}}


/* ===== inline choice box cleanup ===== */
.inlineChoices{
  display:block !important;
  margin:14px 0 0 !important;
}
.inlineChoice{
  background:transparent !important;
  box-shadow:none !important;
  border-radius:0 !important;
  padding:0 !important;
  margin-top:12px !important;
  font-size:20px !important;
  line-height:1.72 !important;
  font-weight:400 !important;
}
.inlineChoice:first-child{margin-top:0 !important;}
.inlineChoice.hasFormulaChoice{
  line-height:1.42 !important;
}
.inlineChoice.hasFormulaChoice > .mathChoice,
.inlineChoice.hasFormulaChoice > .choiceFormulaSet,
.inlineChoice.hasFormulaChoice > .formula-label{
  display:inline-flex;
  align-items:center;
  max-width:calc(100% - 2.4em);
  overflow-x:auto;
  overflow-y:hidden;
  vertical-align:middle;
  white-space:nowrap;
  margin:.08em 0 .08em .28em;
  padding:.22em .48em .26em;
  border-radius:10px;
  background:#eef8fb;
  border:1px solid rgba(45,108,123,.24);
  box-shadow:0 3px 8px rgba(17,37,56,.06);
  color:#225f70;
  font-size:.9em;
  line-height:1.18;
  -webkit-overflow-scrolling:touch;
}
.inlineChoice.hasFormulaChoice > .mathChoice,
.inlineChoice.hasFormulaChoice > .mathChoice .mathMatrix,
.inlineChoice.hasFormulaChoice > .choiceFormulaSet{
  flex-wrap:nowrap;
}
.inlineChoice.hasFormulaChoice > .mathChoice .mathMatrix{
  padding:.08em .34em;
  row-gap:.06em;
}
.inlineChoice.hasFormulaChoice > .mathChoice .mathMatrix .matrixRow{
  column-gap:.5em;
}
.inlineChoice.hasFormulaChoice img{
  display:inline-block;
  width:auto;
  max-width:calc(100% - 2.4em);
  max-height:3.2em;
  height:auto;
  object-fit:contain;
  vertical-align:middle;
}
.inlineChoice .formulaWrap,
.inlineChoice .matrixBlock,
.inlineChoice [style*="white-space:pre"]{
  background:transparent !important;
}
.mathChoice{
  display:inline-flex;
  align-items:center;
  gap:.28em;
  flex-wrap:wrap;
  max-width:100%;
  overflow:visible;
  vertical-align:middle;
  white-space:normal;
  font-family:"Times New Roman","Cambria Math","STIX Two Math",serif;
  font-weight:600;
  line-height:1.15;
}
.mathFrac{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  vertical-align:middle;
  line-height:1.05;
  margin:0 .08em;
}
.mathFrac .num{
  display:block;
  border-bottom:1.5px solid currentColor;
  padding:0 .22em .08em;
  min-width:100%;
  text-align:center;
}
.mathFrac .den{
  display:block;
  padding:.08em .22em 0;
  min-width:100%;
  text-align:center;
}
.mathSqrt{
  display:inline-flex;
  align-items:flex-start;
  gap:.06em;
}
.mathSqrt .radical{
  font-size:1.35em;
  line-height:.95;
}
.mathSqrt .radicand{
  border-top:1.5px solid currentColor;
  padding:.08em .14em 0;
}
.mathOver{
  text-decoration:overline;
  text-decoration-thickness:1.4px;
  text-decoration-skip-ink:none;
}
.mathMatrix{
  display:inline-flex;
  flex-direction:column;
  gap:.12em;
  padding:.12em .48em;
  border-left:1.5px solid currentColor;
  border-right:1.5px solid currentColor;
  border-radius:3px;
  vertical-align:middle;
  line-height:1.18;
}
.mathMatrix .matrixRow{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(1em,max-content);
  column-gap:.72em;
  align-items:center;
  justify-content:center;
}
.mathCases{
  display:inline-flex;
  align-items:stretch;
  gap:.35em;
  font-family:"Times New Roman","Cambria Math","STIX Two Math",serif;
  font-weight:600;
  font-size:.94em;
  line-height:1.22;
  max-width:100%;
}
.mathCases .caseBrace{
  display:flex;
  align-items:center;
  font-size:4.2em;
  line-height:.72;
  font-weight:400;
}
.mathCases .caseRows{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:.34em;
  min-width:0;
}
.mathCases .caseRow{
  white-space:nowrap;
}
.mathIsotope{
  display:inline-grid;
  grid-template-columns:auto auto;
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:.08em;
  margin:0 .05em;
  font-family:"Times New Roman","Cambria Math","STIX Two Math",serif;
  font-weight:600;
}
.mathIsotope sup{
  grid-column:1;
  grid-row:1;
  font-size:.62em;
  line-height:1;
  align-self:end;
}
.mathIsotope sub{
  grid-column:1;
  grid-row:2;
  font-size:.62em;
  line-height:1;
  align-self:start;
}
.mathIsotope .symbol{
  grid-column:2;
  grid-row:1 / span 2;
  font-size:1.05em;
}
.mathChoice sup,
.mathChoice sub{
  font-size:.72em;
  line-height:0;
}
.choiceFormulaSet{
  display:inline-flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.34em .9em;
  max-width:100%;
  vertical-align:middle;
  font-family:"Times New Roman","Cambria Math","STIX Two Math",serif;
  font-weight:600;
  line-height:1.22;
}
.choiceFormulaSet .formulaTerm{
  display:inline-flex;
  align-items:center;
  gap:.22em;
  white-space:nowrap;
}
.mathVector{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.12em;
  border-left:1.5px solid currentColor;
  border-right:1.5px solid currentColor;
  padding:.08em .42em;
  line-height:1.2;
  vertical-align:middle;
}
.mathEquation{
  display:inline-flex;
  align-items:center;
  gap:.45em;
  flex-wrap:wrap;
  font-family:"Times New Roman","Cambria Math","STIX Two Math",serif;
  font-weight:600;
}
.formulaDisplay{
  display:block;
  max-width:100%;
  overflow-x:auto;
  margin:.35em 0;
  padding:.15em 0;
}
.formulaStack{
  display:block;
  font-family:"Times New Roman","Cambria Math","STIX Two Math",serif;
  font-weight:600;
  line-height:1.35;
}
.formulaStack .formulaLine{
  display:flex;
  align-items:center;
  gap:.28em;
  width:max-content;
  min-width:0;
  margin:.22em 0;
  white-space:nowrap;
}
@media (max-width:430px){
  .inlineChoice{
    font-size:17px !important;
    line-height:1.62 !important;
  }
  .mathChoice{
    font-size:16px;
  }
}



/* ===== color polish v2 ===== */
:root{
  --teal:#2c4f67;
  --bg:#f6f1eb;
  --card:#fffdfb;
  --text:#1c232b;
  --shadow:0 14px 34px rgba(28,35,43,.10);
  --ok:#2a7652;
  --ok-bg:#ebf6f0;
  --ng:#b95e56;
  --ng-bg:#fcf0ee;
}
html,body{
  background:
    radial-gradient(circle at top left, rgba(214,177,116,.16), transparent 30%),
    linear-gradient(180deg,#fbf7f2 0%, #f2ece6 100%);
  color:var(--text);
}
.app{
  background:
    radial-gradient(circle at top right, rgba(91,117,141,.08), transparent 24%),
    linear-gradient(180deg,#fcfaf7 0%, #f2ece6 100%);
}
.hero,
.topbar,
#scoreScreen .topbar,
#yearMenuScreen .topbar,
#scoreYearScreen .topbar{
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.20), transparent 32%),
    radial-gradient(circle at 100% 0%, rgba(214,177,116,.18), transparent 28%),
    linear-gradient(135deg,#5d748d 0%, #2c4f67 52%, #1f394d 100%);
}
.hero-title,
.topbar-title,
.quiz-title,
.sheetTitle{
  letter-spacing:.018em;
  text-shadow:0 3px 10px rgba(0,0,0,.10);
}
.big-btn{
  box-shadow:0 14px 30px rgba(28,35,43,.10);
}
.big-btn.teal{background:linear-gradient(180deg,#7391ad,#2c4f67);}
.big-btn.green{background:linear-gradient(180deg,#7f9a8b,#4f6c60);}
.big-btn.gray{background:linear-gradient(180deg,#7b8591,#535d68);}
.big-btn.orange{background:linear-gradient(180deg,#dfb680,#c48649);}
.big-btn.soft{
  background:linear-gradient(180deg,#fffefd,#f5efe7);
  color:#24343f;
  border:1px solid rgba(44,79,103,.12);
}
.big-btn.soft small{color:#6f7675;}
.card,
.score-box,
.figureWrap,
.figurePanel,
.inlineChoice,
.sheet,
.block,
.score-row,
.legendItem{
  background:rgba(255,253,251,.98);
  box-shadow:var(--shadow);
}
.figurePanel{
  border:1px solid rgba(44,79,103,.07);
}
.action-btn.teal,
.guide-btn.primary,
.setting-chip.active{
  background:linear-gradient(180deg,#6d8ba7,#2c4f67);
}
.action-btn.gray,
.closeBtn{
  background:linear-gradient(180deg,#73808c,#4b5662);
}
.nav-btn,
.counter,
.pill,
.guide-btn,
.setting-chip,
.statusChip.pending,
.statusChip.ghost{
  background:rgba(255,252,248,.98);
  color:#24343f;
}
.pill,
.mode-badge{
  border-color:rgba(44,79,103,.18);
  color:#31536b;
}
.answerDock{
  background:rgba(249,245,239,.97);
  border-top:1px solid rgba(44,79,103,.08);
}
.choice{
  background:#fffdfb;
}
.choice.correct{background:var(--ok-bg); color:var(--ok);}
.choice.wrong{background:var(--ng-bg); color:var(--ng);}
.zoomBtn{
  background:#f5efe8;
  border:1px solid rgba(44,79,103,.14);
  color:var(--teal);
}
.jump-btn.current,
.statusChip.ok,
.progressFill{
  background:linear-gradient(90deg,#87a2bb,#2c4f67);
  color:#fff;
}
.jump-btn.correct{background:var(--ok-bg); color:var(--ok);}
.jump-btn.wrong{background:var(--ng-bg); color:var(--ng);}
.statusChip.ok{border-color:rgba(255,255,255,.22);}
.statusChip.ng{background:rgba(185,94,86,.15); border-color:rgba(185,94,86,.18);}
.statusChip.revision{
  background:rgba(223,182,128,.18);
  border-color:rgba(196,134,73,.24);
  color:#66431d;
}
#yearMenuScreen .big-btn,
#scoreYearScreen .big-btn,
#pastMenuScreen .big-btn{
  background:linear-gradient(180deg,#fffefd,#f7f0e8);
  color:#22343f;
  border:1px solid rgba(44,79,103,.10);
}
#yearMenuScreen .big-btn::before,
#scoreYearScreen .big-btn::before,
#pastMenuScreen .big-btn::before{
  background:linear-gradient(180deg,#9bb2c7,#2c4f67);
}
#yearMenuScreen .big-btn small,
#scoreYearScreen .big-btn small,
#pastMenuScreen .big-btn small,
.inlineHelp,
.small-note,
.figureSub,
.noteText{
  color:#6b7372;
}
.formula{
  background:#f6efe7;
  border:1px solid rgba(44,79,103,.07);
}
.line{background:linear-gradient(90deg,#6f8f98,#2f5d67);}



/* 分離版：過去問題専用 */
#openJunsokuBtn,
#openVocabBtn{display:none !important;}
/* 測量士補 資料統合 */
.junsoku-topbar{position:sticky;top:0;z-index:10;background:#1699a3;color:#fff;padding:calc(14px + env(safe-area-inset-top)) 16px 14px;box-shadow:0 4px 18px rgba(0,0,0,.12);}
.junsoku-toprow{display:flex;align-items:center;gap:10px;}
.junsoku-back{border:none;background:rgba(255,255,255,.16);color:#fff;border-radius:999px;padding:10px 14px;font-size:14px;font-weight:900;}
.junsoku-titlewrap{min-width:0;flex:1;}
.junsoku-title{font-size:20px;font-weight:900;line-height:1.25;}
.junsoku-sub{margin-top:3px;font-size:12px;line-height:1.5;opacity:.95;font-weight:700;}
.junsoku-frame-wrap{padding:0 0 env(safe-area-inset-bottom);height:calc(100vh - 86px - env(safe-area-inset-top));background:#ececec;}
.junsoku-frame{display:block;width:100%;height:100%;border:0;background:#ececec;}
@media (max-width:640px){.junsoku-frame-wrap{height:calc(100vh - 88px - env(safe-area-inset-top));}}


/* ===== PATCH: figure display stabilization ===== */
#figureHost{
  overflow:visible;
  padding-bottom:16px;
}
#figureHost .figureWrap,
#figureHost .figurePanel,
#figureHost .figureCard,
#figureHost .singlePlate{
  max-width:100%;
  min-width:0;
  height:auto;
  max-height:none;
  overflow:visible;
  box-sizing:border-box;
}
#figureHost .r2tableScroll{
  max-width:100%;
  min-width:0;
  height:auto;
  max-height:none;
  overflow-x:auto;
  overflow-y:visible;
  -webkit-overflow-scrolling:touch;
  box-sizing:border-box;
}
#figureHost img,
#figureHost svg,
#figureHost canvas{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  object-position:center center;
  margin-left:auto;
  margin-right:auto;
}
#figureHost svg{overflow:visible;}
#figureHost table{
  max-width:100%;
  border-collapse:collapse;
}
#figureHost .figureFormulaChoices{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:10px;
}
#figureHost .figureFormulaChoice{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:8px 6px 12px;
  border-top:1px solid #eeeeee;
  overflow-x:auto;
  overflow-y:visible;
  -webkit-overflow-scrolling:touch;
}
#figureHost .figureFormulaChoice:first-child{
  border-top:0;
}
#figureHost .figureFormulaChoice span{
  flex:0 0 28px;
  font-weight:900;
  font-size:18px;
  text-align:center;
}
#figureHost .figureFormulaChoice img{
  width:auto !important;
  max-width:calc(100% - 38px) !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  margin:0 !important;
  flex:0 1 auto;
}



/* ===== H19 table/formula support ===== */
.h19FigureTable .r2tableScroll{overflow-x:auto;}
.h19DataTable{width:100%;border-collapse:collapse;font-size:15px;line-height:1.45;background:#fff;}
.h19DataTable th,.h19DataTable td{border:1px solid rgba(27,51,61,.45);padding:6px 8px;text-align:center;white-space:nowrap;}
.h19DataTable th{font-weight:900;background:#f7fafb;}
.h19FormulaBlock{overflow-x:auto;line-height:1.7;}
.h19FormulaLine{white-space:nowrap;margin:4px 0;font-family:"Times New Roman","Cambria Math","STIX Two Math",serif;font-weight:600;}

/* ===== PATCH: targeted table/diagram repairs (2026-06-03) ===== */
.codedFigure{overflow:visible !important;}
.codedFigure .dataTableScroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.codedFigure .dataTableFix{width:100%;border-collapse:collapse;table-layout:fixed;background:#fff;font-size:13px;line-height:1.35;}
.codedFigure .dataTableFix th,
.codedFigure .dataTableFix td{border:1px solid rgba(34,57,70,.38);padding:6px 5px;text-align:center;vertical-align:middle;word-break:keep-all;}
.codedFigure .dataTableFix th{background:#f3f7f8;font-weight:900;}
.codedFigure .dataTableFix th:first-child,
.codedFigure .dataTableFix td:first-child{text-align:left;}
.codedFigure .codedSvg{display:block;width:100%;height:auto;overflow:visible;}
.codedFigure .svgText{font-family:"Hiragino Sans","Yu Gothic","Meiryo",sans-serif;fill:#111;}
.codedFigure .svgSmall{font-size:15px;font-weight:700;}
.codedFigure .svgLabel{font-size:17px;font-weight:900;}
.codedFigure .svgMath{font-family:"Times New Roman","Cambria Math",serif;font-size:18px;font-style:italic;}
.codedFigure .qualityTableFix{font-size:10.5px;table-layout:fixed;}
.codedFigure .qualityTableFix th,
.codedFigure .qualityTableFix td{padding:4px 2px;line-height:1.25;}
.codedFigure .qualityTableFix .rowHead{width:31%;}
.codedFigure .qualityTableFix .smallCol{width:8.5%;}
.codedFigure .qualityTableFix .importanceCol{width:12%;}
.codedFigure .projectTableFix{font-size:12.5px;}



#quizScreen .quiz-body { padding-top:0; }
#quizScreen #questionHtml > :first-child { margin-top:0; }
body.app-nav-ready #quizScreen .quiz-header { padding-top:var(--quiz-controls-space, calc(98px + env(safe-area-inset-top))); }
.app-version { display:block; margin-top:6px; color:inherit; font-size:12px; font-weight:600; line-height:1.5; letter-spacing:0; text-align:center; font-variant-numeric:tabular-nums; }
@media(min-width:1024px) {
  body.app-nav-ready #quizScreen .quiz-header { padding-top:calc(14px + env(safe-area-inset-top)); }
}
