/* ============================================================
     Boost design tokens (DESIGN.md 準拠)
     ============================================================ */
  :root {
    --primary:#FF9500; --primary-light:#FFB340; --primary-dark:#E6850E;
    --primary-12:rgba(255,149,0,.12); --primary-08:rgba(255,149,0,.08); --primary-24:rgba(255,149,0,.24);
    --success:#34C759; --success-12:rgba(52,199,89,.12);
    --error:#FF3B30; --error-12:rgba(255,59,48,.12);
    --blue:#007AFF;
    /* 白ベース: ページ地もカードも白。階層は border と --fill(薄いグレー)で作る */
    --bg:#FFFFFF; --surface:#FFFFFF; --fill:#F2F2F7; --track:#E9E9EE;
    --text:#000000; --text-2:#8E8E93; --text-3:#C7C7CC; --border:#E5E5EA;
    --scrim:rgba(0,0,0,.32);
    --shadow-sm:0 2px 8px rgba(0,0,0,.06);
    --shadow-md:0 4px 12px rgba(0,0,0,.06);
    --shadow-lg:0 8px 20px rgba(0,0,0,.10);
    --shadow-btn:0 2px 8px rgba(255,149,0,.30);
    --shadow-fab:0 4px 16px rgba(255,149,0,.30);
    --jp:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic Medium",system-ui,-apple-system,sans-serif;
    --en:"Noto Serif","Hiragino Mincho ProN",Georgia,serif;
    --univ-mark-opacity:.06; --univ-mark-on:.09;
  }
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
      --primary:#FF9F0A; --primary-light:#FFB340; --primary-dark:#FFB340;
      --primary-12:rgba(255,159,10,.16); --primary-08:rgba(255,159,10,.10); --primary-24:rgba(255,159,10,.30);
      --success:#30D158; --success-12:rgba(48,209,88,.16);
      --error:#FF453A; --error-12:rgba(255,69,58,.16);
      --blue:#0A84FF;
      --bg:#000000; --surface:#1C1C1E; --fill:#2C2C2E; --track:#2C2C2E;
      --text:#FFFFFF; --text-2:#8E8E93; --text-3:#48484A; --border:#38383A;
      --scrim:rgba(0,0,0,.6);
      --shadow-sm:none; --shadow-md:none; --shadow-lg:none; --shadow-btn:none; --shadow-fab:none;
      --univ-mark-opacity:.12; --univ-mark-on:.18;
    }
  }
  :root[data-theme="dark"] {
    --primary:#FF9F0A; --primary-light:#FFB340; --primary-dark:#FFB340;
    --primary-12:rgba(255,159,10,.16); --primary-08:rgba(255,159,10,.10); --primary-24:rgba(255,159,10,.30);
    --success:#30D158; --success-12:rgba(48,209,88,.16);
    --error:#FF453A; --error-12:rgba(255,69,58,.16);
    --blue:#0A84FF;
    --bg:#000000; --surface:#1C1C1E; --fill:#2C2C2E; --track:#2C2C2E;
    --text:#FFFFFF; --text-2:#8E8E93; --text-3:#48484A; --border:#38383A;
    --scrim:rgba(0,0,0,.6);
    --shadow-sm:none; --shadow-md:none; --shadow-lg:none; --shadow-btn:none; --shadow-fab:none;
    --univ-mark-opacity:.12; --univ-mark-on:.18;
  }

  html{overflow-x:clip;}
  *{box-sizing:border-box;}
  body{
    margin:0; background:var(--bg); color:var(--text);
    font-family:var(--jp); font-size:16px; line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{margin:0;text-wrap:balance;} p{margin:0;} a{color:var(--blue);}
  :focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:8px;}
  .screen{max-width:780px;margin:0 auto;padding:0 20px 140px;position:relative;z-index:1;}

  /* ---------------- AppBar ---------------- */
  .appbar{
    position:sticky; top:0; z-index:40;
    background:color-mix(in srgb, var(--bg) 86%, transparent);
    backdrop-filter:saturate(180%) blur(20px);
    border-bottom:.5px solid var(--border);
  }
  .appbar-in{
    max-width:780px; margin:0 auto; padding:10px 20px;
    display:flex; align-items:center; gap:8px;
  }
  .brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--text);min-width:0;}
  .brand img{height:28px;width:auto;flex:none;}
  .brand-txt{display:flex;flex-direction:column;min-width:0;}
  .brand-name{font-size:14px;font-weight:600;line-height:1.2;}
  .brand-sub{font-size:10px;font-weight:600;color:var(--text-2);line-height:1.2;}

  /* 目次はコンテンツ幅の右。テーマ切替は画面右上（下で fixed） */
  .toc-wrap{margin-left:auto;position:relative;}
  .appbar-in:has(.toc-wrap){padding-right:56px;}
  .toc-btn{
    display:inline-flex;align-items:center;gap:6px;
    height:32px;padding:0 12px;border-radius:20px;
    background:var(--primary-12);border:1px solid var(--primary-24);
    color:var(--primary-dark);font-family:inherit;font-size:12px;font-weight:600;
    cursor:pointer;max-width:150px;
  }
  .toc-btn .cur{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .toc-btn .caret{transition:transform .25s cubic-bezier(.2,.8,.2,1);}
  .toc-btn[aria-expanded="true"] .caret{transform:rotate(180deg);}

  .toc-pop{
    position:absolute; top:calc(100% + 8px); right:0;
    width:min(280px,calc(100vw - 32px));
    background:var(--surface); border:.5px solid var(--border);
    border-radius:16px; box-shadow:var(--shadow-lg);
    padding:6px; z-index:50;
    transform-origin:top right;
    opacity:0; transform:scale(.94) translateY(-6px); pointer-events:none;
    transition:opacity .2s ease, transform .24s cubic-bezier(.2,.8,.2,1);
  }
  .toc-pop.open{opacity:1;transform:none;pointer-events:auto;}
  .toc-pop a{
    display:flex;align-items:center;gap:10px;
    padding:10px 12px;border-radius:12px;
    text-decoration:none;color:var(--text);font-size:14px;font-weight:500;
  }
  .toc-pop a:hover{background:var(--fill);}
  .toc-pop a .num{
    width:22px;height:22px;border-radius:7px;flex:none;
    background:var(--fill);color:var(--text-2);
    display:grid;place-items:center;font-size:11px;font-weight:700;
  }
  .toc-pop a.active{background:var(--primary-12);color:var(--primary-dark);font-weight:600;}
  .toc-pop a.active .num{background:var(--primary);color:#fff;}

  /* スクロール進捗 */
  .progress{height:2px;background:transparent;}
  .progress i{display:block;height:100%;width:0;background:var(--primary);transition:width .1s linear;}

  /* ---------------- hero ---------------- */
  .hero{padding:24px 0 8px;}
  .float{animation:float 4.5s ease-in-out infinite;}
  @keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
  .hero .eyebrow{font-size:12px;font-weight:600;color:var(--primary-dark);margin-bottom:8px;}
  .hero h1{font-size:28px;font-weight:700;line-height:1.25;margin-bottom:12px;}
  .hero .lede{font-size:14px;line-height:1.7;color:var(--text-2);}

  .chiprow{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
  .chip{
    display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 12px;
    border-radius:20px;background:var(--surface);border:1px solid var(--border);
    font-size:12px;font-weight:600;color:var(--text);
  }
  .chip.on{background:var(--primary-12);border-color:var(--primary-24);color:var(--primary-dark);}
  .chip .stars i{color:var(--text-3);font-style:normal;}

  /* ---------------- cards / sections ---------------- */
  /* Web らしく: 箱で囲わず、横いっぱいに流して 1px の罫線で区切る */
  .block{padding:28px 0;border-top:1px solid var(--border);}
  /* 見出し直後のブロックは罫線を引かない。
     .sec-head も div なので :first-of-type では拾えず、隣接セレクタで指定する */
  .sec-head + .block{border-top:0;}

  section{scroll-margin-top:76px;}
  /* セクションの切れ目は Markdown の --- 相当の全幅ルール */
  .sec-head{
    display:flex;align-items:center;gap:12px;
    margin:44px 0 4px;padding-top:28px;
    border-top:1px solid var(--text-3);
  }
  .sec-head h2{font-size:24px;font-weight:700;}
  .sec-head .ico{
    width:28px;height:28px;border-radius:8px;flex:none;
    background:var(--primary);color:#fff;
    display:grid;place-items:center;font-size:14px;font-weight:700;
  }
  .sec-head .boo-fig{margin-left:auto;}
  /* Boo は 185〜216×220 と縦長。width と height を両方固定すると潰れるので
     高さだけ決めて width:auto にする */
  .sec-head .boo-mini{height:44px;width:auto;flex:none;}
  .block h3{font-size:19px;font-weight:600;line-height:1.35;}

  /* reveal animation */
  .rv{opacity:0;transform:translateY(14px);}
  .rv.in{opacity:1;transform:none;transition:opacity .5s ease,transform .5s cubic-bezier(.2,.8,.2,1);}

  /* ---------------- 問題 ---------------- */
  .exam{background:var(--fill);border-radius:12px;padding:20px;}
  .qhead{display:flex;align-items:center;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--border);margin-bottom:16px;}
  .qbadge{font-size:12px;font-weight:600;color:#fff;background:var(--primary);border-radius:8px;padding:4px 10px;}
  .qinst{font-size:14px;color:var(--text-2);}
  .qbody{font-size:17px;line-height:2.05;letter-spacing:.01em;}

  /* 図表つきの問題。画像は problem-figures バケットの公開URLを直接参照する。
     セクションは増やさず、セクション1「問題」の .exam の内側に置く。 */
  .fig{margin:16px 0 0;}
  /* 入試の図版は白地の走査画像。ダークで白い板が浮かないよう、
     枠と余白を付けて「紙が置いてある」見え方にする。
     画像自体は反転させない（グラフの色が壊れるため）。ダークで影は使わない。 */
  .fig img{
    display:block;width:100%;height:auto;max-height:70vh;object-fit:contain;
    background:#FFFFFF;border:1px solid var(--border);border-radius:10px;padding:12px;
  }
  .fig figcaption{margin-top:8px;font-size:13px;line-height:1.6;color:var(--text-2);text-align:center;}
  /* 画像が出ないときだけ見せる代替テキスト。
     描ける図が 1 枚も無いときは最初から見せる（is-shown）。 */
  .fig-fallback{display:none;margin-top:12px;font-size:14px;line-height:1.85;color:var(--text-2);}
  .fig-fallback.is-shown{display:block;}
  /* img の onerror が .fig に is-broken を付ける。JSが無くても alt は出る */
  .exam .fig.is-broken img,
  .exam .fig.is-broken figcaption{display:none;}
  .exam .fig.is-broken~.fig-fallback{display:block;}
  @media (max-width:520px){
    .fig img{padding:8px;max-height:60vh;border-radius:8px;}
  }

  ul.pts{list-style:none;margin:0;padding:0;display:grid;gap:12px;}
  ul.pts>li{position:relative;padding-left:20px;font-size:14px;line-height:1.7;}
  ul.pts>li::before{content:"";position:absolute;left:4px;top:.62em;width:6px;height:6px;border-radius:999px;background:var(--primary);}
  ul.pts>li.key::before{background:var(--error);}
  ul.pts>li b{font-weight:600;}

  /* ---------------- CTA ---------------- */
  .cta{
    background:linear-gradient(135deg,#FFAA33,#FF9500 55%,#FF7F00);
    border-radius:16px;padding:24px;margin:28px 0;color:#fff;box-shadow:var(--shadow-md);
    position:relative;overflow:hidden;
  }
  .cta .cta-boo{position:absolute;right:-6px;bottom:-10px;height:118px;width:auto;opacity:.9;pointer-events:none;}
  .cta .inner{position:relative;z-index:1;padding-right:88px;}
  .cta h3{font-size:18px;font-weight:700;margin-bottom:8px;color:#fff;}
  .cta p{font-size:14px;line-height:1.7;color:rgba(255,255,255,.94);margin-bottom:16px;}
  .cta .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    width:100%;min-height:48px;padding:0 24px;border-radius:12px;
    background:#fff;color:#C56A00;font-size:16px;font-weight:600;text-decoration:none;
    transition:transform .15s ease-in-out;
  }
  .cta .btn:active{transform:scale(.97);}
  .cta .sub{display:block;text-align:center;font-size:12px;color:rgba(255,255,255,.88);margin-top:12px;}
  @media (max-width:520px){
    .cta .inner{padding-right:0;}
    .cta .cta-boo{height:88px;opacity:.35;}
  }

  /* ---------------- 解説 ---------------- */
  .segno{
    display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:8px;
    background:var(--primary-12);color:var(--primary-dark);
    font-size:10px;font-weight:600;letter-spacing:.06em;margin-bottom:12px;
  }
  .ja-quote{font-size:16px;line-height:1.95;background:var(--fill);border-radius:12px;padding:12px 14px;margin-bottom:16px;}
  .minihead{font-size:12px;font-weight:600;color:var(--text-2);margin:20px 0 8px;}
  .approach{font-size:14px;line-height:1.75;background:var(--primary-08);border-radius:12px;padding:12px 14px;}
  /* Shared correct-answer surface. Legacy selectors keep existing pages compatible. */
  .answer-correct,.en-block,.xy .y{background:var(--success-12);}
  .en-block{border-radius:12px;padding:12px 14px;margin-top:8px;}
  .en-block.alt{background:var(--fill);}
  .en-tag{display:block;font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--text-2);margin-bottom:6px;}
  .en-text{font-family:var(--en);font-size:16px;line-height:1.8;}
  .en-text em{font-style:normal;background:var(--primary-24);border-radius:3px;padding:0 2px;}

  /* ---------------- 模範解答 ---------------- */
  .model-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
  .badge{font-size:10px;font-weight:600;padding:3px 8px;border-radius:8px;background:var(--primary-12);color:var(--primary-dark);}
  .badge.plain{background:var(--fill);color:var(--text-2);}
  .model-text{font-family:var(--en);font-size:17px;line-height:1.85;}
  .model-note{margin-top:16px;padding-top:12px;border-top:1px solid var(--border);font-size:14px;line-height:1.75;color:var(--text-2);}

  /* ---------------- 誤答 ---------------- */
  .miss-head{display:flex;align-items:flex-start;gap:8px;margin-bottom:12px;}
  .miss-head h3{font-size:16px;font-weight:600;flex:1;line-height:1.5;}
  .sev{flex:none;font-size:10px;font-weight:600;padding:3px 8px;border-radius:8px;white-space:nowrap;}
  .sev-l{background:var(--error);color:#fff;}
  .sev-m{background:var(--error-12);color:var(--error);}
  .sev-s{background:var(--fill);color:var(--text-2);border:1px solid var(--border);}
  .xy{display:grid;gap:8px;margin-bottom:12px;}
  .xy>div{display:grid;grid-template-columns:20px 1fr;gap:8px;align-items:start;border-radius:12px;padding:10px 12px;font-family:var(--en);font-size:15px;line-height:1.65;}
  .xy .x{background:var(--error-12);}
  .xy .mk{font-family:var(--jp);font-weight:700;font-size:14px;}
  .xy .x .mk{color:var(--error);} .xy .y .mk{color:var(--success);}
  .miss-why{font-size:14px;line-height:1.75;color:var(--text-2);}

  /* ---------------- 言いかえ ---------------- */
  .legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--text-2);margin-bottom:12px;}
  .alt-block{padding:16px 0;border-top:1px solid var(--border);}
  .legend + .alt-block{border-top:0;padding-top:0;}
  .alt-block:last-child{padding-bottom:0;}
  .alt-ja{font-size:16px;font-weight:600;margin-bottom:10px;}
  .alt-row{display:grid;grid-template-columns:22px minmax(0,1fr);gap:4px 8px;padding:8px 0;}
  .alt-row+.alt-row{border-top:1px solid var(--border);}
  .alt-mark{font-size:13px;font-weight:700;line-height:1.6;}
  .m-best{color:var(--success);} .m-ok{color:var(--text-2);} .m-skip{color:var(--text-3);} .m-no{color:var(--error);}
  .alt-en{font-family:var(--en);font-size:15.5px;line-height:1.6;}
  .alt-row.no .alt-en{color:var(--text-2);text-decoration:line-through;}
  .alt-note{grid-column:2;font-size:13px;line-height:1.6;color:var(--text-2);}

  /* ---------------- 型 ---------------- */
  .pat-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px;}
  .pat-name{font-family:var(--en);font-size:17px;font-weight:700;}
  .pat-sub{font-size:13px;color:var(--text-2);margin-bottom:10px;}
  .pat-use{font-size:14px;line-height:1.75;margin-bottom:12px;}
  .pat-ex{background:var(--fill);border-radius:12px;padding:10px 12px;display:grid;gap:6px;font-size:13.5px;line-height:1.6;}

  /* ---------------- 語彙 ---------------- */
  .tablewrap{overflow-x:auto;}
  table{border-collapse:collapse;width:100%;min-width:460px;}
  th,td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--border);vertical-align:top;}
  tr:last-child td{border-bottom:0;}
  thead th{font-size:12px;font-weight:600;color:var(--text-2);}
  td.v-en{font-family:var(--en);font-size:15.5px;white-space:nowrap;}
  td.v-ja{font-size:14px;white-space:nowrap;}
  td.v-note{font-size:13px;color:var(--text-2);line-height:1.6;}
  .trend{font-size:14px;line-height:1.8;}

  /* ---------------- related ---------------- */
  .rel-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--border);text-decoration:none;color:var(--text);}
  .rel-row:first-of-type{border-top:0;padding-top:0;}
  .rel-row:last-child{padding-bottom:0;}
  .rel-main{flex:1;min-width:0;}
  .rel-title{font-size:16px;font-weight:600;display:block;}
  .rel-sub{font-size:12px;color:var(--text-2);margin-top:2px;display:block;}
  .rel-arw{color:var(--text-3);font-size:18px;}

  /* ---------------- FAB ---------------- */
  .fabs{position:fixed;right:16px;bottom:16px;z-index:35;display:flex;flex-direction:column;align-items:flex-end;gap:10px;}
  .fab{
    display:inline-flex;align-items:center;gap:8px;
    height:52px;padding:0 20px;border-radius:999px;
    font-family:inherit;font-size:15px;font-weight:600;text-decoration:none;border:0;cursor:pointer;
    transition:transform .15s ease-in-out;
  }
  .fab:active{transform:scale(.97);}
  .fab-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-fab);}
  .fab-secondary{background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg);border:1px solid var(--border);}
  .fab .glyph{font-size:17px;line-height:1;}
  @media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .fab-primary{color:#000;}}
  :root[data-theme="dark"] .fab-primary{color:#000;}

  /* ---------------- bottom sheet ---------------- */
  .scrim{
    position:fixed;inset:0;background:var(--scrim);z-index:60;
    opacity:0;pointer-events:none;transition:opacity .25s ease;
    backdrop-filter:blur(2px);
  }
  .scrim.open{opacity:1;pointer-events:auto;}
  .sheet{
    position:fixed;left:0;right:0;bottom:0;z-index:61;
    background:var(--surface);border-radius:20px 20px 0 0;
    padding:8px 16px calc(24px + env(safe-area-inset-bottom));
    max-width:780px;margin:0 auto;
    transform:translateY(102%);
    transition:transform .34s cubic-bezier(.2,.9,.25,1);
    max-height:86vh;overflow-y:auto;
  }
  .sheet.open{transform:none;}
  .grabber{width:36px;height:5px;border-radius:999px;background:var(--text-3);margin:6px auto 14px;}
  .sheet h3{font-size:20px;font-weight:600;margin-bottom:6px;}
  .sheet .sheet-sub{font-size:13px;line-height:1.7;color:var(--text-2);margin-bottom:16px;}
  .ai-row{
    display:flex;align-items:center;gap:12px;width:100%;
    padding:14px;border-radius:12px;border:1px solid var(--border);
    background:var(--surface);color:var(--text);
    font-family:inherit;font-size:16px;font-weight:600;text-align:left;
    cursor:pointer;margin-bottom:8px;text-decoration:none;
    transition:transform .15s ease-in-out;
  }
  .ai-row:active{transform:scale(.98);}
  .ai-row:hover{background:var(--fill);}
  .ai-logo{
    width:36px;height:36px;border-radius:10px;flex:none;
    display:grid;place-items:center;
    background:var(--fill);
  }
  .ai-logo img,.ai-logo svg{width:22px;height:22px;display:block;}
  .ai-logo-copy{background:#8E8E93;color:#fff;font-size:15px;font-weight:800;}
  .ai-name{flex:1;} .ai-desc{display:block;font-size:11px;font-weight:500;color:var(--text-2);margin-top:2px;}
  .ai-arw{color:var(--text-3);}
  .sheet-note{font-size:12px;line-height:1.7;color:var(--text-2);background:var(--fill);border-radius:12px;padding:12px;margin-top:8px;}

  /* ---------------- toast ---------------- */
  .toast{
    position:fixed;left:50%;bottom:96px;z-index:70;
    transform:translate(-50%,16px);opacity:0;pointer-events:none;
    background:rgba(0,0,0,.86);color:#fff;font-size:13px;font-weight:600;
    padding:11px 18px;border-radius:999px;
    transition:opacity .25s ease,transform .25s cubic-bezier(.2,.8,.2,1);
    white-space:nowrap;
  }
  .toast.show{opacity:1;transform:translate(-50%,0);}

  footer{margin-top:32px;padding-top:16px;border-top:1px solid var(--border);font-size:12px;line-height:1.7;color:var(--text-2);}
  .footer-brand{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
  .footer-brand img{width:22px;height:22px;border-radius:6px;}
  .footer-brand span{font-size:13px;font-weight:600;color:var(--text);}

  @media (prefers-reduced-motion: reduce){
    *,*::before,*::after{animation:none !important;transition:none !important;}
    .rv{opacity:1 !important;transform:none !important;}
  }


/* ============================================================
   1) 大学ロゴ — スクロールしない、画面左からはみ出す薄い背景
   ============================================================ */
.univ-mark{
  position:fixed; left:-28vw; top:50%;
  transform:translateY(-50%);
  width:85vw; height:auto; max-width:none;
  pointer-events:none; user-select:none; z-index:0;
  opacity:var(--univ-mark-opacity);
  filter:grayscale(1);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .univ-mark{filter:grayscale(1) invert(1);}
}
:root[data-theme="dark"] .univ-mark{filter:grayscale(1) invert(1);}
@media (max-width:560px){
  .univ-mark{left:-42vw; width:110vw;}
}
/* AppBar・一覧カードの小さめロゴ */
.brand-univ{height:28px;width:auto;opacity:.9;flex:none;}
.univ-card .logo{height:36px;width:36px;object-fit:contain;flex:none;}
/* 京大の濃色紋章はダーク面で沈むので反転する */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .univ-card[data-univ="kyoto-univ"] .logo{filter:invert(1);}
}
:root[data-theme="dark"] .univ-card[data-univ="kyoto-univ"] .logo{filter:invert(1);}

/* ホーム: 既定は非表示。カード hover / キーボードフォーカスでフェードイン */
.univ-bg .univ-mark{
  opacity:0;
  transform:translateY(-50%) translateX(-8%) scale(.92);
  transition:opacity .5s ease, transform .65s cubic-bezier(.2,.8,.2,1);
}
.univ-bg .univ-mark.is-on,
body:has(.univ-card[data-univ="kyoto-univ"]:is(:hover,:focus-visible)) .univ-mark[data-univ="kyoto-univ"],
body:has(.univ-card[data-univ="tokyo-univ"]:is(:hover,:focus-visible)) .univ-mark[data-univ="tokyo-univ"],
body:has(.univ-card[data-univ="osaka-univ"]:is(:hover,:focus-visible)) .univ-mark[data-univ="osaka-univ"],
body:has(.univ-card[data-univ="kyushu-univ"]:is(:hover,:focus-visible)) .univ-mark[data-univ="kyushu-univ"],
body:has(.univ-card[data-univ="kobe-univ"]:is(:hover,:focus-visible)) .univ-mark[data-univ="kobe-univ"]{
  opacity:var(--univ-mark-on);
  transform:translateY(-50%) translateX(0) scale(1);
}

/* ============================================================
   4) テーマ切り替え
   ============================================================ */
.theme-btn{
  position:fixed; top:max(10px, env(safe-area-inset-top));
  right:max(16px, env(safe-area-inset-right));
  z-index:45;
  display:inline-grid;place-items:center;
  width:32px;height:32px;border-radius:999px;
  background:var(--fill);border:1px solid var(--border);
  color:var(--text-2);cursor:pointer;font-size:14px;line-height:1;
  font-family:inherit;padding:0;
}
.theme-btn:hover{color:var(--text);border-color:var(--text-3);}
.theme-btn .i-sun{display:none;}
.theme-btn .i-moon{display:block;}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .theme-btn .i-sun{display:block;}
  :root:not([data-theme="light"]) .theme-btn .i-moon{display:none;}
}
:root[data-theme="dark"] .theme-btn .i-sun{display:block;}
:root[data-theme="dark"] .theme-btn .i-moon{display:none;}
:root[data-theme="light"] .theme-btn .i-sun{display:none;}
:root[data-theme="light"] .theme-btn .i-moon{display:block;}

/* ============================================================
   6) 条件英作文の論理の流れ（ロジックツリー）
   ============================================================ */
.flow{display:grid;gap:0;margin:4px 0 8px;}
.flow-node{
  position:relative;border:1px solid var(--border);border-radius:12px;
  background:var(--surface);padding:14px 16px;
}
.flow-node.is-claim{border-color:var(--primary);background:var(--primary-08);}
.flow-node.is-close{border-style:dashed;}
.flow-role{
  display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:8px;
  background:var(--fill);color:var(--text-2);
  font-size:10px;font-weight:600;letter-spacing:.06em;margin-bottom:8px;
}
.flow-node.is-claim .flow-role{background:var(--primary-12);color:var(--primary-dark);}
.flow-ja{font-size:14px;font-weight:600;line-height:1.6;margin-bottom:6px;}
.flow-en{font-family:var(--en);font-size:13.5px;line-height:1.65;color:var(--text-2);}
.flow-arrow{
  justify-self:center;width:2px;height:20px;background:var(--border);position:relative;
}
.flow-arrow::after{
  content:"";position:absolute;left:50%;bottom:-1px;transform:translateX(-50%);
  border-left:5px solid transparent;border-right:5px solid transparent;
  border-top:6px solid var(--border);
}

/* ============================================================
   7) 各文の中に置く誤答・言いかえ
   ============================================================ */
.miss-in{
  border:1px solid var(--border);
  border-radius:12px;background:var(--surface);
  padding:12px 14px;margin-bottom:8px;
}
.miss-in .miss-head{margin-bottom:10px;}
.miss-in h4{font-size:14px;font-weight:600;line-height:1.5;margin:0;flex:1;}
.miss-in .xy>div{font-size:14px;padding:8px 10px;}
.miss-in .miss-why{font-size:13px;}
/* 文の中に入れる言いかえは、全体セクションより一段控えめに */
.block .alt-block{padding:10px 0;}
.block .alt-block .alt-ja{font-size:14px;}
.block .alt-block .alt-en{font-size:14.5px;}

/* ============================================================
   共通テスト英語リーディング 解答解説（スマホ優先）
   箱は「原本の枠」と「アプリへの案内」だけ。本文・解説は全幅で流す。
   ============================================================ */
:root{--gutter:16px;--doc-line:color-mix(in srgb,var(--text) 22%,transparent);}
.screen{padding:0 var(--gutter) 72px;max-width:760px;}
.appbar-in{max-width:760px;padding:8px var(--gutter);gap:10px;}
.appbar-in:has(.toc-wrap){padding-right:calc(var(--gutter) + 44px);}
.brand{gap:10px;}
.brand img{width:30px;height:30px;}
.brand-name{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.brand-sub{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.toc-btn{max-width:128px;}
.theme-btn{right:max(var(--gutter),env(safe-area-inset-right));}

/* ---------- hero ---------- */
.hero{padding:20px 0 6px;}
.hero .eyebrow{margin-bottom:6px;}
.hero h1{font-size:23px;line-height:1.3;margin-bottom:8px;}
.h1-sub{display:block;font-size:13px;font-weight:600;color:var(--text-2);margin-bottom:6px;line-height:1.5;}
.h1-main{display:block;}
.hero .lede{font-size:14px;line-height:1.7;}
.reading-hero{padding:24px 0 12px;}
.reading-hero h1{font-size:24px;line-height:1.35;}
.reading-hero p{color:var(--text-2);line-height:1.8;margin-top:10px;font-size:14px;}

.reading-nav{display:flex;gap:6px;overflow-x:auto;margin:14px calc(-1 * var(--gutter)) 0;padding:2px var(--gutter) 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.reading-nav::-webkit-scrollbar{display:none;}
.reading-nav a{flex:none;display:inline-flex;align-items:center;min-height:34px;padding:0 13px;border-radius:999px;background:var(--fill);color:var(--text);font-size:13px;font-weight:600;text-decoration:none;}
.reading-nav a[aria-current=page]{background:var(--text);color:var(--bg);}

/* ---------- アプリへの案内 ---------- */
.app-strip{display:flex;align-items:center;gap:12px;margin:16px 0 6px;padding:10px 12px 10px 10px;border-radius:16px;background:var(--primary-08);color:var(--text);text-decoration:none;}
.app-strip img{width:40px;height:auto;flex:none;}
.app-strip-txt{min-width:0;flex:1;}
.app-strip-txt b{display:block;font-size:14px;line-height:1.4;}
.app-strip-txt small{display:block;font-size:12px;line-height:1.5;color:var(--text-2);margin-top:1px;}
.app-strip-go{flex:none;padding:7px 13px;border-radius:999px;background:var(--primary);color:#fff;font-size:13px;font-weight:700;}
.ctx-cta{display:flex;align-items:center;gap:8px;margin:0 0 18px;padding:9px 12px;border-radius:12px;background:var(--primary-08);color:var(--primary-dark);font-size:13px;font-weight:600;line-height:1.4;text-decoration:none;}
.ctx-cta svg{width:18px;height:18px;flex:none;}
.ctx-cta span{flex:1;}
.ctx-cta svg:last-child{width:15px;height:15px;opacity:.7;}

.app-cta{margin:40px 0 8px;padding:22px 18px 18px;border-radius:22px;background:linear-gradient(165deg,var(--primary-12),var(--primary-08) 55%,var(--fill));}
.app-cta-head{display:flex;align-items:center;gap:14px;}
.app-cta-head img{width:60px;height:auto;flex:none;}
.app-cta h2{font-size:19px;line-height:1.45;}
.app-cta h2 small{display:block;font-size:12px;font-weight:700;color:var(--primary-dark);margin-bottom:3px;}
.app-cta-list{list-style:none;margin:16px 0 18px;padding:0;display:grid;gap:11px;}
.app-cta-list li{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.65;}
.app-cta-list svg{flex:none;width:20px;height:20px;margin-top:1px;color:var(--primary-dark);}
.app-cta-list b{font-weight:700;}
.btn-app{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;border-radius:14px;background:var(--primary);color:#fff;font-size:16px;font-weight:700;text-decoration:none;box-shadow:var(--shadow-btn);}
.btn-app svg{width:18px;height:18px;}
.btn-app:active{transform:scale(.98);}
.app-cta-note{text-align:center;margin-top:12px;font-size:13px;}
.app-cta-note a{color:var(--primary-dark);font-weight:600;}
.app-cta-fine{margin-top:10px;font-size:11px;line-height:1.6;color:var(--text-2);text-align:center;}

/* ---------- 大見出し（開閉） ---------- */
.main-section{scroll-margin-top:64px;border-top:1px solid var(--border);margin-top:28px;}
.main-section>summary{cursor:pointer;list-style:none;}
.main-section>summary::-webkit-details-marker{display:none;}
.main-section>summary.sec-head{margin:0;padding:20px 0 16px;border-top:0;gap:10px;}
.sec-head h2{flex:1;font-size:20px;line-height:1.3;}
.sec-head .ico{width:24px;height:24px;border-radius:7px;font-size:13px;}
.section-caret{flex:none;width:9px;height:9px;margin:0 4px 4px 0;border-right:2px solid var(--text-2);border-bottom:2px solid var(--text-2);transform:rotate(45deg);transition:transform .2s;}
.main-section:not([open])>summary .section-caret{transform:rotate(-45deg);margin-bottom:0;}
.main-section>summary:focus-visible{outline:2px solid var(--primary);outline-offset:4px;}
.section-content{padding-bottom:8px;}

/* ---------- 問題PDF ---------- */
.pdf-preview{position:relative;display:block;overflow:hidden;border-radius:14px;border:1px solid var(--border);background:#fff;text-decoration:none;color:var(--text);}
.pdf-preview img{display:block;width:100%;height:auto;max-height:260px;object-fit:cover;object-position:top;}
.pdf-preview-bar{position:absolute;inset:auto 0 0 0;display:flex;align-items:center;gap:10px;padding:28px 14px 12px;background:linear-gradient(transparent,var(--surface) 46%);}
.pdf-preview-bar>span{flex:1;}
.pdf-preview-bar b{display:block;font-size:15px;}
.pdf-preview-bar small{display:block;font-size:12px;color:var(--text-2);}
.pdf-preview-bar svg{width:20px;height:20px;color:var(--primary-dark);}
.problem-pdf{display:none;width:100%;height:78vh;min-height:450px;border:0;border-radius:12px;background:var(--fill);}
.tools{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:10px;min-height:38px;padding:8px 13px;background:var(--primary);color:#fff;font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;}
.btn.secondary{background:var(--fill);color:var(--text);}
.btn svg{width:18px;height:18px;}

/* ---------- 全文訳：原本の形で並べる ---------- */
.meaning-group{margin:0;}
.group-original{padding:2px 0 6px;}
.source-block{font-family:var(--en);font-size:17px;line-height:1.75;margin:0 0 14px;overflow-wrap:anywhere;scroll-margin-top:96px;}
.source-block p+p,.source-block p+.doc-list,.source-block .doc-list+p{margin-top:10px;}
.source-block .who{display:inline;font-family:var(--jp);font-size:14px;font-weight:700;margin-right:6px;}
.source-block .who+p{display:inline;}
.source-block:target{outline:2px solid var(--primary);outline-offset:6px;border-radius:4px;}
.r-title{font-size:21px;font-weight:700;line-height:1.4;}
.r-subtitle{font-size:18px;font-weight:600;line-height:1.5;}
.r-heading{font-weight:700;}
.r-meta,.r-small,.r-caption{font-size:14px;color:var(--text-2);line-height:1.6;}
.r-caption{font-style:italic;}
.r-subject{font-weight:700;padding-bottom:10px;border-bottom:1px solid var(--border);}
.r-signature{text-align:right;}
.r-lead{font-size:16px;}
.a-center{text-align:center;}
.a-right{text-align:right;}
.doc-list{margin:4px 0;padding-left:1.3em;}
.doc-list li{margin:3px 0;}
.doc-list li::marker{color:var(--text-2);}
.blank{display:inline-flex;align-items:center;justify-content:center;min-width:1.85em;height:1.4em;padding:0 .3em;margin:0 .12em;border:1.5px solid currentColor;border-radius:3px;font-family:var(--jp);font-size:.76em;font-weight:700;line-height:1;vertical-align:.08em;font-variant-numeric:tabular-nums;}
.source-mark{color:inherit;text-decoration:underline;text-decoration-color:var(--primary);text-decoration-thickness:3px;text-underline-offset:4px;background:var(--primary-08);border-radius:3px;}
.answer-jump{color:inherit;text-decoration:none;}
.answer-jump:focus-visible{outline:2px solid var(--primary);outline-offset:4px;}

/* 原本の枠（メール・掲示・ウェブページ・メモ） */
.doc{margin:0 0 16px;padding:14px 14px 0;border:1px solid var(--doc-line);border-radius:4px;background:var(--surface);}
.doc>.source-block:last-child,.doc>.doc-table-wrap:last-child{margin-bottom:14px;}
.doc-email,.doc-web{border-radius:10px;overflow:hidden;padding-top:0;}
.doc-email::before,.doc-web::before{content:"";display:block;height:24px;margin:0 -14px 12px;background:var(--fill);border-bottom:1px solid var(--border);}
.doc-email::before{background:var(--fill) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='54' height='10' fill='none' stroke='%238E8E93' stroke-width='1.4'%3E%3Cpath d='M2 8h8M24 2h6v6M44 2l6 6M50 2l-6 6'/%3E%3C/svg%3E") right 10px center/54px 10px no-repeat;}
.doc-web::before{background:var(--fill) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='8'%3E%3Ccircle cx='4' cy='4' r='3.2' fill='%23FF5F57'/%3E%3Ccircle cx='17' cy='4' r='3.2' fill='%23FEBC2E'/%3E%3Ccircle cx='30' cy='4' r='3.2' fill='%2328C840'/%3E%3C/svg%3E") left 10px center/34px 8px no-repeat;}
.doc-notice{border-width:2px;border-color:var(--text);border-radius:2px;}
.doc-note{border-style:dashed;border-radius:8px;}
.doc-article{border:0;border-top:2px solid var(--text);border-bottom:1px solid var(--doc-line);border-radius:0;padding:12px 0 0;background:none;}
.doc-chat{border:0;padding:0;background:none;}
.msg{display:flex;flex-direction:column;align-items:flex-start;margin:0 0 12px;}
.msg .who{display:block;margin:0 0 4px 6px;font-size:12px;color:var(--text-2);}
.msg .bubble{max-width:90%;padding:9px 13px;border-radius:18px 18px 18px 6px;background:var(--fill);}
.msg .bubble p{display:block;}
.msg-right{align-items:flex-end;}
.msg-right .who{margin:0 6px 4px 0;}
.msg-right .bubble{border-radius:18px 18px 6px 18px;background:var(--primary-12);}

/* 表 */
.doc-table-wrap{overflow-x:auto;margin:0 0 16px;-webkit-overflow-scrolling:touch;}
.doc-table{width:100%;border-collapse:collapse;}
.doc-table .source-block{font-size:15px;line-height:1.5;}
.doc-table th,.doc-table td{border:1px solid var(--doc-line);padding:7px 8px;vertical-align:top;text-align:left;overflow-wrap:break-word;min-width:3em;}
.doc-table thead th{background:var(--fill);font-weight:700;text-align:center;vertical-align:middle;}
.doc-table tbody th{font-weight:600;white-space:nowrap;}
.doc-table tr.row-span td{text-align:center;background:color-mix(in srgb,var(--fill) 70%,transparent);}
.doc-table tr.a-center td{text-align:center;}
.doc-table caption{caption-side:top;text-align:left;font-weight:700;padding:0 0 6px;}

/* 和訳は原文と同じ形で、帯の上に置く */
.group-translation{position:relative;margin:2px calc(-1 * var(--gutter)) 26px;padding:32px var(--gutter) 4px;background:var(--fill);}
.group-translation::before{content:"和訳";position:absolute;top:10px;left:var(--gutter);font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--text-2);}
.group-translation .source-block{font-family:var(--jp);font-size:15px;line-height:1.85;}
.group-translation .doc-table .source-block{font-size:14px;line-height:1.6;}
.group-translation .r-title{font-size:18px;}
.group-translation .r-subtitle{font-size:16px;}
.group-translation .doc{background:var(--surface);}
.group-translation .doc-article,.group-translation .doc-chat{background:none;}
.group-translation .doc-table{background:var(--surface);}
.group-translation .msg .bubble{background:var(--surface);}
.group-translation .msg-right .bubble{background:color-mix(in srgb,var(--primary) 18%,var(--surface));}
.group-translation .source-mark{background:none;text-decoration:none;}

.pdf-figure{margin:18px 0;text-align:center;}
.pdf-figure img{display:block;width:100%;height:auto;margin:auto;background:white;border-radius:6px;}
.pdf-figure a{display:block;}

/* ---------- 解答解説 ---------- */
.answer-list{border-top:1px solid var(--border);}
.answer-details{border-bottom:1px solid var(--border);scroll-margin-top:72px;}
.answer-details>summary{display:flex;align-items:center;gap:12px;min-height:54px;padding:8px 2px;cursor:pointer;list-style:none;}
.answer-details>summary::-webkit-details-marker{display:none;}
.answer-details>summary:focus-visible{outline:2px solid var(--primary);outline-offset:2px;}
.q-no{flex:none;min-width:2.6em;font-size:16px;font-weight:800;}
.q-key{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:13px;color:var(--text-2);}
.q-key b{font-size:18px;font-weight:700;color:var(--text);font-family:var(--jp);letter-spacing:.04em;}
.q-key small{font-size:11px;}
.key-label{font-size:11px;font-weight:700;color:var(--success);background:var(--success-12);border-radius:6px;padding:2px 6px;}
.q-key .blank{font-size:11px;color:var(--text-2);}
.chev{flex:none;margin-left:auto;width:9px;height:9px;margin-right:6px;border-right:2px solid var(--text-3);border-bottom:2px solid var(--text-3);transform:rotate(45deg) translate(-2px,-2px);transition:transform .2s;}
.answer-details[open] .chev{transform:rotate(-135deg) translate(-2px,-2px);}
.source-question{padding:2px 0 22px;}
.q-prompt{font-family:var(--en);font-size:17px;line-height:1.65;}
.q-ja{margin-top:6px;font-size:14px;line-height:1.75;color:var(--text-2);}
.q-media{margin-top:12px;}
.fig-ja{font-size:14px;line-height:1.75;color:var(--text-2);margin:-6px 0 12px;}
.approach{margin-top:16px;font-size:15px;line-height:1.85;}
.lbl{display:inline-block;margin-right:7px;padding:1px 7px;border-radius:6px;background:var(--primary-12);color:var(--primary-dark);font-size:11px;font-weight:700;vertical-align:2px;}
.lbl-quiet{background:var(--fill);color:var(--text-2);}
.evidence{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;margin-top:12px;}
.evidence .lbl{margin-top:5px;}
.evidence-chip{display:inline-flex;gap:6px;max-width:100%;padding:5px 11px;border-radius:10px;background:var(--primary-08);color:var(--text);font-family:var(--en);font-size:13px;line-height:1.55;text-decoration:none;overflow-wrap:anywhere;}
.evidence-chip:hover{background:var(--primary-12);}
.chip-ico{font-family:var(--jp);color:var(--primary-dark);}
.minihead{margin:20px 0 2px;font-size:12px;font-weight:700;color:var(--text-2);}
.options{list-style:none;margin:0;padding:0;}
.source-option{padding:12px 0;border-top:1px solid var(--border);}
.options .source-option:first-child{border-top:0;}
.source-option.answer-correct{margin:0 calc(-1 * var(--gutter));padding:12px var(--gutter);border-top-color:transparent;}
.source-option.answer-correct+.source-option{border-top-color:transparent;}
.option-heading{display:flex;align-items:flex-start;gap:10px;}
.option-heading .en{flex:1;min-width:0;font-family:var(--en);font-size:16px;line-height:1.6;}
.choice-number{font-family:var(--jp);font-weight:700;margin-right:6px;}
.option-heading .answer-chip{flex:none;margin-top:1px;padding:2px 9px;border-radius:999px;background:color-mix(in srgb,var(--success) 22%,transparent);font-size:12px;font-weight:700;line-height:1.6;white-space:nowrap;}
.opt-ja{margin-top:3px;font-size:13.5px;line-height:1.65;color:var(--text-2);}
.reason{margin-top:6px;font-size:14px;line-height:1.75;}

/* ---------- まとめ・語句 ---------- */
.reading-summary{font-size:15px;line-height:1.85;}
.reading-summary .overview{margin-bottom:14px;}
.reading-summary h3{font-size:17px;margin:26px 0 8px;}
.reading-summary .tip{padding:12px 0;border-top:1px solid var(--border);}
.reading-summary .tip b{display:block;font-size:15px;line-height:1.6;}
.reading-summary .tip p{margin-top:4px;}
.tip-example{color:var(--text-2);font-size:14px;}
.vocab{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);margin:0;font-size:15px;line-height:1.55;}
.vocab dt,.vocab dd{padding:10px 0;border-bottom:1px solid var(--border);}
.vocab dt{font-family:var(--en);font-weight:600;padding-right:12px;}
.vocab dd{margin:0;color:var(--text-2);}

.next-navigation{margin:20px 0 8px;}
.next-question{width:100%;min-height:52px;font-size:15px;border-radius:14px;}
footer{margin-top:28px;}

@media(min-width:720px){
  :root{--gutter:24px;}
  .hero h1{font-size:30px;}
  .problem-pdf{display:block;}
  .pdf-preview{display:none;}
  .group-translation{margin:2px 0 28px;border-radius:14px;padding:34px 22px 6px;}
  .group-translation::before{left:22px;}
  .source-option.answer-correct{margin:0 -12px;padding:12px;border-radius:12px;}
  .app-cta{padding:26px 26px 22px;}
}
@media print{
  .problem-pdf,.pdf-preview,.next-navigation,.app-strip,.ctx-cta,.app-cta,.reading-nav,.tools,.crumbs,footer,.appbar,.theme-btn{display:none!important;}
  .rv{opacity:1!important;transform:none!important;}
  .screen{max-width:none;padding:0;}
  .group-translation{background:#f4f4f4;margin:0 0 18px;}
  a{color:#000;text-decoration:none;}
  .answer-details{break-inside:avoid;}
}
.doc-cont{border-top-style:dashed;}
.doc-email.doc-cont,.doc-web.doc-cont{padding-top:14px;}
.doc-email.doc-cont::before,.doc-web.doc-cont::before{display:none;}
.doc-open{border-bottom-style:dashed;}
.approach{background:none;padding:0;border-radius:0;}
@media(max-width:719px){.tools .btn.secondary[target]{display:none;}}
.doc-table{min-width:0;}
.doc-table .nw{white-space:nowrap;}
.reading-hub .hub-years{margin:0 calc(-1 * var(--gutter)) 16px;padding:2px var(--gutter) 6px;}
.reading-hero+.app-strip{margin:4px 0 20px;}
.r-boxed{border:1px solid var(--doc-line);border-radius:4px;padding:10px 12px;background:var(--surface);}
.group-translation .r-boxed{background:var(--surface);}
.doc-cont{border-top:1px dashed var(--border);}
.doc-open{border-bottom:1px dashed var(--border);}
@media(max-width:719px){.doc{padding:12px 12px 0;}.doc-email::before,.doc-web::before{margin:0 -12px 12px;}.doc>.source-block:last-child,.doc>.doc-table-wrap:last-child{margin-bottom:12px;}}
@media(max-width:719px){.doc-table th,.doc-table td{padding:6px 6px;}.doc-table .source-block{font-size:14.5px;}}
.doc-table-wrap{padding-bottom:1px;}
.doc-table .a-center,.doc-table tr.a-center>*{text-align:center;}
.doc-table .a-right,.doc-table tr.a-right>*{text-align:right;}
@media(max-width:719px){.doc-table th,.doc-table td{min-width:2.2em;}}
.doc-table th{color:var(--text);}
.doc-table thead th{font-size:inherit;}
.doc-table-wrap{padding:0 1px 1px 0;}
/* 和訳は枠で囲まず、ベタで流す（表・箇条書き・行の見た目だけ原文に合わせる） */
.group-translation .r-boxed{border:0;padding:0;background:none;border-radius:0;}
.group-translation .source-block .who{display:inline;margin:0 6px 0 0;font-size:14px;color:var(--text);}
.group-translation>.source-block.a-right,.group-translation>.source-block.a-center,.group-translation>.r-signature{text-align:left;}
.doc-chat.doc-cont,.doc-chat.doc-open{border:0;}
