/* IYABOKO Five-Product Visual Finish v1.0
 * Finishing-only layer: one font, one canvas geometry, adaptive black/white ink.
 * It intentionally does not redesign product cards, controls, workflows or engine-specific layouts.
 */
:root{
  --iyb-finish-font:"Inter","Aptos","Segoe UI Variable Text","Segoe UI","SF Pro Text","Helvetica Neue",Arial,sans-serif;
  --iyb-finish-display:"Inter","Aptos Display","Segoe UI Variable Display","Segoe UI","SF Pro Display","Helvetica Neue",Arial,sans-serif;
  --iyb-finish-mono:"SFMono-Regular","Cascadia Code","Roboto Mono",Consolas,"Liberation Mono",monospace;
  --iyb-finish-canvas:1760px;
  --iyb-finish-gutter:clamp(14px,2.2vw,40px);
  --iyb-finish-gutter-mobile:10px;
  --iyb-finish-black:#07090c;
  --iyb-finish-white:#ffffff;
  --iyb-finish-muted-dark:#c6d0d7;
  --iyb-finish-muted-light:#3f4d58;
}

/* One type family across all IYABOKO-managed product/workspace surfaces. */
body.iyb-five-product-ui,
body.iyb-five-product-ui :where([class^="iyb-"],[class*=" iyb-"],[class^="iybc3"],[class*=" iybc3"],.iybs),
.iyb-ops-embedded-body :where([class^="iyb-"],[class*=" iyb-"],[class^="iybc3"],[class*=" iybc3"],.iybs){
  font-family:var(--iyb-finish-font)!important;
  font-kerning:normal;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
body.iyb-five-product-ui :where([class^="iyb-"],[class*=" iyb-"],[class^="iybc3"],[class*=" iybc3"],.iybs) :where(h1,h2,h3,h4,h5,h6),
.iyb-ops-embedded-body :where([class^="iyb-"],[class*=" iyb-"],[class^="iybc3"],[class*=" iybc3"],.iybs) :where(h1,h2,h3,h4,h5,h6){
  font-family:var(--iyb-finish-display)!important;
  font-weight:750;
  font-kerning:normal;
}
body.iyb-five-product-ui :where(code,kbd,samp,pre,[class*="receipt"],[class*="terminal"]),
.iyb-ops-embedded-body :where(code,kbd,samp,pre,[class*="receipt"],[class*="terminal"]){font-family:var(--iyb-finish-mono)!important}
body.iyb-five-product-ui :where(button,input,select,textarea),
.iyb-ops-embedded-body :where(button,input,select,textarea){font-family:var(--iyb-finish-font)!important}

/* Same professional application canvas on standalone product pages. */
body.iyb-five-product-ui.iyb-technology-page :where(.entry-content,.wp-block-post-content,.page-content) > :where(
  [class^="iyb-"],[class*=" iyb-"],[class^="iybc3"],[class*=" iybc3"],.iybs
){
  box-sizing:border-box!important;
  width:min(var(--iyb-finish-canvas),calc(100% - (2 * var(--iyb-finish-gutter))))!important;
  max-width:var(--iyb-finish-canvas)!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
  left:auto!important;
  right:auto!important;
  transform:none!important;
}
/* Embedded rooms use the same geometry but fill the Company Operations Centre stage. */
.iyb-ops-embedded-body > :where([class^="iyb-"],[class*=" iyb-"],[class^="iybc3"],[class*=" iybc3"],.iybs){
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* Sentinel and SACG top-level shells sometimes bring their own historical max-widths. */
body.iyb-five-product-ui :where(
  .iyb-s36,.iyb-s36eng,.iyb-ops-shell,.iyb-robotics-shell,.iyb-sbo-shell,.iyb-mi,.iyb-ml-life,
  .iyb-mege,.iyb-iosts-public,.iyb-iosts-labs,.iyb-multiastro,.iyb-sacg-public,.iyb-sacg-enterprise,
  .iyb-sacg-launch-page,.iyb-sacg-hp,.iybs
){max-width:var(--iyb-finish-canvas)!important}

/* Adaptive ink contract. The existing contrast guard assigns iyb-auto-dark/light from computed backgrounds. */
body.iyb-five-product-ui.iyb-global-contrast :where(.iyb-auto-dark,[data-iyb-surface="dark"],.iyb-surface-dark),
body.iyb-five-product-admin.iyb-global-contrast :where(.iyb-auto-dark,[data-iyb-surface="dark"],.iyb-surface-dark){color:var(--iyb-finish-white)!important}
body.iyb-five-product-ui.iyb-global-contrast :where(.iyb-auto-dark,[data-iyb-surface="dark"],.iyb-surface-dark) :where(h1,h2,h3,h4,h5,h6,p,span,small,strong,b,em,i,li,dt,dd,label,legend,summary,caption,figcaption,td,th),
body.iyb-five-product-admin.iyb-global-contrast :where(.iyb-auto-dark,[data-iyb-surface="dark"],.iyb-surface-dark) :where(h1,h2,h3,h4,h5,h6,p,span,small,strong,b,em,i,li,dt,dd,label,legend,summary,caption,figcaption,td,th){
  color:var(--iyb-finish-white)!important;
  -webkit-text-fill-color:var(--iyb-finish-white)!important;
}
body.iyb-five-product-ui.iyb-global-contrast :where(.iyb-auto-light,[data-iyb-surface="light"],.iyb-surface-light),
body.iyb-five-product-admin.iyb-global-contrast :where(.iyb-auto-light,[data-iyb-surface="light"],.iyb-surface-light){color:var(--iyb-finish-black)!important}
body.iyb-five-product-ui.iyb-global-contrast :where(.iyb-auto-light,[data-iyb-surface="light"],.iyb-surface-light) :where(h1,h2,h3,h4,h5,h6,p,span,small,strong,b,em,i,li,dt,dd,label,legend,summary,caption,figcaption,td,th),
body.iyb-five-product-admin.iyb-global-contrast :where(.iyb-auto-light,[data-iyb-surface="light"],.iyb-surface-light) :where(h1,h2,h3,h4,h5,h6,p,span,small,strong,b,em,i,li,dt,dd,label,legend,summary,caption,figcaption,td,th){
  color:var(--iyb-finish-black)!important;
  -webkit-text-fill-color:var(--iyb-finish-black)!important;
}

/* Common known product shells: dark areas use white text, light panels use black text. */
body.iyb-five-product-ui :where(.iyb-ops-sidebar,.iyb-ops-hero,.iyb-robotics-hero,.iyb-sacg-launch-hero,.iyb-sacg-admin-hero,.iyb-sbo-hero,.iyb-sbo-topbar),
body.iyb-five-product-admin :where(.iyb-ops-sidebar,.iyb-ops-hero,.iyb-robotics-hero,.iyb-sacg-launch-hero,.iyb-sacg-admin-hero,.iyb-sbo-hero,.iyb-sbo-topbar){color:var(--iyb-finish-white)!important}
body.iyb-five-product-ui :where(.iyb-ops-sidebar,.iyb-ops-hero,.iyb-robotics-hero,.iyb-sacg-launch-hero,.iyb-sacg-admin-hero,.iyb-sbo-hero,.iyb-sbo-topbar) :where(h1,h2,h3,h4,h5,h6,p,span,small,strong,b,li,label),
body.iyb-five-product-admin :where(.iyb-ops-sidebar,.iyb-ops-hero,.iyb-robotics-hero,.iyb-sacg-launch-hero,.iyb-sacg-admin-hero,.iyb-sbo-hero,.iyb-sbo-topbar) :where(h1,h2,h3,h4,h5,h6,p,span,small,strong,b,li,label){color:var(--iyb-finish-white)!important;-webkit-text-fill-color:var(--iyb-finish-white)!important}
body.iyb-five-product-ui :where(.iyb-ops-shell .iyb-ops-topbar,.iyb-ops-shell .iyb-ops-metrics article,.iyb-ops-shell .iyb-ops-card,.iyb-ops-shell .iyb-ops-link-card),
body.iyb-five-product-admin :where(.iyb-ops-shell .iyb-ops-topbar,.iyb-ops-shell .iyb-ops-metrics article,.iyb-ops-shell .iyb-ops-card,.iyb-ops-shell .iyb-ops-link-card){color:var(--iyb-finish-black)!important}

/* IYABOKO admin command rooms: same font and same canvas, without touching normal WordPress admin pages. */
body.iyb-five-product-admin #wpbody-content{
  font-family:var(--iyb-finish-font)!important;
}
body.iyb-five-product-admin #wpbody-content > :where(.wrap,[class^="iyb-"],[class*=" iyb-"],.iybs){
  box-sizing:border-box!important;
  width:min(var(--iyb-finish-canvas),calc(100% - (2 * var(--iyb-finish-gutter))))!important;
  max-width:var(--iyb-finish-canvas)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body.iyb-five-product-admin #wpbody-content :where([class^="iyb-"],[class*=" iyb-"],.iybs,button,input,select,textarea){font-family:var(--iyb-finish-font)!important}

/* Keep form text unmistakable on light controls. Dark product editors with stronger product CSS remain authoritative. */
body.iyb-five-product-ui :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea),
body.iyb-five-product-admin :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){
  color:var(--iyb-finish-black);
}
body.iyb-five-product-ui :where(input,textarea)::placeholder,
body.iyb-five-product-admin :where(input,textarea)::placeholder{color:#55636e;opacity:1}

@media(max-width:782px){
  :root{--iyb-finish-gutter:var(--iyb-finish-gutter-mobile)}
  body.iyb-five-product-ui.iyb-technology-page :where(.entry-content,.wp-block-post-content,.page-content) > :where([class^="iyb-"],[class*=" iyb-"],[class^="iybc3"],[class*=" iybc3"],.iybs),
  body.iyb-five-product-admin #wpbody-content > :where(.wrap,[class^="iyb-"],[class*=" iyb-"],.iybs){width:calc(100% - (2 * var(--iyb-finish-gutter-mobile)))!important}
}

/* RC278.8.47 — Sentinel Enterprise full-width finishing.
 * Sentinel enterprise surfaces may use the full application viewport while preserving
 * bounded reading widths inside hero copy, forms and tables. This affects geometry only.
 */
:root{
  --iyb-sentinel-enterprise-gutter:clamp(10px,1.35vw,24px);
}
body.iyb-sentinel-enterprise-fullwidth.iyb-technology-page :where(.entry-content,.wp-block-post-content,.page-content){
  width:100%!important;
  max-width:none!important;
  padding-left:0!important;
  padding-right:0!important;
}
body.iyb-sentinel-enterprise-fullwidth.iyb-technology-page :where(.entry-content,.wp-block-post-content,.page-content) > :where(
  .iyb-ops-shell,.iyb-sbo,.iyb-unified-proto,.iyb-s36,.iyb-s36eng
){
  width:calc(100% - (2 * var(--iyb-sentinel-enterprise-gutter)))!important;
  max-width:none!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
/* Sentinel Business/Enterprise OS historically used an 1180px inner rail. On enterprise
 * pages, expand that rail to the same viewport-aware canvas while keeping its own sections.
 */
body.iyb-sentinel-enterprise-fullwidth :where(.iyb-sbo-wide){
  width:calc(100% - (2 * var(--iyb-sentinel-enterprise-gutter)))!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
/* Internal Operations Workspace and Unified Enterprise Platform are primary enterprise apps. */
body.iyb-sentinel-enterprise-fullwidth :where(.iyb-ops-shell,.iyb-unified-proto){
  width:100%!important;
  max-width:none!important;
}
/* Use additional desktop real estate without changing the information architecture. */
@media(min-width:1600px){
  body.iyb-sentinel-enterprise-fullwidth .iyb-ops-shell{grid-template-columns:272px minmax(0,1fr)}
  body.iyb-sentinel-enterprise-fullwidth .iyb-ops-link-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
  body.iyb-sentinel-enterprise-fullwidth .iyb-sbo-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
  body.iyb-sentinel-enterprise-fullwidth .iyb-sbo-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}
}
/* IYABOKO Sentinel admin/operations pages use all available wp-admin content width. */
body.iyb-five-product-admin.iyb-sentinel-enterprise-fullwidth #wpbody-content > :where(.wrap,[class^="iyb-"],[class*=" iyb-"]){
  width:calc(100% - (2 * var(--iyb-sentinel-enterprise-gutter)))!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body.iyb-five-product-admin.iyb-sentinel-enterprise-fullwidth :where(.iyb-ops-shell,.iyb-sbo,.iyb-unified-proto,.iyb-sbo-wide){
  max-width:none!important;
}
@media(max-width:782px){
  :root{--iyb-sentinel-enterprise-gutter:8px}
  body.iyb-sentinel-enterprise-fullwidth.iyb-technology-page :where(.entry-content,.wp-block-post-content,.page-content) > :where(
    .iyb-ops-shell,.iyb-sbo,.iyb-unified-proto,.iyb-s36,.iyb-s36eng
  ),
  body.iyb-five-product-admin.iyb-sentinel-enterprise-fullwidth #wpbody-content > :where(.wrap,[class^="iyb-"],[class*=" iyb-"]){
    width:calc(100% - (2 * var(--iyb-sentinel-enterprise-gutter)))!important;
  }
  body.iyb-sentinel-enterprise-fullwidth .iyb-sbo-wide{width:calc(100% - 16px)!important}
}

/* RC278.8.47 — Physical Engineering Room explicit ink hardening.
 * This is a readability-only overlay. It does not change room structure, engine logic,
 * authority, device data, controls or the signed C3 runtime component.
 * The room's own --phy-* and --dw-* variables remain authoritative for light/dark mode.
 */
body.iyb-five-product-ui .iyb-phy-room{
  color:var(--phy-text)!important;
}
/* Main room, side wing, detail wing, small programme/profile/sector surfaces. */
body.iyb-five-product-ui .iyb-phy-room :where(
  .iyb-phy-hero,.iyb-phy-boundary,.iyb-phy-stats article,.iyb-phy-record-grid article,
  .iyb-phy-workspace>aside,.iyb-phy-detail,.iyb-phy-profile-facts article,
  .iyb-phy-profile-card,.iyb-phy-sector-card,.iyb-phy-gate,.iyb-phy-boundary-note
) :where(h1,h2,h3,h4,h5,h6,p,span,small,strong,b,em,i,li,dt,dd,label,legend,summary,caption,figcaption,td,th,a){
  color:var(--phy-text)!important;
  -webkit-text-fill-color:var(--phy-text)!important;
}
/* Keep secondary information readable but visually subordinate. */
body.iyb-five-product-ui .iyb-phy-room :where(
  .iyb-phy-hero>div>p:last-child,.iyb-phy-stats span,.iyb-phy-record-grid span,
  .iyb-phy-legend,.iyb-phy-program-head p,.iyb-phy-progress span,
  .iyb-phy-gate strong,.iyb-phy-program-boundary p,.iyb-phy-boundary-note p,
  .iyb-phy-profile-facts span,.iyb-phy-profile-card li,.iyb-phy-directory-head p,
  .iyb-phy-sector-card span
){
  color:var(--phy-muted)!important;
  -webkit-text-fill-color:var(--phy-muted)!important;
}
/* Preserve the room's intentional accent hierarchy. */
body.iyb-five-product-ui .iyb-phy-room :where(
  .iyb-phy-kicker,.iyb-phy-boundary strong,.iyb-phy-stats strong,.iyb-phy-record-grid strong,
  .iyb-phy-progress strong,.iyb-phy-profile-facts strong,.iyb-phy-sector-card h3
){
  color:var(--phy-accent)!important;
  -webkit-text-fill-color:var(--phy-accent)!important;
}
body.iyb-five-product-ui .iyb-phy-room :where(select,input,textarea){
  color:var(--phy-text)!important;
  -webkit-text-fill-color:var(--phy-text)!important;
}
/* The embedded Device/C3 workspace owns a second palette. Respect that palette explicitly
 * so every small card/wing remains white-on-dark and black-on-light. */
body.iyb-five-product-ui .iyb-phy-room .iyb-dw,
body.iyb-five-product-ui .iyb-phy-room .iyb-dw :where(
  h1,h2,h3,h4,h5,h6,p,span,small,strong,b,em,i,li,dt,dd,label,legend,summary,caption,figcaption,td,a
){
  color:var(--dw-text)!important;
  -webkit-text-fill-color:var(--dw-text)!important;
}
body.iyb-five-product-ui .iyb-phy-room .iyb-dw :where(
  .iyb-dw-head p,.iyb-dw-card p,.iyb-dw-card small,.iyb-dw-stat span,
  .iyb-dw-section-head p,.iyb-dw-form label,.iyb-dw-step p,.iyb-dw-list,
  .iyb-dw-build-copy p,.iyb-dw-health
){
  color:var(--dw-muted)!important;
  -webkit-text-fill-color:var(--dw-muted)!important;
}
/* Light CTA surfaces always use dark ink, including "Open C3 Operations Center". */
body.iyb-five-product-ui .iyb-phy-room .iyb-dw :where(button,.iyb-dw-button),
body.iyb-five-product-ui .iyb-phy-room .iyb-dw .iyb-dw-tabs button.is-active{
  color:#06131f!important;
  -webkit-text-fill-color:#06131f!important;
}
/* Explicitly dark secondary/danger controls keep light ink. */
body.iyb-five-product-ui .iyb-phy-room .iyb-dw :where(button.secondary,.iyb-dw-button.secondary,button.danger),
body.iyb-five-product-ui .iyb-phy-room .iyb-dw .iyb-dw-tabs button:not(.is-active){
  color:var(--dw-text)!important;
  -webkit-text-fill-color:var(--dw-text)!important;
}
body.iyb-five-product-ui .iyb-phy-room .iyb-dw :where(input,select,textarea){
  color:var(--dw-text)!important;
  -webkit-text-fill-color:var(--dw-text)!important;
}

/* RC278.8.51 — C3 Backbone embedded/device contrast contract.
 * Presentation only. C3 runtime, authority, evidence and actuation boundaries are unchanged.
 * Dark C3 device surfaces use white ink; intentionally light/white controls use black ink.
 */
.iyb-c3b.iyb-c3b-embed,
.iyb-c3b.iyb-c3b-embed .iyb-c3b-embed-head,
.iyb-c3b.iyb-c3b-embed .iyb-c3b-mini-status,
.iyb-c3b.iyb-c3b-embed form,
.iyb-c3b.iyb-c3b-embed .iyb-c3b-embed-result {
  color-scheme: dark;
  color:#fff!important;
}
.iyb-c3b.iyb-c3b-embed :where(h1,h2,h3,h4,h5,h6,p,label,legend,strong,b,em,li,dt,dd,summary),
.iyb-c3b.iyb-c3b-embed .iyb-c3b-stat strong,
.iyb-c3b.iyb-c3b-embed .iyb-c3b-stat span,
.iyb-c3b.iyb-c3b-embed .iyb-c3b-decision strong,
.iyb-c3b.iyb-c3b-embed .iyb-c3b-decision span {
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
}
.iyb-c3b.iyb-c3b-embed .iyb-c3b-kicker{color:#8be8ff!important;-webkit-text-fill-color:#8be8ff!important}
.iyb-c3b.iyb-c3b-embed .iyb-c3b-embed-head>a,
.iyb-c3b.iyb-c3b-embed button[type="submit"]{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
/* Light surfaces/controls inside this embedded room must use black ink. */
.iyb-c3b.iyb-c3b-embed :where(.iyb-surface-light,.iyb-auto-light,[data-iyb-surface="light"],.has-white-background-color,.has-base-background-color){
  color:#0a0d10!important;
  -webkit-text-fill-color:#0a0d10!important;
}
.iyb-c3b.iyb-c3b-embed :where(.iyb-surface-light,.iyb-auto-light,[data-iyb-surface="light"],.has-white-background-color,.has-base-background-color) :where(h1,h2,h3,h4,h5,h6,p,span,small,label,strong,b,a,li,td,th){
  color:#0a0d10!important;
  -webkit-text-fill-color:#0a0d10!important;
}
.iyb-c3b.iyb-c3b-embed :where(input,textarea,select).iyb-light-control,
.iyb-c3b.iyb-c3b-embed .iyb-light-control :where(input,textarea,select){
  background:#fff!important;
  color:#0a0d10!important;
  -webkit-text-fill-color:#0a0d10!important;
  caret-color:#0a0d10!important;
}
.iyb-c3b.iyb-c3b-embed :where(input,textarea).iyb-light-control::placeholder,
.iyb-c3b.iyb-c3b-embed .iyb-light-control :where(input,textarea)::placeholder{color:#4b5563!important;opacity:1!important}
