.gbook /* ============ PAGE SETUP ============ */




/* ============ TOKENS ============ */
:root{
  --ink:        #14203a;
  --ink-soft:   #3d4a63;
  --muted:      #6b7688;
  --line:       #dfe3ea;
  --navy:       #1b3a6b;
  --navy-soft:  #eef2f9;
  --gold:       #a9730a;
  --gold-soft:  #fdf6e6;
  --green:      #1d6b45;
  --green-soft: #eef7f1;
  --red:        #a8302b;
  --red-soft:   #fdf0ef;
  --violet:     #56347f;
  --violet-soft:#f4f0fa;
}.gbook /* ============ BASE ============ */
*{ box-sizing: border-box; }.gbook{
  font-family: "Caladea", "Bitstream Charter", Georgia, serif;
  font-size: 9.7pt;
  line-height: 1.5;
  color: var(--ink);
  margin: 0;
  hyphens: none;
}.gbook p{ margin: 0 0 6pt 0; }.gbook em{ font-style: italic; }.gbook strong{ font-weight: 700; }.gbook a{ color: inherit; text-decoration: none; }.gbook .sans{ font-family: "Carlito", "DejaVu Sans", sans-serif; }.gbook /* ============ COVER ============ */
.cover{
  page: cover;
  height: 297mm;
  width: 210mm;
  background: linear-gradient(160deg, #14203a 0%, #1b3a6b 55%, #2a5590 100%);
  color: #fff;
  padding: 28mm 22mm;
  position: relative;
  
}.gbook .cover .kicker{
  font-family: "Carlito", sans-serif;
  font-size: 10pt;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: #9fc0ef;
  margin-bottom: 10mm;
}.gbook .cover h1{
  font-size: 40pt;
  line-height: 1.08;
  margin: 0 0 6mm 0;
  font-weight: 700;
  letter-spacing: -0.5px;
}.gbook .cover h1 .thin{ font-weight: 400; color: #cddffa; display: block; font-size: 27pt; }.gbook .cover .rule-line{ width: 46mm; height: 3px; background: #f0b429; margin: 8mm 0; }.gbook .cover .sub{
  font-size: 13pt;
  color: #dbe7f8;
  max-width: 130mm;
  line-height: 1.5;
}.gbook .cover .badges{ margin-top: 14mm; }.gbook .cover .badge{
  display: inline-block;
  font-family: "Carlito", sans-serif;
  font-size: 9pt;
  letter-spacing: 1px;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 20px;
  padding: 3pt 10pt;
  margin: 0 6pt 6pt 0;
  color: #eaf1fb;
}.gbook .cover .foot{
  position: absolute;
  bottom: 22mm;
  left: 22mm;
  right: 22mm;
  font-family: "Carlito", sans-serif;
  font-size: 9pt;
  color: #9fc0ef;
  border-top: 1px solid rgba(255,255,255,.2);
  padding-top: 5mm;
}.gbook .cover .statline{ font-size: 11pt; color:#fff; letter-spacing:.5px; margin-bottom:2mm;}.gbook /* ============ HEADINGS ============ */
h2.module{
  font-size: 19pt;
  color: var(--navy);
  margin: 0 0 1mm 0;
  line-height: 1.15;
  letter-spacing: -0.3px;
}.gbook .module-head{
  border-top: 3px solid var(--navy);
  padding-top: 4mm;
  margin: 0 0 6mm 0;
  
  
}.gbook .module-head .mnum{
  font-family: "Carlito", sans-serif;
  font-size: 8.5pt;
  letter-spacing: 3px;
  color: var(--gold);
  text-transform: uppercase;
  margin-bottom: 2mm;
}.gbook .module-head .mdesc{
  font-size: 9.5pt;
  color: var(--muted);
  font-style: italic;
  margin-top: 2mm;
}.gbook h3.sec{
  font-family: "Carlito", sans-serif;
  font-size: 11pt;
  color: var(--navy);
  border-bottom: 1px solid var(--line);
  padding-bottom: 1.5mm;
  margin: 7mm 0 4mm 0;
  
  letter-spacing: .2px;
}.gbook h4.mini{
  font-family: "Carlito", sans-serif;
  font-size: 9.5pt;
  color: var(--ink);
  margin: 4mm 0 2mm 0;
  
}.gbook /* ============ RULE CARD ============ */
.rule{
  margin: 0 0 4.5mm 0;
  padding-left: 0;
  
}.gbook .rule .rhead{
  display: block;
  margin-bottom: 1.5mm;
}.gbook .rule .rnum{
  font-family: "Carlito", sans-serif;
  font-weight: 700;
  font-size: 8pt;
  color: #fff;
  background: var(--navy);
  border-radius: 3px;
  padding: 1.2pt 4.5pt;
  margin-right: 5pt;
  letter-spacing: .5px;
}.gbook .rule .rtitle{
  font-family: "Carlito", sans-serif;
  font-weight: 700;
  font-size: 10pt;
  color: var(--ink);
}.gbook .rule .rbody{ margin-left: 0; }.gbook /* ============ EXAMPLE PAIRS ============ */
.ex{ margin: 2mm 0 2mm 0; }.gbook .ex div{
  padding: 1.6pt 0 1.6pt 7mm;
  text-indent: -7mm;
  margin-bottom: 1pt;
}.gbook .ex .bad::before{
  content: "\2717";
  color: var(--red);
  font-family: "DejaVu Sans", sans-serif;
  font-weight: 700;
  display: inline-block;
  width: 7mm;
  text-indent: 0;
  font-size: 9pt;
}.gbook .ex .good::before{
  content: "\2713";
  color: var(--green);
  font-family: "DejaVu Sans", sans-serif;
  font-weight: 700;
  display: inline-block;
  width: 7mm;
  text-indent: 0;
  font-size: 9pt;
}.gbook .ex .bad{ color: #6d3c39; }.gbook .ex .good{ color: #1b4736; }.gbook .ex .note{ color: var(--muted); font-size: 8.6pt; font-style: italic; text-indent: 0; padding-left: 7mm; }.gbook u.hl{ text-decoration: none; border-bottom: 1.5px solid var(--gold); padding-bottom: .5px; }.gbook u.hlr{ text-decoration: none; border-bottom: 1.5px solid var(--red); padding-bottom: .5px; }.gbook /* ============ CALLOUTS ============ */
.callout{
  border-left: 3px solid;
  padding: 2.6mm 3.5mm;
  margin: 2.5mm 0 3.5mm 0;
  font-size: 9.2pt;
  
  border-radius: 0 3px 3px 0;
}.gbook .callout .ctitle{
  font-family: "Carlito", sans-serif;
  font-weight: 700;
  font-size: 8pt;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  display: block;
  margin-bottom: 1.2mm;
}.gbook .trap{ background: var(--gold-soft);   border-color: var(--gold); }.gbook .trap .ctitle{ color: var(--gold); }.gbook .tip{ background: var(--navy-soft);   border-color: var(--navy); }.gbook .tip .ctitle{ color: var(--navy); }.gbook .exam{ background: var(--violet-soft); border-color: var(--violet); }.gbook .exam .ctitle{ color: var(--violet); }.gbook .mem{ background: var(--green-soft);  border-color: var(--green); }.gbook .mem .ctitle{ color: var(--green); }.gbook /* ============ TABLES ============ */
table{
  width: 100%;
  border-collapse: collapse;
  font-size: 8.8pt;
  margin: 2.5mm 0 4mm 0;
  
}.gbook table.long{  }.gbook table.long tr{  }.gbook th{
  background: var(--navy);
  color: #fff;
  font-family: "Carlito", sans-serif;
  font-weight: 700;
  text-align: left;
  padding: 2.2mm 2.5mm;
  font-size: 8.4pt;
  letter-spacing: .3px;
}.gbook td{
  border-bottom: 1px solid var(--line);
  padding: 2mm 2.5mm;
  vertical-align: top;
}.gbook tr:nth-child(even) td{ background: #f7f9fc; }.gbook td.k{ font-family: "Carlito", sans-serif; font-weight: 700; color: var(--navy); white-space: nowrap; }.gbook caption{
  caption-side: top;
  text-align: left;
  font-family: "Carlito", sans-serif;
  font-size: 8.6pt;
  font-weight: 700;
  color: var(--gold);
  letter-spacing: 1px;
  text-transform: uppercase;
  padding-bottom: 1.5mm;
}.gbook /* ============ LISTS ============ */
ul.tight,.gbook ol.tight{ margin: 1.5mm 0 3mm 0; padding-left: 5mm; }.gbook ul.tight li,.gbook ol.tight li{ margin-bottom: 1.2mm; }.gbook ul.cols2{ column-count: 2; column-gap: 8mm; }.gbook ul.cols3{ column-count: 3; column-gap: 6mm; font-size: 8.8pt; }.gbook /* ============ FIGURES ============ */
figure{
  margin: 4mm 0 5mm 0;
  
  text-align: center;
}.gbook figure svg{ max-width: 100%; }.gbook figcaption{
  font-family: "Carlito", sans-serif;
  font-size: 8pt;
  color: var(--muted);
  margin-top: 1.5mm;
  text-align: center;
  letter-spacing: .3px;
}.gbook /* ============ TOC ============ */
.toc-page{  }.gbook .toc h2{ font-size: 20pt; color: var(--navy); margin: 0 0 6mm 0; }.gbook .toc ul{ list-style: none; padding: 0; margin: 0; }.gbook .toc li{
  font-family: "Carlito", sans-serif;
  font-size: 9.4pt;
  padding: 1.9mm 0;
  border-bottom: 1px dotted var(--line);
}.gbook .toc li a::after{
  content: target-counter(attr(href), page);
  float: right;
  color: var(--navy);
  font-weight: 700;
}.gbook .toc li .lead{ color: var(--gold); font-weight: 700; margin-right: 4pt; }.gbook .toc li.part{
  border-bottom: none;
  margin-top: 5mm;
  font-size: 8pt;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--muted);
  padding-bottom: 0;
}.gbook /* ============ PRACTICE ============ */
.q{ margin: 0 0 3mm 0;  }.gbook .q .qn{
  font-family: "Carlito", sans-serif;
  font-weight: 700;
  color: var(--navy);
  margin-right: 3pt;
}.gbook .opts{ font-size: 9.2pt; color: var(--ink-soft); margin-left: 6mm; }.gbook .opts span{ margin-right: 7mm; white-space: nowrap; }.gbook .ans{ font-size: 9pt; margin-bottom: 2.5mm;  }.gbook .ans .an{
  font-family: "Carlito", sans-serif;
  font-weight: 700;
  color: var(--green);
  margin-right: 3pt;
}.gbook .seg{
  font-family: "Carlito", sans-serif;
  font-size: 8.6pt;
  color: var(--muted);
}.gbook .q > .seg{ white-space: nowrap; }.gbook /* ============ MODULE TESTS ============ */
.test{  }.gbook .test-title{
  background: var(--navy);
  color: #fff;
  padding: 3mm 4mm;
  border-radius: 3px;
  margin: 0 0 4mm 0;
  
}.gbook .test-title .tt{
  font-family: "Carlito", sans-serif;
  font-size: 13pt;
  font-weight: 700;
  letter-spacing: .2px;
  display: block;
}.gbook .test-title .ts{
  font-family: "Carlito", sans-serif;
  font-size: 8.6pt;
  color: #c9dbf5;
  display: block;
  margin-top: 1mm;
}.gbook .test-part{
  font-family: "Carlito", sans-serif;
  font-size: 8.2pt;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gold);
  border-bottom: 1px solid var(--line);
  padding-bottom: 1.2mm;
  margin: 5mm 0 3mm 0;
  
}.gbook .ansblock{
  border-top: 2.5px solid var(--navy);
  padding-top: 3mm;
  margin-top: 6mm;
}.gbook .ansblock .ah{
  font-family: "Carlito", sans-serif;
  font-size: 10.5pt;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 3mm;
  
  display: block;
}.gbook .ans2{
  font-size: 9pt;
  margin-bottom: 2.6mm;
  
  padding-left: 12mm;
  text-indent: -12mm;
}.gbook .ans2 .an2{
  font-family: "Carlito", sans-serif;
  font-weight: 700;
  color: var(--green);
  display: inline-block;
  width: 12mm;
  text-indent: 0;
}.gbook .ans2 .why{ color: var(--ink-soft); }.gbook /* ============ MISC ============ */
.lead-para{
  font-size: 10.4pt;
  color: var(--ink-soft);
  line-height: 1.55;
  margin-bottom: 5mm;
}.gbook .divider{ height: 1px; background: var(--line); margin: 6mm 0; }.gbook .two-col{ column-count: 2; column-gap: 7mm; }.gbook .nobreak{  }.gbook .newpage{  }.gbook .small{ font-size: 8.8pt; color: var(--muted); }.gbook .kbd{
  font-family: "Carlito", sans-serif;
  font-size: 8.4pt;
  background: #eef2f9;
  border: 1px solid #d5dded;
  border-radius: 3px;
  padding: .5pt 3pt;
  color: var(--navy);
  white-space: nowrap;
}

.gbook{--ink:#171d2e;--ink-soft:#3a4256;--muted:#6b7280;--line:#e3e6ef;--navy:var(--navy-700);--navy-soft:var(--navy-100);--gold:var(--magenta-700);--gold-soft:var(--magenta-100);--green:var(--teal-700);--green-soft:var(--teal-100);--red:var(--red-700);--red-soft:#fbe3e3;--violet:var(--navy-600);--violet-soft:var(--navy-100);font-family:var(--font-body);font-size:15px;line-height:1.6;color:var(--text-body)}
.gbook h2.module{font-family:var(--font-display);font-weight:800;font-size:26px;color:var(--text-heading)}
.gbook .module-head{border-top:3px solid var(--brand-accent)}
.gbook .mnum{font-family:var(--font-body);color:var(--brand-accent);font-weight:700}
.gbook .sans{font-family:var(--font-body)}
.gbook table{font-size:14.5px}
.gbook .mnum{font-size:13px;letter-spacing:.08em}
.gbook .mdesc{font-size:15.5px}
.gbook .lead-para{font-size:16px;line-height:1.65}
.gbook h3.sec{font-size:19px;font-family:var(--font-display);color:var(--navy-700)}
.gbook .rtitle{font-size:15.5px}
.gbook .rnum{font-size:12.5px}
.gbook .rbody p{font-size:15px}
.gbook .ex .good,.gbook .ex .bad{font-size:15px}
.gbook .callout{font-size:14.5px;line-height:1.6}
.gbook .ctitle{font-size:12.5px}
.gbook .note{font-size:13.5px}
.gbook .seg{font-size:13px}
.gbook .q{font-size:15px;line-height:1.6}
.gbook .opts span{font-size:14.5px}
.gbook .test-part{font-size:13.5px}
.gbook .tt{font-size:18px}
.gbook .ts{font-size:13.5px}
.gbook .ans,.gbook .ans2{font-size:14px;line-height:1.6}
.gbook .an,.gbook .an2{font-size:14px}
.gbook .why{font-size:14px}
.gbook figcaption,.gbook caption{font-size:13px}
.gbook.attempt .ansblock{display:none}
.gbook.attempt.revealed .ansblock{display:block}
.gq-bar{display:flex;gap:6px;margin:6px 0 14px;flex-wrap:wrap}
.gq-btn{font-family:var(--font-body);font-weight:700;font-size:12.5px;min-width:34px;padding:5px 10px;border-radius:999px;border:1.5px solid var(--gray-200);background:var(--white);color:var(--gray-700);cursor:pointer}
.gq-btn.sel{border-color:var(--navy-700);background:var(--navy-100);color:var(--navy-700)}
.gq-btn.hit{border-color:var(--teal-600);background:var(--teal-100);color:var(--teal-600)}
.gq-btn.miss{border-color:var(--red-500);background:#fbe3e3;color:var(--red-500)}
.gbook .q.g-hit{border-left:3px solid var(--teal-600);padding-left:10px}
.gbook .q.g-miss{border-left:3px solid var(--red-500);padding-left:10px}
.g-submit{font-family:var(--font-body);font-weight:600;font-size:15px;padding:12px 26px;border-radius:999px;border:none;background:var(--magenta-600);color:#fff;cursor:pointer;box-shadow:var(--shadow-accent)}
.g-submit[disabled]{opacity:.5;cursor:not-allowed}
.g-score{font-family:var(--font-body);font-size:16px;font-weight:600;background:var(--navy-100);border:1px solid var(--navy-700);border-radius:12px;padding:14px 18px;margin:18px 0;color:var(--navy-900)}
.g-toolbar{display:flex;align-items:center;gap:16px;margin:22px 0;flex-wrap:wrap}
.g-exp{font-family:var(--font-body);font-size:13.5px;line-height:1.55;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;padding:10px 14px;margin:8px 0 4px;color:var(--gray-700)}
.g-exp .an{font-weight:700;color:var(--navy-700);margin-right:6px}
