/* Novalis visual identity. Source/provenance: docs/novalis-branding.md.
   Screen branding only: no navigation, dimensions, permissions or data changes. */
@font-face{font-family:"Source Sans Pro";src:url("/static/fonts/source-sans-pro/SourceSansPro-Light.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans Pro";src:url("/static/fonts/source-sans-pro/SourceSansPro-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans Pro";src:url("/static/fonts/source-sans-pro/SourceSansPro-Semibold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans Pro";src:url("/static/fonts/source-sans-pro/SourceSansPro-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans Pro";src:url("/static/fonts/source-sans-pro/SourceSansPro-Black.woff2") format("woff2");font-weight:900;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans Pro";src:url("/static/fonts/source-sans-pro/SourceSansPro-It.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
:root{
  /* PDF-rendered digital approximations, not official Pantone HEX definitions. */
  --novalis-lime:#c3d600;
  --novalis-gray-dark:#63656a;
  --novalis-gray-light:#9fa2a3;
  --novalis-ink:#292c30;
  --novalis-font:"Source Sans Pro","Segoe UI",Arial,sans-serif;
}
@media screen{
  body,body.nv-unified{font-family:var(--novalis-font)!important}
  :is(button,input,select,textarea){font-family:var(--novalis-font)}
  :is(.nv-unified,.employee-wall-shell) :is(h1,h2,h3,h4,h5,h6,p,label,button,input,select,textarea){font-family:var(--novalis-font)}
  /* Exact N silhouette from the existing corporate artwork, not a typed glyph.
     The SVG embeds the original pixels; it has no external asset dependency. */
  .oauth-brand,.desktop-n,
  .nv-unified :is(.admin-brand-mark,.nw-brand-mark,.nv-shell-brand b),
  .nv-unified .shell>aside .brand-mark{
    background:transparent url("/static/images/novalis-n.svg") center/contain no-repeat!important;
    transform:none!important;box-shadow:none!important;border-radius:0!important;
    color:transparent!important;font-size:0!important;overflow:hidden;
    min-width:32px;min-height:34px;
  }
  .nv-unified :is(.admin-brand-mark,.nw-brand-mark)>span{visibility:hidden}
  .nv-unified :is(.admin-brand-mark,.nw-brand-mark)::after{content:none!important}
  .nv-unified :is(.sidebar .brand,.identity-brand)::before,
  .nv-unified .nv-existing-side :is(.cmms-brand,.qc-brand,.nw-brand,.hub-brand)::before{
    content:""!important;display:inline-block;width:36px;height:38px;flex:none;
    background:transparent url("/static/images/novalis-n.svg") center/contain no-repeat!important;
    transform:none!important;padding:0!important;margin-right:10px;
  }
  /* App identity takes the brand palette; safety/chart legends stay semantic. */
  .nv-unified .nw-sidebar{--nw-citron:var(--novalis-lime);--nw-pine-950:var(--novalis-gray-dark)}
  .nv-unified .shell>aside{background:var(--novalis-gray-dark)}
  .nv-unified :is(.cmms-btn.primary,.nw-btn-primary,.qc-btn-primary,.btn-primary,.admin-button.is-primary,.button-primary){background:var(--novalis-lime)!important;color:var(--novalis-ink)!important;border-color:var(--novalis-lime)!important}
  /* The standalone plant schematic retains its layout and process colors. */
  #app:has(#stage){--f-body:var(--novalis-font);--f-display:var(--novalis-font);--accent:var(--novalis-lime);--accent-ink:var(--novalis-ink)}
  #app:has(#stage) :is(h1,h2,h3,.route-name){font-family:var(--novalis-font)}
}
