/* pāṭha 梵語學堂 — 學生前台樣式（第一階段預覽）
   四角配色：錨=金 / 故事=綠 / 構句=藍 / 滴灌=灰 / 結晶=紫 / kośa=赭
   字體：Gentium 自託管（IAST），天城體/泰文系統回退（生產版須自託管 Noto，禁 Google）。 */

@font-face{font-family:"Gentium";src:url("fonts/gentium-reg.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Gentium";src:url("fonts/gentium-ital.woff") format("woff");font-weight:400;font-style:italic;font-display:swap}

:root{
  --bg:#faf7f0; --card:#fff; --ink:#23201b; --soft:#6b6358; --line:#e7e0d3;
  --anchor:#b8860b; --anchor-bg:#fbf3dd;
  --story:#2e7d68; --story-bg:#e6f3ef;
  --build:#2f6db0; --build-bg:#e7f0f9;
  --drip:#7a756c; --drip-bg:#efece5;
  --cryst:#7a4fb0; --cryst-bg:#f0e9f8;
  --kosa:#9c5b34; --kosa-bg:#f6eae2;
  --deva:"Noto Sans Devanagari","Kohinoor Devanagari","Devanagari Sangam MN","Devanagari MT",serif;
  --thai:"Noto Sans Thai","Thonburi","ThonburiUI",sans-serif;
  --iast:"Gentium",Georgia,"Times New Roman",serif;
  --sans:-apple-system,"PingFang SC","Helvetica Neue",sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);
  font-size:17px;line-height:1.65;letter-spacing:.01em}
a{color:inherit;text-decoration:none}

/* 頂欄 */
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;
  gap:1rem;padding:.6rem 1rem;background:rgba(250,247,240,.92);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line)}
.brand{font-family:var(--deva);font-size:1.5rem;color:var(--anchor);display:flex;align-items:baseline;gap:.5rem}
.brand span{font-family:var(--sans);font-size:.8rem;color:var(--soft);letter-spacing:.04em}
.prog{font-size:.78rem;color:var(--soft)}

main{max-width:760px;margin:0 auto;padding:1rem 1rem 4rem}
.back{display:inline-block;margin:.4rem 0 1rem;color:var(--soft);font-size:.9rem}

/* ── 落地頁 ── */
.hero{padding:1.4rem 0 .6rem}
.hero h1{font-size:1.9rem;line-height:1.3;margin:.2rem 0 .8rem;font-weight:700}
.hero h1 b{color:var(--anchor)}
.prog-line{background:var(--anchor-bg);border:1px solid #eadcae;border-radius:12px;
  padding:.6rem .9rem;font-size:.95rem;display:inline-block}
.prog-line b{color:var(--anchor);font-size:1.1rem}
.hero-note{color:var(--soft);font-size:.95rem;margin:.7rem 0 0}

.spine{margin-top:1.4rem;position:relative}
.weekrow{display:flex;gap:.8rem;padding:.5rem 0;border-top:1px dashed var(--line)}
.wlabel{flex:0 0 3.4rem;color:var(--soft);font-size:.82rem;padding-top:.7rem;font-weight:600}
.wnodes{display:flex;flex-wrap:wrap;gap:.6rem;flex:1}
.node{position:relative;display:flex;flex-direction:column;gap:.15rem;min-width:140px;flex:1;
  background:var(--card);border:1px solid var(--line);border-left:4px solid var(--line);
  border-radius:12px;padding:.6rem .75rem;transition:transform .08s,box-shadow .12s}
