/* SG Article Presentation v3.0.2 — Clean consolidated stylesheet
   Manual-image edition: no chart/diagram/flowchart renderer CSS. */

.sgap-article{
  --sg-blue:#2563eb;
  --sg-blue-dark:#173f73;
  --sg-teal:#0f766e;
  --sg-text:#1f3348;
  --sg-muted:#64748b;
  --sg-line:#dbe5ef;
  --sg-sky:#f4f9ff;
  max-width:var(--sgap-max-width,1180px);
  color:var(--sg-text);
  font-size:clamp(var(--sgap-body-min,17px),1.05vw,var(--sgap-body-max,20px));
  line-height:var(--sgap-line-height,1.75);
  overflow-wrap:anywhere;
}
.sgap-article *{box-sizing:border-box}
.sgap-article > p{max-width:76ch;margin:0 0 1rem;line-height:1.72}
.sgap-article > p + p{margin-top:.05rem}
.sgap-article a{color:#1d4ed8;text-underline-offset:2px}
.sgap-article strong{font-weight:750;color:#182f49}
.sgap-article code:not(pre code){padding:.08em .34em;border:1px solid #d4dee8;border-radius:5px;background:#f1f5f9;color:#17324d;font-size:.92em}

/* H2: major section light box. */
.sgap-article > h2{
  display:block;width:100%;margin:2.45rem 0 1rem;padding:.78rem 1rem;
  color:#102a43;background:linear-gradient(135deg,#f2f7ff,#fbfdff);
  border:1px solid #d7e6f7;border-left:4px solid var(--sg-blue);border-radius:9px;
  box-shadow:none;font-size:clamp(var(--sgap-h2-min,27px),2.1vw,var(--sgap-h2-max,38px));line-height:1.3
}
.sgap-article > h2:first-of-type{margin-top:1.15rem}
.sgap-article > h2::before{display:none!important}

/* H3: normal headline, distinct teal accent, no card. */
.sgap-article > h3{
  position:relative;margin:1.75rem 0 .68rem;padding:.08rem 0 .1rem .7rem;
  color:#155e75;background:transparent!important;border:0!important;border-left:3px solid #14b8a6!important;
  border-radius:0!important;box-shadow:none!important;
  font-size:clamp(var(--sgap-h3-min,21px),1.55vw,var(--sgap-h3-max,29px));line-height:1.35
}
.sgap-article > h3::before{display:none!important}
.sgap-article > h3::after{content:"";display:block;width:min(150px,28%);height:1px;margin-top:.32rem;background:linear-gradient(90deg,#99ded6,transparent)}

/* Compact ordinary lists: small blue diamond, no excessive vertical space. */
.sgap-article > ul{list-style:none!important;max-width:76ch;margin:.45rem 0 1rem!important;padding:0!important}
.sgap-article > ul > li{position:relative;margin:.22rem 0!important;padding:0 0 0 1.12rem!important;line-height:1.55!important}
.sgap-article > ul > li::before,
.sgap-article .sgap-callout-list li::before,
.sgap-article .sgap-box-list li::before,
.sgap-article .sgap-box > ul > li::before{
  content:""!important;position:absolute;left:.08rem;top:.76em;width:.4rem;height:.4rem;
  transform:translateY(-50%) rotate(45deg);border-radius:1px;background:linear-gradient(135deg,#60a5fa,#2563eb)
}
.sgap-article > ol,.sgap-article > .sgap-auto-ordered-list{max-width:76ch;margin:.55rem 0 1rem;padding-left:1.45rem}
.sgap-article > ol > li,.sgap-article > .sgap-auto-ordered-list > li{margin:.25rem 0;line-height:1.57;padding-left:.15rem}
.sgap-article > ol > li::marker,.sgap-article > .sgap-auto-ordered-list > li::marker{color:var(--sg-blue);font-weight:800}

/* Named callouts. */
.sgap-article .sgap-callout{
  --sgap-accent:#64748b;--sgap-tint:#f8fafc;
  margin:1.45rem 0 1.6rem;padding:1.05rem 1.18rem 1.1rem;
  border:1px solid color-mix(in srgb,var(--sgap-accent) 24%,#e2e8f0);
  border-left:4px solid var(--sgap-accent);border-radius:10px;background:var(--sgap-tint);box-shadow:none
}
.sgap-article .sgap-note{--sgap-accent:#2563eb;--sgap-tint:#f5f8ff}
.sgap-article .sgap-tip{--sgap-accent:#059669;--sgap-tint:#f3fbf7}
.sgap-article .sgap-warning{--sgap-accent:#d97706;--sgap-tint:#fff9ef}
.sgap-article .sgap-example{--sgap-accent:#7c3aed;--sgap-tint:#faf7ff}
.sgap-article .sgap-important{--sgap-accent:#dc2626;--sgap-tint:#fff6f6}
.sgap-article .sgap-callout-head{display:flex;align-items:center;gap:.62rem;margin:0 0 .72rem;line-height:1.35}
.sgap-article .sgap-callout-icon{display:grid;place-items:center;width:1.35rem;height:1.35rem;flex:0 0 1.35rem;color:var(--sgap-accent)}
.sgap-article .sgap-callout-icon svg{width:1.18rem;height:1.18rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sgap-article .sgap-callout-title{font-size:1.03em;font-weight:800;color:#172b44}
.sgap-article .sgap-callout-body{line-height:1.68;color:#26394d}
.sgap-article .sgap-callout-body > p{margin:0 0 .72rem;line-height:1.68}
.sgap-article .sgap-callout-body > p:last-child{margin-bottom:0}
.sgap-article .sgap-callout-list,
.sgap-article .sgap-box-list,
.sgap-article .sgap-box > ul{list-style:none!important;margin:.48rem 0 .72rem!important;padding:0!important}
.sgap-article .sgap-callout-list li,
.sgap-article .sgap-box-list li,
.sgap-article .sgap-box > ul > li{position:relative;margin:.24rem 0!important;padding:0 0 0 1.12rem!important;line-height:1.55!important}

/* Unnamed light-sky-blue box. */
.sgap-article .sgap-box{margin:1.35rem 0 1.5rem;padding:1rem 1.15rem;border:1px solid #b9def3;border-left:4px solid #67b7e3;border-radius:10px;background:#f2faff;color:#20364b}
.sgap-article .sgap-box > p{margin:0 0 .7rem;line-height:1.68}
.sgap-article .sgap-box > p:last-child{margin-bottom:0}

/* Article information profile. */
.sgap-article .sgcae-article-profile{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:0 0 1.5rem;border:1px solid #dbe4f0;border-radius:12px;background:#fbfdff;overflow:hidden}
.sgap-article .sgcae-profile-item{display:flex;align-items:center;gap:.7rem;min-height:62px;padding:.78rem .9rem;border-right:1px solid #e5eaf1;border-bottom:1px solid #e5eaf1}
.sgap-article .sgcae-profile-icon{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border-radius:9px;background:linear-gradient(135deg,#2563eb,#6d4de3);color:#fff;font-weight:800}
.sgap-article .sgcae-profile-copy{display:flex;min-width:0;flex-direction:column;gap:.1rem}.sgap-article .sgcae-profile-copy strong{font-size:.75em;letter-spacing:.03em;text-transform:uppercase;color:#64748b}.sgap-article .sgcae-profile-copy span{font-weight:650;color:#172554}

/* Tables. */
.sgap-article .sgap-table-scroll,.sgap-article .sgcae-table-wrap{width:100%;margin:1.35rem 0 1.55rem;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #dbe4ee;border-radius:10px;background:#fff}
.sgap-article table{width:100%;border-collapse:collapse;font-size:clamp(var(--sgap-table-min,15px),1vw,var(--sgap-table-max,18px));line-height:1.5}
.sgap-article th,.sgap-article td{padding:.7rem .8rem;border-bottom:1px solid #e6edf4;text-align:left;vertical-align:top}
.sgap-article th{background:#f2f7fc;color:#17324d;font-weight:800}.sgap-article tbody tr:nth-child(even){background:#fbfdff}.sgap-article tbody tr:last-child td{border-bottom:0}

/* Manual images only — clean, centered, no forced crop. */
.sgap-article .sgap-real-media,.sgap-article > figure{max-width:100%;margin:1.35rem auto 1.6rem;text-align:center}
.sgap-article .sgap-real-media img,.sgap-article > figure img{display:block;max-width:100%;height:auto;margin:0 auto;border-radius:8px}
.sgap-article figcaption{margin-top:.5rem;color:#64748b;font-size:.88em;line-height:1.45}
.sgap-article .sgap-media-placeholder{margin:1.25rem 0;padding:1rem;border:1px dashed #94a3b8;border-radius:9px;background:#f8fafc;color:#475569}.sgap-article .sgap-media-placeholder-inner{display:flex;gap:.35rem;flex-direction:column}

/* References/resources. */
.sgap-article .sgcae-resource-row,.sgap-article .sgcae-reference-row{margin:.45rem 0}
.sgap-article .sgcae-resource-row a,.sgap-article .sgcae-reference-row a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.15rem .7rem;align-items:center;padding:.72rem .82rem;border:1px solid #e1e8f0;border-radius:8px;background:#fbfdff;text-decoration:none}
.sgap-article .sgcae-reference-title{font-weight:750;color:#17324d}.sgap-article .sgcae-reference-url{grid-column:1;color:#64748b;font-size:.82em}.sgap-article .sgcae-reference-arrow{grid-column:2;grid-row:1/3;color:#2563eb;font-weight:800}

/* Supporting article elements. */
.sgap-article .sgcae-inline-label{margin:1rem 0 .45rem!important;color:#23405e}.sgap-article .sgap-section-separator{height:1px;border:0;margin:1.7rem 0;background:linear-gradient(90deg,transparent,#d7e3f0 10%,#d7e3f0 90%,transparent)}
.sgap-article .sgap-flow-pointer{margin:.18rem 0 .3rem!important;padding:0!important;color:#3b82f6!important;font-size:1.25em!important;font-weight:800;line-height:1!important}

/* Command/output spacing and theme-conflict protection. */
.sgap-article .sg-simple-box{margin:1.35rem 0 1.55rem!important}.sgap-article .sg-simple-box pre{margin:0!important}.sgap-article .sg-simple-box pre code{color:#16324f!important;-webkit-text-fill-color:#16324f!important;opacity:1!important;line-height:1.62!important}

/* Nested components never inherit article H2/H3 cards. */
.sgap-article :is(.sgap-callout,.sgap-box,.sg-simple-box,.sgap-table-scroll,.sgcae-article-profile) h2,
.sgap-article :is(.sgap-callout,.sgap-box,.sg-simple-box,.sgap-table-scroll,.sgcae-article-profile) h3{width:auto;margin:initial;padding:initial;background:transparent;border:0;border-radius:0;box-shadow:none}

@media(max-width:700px){
  .sgap-article > p{line-height:1.68;margin-bottom:.9rem}
  .sgap-article > h2{margin-top:2rem;padding:.68rem .78rem;border-radius:8px}
  .sgap-article > h3{margin-top:1.45rem;padding-left:.62rem}
  .sgap-article .sgap-callout,.sgap-article .sgap-box{margin:1.15rem 0 1.3rem;padding:.9rem .95rem}
  .sgap-article .sgcae-article-profile{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){.sgap-article .sgcae-article-profile{grid-template-columns:1fr}.sgap-article th,.sgap-article td{padding:.62rem .66rem}}

/* v3.0.1 — ordered-list repair for SG boxes/callouts.
   Numeric steps always render one item per line with a strong, easy-to-scan marker. */
.sgap-article .sgap-callout-ordered,
.sgap-article .sgap-box > ol,
.sgap-article .sgap-box .sgap-callout-ordered{
  margin:.46rem 0 .72rem!important;
  padding-left:1.65rem!important;
  list-style:decimal outside!important;
  list-style-position:outside!important;
}
.sgap-article .sgap-callout-ordered > li,
.sgap-article .sgap-box > ol > li,
.sgap-article .sgap-box .sgap-callout-ordered > li{
  display:list-item!important;
  margin:.3rem 0!important;
  padding-left:.16rem!important;
  line-height:1.56!important;
}
.sgap-article .sgap-callout-ordered > li::marker,
.sgap-article .sgap-box > ol > li::marker,
.sgap-article .sgap-box .sgap-callout-ordered > li::marker{
  color:var(--sgap-accent,#2563eb)!important;
  font-weight:900!important;
  font-variant-numeric:tabular-nums;
}
.sgap-article .sgap-callout-body > p + .sgap-callout-ordered,
.sgap-article .sgap-box > p + .sgap-callout-ordered,
.sgap-article .sgap-box > p + ol{margin-top:.28rem!important}
@media(max-width:600px){
  .sgap-article .sgap-callout-ordered,
  .sgap-article .sgap-box > ol,
  .sgap-article .sgap-box .sgap-callout-ordered{padding-left:1.5rem!important;margin:.4rem 0 .64rem!important}
  .sgap-article .sgap-callout-ordered > li,
  .sgap-article .sgap-box > ol > li,
  .sgap-article .sgap-box .sgap-callout-ordered > li{margin:.26rem 0!important;line-height:1.52!important}
}

/* ========================================================================
   v3.0.2 — compact metadata cards + readable wide tables
   ======================================================================== */
/* Do not allow a global emergency wrap rule to split normal words in data UI. */
.sgap-article .sgcae-article-profile,
.sgap-article .sgcae-article-profile *,
.sgap-article .sgap-table-scroll,
.sgap-article .sgap-table-scroll *{
  word-break:normal;
  overflow-wrap:normal;
  hyphens:none;
}

/* Metadata is a flexible card strip rather than a rigid spreadsheet grid.
   Long Platforms/Article Type values get extra room and no empty grid cells. */
.sgap-article .sgcae-article-profile{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin:0 0 1.45rem;
  padding:.7rem;
  border:1px solid #dbe5ef;
  border-radius:12px;
  background:#f8fbff;
  overflow:visible;
}
.sgap-article .sgcae-profile-item{
  flex:1 1 235px;
  min-width:0;
  min-height:0;
  padding:.72rem .82rem;
  gap:.68rem;
  border:1px solid #e2eaf3;
  border-radius:9px;
  background:#fff;
  align-items:center;
}
.sgap-article .sgcae-profile-platforms,
.sgap-article .sgcae-profile-article-type{
  flex-basis:360px;
}
.sgap-article .sgcae-profile-copy{gap:.16rem;line-height:1.35}
.sgap-article .sgcae-profile-copy strong{font-size:.72em;line-height:1.25}
.sgap-article .sgcae-profile-copy span{
  font-size:.96em;
  line-height:1.45;
  font-weight:700;
  color:#172554;
}

/* One wrapper, horizontal scrolling when a comparison has many columns.
   Tables grow to their natural readable width instead of crushing words. */
.sgap-article .sgap-table-scroll{
  display:block;
  width:100%;
  max-width:100%;
  margin:1.35rem 0 1.55rem;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
  border:1px solid #dbe4ee;
  border-radius:10px;
  background:#fff;
}
.sgap-article .sgap-table-scroll > table{
  width:max-content;
  min-width:100%;
  max-width:none;
  table-layout:auto;
  border-collapse:collapse;
}
.sgap-article .sgap-table-scroll th,
.sgap-article .sgap-table-scroll td{
  min-width:110px;
  max-width:280px;
  white-space:normal;
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
  vertical-align:top;
}
.sgap-article .sgap-table-scroll th:first-child,
.sgap-article .sgap-table-scroll td:first-child{
  min-width:145px;
}
.sgap-article .sgap-table-scroll th:last-child,
.sgap-article .sgap-table-scroll td:last-child{
  min-width:200px;
}
/* Seven or more columns are treated as a wide comparison table. */
.sgap-article .sgap-table-scroll table:has(tr > :nth-child(7)){
  min-width:1040px;
}
.sgap-article .sgap-table-scroll table:has(tr > :nth-child(9)){
  min-width:1220px;
}
@media(max-width:700px){
  .sgap-article .sgcae-article-profile{gap:.55rem;padding:.58rem}
  .sgap-article .sgcae-profile-item,
  .sgap-article .sgcae-profile-platforms,
  .sgap-article .sgcae-profile-article-type{flex:1 1 calc(50% - .55rem)}
  .sgap-article .sgap-table-scroll th,
  .sgap-article .sgap-table-scroll td{padding:.62rem .7rem;min-width:105px}
}
@media(max-width:520px){
  .sgap-article .sgcae-profile-item,
  .sgap-article .sgcae-profile-platforms,
  .sgap-article .sgcae-profile-article-type{flex-basis:100%}
}
