/* BOMLLM Manual v1.0 - scaffold_v1 - local fonts only, no CDN */
:root{
  --ink:#0a1512; --ink-2:#0d1b15; --card:#10201a; --card-2:#132a22;
  --brand:#00ab6b; --brand-dim:#0e7a4e; --gold:#c8a24a; --gold-soft:rgba(200,162,74,.28);
  --gold-line:rgba(200,162,74,.22); --paper:#f2ede4; --dim:#9fb3a8; --mute:#6e8378;
  --line:#1d3329; --r-sm:6px; --r-md:10px; --r-lg:16px;
  --font-display:'Cormorant Garamond',Georgia,serif;
  --font-body:'IBM Plex Sans Thai',sans-serif;
  --font-mono:'JetBrains Mono',monospace;
}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 700;font-display:swap;src:url('../fonts/CormorantGaramond-var.ttf') format('truetype-variations');}
@font-face{font-family:'IBM Plex Sans Thai';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/IBMPlexSansThai-Regular.ttf') format('truetype');}
@font-face{font-family:'IBM Plex Sans Thai';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/IBMPlexSansThai-Medium.ttf') format('truetype');}
@font-face{font-family:'IBM Plex Sans Thai';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/IBMPlexSansThai-SemiBold.ttf') format('truetype');}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:100 800;font-display:swap;src:url('../fonts/JetBrainsMono-var.ttf') format('truetype-variations');}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--font-body);
  font-size:17px;line-height:1.85;-webkit-font-smoothing:antialiased}
a{color:var(--brand)} a:hover{color:#2fd694}
img{max-width:100%;height:auto}

#progress-bar{position:fixed;top:0;left:0;height:2px;width:0;background:var(--gold);z-index:99}

/* ---- topnav ---- */
.topnav{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:22px;
  padding:12px 24px;background:rgba(10,21,18,.92);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--gold-line)}
.topnav .brand{font-family:var(--font-display);font-weight:500;font-size:24px;
  letter-spacing:4px;color:var(--paper);text-decoration:none}
.topnav .brand em{font-style:normal;color:var(--gold)}
.topnav .nav-links{margin-left:auto;display:flex;gap:18px;font-size:14px}
.topnav .nav-links a{color:var(--dim);text-decoration:none;letter-spacing:.05em}
.topnav .nav-links a:hover{color:var(--gold)}

/* ---- layout ---- */
.layout{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:250px minmax(0,1fr);
  gap:44px;padding:36px 24px 64px}
.layout.wide{grid-template-columns:minmax(0,1fr)}
.sidebar-toc{position:sticky;top:76px;align-self:start;max-height:calc(100vh - 96px);
  overflow-y:auto;font-size:14px;padding-right:6px}
.sidebar-toc .toc-part{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;
  color:var(--gold);margin:20px 0 8px;text-transform:uppercase}
.sidebar-toc .toc-part:first-child{margin-top:0}
.sidebar-toc ul{list-style:none;margin:0;padding:0}
.sidebar-toc li{margin:2px 0}
.sidebar-toc a{display:flex;gap:8px;color:var(--dim);text-decoration:none;padding:4px 8px;
  border-left:2px solid transparent;border-radius:0 var(--r-sm) var(--r-sm) 0;line-height:1.5}
.sidebar-toc a:hover{color:var(--paper);background:var(--card)}
.sidebar-toc a.toc-active{color:var(--gold);border-left-color:var(--gold);background:var(--card)}
.sidebar-toc .toc-n{font-family:var(--font-mono);font-size:11px;color:var(--mute);min-width:20px}

.toc-mobile{display:none;margin:0 24px;border:1px solid var(--gold-line);border-radius:var(--r-md);
  background:var(--ink-2)}
.toc-mobile summary{cursor:pointer;padding:12px 16px;font-family:var(--font-mono);font-size:13px;
  letter-spacing:.12em;color:var(--gold)}
.toc-mobile .toc-mobile-body{padding:0 16px 14px;font-size:15px}
.toc-mobile .toc-mp{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;
  color:var(--gold);margin:14px 0 6px}

/* ---- breadcrumb + chapter opener ---- */
.breadcrumb{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.12em;
  color:var(--dim);margin:0 0 22px}
.breadcrumb a{color:var(--dim);text-decoration:none}
.breadcrumb a:hover{color:var(--gold)}
.ch-opener{border-left:3px solid var(--gold);padding-left:22px;margin-bottom:40px}
.ch-part-label{font-family:var(--font-mono);font-size:12px;letter-spacing:.24em;
  color:var(--brand);text-transform:uppercase;margin-bottom:10px}
.ch-opener h1{font-family:var(--font-body);font-weight:600;font-size:clamp(28px,4vw,40px);
  line-height:1.3;margin:0 0 6px}
.ch-opener .ch-no{font-family:var(--font-display);color:var(--gold);margin-right:10px}
.ch-opener .ch-no-ar{font-family:var(--font-mono);font-size:.5em;color:var(--mute);
  vertical-align:middle;margin-right:14px;letter-spacing:.2em}
.ch-sub{font-family:var(--font-display);font-style:italic;font-weight:500;
  font-size:clamp(18px,2.4vw,24px);color:var(--gold);margin:0;letter-spacing:.02em}

/* ---- sections ---- */
main section{margin:0 0 44px;scroll-margin-top:90px}
main section h2{font-size:21px;font-weight:600;margin:0 0 16px;padding-bottom:10px;
  border-bottom:1px solid var(--gold-line);color:var(--paper)}
main section h2 .sec-en{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;
  color:var(--mute);font-weight:400;margin-left:10px;text-transform:uppercase}

.pending{border:1px dashed var(--gold-soft);border-radius:var(--r-md);background:var(--ink-2);
  padding:26px 24px;color:var(--dim);font-family:var(--font-mono);font-size:13px;
  letter-spacing:.08em;text-align:center}

/* ---- prev / next ---- */
.prev-next{display:flex;justify-content:space-between;gap:16px;margin-top:48px}
.prev-next a{flex:1;text-decoration:none;border:1px solid var(--line);border-radius:var(--r-md);
  padding:14px 18px;background:var(--card)}
.prev-next a:hover{border-color:var(--gold);background:var(--card-2)}
.prev-next .pn-label{display:block;font-family:var(--font-mono);font-size:11px;
  letter-spacing:.16em;color:var(--mute);margin-bottom:4px}
.prev-next .pn-title{color:var(--paper);font-size:15px}
.prev-next a.next{text-align:right}
.prev-next a.off{visibility:hidden}

/* ---- index hero / toc cards ---- */
.hero{margin:0 0 40px;border:1px solid var(--gold-line);border-radius:var(--r-lg);overflow:hidden;
  background:var(--ink-2)}
.hero img{display:block;width:100%}
.cost-receipt{display:flex;flex-wrap:wrap;gap:10px 26px;align-items:center;
  border:1px solid var(--gold-line);border-radius:var(--r-md);background:var(--card);
  padding:16px 22px;margin:0 0 44px;font-size:15px;color:var(--dim)}
.cost-receipt .big{font-family:var(--font-mono);color:var(--gold);font-size:18px}
.cost-receipt .tag{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;color:var(--brand)}
.part-block{margin:0 0 40px}
.part-head{display:flex;align-items:baseline;gap:14px;margin-bottom:14px}
.part-head h2{font-family:var(--font-display);font-weight:500;font-size:30px;color:var(--gold);margin:0}
.part-head .part-th{font-size:18px;color:var(--paper);font-weight:600}
.ch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.ch-card{display:block;text-decoration:none;border:1px solid var(--line);border-radius:var(--r-md);
  background:var(--card);padding:16px 18px;transition:border-color .15s}
.ch-card:hover{border-color:var(--brand)}
.ch-card .cc-no{font-family:var(--font-mono);font-size:12px;color:var(--gold);letter-spacing:.14em}
.ch-card .cc-no .th{color:var(--brand);margin-right:8px}
.ch-card .cc-title{display:block;color:var(--paper);font-weight:500;margin-top:6px;font-size:16px}
.ch-card .cc-en{display:block;font-family:var(--font-display);font-style:italic;color:var(--dim);
  font-size:14px;margin-top:2px}

.ext-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:16px}
.ext-links a{border:1px solid var(--line);border-radius:var(--r-md);padding:14px 18px;
  text-decoration:none;color:var(--paper);background:var(--card);font-size:15px}
.ext-links a:hover{border-color:var(--gold)}
.ext-links .x-host{display:block;font-family:var(--font-mono);font-size:11px;color:var(--mute);
  letter-spacing:.1em;margin-top:4px}

/* ---- faq / glossary ---- */
.faq-item{border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);margin-bottom:12px}
.faq-item summary{cursor:pointer;padding:14px 18px;font-weight:500;color:var(--paper)}
.faq-item[open] summary{border-bottom:1px solid var(--gold-line);color:var(--gold)}
.faq-item .faq-body{padding:14px 18px}
table.glossary{width:100%;border-collapse:collapse;font-size:15px}
table.glossary th{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;color:var(--gold);
  text-align:left;padding:10px 12px;border-bottom:1px solid var(--gold-line);text-transform:uppercase}
