/* ===== Dhammapada Học — app.css =====
   Phần 1: CSS prototype/dhammapada-chuong1-toggle.html (giữ NGUYÊN VĂN — ngôn ngữ thiết kế chuẩn).
   Phần 2: quy tắc mới cho app (header điều hướng, dải seal, trang chủ, sheet, toast…). */
  :root{
    --paper:#F2EDE3; --card:#F8F4EB; --ink:#221F18; --muted:#6E6654;
    --indigo:#2E4B6B; --seal:#9C3325; --gold:#C3A97C; --line:#DDD3BE;
    --serif:"Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
    --cjk:"Songti TC","Songti SC","Noto Serif TC","Noto Serif SC","SimSun",serif;
    --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto} *{transition:none!important;animation:none!important}}
  body{background:var(--paper);color:var(--ink);font-family:var(--serif);line-height:1.55;
       background-image:radial-gradient(circle at 50% -10%,#FBF8F0 0%,var(--paper) 60%)}
  header{position:sticky;top:0;z-index:20;background:rgba(242,237,227,.96);backdrop-filter:blur(6px);
         border-bottom:1px solid var(--line);padding:10px 14px 8px}
  .kicker{font-family:var(--sans);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--seal)}
  h1{font-size:19px;font-weight:600;letter-spacing:.01em;margin-top:2px}
  h1 .zh{font-family:var(--cjk);color:var(--indigo)}
  .subtitle{font-size:12px;color:var(--muted);font-style:italic;margin-top:1px}
  .controls{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}
  .chip{font-family:var(--sans);font-size:11.5px;letter-spacing:.04em;padding:5px 11px;border-radius:2px;
        border:1px solid var(--indigo);color:var(--indigo);background:transparent;cursor:pointer;user-select:none}
  .chip.on{background:var(--indigo);color:#F6F2E8}
  .chip.hv{border-color:var(--seal);color:var(--seal)}
  .chip.hv.on{background:var(--seal);color:#F6F2E8}
  .controls{align-items:center}
  main{max-width:640px;margin:0 auto;padding:18px 14px 90px}
  .intro{font-size:13px;color:var(--muted);border-left:2px solid var(--gold);padding:2px 0 2px 12px;margin-bottom:22px}
  .verse{background:var(--card);border:1px solid var(--line);border-radius:3px;padding:16px 16px 14px;margin-bottom:18px;
         box-shadow:0 1px 0 rgba(90,75,45,.06)}
  .vhead{display:flex;align-items:center;gap:10px;margin-bottom:11px}
  .seal{width:30px;height:30px;background:var(--seal);color:#F6EFE2;font-family:var(--sans);font-weight:700;
        font-size:13px;display:flex;align-items:center;justify-content:center;border-radius:2px;flex-shrink:0;
        box-shadow:inset 0 0 0 1.5px rgba(246,239,226,.55);transform:rotate(-1.2deg)}
  .vrule{flex:1;height:1px;background:var(--line)}
  .lang{margin-bottom:12px}
  .lang:last-child{margin-bottom:0}
  .ltag{font-family:var(--sans);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);
        display:block;margin-bottom:3px}
  .pali{font-size:15.5px;font-style:italic;color:var(--indigo);line-height:1.75}
  .pw{cursor:pointer;border-bottom:1px dotted rgba(46,75,107,.45);padding-bottom:1px}
  .pw:active,.pw.sel{background:rgba(46,75,107,.12)}
  .en{font-size:14px;color:#3D3A30}
  .vi{font-size:15px;white-space:pre-line}
  .zh{font-family:var(--cjk);font-size:19px;line-height:2.15;letter-spacing:.05em;color:var(--ink)}
  .zc{cursor:pointer;padding:1px 1px}
  .zc:active,.zc.sel{background:rgba(156,51,37,.13);border-radius:2px}
  ruby rt{font-family:var(--sans);font-size:8.5px;color:var(--seal);letter-spacing:0;opacity:.9}
  body:not(.showhv) ruby rt{display:none}
  .clbtn{font-family:var(--sans);font-size:11px;color:var(--muted);background:none;border:none;cursor:pointer;
         margin-top:10px;padding:0;letter-spacing:.05em;border-bottom:1px dotted var(--muted)}
  .classical{display:none;margin-top:10px;padding:10px 12px;background:rgba(46,75,107,.055);border-left:2px solid var(--indigo)}
  .classical.open{display:block}
  .classical .zh{font-size:17px;line-height:1.9}
  .clref{font-family:var(--sans);font-size:10px;color:var(--muted);letter-spacing:.08em;margin-top:5px}
  /* illustration layer */
  .illus{margin:0 0 13px}
  .illus img{width:100%;border-radius:2px;border:1px solid var(--line);display:block}
  .illus .cap{font-family:var(--sans);font-size:11px;color:var(--muted);margin-top:5px;font-style:italic}
  .illus .ph{display:none}
  .illus.miss .cap{display:none}
  .illus.miss .ph{display:flex;flex-direction:column;align-items:center;gap:4px;
    border:1px dashed var(--gold);border-radius:2px;padding:14px 12px;text-align:center}
  .illus .ph b{color:var(--gold);font-size:18px;font-weight:400}
  .illus .ph span{font-size:12.5px;color:var(--ink)}
  .illus .ph em{font-family:var(--sans);font-style:normal;font-size:10px;color:var(--muted)}
  body:not(.sI) .illus{display:none}
  /* Nôm layer */
  .nom{font-family:"Nom Na Tong","NomNaTong","Han-Nom Gothic","Songti TC","Noto Serif TC",serif;
       font-size:21px;line-height:2.2;letter-spacing:.05em}
  .nline{display:block}
  .nc{cursor:pointer;padding:1px}
  .nc:active,.nc.sel{background:rgba(46,75,107,.12);border-radius:2px}
  .nc.h{color:#3F7049}
    .nc.a{color:#B07B22}
  .nc.n{color:#B3452C}
  .nc.u{color:#8A8272;border-bottom:2px dashed #B5AC98}
  .nom ruby rt{font-family:var(--sans);font-size:8.5px;color:var(--indigo);opacity:.9}
  body:not(.showhv) .nom ruby rt{display:none}
  .legend{font-family:var(--sans);font-size:10px;color:var(--muted);margin-top:6px;display:flex;gap:12px;flex-wrap:wrap}
  .legend i{font-style:normal;display:inline-flex;align-items:center;gap:4px}
  .dot{width:8px;height:8px;border-radius:50%;display:inline-block}
  .dg{background:#3F7049}.da{background:#B07B22}
  .dn{background:#B3452C}.du{background:#B5AC98}
      body:not(.sN) .lang[data-l=N]{display:none}
  /* commentary panel */
  .cmtbtn{font-family:var(--sans);font-size:11px;color:var(--muted);background:none;border:none;cursor:pointer;
          margin-top:10px;margin-right:14px;padding:0;letter-spacing:.05em;border-bottom:1px dotted var(--muted)}
  .cmt{display:none;margin-top:10px;padding:11px 13px;background:rgba(195,169,124,.10);border-left:2px solid var(--gold)}
  .cmt.open{display:block}
  .cmt h4{font-family:var(--sans);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);
          font-weight:600;margin:9px 0 3px}
  .cmt h4:first-child{margin-top:0}
  .cmt p{font-size:13.5px;line-height:1.65;color:#3D3A30}
  .cmt p+p{margin-top:6px}
  .cmt .src{font-family:var(--sans);font-size:10px;color:var(--muted);margin-top:7px}
  .ctabs{display:flex;gap:5px;flex-wrap:wrap;align-items:center;margin:-11px -13px 9px;padding:8px 13px;
         position:sticky;top:calc(var(--hdr,130px) - 14px);z-index:5;background:#F3ECE0;border-bottom:1px solid var(--line)}
  .cact{font-family:var(--sans);font-size:10.5px;padding:3px 7px;border-radius:2px;border:1px solid transparent;
        color:var(--muted);background:transparent;cursor:pointer;white-space:nowrap}
  .cact:hover{border-color:var(--line)}
  .cact.first{margin-left:auto}
  .ctab:focus-visible,.cact:focus-visible{outline:2px solid var(--indigo);outline-offset:1px}
  .ctab{font-family:var(--sans);font-size:10.5px;padding:3px 9px;border-radius:2px;border:1px solid var(--gold);
        color:#8A7347;background:transparent;cursor:pointer}
  .ctab.on{background:var(--gold);color:#FBF7EE}
  .cpane[hidden]{display:none}
  .cmt .cnext{display:inline-block;font-family:var(--sans);font-size:11px;color:#8A7347;background:none;border:none;
              border-bottom:1px dotted #8A7347;cursor:pointer;margin-top:7px;padding:0;letter-spacing:.05em}
  .cmt .cnext:hover{color:var(--ink)}
  .cmt .cnext:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}
  .cpane p[data-i]{transition:background 1.2s ease}
  .cpane p.vchl{background:rgba(195,169,124,.22)}
  .cpane .pali-full{font-style:italic;color:var(--indigo);font-size:13.5px;line-height:1.7}
  .cmt h4 .note{font-weight:400;letter-spacing:.04em;text-transform:none;color:var(--muted);font-size:10px;margin-left:6px}
  .cmt .cshare{font-family:var(--sans);font-size:10.5px;color:#8A7347;margin-bottom:6px}
  .cmt .cterms{list-style:none;padding:0;margin:2px 0 0;font-size:12.5px;line-height:1.55;color:#3D3A30;
               columns:2;column-gap:18px}
  .cmt .cterms li{break-inside:avoid;padding:1px 0}
  .cmt .cterms i{color:var(--indigo)}
  .cmt .cterms .tv{color:#6B6455}
  @media (max-width:760px){.cmt .cterms{columns:1}}
  .cpane .pali-full p{font-style:italic;color:var(--indigo)}
  .cpane p.pali-full{margin-bottom:4px}
  .cpane p.gl{font-family:var(--sans);font-size:11.5px;color:#6B6455;line-height:1.55}
  .cpane .todo{font-family:var(--sans);font-size:11px;color:var(--muted);border:1px dashed var(--line);
               padding:8px 10px;border-radius:2px}
  /* bottom sheet */
  #shade{position:fixed;inset:0;background:rgba(30,25,15,.35);opacity:0;pointer-events:none;transition:opacity .18s;z-index:30}
  #shade.show{opacity:1;pointer-events:auto}
  #sheet{position:fixed;left:0;right:0;bottom:0;z-index:31;background:#FBF7EE;border-top:2px solid var(--gold);
         border-radius:10px 10px 0 0;padding:18px 20px calc(20px + env(safe-area-inset-bottom));
         transform:translateY(105%);transition:transform .22s ease;max-width:640px;margin:0 auto;
         box-shadow:0 -6px 30px rgba(60,45,20,.18)}
  #sheet.show{transform:translateY(0)}
  #sheet .big{font-family:var(--cjk);font-size:52px;line-height:1;color:var(--ink)}
  #sheet .bigp{font-family:var(--serif);font-style:italic;font-size:26px;color:var(--indigo);line-height:1.2}
  #sheet .read{font-family:var(--sans);font-size:15px;color:var(--seal);font-weight:600;margin-top:6px;letter-spacing:.03em}
  #sheet .mean{font-size:14.5px;color:#3D3A30;margin-top:8px;line-height:1.6}
  #sheet .type{font-family:var(--sans);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
  footer{max-width:640px;margin:0 auto;padding:0 14px 40px;font-size:11.5px;color:var(--muted);font-family:var(--sans);line-height:1.6}
  .chip:focus-visible,.pw:focus-visible,.zc:focus-visible,.clbtn:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}
  body:not(.sP) .lang[data-l=P]{display:none} body:not(.sE) .lang[data-l=E]{display:none}
  body:not(.sV) .lang[data-l=V]{display:none} body:not(.sZ) .lang[data-l=Z]{display:none}
  body:not(.sZ) .clbtn, body:not(.sZ) .classical{display:none}
  /* ===== nút chuyển view ===== */
  .viewsw{display:inline-flex;margin-left:auto;border:1px solid var(--gold);border-radius:2px;overflow:hidden}
  .viewsw button{font-family:var(--sans);font-size:11.5px;letter-spacing:.04em;padding:5px 10px;border:none;
       background:transparent;color:var(--muted);cursor:pointer}
  .viewsw button+button{border-left:1px solid var(--gold)}
  .viewsw button[aria-pressed=true]{background:var(--gold);color:#F6F2E8}
  .viewsw button:focus-visible{outline:2px solid var(--indigo);outline-offset:-2px}
  /* ===== view ngang (desk): tranh trái, văn bản phải ===== */
  body.desk header>*{max-width:1280px;margin-left:auto;margin-right:auto}
  body.desk main{max-width:1280px;padding:22px 28px 90px}
  body.desk footer{max-width:1280px;padding:0 28px 40px}
  body.desk .intro{max-width:760px}
  body.desk .verse{display:grid;grid-template-columns:minmax(300px,42%) minmax(0,1fr);column-gap:30px;
         padding:20px 24px 18px;margin-bottom:24px}
  body.desk .verse>.vhead{grid-column:1/-1}
  body.desk .verse>.illus{grid-column:1;margin:0;align-self:start;position:sticky;top:var(--hdr,130px)}
  body.desk .verse>.vbody{grid-column:2;min-width:0}
  body.desk:not(.sI) .verse{grid-template-columns:minmax(0,1fr)}
  body.desk:not(.sI) .verse>.vbody{grid-column:1;max-width:820px}
  body.desk .pali{font-size:16.5px} body.desk .en{font-size:15px} body.desk .vi{font-size:16px} body.desk .zh{font-size:20px}
  @media (max-width:760px){ .viewsw{display:none} }

/* ===== Phần 2: quy tắc mới của app ===== */
[hidden]{display:none!important}
a{color:inherit}
.verse{scroll-margin-top:var(--hdr,130px)}
.en{white-space:pre-line}
.illus img{height:auto}
.zp{color:var(--muted)}
button{font:inherit;color:inherit}
/* header: hàng kicker + topnav, hàng tên phẩm + nút, dải seal */
.hrow{display:flex;align-items:baseline;gap:12px}
.hmain{display:flex;align-items:center;gap:10px;margin-top:2px}
.htitle{flex:1;min-width:0}
.chname{display:block;max-width:100%;background:none;border:none;padding:0;cursor:pointer;text-align:left;
        font-family:var(--serif);font-size:19px;font-weight:600;letter-spacing:.01em;color:var(--ink);line-height:1.35}
.chname .zh{font-family:var(--cjk);color:var(--indigo);font-size:inherit;line-height:inherit;letter-spacing:0}
.chname .dd{font-family:var(--sans);font-size:11px;color:var(--muted);margin-left:2px;vertical-align:2px}
.chname:hover .dd{color:var(--seal)}
.hbtns{display:flex;gap:6px;flex-shrink:0}
.nb{font-family:var(--sans);width:32px;height:30px;display:inline-flex;align-items:center;justify-content:center;
    border:1px solid var(--indigo);border-radius:2px;background:transparent;color:var(--indigo);font-size:16px;
    line-height:1;cursor:pointer;user-select:none}
.nb.gear{border-color:var(--gold);color:#8A7347;font-size:15px}
.nb:hover:not(:disabled){background:rgba(46,75,107,.08)}
.nb:disabled{opacity:.3;cursor:default}
.nb:focus-visible,.chname:focus-visible,.seal.sm:focus-visible,.topnav a:focus-visible,.botnav a:focus-visible,
.chcard:focus-visible,.daily:focus-visible,.chrow:focus-visible,.chnext:focus-visible,.hcard:focus-visible,.mlist a:focus-visible,
.cmtbtn:focus-visible,.nc:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}
.topnav{display:flex;gap:16px;margin-left:auto}
.topnav a{font-family:var(--sans);font-size:11px;letter-spacing:.06em;color:var(--muted);text-decoration:none;
          padding-bottom:1px;border-bottom:1px solid transparent}
.topnav a:hover{color:var(--ink)}
.topnav a[aria-current=page]{color:var(--seal);border-bottom-color:var(--seal)}
.sealstrip{display:flex;gap:5px;overflow-x:auto;margin:9px -14px 0;padding:2px 14px 4px;scrollbar-width:none;
           overscroll-behavior-x:contain}
.sealstrip::-webkit-scrollbar{display:none}
.seal.sm{width:26px;height:26px;font-size:11px;border:none;cursor:pointer;opacity:.4;transition:opacity .15s}
.seal.sm:hover{opacity:.7}
.seal.on{opacity:1;box-shadow:inset 0 0 0 1.5px rgba(246,239,226,.75),0 0 0 2px rgba(156,51,37,.22)}
body.desk .sealstrip{margin-left:auto;margin-right:auto;padding-left:0;padding-right:0}
/* thanh điều hướng đáy (điện thoại) */
.botnav{display:none}
@media (max-width:760px){
  .topnav{display:none}
  .botnav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:25;
          height:calc(56px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);
          background:rgba(242,237,227,.97);backdrop-filter:blur(6px);border-top:1px solid var(--line)}
  .botnav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;text-decoration:none;
            color:var(--muted);font-family:var(--sans);font-size:10px;letter-spacing:.06em}
  .botnav a b{font-family:var(--cjk);font-weight:400;font-size:18px;line-height:1.1}
  .botnav a[aria-current=page]{color:var(--seal)}
  main{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
}
/* sheet: thêm cuộn + dạng dropdown (màn rộng) */
#sheet{max-height:min(85vh,760px);overflow-y:auto;overscroll-behavior:contain;visibility:hidden;
       transition:transform .22s ease,visibility 0s .22s}
#sheet.show{visibility:visible;transition:transform .22s ease}
#sheet .shead{position:sticky;top:-18px;z-index:1;margin:-18px -20px 0;padding:18px 20px 2px;background:#FBF7EE}
#sheet.drop .shead{top:-14px;margin:-14px -16px 0;padding:14px 16px 2px}
#sheet.drop{left:var(--dropx,auto);right:auto;bottom:auto;top:var(--dropy,80px);margin:0;width:min(460px,94vw);
            max-height:min(72vh,640px);border-radius:3px;border:1px solid var(--line);border-top:2px solid var(--gold);
            padding:14px 16px 16px;transform:translateY(-6px);opacity:0;visibility:hidden;
            transition:opacity .15s,transform .15s,visibility 0s .15s;box-shadow:0 10px 30px rgba(60,45,20,.18)}
#sheet.drop.show{transform:none;opacity:1;visibility:visible;transition:opacity .15s,transform .15s}
#shade.light{background:rgba(30,25,15,.08)}
#sheet .controls{margin-top:4px}
#sheet .shint{font-family:var(--sans);font-size:10.5px;color:var(--muted);margin-top:12px;line-height:1.5}
/* danh sách phẩm */
.goto{display:flex;gap:8px;margin-bottom:10px}
.goto input{flex:1;min-width:0;font-family:var(--sans);font-size:14px;padding:6px 10px;border:1px solid var(--line);
            border-radius:2px;background:var(--card);color:var(--ink)}
.goto input:focus{outline:2px solid var(--indigo);outline-offset:-1px}
.goto .chip{padding:5px 14px}
.chlist{list-style:none}
.chrow{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 6px;
       border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.chlist li:last-child .chrow{border-bottom:none}
.chrow:hover{background:rgba(195,169,124,.10)}
.chrow.cur{background:rgba(195,169,124,.20)}
.chrow .nm{font-size:14.5px;line-height:1.3}
.chrow .sub{font-size:12px;font-style:italic;color:var(--indigo);line-height:1.3}
.chrow .sub .zh{font-style:normal;font-size:13px;line-height:1.3;letter-spacing:0;margin-left:5px;color:var(--indigo)}
.chrow .rt{font-family:var(--sans);font-size:10px;color:var(--muted);text-align:right;line-height:1.5;white-space:nowrap}
/* trang chủ */
.sect{font-family:var(--sans);font-weight:600;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--seal);margin:24px 0 10px}
.sect:first-child{margin-top:4px}
.daily{display:block;background:var(--card);border:1px solid var(--line);border-radius:3px;padding:16px 16px 14px;
       box-shadow:0 1px 0 rgba(90,75,45,.06);text-decoration:none;color:var(--ink);cursor:pointer}
.daily:hover{border-color:var(--gold)}
.daily .illus{margin-bottom:12px}
.daily .pali{white-space:pre-line;margin-bottom:8px}
.daily .vi{color:var(--ink)}
.daily .more{font-family:var(--sans);font-size:11px;color:var(--muted);margin-top:10px;letter-spacing:.05em}
body.desk .daily{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);column-gap:28px;padding:20px 24px 18px}
body.desk .daily>.vhead{grid-column:1/-1}
body.desk .daily>.illus{grid-column:1;margin:0}
body.desk .daily>.vbody{grid-column:2;min-width:0}
.hcards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.hcard{display:block;background:var(--card);border:1px solid var(--line);border-radius:3px;padding:12px 14px;
       text-decoration:none;color:var(--ink)}
a.hcard:hover{border-color:var(--gold)}
.hcard .ltag{margin-bottom:4px}
.hcard .hv1{font-size:15px;line-height:1.35}
.hcard .hv2{font-family:var(--sans);font-size:11px;color:var(--muted);margin-top:3px}
@media (max-width:420px){.hcards{grid-template-columns:1fr}}
.chgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:760px){.chgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}
.chcard{position:relative;display:flex;flex-direction:column;gap:2px;background:var(--card);border:1px solid var(--line);
        border-radius:3px;padding:12px 12px 10px;text-decoration:none;color:var(--ink);box-shadow:0 1px 0 rgba(90,75,45,.06)}
.chcard:hover{border-color:var(--gold)}
.chcard .seal{margin-bottom:7px}
.chcard .cv{font-size:14.5px;font-weight:600;line-height:1.3}
.chcard .cp{font-size:12.5px;font-style:italic;color:var(--indigo);line-height:1.35}
.chcard .cz{font-family:var(--cjk);font-size:13px;color:var(--indigo)}
.chcard .cr{font-family:var(--sans);font-size:10px;color:var(--muted);margin-top:auto;padding-top:5px;letter-spacing:.04em}
.ring{position:absolute;top:11px;right:11px;width:30px;height:30px;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:3}
.ring .tr{stroke:var(--line)}
.ring .ar{stroke:var(--gold);stroke-linecap:round}
/* reader: cuối phẩm, lỗi, trang phụ */
.chnav{display:flex;gap:12px;margin:6px 0 10px}
.chnext{flex:1;display:block;background:var(--card);border:1px solid var(--line);border-radius:3px;padding:12px 14px;
        text-decoration:none;color:var(--ink);font-size:14.5px;line-height:1.35}
.chnext:hover{border-color:var(--gold)}
.chnext small{display:block;font-family:var(--sans);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:3px}
.chnext.nx{text-align:right}
.todo{font-family:var(--sans);font-size:12px;line-height:1.6;color:var(--muted);border:1px dashed var(--gold);
      padding:12px 14px;border-radius:2px;background:var(--card)}
.todo .chip{margin-top:10px}
.cmt .cstories{display:flex;gap:5px;flex-wrap:wrap;margin:0 0 8px}
.page h2{font-size:19px;font-weight:600;margin-bottom:10px}
.page h3{font-family:var(--sans);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);
         font-weight:600;margin:16px 0 4px}
.page p,.page li{font-size:14px;line-height:1.65;color:#3D3A30}
.page ul{padding-left:18px}
.page .verse{display:block}
.mlist{list-style:none;padding:0!important}
.mlist a{display:block;padding:12px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:15px}
.mlist li:last-child a{border-bottom:none}
.mlist a small{display:block;font-family:var(--sans);font-size:11px;color:var(--muted);margin-top:2px}
/* chữ Nôm: token có cờ ngờ (nom-reviewer) */
.nc.fl{position:relative}
.nc.fl::after{content:"";position:absolute;top:3px;right:-1px;width:5px;height:5px;border-radius:50%;background:var(--seal)}
.dot.df{background:var(--seal)}
/* toast */
#toast{position:fixed;left:50%;bottom:24px;z-index:40;transform:translate(-50%,8px);max-width:min(92vw,520px);
       background:var(--ink);color:#F6F2E8;font-family:var(--sans);font-size:12.5px;line-height:1.45;padding:9px 15px;
       border-radius:3px;box-shadow:0 6px 20px rgba(30,25,15,.25);opacity:0;pointer-events:none;transition:opacity .18s,transform .18s}
#toast.show{opacity:1;transform:translate(-50%,0)}
@media (max-width:760px){#toast{bottom:calc(68px + env(safe-area-inset-bottom))}}
/* font Hán–Nôm bundle (subset Nôm Na Tống v5.20 © Nom Foundation, MIT — scripts/subset_font.py) */
@font-face{font-family:"DhpNom";src:url(../fonts/nom.woff2) format("woff2");font-display:swap;
           unicode-range:U+2E80-9FFF,U+F900-FAFF,U+FE30-FE4F,U+FF00-FFEF,U+20000-3FFFF}
@font-face{font-family:"DhpHan";src:url(../fonts/han.woff2) format("woff2");font-display:swap;
           unicode-range:U+2E80-9FFF,U+F900-FAFF,U+FE30-FE4F,U+FF00-FFEF,U+20000-3FFFF}
/*ETYFONT-BEGIN*/
@font-face{font-family:"DhpHanEty";src:url(../fonts/han-ety.woff2) format("woff2");font-display:swap;
           unicode-range:U+2E80,U+2E84,U+2E88,U+2E8A,U+2E8C,U+2E97,U+2EAE,U+2EB3,U+2EBC,U+2ECF,U+3022,U+3405,U+342C-342D,U+3431,U+3465,U+34BC,U+34DE,U+353E,U+3563,U+35BE,U+35CA,U+3698,U+3749,U+3775,U+3791,U+37A2,U+382F,U+3840,U+386D,U+3941,U+3944,U+396F,U+3A85,U+3AC4,U+3AD7,U+3B0E,U+3B30,U+3B52,U+3C59,U+3C8B,U+3CC4,U+3D4E,U+3E12,U+4020,U+4093,U+40FA,U+4343,U+4491,U+4592,U+45B5,U+4674,U+470C,U+4768,U+47FD,U+4836,U+485B,U+4C3C,U+4CD8,U+4E01-4E02,U+4E04-4E06,U+4E0C,U+4E0E-4E0F,U+4E11,U+4E1A,U+4E1E,U+4E23,U+4E28-4E2A,U+4E2E,U+4E30-4E32,U+4E36-4E37,U+4E39,U+4E40,U+4E42,U+4E47,U+4E4D,U+4E56,U+4E59-4E5B,U+4E5D,U+4E60-4E61,U+4E70,U+4E85,U+4E87-4E89,U+4E8D,U+4E8F,U+4E95,U+4E98-4E9A,U+4E9E-4EA0,U+4EA2,U+4EA5,U+4EA7-4EA8,U+4EAC-4EAD,U+4EB2,U+4EB6,U+4EBB-4EBC,U+4EBE,U+4EC0,U+4EC4,U+4EC6,U+4ECB-4ECC,U+4ECE,U+4ED2,U+4ED8,U+4EDD-4EDE,U+4EF2-4EF3,U+4F09-4F0A,U+4F17,U+4F2F,U+4F36,U+4F50,U+4F53,U+4F57,U+4F59,U+4F69,U+4F70,U+4F75,U+4F8D,U+4F96,U+4FAF,U+4FB8,U+4FCA,U+4FDE,U+4FE0,U+4FF8,U+5009,U+5019,U+501C,U+501F-5021,U+5024,U+5028,U+5043,U+504F,U+5085,U+5091-5092,U+50C9-50CA,U+50DE,U+50EE,U+5107,U+510B,U+511F,U+513C,U+513F-5141,U+5143,U+5146,U+514C,U+5152-5153,U+5155,U+5162,U+5173,U+5179,U+5180,U+5182-5185,U+5188-518C,U+518E-518F,U+5192-5193,U+5196,U+5198,U+51A0-51A1,U+51AB,U+51B0,U+51CC-51CD,U+51D6,U+51DD,U+51E6,U+51F5,U+51F7,U+5202-5203,U+5205,U+520A,U+520C-520D,U+5216-5217,U+521D,U+5224,U+522B,U+5233,U+523A,U+5244,U+524B-524C,U+5254,U+5256,U+525F,U+5261,U+5265,U+526E-526F,U+5275,U+52A1,U+52A6,U+52B5,U+52D6,U+52F9-52FA,U+5300,U+5303,U+530B,U+5310,U+5315,U+531A,U+531C,U+5323,U+5331,U+5338-5339,U+533B,U+5342,U+5344-5345,U+5347-534A,U+534C,U+5354-5355,U+5357,U+535C,U+5360,U+5362,U+5366-5367,U+5369-536A,U+536C,U+536F-5370,U+5375,U+5377-5378,U+537D,U+5382-5383,U+5393,U+53A4,U+53B2,U+53B6-53B7,U+53C2,U+53C9,U+53D2,U+53D4-53D5,U+53D8,U+53DA,U+53DF,U+53E2,U+53EB-53EC,U+53F1-53F3,U+53F7-53F9,U+5402,U+5405,U+540E,U+5415,U+5426,U+542B,U+5432-5433,U+5442,U+5446,U+544A,U+5468,U+5476,U+547B-547C,U+5484-5485,U+54AB,U+54B3,U+54BC-54BD,U+54E1,U+5510,U+552B,U+552E,U+553E,U+5544,U+5547,U+554F,U+5556,U+555A,U+5598,U+55BF,U+55DE,U+55FC,U+5609,U+5611,U+5614,U+563C,U+563E,U+564D,U+5653,U+566A,U+5674,U+56BB,U+56C2,U+56D7-56D8,U+56DA,U+56DF,U+56EC,U+56F1,U+5703,U+5705,U+5708-5709,U+570D,U+571C,U+5725,U+572D,U+573C,U+5740,U+574B,U+576B,U+5774,U+577C,U+5782,U+579A,U+57A3-57A4,U+57DF,U+57F6,U+57FD,U+5802,U+5807,U+582F,U+585E,U+589F,U+58A3,U+58C5,U+58D3,U+58E0,U+58EC,U+58F0,U+58F4,U+58F9-58FA,U+5902-5907,U+590A-590D,U+5915,U+5917,U+5919,U+5922,U+592C-592E,U+5932,U+5937-5938,U+593E,U+5944,U+594F,U+5951,U+595A,U+5962,U+5965,U+598A,U+598E,U+59BE,U+59D1,U+59E6,U+5A04,U+5A09,U+5A41,U+5A62,U+5A6A,U+5ABF,U+5AC1,U+5AE9,U+5B00,U+5B0B,U+5B25,U+5B34,U+5B3E,U+5B54-5B55,U+5B5A-5B5B,U+5B68,U+5B6B,U+5B71,U+5B7D,U+5B80-5B81,U+5B83-5B84,U+5B8B,U+5B8F-5B90,U+5B93,U+5BA3-5BA4,U+5BAB,U+5BAE,U+5BB9,U+5BCD,U+5BD5,U+5BEB,U+5BF8,U+5BFA,U+5BFD-5BFE,U+5C01,U+5C03,U+5C0C,U+5C12,U+5C14,U+5C16-5C17,U+5C1E,U+5C22-5C24,U+5C39-5C3A,U+5C3E,U+5C48,U+5C55-5C56,U+5C5A,U+5C60,U+5C65,U+5C6E-5C70,U+5C75,U+5C8C,U+5CA1,U+5CEF-5CF0,U+5CFB,U+5D07,U+5D14,U+5D29,U+5DBD,U+5DC2,U+5DDB-5DDC,U+5DDE,U+5DE0,U+5DE2,U+5DE6,U+5DE9,U+5DEB,U+5DF3-5DF4,U+5DFE-5E00,U+5E1A-5E1B,U+5E25,U+5E2C-5E2D,U+5E3D,U+5E45,U+5E63,U+5E72,U+5E75,U+5E77,U+5E7A,U+5E7C,U+5E7E-5E7F,U+5E96-5E97,U+5E9A,U+5E9C,U+5EA4,U+5EAB,U+5EB3,U+5EB6-5EB7,U+5EBE,U+5ECC,U+5ED4,U+5EE9,U+5EEC,U+5EF4,U+5EF6-5EF7,U+5EFE-5F00,U+5F0B,U+5F0D,U+5F0F,U+5F11,U+5F14,U+5F17,U+5F1C,U+5F26-5F27,U+5F29,U+5F50-5F51,U+5F54-5F58,U+5F61,U+5F63-5F66,U+5F69,U+5F73,U+5F88,U+5F99,U+5FA7,U+5FAF,U+5FB5,U+5FB9,U+5FBC,U+5FC4,U+5FD2,U+5FDD,U+5FEE,U+6027,U+6064,U+6081,U+6083,U+6091,U+60DC,U+60E2,U+60F6,U+6106,U+6108,U+6112,U+6137,U+613C,U+6159,U+61AF,U+61CC,U+61E3,U+61F8,U+6207-620A,U+620C-620E,U+6214-6215,U+6220,U+6222,U+6226,U+622E,U+6234,U+6236-6237,U+623E,U+6241,U+6243,U+6249,U+624C,U+6258,U+625E,U+6280,U+6283,U+628C,U+6292,U+62AB,U+62B4-62B5,U+62D3,U+62D6,U+62D8,U+62DC,U+62EC,U+62F3,U+62FE,U+6302,U+6308-6309,U+630F,U+6311,U+632F,U+6339-633A,U+633C,U+6355,U+637D,U+6388,U+638C,U+6396,U+63AA,U+63C6,U+63C9,U+63E1,U+63EE,U+63F4,U+6424,U+6430,U+6436,U+6476,U+647D,U+64A5,U+64B0,U+64D2,U+64D8,U+64DA,U+64E0,U+64E2-64E3,U+64E7,U+64FE-64FF,U+6515,U+6532,U+6534-6536,U+6538,U+6543-6544,U+6548,U+6555,U+6558,U+655D,U+6576,U+657A-657B,U+6582,U+6597,U+659B,U+65A7,U+65AB,U+65B2,U+65BF,U+65C1,U+65C9,U+65CB-65CC,U+65D7,U+65E1,U+65E3-65E4,U+65E6,U+65E8-65E9,U+65F1-65F2,U+6606,U+660A,U+660C,U+6614,U+661A,U+661C,U+6625,U+662D,U+6635,U+6637,U+6649,U+6668,U+6676-6677,U+6696,U+66AE,U+66DD,U+66E9,U+66F3,U+66F7-66F9,U+66FC,U+6701,U+6710,U+6714-6715,U+6717,U+6729,U+672D,U+672F,U+6734-6736,U+673F-6740,U+6742,U+674E,U+675C,U+675F,U+6761,U+6765,U+676A,U+676F,U+6775,U+6777-6778,U+677C,U+677E,U+6789,U+678C,U+6790,U+67B2,U+67BC,U+67C4,U+67CF-67D0,U+67E7,U+67EC,U+67F0,U+67F4,U+6817,U+681D,U+6822,U+682A,U+6842,U+6848-6849,U+684E,U+6850-6851,U+6853,U+686E,U+6883,U+6885,U+688F,U+68A0,U+68CA,U+68D7,U+68E0,U+68E5,U+68F1,U+690A,U+690E,U+6939,U+6944,U+694A,U+6963,U+696B,U+6979,U+6986,U+6991,U+6996,U+6998,U+69A6,U+69B1,U+69C0,U+6A05,U+6A0A,U+6A21,U+6A2A,U+6A38,U+6A48,U+6A50,U+6A61,U+6A6B,U+6A90,U+6AA2,U+6ADF,U+6B12,U+6B20,U+6B2E,U+6B3D,U+6B46,U+6B4C,U+6B60,U+6B68,U+6B6C,U+6B74,U+6B77,U+6B79-6B7A,U+6B84,U+6B86,U+6BB2-6BB3,U+6BB5,U+6BB7-6BB9,U+6BC6,U+6BCB-6BCC,U+6BDA,U+6C02,U+6C0F-6C11,U+6C14,U+6C35,U+6C3A,U+6C3E-6C3F,U+6C41,U+6C53,U+6C57,U+6C59,U+6C5F,U+6C6A,U+6C87,U+6C93,U+6C9D,U+6CA1,U+6CB1,U+6CBD-6CBE,U+6CC4-6CC5,U+6CC9,U+6CD1,U+6CD7,U+6CDC,U+6CE2,U+6D12,U+6D1A-6D1B,U+6D2B,U+6D3E,U+6D5E,U+6D66,U+6D69,U+6D82,U+6D8C,U+6D8E,U+6DAA,U+6DCA,U+6DEE,U+6E1A-6E1B,U+6E24-6E25,U+6E29,U+6E2D,U+6E38,U+6E44-6E45,U+6E61,U+6EA2,U+6EA5,U+6EC4,U+6EC8,U+6ED1,U+6ED5,U+6EE5,U+6F01,U+6F11,U+6F2C,U+6F3E,U+6F5B,U+6F82,U+6F8C,U+6FA0,U+6FAE,U+6FC0,U+6FC6,U+6FEB-6FEC,U+6FEF,U+7006,U+7015,U+7018,U+7028,U+704B,U+7051,U+706C-706D,U+7078,U+707C,U+707E,U+708A,U+708F,U+70AF,U+70B3,U+70D5-70D6,U+7109,U+711E,U+7126,U+7131,U+7147,U+714C,U+7151,U+7159,U+7174,U+718A,U+7192,U+71C4,U+71D3,U+71D5,U+71EC-71ED,U+71FC,U+71FF,U+7207,U+721B,U+722A-722B,U+722F-7230,U+7235,U+723B,U+723D,U+723F-7240,U+7246-7248,U+7256,U+7259,U+725C,U+728D,U+72AC-72AE,U+72C4,U+72D0,U+72D7,U+72FE,U+730B,U+7312,U+7337,U+7375,U+7377,U+737B,U+7383,U+7385,U+73A8-73A9,U+73E4,U+7405,U+7422,U+745E,U+7471,U+747E,U+74A7,U+74B0,U+74BD,U+74E0,U+74E6,U+7521,U+7523,U+752B-752C,U+7533,U+7535,U+7539,U+753E,U+7540,U+7550,U+7555,U+7559,U+755D,U+7565,U+7567,U+756A-756B,U+7571,U+757A,U+757E,U+7586-7587,U+758B-758C,U+7592,U+7609,U+761A,U+7633,U+7676,U+7680,U+7683,U+7687,U+76BF,U+76C3,U+76C6-76C7,U+76CD-76CE,U+76DC,U+76E3,U+76EA,U+76FE,U+7709,U+7714,U+7718,U+771E,U+7734,U+7758,U+7762,U+776A,U+7779,U+777F,U+7791,U+77A2,U+77BD,U+77C7,U+77DB-77DC,U+77E2,U+77E6,U+77E9,U+7825,U+786E,U+788D,U+78FA,U+7926,U+792A,U+793B-793C,U+7941,U+7955,U+795D,U+7968,U+797F,U+7996,U+79A6,U+79B8,U+79BA-79BB,U+79BD-79BE,U+79C0,U+79C9-79CA,U+79D1-79D2,U+79DD,U+79E6,U+79EB,U+7A00,U+7A0B,U+7A17,U+7A1A,U+7A37,U+7A3A-7A3B,U+7A3D,U+7A40,U+7A45,U+7A4C,U+7A57,U+7A5C,U+7A74,U+7A81,U+7ABB,U+7AC5-7AC6,U+7ADC-7ADE,U+7AE0,U+7AE2,U+7AE5-7AE6,U+7AEB,U+7AF9,U+7AFF,U+7B26,U+7B2E,U+7B35,U+7B54,U+7B6D,U+7B87,U+7B9D,U+7BA0-7BA1,U+7BAC,U+7BB8,U+7BC7,U+7BC9,U+7BED,U+7BF7,U+7C21,U+7C2A,U+7C38,U+7C3F,U+7C52,U+7C60,U+7C73,U+7C92,U+7C9F,U+7CA2,U+7CA6,U+7CD7,U+7CDD,U+7CF8-7CF9,U+7CFB,U+7CFE,U+7D06,U+7D0D,U+7D10,U+7D18,U+7D21-7D22,U+7D32,U+7D3C,U+7D3E,U+7D43,U+7D4F,U+7D5C,U+7D5E,U+7D61,U+7D66,U+7D6B,U+7D6E,U+7D79-7D7A,U+7D7F,U+7D8C,U+7DA0,U+7DAD,U+7DB4,U+7DBF,U+7DD0,U+7DD8,U+7DDC,U+7DE0,U+7DE5,U+7DE8,U+7DEB,U+7E15,U+7E22,U+7E2B,U+7E36,U+7E3B,U+7E3D,U+7E4B,U+7E52,U+7E54,U+7E5E,U+7E6E,U+7E79,U+7E7C,U+7E8D,U+7E94,U+7E9F-7EA2,U+7EA4,U+7EA6,U+7EB4,U+7EB8-7EBB,U+7EC1,U+7EC5,U+7EC7,U+7F36-7F37,U+7F3E,U+7F4D,U+7F51-7F52,U+7F59,U+7F5F,U+7F72,U+7F7D,U+7F8A,U+7F94,U+7FA3,U+7FB2,U+7FB4,U+7FC1,U+7FC4,U+7FCA,U+7FCF,U+7FD5,U+7FDF,U+7FE6,U+7FEC,U+7FFA,U+8002-8003,U+800E,U+8011,U+8015,U+8026,U+8028,U+8034,U+805D,U+806E,U+8076-8077,U+807D,U+807F-8080,U+8085,U+808B,U+8096,U+8099,U+809D,U+80A1,U+80A9,U+80B1,U+80C3,U+80CC,U+80E1,U+80E5,U+80FE,U+811B,U+814B,U+8153-8154,U+8166,U+816E,U+8170,U+8178,U+8182,U+81B3,U+81C0,U+81C2,U+81DE,U+81E4,U+81E7-81E8,U+81ED,U+81F1,U+81FA,U+81FC-81FD,U+81FF-8201,U+820A,U+8212,U+821B-821C,U+821E,U+822C,U+826E,U+8278-8279,U+827F,U+8283,U+8287,U+828C,U+8294,U+8299,U+829F,U+82AC,U+82BB,U+82BE,U+82CB,U+82D7,U+82DB,U+82EB,U+8301-8302,U+8305,U+832F,U+8332,U+8335-8336,U+8345-8346,U+834F,U+8377,U+837C,U+8396,U+83A2,U+83AA,U+83CC,U+83DC,U+83DF,U+83ED,U+83FD,U+8406,U+8408-840A,U+8469,U+846C-846D,U+8471,U+8475,U+849C,U+84A6,U+84B2,U+84BC,U+84CF-84D1,U+8514,U+8521,U+8548,U+8556,U+8562,U+856A,U+8570,U+8584,U+85A6,U+85AA,U+85B6,U+85C1,U+85CD,U+85DD,U+85E9,U+862D,U+864D,U+8652,U+865A,U+865E,U+8661,U+8667,U+866B,U+867D,U+868C,U+86E4,U+8700,U+870E,U+8713,U+8725,U+8734,U+874E,U+8758,U+876E,U+878D,U+879F,U+87AB,U+87AD,U+87F2,U+87FE,U+8803,U+8805-8806,U+8821,U+882D,U+883B,U+8846,U+8853,U+885E,U+8864,U+8868,U+887A,U+8881,U+888C,U+8892,U+88C1-88C2,U+88D8,U+88F3,U+88FC,U+8907,U+890A,U+890E,U+8912,U+8931,U+8941,U+897E-8980,U+8988,U+898F,U+89A1,U+89BF,U+89DA,U+89F3,U+8A0E,U+8A11,U+8A17-8A18,U+8A2D,U+8A3B,U+8A48,U+8A52,U+8A58,U+8A63,U+8A66,U+8A69,U+8A70,U+8A73,U+8A79,U+8A8C,U+8A93,U+8AA4,U+8AA9,U+8AB2,U+8AC7,U+8ACB,U+8AED,U+8AF1,U+8AF7,U+8AFE,U+8B2B,U+8B3E,U+8B56,U+8B5A,U+8B71,U+8B78,U+8B80,U+8B99,U+8BFB,U+8C37,U+8C46,U+8C4A,U+8C50,U+8C55-8C56,U+8C5A,U+8C64,U+8C66,U+8C68,U+8C6D,U+8C78-8C79,U+8C87,U+8C89,U+8C8C-8C8D,U+8C9B,U+8C9D,U+8CA3,U+8CAB,U+8CAF-8CB0,U+8CB3,U+8CB8,U+8CC0-8CC1,U+8CC4,U+8CC8,U+8CD2-8CD3,U+8CDC,U+8CE3-8CE4,U+8CE6,U+8D04-8D05,U+8D0A,U+8D0F,U+8D1D,U+8D64,U+8D6B,U+8D70,U+8DAE,U+8DDD,U+8DE8,U+8DF3,U+8E26,U+8E2D,U+8E42,U+8E47-8E48,U+8E4B,U+8E4F,U+8E74,U+8E7A,U+8ECC,U+8EEB,U+8EF8,U+8F05,U+8F09,U+8F14,U+8F22,U+8F26,U+8F29,U+8F2D,U+8F3B,U+8F3F,U+8F45,U+8F9B-8F9C,U+8F9F-8FA0,U+8FA4,U+8FA8,U+8FB0,U+8FB2,U+8FB5-8FB6,U+8FBB,U+8FBE,U+8FED,U+9001,U+9040,U+9042,U+9059,U+905F,U+906E,U+9078,U+907A,U+907C-907D,U+9085,U+9090,U+9095,U+90A6,U+90A8,U+90C1,U+90C5,U+90CA,U+90CE,U+90E1,U+90E8,U+90ED,U+90FD,U+9120,U+9127,U+914B-914C,U+916A,U+9172,U+9178,U+9189,U+91AA-91AC,U+91AE,U+91BB,U+91C0,U+91C6-91C7,U+91D2,U+9239,U+9245,U+9249,U+924F,U+925B,U+925E,U+9293,U+9296,U+929A-929C,U+92B3,U+92B7,U+92D9,U+92F8,U+92FB,U+932D,U+932F,U+936A,U+9375,U+937C,U+937E,U+939B,U+93A7,U+93AD,U+93C3,U+93D1,U+93D7-93D8,U+93E4,U+9414,U+9419,U+9438,U+9444,U+9578,U+958F,U+9592,U+9594,U+95AC,U+95B5-95B6,U+95CC,U+95D3-95D5,U+95DC,U+961C-961D,U+9621,U+962C,U+962E,U+9631,U+9634,U+9642,U+964C,U+9650,U+9658,U+965B,U+9673,U+9684-9686,U+968B,U+968E,U+9694,U+9696,U+96A1,U+96A4,U+96B4,U+96B6-96B9,U+96BC,U+96C0-96C1,U+96C9,U+96CD,U+96D4-96D5,U+96DA,U+96DD-96DE,U+96E5,U+96E9,U+96F7,U+96FB,U+9700,U+9707,U+9769,U+978F,U+97AE,U+97CB,U+97D3,U+97ED,U+97F1,U+97FF,U+9801,U+9805,U+980C,U+9812,U+981F,U+9821,U+9824,U+982B,U+9830,U+9837,U+983D,U+984C,U+9854,U+9859-985A,U+9867,U+98DE,U+98E0,U+98EF,U+98F4,U+98FD,U+9913-9914,U+9927,U+994B,U+9957,U+995C,U+99A8,U+99AE,U+99D0,U+99E1,U+9A11,U+9A36,U+9A58,U+9A62,U+9AC0,U+9AD5,U+9ADF,U+9AE1,U+9AE6,U+9AEA,U+9B1A,U+9B22-9B23,U+9B25,U+9B27,U+9B2C-9B2D,U+9B2F,U+9B31-9B32,U+9B3C,U+9B45,U+9B93,U+9BBA,U+9C57,U+9CE9,U+9CF3-9CF4,U+9D1B,U+9D1F,U+9D3B,U+9D52,U+9DF9,U+9E1B,U+9E1F,U+9E79,U+9E7D,U+9E8B,U+9E90,U+9E97,U+9EA5,U+9EC3-9EC4,U+9ECD-9ECF,U+9ED4-9ED5,U+9ED9,U+9EDF,U+9EF9,U+9EFD,U+9F08,U+9F0E,U+9F13,U+9F20,U+9F4A,U+9F52,U+9F67,U+9F8D,U+9FA0,U+9FB4,U+9FB6-9FB9,U+2000E,U+20010,U+20063,U+20086-20087,U+20089-2008B,U+2008E,U+20092,U+200A2,U+200A4,U+200AD,U+200C9-200CC,U+200DC,U+2010C,U+2010E,U+20143,U+2020C,U+2053C,U+20541,U+2057B,U+2068D,U+2077B,U+20915,U+2099D,U+20A9A,U+20AD3,U+20AE4,U+20B1D,U+20B9B,U+20BD1,U+20CCB,U+20D2B,U+20DA2,U+20E02,U+20EF4,U+21181,U+211A7,U+21266,U+215D7,U+215DC,U+219EF,U+21A04,U+21B20,U+21C52,U+21D42,U+21FE8,U+21FEA,U+22189,U+221B6,U+223A5,U+223A8,U+223D1,U+2282F,U+22947,U+2298F,U+22C50,U+22CA7,U+22D49,U+22DC4,U+22F38,U+231B0,U+23274,U+23386,U+233B3,U+23942,U+239BC,U+23D92,U+241F3,U+242AA,U+242B0,U+2450C,U+24514,U+2479E,U+24C07-24C08,U+25055,U+254F3,U+25AD7,U+25CD1,U+2627C,U+2634C,U+2634E,U+2652E,U+26612,U+2663A,U+268FB,U+26951,U+26954,U+2696F,U+26977,U+26AF3,U+26B06,U+26C29,U+26CDD,U+27A42,U+27C28,U+27D2A,U+27FB7,U+282A0,U+2A140,U+2AD6F,U+2B740,U+2B820,U+2B824,U+2BA4F,U+2BA60,U+2BDA7,U+2BF55,U+2C037,U+2CF00,U+2D530,U+31892,U+3197A,U+322D8,U+32555}
/*ETYFONT-END*/
:root{--cjk:"DhpHan","DhpNom","DhpHanEty","Songti TC","Songti SC","Noto Serif TC","Noto Serif SC","SimSun",serif;
      --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"DhpHan",sans-serif}   /* chữ Hán lẻ trong nhãn sans (kicker 法句經) */
.nom{font-family:"DhpNom","DhpHan","Nom Na Tong","NomNaTong","Han-Nom Gothic","Songti TC","Noto Serif TC",serif}
/* cài đặt + tải offline */
.setsec{margin-bottom:14px}
.setsec h3:first-child{margin-top:0}
.setsec .controls{margin-top:6px}
.offst,.page p.offst{font-family:var(--sans);font-size:12.5px;color:var(--ink);line-height:1.6}
.offst small{display:block;font-size:11px;color:var(--muted)}
.dlrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.dlrow .chip[disabled]{opacity:.4;cursor:default}
#dlprog{display:block;width:100%;height:6px;margin-top:10px;accent-color:var(--seal)}
.dlnote{font-family:var(--sans);font-size:11px;color:var(--muted);margin-top:4px;min-height:1.4em}
.updbar{position:fixed;left:50%;bottom:24px;z-index:41;transform:translateX(-50%);display:flex;gap:12px;align-items:center;
        max-width:min(92vw,520px);background:var(--ink);color:#F6F2E8;font-family:var(--sans);font-size:12.5px;line-height:1.45;
        padding:8px 10px 8px 15px;border-radius:3px;box-shadow:0 6px 20px rgba(30,25,15,.25)}
.updbar .chip{border-color:#F6F2E8;color:#F6F2E8;padding:4px 10px}
.updbar .chip.on{background:#F6F2E8;color:var(--ink)}
@media (max-width:760px){.updbar{bottom:calc(68px + env(safe-area-inset-bottom))}}
.databar{font-family:var(--sans);font-size:12px;color:var(--ink);border:1px solid var(--gold);background:rgba(195,169,124,.14);
         padding:9px 12px;border-radius:2px;margin-bottom:12px}
.setsec .shint{font-family:var(--sans);font-size:10.5px;color:var(--muted);margin-top:10px;line-height:1.5}
/* duyệt chữ Nôm (#/duyet-nom) — nomreview.js */
.nc.dec{text-decoration:underline dotted rgba(63,112,73,.55);text-underline-offset:4px}
.nrtop{position:sticky;top:calc(var(--hdr,130px) - 14px);z-index:5;background:var(--paper);padding:6px 0 10px;margin-bottom:12px;border-bottom:1px solid var(--line)}
.nrsum{font-family:var(--sans);font-size:12.5px;color:var(--ink)}
.nrsum b{color:var(--seal)}
#nrprog{display:block;width:100%;height:6px;margin-top:6px;accent-color:var(--seal)}
.nrbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}
.nrimp{position:relative;overflow:hidden}
.nrimp input{position:absolute;inset:0;opacity:0;cursor:pointer}
.nrimp:focus-within{outline:2px solid var(--indigo);outline-offset:2px}
.nrch{background:var(--card);border:1px solid var(--line);border-radius:3px;margin-bottom:10px;box-shadow:0 1px 0 rgba(90,75,45,.06)}
.nrch>summary{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;cursor:pointer;list-style:none}
.nrch>summary::-webkit-details-marker{display:none}
.nrch>summary:hover{background:rgba(195,169,124,.10)}
.nrch>summary:focus-visible{outline:2px solid var(--indigo);outline-offset:-2px}
.nrch[open]>summary{border-bottom:1px solid var(--line)}
.nrch[data-flags="0"]{opacity:.6}
.nrt b{display:block;font-size:14.5px;font-weight:600;line-height:1.3}
.nrt small{font-size:12px;font-style:italic;color:var(--indigo)}
.nrc{font-family:var(--sans);font-size:10.5px;color:var(--muted);white-space:nowrap}
.nrch.done .nrc{color:#3F7049}
.nrbody{padding:12px}
.nrnone{font-family:var(--sans);font-size:12px;color:var(--muted)}
.page .nrverse{margin-bottom:14px;background:#FBF7EE}
.nrverse .vhead a.seal{text-decoration:none}
.nrst{font-family:var(--sans);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.nrverse[data-nst=reviewed] .nrst{color:#3F7049}
.nrctx{margin-bottom:10px}
.nrpali{font-size:13px;font-style:italic;color:var(--indigo);white-space:pre-line;line-height:1.55}
.nren{font-size:12.5px;color:#3D3A30;white-space:pre-line;margin-top:4px;line-height:1.5}
.nrtok{border-top:1px dashed var(--line);padding:12px 0 6px}
.nrhd{display:flex;align-items:center;gap:12px}
.nrbig{font-size:44px;line-height:1.1;letter-spacing:0;color:var(--ink)}
.nrbig.h{color:#3F7049}.nrbig.a{color:#B07B22}.nrbig.n{color:#B3452C}
.nrtok:not(.dec) .nrbig{position:relative}
.nrtok:not(.dec) .nrbig::after{content:"";position:absolute;top:4px;right:-6px;width:7px;height:7px;border-radius:50%;background:var(--seal)}
.nrqn{display:block;font-family:var(--sans);font-size:16px;font-weight:600;color:var(--seal)}
.nrbadge{display:inline-block;font-family:var(--sans);font-size:10px;letter-spacing:.04em;padding:1px 6px;border:1px solid currentColor;border-radius:2px;margin:3px 6px 0 0;color:var(--muted)}
.nrbadge.h{color:#3F7049}.nrbadge.a{color:#B07B22}.nrbadge.n{color:#B3452C}.nrbadge.ok{color:var(--indigo)}
.nrvi{font-size:14px;line-height:1.6;color:#3D3A30;margin-top:8px}
.nrvi b{font-weight:600;color:var(--ink)}
.nrvi mark{background:rgba(195,169,124,.35);color:inherit;padding:0 2px;border-radius:2px}
.nrnote{font-family:var(--sans);font-size:11.5px;color:var(--muted);margin-top:6px;line-height:1.5}
.nrnote span{font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-right:4px}
.nropts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.nropt{display:flex;flex-direction:column;align-items:center;min-width:64px;max-width:150px;padding:6px 8px 5px;cursor:pointer;
       border:1px solid var(--gold);border-radius:2px;background:transparent;color:var(--ink)}
.nropt .nom{font-size:28px;line-height:1.25;letter-spacing:0}
.nropt small{font-family:var(--sans);font-size:10px;color:var(--muted);line-height:1.3;text-align:center}
.nropt[data-keep]{border-style:dashed}
.nropt:hover{background:rgba(195,169,124,.12)}
.nropt.on{background:var(--gold);border-style:solid}
.nropt.on .nom,.nropt.on small{color:#FBF7EE}
.nropt:focus-visible,.nrundo:focus-visible,.nrunconfirm:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}
.nrcl{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:9px;font-family:var(--sans);font-size:10.5px;color:var(--muted)}
.nrcl>span{letter-spacing:.06em;margin-right:2px}
.nrcl .chip{padding:3px 9px;font-size:11px}
.nrcl .cact{margin-left:auto}
.nrfoot{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:8px;padding-top:10px}
.nrfoot .chip[disabled]{opacity:.4;cursor:default}
.nrhint{font-family:var(--sans);font-size:11px;color:var(--muted)}
.nrok{font-family:var(--sans);font-size:12px;font-weight:600;color:#3F7049;letter-spacing:.04em}
@media (max-width:760px){.nrbig{font-size:38px}.nropt{min-width:56px}}
/* ôn tập SRS (#/on-tap) — ontap.js, srsadd.js */
.srsadd{font-family:var(--sans);font-size:11px;color:var(--muted);background:none;border:none;cursor:pointer;
        margin-top:10px;margin-right:14px;padding:0;letter-spacing:.05em;border-bottom:1px dotted var(--muted)}
.srsadd:hover{color:var(--ink)}
.srsadd.on{color:#3F7049;border-bottom-color:#3F7049}
.srsadd:focus-visible,.srsr:focus-visible,.srslink:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}
#sheet .srsrow{margin-top:6px}
.dailyact{display:flex;justify-content:flex-end;margin-top:2px}
.dailyact .srsadd{margin:6px 2px 0}
.srstop{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}
.srstop .ltag{margin:0}
.srsprog{font-family:var(--sans);font-size:11px;color:var(--muted);letter-spacing:.06em}
.page .srscard{min-height:200px}
.srscard .vhead{margin-bottom:14px}
.srstype{font-family:var(--sans);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.srsfront{text-align:center}
.srsfront .pali{text-align:left}
.srspali{white-space:pre-line;font-size:17px}
.srsbig{font-family:var(--cjk);font-size:76px;line-height:1.15;color:var(--ink);padding:10px 0 4px}
.srsbigp{font-family:var(--serif);font-style:italic;font-size:30px;color:var(--indigo);line-height:1.25;padding:14px 0 4px}
.srsnote{font-family:var(--sans);font-size:11.5px;color:var(--muted);margin-top:4px}
.srswarn{color:var(--seal)}
.srsback{border-top:1px dashed var(--line);margin-top:14px;padding-top:12px}
.srsback .ltag{margin-top:8px}
.srsback .ltag:first-child{margin-top:0}
.srsread{font-family:var(--sans);font-size:17px;font-weight:600;color:var(--seal);letter-spacing:.03em}
.srsmean{font-size:15px;color:#3D3A30;margin-top:4px;line-height:1.55}
.srszh{margin-top:8px;font-size:19px;line-height:1.9}
.srsctx{margin-top:10px;font-size:14px;line-height:1.7}
.srscard mark{background:rgba(195,169,124,.35);color:inherit;padding:0 2px;border-radius:2px}
.srslink{display:inline-block;margin-top:12px;font-family:var(--sans);font-size:11px;color:var(--muted);letter-spacing:.05em;text-decoration:none;border-bottom:1px dotted var(--muted)}
.srslink:hover{color:var(--ink)}
.srsbar{position:sticky;bottom:0;z-index:4;margin:4px -14px 0;padding:8px 14px 10px;background:linear-gradient(rgba(242,237,227,0),var(--paper) 8px)}
#srsflip{display:block;width:100%;padding:11px;font-size:13px}
#srsflip small,.srsr kbd{font-size:10px;opacity:.65;margin-left:6px}
.srsrate{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}
.srsr{display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 4px 6px;cursor:pointer;font-family:var(--sans);
      font-size:13px;font-weight:600;letter-spacing:.03em;border:1px solid var(--indigo);border-radius:2px;background:var(--card);color:var(--indigo)}
.srsr small{font-size:10.5px;font-weight:400;color:var(--muted)}
.srsr kbd{font-family:var(--sans);margin:0}
.srsr[data-r="1"]{border-color:var(--seal);color:var(--seal)}
.srsr[data-r="2"]{border-color:#B07B22;color:#8A6119}
.srsr[data-r="4"]{border-color:#3F7049;color:#3F7049}
.srsr:hover:not(:disabled){background:rgba(195,169,124,.14)}
.srsr:disabled{opacity:.35;cursor:default}
.srsempty{font-family:var(--sans);font-size:12.5px;line-height:1.6;color:var(--muted);border:1px dashed var(--gold);padding:14px 16px;border-radius:2px;background:var(--card)}
.srsempty b{display:block;font-family:var(--serif);font-size:17px;font-weight:600;color:var(--ink);margin-bottom:4px}
.page .srsempty p{font-family:var(--sans);font-size:12.5px;color:var(--muted);margin-top:6px}
.srsempty .chip{margin-top:12px}
.srsempty .chip[disabled]{opacity:.4;cursor:default}
.page .srshint{font-family:var(--sans);font-size:10.5px;color:var(--muted);margin-top:14px;line-height:1.5}
.srsf{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line);
      font-family:var(--sans);font-size:12.5px;color:var(--ink)}
.srsf input,.srsf select{width:96px;font-family:var(--sans);font-size:14px;padding:5px 8px;border:1px solid var(--line);border-radius:2px;background:#FBF7EE;color:var(--ink)}
.srsf input:focus,.srsf select:focus{outline:2px solid var(--indigo);outline-offset:-1px}
@media (max-width:760px){.srsr kbd,#srsflip small{display:none}.srsbig{font-size:68px}
  .srsbar{bottom:calc(56px + env(safe-area-inset-bottom))}}

/* từ nguyên chữ Hán / cấu tạo chữ Nôm trong popup — ety.js (port từ prototype) */
.ety{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.ety h5{font-family:var(--sans);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);
        font-weight:600;margin:12px 0 4px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.ety h5:first-child{margin-top:0}
.ety p{font-size:13.5px;line-height:1.6;color:#3D3A30;margin-top:3px}
.ety p.en{font-style:italic;color:var(--muted);font-size:12.5px}
.ety p.swzh{font-family:var(--cjk);font-size:16px;line-height:2.3;letter-spacing:0;color:var(--ink)}
.ety p.swzh ruby{margin:0 .3em}
body:not(.showhv) .ety p.swzh ruby{margin:0}
.ety p.swzh rt{font-family:var(--sans);font-size:8.5px;color:var(--seal);letter-spacing:0;opacity:.9}
body:not(.showhv) .ety p.swzh{line-height:1.8}
body:not(.showhv) .ety p.swzh rt{display:none}
.ety p.none{font-family:var(--sans);font-size:11.5px;color:var(--muted)}
.ebadge{font-size:10px;letter-spacing:.03em;text-transform:none;background:var(--indigo);color:#F6F2E8;
        padding:2px 7px;border-radius:2px;font-weight:500}
.ebadge.nom{background:var(--seal)}
.eids{font-family:var(--cjk);font-size:12px;letter-spacing:.05em;text-transform:none;color:var(--muted);font-weight:400}
.esrc{font-family:var(--sans);font-size:9.5px;color:var(--muted);margin-top:4px;line-height:1.5}
.eflag{font-family:var(--sans);font-size:10.5px;color:var(--seal);margin-top:5px}
.ec{cursor:pointer;border-bottom:1px dotted rgba(46,75,107,.55)}
.ety p .ec,.eids .ec{font-family:var(--cjk);color:var(--indigo)}
.ety p.swzh ruby.ec{border-bottom:1px dotted rgba(46,75,107,.4)}
.ec:active{background:rgba(46,75,107,.14)}
.eback{font-family:var(--sans);font-size:12px;color:var(--indigo);background:none;border:1px solid var(--line);
       border-radius:2px;padding:5px 10px;margin-bottom:12px;cursor:pointer}
.eback:focus-visible,.ec:focus-visible,button.srslink:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}
/* thẻ ôn thành phần → chữ */
.qask{font-size:13.5px;color:var(--muted);font-style:italic}
.qcomp{font-family:var(--cjk);font-size:38px;line-height:1.3;margin:8px 0 6px;color:var(--ink);letter-spacing:.04em}
.qhint{font-size:13.5px;line-height:1.6;color:#3D3A30}
.qans{display:flex;align-items:center;gap:16px;margin-top:4px}
.qans .srsbig{font-size:56px;padding:0}
.qans .srsread,.qans .srsmean{display:block;margin-top:0}
.qans .srsmean{margin-top:4px}
button.srslink{background:none;border-top:0;border-left:0;border-right:0;cursor:pointer;padding:0}
