/* Shared neutral application theme; original product artwork is never recolored. */
:root{--ink:#111;--muted:#626262;--line:#e3e3e3;--green:#222;--paper:#f5f5f5;--dark:#1f1f1f;--bg:#f7f7f7;--primary:#222;--accent:#333;color-scheme:light}
body{background:#f7f7f7;color:#111}h1,h2,h3,h4{color:#111}
.sidebar{background:#1b1b1b;color:#eee;border-right-color:#333}.sidebar .muted,.sidebar .navlabel,.sidebar .brand-sub{color:#bbb}.sidebar .nav-item{color:#ccc}.sidebar .nav-item:hover,.sidebar .nav-item.active{background:#333;color:#fff}.sidebar .nav-item.active{box-shadow:inset 3px 0 #ddd}.sidebar .org,.sidebar .user{border-color:#444}.sidebar .demo-note{background:#292929;color:#ccc}.sidebar .avatar{background:#444;color:#fff}.sidebar .brand,.sidebar .platform-brand{background:white;color:#111;border-radius:7px;padding:8px}.sidebar .brand img,.sidebar .platform-brand img{filter:none}.sidebar .count{border-color:#666}
button.primary,button.lime,.cc-btn.primary,.cc-tabs button.active{background:#1f1f1f;border-color:#1f1f1f;color:white}button.primary:hover,button.lime:hover,.cc-btn.primary:hover{background:#383838}.tabs button.selected,.tabs button.active{background:#e9e9e9;color:#111}.tabs button.selected{box-shadow:inset 0 -2px #333}button:hover{background:#f1f1f1}
input:focus,select:focus,textarea:focus{border-color:#666;box-shadow:0 0 0 3px #7772}input[type=checkbox],input[type=radio]{accent-color:#333}:focus-visible{outline:2px solid #555;outline-offset:3px}
thead,th,.cc-table th{background:#f0f0f0;color:#333}tbody tr{background:#fff}.stat strong{color:#111}.progress span,.cc-progress span{background:#555}.cc-card,.cc-panel{box-shadow:0 6px 24px #00000008}.cc-card:hover{border-color:#888;box-shadow:0 8px 24px #00000012}.cc-card.selected{background:#f3f3f3;outline-color:#555}.cc-note,.inline-note{background:#f1f1f1;border-left-color:#888;color:#444}.cc-card svg,.cc-hero-figure,.cc-product-tile img.product{background:#f5f5f5;color:#555}.cc-product-tile.shaded{filter:none;background:#f3f3f3}.cc-product-tile img{filter:none}.cc-badge{background:#ededed;color:#444}.cc-badge.amber{background:#f6eddb;color:#806025}.chip.green{background:#e9f0e9;color:#47654c}.chip.amber{background:#f7efdf;color:#82622d}.chip.red{background:#f7e8e6;color:#98483f}.chip.blue{background:#e8eef5;color:#496482}
dialog::backdrop{background:#1118}@media print{body{background:white;color:#111}.sidebar{display:none}table,th,td{color:#111;border-color:#ccc}}
.sidebar .org img{background:white;border-radius:5px;padding:4px;object-fit:contain}.cc-panel{background:white}

/* Identity assets choose their contrast before first paint. No whole-image inversion. */
.sidebar .platform-brand,.sidebar .brand{background:transparent;padding:0;border-radius:0}.sidebar .org .construck-core-logo{background:transparent;padding:0}.construck-core-logo{display:block;max-width:100%;height:auto;object-fit:contain}.sidebar .platform-brand .construck-core-logo{width:190px;max-height:84px}.logo-light-fallback{display:inline-block;background:white;border-radius:5px;padding:6px}.system-logo-context img{max-width:100%;object-fit:contain}.cc-derived{font-size:12px;color:#555;font-weight:400}.cc-derived output{display:block;font-weight:650;color:#222;font-size:17px}.cc-inline-error{color:#98483f;border-left:3px solid #b76960;padding:8px 12px;background:#f8eeed}.cc-derived-panel{background:#f3f3f3;border:1px solid #ddd;border-radius:12px;padding:18px;margin:18px 0}.cc-derived-panel dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cc-derived-panel dt{font-size:12px;color:#666}.cc-derived-panel dd{margin:0;font-weight:650}.cc-source-label{display:block;font-size:11px;font-weight:400;color:#666}.cc-form-error{padding:10px;color:#98483f}.cc-suggest{background:#f8f0df;padding:10px;border-radius:8px}

/* Original supplied artwork, contained at natural aspect ratio. */
.suite-module-logo{display:block;width:176px;max-width:100%;height:30px;object-fit:contain;object-position:left center;background:#fff;border-radius:4px;padding:4px 6px;box-sizing:content-box}.sidebar .nav-item.has-module-logo{min-height:46px;gap:8px;align-items:center}.sidebar .brand-sub .suite-platform-logo{width:190px;max-width:100%;height:32px;object-fit:contain;background:white;border-radius:4px;padding:4px;box-sizing:border-box}.sidebar .platform-brand .construck-core-logo{background:white;padding:6px;border-radius:5px;width:200px;max-height:88px;box-sizing:border-box}.calc-module-wordmark{width:170px;max-height:38px;object-fit:contain} .sidebar .org{padding:14px}.suite-module-logo+.count{margin-left:auto}

/* Compact Construck branding: use the C mark when the full lockup is too small. */
.construck-compact-logo{width:34px;height:50px;object-fit:contain;flex:0 0 34px}.sidebar .org{display:flex;align-items:center;gap:14px}.sidebar .platform-brand{container-type:inline-size}@container (max-width:150px){.platform-brand .construck-core-logo{content:url("/brand/supplied-20261021/c-black.png");width:34px;height:50px;object-fit:contain}}

.sidebar .org .construck-compact-logo{background:transparent;padding:0;border-radius:0}

/* Global logo contrast rule: choose the matching artwork, otherwise supply a light plate.
   Product photography and 3D renders must never receive logo filters. */
.system-logo-context,.product-logo,.cc-gallery-logo{background:#fff;color:#111;border-radius:5px}
.system-logo-context{display:inline-flex;padding:6px;align-items:center}
.sidebar .platform-brand .construck-core-logo[data-logo-context="DARK"]{background:transparent;padding:0}
.sidebar .org .construck-compact-logo[data-logo-context="DARK"]{background:transparent}
[data-logo-background="dark"]{background:#1b1b1b;color:#fff}
[data-logo-background="light"]{background:#fff;color:#111}
@container (max-width:150px){.platform-brand .construck-core-logo[data-logo-context="DARK"]{content:url("/brand/supplied-20261021/c-white.png");background:transparent}}
@media print{.construck-core-logo[data-logo-context="DARK"]{content:url("/brand/supplied-20261021/systems.png");background:#fff}.construck-compact-logo[data-logo-context="DARK"]{content:url("/brand/supplied-20261021/c-black.png");background:#fff}}

.system-logo-context.logo-dark-variant{background:#1b1b1b;color:white}

.suite-heading-logo{display:block;width:auto;max-width:min(100%,520px);height:64px;object-fit:contain;object-position:left center;background:#fff;border-radius:5px;padding:6px 10px;box-sizing:border-box}@media(max-width:600px){.suite-heading-logo{height:48px;max-width:100%}}

/* Seamless logo contrast: blend image backgrounds into their host surface. */
.system-logo-context,.system-logo-context.logo-dark-variant,.logo-light-fallback,.product-logo,.cc-gallery-logo,.suite-heading-logo,.suite-module-logo,.sidebar .brand-sub .suite-platform-logo,.sidebar .platform-brand .construck-core-logo{background:transparent;border-radius:0}
.suite-heading-logo,.calc-module-wordmark,.system-logo-context img,.product-logo img,.cc-gallery-logo img,.join-logo,.document-brands img{mix-blend-mode:multiply}
.sidebar .suite-module-logo,.sidebar .brand-sub .suite-platform-logo{filter:grayscale(1) invert(1);mix-blend-mode:screen}
.sidebar .construck-core-logo[data-logo-context="DARK"],.sidebar .construck-compact-logo[data-logo-context="DARK"],.system-logo-context.logo-dark-variant img{mix-blend-mode:screen;filter:none}
.system-logo-context.logo-light-fallback img{filter:grayscale(1) invert(1);mix-blend-mode:screen}
@media print{.suite-module-logo,.suite-platform-logo,.system-logo-context img{filter:none!important;mix-blend-mode:multiply!important}}

/* Size visible logo artwork rather than its source canvas. */
.sidebar .nav-item{font-size:14px;min-height:46px}
.sidebar .nav-item.has-module-logo{min-height:46px;overflow:hidden}
.sidebar .suite-menu-art{display:block;position:relative;overflow:hidden;flex:0 1 auto;max-width:100%;height:auto;padding:0}
.sidebar .suite-menu-art .suite-module-logo{position:absolute;display:block;max-width:none;max-height:none;padding:0;object-fit:fill}

/* Calculator owns the available workspace; no unused AI-panel column. */
body.calc-workspace .main{margin-right:0;min-width:0}body.calc-workspace .content{max-width:none;width:100%;padding:18px clamp(16px,2vw,32px) 20px}body.calc-workspace #construckcalc-frame{width:100%!important;height:calc(100vh - 118px)!important;height:calc(100dvh - 118px)!important;min-height:480px!important}body.calc-workspace .topbar{padding-left:clamp(16px,2vw,32px);padding-right:clamp(16px,2vw,32px)}@media(max-width:700px){body.calc-workspace .content{padding:12px 8px}body.calc-workspace #construckcalc-frame{height:calc(100vh - 94px)!important;height:calc(100dvh - 94px)!important;min-height:360px!important}}

.sidebar .suite-menu-art{max-height:32px}.sidebar .suite-menu-art .suite-module-logo{filter:brightness(0) invert(1);mix-blend-mode:normal}.suite-heading-logo{padding:0;background:transparent}

.system-logo-context{display:block}.cc-gallery-logo .system-logo-context{width:100%}.system-logo-context>img.logo{display:block;width:min(100%,260px);height:42px;max-height:42px;object-fit:contain;object-position:left center;margin:0}.cc-product-tile .system-logo-context{margin:20px 0}.cc-gallery-logo{height:42px}

.suite-breadcrumb-logo{display:inline-block;vertical-align:middle;height:24px;width:auto;max-width:176px;object-fit:contain}.suite-card-logo{display:block;height:32px;max-width:180px;object-fit:contain;object-position:left center}

/* The legacy Company wordmark has an opaque white canvas: invert it to
   black and blend that canvas into the sidebar while retaining white ink. */
.sidebar .suite-company-art .suite-module-logo{filter:grayscale(1) invert(1);mix-blend-mode:screen}

.sidebar .platform-brand .distributor-suite-brand{display:block;width:100%;max-width:200px;height:auto;filter:brightness(0) invert(1);background:transparent;padding:0}

/* Match the visible 32px C in adjacent menu wordmarks; retain text labels. */
.sidebar .suite-menu-monogram{display:block;position:relative;overflow:hidden;flex:0 0 20.48px;width:20.48px;height:32px}
.sidebar .suite-c-monogram{position:absolute;display:block;width:117.95745%;height:111.54684%;left:-9.02128%;top:-5.77342%;max-width:none;max-height:none;padding:0;background:transparent;filter:none;mix-blend-mode:normal}
.sidebar .suite-menu-label{font-size:14px;font-weight:600;line-height:1.3;text-align:left}

/* Keep the corrected calculator wordmark at the same visible C height. */
.sidebar [data-view="ConstruckCalc"] .suite-menu-art{flex-shrink:0;max-width:none}

/* Shared render containment: suites do not load calculator-only CSS. */
.system-render-stage{display:block;position:relative;overflow:hidden;width:100%;height:220px;min-height:220px;background:transparent;border-radius:12px;flex-shrink:0;isolation:isolate}
.system-render-stage img{display:block;width:100%;height:100%;object-fit:contain}
.system-render-product{height:300px;min-height:300px}
.system-render-mini{width:90px;height:80px;min-height:80px}
.system-catalogue-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:24px;align-items:stretch}
.system-catalogue-card{display:flex;flex-direction:column;min-width:0;padding:24px;gap:14px;overflow:hidden}
.system-catalogue-logo{height:76px;display:flex;align-items:center;justify-content:flex-start;flex-shrink:0}
.system-catalogue-logo img{display:block;max-width:100%;width:220px;max-height:76px;object-fit:contain;object-position:left center}
.system-catalogue-card h2{font-size:18px;line-height:1.4;min-height:2.8em;margin:0;overflow-wrap:anywhere}
.system-catalogue-card p{margin:0;line-height:1.6}
.system-catalogue-card .small{font-size:12px}
.system-catalogue-description{flex:1}
.system-catalogue-card>.btn{display:block;align-self:stretch;text-align:center;white-space:normal}
.system-render-empty{display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box;color:#767676;font-size:13px;text-align:center;background:#f7f7f7}
.system-catalogue-models{display:flex;flex-wrap:wrap;gap:8px}
.system-catalogue-models a{font-size:12px;padding:6px 9px;border:1px solid #ddd;border-radius:5px;color:#333}
@media(max-width:600px){.system-catalogue-grid{grid-template-columns:minmax(0,1fr);gap:16px}.system-catalogue-card{padding:20px}}

/* Distributor identity: one open block, consistent spacing, current tenant branding. */
.distributor-suite .sidebar .platform-brand{margin-bottom:0}
.distributor-suite .sidebar .org{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;margin:24px 0 20px;padding:0 8px 12px;border:0;border-radius:0;background:transparent}
.distributor-suite .distributor-logo-block{display:flex;justify-content:center;width:100%;min-width:0}
.distributor-suite .sidebar .org .distributor-header-logo{display:block;width:min(170px,100%);height:80px;max-width:100%;object-fit:contain;object-position:center;padding:0;background:transparent;border:0;border-radius:0}
.distributor-suite .distributor-identity{width:100%;text-align:center;line-height:1.5}.distributor-suite .distributor-identity b{display:block;font-size:13px}.distributor-suite .distributor-identity .small{font-size:12px}
.distributor-suite .sidebar .dashboard-distributor-logo{display:block;flex:0 0 30px;width:30px;height:30px;object-fit:contain;border:0;background:transparent;padding:0;border-radius:0}
.pro-brand-logo{display:block;width:240px;max-width:100%;height:48px;object-fit:contain;object-position:left center;margin:0 0 14px}
.cc-quick-check-card{margin-top:24px;padding:24px}.cc-quick-check-card p{max-width:65ch;line-height:1.6}.cc-quick-check-card .pro-brand-logo{height:40px;width:210px}
.live-preview-entry{margin-top:24px}.live-preview-entry em{display:block;font-size:13px;line-height:1.6;margin-bottom:14px}

/* Visible controls for the current signed-in account. */
.suite-account{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;border:1px solid #ccc;border-radius:7px;padding:7px 10px;background:#fff;color:#222;max-width:100%;font-size:12px}
.suite-account-email{overflow-wrap:anywhere;max-width:220px}.suite-account button{border:1px solid #777;color:#222;background:#f4f4f4;white-space:nowrap}.suite-account [role=status]:empty{display:none}
.suite-has-account:not(:has(.ai-workspace)) .main{margin-right:0;min-width:0}
.suite-has-account .topbar{height:auto;min-height:84px;flex-wrap:wrap;gap:8px;padding-top:10px;padding-bottom:10px}.suite-has-account .top-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;max-width:100%;margin-left:auto}.suite-has-account .suite-account{order:1;margin-left:auto}
@media(max-width:760px){.suite-account-email{max-width:165px}.suite-has-account .topbar{min-height:68px}.suite-account{gap:5px 8px;padding:6px 8px}}

/* Keep the removable exercise separate from the existing directory cards. */
[data-external-live-test]{margin-bottom:24px}

/* Company navigation follows the active distributor profile, without manufacturer filters. */
.distributor-suite .sidebar .distributor-company-menu-logo{display:block;width:32px;height:32px;flex:0 0 32px;object-fit:contain;object-position:left center;filter:none;background:transparent}
.distributor-suite .sidebar [data-view="Company"] .suite-menu-label{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4;min-width:0}

.distributor-suite .sidebar [data-view="Company"].has-module-logo{gap:6px}

/* Keep the full navigation scrollable and bottom controls visible at every height. */
.sidebar{height:100dvh;box-sizing:border-box;overflow:hidden;padding-bottom:max(14px,env(safe-area-inset-bottom))}
.sidebar>.sidebar-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin}
.sidebar>.side-bottom{flex:0 0 auto;margin-top:12px;padding-top:8px;border-top:1px solid #444;background:inherit}
.sidebar>.side-bottom .nav-item{min-height:40px;margin-bottom:3px}
#team-members .docrow{flex-wrap:wrap;overflow-wrap:anywhere}

.cc-quick-logo-button{display:inline-flex;margin-bottom:14px;align-items:center;padding:14px 18px;border:1px solid #c6d4ca;border-radius:12px;background:#f5f8f5;cursor:pointer;transition:background .15s,border-color .15s}.cc-quick-logo-button:hover{background:#e5eee6;border-color:#6b8874}.cc-quick-logo-button:focus-visible{outline:3px solid #254e3f;outline-offset:3px}.cc-quick-check-card .cc-quick-logo-button .pro-brand-logo{margin:0}

/* Shared action alignment: keep labels intact; wrap the action row before its text. */
:is(a.btn,.cc-btn,.button,button[type="submit"],.actions>button,.top-actions>button,.toolbar>button,.cc-tabs>button){display:inline-flex;align-items:center;justify-content:center;gap:8px;vertical-align:middle;line-height:1.35;text-align:center;white-space:nowrap;word-break:normal;overflow-wrap:normal;flex-shrink:0;max-width:100%;text-decoration:none}
:is(.actions,.top-actions,.toolbar,.cc-row,.cc-tabs,.next-actions,.ix-actions,.ps-register-actions){flex-wrap:wrap;align-items:center;row-gap:12px}
:is(a.btn,.cc-btn,.button,button[type="submit"]) :is(svg,.icon){flex-shrink:0}
@media(max-width:600px){:is(a.btn,.cc-btn,.button,button[type="submit"],.actions>button,.toolbar>button){white-space:normal;overflow-wrap:break-word;min-width:0;max-width:100%}}

.cc-quick-dialog{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:#f7f7f7}.cc-quick-dialog iframe{width:100%;height:100%;border:0;display:block}.cc-quick-dialog iframe[hidden]{display:none}.cc-quick-loading{padding:28px}

/* Clean shared header and an on-demand record search drawer. */
#app>.main{margin-right:0}
.top-actions{align-items:center}.topbar .row:empty{display:none}
.sidebar .org{align-items:center}.distributor-identity{text-align:center;width:100%}
#ai-assistant.ai-workspace{position:fixed;inset:84px 0 0 auto;width:min(380px,100vw);margin:0;min-height:0;z-index:1100;background:#fff;box-shadow:-8px 0 30px #0002;border-left:1px solid #ddd;overflow:auto}
#ai-assistant .ai-title{display:flex;flex-wrap:wrap;align-items:center;gap:10px}#ai-assistant .ai-title button{margin-left:auto}
button.ai-jump{display:inline-block;cursor:pointer;background:#fff}
@media(max-width:760px){#ai-assistant.ai-workspace{top:68px}}

/* Phone headers: one aligned toolbar row, then one full-width account row. */
@media(max-width:760px){
 body:not(.role-workspace).suite-has-account .topbar{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:8px;padding:12px 16px;min-height:0}
 body:not(.role-workspace).suite-has-account .topbar>.row{grid-column:1;grid-row:1;margin:0}
 body:not(.role-workspace).suite-has-account .topbar .mobile-menu{width:44px;height:44px;padding:10px}
 body:not(.role-workspace).suite-has-account .top-actions{display:contents}
 body:not(.role-workspace).suite-has-account .top-actions>.muted{display:none}
 body:not(.role-workspace).suite-has-account .top-actions>:not(.suite-account):not(.muted){grid-row:1;min-width:0;margin:0;font-size:12px;padding:8px;min-height:44px}
 body:not(.role-workspace).suite-has-account .top-actions>[data-record-search]{justify-self:stretch}
 body:not(.role-workspace).suite-has-account .suite-account{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%;margin:0;gap:8px;padding:6px 8px}
 body:not(.role-workspace).suite-has-account .suite-account-email{min-width:0;max-width:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal;font-size:12px}
 body:not(.role-workspace).suite-has-account .suite-account [role=status]{grid-column:1/-1}
}

/* --- High-Performance Realtime Smooth Scrolling & Hardware Acceleration --- */
html {
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
}

body {
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
}

.sidebar {
  will-change: transform;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.main {
  will-change: transform;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.system-catalogue-grid {
  contain: content;
  content-visibility: auto;
}

.system-catalogue-card {
  contain: layout style paint;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
  backface-visibility: hidden;
  will-change: transform;
}

.system-render-stage {
  transform: translateZ(0);
  backface-visibility: hidden;
}

.system-render-stage img {
  transform: translateZ(0);
  will-change: transform;
}

/* Custom smooth modern scrollbars across all browsers */
* {
  scrollbar-width: thin;
  scrollbar-color: #c5c5c5 transparent;
}
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
::-webkit-scrollbar-track {
  background: transparent;
}
::-webkit-scrollbar-thumb {
  background: #c5c5c5;
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: #9e9e9e;
}