table.glossary td{padding:8px 12px;border-bottom:1px solid var(--line);color:var(--dim)}
table.glossary td.g-term{color:var(--paper);white-space:nowrap}

/* ---- footer ---- */
.site-footer{background:var(--ink);border-top:1px solid var(--gold-line);padding:56px 24px 30px;
  color:var(--dim);font-size:14px}
.site-footer .fg{max-width:1200px;margin:0 auto}
.site-footer .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:30px;
  margin-bottom:42px}
.site-footer h4{color:var(--gold);font-size:13px;letter-spacing:2px;margin:0 0 14px;font-weight:600}
.site-footer ul{list-style:none;padding:0;margin:0;line-height:2}
.site-footer a{color:var(--dim);text-decoration:none}
.site-footer a:hover{color:var(--gold)}
.site-footer .fine{text-align:center;font-size:12.5px;color:var(--mute);margin-top:14px}

/* ---- responsive (breakpoints mirror iCafeFX manual) ---- */
@media (max-width:1023px){
  .layout{grid-template-columns:1fr;gap:0;padding-top:20px}
  .sidebar-toc{display:none}
  .toc-mobile{display:block}
}
@media (max-width:844px){
  body{font-size:16px}
  .topnav{gap:12px;padding:10px 16px}
  .topnav .nav-links{gap:12px;font-size:13px}
}
@media (max-width:640px){
  .layout{padding:20px 14px 48px}
  .ch-opener{padding-left:14px}
  .prev-next{flex-direction:column}
  .prev-next a.next{text-align:left}
  .cost-receipt{font-size:13.5px;gap:8px 16px}
}