.node:active{transform:scale(.99)}
.node:hover{box-shadow:0 3px 14px rgba(0,0,0,.07)}
.t-lesson{border-left-color:var(--build)}
.t-reveal{border-left-color:var(--anchor)}
.t-cryst{border-left-color:var(--cryst);background:var(--cryst-bg)}
.t-future{border-left-color:#ccc;background:#f3f1ec;opacity:.72;pointer-events:none;cursor:default}
.t-future .ntitle{font-weight:500;color:var(--soft)}
.t-future .ntag{color:#a89f92}
.nslug{font-weight:700;font-size:.82rem;color:var(--soft)}
.ntitle{font-size:1.02rem;line-height:1.3;font-weight:600}
.ntag{font-size:.72rem;color:var(--soft)}
.mini-draft{position:absolute;top:.5rem;right:.6rem;font-size:.62rem;color:#b08;
  background:#fbe9f3;border-radius:6px;padding:.05rem .35rem}
.ndone{position:absolute;top:.55rem;right:.6rem;width:.7rem;height:.7rem;border-radius:50%;
  border:1.5px solid var(--line)}
.node.done .ndone{background:var(--story);border-color:var(--story)}
.node.done .mini-draft{display:none}

.sitefoot{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line);
  color:var(--soft);font-size:.8rem;line-height:1.5}

/* ── 單課頁 ── */
.lhead{margin:.4rem 0 1rem}
.lslug{color:var(--soft);font-size:.85rem;font-weight:600;letter-spacing:.03em}
.lhead h1{font-size:1.55rem;line-height:1.35;margin:.25rem 0 .35rem}
.lsub{color:var(--soft);font-size:1rem;margin-bottom:.5rem}
.badge{display:inline-block;font-size:.72rem;border-radius:6px;padding:.12rem .5rem}
.badge.draft{color:#a06;background:#fbe9f3}
.badge.ok{color:var(--story);background:var(--story-bg)}

.cornernav{position:sticky;top:3rem;z-index:10;display:flex;flex-wrap:wrap;gap:.35rem;
  padding:.5rem 0;margin-bottom:.6rem;background:linear-gradient(var(--bg),var(--bg) 70%,transparent)}
.cornernav a{font-size:.8rem;color:var(--soft);background:var(--card);border:1px solid var(--line);
  border-radius:20px;padding:.2rem .65rem}

.teachernote{margin:.4rem 0 1rem;border:1px solid var(--line);border-radius:10px;background:#fff}
.teachernote summary{cursor:pointer;padding:.5rem .8rem;font-size:.85rem;color:var(--soft)}
.teachernote>div{padding:0 .9rem .6rem;font-size:.92rem;color:#555}

/* 四角區塊 */
.corner{border:1px solid var(--line);border-radius:16px;padding:.2rem 1rem 1rem;margin:0 0 1.1rem;
  background:var(--card);border-top:none;overflow:hidden}
.chead{margin:0 -1rem .7rem;padding:.55rem 1rem;display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}
.clabel{font-weight:700;font-size:1.05rem}
.chint{font-size:.82rem;color:var(--soft)}
.cfull{margin-left:auto;font-size:.72rem;color:#b7b0a4}
.corner-anchor .chead{background:var(--anchor-bg)} .corner-anchor .clabel{color:var(--anchor)}
.corner-story .chead{background:var(--story-bg)} .corner-story .clabel{color:var(--story)}
.corner-build .chead{background:var(--build-bg)} .corner-build .clabel{color:var(--build)}
.corner-drip .chead{background:var(--drip-bg)} .corner-drip .clabel{color:var(--drip)}
.corner-kosa .chead{background:var(--kosa-bg)} .corner-kosa .clabel{color:var(--kosa)}
.corner-listen .chead,.corner-ex .chead,.corner-next .chead,.corner-reveal .chead{background:#f3efe7}

.cbody p{margin:.5rem 0}
.cbody blockquote{margin:.6rem 0;padding:.5rem .9rem;border-left:3px solid var(--line);
  background:#fcfaf5;border-radius:0 8px 8px 0;color:#3a352d}
.cbody ul,.cbody ol{margin:.5rem 0;padding-left:1.3rem}
.cbody li{margin:.25rem 0}
.cog{font-family:var(--thai);color:var(--anchor);font-weight:600;background:var(--anchor-bg);
  border-radius:5px;padding:0 .2rem;white-space:nowrap}
.iast-hi{font-family:var(--iast);font-style:italic;color:var(--build)}
table.md{width:100%;border-collapse:collapse;margin:.6rem 0;font-size:.92rem}
table.md th,table.md td{border:1px solid var(--line);padding:.35rem .5rem;text-align:left;vertical-align:top}
table.md th{background:#f3efe7}

/* 故事句卡 */
.story{display:flex;flex-direction:column;gap:.7rem}
.scard{display:flex;gap:.7rem;background:#fcfbf7;border:1px solid var(--line);border-radius:12px;padding:.6rem .7rem}
.snum{flex:0 0 1.6rem;font-family:var(--thai);font-size:1.2rem;color:var(--story);text-align:center}
.sbody{flex:1;min-width:0}
.line{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}
.line .deva{font-family:var(--deva);font-size:1.35rem;line-height:1.6}
.line .iast{font-family:var(--iast);font-style:italic;color:#555;font-size:1rem}
.play{flex:0 0 auto;width:1.7rem;height:1.7rem;border-radius:50%;border:1px solid var(--story);
  color:var(--story);background:#fff;cursor:pointer;font-size:.7rem;line-height:1}
.play:active{background:var(--story-bg)}
.play.noaud{opacity:.4}
.w{cursor:pointer;border-radius:4px;padding:0 .1rem}
.w:hover,.w:active{background:#fff1c2;outline:1px solid #ecd99a}
.gloss{margin-top:.3rem;color:#3a352d;font-size:.95rem}
.sandhi{margin-top:.35rem;padding:.35rem .5rem;background:#eef6f3;border-radius:8px}
.sandhi .tag{font-size:.68rem;color:var(--story);background:#fff;border-radius:5px;padding:0 .35rem;
  border:1px solid #cfe6dd;margin-right:.4rem}
.trackbtn{margin-top:.4rem;font-size:.78rem;color:var(--story);background:none;border:none;cursor:pointer;padding:0}

/* 構句 答案 */
.answer{filter:blur(4px);background:#eef0f3;border-radius:4px;cursor:pointer;transition:filter .1s;
  font-family:var(--iast);font-style:italic;padding:0 .15rem}
.answer.shown{filter:none;background:#dcefe6}

/* 滴灌折疊 */
.dripwrap{}
.dripmore{font-size:.92rem;color:var(--drip);background:var(--drip-bg);border:1px solid var(--line);
  border-radius:8px;padding:.4rem .8rem;cursor:pointer;width:100%;text-align:left}
.dripbody{padding:.4rem .2rem 0}

/* kośa 詞卡 */
.kosa{display:flex;flex-wrap:wrap;gap:.6rem}
.kcard{flex:1 1 220px;background:#fcfaf6;border:1px solid var(--line);border-radius:12px;padding:.6rem .7rem;
  display:flex;flex-direction:column;gap:.25rem}
.ktype{font-size:.72rem;color:var(--kosa);font-weight:600}
.kfront{font-family:var(--deva);font-size:1.1rem;line-height:1.5}
.kback{font-size:.85rem;color:#555}
.claim{margin-top:.3rem;font-size:.82rem;color:var(--kosa);background:#fff;border:1px solid #e3c9b6;
  border-radius:8px;padding:.3rem;cursor:pointer}
.kcard.claimed{background:var(--kosa-bg);border-color:var(--kosa)}
.kcard.claimed .claim{background:var(--kosa);color:#fff;border-color:var(--kosa)}

/* 結晶課 命名儀式 */
.crystallize .lhead h1{color:var(--cryst)}
.ritual{background:var(--cryst-bg);border:1px solid #ddd0ee;border-radius:16px;padding:1rem}
.rtitle{font-weight:700;color:var(--cryst);font-size:1.1rem}
.rlede{font-size:.95rem;margin:.4rem 0 .8rem}
.rtabtitle{font-weight:600;font-size:.92rem;color:var(--cryst);margin:.9rem 0 .35rem}
table.grid{width:100%;border-collapse:collapse;text-align:center;font-family:var(--iast);font-size:1.1rem}
table.grid th,table.grid td{border:1px solid #d6c8ec;padding:.5rem}
table.grid th{font-family:var(--sans);font-size:.85rem;color:var(--cryst);background:#fff}
td.known{background:#e8f3ee;color:var(--story)}
td.blank{background:#fff;color:#b7b0a4;cursor:default}
td.blank.lit{background:#efe6fa;color:var(--cryst);font-weight:600}
.revealgrid{margin:.8rem 0 .3rem;font-size:.95rem;color:#fff;background:var(--cryst);border:none;
  border-radius:9px;padding:.5rem 1rem;cursor:pointer}
.rnote{font-size:.88rem;color:var(--soft);margin:.4rem 0 0}

/* kośa 詞（ś 在混排泰文時會被泰文字體搶渲染成 kosá）——用 Noto，Gentium 自託管兜底 */
.kw{font-family:"Noto Sans","Noto Serif","Gentium",Georgia,serif}

/* 語言切換 */
.langsw{display:flex;gap:.1rem;margin-left:auto}
.langsw a{font-size:.78rem;color:var(--soft);padding:.2rem .45rem;border-radius:7px;line-height:1}
.langsw a.on{background:var(--anchor);color:#fff}
.langsw a:not(.on):hover{background:#efeae0}
.prog{margin-left:.6rem}

/* 頂部導航 */
.topnav{display:flex;gap:.2rem;margin-left:1rem}
.topnav a{font-size:.85rem;color:var(--soft);padding:.25rem .6rem;border-radius:20px}
.topnav a:hover{background:#efeae0;color:var(--ink)}
.topbar{gap:.6rem}

/* 聽 */
.audionote{display:flex;gap:.5rem;align-items:baseline;background:#f3efe7;border-radius:10px;
  padding:.5rem .7rem;font-size:.85rem;color:var(--soft);margin-bottom:.6rem}
.badge2{flex:0 0 auto;font-size:.74rem;color:#7a6a3a;background:#fbf3dd;border-radius:6px;padding:.1rem .4rem}
.apair{display:inline-flex;align-items:center;gap:.3rem;background:#fcfbf7;border:1px solid var(--line);
  border-radius:20px;padding:.1rem .5rem;margin:.15rem .15rem;white-space:nowrap}
.apair .af{font-family:var(--iast);font-style:italic;color:#444}
.apair .arrow{color:var(--soft)}
.play.sm{width:1.4rem;height:1.4rem;font-size:.6rem}

/* 用 練習卡 */
.exlist{display:flex;flex-direction:column;gap:.5rem}
.exitem{display:flex;gap:.6rem;background:#fcfbf7;border:1px solid var(--line);border-radius:10px;padding:.55rem .7rem}
.exn{flex:0 0 1.5rem;height:1.5rem;border-radius:50%;background:var(--build-bg);color:var(--build);
  font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.exc{flex:1;min-width:0}
.extag{display:inline-block;font-size:.72rem;color:var(--build);background:var(--build-bg);
  border-radius:5px;padding:.05rem .4rem;margin-right:.4rem}

/* ② reader 三色 */
.rhead h1{font-size:1.5rem;margin:.2rem 0 .4rem}
.rhead .lede{color:#4a443c;font-size:.97rem}
.legend{display:flex;gap:.5rem;margin:.7rem 0}
.lg{font-size:.78rem;border-radius:6px;padding:.15rem .5rem}
.r-known{color:#2e7d68}
.r-new{color:#9a6b00}
.r-unknown{color:#a39c91}
.lg.r-known{background:#e6f3ef}
.lg.r-new{background:#fbf3dd}
.lg.r-unknown{background:#efece5}
.rpanel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1rem;margin:.8rem 0}
.rtitle{display:flex;align-items:center;gap:.5rem;font-weight:700;color:var(--story);margin-bottom:.7rem}
.gold-badge{font-size:.7rem;color:#7a6a3a;background:#fbf3dd;border:1px solid #e6d3a0;border-radius:6px;padding:.05rem .4rem;font-weight:400}
.rcard{padding:.5rem 0;border-bottom:1px dashed var(--line)}
.rcard:last-child{border-bottom:none}
.rline.rdeva{font-family:var(--deva);font-size:1.3rem;line-height:1.7}
.rline.riast{font-family:var(--iast);font-style:italic;color:#555;margin-top:.2rem}
.rline .w.r-known{color:#2e7d68}
.rline .w.r-new{background:#fbf3dd;border:1px solid #e6d3a0;border-radius:5px;color:#7a5800;padding:0 .15rem}
.rline .w.r-unknown{color:#b3aca1}
.rline .w{cursor:pointer}
.rprog{margin-top:.8rem;padding-top:.6rem;border-top:1px solid var(--line);font-size:.92rem;color:#4a443c}
.rprog b{color:var(--story)}
.rnotebox{background:var(--story-bg);border:1px solid #cfe6dd;border-radius:12px;padding:.8rem;font-size:.9rem;color:#2c4a42;line-height:1.6}

/* reader 聽眞文本（音頻引用同域 /static/，僅線上可播） */
.rlisten .lede{color:#4a443c;font-size:.95rem;margin:.2rem 0 .6rem}
.rlgroup{margin:.7rem 0}
.rlsrc{font-family:var(--iast);font-size:.87rem;color:var(--soft);margin-bottom:.4rem}
.rlist{display:flex;flex-wrap:wrap;gap:.45rem}
.rlchip{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--line);
  border-radius:999px;padding:.22rem .65rem .22rem .28rem;background:#fcfbf7;font-size:.85rem;color:#4a443c}
.rlnote{margin-top:.6rem;font-size:.8rem;color:var(--soft)}

/* 聽節 眞人原句（文本先行，無 ▶） */
.realpool{margin:.8rem 0}
.realh{font-size:.98rem;color:var(--story);margin:.2rem 0 .3rem}
.reallede{font-size:.88rem;color:var(--soft);margin:.2rem 0 .6rem}
.rsrc{font-size:.72rem;color:var(--soft);background:#f3efe7;border-radius:5px;padding:.05rem .35rem;margin-left:.3rem}

/* ③ tools */
.toolsec{margin:1.4rem 0}
.toolsec h2{font-size:1.2rem;border-bottom:2px solid var(--line);padding-bottom:.3rem}
.toolsec .lede{color:#4a443c;font-size:.95rem}
.promptcard{position:relative;background:#23201b;border-radius:12px;padding:1rem;margin:.6rem 0}
.prompttext{margin:0;white-space:pre-wrap;color:#ece4d4;font-family:ui-monospace,Menlo,monospace;
  font-size:.82rem;line-height:1.55;max-height:340px;overflow:auto}
.copybtn{position:absolute;top:.6rem;right:.6rem;background:var(--anchor);color:#fff;border:none;
  border-radius:8px;padding:.35rem .7rem;font-size:.82rem;cursor:pointer;z-index:2}
.copybtn.done{background:var(--story)}
.warn{color:#a05;font-size:.85rem;background:#fbe9f3;border-radius:8px;padding:.5rem .7rem}
.warn-inline{color:#a05;font-size:.85rem}
.dctoolbar{display:flex;gap:.4rem;flex-wrap:wrap;margin:.6rem 0}
.dcfilter{font-size:.82rem;border:1px solid var(--line);background:#fff;border-radius:20px;padding:.25rem .7rem;cursor:pointer}
.dcfilter.on{background:var(--anchor);color:#fff;border-color:var(--anchor)}
.dcsearch{flex:1;min-width:140px;border:1px solid var(--line);border-radius:20px;padding:.25rem .8rem;font-size:.9rem}
.dcgroup{margin:.8rem 0}
.dcgroup h3{font-size:.95rem;color:var(--anchor);margin:.5rem 0 .3rem}
.dcrule{display:grid;grid-template-columns:2.6rem 1fr;gap:.2rem .6rem;padding:.5rem .2rem;border-bottom:1px solid var(--line)}
.dcid{font-weight:700;color:var(--soft);font-size:.85rem}
.star{color:var(--anchor)}
.dcf{font-size:.92rem}
.dcex{grid-column:2;font-size:.85rem;color:#6b6358}
.wordh{font-size:.95rem;color:var(--anchor);margin-top:1.2rem}
.wordgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.4rem}
.wcard{background:#fcfaf6;border:1px solid var(--line);border-radius:9px;padding:.45rem .6rem;display:flex;flex-direction:column;gap:.1rem}
.wth{font-family:var(--thai);font-size:1.05rem}
.wia{font-family:var(--iast);font-style:italic;color:#555;font-size:.85rem}
.wgl{font-size:.8rem;color:var(--soft)}
/* Decoder 100 詞全表：序號／天城體／⚠待核／假朋友／規則 chip 錨鏈 */
.wcard{position:relative}
.wnum{position:absolute;top:.3rem;right:.5rem;font-size:.65rem;color:#c9c0af}
.wdeva{font-family:var(--deva);font-size:.95rem;color:#4a443c}
.wcard.ffriend{border-color:#d4649a;background:#fdf3f8}
.wflag{font-size:.68rem;border-radius:6px;padding:.05rem .35rem;align-self:flex-start;margin-top:.1rem}
.wflag.false{background:#fbe9f3;color:#a05}
.wflag.check{background:#fdf3d8;color:#8a6d1a}
.rchips{display:flex;gap:.25rem;flex-wrap:wrap;margin-top:.2rem}
.rchip{font-size:.7rem;border:1px solid var(--line);border-radius:6px;padding:0 .3rem;
  color:var(--anchor);text-decoration:none;background:#fff}
.rchip:hover{background:var(--anchor);color:#fff;border-color:var(--anchor)}
/* 規則行錨點高亮＋攤銷課 chip */
.dcrule:target{background:var(--anchor-bg);outline:2px solid var(--anchor);border-radius:8px}
.dctaught{font-size:.7rem;margin-left:.45rem;border-radius:6px;padding:.05rem .4rem;
  background:var(--anchor-bg);color:var(--anchor);text-decoration:none;white-space:nowrap;vertical-align:middle}
.dctaught:hover{background:var(--anchor);color:#fff}
.dctaught.soon{background:#efece5;color:#9a948a}
/* L1 prompt cursor 下拉 */
.cursorbar{display:flex;gap:.5rem;align-items:center;margin:.5rem 0;flex-wrap:wrap}
.cursorbar label{font-size:.9rem;color:#4a443c}
.cursorsel{border:1px solid var(--line);border-radius:8px;padding:.3rem .5rem;font-size:.9rem;
  background:#fff;max-width:100%}

/* 字橋矩陣 Akṣara-setu */
.akwrap{overflow-x:auto}
.aktab{border-collapse:separate;border-spacing:.3rem;margin:.4rem auto}
.aktab th{font-family:var(--sans);font-size:.72rem;color:var(--soft);font-weight:600;padding:.1rem .2rem;text-align:center;vertical-align:bottom}
.aktab th.akrow{text-align:right;padding-right:.5rem;white-space:nowrap;color:var(--anchor)}
.akcell{display:flex;flex-direction:column;align-items:center;gap:.05rem;width:3.1rem;height:3.1rem;
  background:var(--card);border:1px solid var(--line);border-radius:10px;cursor:pointer;padding:.2rem 0;transition:transform .07s,box-shadow .1s,border-color .1s}
.akcell:hover{box-shadow:0 2px 10px rgba(0,0,0,.08);border-color:var(--anchor)}
.akcell:active{transform:scale(.96)}
.akcell.sel{background:var(--anchor-bg);border-color:var(--anchor);box-shadow:0 0 0 2px var(--anchor) inset}
.akdev{font-family:var(--deva);font-size:1.5rem;line-height:1}
.akthai{font-family:var(--thai);font-size:.95rem;color:var(--anchor);line-height:1}
.akstrip{margin:.7rem 0}
.akslabel{font-size:.8rem;color:var(--soft);font-weight:600;margin-bottom:.25rem}
.akrowcells{display:flex;flex-wrap:wrap;gap:.3rem}
.akdetail{margin:1rem 0;min-height:5rem;background:var(--card);border:1px solid var(--line);border-radius:16px;
  padding:1rem;display:flex;align-items:center;gap:1.2rem}
.akd-hint{color:var(--soft);font-size:.95rem;margin:auto}
.akd-dev{font-family:var(--deva);font-size:3.4rem;line-height:1;color:var(--ink);flex:0 0 auto}
.akd-info{flex:1;min-width:0}
.akd-row1{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap}
.akd-iast{font-family:var(--iast);font-style:italic;font-size:1.5rem;color:var(--build)}
.akd-thai{font-family:var(--thai);font-size:1.6rem;color:var(--anchor)}
.akd-thai-lbl{font-size:.7rem;color:var(--soft)}
.akd-ipa{font-family:var(--iast);color:#555;font-size:1.05rem}
.akd-ex{margin-top:.4rem;font-size:1.05rem}
.akd-ex .exth{font-family:var(--thai);color:var(--anchor)}
.akd-ex .exsrc{font-family:var(--iast);font-style:italic;color:var(--soft);font-size:.9rem}
.akd-play{width:2rem;height:2rem;border-radius:50%;border:1px solid var(--story);color:var(--story);background:#fff;cursor:pointer;font-size:.8rem;flex:0 0 auto}

/* 書寫順序（字橋 akṣara 細節面板下的筆順動畫） */
.skopen{display:inline-flex;align-items:center;gap:.32rem;margin-left:auto;
  font-size:.8rem;color:var(--anchor);background:#fff;border:1px solid #e6d3a0;
  border-radius:20px;padding:.22rem .7rem;cursor:pointer;line-height:1.2;
  transition:background .12s,color .12s}
.skopen:hover{background:var(--anchor-bg)}
.skopen.on{background:var(--anchor);color:#fff;border-color:var(--anchor)}
.akstroke{margin:.6rem 0 1rem;background:var(--card);border:1px solid var(--line);
  border-radius:16px;padding:.9rem 1rem;display:flex;flex-direction:column;
  align-items:center;gap:.6rem}
.sk-stage{background:#fdfbf4;border:1px dashed #e9dfc6;border-radius:12px;
  padding:.5rem 1.1rem;max-width:100%;overflow-x:auto}
.sk-svg{display:block;max-width:100%;cursor:pointer;-webkit-tap-highlight-color:transparent}
.sk-svg .sk-tipwrap,.sk-svg .sk-badges{transition:opacity .3s}
.sk-svg .sk-fill{transition:opacity .45s ease-in}
.skbar{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;justify-content:center}
.skbtn{font-size:.8rem;color:var(--ink);background:#fff;border:1px solid var(--line);
  border-radius:20px;padding:.22rem .7rem;cursor:pointer}
.skbtn:hover{border-color:var(--anchor);color:var(--anchor)}
.skbtn.on{background:var(--anchor);color:#fff;border-color:var(--anchor)}
.skcount{font-size:.78rem;color:var(--soft);min-width:4em;text-align:center}
.skdone{font-size:.85rem;color:var(--anchor);font-weight:600}
.sk-loading{color:var(--soft);font-size:.9rem;padding:1.2rem 0;text-align:center}
.sk-fail{color:var(--soft);font-size:.85rem;padding:.8rem 0;text-align:center}

/* 詞點擊彈窗 */
.wpop{position:absolute;z-index:50;max-width:230px;background:#2b2620;color:#f6f1e7;
  border-radius:10px;padding:.5rem .7rem;box-shadow:0 6px 22px rgba(0,0,0,.25);font-size:.85rem}
.wpop b{font-family:var(--iast);font-style:italic;display:block;font-size:1.05rem;margin-bottom:.2rem;color:#ffe9a8}
.wpop span{color:#cfc7b8;line-height:1.4}
.wpop .wp-deva{font-family:var(--deva);font-size:1.2rem;line-height:1.5;color:#ffe9a8}
.wpop .wp-gloss{display:block;color:#f6f1e7}
.wpop .wp-note{display:block;font-size:.82em;margin-top:.15rem}
.wpop .wp-src{display:inline-block;margin-top:.3rem;font-size:.72em;color:#a89f8d;
  border:1px solid #55503f;border-radius:4px;padding:0 .35em}

@media (max-width:560px){
  body{font-size:16px}
  .hero h1{font-size:1.6rem}
  .wlabel{flex-basis:2.6rem}
  .node{min-width:120px}
  .line .deva{font-size:1.25rem}
  .cfull{display:none}
  .topbar{padding:.6rem .7rem}
  .brand,.langsw,.prog{flex:0 0 auto}
  .brand span{display:none}
  .prog{font-size:.7rem}
  .topnav{flex:1 1 0%;min-width:0;margin-left:.4rem;overflow-x:auto;-webkit-overflow-scrolling:touch;
    white-space:nowrap;scrollbar-width:none}
  .topnav::-webkit-scrollbar{display:none}
  .topnav a{flex:0 0 auto}
}

/* 誠信修復：無音頻 noaud（span 不可點）/ 手動完成本課 / 本週手動標記 */
span.play.noaud{display:inline-flex;align-items:center;justify-content:center;
  cursor:default;border-style:dashed;font-size:.75rem}
.donebtn{display:block;margin:1.4rem auto .3rem;padding:.5rem 1.4rem;font-size:.95rem;
  border-radius:22px;border:1px solid var(--story);color:var(--story);background:#fff;cursor:pointer}
.donebtn.on{background:var(--story);color:#fff}
.wlabel{cursor:pointer;user-select:none}
.wlabel:hover{color:var(--story)}
.weekrow.curweek .wlabel{color:var(--story);font-weight:800}
.weekrow.dimweek{opacity:.45}

/* ── 連聲頁 sandhi.html（復用 akcell/akdetail 體系）── */
.sdi{font-family:var(--iast);font-style:italic}
.sdcell{width:3.4rem;height:2.5rem;justify-content:center}
.sdcell .sdres{font-family:var(--iast);font-style:italic;font-size:1rem;color:var(--build)}
.sdcell.unc{border-style:dashed}
.sdcell .uncmark{font-size:.55rem;line-height:1;color:var(--anchor)}
.sdd{display:flex;flex-direction:column;gap:.45rem;text-align:left;width:100%}
.sdd-res{font-size:1.45rem;color:var(--ink)}
.sdd-res b{color:var(--build)}
.sdd-ex{font-size:1.05rem}
.sdd-ex b{color:var(--story)}
.sdd-ref{font-family:var(--sans);font-style:normal;font-size:.78rem;color:var(--soft)}
.sdd-lbl{font-family:var(--sans);font-size:.72rem;font-weight:700;color:var(--anchor);
  letter-spacing:.04em;margin-right:.35rem}
.sdd-why{font-size:.95rem}
.sdd-notes{font-size:.85rem;color:var(--soft)}
.dcf .sdi b,.dcf b.sdi{color:var(--build);font-weight:700}

/* ── 借詞頁 loanwords.html ── */
.lwinfo{font-size:.85rem;color:var(--soft);margin:.4rem 0 .7rem}
.wpos{font-size:.68rem;color:var(--soft);font-style:normal}

/* ══ 帳號條 + 文字切換 + 天城/IAST 顯示（app.js 運行時注入頂欄）══ */
.acctbar{display:flex;align-items:center;gap:.15rem;font-size:.82rem;flex-wrap:wrap}
.acctbar a{color:var(--soft);padding:.2rem .5rem;border-radius:7px;line-height:1.2;white-space:nowrap}
.acctbar a:hover{background:#efeae0;color:var(--ink)}
.acctbar .acct-me{color:var(--kosa);font-weight:600}
.acctbar .acct-reg{background:var(--anchor);color:#fff}
.acctbar .acct-reg:hover{background:#a4780a;color:#fff}
.acctbar .acct-who{color:var(--soft);font-size:.78rem;padding:.2rem .2rem}
.acctbar .acct-out{color:var(--soft)}
.acctbar .acct-sep{color:var(--line)}
.scripttoggle{display:inline-flex;align-items:center;gap:.2rem;padding:.1rem .25rem;
  border:1px solid var(--line);border-radius:9px;background:var(--card)}
.scripttoggle .stog-lbl{font-size:.7rem;color:var(--soft);padding:0 .15rem}
.scripttoggle button{font:inherit;font-size:.78rem;border:0;background:none;color:var(--soft);
  padding:.14rem .5rem;border-radius:7px;cursor:pointer;line-height:1.3;font-family:var(--deva)}
.scripttoggle button:hover{background:#efeae0}
.scripttoggle button.on{background:var(--anchor);color:#fff}
/* 成對天城/IAST 行：切換時隱藏其一（.iast-hi 內嵌高亮不受影響）*/
body.script-deva .iast,body.script-deva .w.iast{display:none}
body.script-iast .deva,body.script-iast .w.deva{display:none}
@media (max-width:640px){
  .acctbar{order:5;flex-basis:100%;justify-content:flex-start;margin-top:.15rem}
  .scripttoggle{order:6}
}
