/* generated by _deploy_internal/extend_l.py - do not hand-edit */
:root{
  --bg:#f6f7fb; --card:#ffffff; --ink:#1c2333; --muted:#5b6472; --line:#e4e8f0;
  --brand:#0f4c81; --brand2:#1f7a8c; --accent:#e07b39; --accent2:#c44536;
  --teal:#0e7c66; --purple:#6b4e9e; --gold:#b8860b;
  --tip:#eaf4ff; --tipb:#cfe4ff; --real:#eefaf4; --realb:#bfe9d2; --warn:#fff6e6; --warnb:#ffdca8;
  --exam:#fbeef0; --examb:#f3c1c6;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;font-size:16px}
a{color:var(--brand);text-decoration:none}

/* layout */
.app{display:grid;grid-template-columns:280px 1fr;min-height:100vh}
.sidebar{background:#101a2e;color:#dbe3f0;padding:0;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:50}
.sidebar-inner{padding:22px 18px 40px}
.sidebar h1{font-size:15px;font-weight:700;color:#fff;line-height:1.35;margin-bottom:4px}
.sidebar .sub{font-size:12px;color:#8fa1bd;margin-bottom:18px}
.search{width:100%;padding:9px 12px;border-radius:8px;border:1px solid #2a3852;background:#1b2740;color:#fff;font-size:13px;margin-bottom:18px}
.search::placeholder{color:#7d8fae}
.nav-items{display:none;padding-left:8px;margin-top:3px}
.nav-group.open .nav-items{display:block}
.nav-items a{display:block;color:#9fb0cb;font-size:12.5px;padding:5px 10px;border-radius:6px;margin:1px 0}
.nav-items a:hover{background:#1b2740;color:#fff}
.nav-items a.active{background:var(--brand);color:#fff}

.main{padding:28px 34px 80px;max-width:1000px}
.topbar{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.burger{display:none;background:#101a2e;color:#fff;border:none;border-radius:7px;padding:8px 11px;font-size:16px;cursor:pointer}
.crumb{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:700}
h2.sec{font-size:26px;font-weight:800;margin:6px 0 4px;letter-spacing:-.01em}
p.lede{color:var(--muted);font-size:15px;margin-bottom:20px;max-width:70ch}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin-bottom:16px}
.card h3{font-size:17px;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.tag{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.04em}
.tag.c101{background:#e3edfb;color:#0f4c81}.tag.c102{background:#e5f4ee;color:#0e7c66}
.tag.c103{background:#efe8fb;color:#6b4e9e}.tag.cT01{background:#fdeee9;color:#c44536}
ul,ol{padding-left:22px;margin:8px 0}
li{margin:5px 0}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:12px 0}
table{width:100%;border-collapse:collapse;margin:0;font-size:14px;min-width:520px}
th,td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
th{background:#f0f3f9;font-weight:700;font-size:13px}
tr:nth-child(even) td{background:#fafbfe}
.callout{border-radius:10px;padding:12px 14px;margin:12px 0;font-size:14px}
.callout .t{font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:4px}
.callout.real{background:var(--real);border:1px solid var(--realb)}
.callout.real .t{color:var(--teal)}
.callout.tip{background:var(--tip);border:1px solid var(--tipb)}
.callout.tip .t{color:var(--brand)}
.callout.exam{background:var(--exam);border:1px solid var(--examb)}
.callout.exam .t{color:var(--accent2)}
.callout.warn{background:var(--warn);border:1px solid var(--warnb)}
.callout.warn .t{color:#9a6a00}
.kw{color:var(--brand);font-weight:700}
.hl{background:#fff3c4;padding:0 3px;border-radius:3px}
.mn{font-size:11.5px;color:var(--muted);font-style:italic}
@media(max-width:860px){
  .app{grid-template-columns:1fr}
  .sidebar{position:fixed;left:-290px;transition:left .25s;width:280px;box-shadow:0 0 30px rgba(0,0,0,.3)}
  .sidebar.show{left:0}
  .burger{display:block}
  .main{padding:20px 16px 70px}
  .two,.grid3{grid-template-columns:1fr}
  .main{padding:16px 12px 70px}
  table{font-size:13px;min-width:460px}
  th,td{padding:6px 8px}
  .callout{font-size:13.5px}
  h1{font-size:1.5rem}
}
.langswitch button.on{background:var(--accent);color:#fff}
@media(max-width:860px){ .langswitch{top:auto;bottom:14px;right:14px} }

.langrow{margin-bottom:16px}

.langrow{margin-bottom:14px}
.langrow .lbl{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:#8fa1bd;font-weight:700;margin-bottom:5px}
.langrow .btns{display:flex;background:#1b2740;border-radius:9px;padding:3px;border:1px solid #2a3852}
.langrow .btns a{flex:1;text-align:center;font-size:12.5px;font-weight:700;color:#9fb0cb;padding:6px 0;border-radius:6px;text-decoration:none}
.langrow .btns a.on{background:var(--accent);color:#fff}
.homelink a{display:block;font-size:12.5px;color:#9fb0cb;padding:6px 10px;border-radius:6px;background:#1b2740;margin-bottom:12px}
.homelink a:hover{color:#fff}
.onesum{background:#101a2e;color:#dbe3f0;border-radius:10px;padding:12px 15px;margin:18px 0 2px;font-size:13.5px;line-height:1.75}
.onesum .t{font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.07em;display:block;margin-bottom:6px;color:#8fa1bd}
.onesum b{color:#ffd9a8}
.card b{color:var(--brand);font-weight:700}
.card h4{color:var(--brand)}
.coursecard .links a.alt{background:#eef1f7;color:var(--brand)}

/* ================= clearer lecture separation ================= */
.card{background:#fff;border:1px solid #d9e3f2;border-left:6px solid #0f4c81;
  border-radius:12px;padding:0 22px 22px;margin:0 0 32px;
  box-shadow:0 3px 16px rgba(15,76,129,.10);overflow:hidden}
.card.alt{background:#f3f8ff}
.card h3{margin:0 -22px 18px;padding:15px 22px;color:#fff;font-size:16.5px;font-weight:700;
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;border-bottom:none}
.card h3 .tag{background:rgba(255,255,255,.26);color:#fff;letter-spacing:.06em}
.card h4{margin-top:20px}
.card h4:first-of-type{margin-top:14px}

/* per-course accent (header strip + left bar) */
body.crs-c101 .card{border-left-color:#0f4c81}
body.crs-c101 .card h3{background:linear-gradient(135deg,#0f4c81 0%,#2a70a8 100%)}
body.crs-c102 .card{border-left-color:#0e7c66}
body.crs-c102 .card h3{background:linear-gradient(135deg,#0e7c66 0%,#18987d 100%)}
body.crs-c103 .card{border-left-color:#6b4e9e}
body.crs-c103 .card h3{background:linear-gradient(135deg,#6b4e9e 0%,#8a6cc4 100%)}
body.crs-cT01 .card{border-left-color:#c44536}
body.crs-cT01 .card h3{background:linear-gradient(135deg,#c44536 0%,#dc6a56 100%)}

/* end-of-lecture rule so the stop point is unmistakable */
.card:after{content:"";display:block;height:3px;margin:22px -22px -22px;
  background:repeating-linear-gradient(90deg,#c9d8ec 0 10px,transparent 10px 20px)}
body.crs-c101 .card:after{background:repeating-linear-gradient(90deg,#b9cde8 0 10px,transparent 10px 20px)}
body.crs-c102 .card:after{background:repeating-linear-gradient(90deg,#b3ddcf 0 10px,transparent 10px 20px)}
body.crs-c103 .card:after{background:repeating-linear-gradient(90deg,#d5c9ee 0 10px,transparent 10px 20px)}
body.crs-cT01 .card:after{background:repeating-linear-gradient(90deg,#f0c3ba 0 10px,transparent 10px 20px)}
/* ux:css v1 */:root{--line:#d2dae6;--line2:#b7c2d4;--band:#f1f5fa;--shade:#fbfcfe;}h2.sec{border-bottom:3px solid var(--brand);padding-bottom:11px;margin-bottom:15px}.card{border-color:var(--line2);box-shadow:0 1px 3px rgba(16,26,46,.06)}table th{background:#e6edf7;border-bottom:2px solid var(--line2)}table td{border-color:var(--line)}tr:nth-child(even) td{background:var(--shade)}details>summary{border-bottom:1px dashed var(--line);padding-bottom:7px}.onesum{border:1px solid #26364f}.callout{border-width:1px;box-shadow:0 1px 2px rgba(16,26,46,.04)}details.ans[open],details.examcheck[open]{border-top:1px solid var(--line);margin-top:9px}.exchip,.lv,.eqtag,.tag{border:1px solid rgba(16,26,46,.09)}.pgr{display:flex;gap:9px;flex-wrap:wrap}.pgr-top{align-items:center;margin:0 0 16px;padding:0 0 11px;border-bottom:1px solid var(--line)}.pgr-b{font-size:12.5px;font-weight:700;padding:5px 11px;border-radius:7px;background:#eef1f7;color:var(--brand);white-space:nowrap}.pgr-top a.pgr-b:hover{background:var(--brand);color:#fff}.pgr-top .pgr-h{margin-left:auto;background:#101a2e;color:#fff}.pgr-top .pgr-h:hover{background:#1b2740}.pgr-b.off{opacity:.45}.pgr-bot{align-items:stretch;margin:30px 0 8px}.pgr-card{flex:1 1 200px;display:flex;flex-direction:column;gap:3px;min-width:0;padding:11px 14px;border:1px solid var(--line2);border-radius:11px;background:#fff}.pgr-card:hover{border-color:var(--brand);box-shadow:0 2px 9px rgba(16,26,46,.1)}.pgr-k{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#6f7a8c}.pgr-t{font-size:13.5px;font-weight:700;color:var(--brand);overflow-wrap:anywhere}.pgr-r{text-align:right}.pgr-r .pgr-k,.pgr-r .pgr-t{align-self:flex-end}.pgr-bot .pgr-h{flex:0 1 150px;align-items:center;justify-content:center;background:#101a2e;border-color:#101a2e}.pgr-bot .pgr-h .pgr-t{color:#fff}.pgr-bot .pgr-h .pgr-k{color:#8fa1bd}.pgr-card.off{opacity:.4}@media(max-width:860px){.pgr-bot .pgr-h{flex:1 1 100%;order:-1}.pgr-card{flex:1 1 100%}.pgr-r{text-align:left}.pgr-r .pgr-k,.pgr-r .pgr-t{align-self:flex-start}}[id]{scroll-margin-top:16px}a:focus-visible,summary:focus-visible{outline:3px solid #e07b39;outline-offset:2px;border-radius:4px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:860px){.pgr-b,.pgr-card{min-height:34px;display:inline-flex;align-items:center}.pgr-card{display:flex;flex-direction:column;align-items:flex-start}summary{padding:6px 0}body>table,.main>table{display:block;overflow-x:auto}}/* /ux:css v1 */

/* --- unified lecture template additions (additive, not a redraw) --- */
.pt{background:#eef6ff;border-left:3px solid #0f4c81;border-radius:0 9px 9px 0;
    padding:9px 14px;margin:3px 0 7px;font-size:13.5px;line-height:1.6;color:#16304f}
.pt b{color:#0f4c81}
details.det{margin:0 0 15px}
details.det>summary{cursor:pointer;list-style:none;font-size:12.5px;font-weight:700;
    color:#0e7c66;padding:4px 0;user-select:none}
details.det>summary::-webkit-details-marker{display:none}
details.det>summary:before{content:"\25B8 展開細節 \00b7 Details";color:#0e7c66}
details.det[open]>summary:before{content:"\25BE 收合 \00b7 Collapse"}
.lbar{display:flex;gap:8px;margin:10px 0 4px;flex-wrap:wrap}
.lbar button{font-size:11.5px;font-weight:700;padding:5px 12px;border-radius:8px;
    border:1px solid #dbe2ee;background:#fff;color:#0f4c81;cursor:pointer}
.lbar button:hover{background:#eef1f7}
h4.ml{font-size:15px;color:#0f4c81;border-left:4px solid #0e7c66;padding-left:9px;margin:18px 0 8px}


/* /ux:mobile-table v1 — narrow screens: let tables and the main column shrink
   to the viewport. Two inherited defects:
     1. `table{min-width:520px}` forced page-level horizontal scroll at 390px;
     2. `.main` is a grid item and grid items default to min-width:auto, so a
        wide child (a long English crumb / h2) could not shrink back.
   .tablewrap already has overflow-x:auto, so only the genuinely wide tables
   still scroll inside their own wrapper. */
@media(max-width:560px){
  table{min-width:auto}
  .card table{min-width:auto;font-size:13px}
  .card th,.card td{padding:6px 8px}
  .tablewrap{margin:10px 0}
  .main{min-width:0;padding:16px 12px 70px}
  .topbar,.pgr,.crumb,.lede,.card{min-width:0;max-width:100%;
    overflow-wrap:break-word;word-break:break-word}
  .crumb{font-size:12px}
  h2.sec{font-size:1.15rem}
}

/* ============================================================
   shared lecture stylesheet - ABCT101 / 102 / 103 / T01
   Extracted from 29 pages that each carried the same 15 KB
   inline block.  Edit THIS file, not the pages.
   ============================================================ */

/* ---------- sidebar collapse ---------- */
.sidebar{min-width:0}
.sidebar>.sidebar-inner{position:relative}
.sidebar h1{padding-right:38px}

.sbtoggle{position:absolute;top:10px;right:10px;width:30px;height:30px;padding:0;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  background:#1b2740;color:#c7d2e6;border:1px solid #2a3852;border-radius:8px;
  font-size:16px;font-weight:700;line-height:1;font-family:inherit}
.sbtoggle:hover{background:#2a3852;color:#fff}
.sbtoggle:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.sbtoggle .g-x{display:none}

.sbopen{display:none;align-items:center;justify-content:center;gap:7px;
  background:#101a2e;color:#fff;border:none;border-radius:7px;
  padding:8px 12px;font-size:15px;cursor:pointer;margin:0 0 10px;font-family:inherit}
.sbopen:hover{background:#1b2740}

@media(min-width:861px){
  .app{grid-template-columns:var(--sbw,280px) 1fr}
  html.sb-collapsed .app{--sbw:0px}
  /* keep the sidebar in the grid (width 0) so .main stays in column 2 */
  html.sb-collapsed .sidebar{width:0;padding:0;overflow:hidden;
    visibility:hidden;border:0}
  html.sb-collapsed .sbopen{display:inline-flex}
}

@media(max-width:860px){
  .sbtoggle .g-l{display:none}
  .sbtoggle .g-x{display:inline}
  html.sb-collapsed .sidebar{visibility:visible;width:280px;padding:0}
  html.sb-collapsed .app{--sbw:280px}
}

/* ---------- classes replacing repeated inline style="" ---------- */
.parttag{font-size:12px;font-weight:800;color:#ffd9a8;padding:2px 0 8px;letter-spacing:.02em}
.homelink{display:flex;gap:6px;flex-wrap:wrap}
.homelink a.alt{background:#2a3852}
.nav-items.nav-flat{display:block;padding-left:0;margin-top:8px}
p.sub-hd{margin:14px 0 6px;font-weight:800;font-size:13px;color:var(--brand)}
p.sub-hd.tight{margin:16px 0 6px}
p.subhead{font-size:15px;font-weight:700;color:var(--muted)}
pre.nowrap{white-space:pre-wrap;font-family:inherit}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
