  :root{
    /* 은수 블로그 색감 — 크림 종이 + 세이지 올리브 + 탄/골드 + 마룬 포인트 */
    --pt:#6b7f57; --pt2:#edf0e3; --gold:#b3974e; --point:#8f3540;
    --ink:#3f3a30; --sub:#6f6857; --line:#e4ddca; --paper:#fffdf6;
    --hi:#f5eccd; --hi2:#f2ebd4; --ok:#5f7a55; --warn:#b06a2c;
    --sans:'Noto Sans KR','Malgun Gothic',sans-serif; --serif:'Nanum Myeongjo',serif;
    --math:'Cambria Math','Times New Roman',serif;
  }
  *{ box-sizing:border-box; margin:0; padding:0; }
  body{ background:#efe9db; color:var(--ink); font-family:var(--sans); line-height:1.65; -webkit-font-smoothing:antialiased; }
  .page{ position:relative; max-width:900px; margin:16px auto; background:var(--paper); padding:26px 30px 40px; box-shadow:0 4px 20px rgba(90,75,45,.10); }
  .expr,.math{ font-family:var(--math); font-weight:600; }
  .gl{ font-family:var(--math); font-style:italic; font-weight:700; }  /* 직선 이름(l, m) — 이탤릭 */
  .par{ white-space:nowrap; } .pll{ margin:0 .12em; font-weight:600; } /* 평행기호 ∥ (교과서식 좁은 간격) */

  /* 상단 브랜드 바 */
  .brandbar{ display:flex; align-items:center; justify-content:space-between; border-bottom:2.5px solid var(--pt); padding-bottom:8px; margin-bottom:6px; }
  .brandbar .b1{ font-family:var(--serif); font-weight:800; color:var(--pt); font-size:15px; letter-spacing:.02em; }
  .brandbar .bcode{ font-size:11px; font-weight:800; color:var(--gold); border:1px solid var(--gold); border-radius:999px; padding:1px 10px; letter-spacing:.04em; margin-right:8px; }
  .brandbar .b2{ font-size:12px; color:var(--sub); font-weight:700; }
  .unit-h{ display:flex; align-items:center; gap:14px; margin:14px 0 4px; }
  .unit-h .num{ background:var(--pt); color:#fff; font-family:var(--serif); font-weight:900; font-size:26px; padding:6px 16px; border-radius:8px; box-shadow:2px 2px 0 var(--pt2); }
  .unit-h .nm{ font-family:var(--serif); font-weight:800; font-size:26px; }
  .unit-h .gd{ margin-left:auto; font-size:12.5px; color:var(--sub); font-weight:700; }

  /* 개념 연결 카드 — 보이는 수학(직관 영상) + 만지는 수학(손끝 칼럼) */
  .insightcard{ display:flex; align-items:center; gap:14px; background:linear-gradient(100deg,#fbf3df,#f7efe0); border:1.5px solid var(--gold); border-radius:14px; padding:11px 14px 11px 16px; margin:14px 0 6px; }
  .insightcard .ic-txt{ flex:1; min-width:0; }
  .insightcard .ic-badge{ display:inline-block; background:var(--gold); color:#fff; font-size:11px; font-weight:800; border-radius:6px; padding:2px 9px; margin-right:8px; white-space:nowrap; }
  .insightcard .ic-hook{ font-size:14px; color:var(--ink); font-weight:600; line-height:1.5; }
  .insightcard .ic-icons{ display:flex; gap:8px; flex:0 0 auto; }
  .insightcard .ic-btn{ display:inline-flex; flex-direction:column; align-items:center; gap:3px; text-decoration:none; color:var(--pt); background:#fff; border:1.5px solid var(--pt); border-radius:11px; padding:7px 12px; font-size:11px; font-weight:800; min-width:64px; line-height:1; }
  .insightcard .ic-btn svg{ width:21px; height:21px; }
  .insightcard .ic-btn.ic-touch{ color:var(--point); border-color:var(--point); }
  .insightcard .ic-btn:hover{ box-shadow:0 4px 12px rgba(90,75,45,.16); transform:translateY(-1px); }
  @media(max-width:560px){ .insightcard{ flex-direction:column; align-items:stretch; gap:10px; } .insightcard .ic-icons{ justify-content:flex-end; } }
  @media print{ .insightcard .ic-icons{ display:none; } .insightcard{ background:none; } }

  /* 영상 연결 배너 */
  .vidbar{ display:flex; gap:10px; flex-wrap:wrap; margin:12px 0 6px; }
  .vidbtn{ display:inline-flex; align-items:center; gap:7px; background:var(--pt); color:#fff; font-size:13px; font-weight:800; text-decoration:none; border-radius:999px; padding:8px 16px; }
  .vidbtn.g{ background:var(--gold); }
  .vidbtn:hover{ filter:brightness(1.08); }

  /* 개념 레이아웃 */
  .concept{ display:grid; grid-template-columns:1fr 220px; gap:20px; margin:14px 0 8px; }
  @media(max-width:720px){ .concept{ grid-template-columns:1fr; } }
  .sub-h{ display:inline-flex; align-items:center; gap:8px; background:var(--hi); font-family:var(--serif); font-weight:800; font-size:15px; padding:3px 12px; border-radius:5px; margin:14px 0 8px; }
  .sub-h .tag{ background:var(--pt); color:#fff; font-size:11px; padding:1px 8px; border-radius:4px; font-family:var(--sans); }
  .cbody{ font-size:14.5px; } .cbody p{ margin:5px 0; }
  .def{ background:var(--pt2); border-left:4px solid var(--pt); border-radius:0 8px 8px 0; padding:9px 14px; margin:8px 0; font-size:14px; }
  .def b{ color:var(--pt); }
  .pt{ color:var(--pt); font-weight:800; } .red{ color:var(--point); font-weight:800; }
  .plus{ background:#f7f8f3; border:1px solid var(--line); border-radius:10px; padding:12px 14px; align-self:start; }
  .plus .ph{ font-family:var(--serif); font-weight:800; font-size:13.5px; color:var(--pt); margin-bottom:6px; display:flex; align-items:center; gap:5px; }
  .plus ul{ margin:0 0 0 4px; list-style:none; } .plus li{ font-size:12.5px; color:var(--sub); margin:7px 0; padding-left:12px; position:relative; }
  .plus li::before{ content:'•'; color:var(--pt); position:absolute; left:0; }

  /* 유형 문제 */
  h2.sec{ font-family:var(--serif); font-weight:800; font-size:19px; color:#fff; background:var(--pt); border-radius:8px; padding:7px 16px; margin:26px 0 12px; }
  .type{ border:1px solid var(--line); border-radius:12px; margin:16px 0; overflow:hidden; }
  .type .th{ background:var(--pt2); display:flex; align-items:center; gap:10px; padding:8px 14px; border-bottom:1px solid var(--line); }
  .type .tn{ background:var(--pt); color:#fff; font-weight:800; font-size:12.5px; border-radius:5px; padding:2px 10px; }
  .type .tt{ font-family:var(--serif); font-weight:800; font-size:15px; }
  .type .no{ margin-left:auto; font-family:var(--serif); font-weight:900; font-size:16px; color:var(--point); }
  .type .tbody{ padding:14px 16px; }
  .q{ margin:4px 0 2px; }
  .q .ql{ display:inline-block; background:var(--point); color:#fff; font-weight:800; font-size:12px; border-radius:5px; padding:1px 8px; margin-right:6px; }
  .q .qtext{ font-size:15px; } .q .qtext b{ color:var(--pt); }
  .figrow{ display:flex; gap:20px; align-items:center; flex-wrap:wrap; margin:10px 0; }
  /* 문제 그림(도형·그래프) — 화면이 좁아지면 함께 작아지게 */
  .q svg, .figrow svg, .simq svg, .q img, .figrow img, .simq img, .kidimg-wrap img{ max-width:100%; height:auto; }
  @media(max-width:680px){ .q svg, .figrow svg, .simq svg, .q img, .figrow img, .simq img, .kidimg-wrap img{ max-width:min(260px, 56vw) !important; height:auto !important; } }
  @media(max-width:420px){ .q svg, .figrow svg, .simq svg, .q img, .figrow img, .simq img, .kidimg-wrap img{ max-width:min(200px, 62vw) !important; } }
  .yuje{ background:#faf8f1; border-left:3px solid var(--line); padding:8px 12px; margin:8px 0 2px; font-size:14px; }
  .yuje .yl{ font-weight:800; color:var(--sub); margin-right:5px; }
  .workline{ margin-top:10px; border-top:1px dashed var(--line); padding-top:6px; font-size:11.5px; color:#a99; }

  /* SVG 도형 — 기본 무지. 좌표그래프 등 필요한 그림에만 class="fig grid" */
  svg.fig{ background-color:transparent; flex:0 0 auto; }
  svg.fig.grid{ background-image:
      linear-gradient(rgba(150,128,84,.13) 1px, transparent 1px),
      linear-gradient(90deg, rgba(150,128,84,.13) 1px, transparent 1px);
    background-size:20px 20px; }
  .fig .ln{ stroke:#4a4436; stroke-width:2; fill:none; } .fig .ln2{ stroke:#6f8b7e; stroke-width:2.6; fill:none; }
  .fig .lntan{ stroke:var(--gold); stroke-width:2.6; fill:none; }
  .fig .dsh{ stroke-dasharray:6 4; } .fig .lbl{ font-family:var(--math); font-size:14px; font-weight:700; fill:#3f3a30; }
  .fig .lblp{ fill:var(--point); } .fig .dot{ fill:var(--point); } .fig .arc{ fill:none; stroke:#6f8b7e; stroke-width:1.8; }
  .fig .rt{ fill:none; stroke:#4a4436; stroke-width:1.4; }

  /* ===== 답지 게이트 + 답지 섹션 ===== */
  #dapjigate{ text-align:center; margin:30px 0 10px; }
  #dapjigate button{ display:inline-flex; align-items:center; gap:7px; background:#4a4436; color:#fff; border:none; border-radius:12px; padding:13px 26px; font-size:15px; font-weight:800; cursor:pointer; box-shadow:0 5px 16px rgba(74,68,54,.28); }
  /* 버튼 안 라인 SVG 아이콘 */
  .bi{ width:16px; height:16px; flex:0 0 auto; vertical-align:-3px; }
  /* 보기 (1)(2)(3)(4) 줄바꿈 정리 */
  .qtext.haschoice, .simq.haschoice{ display:block; }
  .qtext .chno, .simq .chno{ display:inline-block; font-weight:800; color:var(--point); margin:2px 6px 0 4px; }
  .qtext .chbr + .chno, .simq .chbr + .chno{ margin-left:2px; }
  #dapjigate .hint{ display:block; margin-top:8px; font-size:12px; color:var(--sub); }
  .submitted-note{ display:inline-block; background:var(--pt2); border:1px solid var(--pt); color:var(--pt); border-radius:12px; padding:12px 20px; font-weight:800; font-size:14px; }
  #dapji{ display:none; margin-top:20px; border-top:3px double var(--pt); padding-top:18px; }
  body.dapji-open #dapji{ display:block; }
  .dapji-h{ font-family:var(--serif); font-weight:900; font-size:22px; color:var(--pt); display:flex; align-items:center; gap:10px; margin-bottom:4px; }
  .dapji-h .bk{ background:var(--pt); color:#fff; font-size:12px; padding:3px 10px; border-radius:6px; font-family:var(--sans); }
  .dapji-sub{ font-size:12.5px; color:var(--sub); margin-bottom:14px; }
  .sol{ background:#faf8f1; border:1px solid var(--line); border-radius:10px; padding:12px 15px; margin:10px 0; }
  .sol .sh{ font-family:var(--serif); font-weight:800; font-size:14.5px; color:var(--ink); margin-bottom:6px; }
  .sol .sh .sn{ background:var(--point); color:#fff; font-size:12px; border-radius:5px; padding:1px 9px; margin-right:7px; font-family:var(--sans); }
  .sol h5{ font-size:12.5px; color:var(--pt); margin:4px 0; font-weight:800; }
  .sol ol{ margin:4px 0 4px 18px; } .sol li{ font-size:13.5px; margin:4px 0; }
  .ans{ display:inline-block; background:var(--ok); color:#fff; font-weight:800; border-radius:6px; padding:2px 12px; font-size:14px; margin-top:4px; }
  .solvid{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:800; color:var(--pt); text-decoration:none; margin:8px 0 0 8px; border:1px solid var(--pt); border-radius:999px; padding:4px 12px; }

  .foot{ margin-top:28px; border-top:1px solid var(--line); padding-top:12px; font-size:11.5px; color:#9a927f; }

  /* 인쇄 버튼 */
  #prbar{ position:fixed; right:14px; bottom:14px; z-index:50; display:flex; gap:8px; }
  #prbar button{ display:inline-flex; align-items:center; gap:6px; background:var(--pt); color:#fff; border:none; border-radius:10px; padding:10px 15px; font-size:13px; font-weight:800; box-shadow:0 5px 16px rgba(90,75,45,.28); cursor:pointer; }
  #prbar button.eco{ background:var(--gold); }

  /* ===== 손으로 풀기 — 문제별 필기칸 + 자동 저장 ===== */
  .answerbox{ margin-top:10px; }
  .abhead{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:12px; color:var(--sub); margin-bottom:5px; }
  .abhead .ablabel{ color:var(--sub); font-weight:700; }
  .abhead .btnrow{ display:flex; align-items:center; gap:6px; margin-left:auto; flex-wrap:wrap; }
  /* 통일 버튼(모양 동일·아이콘 없음) */
  .abtn{ font-family:'Pretendard',sans-serif; border:1px solid var(--line); background:#fff; color:var(--ink);
         border-radius:8px; padding:6px 14px; font-size:12.5px; font-weight:700; cursor:pointer;
         white-space:nowrap; line-height:1.1; }
  .abtn:active{ transform:translateY(1px); }
  .abtn-draw{ background:var(--point); color:#fff; border-color:var(--point); }
  .abtn-submit{ background:var(--pt); color:#fff; border-color:var(--pt); }
  .abtn-submit.done{ background:#fff; color:var(--pt); }
  /* 지우개 팝오버 */
  .erwrap{ position:relative; display:inline-block; }
  .ermenu{ display:none; position:absolute; right:0; top:calc(100% + 4px); z-index:20;
           background:#fff; border:1px solid var(--line); border-radius:9px; box-shadow:0 6px 18px rgba(90,75,45,.2);
           padding:5px; min-width:126px; }
  .erwrap.open .ermenu{ display:block; }
  .ermenu button{ display:block; width:100%; text-align:left; border:none; background:none; color:var(--ink);
           font-family:'Pretendard',sans-serif; font-size:12.5px; font-weight:700; padding:7px 10px; border-radius:6px; cursor:pointer; }
  .ermenu button:hover{ background:var(--hi); }
  .psol{ display:none; } .psol.open{ display:block; }
  canvas.board{ display:block; width:100%; height:200px; border:1px dashed #d8cfba; border-radius:10px; background:#fffef8; touch-action:none; cursor:crosshair; }
  /* 필기 도구(플로팅) */
  #fab{ position:fixed; left:14px; bottom:14px; z-index:60; background:var(--point); color:#fff; border:none; border-radius:999px; padding:11px 18px; font-size:14px; font-weight:800; box-shadow:0 5px 16px rgba(90,45,55,.35); cursor:pointer; }
  #dbtools{ position:fixed; left:14px; bottom:64px; z-index:60; display:none; flex-direction:column; gap:7px; background:#fffdf6; border:1px solid var(--line); border-radius:12px; padding:10px; box-shadow:0 6px 20px rgba(90,75,45,.22); }
  #dbtools.show{ display:flex; }
  #dbtools .row{ display:flex; gap:6px; align-items:center; }
  #dbtools button{ border:1px solid var(--line); background:#fff; border-radius:8px; padding:5px 9px; font-size:12px; font-weight:700; cursor:pointer; color:var(--ink); }
  #dbtools button.on{ background:var(--pt); color:#fff; border-color:var(--pt); }
  #dbtools .sw{ width:22px; height:22px; border-radius:50%; border:2px solid #fff; box-shadow:0 0 0 1px var(--line); cursor:pointer; padding:0; }
  #dbtools .sw.on{ box-shadow:0 0 0 2px var(--ink); }

  /* 인쇄 ① 원본 (기본: 문제편만 · 답지는 열려 있을 때만) */
  @media print{
    body{ background:#fff; } #prbar,.vidbar,#fab,#dbtools,#dapjigate,.answerbox,.psol{ display:none!important; }
    .page{ box-shadow:none; margin:0; max-width:none; padding:0; }
    .type,.concept,.plus,.sol{ page-break-inside:avoid; }
    #dapji{ page-break-before:always; }
    a{ color:var(--pt); text-decoration:none; }
    @page{ size:A4; margin:12mm; }
  }
  /* 인쇄 ② 절약(2단·배경최소, 색 살림) */
  @media print{
    body.eco .concept{ display:block; } body.eco .plus{ margin-top:8px; }
    body.eco .type,body.eco .def,body.eco .plus,body.eco .sol{ background:#fff!important; }
    @page{ size:A4; margin:8mm; }
  }

  /* ===== 교과서식 수식 조판 (글씨체·세로분수·근호) ===== */
  .def, .cbody, .cbody p, .qtext, .plus li, .plus ul li,
  .frac, .limx, .sqrt, .sol ol li, .sol li, .tea, .ans{
    font-family:'Cambria Math','Times New Roman','Noto Sans KR','Malgun Gothic',sans-serif;
  }
  .frac{ display:inline-flex; flex-direction:column; vertical-align:middle; text-align:center;
         margin:0 .22em; line-height:1.2; font-weight:600; }
  .frac>.num{ border-bottom:1.5px solid currentColor; padding:0 .4em .08em; white-space:nowrap; }
  .frac>.den{ padding:.08em .4em 0; white-space:nowrap; }
  .sqrt{ display:inline-flex; flex-direction:row; flex-wrap:nowrap; align-items:flex-start;
         vertical-align:middle; margin:0 .08em; font-weight:600; white-space:nowrap; }
  .sqrt>.rad{ font-size:1.1em; line-height:1.05; }
  .sqrt>.rbody{ border-top:1.4px solid currentColor; padding:.1em .2em 0; margin-top:.12em; }

  /* 그래프 라벨 — 교과서 글씨체·잘 보이게 */
  svg text{ font-family:'Cambria Math','Times New Roman',sans-serif !important; font-weight:600; }

  /* ===== 손으로 풀기: 문제별 미리보기 + 전체화면 그리기 창 ===== */
  canvas.board{ pointer-events:none; background:transparent; }   /* 인라인은 미리보기 전용 */
  /* (버튼 스타일은 위 .abtn 통일 규칙으로 일원화) */
  /* 전체화면 그리기 창 */
  #dmWrap{ position:fixed; inset:0; z-index:300; background:#fffdf6; display:none; flex-direction:column; }
  #dmWrap.show{ display:flex; }
  #dmHead{ flex:0 0 auto; display:flex; align-items:center; gap:10px; flex-wrap:wrap;
           padding:10px 14px; border-bottom:2px solid var(--pt); background:var(--paper); }
  #dmTitle{ font-family:var(--serif); font-weight:800; font-size:16px; color:var(--pt); }
  #dmQ{ font-size:13.5px; color:var(--sub); flex:1 1 320px; min-width:0;
        white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  #dmHead .g{ display:flex; gap:5px; align-items:center; }
  #dmHead button{ border:1px solid var(--line); background:#fff; border-radius:8px; padding:6px 10px;
                  font-size:12.5px; font-weight:700; cursor:pointer; color:var(--ink); }
  #dmHead button.on{ background:var(--pt); color:#fff; border-color:var(--pt); }
  #dmHead .sw{ width:24px; height:24px; border-radius:50%; padding:0; border:2px solid #fff;
               box-shadow:0 0 0 1px var(--line); }
  #dmHead .sw.on{ box-shadow:0 0 0 2px var(--pt); }
  #dmDone{ background:var(--pt) !important; color:#fff !important; border-color:var(--pt) !important; font-weight:800; }
  #dmCanvasBox{ flex:1 1 auto; position:relative; margin:10px; border:1px dashed #c9c0a4;
                border-radius:10px; background:#fff; overflow:hidden; }
  #dmCanvas{ position:absolute; inset:0; width:100%; height:100%; touch-action:none; cursor:crosshair; }
  @media print{ #dmWrap{ display:none !important; } }

  /* 그리기 창 — 맨 위 왼쪽 '원래 문제' 표시 (풀면서 문제 보이게) */
  #dmProb{ flex:0 0 auto; order:-1; display:flex; align-items:flex-start; gap:10px;
           padding:12px 16px 10px; background:#fffdf6; border-bottom:2px solid var(--pt); }
  #dmProb .pn{ flex:0 0 auto; background:var(--point); color:#fff; font-family:var(--serif);
               font-weight:800; font-size:13px; padding:4px 11px; border-radius:6px; margin-top:2px; }
  #dmProb .pbody{ flex:1 1 auto; min-width:0; display:flex; gap:16px; align-items:flex-start; }
  #dmProb .ptxt{ flex:1 1 auto; font-size:17px; line-height:1.55; color:var(--ink);
                 font-family:'Cambria Math','Times New Roman','Noto Sans KR','Malgun Gothic',sans-serif;
                 white-space:normal; overflow:visible; }
  #dmProb .pfig{ flex:0 0 auto; }
  #dmProb .pfig svg{ max-height:150px; width:auto; }
  #dmHead{ border-bottom:1px solid var(--line); }

  /* ===== 그리기 창: 얇은 문제바 1줄 + 툴바 같은 줄 → 캔버스 최대 ===== */
  #dmProb{ order:-1; padding:5px 10px 5px 8px !important; gap:7px !important; align-items:center !important;
           border-bottom:none !important; }
  #dmProb .pn{ font-size:11.5px !important; padding:3px 8px !important; margin-top:0 !important; }
  #dmProb .pbody{ gap:8px !important; align-items:center !important; }
  #dmProb .ptxt{ font-size:13.5px !important; line-height:1.35 !important;
                 display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  #dmProb .pfig{ flex:0 0 auto; }
  #dmProb .pfig svg{ max-height:46px !important; width:auto !important; }
  #dmZoom{ flex:0 0 auto; border:1px solid var(--line); background:#fff; border-radius:7px;
           padding:4px 9px; font-size:12px; font-weight:800; cursor:pointer; color:var(--point); }
  #dmHead{ padding:5px 10px !important; border-bottom:2px solid var(--pt) !important; border-top:1px solid var(--line); }
  #dmHead button{ padding:4px 8px !important; font-size:11.5px !important; }
  #dmHead .sw{ width:20px !important; height:20px !important; }
  #dmCanvasBox{ margin:6px !important; }
  /*  문제 크게 보기 팝업 */
  #dmBig{ position:absolute; inset:0; z-index:20; background:rgba(255,253,246,.98); display:none;
          padding:22px 26px; overflow:auto; }
  #dmBig.show{ display:block; }
  #dmBig .bq{ font-size:20px; line-height:1.6; color:var(--ink);
              font-family:'Cambria Math','Times New Roman','Noto Sans KR','Malgun Gothic',sans-serif; }
  #dmBig .bfig{ margin-top:14px; }
  #dmBig .bfig svg{ max-height:320px; width:auto; }
  #dmBig .bclose{ position:absolute; top:12px; right:16px; background:var(--pt); color:#fff; border:none;
                  border-radius:8px; padding:7px 14px; font-weight:800; font-size:13px; cursor:pointer; }

  /* ===== 본문 글씨 크기: 기본을 키우고 [가−/가+]로 조절 (--zoom) ===== */
  body{ --zoom:1; }
  .def, .cbody, .cbody p{ font-size:calc(19.5px * var(--zoom)) !important; line-height:1.62 !important; }
  .type .qtext{ font-size:calc(19.5px * var(--zoom)) !important; line-height:1.62 !important; }
  .plus li, .plus ul li{ font-size:calc(15px * var(--zoom)) !important; line-height:1.55 !important; }
  .plus .ph{ font-size:calc(14.5px * var(--zoom)) !important; }
  .sol ol li, .sol li{ font-size:calc(16.5px * var(--zoom)) !important; line-height:1.6 !important; }
  .type .tt{ font-size:calc(16px * var(--zoom)) !important; }
  .sub-h{ font-size:calc(16px * var(--zoom)) !important; }
  .q .ql{ font-size:calc(13px * var(--zoom)) !important; }
  /* 글씨 크기 조절 바 */
  #fsbar{ position:fixed; right:14px; bottom:62px; z-index:60; display:flex; align-items:center; gap:6px;
          background:#fffdf6; border:1px solid var(--line); border-radius:999px; padding:5px 9px;
          box-shadow:0 4px 14px rgba(90,75,45,.18); }
  #fsbar button{ border:1px solid var(--line); background:#fff; border-radius:8px; cursor:pointer;
                 font-weight:800; color:var(--pt); padding:3px 9px; font-size:13px; }
  #fsbar button:active{ transform:translateY(1px); }
  #fsnow{ font-size:11.5px; font-weight:800; color:var(--sub); min-width:34px; text-align:center; }
  @media print{ #fsbar{ display:none !important; } }

  /* ===== 그리기 창: 그래프를 캔버스 배경으로 크게 (공간 0) ===== */
  #dmBgFig{ position:absolute; top:16px; left:20px; z-index:1; pointer-events:none;
            opacity:.95; transition:opacity .2s; }
  #dmBgFig svg{ height:min(46vh, 340px); width:auto; }
  #dmBgFig.off{ display:none; }
  #dmCanvas{ z-index:2; }
  #dmBig{ z-index:20; }
  /* 상단 썸네일은 배경에 크게 있으니 숨김 → 상단 더 얇게 */
  #dmProb .pfig{ display:none !important; }
  #dmFigBtn.off{ opacity:.5; }

  /* ===== '문제 크게' 상태에서도 그 위에 바로 필기 =====
     팝업을 캔버스 아래(배경)로 내리고 클릭도 통과시킨다. 닫기 버튼만 살림 */
  #dmBig{ z-index:1 !important; pointer-events:none !important; background:rgba(255,253,246,.99) !important; }
  #dmBig .bclose{ pointer-events:auto !important; z-index:25 !important; }
  #dmCanvas{ z-index:2 !important; }

  /* '문제 접기' 버튼 — 캔버스(z-index:2) 위로 독립시켜 클릭이 먹히게 */
  #dmFold{ position:absolute; top:12px; right:16px; z-index:25; display:none;
           background:var(--pt); color:#fff; border:none; border-radius:8px;
           padding:8px 15px; font-weight:800; font-size:13px; cursor:pointer;
           box-shadow:0 3px 10px rgba(0,0,0,.2); pointer-events:auto; }
  #dmFold.show{ display:block; }
  #dmBig .bclose{ display:none !important; }

  /* ===== 문제를 '그리기 속'에 포함 — 상단 문제바··접기 버튼 제거 ===== */
  #dmProb{ display:none !important; }          /* 얇은 문제바 제거 */
  #dmZoom, #dmFold{ display:none !important; } /*  문제 크게 · 접기 제거 */
  #dmBgFig{ display:none !important; }         /* 중복 배경그래프 제거 (dmBig에 포함) */
  /* 문제+그래프를 캔버스 배경으로 상시 표시 */
  #dmBig{ display:block !important; z-index:1 !important; pointer-events:none !important;
          background:transparent !important; padding:20px 26px !important; overflow:hidden !important; }
  #dmBig.hidden{ display:none !important; }
  #dmBig .bq{ font-size:19px !important; line-height:1.6 !important; }
  #dmBig .bfig{ margin-top:12px !important; }
  #dmBig .bfig svg{ max-height:min(40vh,300px) !important; width:auto !important; }
  #dmCanvas{ z-index:2 !important; }
  #dmHead{ border-top:none !important; }

  /* ===== 문제별 난이도 = 예상 정답률 (기본70% · 중간50% · 상위10% · 최상위3%) ===== */
  .th .dif{ font-size:11.5px; font-weight:800; padding:2px 10px; border-radius:999px;
            margin-left:9px; border:1px solid; font-family:var(--sans); white-space:nowrap; }
  .th .dif i{ font-style:normal; opacity:.75; font-weight:700; margin-left:3px; }
  .dif.g1{ color:#3f7a4a; border-color:#a9c9b0; background:#eef7f0; }  /* 기본 70% */
  .dif.g2{ color:#9a7620; border-color:#e0cb8a; background:#fdf6e3; }  /* 중간 50% */
  .dif.g3{ color:#b5652c; border-color:#e8bb92; background:#fdf0e6; }  /* 상위 10% */
  .dif.g4{ color:#8f3540; border-color:#d9a3aa; background:#fbeef0; }  /* 최상위 3% */
  .difsum{ display:inline-flex; align-items:center; gap:8px; margin-left:10px; font-size:12px;
           color:#e8efe2; font-weight:700; font-family:var(--sans); }
  .difsum b{ color:#ffe9a8; }
  @media print{ .th .dif{ border-color:#bbb; } }

  /* ===== 사진 찍어 올리기 + 크롭 ===== */
  #pcWrap{ position:fixed; inset:0; z-index:400; background:#1d1a14; display:none; flex-direction:column; }
  #pcWrap.show{ display:flex; }
  #pcHead{ flex:0 0 auto; display:flex; align-items:center; gap:10px; padding:9px 14px;
           background:var(--paper); border-bottom:2px solid var(--pt); flex-wrap:wrap; }
  #pcHead .msg{ flex:1 1 auto; font-size:13.5px; font-weight:700; color:var(--ink); }
  #pcHead button{ border:1px solid var(--line); background:#fff; border-radius:8px; padding:6px 12px;
                  font-size:12.5px; font-weight:800; cursor:pointer; color:var(--ink); }
  #pcOk{ background:var(--pt) !important; color:#fff !important; border-color:var(--pt) !important; }
  #pcStage{ flex:1 1 auto; position:relative; overflow:hidden; display:flex;
            align-items:center; justify-content:center; touch-action:none; }
  #pcImg{ max-width:100%; max-height:100%; user-select:none; -webkit-user-drag:none; }
  #pcSel{ position:absolute; border:2px dashed #ffd166; background:rgba(255,209,102,.16); display:none; }
  #pcSel.show{ display:block; }
  #pcHint{ position:absolute; bottom:12px; left:50%; transform:translateX(-50%); color:#fff;
           background:rgba(0,0,0,.55); border-radius:999px; padding:6px 16px; font-size:12.5px; font-weight:700; }
  #dmPhotoBtn{ background:#2f5fa0 !important; color:#fff !important; border-color:#2f5fa0 !important; }

  /* 팜 리젝션 토글 버튼 */
  #dmPalmBtn{ border:1px solid var(--line) !important; }
  #dmPalmBtn.on{ background:#2f5fa0 !important; color:#fff !important; border-color:#2f5fa0 !important; }

  /* ===== AI가 읽은 풀이 확인 («이게 맞니?») ===== */
  #askWrap{ position:absolute; inset:0; z-index:30; background:#fffdf6; display:none;
            flex-direction:column; padding:14px 18px; }
  #askWrap.show{ display:flex; }
  #askHead{ flex:0 0 auto; font-family:var(--serif); font-weight:800; font-size:17px; color:var(--pt);
            display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
  #askHead .warn{ font-size:12px; font-weight:700; color:#b5652c; background:#fdf0e6;
                  border:1px solid #e8bb92; border-radius:999px; padding:2px 10px; display:none; }
  #askHead .warn.show{ display:inline-block; }
  #askBody{ flex:1 1 auto; display:flex; gap:14px; margin-top:10px; min-height:0; }
  #askImg{ flex:0 0 38%; border:1px solid var(--line); border-radius:10px; background:#fff;
           display:flex; align-items:center; justify-content:center; overflow:hidden; }
  #askImg img{ max-width:100%; max-height:100%; }
  #askRight{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:10px; overflow:auto; }
  #askLines{ flex:0 0 auto; display:flex; flex-direction:column; gap:7px; }
  #askLines .ln{ display:flex; align-items:center; gap:8px; }
  #askLines .no{ flex:0 0 auto; width:24px; height:24px; border-radius:50%; background:var(--pt);
                 color:#fff; font-size:12px; font-weight:800; display:flex; align-items:center; justify-content:center; }
  #askLines input{ flex:1 1 auto; border:1px solid var(--line); border-radius:8px; padding:8px 11px;
                   font-size:17px; background:#fff; color:var(--ink);
                   font-family:'Cambria Math','Times New Roman','Noto Sans KR',sans-serif; }
  #askLines input:focus{ outline:none; border-color:var(--pt); box-shadow:0 0 0 3px rgba(107,127,87,.15); }
  #askFoot{ flex:0 0 auto; display:flex; gap:8px; margin-top:10px; flex-wrap:wrap; align-items:center; }
  #askFoot .hint{ flex:1 1 auto; font-size:12.5px; color:var(--sub); }
  #askFoot button{ border:1px solid var(--line); background:#fff; border-radius:9px; padding:8px 14px;
                   font-size:13px; font-weight:800; cursor:pointer; color:var(--ink); }
  #askOk{ background:var(--pt) !important; color:#fff !important; border-color:var(--pt) !important; }
  #askBusy{ position:absolute; inset:0; z-index:40; background:rgba(255,253,246,.9); display:none;
            align-items:center; justify-content:center; font-weight:800; color:var(--pt); font-size:15px; }
  #askBusy.show{ display:flex; }
  /* 문제 카드에 남는 '정리된 내 풀이' */
  .mysol{ margin:8px 0 0 36px; border-left:3px solid var(--pt); background:#f4f7ef; border-radius:0 10px 10px 0;
          padding:9px 14px; font-size:16px; line-height:1.7; display:none;
          font-family:'Cambria Math','Times New Roman','Noto Sans KR',sans-serif; }
  .mysol.show{ display:block; }
  .mysol .h{ font-size:11.5px; font-weight:800; color:var(--pt); font-family:var(--sans); margin-bottom:3px; }

    /* 골든샘플: 본문·문제·해설=본명조600 / UI=Pretendard */
    .qtext,.def,.cbody p,.psol,.sol,.concept{ font-family:'Noto Serif KR',serif; font-weight:600; }
    .brandbar,.unit-h,.sub-h,.tag,.tn,.tt,.dif,.ql,.callno,button,.no,.abhead,.sec,.difsum,.plus,.ph,.bcode,.pnum,.pcode{ font-family:'Pretendard',sans-serif; }
    .katex{ font-size:1.04em; }
    /* 부르는 번호(1~9) 마룬 사각 */
    .callno{ display:inline-flex; width:31px; height:31px; border-radius:9px; background:var(--point); color:#fff;
             font-weight:800; font-size:17px; align-items:center; justify-content:center; margin-right:10px;
             box-shadow:0 2px 5px rgba(143,53,64,.25); vertical-align:middle; }
    .pnum{ font-size:11.5px; color:var(--sub); font-weight:700; margin-left:8px; }
    .pcode{ font-size:11px; color:#b3aa98; font-weight:600; letter-spacing:.3px; margin-left:6px; }
    .th{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
    .th .tn{ margin-left:0; }
  
    /* ===== 도전(유사) 문제 섹션 ===== */
    details.chal{ margin:8px 0 2px 0; border:1px solid var(--line); border-radius:10px; background:#fbf8f0; overflow:hidden; }
    details.chal>summary{ display:none; }   /* 요약바 숨김 — 버튼바의 '비슷한 문제'로 연다 */
    details.chal>summary::-webkit-details-marker{ display:none; }
    details.chal>summary::before{ content:'▸ '; }
    details.chal[open]>summary::before{ content:'▾ '; }
    .chalbody{ padding:10px 15px 14px; }
    .chalgroup{ margin-top:8px; }
    .chaltitle{ font-family:'Pretendard',sans-serif; font-weight:800; font-size:12.5px; color:var(--pt); margin:8px 0 5px; }
    .simprob{ display:flex; align-items:flex-start; gap:8px; flex-wrap:wrap; padding:8px 0; border-top:1px dashed var(--line); }
    .simno{ flex:0 0 auto; width:22px; height:22px; border-radius:6px; background:var(--point); color:#fff; font-family:'Pretendard'; font-weight:800; font-size:12px; display:flex; align-items:center; justify-content:center; }
    .simdif{ flex:0 0 auto; font-family:'Pretendard'; font-weight:800; font-size:11px; border-radius:999px; padding:1px 8px; }
    .simdif.g1{ color:#5f7a55; border:1px solid #a9bf9c; } .simdif.g2{ color:#b3974e; border:1px solid #d6be86; }
    .simdif.g3{ color:#b06a2c; border:1px solid #e0b48c; } .simdif.g4{ color:#8f3540; border:1px solid #cf9096; }
    .simq{ flex:1 1 260px; font-family:'Noto Serif KR',serif; font-weight:600; font-size:16px; line-height:1.6; }
    details.simans{ flex:0 0 auto; }
    details.simans>summary{ cursor:pointer; list-style:none; font-family:'Pretendard'; font-weight:800; font-size:11.5px; color:#fff; background:var(--pt); border-radius:6px; padding:3px 10px; }
    details.simans>summary::-webkit-details-marker{ display:none; }
    .simav{ font-family:'Noto Serif KR',serif; font-weight:700; color:var(--point); font-size:15px; margin-left:6px; }
    @media print{ details.chal{ display:none !important; } }

    /* 수학 기호 팔레트 */
    #mathpad{ display:none; flex-wrap:wrap; gap:5px; padding:8px 4px 2px; }
    #askWrap.show #mathpad{ display:flex; }
    #mathpad button{ min-width:38px; height:34px; border:1px solid var(--line); background:#fff; border-radius:8px;
                     font-family:'Cambria Math','Times New Roman','Noto Serif KR',serif; font-size:16px; font-weight:600;
                     color:var(--ink); cursor:pointer; padding:0 8px; }
    #mathpad button:hover{ background:#f4f7ef; border-color:var(--pt); }
    #mathpad button:active{ background:var(--pt); color:#fff; }
    #mathpad button.mpdel{ font-size:15px; color:var(--point); }

    /* 유사(도전) 문제 — 인터랙티브 */
    .simprob{ padding:11px 0; border-top:1px dashed var(--line); }
    .simhead{ display:flex; align-items:center; gap:8px; margin-bottom:5px; }
    .simcode{ font-family:'Pretendard',sans-serif; font-weight:800; font-size:12px; color:#fff; background:var(--point); border-radius:6px; padding:2px 9px; }
    .simmach{ font-family:'Pretendard',sans-serif; font-size:10.5px; color:#b3aa98; letter-spacing:.2px; }
    .simdif{ margin-left:auto; font-family:'Pretendard',sans-serif; font-weight:800; font-size:11px; border-radius:999px; padding:1px 8px; }
    .simdif.g1{ color:#5f7a55; border:1px solid #a9bf9c; } .simdif.g2{ color:#b3974e; border:1px solid #d6be86; }
    .simdif.g3{ color:#b06a2c; border:1px solid #e0b48c; } .simdif.g4{ color:#8f3540; border:1px solid #cf9096; }
    .simq{ font-family:'Noto Serif KR',serif; font-weight:600; font-size:16px; line-height:1.65; margin:2px 0 8px; }
    .simact{ display:flex; gap:7px; justify-content:flex-end; }
    .simact button{ font-family:'Pretendard',sans-serif; font-weight:800; font-size:12.5px; border-radius:8px; padding:6px 14px; cursor:pointer; border:1px solid var(--line); background:#fff; color:var(--ink); }
    .simact button:first-child{ background:var(--point); color:#fff; border-color:var(--point); }
    .simact .simsub{ background:var(--pt); color:#fff; border-color:var(--pt); }
    .simact button:disabled{ opacity:.6; cursor:default; }
    /* 유사문제 타이핑 입력칸 — 좌우 최대·상하 작게(두 줄) */
    .simtype{ margin:2px 0 8px; }
    .simin{ width:100%; box-sizing:border-box; min-height:44px; border:1px solid var(--line); border-radius:8px; padding:8px 12px; font-size:16px; font-family:'Noto Serif KR',serif; background:#fffef8; color:var(--ink); resize:none; }
    .simin:focus{ outline:none; border-color:var(--point); background:#fff; }
    .simfb{ display:none; margin:7px 0 0; font-family:'Pretendard',sans-serif; font-weight:800; font-size:13px; }
    .simprob.revealed .simfb{ display:block; }
    .simfb.ok{ color:var(--ok); } .simfb.no{ color:var(--warn); }
    .simsol{ display:none; margin-top:9px; background:#f4f7ef; border-left:3px solid var(--pt); border-radius:0 9px 9px 0; padding:9px 13px; font-family:'Noto Serif KR',serif; font-weight:600; font-size:15px; color:#3f3a30; }
    .simprob.revealed .simsol{ display:block; }
    .simav{ color:var(--point); font-weight:800; margin-left:4px; }
    .simsolb{ margin-top:5px; color:#544c42; font-size:14.5px; line-height:1.7; }

    .soleasy{ font-family:'Noto Serif KR',serif; font-weight:600; font-size:16px; line-height:1.8; margin:4px 0 6px; color:#3f3a30; }
    .setag{ display:inline-block; font-family:'Pretendard',sans-serif; font-weight:800; font-size:11px; color:#fff; background:var(--pt); border-radius:5px; padding:1px 8px; margin-right:8px; vertical-align:2px; }
    .soldbtn{ font-family:'Pretendard',sans-serif; font-weight:800; font-size:12.5px; color:var(--point); background:#fff; border:1px solid #cf9096; border-radius:8px; padding:5px 13px; cursor:pointer; margin:2px 0 4px; }
    .soldbtn:hover{ background:#fbf3f4; }
    .soldetail{ display:none; margin-top:6px; }
    .soldetail ol{ margin:4px 0 0; }
    .simfig svg{ max-width:240px; }

    .myfeedback{ display:none; margin:8px 0 0 36px; border:1px solid #e0cfae; background:#fffaf0; border-radius:10px; padding:11px 15px; }
    .myfeedback.show{ display:block; }
    .fbhead{ font-family:'Pretendard',sans-serif; font-weight:800; font-size:13.5px; color:var(--point); display:flex; align-items:center; gap:8px; margin-bottom:5px; }
    .fbwait{ font-family:'Pretendard',sans-serif; font-weight:600; font-size:11.5px; color:var(--sub); }
    .fbok{ font-family:'Pretendard',sans-serif; font-weight:800; font-size:11.5px; color:#fff; background:#5f7a55; border-radius:999px; padding:1px 9px; }
    .fbno{ font-family:'Pretendard',sans-serif; font-weight:800; font-size:11.5px; color:#fff; background:#b06a2c; border-radius:999px; padding:1px 9px; }
    .fbpart{ font-family:'Pretendard',sans-serif; font-weight:800; font-size:11.5px; color:#fff; background:var(--gold); border-radius:999px; padding:1px 9px; }
    .fbrow{ font-family:'Noto Serif KR',serif; font-weight:600; font-size:14.5px; line-height:1.7; color:#3f3a30; margin:3px 0; }
    .fbrow b{ font-family:'Pretendard',sans-serif; font-weight:800; font-size:12.5px; margin-right:5px; }
    .fbgap{ color:#7a4a1c; } .fbnext{ color:#4a5e3f; }

    .bov{ display:none; position:fixed; inset:0; z-index:5000; background:rgba(63,58,48,.55); align-items:center; justify-content:center; padding:20px; }
    .bov.show{ display:flex; }
    .bcard{ background:var(--paper); border-radius:16px; padding:24px 26px; max-width:440px; width:100%; box-shadow:0 20px 60px rgba(0,0,0,.3); font-family:'Pretendard',sans-serif; }
    .bcard h3{ font-weight:800; font-size:18px; color:var(--pt); margin:0 0 10px; }
    .bsub{ font-size:13px; color:var(--sub); margin:0 0 12px; }
    .bcard input{ width:100%; box-sizing:border-box; border:1px solid var(--line); border-radius:9px; padding:11px 13px; font-size:16px; margin-bottom:12px; font-family:'Noto Serif KR',serif; }
    #bCode{ font-size:34px; font-weight:900; color:var(--point); letter-spacing:.12em; text-align:center; margin:6px 0; }
    .blink{ font-size:11.5px; color:var(--sub); word-break:break-all; background:#f6eee0; border-radius:8px; padding:8px 10px; margin-bottom:10px; }
    .bbtn{ font-weight:800; font-size:13px; border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:9px; padding:9px 16px; cursor:pointer; margin-right:6px; }
    .bbtn-p{ font-weight:800; font-size:14px; border:none; background:var(--pt); color:#fff; border-radius:9px; padding:11px 20px; cursor:pointer; width:100%; }
    .battlebox{ margin:8px 0 2px 36px; }
    .bwrap{ border:1px solid #d8cfba; background:#fbf8f0; border-radius:10px; padding:11px 15px; font-family:'Pretendard',sans-serif; }
    .bwrap .bt{ font-weight:800; font-size:13px; color:var(--point); margin-bottom:7px; }
    .bans{ display:flex; gap:6px; margin:6px 0; }
    .bans input{ flex:1; border:1px solid var(--line); border-radius:8px; padding:8px 11px; font-size:15px; font-family:'Noto Serif KR',serif; }
    .bans button{ font-weight:800; font-size:12.5px; background:var(--pt); color:#fff; border:none; border-radius:8px; padding:8px 14px; cursor:pointer; }
    .bside{ font-size:14px; margin:5px 0; color:#3f3a30; font-family:'Noto Serif KR',serif; }
    .bgood{ color:#5f7a55; font-weight:800; font-family:'Pretendard',sans-serif; font-size:12px; }
    .bsoft{ color:#b06a2c; font-weight:800; font-family:'Pretendard',sans-serif; font-size:12px; }
    .bwait{ color:var(--sub); font-size:12px; font-family:'Pretendard',sans-serif; }
    .bcheer{ margin-top:8px; padding:8px 12px; background:#eef4e8; border-radius:8px; font-family:'Noto Serif KR',serif; font-weight:700; color:#4a5e3f; font-size:14px; }
    .bnote{ width:100%; box-sizing:border-box; border:1px solid var(--line); border-radius:8px; padding:8px; font-size:13px; margin-top:8px; font-family:'Noto Serif KR',serif; resize:vertical; min-height:44px; }
    .bnote-send{ font-weight:800; font-size:12px; background:var(--gold); color:#fff; border:none; border-radius:8px; padding:7px 14px; cursor:pointer; margin-top:6px; }
    .btn-batt,.btn-ask{ font-family:'Pretendard',sans-serif; }

    /* ===== 초등 전용(body.elem): 크고 친근하고 여유있게 ===== */
    body.elem{ background:#f4efe1; line-height:1.9; }
    body.elem .page{ padding:28px 30px 44px; }
    body.elem .unit-h{ gap:16px; margin:16px 0 6px; }
    body.elem .unit-h .num{ font-size:32px; padding:8px 20px; border-radius:16px; }
    body.elem .unit-h .nm{ font-size:32px; }
    body.elem .sub-h{ font-size:19px; padding:6px 18px; border-radius:12px; margin:20px 0 10px; }
    body.elem .sub-h .tag{ font-size:13px; padding:2px 11px; border-radius:8px; }
    body.elem .cbody{ font-size:18px; }
    body.elem .def{ font-size:18px; line-height:1.85; padding:15px 20px; margin:12px 0; border-radius:16px; border-left:6px solid var(--pt); background:#fbf7ea; }
    body.elem .def b{ color:var(--point); }
    body.elem .concept{ gap:22px; margin:16px 0 10px; }
    body.elem .plus{ border-radius:18px; padding:16px 18px; background:#fdfbf3; }
    body.elem .plus .ph{ font-size:16px; }
    body.elem .plus li{ font-size:15.5px; line-height:1.8; margin:5px 0; }
    body.elem .sec{ font-size:19px; border-radius:12px; padding:11px 18px; }
    body.elem .difsum{ font-size:12.5px; }
    body.elem .qtext{ font-size:19px; line-height:1.9; }
    body.elem .th .tt{ font-size:16px; }
    body.elem .simq{ font-size:18px; line-height:1.85; }
    body.elem .soleasy{ font-size:17px; }
    /* 문제 번호칸도 조금 더 크고 둥글게 */
    body.elem .callno{ border-radius:12px; }
    @media(max-width:640px){ body.elem .def, body.elem .cbody, body.elem .qtext{ font-size:17px; } body.elem .unit-h .nm, body.elem .unit-h .num{ font-size:27px; } }

/* ===== 객관식 보기 (전 과목 공용) ===== */
.passage{ background:#faf7ef; border:1px solid var(--line); border-left:4px solid var(--gold); border-radius:8px; padding:12px 15px; margin:8px 0 12px; font-size:15px; line-height:1.75; white-space:pre-line; }
.passage .pglabel{ display:inline-block; font-family:'Pretendard',sans-serif; font-weight:800; font-size:11.5px; color:var(--gold); background:#f3ead2; border-radius:6px; padding:1px 9px; margin-bottom:6px; }
.choices{ margin:10px 0 2px; display:flex; flex-direction:column; gap:7px; }
.choicebtn{ text-align:left; font-family:'Noto Serif KR',serif; font-size:15.5px; line-height:1.5; color:var(--ink); background:#fff; border:1.5px solid var(--line); border-radius:10px; padding:9px 14px; cursor:pointer; transition:background .12s, border-color .12s; }
.choicebtn:hover{ background:var(--hi); }
.choicebtn .cnum{ font-family:'Pretendard',sans-serif; font-weight:800; color:var(--pt); margin-right:8px; }
.choicebtn.sel{ background:#eef4e8; border-color:var(--pt); }
.choicebtn.correct{ background:#e7f2e0; border-color:var(--ok); }
.choicebtn.correct .cnum{ color:var(--ok); }
.choicebtn.wrong{ background:#fae9e0; border-color:var(--point); }
.choicebtn.wrong .cnum{ color:var(--point); }
.choicebtn.graded{ cursor:default; }
.choicefb{ font-family:'Pretendard',sans-serif; font-weight:800; font-size:13px; margin:8px 2px 0; }
.choicefb.ok{ color:var(--ok); } .choicefb.no{ color:var(--point); }
@media print{ .choices .choicebtn{ break-inside:avoid; } .choicefb{ display:none; } }


/* ===== 대표문제 타이핑칸 (가장 쉬운 입력) + 공용 수식 팔레트 ===== */
.typewrap{ margin:2px 0 6px; }
.mytype{ width:100%; box-sizing:border-box; min-height:52px; resize:vertical; border:1.5px solid var(--pt); border-radius:10px; padding:10px 13px; font-family:'Noto Serif KR',serif; font-size:16px; line-height:1.5; background:#fffef8; color:var(--ink); }
.mytype:focus{ outline:none; border-color:var(--point); box-shadow:0 0 0 3px rgba(143,53,64,.12); }
.mytype::placeholder{ color:#b3aa98; font-family:'Pretendard',sans-serif; font-size:14px; }
.myfb{ font-family:'Pretendard',sans-serif; font-weight:800; font-size:13px; margin:2px 2px 6px; }
.myfb.ok{ color:var(--ok); } .myfb.no{ color:var(--point); }
/* 화면 하단 떠있는 수식 팔레트 (타이핑칸 포커스 시) */
#typepad{ position:fixed; left:50%; transform:translateX(-50%); bottom:12px; z-index:120; display:none;
  flex-wrap:wrap; gap:5px; justify-content:center; max-width:min(680px,94vw);
  background:#fffdf6; border:1px solid var(--line); border-radius:14px; padding:9px 11px; box-shadow:0 8px 26px rgba(90,75,45,.28); }
#typepad.on{ display:flex; }
#typepad button{ min-width:40px; border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:9px; padding:8px 10px; font-size:15px; font-weight:700; cursor:pointer; font-family:'Cambria Math','Times New Roman',serif; }
#typepad button:active{ background:var(--hi); }
#typepad .mpdel{ color:var(--point); font-family:'Pretendard',sans-serif; }
#typepad .mpclose{ color:var(--sub); font-family:'Pretendard',sans-serif; font-size:13px; }
@media print{ #typepad{ display:none!important; } .mytype{ border-color:var(--line); } .myfb{ display:none; } }

/* 해설 안 그림(도형 문제 = 그림 보며 이해) */
.solfig{ text-align:center; margin:4px 0 12px; padding:12px; background:#fbf8f0; border:1px solid var(--line); border-radius:12px; }
.solfig svg{ max-width:min(300px,72vw); height:auto; }
.solfig .solfiglabel{ display:block; margin-top:5px; font-family:'Pretendard',sans-serif; font-size:12px; color:var(--sub); font-weight:700; }
@media(max-width:680px){ .solfig svg{ max-width:min(240px,64vw)!important; } }
