
.gc72-master{margin:42px 0;padding:28px;border:1px solid var(--line,#d7d1c4);border-radius:22px;background:#f8f5ec}
.gc72-master-head,.gc72-profile-head,.gc72-category-head{display:grid;grid-template-columns:1fr .55fr;gap:28px;align-items:end}
.gc72-master-head h2{margin:5px 0 8px;font-size:clamp(2rem,4vw,3.4rem)}
.gc72-master-head p,.gc72-profile-head p,.gc72-category-head p{margin:0;color:var(--muted,#69716d);line-height:1.5}
.gc72-count-card{display:flex;min-height:150px;flex-direction:column;justify-content:center;padding:20px;border-radius:17px;background:var(--forest,#12372f);color:#fff;text-align:center}
.gc72-count-card strong{font-family:Georgia,serif;font-size:3rem;font-weight:500;line-height:1}
.gc72-count-card span{margin-top:5px;font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.gc72-count-card small{margin-top:5px;color:#c6d5d0;font-size:.65rem}
.gc72-profile{margin-top:20px;padding:19px;border:1px solid var(--line,#d7d1c4);border-radius:17px;background:#fffdf8}
.gc72-profile-head h3,.gc72-category-head h3{margin:4px 0 0;font-family:Georgia,serif;font-size:1.45rem;font-weight:500}
.gc72-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
.gc72-number,.gc72-module{min-height:88px;padding:12px;border:1px solid var(--line,#d7d1c4);border-radius:12px;background:#f8f5ec}
.gc72-number label{display:block;margin-bottom:6px;font-size:.7rem;font-weight:850}
.gc72-number>div{display:grid;grid-template-columns:34px 1fr 34px;height:36px;overflow:hidden;border:1px solid var(--line,#d7d1c4);border-radius:9px;background:#fff}
.gc72-number button{border:0;background:transparent;color:var(--forest,#12372f);font-size:1rem;font-weight:900;cursor:pointer}
.gc72-number input{min-width:0;border:0;border-left:1px solid var(--line,#d7d1c4);border-right:1px solid var(--line,#d7d1c4);text-align:center;font:inherit;font-size:.75rem;font-weight:850}
.gc72-number small{display:block;margin-top:5px;color:var(--muted,#69716d);font-size:.58rem}
.gc72-module{position:relative;display:grid;grid-template-columns:18px 1fr auto;gap:9px;align-items:start;cursor:pointer}
.gc72-module input{margin-top:3px;accent-color:var(--forest,#12372f)}
.gc72-module span{display:flex;flex-direction:column}
.gc72-module strong{font-size:.7rem}.gc72-module small{margin-top:2px;color:var(--muted,#69716d);font-size:.58rem;line-height:1.35}
.gc72-module>b{padding:4px 6px;border-radius:999px;background:#edf1eb;color:var(--forest,#12372f);font-size:.55rem}
.gc72-module:has(input:checked){border-color:var(--forest,#12372f);background:#edf2ed}
.gc72-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.gc72-metrics>div{display:flex;min-height:100px;flex-direction:column;padding:12px;border:1px solid var(--line,#d7d1c4);border-radius:13px;background:#fffdf8}
.gc72-metrics span{color:var(--muted,#69716d);font-size:.54rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.gc72-metrics strong{margin:auto 0 2px;font-family:Georgia,serif;color:var(--forest,#12372f);font-size:1.5rem;font-weight:500}
.gc72-metrics small{color:var(--muted,#69716d);font-size:.55rem}
.gc72-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.gc72-key{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0 12px;padding:10px 12px;border-radius:12px;background:#eef2ed}
.gc72-key>span{display:grid;grid-template-columns:24px auto;gap:0 6px;align-items:center}
.gc72-key b{grid-row:1/3;display:flex;width:23px;height:23px;align-items:center;justify-content:center;border-radius:50%;background:var(--forest,#12372f);color:#fff;font-size:.6rem}
.gc72-key strong{font-size:.62rem}.gc72-key small{color:var(--muted,#69716d);font-size:.52rem}
.gc72-category-head{margin-top:20px;padding-top:20px;border-top:1px solid var(--line,#d7d1c4)}
.gc72-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:13px}
.gc72-category{display:flex;min-height:230px;flex-direction:column;padding:14px;border:1px solid var(--line,#d7d1c4);border-radius:14px;background:#fffdf8}
.gc72-category.is-module-off{opacity:.58;background:#f3f0e8}
.gc72-category-top{display:flex;justify-content:space-between;gap:8px}
.gc72-category-top span{color:var(--rust,#b65430);font-size:.51rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.gc72-category-top b{font-size:.53rem;color:var(--muted,#69716d)}
.gc72-category h4{margin:10px 0 5px;font-family:Georgia,serif;font-size:1rem;font-weight:500}
.gc72-category p{margin:0;color:var(--muted,#69716d);font-size:.61rem;line-height:1.38}
.gc72-category ul{margin:9px 0 10px;padding-left:16px}.gc72-category li{margin:3px 0;color:var(--muted,#69716d);font-size:.55rem;line-height:1.3}
.gc72-category>small{margin-top:auto;color:var(--forest,#12372f);font-size:.54rem;font-weight:850}
.gc72-editorial-note{margin-top:15px;padding:15px;border-left:4px solid var(--rust,#b65430);background:#fffdf8}
.gc72-editorial-note strong{font-family:Georgia,serif;font-size:1rem}.gc72-editorial-note p{margin:4px 0 0;color:var(--muted,#69716d);font-size:.68rem;line-height:1.45}
.gc72-print-root{display:none}

@media(max-width:950px){.gc72-category-grid{grid-template-columns:1fr 1fr}.gc72-metrics{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.gc72-master{padding:18px}.gc72-master-head,.gc72-profile-head,.gc72-category-head{grid-template-columns:1fr}.gc72-profile-grid,.gc72-category-grid{grid-template-columns:1fr}}

@media print{
 @page{size:A4 portrait;margin:8mm}
 body.gc72-printing *{visibility:hidden!important}
 body.gc72-printing .gc72-print-root,
 body.gc72-printing .gc72-print-root *{visibility:visible!important}
 body.gc72-printing .gc72-print-root{display:block!important;position:absolute!important;left:0!important;top:0!important;width:100%!important;color:#111!important;background:#fff!important;font-family:Arial,sans-serif!important}
 .gc72-print-page{position:relative;box-sizing:border-box;min-height:279mm;page-break-after:always;padding:0 0 10mm}
 .gc72-print-brand{font-size:6.5pt;font-weight:900;letter-spacing:.13em;color:#173a31}
 .gc72-print-cover h1,.gc72-print-review h1{margin:5mm 0 2mm;font-family:Georgia,serif;font-size:28pt;font-weight:500;line-height:1}
 .gc72-print-sub{max-width:150mm;margin:0 0 6mm;font-size:9pt;line-height:1.35;color:#444}
 .gc72-print-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:2mm}
 .gc72-print-stats>div{display:flex;min-height:22mm;flex-direction:column;padding:3mm;border:.7pt solid #c9cec9}
 .gc72-print-stats span{font-size:6pt;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#555}
 .gc72-print-stats strong{margin:auto 0 1mm;font-family:Georgia,serif;font-size:18pt;font-weight:500;color:#173a31}
 .gc72-print-stats small{font-size:5.5pt;color:#555}
 .gc72-print-profile{display:grid;grid-template-columns:35mm 1fr;gap:4mm;margin-top:4mm;padding:3mm;border:.7pt solid #c9cec9}
 .gc72-print-profile strong{font-size:7pt;text-transform:uppercase}.gc72-print-profile span{font-size:7pt;color:#444}
 .gc72-print-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5mm 7mm;margin-top:6mm}
 .gc72-print-contact-grid>div{display:grid;grid-template-columns:42mm 1fr;gap:3mm;align-items:end}
 .gc72-print-contact-grid span{font-size:6.5pt;color:#555}.gc72-print-contact-grid i{height:5mm;border-bottom:.7pt solid #666}
 .gc72-print-key{display:flex;gap:8mm;margin-top:6mm}.gc72-print-key span{font-size:7pt}.gc72-print-key b{display:inline-flex;width:5mm;height:5mm;align-items:center;justify-content:center;border-radius:50%;background:#173a31;color:#fff;font-size:6pt;margin-right:1mm}
 .gc72-print-principles{margin-top:7mm;padding:4mm;border-left:2pt solid #173a31;background:#f3f3ef}
 .gc72-print-principles strong{font-size:9pt}.gc72-print-principles p{margin:1mm 0 0;font-size:7pt;line-height:1.35;color:#444}
 .gc72-print-cover-foot{position:absolute;left:0;right:0;bottom:0;padding-top:2mm;border-top:.6pt solid #bbb;font-size:5.5pt;color:#666}
 .gc72-print-section-block{break-before:auto;break-inside:auto;page-break-inside:auto;margin:0 0 3.5mm;padding:0 0 3mm;border-bottom:.7pt solid #bbb}
 .gc72-print-section-head{display:flex;justify-content:space-between;gap:5mm;align-items:end;break-after:avoid-page}
 .gc72-print-section-head span{font-size:5pt;font-weight:800;text-transform:uppercase;color:#a34a2b}
 .gc72-print-section-head h2{margin:.7mm 0 0;font-family:Georgia,serif;font-size:14pt;font-weight:500}
 .gc72-print-section-head b{font-size:6pt;color:#555}
 .gc72-print-section-intro{margin:1mm 0 1.4mm;font-size:5.6pt;color:#555;line-height:1.2;break-after:avoid-page}
 .gc72-print-items{columns:3;column-gap:4.5mm;column-rule:.35pt solid #e1e1de}
 .gc72-print-item{display:grid;grid-template-columns:3.5mm 3.7mm 1fr;gap:1.2mm;align-items:start;break-inside:avoid;padding:.7mm 0}
 .gc72-print-box{width:3mm;height:3mm;border:.8pt solid #222;border-radius:.4mm;box-sizing:border-box}
 .gc72-print-tier{display:flex;width:3.2mm;height:3.2mm;align-items:center;justify-content:center;border-radius:50%;font-size:4.8pt;font-weight:900;color:#111;background:#e8e8e5}
 .gc72-tier-core{background:#d7e2dd}.gc72-tier-useful{background:#eee4d3}.gc72-tier-situational{background:#e9e4ea}
 .gc72-print-item-text{font-size:5.7pt;line-height:1.1}
 .gc72-print-review h2{margin:9mm 0 3mm;font-family:Georgia,serif;font-size:16pt;font-weight:500}
 .gc72-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:3mm 8mm;margin-top:7mm}
 .gc72-review-grid>div{display:grid;grid-template-columns:40mm 1fr;gap:3mm;align-items:end}
 .gc72-review-grid span{font-size:7pt;color:#555}.gc72-review-grid i{height:5mm;border-bottom:.7pt solid #666}
 .gc72-note-lines{display:grid;gap:4mm}.gc72-note-lines i{height:5mm;border-bottom:.7pt solid #aaa}
 .gc72-print-warning{margin-top:6mm;padding:3mm;border:.7pt solid #aaa;font-size:6.5pt;color:#555}
}


/* ==========================================================
   v1.1.0 — maximum-density ONE-PAGE checklist
   ========================================================== */
@media print{
  @page{size:A4 landscape;margin:6mm}

  body.gc72-onepage-printing *{visibility:hidden!important}
  body.gc72-onepage-printing .gc72-print-root,
  body.gc72-onepage-printing .gc72-print-root *{visibility:visible!important}

  body.gc72-onepage-printing .gc72-print-root{
    display:block!important;
    position:absolute!important;
    left:0!important;
    top:0!important;
    width:100%!important;
    height:100%!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
    color:#111!important;
    font-family:Arial,sans-serif!important;
    overflow:hidden!important
  }

  .gc72-onepage-sheet{
    box-sizing:border-box!important;
    position:relative!important;
    display:grid!important;
    grid-template-rows:16mm 6mm 1fr 8mm!important;
    width:285mm!important;
    height:198mm!important;
    max-width:285mm!important;
    max-height:198mm!important;
    overflow:hidden!important;
    background:#fff!important;
  }

  .gc72-onepage-head{
    display:flex!important;
    align-items:flex-start!important;
    justify-content:space-between!important;
    gap:5mm!important;
    padding-bottom:2mm!important;
    border-bottom:1pt solid #173a31!important
  }
  .gc72-onepage-brand{
    margin-bottom:1mm!important;
    color:#173a31!important;
    font-size:5.4pt!important;
    font-weight:900!important;
    letter-spacing:.11em!important
  }
  .gc72-onepage-head h1{
    margin:0!important;
    font-family:Georgia,serif!important;
    font-size:17pt!important;
    line-height:1!important;
    font-weight:500!important
  }
  .gc72-onepage-stats{
    display:flex!important;
    flex-wrap:wrap!important;
    justify-content:flex-end!important;
    gap:1mm 3mm!important;
    max-width:145mm!important
  }
  .gc72-onepage-stats span{
    white-space:nowrap!important;
    font-size:5.2pt!important;
    color:#444!important
  }
  .gc72-onepage-stats b{
    color:#173a31!important;
    font-size:6.3pt!important
  }

  .gc72-onepage-key{
    display:flex!important;
    align-items:center!important;
    gap:3.5mm!important;
    white-space:nowrap!important;
    border-bottom:.5pt solid #bbb!important;
    font-size:4.7pt!important;
    color:#555!important
  }
  .gc72-onepage-key b{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:3.2mm!important;
    height:3.2mm!important;
    margin-right:.7mm!important;
    border-radius:50%!important;
    background:#173a31!important;
    color:#fff!important;
    font-size:4.5pt!important
  }

  .gc72-onepage-list{
    box-sizing:border-box!important;
    height:168mm!important;
    padding-top:1.2mm!important;
    column-count:var(--gc72-cols)!important;
    column-gap:2.1mm!important;
    column-fill:auto!important;
    column-rule:.35pt solid #d6d6d2!important;
    overflow:hidden!important
  }

  .gc72-onepage-section{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    height:3.0mm!important;
    margin:0!important;
    padding:0 .7mm!important;
    break-inside:avoid!important;
    break-after:avoid!important;
    background:#e9eeea!important;
    border-top:.45pt solid #8f9b95!important;
    border-bottom:.45pt solid #c7cec9!important;
    color:#173a31!important;
    line-height:3mm!important
  }
  .gc72-onepage-section strong{
    max-width:88%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:4.8pt!important;
    text-transform:uppercase!important;
    letter-spacing:.045em!important
  }
  .gc72-onepage-section span{
    font-size:4.2pt!important;
    font-weight:800!important
  }

  .gc72-onepage-item{
    box-sizing:border-box!important;
    display:grid!important;
    grid-template-columns:2.6mm 2.6mm minmax(0,1fr)!important;
    gap:.65mm!important;
    align-items:center!important;
    height:2.65mm!important;
    min-height:2.65mm!important;
    max-height:2.65mm!important;
    overflow:hidden!important;
    padding:0 .35mm!important;
    border-bottom:.2pt solid #ecece8!important;
    break-inside:avoid!important;
    white-space:nowrap!important
  }
  .gc72-onepage-box{
    box-sizing:border-box!important;
    display:block!important;
    width:2.25mm!important;
    height:2.25mm!important;
    border:.65pt solid #222!important;
    border-radius:.3mm!important
  }
  .gc72-onepage-tier{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:2.25mm!important;
    height:2.25mm!important;
    border-radius:50%!important;
    background:#ededeb!important;
    color:#111!important;
    font-size:3.8pt!important;
    line-height:1!important
  }
  .gc72-onepage-item>span:last-child{
    display:block!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:4.35pt!important;
    line-height:2.65mm!important
  }

  .gc72-onepage-foot{
    display:grid!important;
    grid-template-columns:1.1fr 1.1fr .8fr!important;
    gap:3mm!important;
    align-items:end!important;
    padding-top:1.3mm!important;
    border-top:.7pt solid #173a31!important;
    color:#555!important;
    font-size:4.4pt!important;
    line-height:1.2!important
  }
  .gc72-onepage-foot span:last-child{text-align:right!important}
}

/* On screen the one-page print root stays hidden. */
.gc72-onepage-sheet{display:none}


/* ==========================================================
   v1.2.0 — Print portal / blank-page fix
   ========================================================== */

/*
 * Printing now uses #gc72-print-portal appended directly to <body>.
 * The rest of the website is removed from print layout completely.
 * This is intentionally stronger than visibility:hidden because
 * invisible elements can still consume printable page height.
 */
.gc72-print-portal{
  display:none;
}

@media print{
  html,
  body{
    margin:0!important;
    padding:0!important;
    width:auto!important;
    min-height:0!important;
    height:auto!important;
    overflow:visible!important;
    background:#fff!important;
  }

  /* Remove ALL normal site layout from print flow. */
  body.gc72-printing > *:not(#gc72-print-portal),
  body.gc72-onepage-printing > *:not(#gc72-print-portal){
    display:none!important;
  }

  body.gc72-printing #gc72-print-portal,
  body.gc72-onepage-printing #gc72-print-portal{
    display:block!important;
    position:static!important;
    width:auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    visibility:visible!important;
    background:#fff!important;
    color:#111!important;
  }

  body.gc72-printing #gc72-print-portal *,
  body.gc72-onepage-printing #gc72-print-portal *{
    visibility:visible!important;
  }

  /* The original nested render target must never participate in print. */
  body.gc72-printing #gc72-print-root,
  body.gc72-onepage-printing #gc72-print-root{
    display:none!important;
  }

  /* ---------- One-page output ---------- */
  body.gc72-onepage-printing #gc72-print-portal{
    width:285mm!important;
    height:198mm!important;
    min-height:198mm!important;
    max-height:198mm!important;
    overflow:hidden!important;
  }

  body.gc72-onepage-printing #gc72-print-portal .gc72-onepage-sheet{
    display:grid!important;
    position:relative!important;
    width:285mm!important;
    height:198mm!important;
    min-height:198mm!important;
    max-height:198mm!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    break-after:auto!important;
    page-break-after:auto!important;
    break-before:auto!important;
    page-break-before:auto!important;
  }

  /* No child is allowed to force a second sheet in one-page mode. */
  body.gc72-onepage-printing #gc72-print-portal *,
  body.gc72-onepage-printing #gc72-print-portal *::before,
  body.gc72-onepage-printing #gc72-print-portal *::after{
    page-break-after:auto!important;
    page-break-before:auto!important;
  }

  /* Restore the intentional "avoid breaking a row" behaviour only. */
  body.gc72-onepage-printing #gc72-print-portal .gc72-onepage-item,
  body.gc72-onepage-printing #gc72-print-portal .gc72-onepage-section{
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }

  /* ---------- Full Master output ---------- */
  body.gc72-printing #gc72-print-portal .gc72-print-cover{
    page-break-after:always!important;
    break-after:page!important;
  }

  body.gc72-printing #gc72-print-portal .gc72-print-review{
    page-break-after:auto!important;
    break-after:auto!important;
  }

  /*
   * Critical: never force a page after the LAST printable node.
   * This removes the common final empty sheet produced by Chromium/WebKit.
   */
  body.gc72-printing #gc72-print-portal > *:last-child{
    page-break-after:auto!important;
    break-after:auto!important;
    margin-bottom:0!important;
  }

  body.gc72-printing #gc72-print-portal::after,
  body.gc72-onepage-printing #gc72-print-portal::after{
    display:none!important;
    content:none!important;
  }

  /* Prevent minimum-height leftovers from manufacturing blank sheets. */
  body.gc72-printing #gc72-print-portal .gc72-print-review:last-child{
    min-height:0!important;
    height:auto!important;
    padding-bottom:8mm!important;
  }
}
