/* ---- part1 ---- */

:root{
  --bg:#F5F7F6; --paper:#FFFFFF; --ink:#1F2A2E; --ink2:#5A666B; --line:#D9DEDC;
  --trunk:#1E6F6B; --trunk-soft:#DCEDEB; --warn:#B8761A; --warn-soft:#F6E7CF; --rev:#4E5D63; --rev-soft:#E9EDEC;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#161B1D; --paper:#1F2629; --ink:#E7ECEA; --ink2:#A2ADB1; --line:#374043;
    --trunk:#6FC4BE; --trunk-soft:#1F3B39; --warn:#E0A552; --warn-soft:#3D2E15; --rev:#B7C3C7; --rev-soft:#262F32;
  }
}
:root[data-theme="dark"]{
  --bg:#161B1D; --paper:#1F2629; --ink:#E7ECEA; --ink2:#A2ADB1; --line:#374043;
  --trunk:#6FC4BE; --trunk-soft:#1F3B39; --warn:#E0A552; --warn-soft:#3D2E15; --rev:#B7C3C7; --rev-soft:#262F32;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}
main{max-width:680px;margin:0 auto;padding:28px 16px 80px}
.aic-intro{color:var(--ink2);font-size:14px;margin:0 0 24px}
.aic-toc{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:28px;font-size:14px}
.aic-toc a{color:var(--trunk);text-decoration:none;display:block;padding:3px 0}
.aic-toc a span{color:var(--ink2);margin-right:.5em}
/* episode */
.aic{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:22px 20px 20px;margin-bottom:28px}
.aic-meta{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink2);margin-bottom:6px;flex-wrap:wrap}
.aic-tag{display:inline-block;font-size:12px;line-height:1;padding:5px 8px;border-radius:4px;background:var(--trunk-soft);color:var(--trunk)}
.aic-tag.branch{background:var(--warn-soft);color:var(--warn)}
.aic h1{font-size:clamp(21px,5vw,26px);line-height:1.35;margin:0 0 6px;font-weight:700}
.aic-sub{color:var(--ink2);margin:0 0 16px;font-size:15px}
.aic figure{margin:0 0 20px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.aic figure svg{width:100%;height:auto;display:block}
.aic figcaption{font-size:13px;color:var(--ink2);margin-top:8px;line-height:1.6}
.aic p{margin:0 0 1em}
.aic-box{border-radius:8px;padding:14px 16px;margin-top:18px}
.aic-sum{background:var(--trunk-soft)}
.aic-sum h2,.aic-todo h2{font-size:14px;margin:0 0 8px;font-weight:700}
.aic-sum h2{color:var(--trunk)}
.aic-sum ol{margin:0;padding-left:1.4em}
.aic-sum li{margin:2px 0}
.aic-todo{background:var(--warn-soft)}
.aic-todo h2{color:var(--warn)}
.aic-todo p{margin:0}
.aic-date{font-size:13px;color:var(--warn);background:var(--warn-soft);border-radius:6px;padding:8px 12px;margin:0 0 16px}
/* read aloud */
.aic-listen{margin-top:16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.aic-listen button{font:inherit;font-size:14px;padding:9px 14px;border-radius:8px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer}
.aic-listen button:focus-visible{outline:2px solid var(--trunk);outline-offset:2px}
.aic-listen button[aria-pressed="true"]{background:var(--trunk);color:#fff;border-color:var(--trunk)}
.aic-listen small{color:var(--ink2);font-size:12px}
/* review */
.aic-review{background:var(--rev-soft);border:1px dashed var(--rev);border-radius:12px;padding:18px 20px;margin-bottom:28px}
.aic-review h2{font-size:16px;margin:0 0 4px;color:var(--rev)}
.aic-review .aic-range{font-size:13px;color:var(--ink2);margin:0 0 10px}
.aic-review ol{margin:0;padding-left:1.4em}
.aic-review li{margin:4px 0}
.aic-review .aic-line{border-bottom:1px solid var(--line);height:1.6em}
.aic-part{border-style:solid;border-width:2px;border-color:var(--trunk);background:var(--trunk-soft)}
.aic-part h2{color:var(--trunk)}
.aic-card{background:var(--paper);border:2px solid var(--trunk);border-radius:10px;padding:16px 18px;margin:12px 0;text-align:center}
.aic-card b{display:block;font-size:20px;color:var(--trunk);margin:4px 0}
.aic-card span{font-size:13px;color:var(--ink2)}
@media print{
  body{background:#fff;color:#000;font-size:11pt;line-height:1.7}
  main{max-width:none;padding:0}
  .aic,.aic-review{break-inside:avoid;page-break-inside:avoid;border-color:#999;box-shadow:none}
  .aic{page-break-after:always}
  .aic-listen,.aic-toc{display:none}
  .aic-sum,.aic-todo,.aic-review,.aic-part{background:#f2f2f2 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  a{color:#000;text-decoration:none}
}

/* 強調3種 */
mark.aic-mk{background:linear-gradient(transparent 45%,rgba(224,165,82,.55) 45%);color:inherit;padding:0 2px;font-weight:700}
u.aic-ul{text-decoration:none;border-bottom:2px solid var(--trunk);padding-bottom:1px}
u.aic-wv{text-decoration:underline wavy var(--warn);text-decoration-thickness:1.5px;text-underline-offset:3px}
.aic-sub{background:linear-gradient(transparent 50%,rgba(224,165,82,.45) 50%);display:inline;padding:0 3px;color:var(--ink);font-weight:500;line-height:1.9}
.aic-subwrap{margin:0 0 16px}
.aic-sum li:first-child{font-weight:700}
.aic-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--ink2);background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:0 0 24px}
/* 予習 */
.aic-pre{background:var(--paper);border:2px solid var(--trunk);border-radius:12px;padding:20px 20px 16px;margin-bottom:32px}
.aic-pre h2{margin:0 0 4px;font-size:20px;color:var(--trunk)}
.aic-pre .aic-preline{font-size:15px;color:var(--ink);margin:0 0 14px;font-weight:500}
.aic-pre .cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:640px){.aic-pre .cols{grid-template-columns:1fr}}
.aic-pre .map{background:var(--bg);border-radius:8px;padding:8px}
.aic-pre .map svg{width:100%;height:auto;display:block}
.aic-pre h3{font-size:14px;margin:0 0 6px;color:var(--trunk)}
.aic-pre ul{margin:0 0 12px;padding-left:1.3em;font-size:14px}
.aic-pre li{margin:3px 0}
.aic-pre .three{background:var(--warn-soft);border-radius:8px;padding:10px 12px;font-size:14px}
.aic-pre .three b{color:var(--warn)}
@media print{.aic-pre{page-break-after:always;border-color:#999}.aic-pre .cols{grid-template-columns:1fr 1fr}mark.aic-mk{background:#ffe08a !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.aic-sub{background:#ffe08a !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.aic-pre .map{background:var(--bg);border-radius:8px;padding:10px;margin:0 0 14px}.aic-pre .cols{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;align-items:start}@media (max-width:640px){.aic-pre .cols{grid-template-columns:1fr}}@media print{.aic-pre .cols{grid-template-columns:1.2fr 1fr}}

/* ---- part2 ---- */

:root{
  --bg:#F5F7F6; --paper:#FFFFFF; --ink:#1F2A2E; --ink2:#5A666B; --line:#D9DEDC;
  --trunk:#1E6F6B; --trunk-soft:#DCEDEB; --warn:#B8761A; --warn-soft:#F6E7CF; --rev:#4E5D63; --rev-soft:#E9EDEC;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#161B1D; --paper:#1F2629; --ink:#E7ECEA; --ink2:#A2ADB1; --line:#374043;
    --trunk:#6FC4BE; --trunk-soft:#1F3B39; --warn:#E0A552; --warn-soft:#3D2E15; --rev:#B7C3C7; --rev-soft:#262F32;
  }
}
:root[data-theme="dark"]{
  --bg:#161B1D; --paper:#1F2629; --ink:#E7ECEA; --ink2:#A2ADB1; --line:#374043;
  --trunk:#6FC4BE; --trunk-soft:#1F3B39; --warn:#E0A552; --warn-soft:#3D2E15; --rev:#B7C3C7; --rev-soft:#262F32;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}
main{max-width:680px;margin:0 auto;padding:28px 16px 80px}
.aic-intro{color:var(--ink2);font-size:14px;margin:0 0 24px}
.aic-toc{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:28px;font-size:14px;columns:2;column-gap:18px}
.aic-toc a{color:var(--trunk);text-decoration:none;display:block;padding:3px 0;break-inside:avoid}
.aic-toc a span{color:var(--ink2);margin-right:.5em}
@media (max-width:480px){.aic-toc{columns:1}}
.aic{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:22px 20px 20px;margin-bottom:28px}
.aic-meta{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink2);margin-bottom:6px;flex-wrap:wrap}
.aic-tag{display:inline-block;font-size:12px;line-height:1;padding:5px 8px;border-radius:4px;background:var(--trunk-soft);color:var(--trunk)}
.aic-tag.branch{background:var(--warn-soft);color:var(--warn)}
.aic h1{font-size:clamp(21px,5vw,26px);line-height:1.35;margin:0 0 6px;font-weight:700}
.aic-sub{color:var(--ink2);margin:0 0 16px;font-size:15px}
.aic figure{margin:0 0 20px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.aic figure svg{width:100%;height:auto;display:block}
.aic figcaption{font-size:13px;color:var(--ink2);margin-top:8px;line-height:1.6}
.aic p{margin:0 0 1em}
.aic-box{border-radius:8px;padding:14px 16px;margin-top:18px}
.aic-sum{background:var(--trunk-soft)}
.aic-sum h2,.aic-todo h2{font-size:14px;margin:0 0 8px;font-weight:700}
.aic-sum h2{color:var(--trunk)}
.aic-sum ol{margin:0;padding-left:1.4em}
.aic-sum li{margin:2px 0}
.aic-todo{background:var(--warn-soft)}
.aic-todo h2{color:var(--warn)}
.aic-todo p{margin:0}
.aic-date{font-size:13px;color:var(--warn);background:var(--warn-soft);border-radius:6px;padding:8px 12px;margin:0 0 16px}
.aic-listen{margin-top:16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.aic-listen button{font:inherit;font-size:14px;padding:9px 14px;border-radius:8px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer}
.aic-listen button:focus-visible{outline:2px solid var(--trunk);outline-offset:2px}
.aic-listen button[aria-pressed="true"]{background:var(--trunk);color:#fff;border-color:var(--trunk)}
.aic-review{background:var(--rev-soft);border:1px dashed var(--rev);border-radius:12px;padding:18px 20px;margin-bottom:28px}
.aic-review h2{font-size:16px;margin:0 0 4px;color:var(--rev)}
.aic-review .aic-range{font-size:13px;color:var(--ink2);margin:0 0 10px}
.aic-review ol{margin:0;padding-left:1.4em}
.aic-review li{margin:4px 0}
.aic-review .aic-line{border-bottom:1px solid var(--line);height:1.6em}
.aic-part{border-style:solid;border-width:2px;border-color:var(--trunk);background:var(--trunk-soft)}
.aic-part h2{color:var(--trunk)}
.aic-card{background:var(--paper);border:2px solid var(--trunk);border-radius:10px;padding:16px 18px;margin:12px 0}
.aic-card b{display:block;font-size:15px;color:var(--trunk);margin:6px 0 2px}
.aic-card span{font-size:13px;color:var(--ink2)}
.aic-card .aic-line{border-bottom:1px solid var(--line);height:1.6em}
/* chat figure (HTML, not SVG) */
.aic-chat{display:flex;flex-direction:column;gap:8px;font-size:14px}
.aic-chat div{max-width:88%;padding:10px 14px;border-radius:12px;line-height:1.6}
.aic-chat .u{align-self:flex-end;background:var(--trunk);color:#fff;border-bottom-right-radius:3px}
.aic-chat .a{align-self:flex-start;background:var(--paper);border:1px solid var(--line);border-bottom-left-radius:3px;white-space:pre-line}
.aic-chat .x{align-self:flex-end;background:var(--warn-soft);color:var(--ink);border-bottom-right-radius:3px}
@media print{
  body{background:#fff;color:#000;font-size:11pt;line-height:1.7}
  main{max-width:none;padding:0}
  .aic,.aic-review{break-inside:avoid;page-break-inside:avoid;border-color:#999}
  .aic{page-break-after:always}
  .aic-listen,.aic-toc{display:none}
  .aic-sum,.aic-todo,.aic-review,.aic-part,.aic-chat .u,.aic-chat .x{background:#f2f2f2 !important;color:#000 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* 強調3種 */
mark.aic-mk{background:linear-gradient(transparent 45%,rgba(224,165,82,.55) 45%);color:inherit;padding:0 2px;font-weight:700}
u.aic-ul{text-decoration:none;border-bottom:2px solid var(--trunk);padding-bottom:1px}
u.aic-wv{text-decoration:underline wavy var(--warn);text-decoration-thickness:1.5px;text-underline-offset:3px}
.aic-sub{background:linear-gradient(transparent 50%,rgba(224,165,82,.45) 50%);display:inline;padding:0 3px;color:var(--ink);font-weight:500;line-height:1.9}
.aic-subwrap{margin:0 0 16px}
.aic-sum li:first-child{font-weight:700}
.aic-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--ink2);background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:0 0 24px}
/* 予習 */
.aic-pre{background:var(--paper);border:2px solid var(--trunk);border-radius:12px;padding:20px 20px 16px;margin-bottom:32px}
.aic-pre h2{margin:0 0 4px;font-size:20px;color:var(--trunk)}
.aic-pre .aic-preline{font-size:15px;color:var(--ink);margin:0 0 14px;font-weight:500}
.aic-pre .cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:640px){.aic-pre .cols{grid-template-columns:1fr}}
.aic-pre .map{background:var(--bg);border-radius:8px;padding:8px}
.aic-pre .map svg{width:100%;height:auto;display:block}
.aic-pre h3{font-size:14px;margin:0 0 6px;color:var(--trunk)}
.aic-pre ul{margin:0 0 12px;padding-left:1.3em;font-size:14px}
.aic-pre li{margin:3px 0}
.aic-pre .three{background:var(--warn-soft);border-radius:8px;padding:10px 12px;font-size:14px}
.aic-pre .three b{color:var(--warn)}
@media print{.aic-pre{page-break-after:always;border-color:#999}.aic-pre .cols{grid-template-columns:1fr 1fr}mark.aic-mk{background:#ffe08a !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.aic-sub{background:#ffe08a !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.aic-pre .map{background:var(--bg);border-radius:8px;padding:10px;margin:0 0 14px}.aic-pre .cols{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;align-items:start}@media (max-width:640px){.aic-pre .cols{grid-template-columns:1fr}}@media print{.aic-pre .cols{grid-template-columns:1.2fr 1fr}}

/* ---- part3a ---- */

:root{--bg:#F5F7F6;--paper:#FFFFFF;--ink:#1F2A2E;--ink2:#5A666B;--line:#D9DEDC;--trunk:#1E6F6B;--trunk-soft:#DCEDEB;--warn:#B8761A;--warn-soft:#F6E7CF;--rev:#4E5D63;--rev-soft:#E9EDEC}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#161B1D;--paper:#1F2629;--ink:#E7ECEA;--ink2:#A2ADB1;--line:#374043;--trunk:#6FC4BE;--trunk-soft:#1F3B39;--warn:#E0A552;--warn-soft:#3D2E15;--rev:#B7C3C7;--rev-soft:#262F32}}
:root[data-theme="dark"]{--bg:#161B1D;--paper:#1F2629;--ink:#E7ECEA;--ink2:#A2ADB1;--line:#374043;--trunk:#6FC4BE;--trunk-soft:#1F3B39;--warn:#E0A552;--warn-soft:#3D2E15;--rev:#B7C3C7;--rev-soft:#262F32}
*{box-sizing:border-box}html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}
main{max-width:680px;margin:0 auto;padding:28px 16px 80px}
.aic-intro{color:var(--ink2);font-size:14px;margin:0 0 24px}
.aic-toc{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:28px;font-size:14px;columns:2;column-gap:18px}
.aic-toc a{color:var(--trunk);text-decoration:none;display:block;padding:3px 0;break-inside:avoid}.aic-toc a span{color:var(--ink2);margin-right:.5em}
@media (max-width:480px){.aic-toc{columns:1}}
.aic{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:22px 20px 20px;margin-bottom:28px}
.aic-meta{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink2);margin-bottom:6px;flex-wrap:wrap}
.aic-tag{display:inline-block;font-size:12px;line-height:1;padding:5px 8px;border-radius:4px;background:var(--trunk-soft);color:var(--trunk)}.aic-tag.branch{background:var(--warn-soft);color:var(--warn)}
.aic h1{font-size:clamp(21px,5vw,26px);line-height:1.35;margin:0 0 6px;font-weight:700}
.aic-sub{color:var(--ink2);margin:0 0 16px;font-size:15px}
.aic figure{margin:0 0 18px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.aic figure svg{width:100%;height:auto;display:block}
.aic figcaption{font-size:13px;color:var(--ink2);margin-top:8px;line-height:1.6}
.aic p{margin:0 0 1em}
.aic-box{border-radius:8px;padding:14px 16px;margin-top:18px}
.aic-sum{background:var(--trunk-soft)}.aic-sum h2,.aic-todo h2,.aic-tpl h2{font-size:14px;margin:0 0 8px;font-weight:700}
.aic-sum h2{color:var(--trunk)}.aic-sum ol{margin:0;padding-left:1.4em}.aic-sum li{margin:2px 0}
.aic-todo{background:var(--warn-soft)}.aic-todo h2{color:var(--warn)}.aic-todo p{margin:0}
.aic-tpl{background:var(--paper);border:2px solid var(--trunk);position:relative}
.aic-tpl h2{color:var(--trunk)}
.aic-tpl pre{margin:0;white-space:pre-wrap;font-family:inherit;font-size:14px;line-height:1.7;background:var(--bg);border-radius:6px;padding:12px 14px}
.aic-tpl button{position:absolute;top:12px;right:12px;font:inherit;font-size:12px;padding:6px 10px;border-radius:6px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer}
.aic-date{font-size:13px;color:var(--warn);background:var(--warn-soft);border-radius:6px;padding:8px 12px;margin:0 0 16px}
.aic-listen{margin-top:16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.aic-listen button{font:inherit;font-size:14px;padding:9px 14px;border-radius:8px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer}
.aic-listen button[aria-pressed="true"]{background:var(--trunk);color:#fff;border-color:var(--trunk)}
.aic-review{background:var(--rev-soft);border:1px dashed var(--rev);border-radius:12px;padding:18px 20px;margin-bottom:28px}
.aic-review h2{font-size:16px;margin:0 0 4px;color:var(--rev)}.aic-review .aic-range{font-size:13px;color:var(--ink2);margin:0 0 10px}
.aic-review ol{margin:0;padding-left:1.4em}.aic-review li{margin:4px 0}.aic-review .aic-line{border-bottom:1px solid var(--line);height:1.6em}
.aic-chat{display:flex;flex-direction:column;gap:8px;font-size:14px}
.aic-chat div{max-width:90%;padding:10px 14px;border-radius:12px;line-height:1.6}
.aic-chat .u{align-self:flex-end;background:var(--trunk);color:#fff;border-bottom-right-radius:3px;white-space:pre-line}
.aic-chat .a{align-self:flex-start;background:var(--paper);border:1px solid var(--line);border-bottom-left-radius:3px;white-space:pre-line}
.aic-chat .x{align-self:flex-end;background:var(--warn-soft);color:var(--ink);border-bottom-right-radius:3px}
.aic-chat .h{align-self:flex-start;color:var(--warn);font-size:12px;padding:0 4px}
@media print{body{background:#fff;color:#000;font-size:11pt;line-height:1.7}main{max-width:none;padding:0}.aic,.aic-review{break-inside:avoid;page-break-inside:avoid;border-color:#999}.aic{page-break-after:always}.aic-listen,.aic-toc,.aic-tpl button{display:none}.aic-sum,.aic-todo,.aic-review,.aic-chat .u,.aic-chat .x,.aic-tpl pre{background:#f2f2f2 !important;color:#000 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* 強調3種 */
mark.aic-mk{background:linear-gradient(transparent 45%,rgba(224,165,82,.55) 45%);color:inherit;padding:0 2px;font-weight:700}
u.aic-ul{text-decoration:none;border-bottom:2px solid var(--trunk);padding-bottom:1px}
u.aic-wv{text-decoration:underline wavy var(--warn);text-decoration-thickness:1.5px;text-underline-offset:3px}
.aic-sub{background:linear-gradient(transparent 50%,rgba(224,165,82,.45) 50%);display:inline;padding:0 3px;color:var(--ink);font-weight:500;line-height:1.9}
.aic-subwrap{margin:0 0 16px}
.aic-sum li:first-child{font-weight:700}
.aic-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--ink2);background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:0 0 24px}
/* 予習 */
.aic-pre{background:var(--paper);border:2px solid var(--trunk);border-radius:12px;padding:20px 20px 16px;margin-bottom:32px}
.aic-pre h2{margin:0 0 4px;font-size:20px;color:var(--trunk)}
.aic-pre .aic-preline{font-size:15px;color:var(--ink);margin:0 0 14px;font-weight:500}
.aic-pre .cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:640px){.aic-pre .cols{grid-template-columns:1fr}}
.aic-pre .map{background:var(--bg);border-radius:8px;padding:8px}
.aic-pre .map svg{width:100%;height:auto;display:block}
.aic-pre h3{font-size:14px;margin:0 0 6px;color:var(--trunk)}
.aic-pre ul{margin:0 0 12px;padding-left:1.3em;font-size:14px}
.aic-pre li{margin:3px 0}
.aic-pre .three{background:var(--warn-soft);border-radius:8px;padding:10px 12px;font-size:14px}
.aic-pre .three b{color:var(--warn)}
@media print{.aic-pre{page-break-after:always;border-color:#999}.aic-pre .cols{grid-template-columns:1fr 1fr}mark.aic-mk{background:#ffe08a !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.aic-sub{background:#ffe08a !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.aic-pre .map{background:var(--bg);border-radius:8px;padding:10px;margin:0 0 14px}.aic-pre .cols{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;align-items:start}@media (max-width:640px){.aic-pre .cols{grid-template-columns:1fr}}@media print{.aic-pre .cols{grid-template-columns:1.2fr 1fr}}

/* ---- part3b ---- */

:root{--bg:#F5F7F6;--paper:#FFFFFF;--ink:#1F2A2E;--ink2:#5A666B;--line:#D9DEDC;--trunk:#1E6F6B;--trunk-soft:#DCEDEB;--warn:#B8761A;--warn-soft:#F6E7CF;--rev:#4E5D63;--rev-soft:#E9EDEC}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#161B1D;--paper:#1F2629;--ink:#E7ECEA;--ink2:#A2ADB1;--line:#374043;--trunk:#6FC4BE;--trunk-soft:#1F3B39;--warn:#E0A552;--warn-soft:#3D2E15;--rev:#B7C3C7;--rev-soft:#262F32}}
:root[data-theme="dark"]{--bg:#161B1D;--paper:#1F2629;--ink:#E7ECEA;--ink2:#A2ADB1;--line:#374043;--trunk:#6FC4BE;--trunk-soft:#1F3B39;--warn:#E0A552;--warn-soft:#3D2E15;--rev:#B7C3C7;--rev-soft:#262F32}
*{box-sizing:border-box}html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}
main{max-width:680px;margin:0 auto;padding:28px 16px 80px}
.aic-intro{color:var(--ink2);font-size:14px;margin:0 0 24px}
.aic-toc{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:28px;font-size:14px;columns:2;column-gap:18px}
.aic-toc a{color:var(--trunk);text-decoration:none;display:block;padding:3px 0;break-inside:avoid}.aic-toc a span{color:var(--ink2);margin-right:.5em}
@media (max-width:480px){.aic-toc{columns:1}}
.aic{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:22px 20px 20px;margin-bottom:28px}
.aic-meta{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink2);margin-bottom:6px;flex-wrap:wrap}
.aic-tag{display:inline-block;font-size:12px;line-height:1;padding:5px 8px;border-radius:4px;background:var(--trunk-soft);color:var(--trunk)}.aic-tag.branch{background:var(--warn-soft);color:var(--warn)}
.aic h1{font-size:clamp(21px,5vw,26px);line-height:1.35;margin:0 0 6px;font-weight:700}
.aic-sub{color:var(--ink2);margin:0 0 16px;font-size:15px}
.aic figure{margin:0 0 18px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.aic figure svg{width:100%;height:auto;display:block}
.aic figcaption{font-size:13px;color:var(--ink2);margin-top:8px;line-height:1.6}
.aic p{margin:0 0 1em}
.aic-box{border-radius:8px;padding:14px 16px;margin-top:18px}
.aic-sum{background:var(--trunk-soft)}.aic-sum h2,.aic-todo h2,.aic-tpl h2{font-size:14px;margin:0 0 8px;font-weight:700}
.aic-sum h2{color:var(--trunk)}.aic-sum ol{margin:0;padding-left:1.4em}.aic-sum li{margin:2px 0}
.aic-todo{background:var(--warn-soft)}.aic-todo h2{color:var(--warn)}.aic-todo p{margin:0}
.aic-tpl{background:var(--paper);border:2px solid var(--trunk);position:relative}.aic-tpl h2{color:var(--trunk)}
.aic-tpl pre{margin:0;white-space:pre-wrap;font-family:inherit;font-size:14px;line-height:1.7;background:var(--bg);border-radius:6px;padding:12px 14px}
.aic-tpl button{position:absolute;top:12px;right:12px;font:inherit;font-size:12px;padding:6px 10px;border-radius:6px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer}
.aic-date{font-size:13px;color:var(--warn);background:var(--warn-soft);border-radius:6px;padding:8px 12px;margin:0 0 16px}
.aic-listen{margin-top:16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.aic-listen button{font:inherit;font-size:14px;padding:9px 14px;border-radius:8px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer}
.aic-listen button[aria-pressed="true"]{background:var(--trunk);color:#fff;border-color:var(--trunk)}
.aic-review{background:var(--rev-soft);border:1px dashed var(--rev);border-radius:12px;padding:18px 20px;margin-bottom:28px}
.aic-review h2{font-size:16px;margin:0 0 4px;color:var(--rev)}.aic-review .aic-range{font-size:13px;color:var(--ink2);margin:0 0 10px}
.aic-review ol{margin:0;padding-left:1.4em}.aic-review li{margin:4px 0}.aic-review .aic-line{border-bottom:1px solid var(--line);height:1.6em}
.aic-part{border-style:solid;border-width:2px;border-color:var(--trunk);background:var(--trunk-soft)}.aic-part h2{color:var(--trunk)}
.aic-chat{display:flex;flex-direction:column;gap:8px;font-size:14px}
.aic-chat div{max-width:90%;padding:10px 14px;border-radius:12px;line-height:1.6}
.aic-chat .u{align-self:flex-end;background:var(--trunk);color:#fff;border-bottom-right-radius:3px;white-space:pre-line}
.aic-chat .a{align-self:flex-start;background:var(--paper);border:1px solid var(--line);border-bottom-left-radius:3px;white-space:pre-line}
.aic-chat .x{align-self:flex-end;background:var(--warn-soft);color:var(--ink);border-bottom-right-radius:3px}
.tw{overflow-x:auto}
table.t{border-collapse:collapse;width:100%;font-size:13px;background:var(--paper)}
.t th,.t td{border:1px solid var(--line);padding:7px 9px;text-align:left;vertical-align:top}
.t th{background:var(--trunk-soft);color:var(--trunk);font-weight:700}
.t td.ok{color:var(--trunk);font-weight:700}.t td.ng{color:var(--warn);font-weight:700}
ul.chk{list-style:none;padding:0;margin:0;font-size:14px}ul.chk li{padding:4px 0}ul.chk li::before{content:"☐ ";color:var(--ink2)}
@media print{body{background:#fff;color:#000;font-size:11pt;line-height:1.7}main{max-width:none;padding:0}.aic,.aic-review{break-inside:avoid;page-break-inside:avoid;border-color:#999}.aic{page-break-after:always}.aic-listen,.aic-toc,.aic-tpl button{display:none}.aic-sum,.aic-todo,.aic-review,.aic-part,.aic-chat .u,.aic-chat .x,.aic-tpl pre,.t th{background:#f2f2f2 !important;color:#000 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* 強調3種 */
mark.aic-mk{background:linear-gradient(transparent 45%,rgba(224,165,82,.55) 45%);color:inherit;padding:0 2px;font-weight:700}
u.aic-ul{text-decoration:none;border-bottom:2px solid var(--trunk);padding-bottom:1px}
u.aic-wv{text-decoration:underline wavy var(--warn);text-decoration-thickness:1.5px;text-underline-offset:3px}
.aic-sub{background:linear-gradient(transparent 50%,rgba(224,165,82,.45) 50%);display:inline;padding:0 3px;color:var(--ink);font-weight:500;line-height:1.9}
.aic-subwrap{margin:0 0 16px}
.aic-sum li:first-child{font-weight:700}
.aic-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--ink2);background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:0 0 24px}
/* 予習 */
.aic-pre{background:var(--paper);border:2px solid var(--trunk);border-radius:12px;padding:20px 20px 16px;margin-bottom:32px}
.aic-pre h2{margin:0 0 4px;font-size:20px;color:var(--trunk)}
.aic-pre .aic-preline{font-size:15px;color:var(--ink);margin:0 0 14px;font-weight:500}
.aic-pre .cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:640px){.aic-pre .cols{grid-template-columns:1fr}}
.aic-pre .map{background:var(--bg);border-radius:8px;padding:8px}
.aic-pre .map svg{width:100%;height:auto;display:block}
.aic-pre h3{font-size:14px;margin:0 0 6px;color:var(--trunk)}
.aic-pre ul{margin:0 0 12px;padding-left:1.3em;font-size:14px}
.aic-pre li{margin:3px 0}
.aic-pre .three{background:var(--warn-soft);border-radius:8px;padding:10px 12px;font-size:14px}
.aic-pre .three b{color:var(--warn)}
@media print{.aic-pre{page-break-after:always;border-color:#999}.aic-pre .cols{grid-template-columns:1fr 1fr}mark.aic-mk{background:#ffe08a !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.aic-sub{background:#ffe08a !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.aic-pre .map{background:var(--bg);border-radius:8px;padding:10px;margin:0 0 14px}.aic-pre .cols{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;align-items:start}@media (max-width:640px){.aic-pre .cols{grid-template-columns:1fr}}@media print{.aic-pre .cols{grid-template-columns:1.2fr 1fr}}

/* ---- part4 ---- */

:root{--bg:#F5F7F6;--paper:#FFFFFF;--ink:#1F2A2E;--ink2:#5A666B;--line:#D9DEDC;--trunk:#1E6F6B;--trunk-soft:#DCEDEB;--warn:#B8761A;--warn-soft:#F6E7CF;--rev:#4E5D63;--rev-soft:#E9EDEC;--code:#1B2327}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#161B1D;--paper:#1F2629;--ink:#E7ECEA;--ink2:#A2ADB1;--line:#374043;--trunk:#6FC4BE;--trunk-soft:#1F3B39;--warn:#E0A552;--warn-soft:#3D2E15;--rev:#B7C3C7;--rev-soft:#262F32;--code:#0F1416}}
:root[data-theme="dark"]{--bg:#161B1D;--paper:#1F2629;--ink:#E7ECEA;--ink2:#A2ADB1;--line:#374043;--trunk:#6FC4BE;--trunk-soft:#1F3B39;--warn:#E0A552;--warn-soft:#3D2E15;--rev:#B7C3C7;--rev-soft:#262F32;--code:#0F1416}
*{box-sizing:border-box}html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}
main{max-width:680px;margin:0 auto;padding:28px 16px 80px}
.aic-intro{color:var(--ink2);font-size:14px;margin:0 0 24px}
.aic-toc{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:28px;font-size:14px;columns:2;column-gap:18px}
.aic-toc a{color:var(--trunk);text-decoration:none;display:block;padding:3px 0;break-inside:avoid}.aic-toc a span{color:var(--ink2);margin-right:.5em}
@media (max-width:480px){.aic-toc{columns:1}}
.aic{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:22px 20px 20px;margin-bottom:28px}
.aic-meta{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink2);margin-bottom:6px;flex-wrap:wrap}
.aic-tag{display:inline-block;font-size:12px;line-height:1;padding:5px 8px;border-radius:4px;background:var(--trunk-soft);color:var(--trunk)}.aic-tag.branch{background:var(--warn-soft);color:var(--warn)}
.aic h1{font-size:clamp(21px,5vw,26px);line-height:1.35;margin:0 0 6px;font-weight:700}
.aic-sub{color:var(--ink2);margin:0 0 16px;font-size:15px}
.aic figure{margin:0 0 18px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.aic figure svg{width:100%;height:auto;display:block}
.aic figcaption{font-size:13px;color:var(--ink2);margin-top:8px;line-height:1.6}
.aic p{margin:0 0 1em}
.aic-box{border-radius:8px;padding:14px 16px;margin-top:18px}
.aic-sum{background:var(--trunk-soft)}.aic-sum h2,.aic-todo h2,.aic-tpl h2{font-size:14px;margin:0 0 8px;font-weight:700}
.aic-sum h2{color:var(--trunk)}.aic-sum ol{margin:0;padding-left:1.4em}.aic-sum li{margin:2px 0}
.aic-todo{background:var(--warn-soft)}.aic-todo h2{color:var(--warn)}.aic-todo p{margin:0}
.aic-tpl{background:var(--paper);border:2px solid var(--trunk);position:relative}.aic-tpl h2{color:var(--trunk)}
.aic-tpl pre{margin:0;white-space:pre-wrap;font-family:inherit;font-size:14px;line-height:1.7;background:var(--bg);border-radius:6px;padding:12px 14px}
.aic-tpl button{position:absolute;top:12px;right:12px;font:inherit;font-size:12px;padding:6px 10px;border-radius:6px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer}
.aic-date{font-size:13px;color:var(--warn);background:var(--warn-soft);border-radius:6px;padding:8px 12px;margin:0 0 16px}
.aic-listen{margin-top:16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.aic-listen button{font:inherit;font-size:14px;padding:9px 14px;border-radius:8px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer}
.aic-listen button[aria-pressed="true"]{background:var(--trunk);color:#fff;border-color:var(--trunk)}
.aic-review{background:var(--rev-soft);border:1px dashed var(--rev);border-radius:12px;padding:18px 20px;margin-bottom:28px}
.aic-review h2{font-size:16px;margin:0 0 4px;color:var(--rev)}.aic-review .aic-range{font-size:13px;color:var(--ink2);margin:0 0 10px}
.aic-review ol{margin:0;padding-left:1.4em}.aic-review li{margin:4px 0}.aic-review .aic-line{border-bottom:1px solid var(--line);height:1.6em}
.aic-part{border-style:solid;border-width:2px;border-color:var(--trunk);background:var(--trunk-soft)}.aic-part h2{color:var(--trunk)}
.aic-chat{display:flex;flex-direction:column;gap:8px;font-size:14px}
.aic-chat div{max-width:92%;padding:10px 14px;border-radius:12px;line-height:1.6}
.aic-chat .u{align-self:flex-end;background:var(--trunk);color:#fff;border-bottom-right-radius:3px;white-space:pre-line}
.aic-chat .a{align-self:flex-start;background:var(--paper);border:1px solid var(--line);border-bottom-left-radius:3px;white-space:pre-line}
.aic-chat .x{align-self:flex-end;background:var(--warn-soft);color:var(--ink);border-bottom-right-radius:3px}
.term{background:var(--code);color:#D7E4DF;border-radius:8px;padding:12px 14px;font-family:"SF Mono",Menlo,Consolas,monospace;font-size:12.5px;line-height:1.6;white-space:pre-wrap;overflow-x:auto}
.term b{color:#8FD9CF;font-weight:400}.term i{color:#E0A552;font-style:normal}
.tw{overflow-x:auto}
table.t{border-collapse:collapse;width:100%;font-size:13px;background:var(--paper)}
.t th,.t td{border:1px solid var(--line);padding:7px 9px;text-align:left;vertical-align:top}
.t th{background:var(--trunk-soft);color:var(--trunk);font-weight:700}
.t td.ok{color:var(--trunk);font-weight:700}.t td.ng{color:var(--warn);font-weight:700}
ul.chk{list-style:none;padding:0;margin:0;font-size:14px}ul.chk li{padding:4px 0}ul.chk li::before{content:"☐ ";color:var(--ink2)}
.card{background:var(--paper);border:2px solid var(--trunk);border-radius:10px;padding:14px 16px;font-size:14px}
.card b{color:var(--trunk)}.card .aic-line{border-bottom:1px solid var(--line);height:1.6em}
@media print{body{background:#fff;color:#000;font-size:11pt;line-height:1.7}main{max-width:none;padding:0}.aic,.aic-review{break-inside:avoid;page-break-inside:avoid;border-color:#999}.aic{page-break-after:always}.aic-listen,.aic-toc,.aic-tpl button{display:none}.aic-sum,.aic-todo,.aic-review,.aic-part,.aic-chat .u,.aic-chat .x,.aic-tpl pre,.t th{background:#f2f2f2 !important;color:#000 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.term{background:#222 !important;color:#eee !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* 強調3種 */
mark.aic-mk{background:linear-gradient(transparent 45%,rgba(224,165,82,.55) 45%);color:inherit;padding:0 2px;font-weight:700}
u.aic-ul{text-decoration:none;border-bottom:2px solid var(--trunk);padding-bottom:1px}
u.aic-wv{text-decoration:underline wavy var(--warn);text-decoration-thickness:1.5px;text-underline-offset:3px}
.aic-sub{background:linear-gradient(transparent 50%,rgba(224,165,82,.45) 50%);display:inline;padding:0 3px;color:var(--ink);font-weight:500;line-height:1.9}
.aic-subwrap{margin:0 0 16px}
.aic-sum li:first-child{font-weight:700}
.aic-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--ink2);background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:0 0 24px}
/* 予習 */
.aic-pre{background:var(--paper);border:2px solid var(--trunk);border-radius:12px;padding:20px 20px 16px;margin-bottom:32px}
.aic-pre h2{margin:0 0 4px;font-size:20px;color:var(--trunk)}
.aic-pre .aic-preline{font-size:15px;color:var(--ink);margin:0 0 14px;font-weight:500}
.aic-pre .cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:640px){.aic-pre .cols{grid-template-columns:1fr}}
.aic-pre .map{background:var(--bg);border-radius:8px;padding:8px}
.aic-pre .map svg{width:100%;height:auto;display:block}
.aic-pre h3{font-size:14px;margin:0 0 6px;color:var(--trunk)}
.aic-pre ul{margin:0 0 12px;padding-left:1.3em;font-size:14px}
.aic-pre li{margin:3px 0}
.aic-pre .three{background:var(--warn-soft);border-radius:8px;padding:10px 12px;font-size:14px}
.aic-pre .three b{color:var(--warn)}
@media print{.aic-pre{page-break-after:always;border-color:#999}.aic-pre .cols{grid-template-columns:1fr 1fr}mark.aic-mk{background:#ffe08a !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.aic-sub{background:#ffe08a !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.aic-pre .map{background:var(--bg);border-radius:8px;padding:10px;margin:0 0 14px}.aic-pre .cols{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;align-items:start}@media (max-width:640px){.aic-pre .cols{grid-template-columns:1fr}}@media print{.aic-pre .cols{grid-template-columns:1.2fr 1fr}}
/* v4.55 本文は文節の途中で改行しない */
.aic{word-break:keep-all;overflow-wrap:break-word;}
