/* Application frame and product workspaces. */
.workspace-sidebar { position: fixed; inset: 0 auto 0 0; width: 214px; background: var(--sidebar); border-right: 1px solid #eeeee8; z-index: 40; display: flex; flex-direction: column; }
.workspace-brand { display: flex; gap: 10px; align-items: center; padding: 25px 20px 24px; text-decoration: none; }
.brand-mark { display: grid; place-items: center; width: 30px; height: 32px; background: #353a32; color: #fff; border-radius: 5px; font: 600 18px Georgia,serif; }
.workspace-brand strong { display: block; font-size: 12px; font-weight: 650; letter-spacing: 1px; }
.workspace-brand small { display: block; color: #93978b; font-size: 11px; margin-top: 2px; }
.workspace-navigation { padding: 4px 10px; overflow: auto; }
.nav-group { margin-bottom: 25px; }.nav-group-label { margin: 0 10px 8px; font-size: 11px; font-weight: 500; color: #a0a396; }
.workspace-navigation .nav-link { display: flex; gap: 10px; align-items: center; padding: 8px 10px; color: #73796a; font-size: 13px; border-radius: 4px; margin: 2px 0; }
.workspace-navigation .nav-link:hover { background: #eeefe8; color: #363d30; }
.workspace-navigation .nav-link.active { background: #e9ebe2; color: #3f4935; font-weight: 550; }
.ui-icon { flex-shrink: 0; opacity: .8; }
.sidebar-footer { margin-top: auto; border-top: 1px solid #e8eae1; padding: 18px 20px; color: #959b8c; font-size: 10px; display: flex; align-items: center; gap: 7px; }
.workspace-dot { width: 5px; height: 5px; border-radius: 50%; background: #929e7d; }
.workspace-topbar { height: 55px; margin-left: 214px; border-bottom: 1px solid #f0f0eb; padding: 0 34px; display: flex; justify-content: space-between; align-items: center; gap: 18px; }
.topbar-path { display: flex; align-items: center; gap: 12px; color: #969c8d; font-size: 12px; }.topbar-path strong { color: #626a57; font-weight: 500; }.path-divider { color: #c7ccbf; }
.topbar-tools { display: flex; gap: 14px; align-items: center; }.topbar-tools form { margin: 0; }
.language-select { min-height: 28px; width: auto; padding: 3px 25px 3px 8px; font-size: 11px; border: 0; background-color: transparent; }
.account-name { max-width: 160px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; font-size: 12px; color: #737b68; }
.portal-main { padding: 34px 36px 60px; min-width: 0; }.workspace-layout .portal-main { margin-left: 214px; }
.icon-button { display: grid; place-items: center; padding: 5px; background: transparent; border: 0; border-radius: 4px; color: #606b53; }
.mobile-menu { display: none; }.sidebar-backdrop { display: none; }
.skip-link { position: fixed; top: -60px; left: 20px; z-index: 100; padding: 8px 14px; background: #fff; border: 1px solid var(--line); }.skip-link:focus { top: 10px; }
.public-language-switch { position: absolute; top: 22px; right: 26px; }.public-layout { background: #fafaf8; }
.public-layout .portal-main { min-height: 100vh; display: grid; place-items: center; padding: 70px 24px; }
.login-panel { width: 100%; max-width: 360px; }.login-wordmark { display: flex; gap: 10px; align-items: center; margin-bottom: 52px; font-size: 13px; letter-spacing: 1.4px; font-weight: 650; }
.login-panel h1 { font-size: 25px; font-weight: 600; letter-spacing: -.5px; margin-bottom: 10px; }.login-panel > p { color: var(--muted); font-size: 13px; margin-bottom: 30px; }
.login-panel .form-control { background: #fff; min-height: 40px; }.login-footer { color: #a1a597; margin-top: 36px; padding-top: 20px; border-top: 1px solid #e7eadf; font-size: 11px; }
.product-table { min-width: 850px; }.product-table td { padding-top: 12px; padding-bottom: 12px; }.product-table .product-identity { display: flex; gap: 14px; align-items: center; min-width: 240px; max-width: 380px; }
.product-identity .product-title-link { font-weight: 600; font-size: 13px; color: #373e30; }.product-identity p { font-size: 12px; color: #74776f; margin: 5px 0 0; line-height: 1.5; }
.product-table .product-thumbnail, .product-table .product-placeholder { width: 48px; height: 54px; flex-shrink: 0; }
.product-subline { display: block; font-size: 11px; color: #74776f; margin-top: 5px; }.product-supplier-line { margin: 3px 0; font-size: 12px; }.product-supplier-line small { color: #74776f; }
.product-list-meta { color: #74776f; font-size: 11px; padding: 12px 0; }.product-list-heading { margin-bottom: 32px; }
.product-detail { max-width: 1280px; margin: 0 auto; }.product-detail-grid { display: grid; grid-template-columns: minmax(230px,310px) minmax(0,1fr); gap: 44px; }
.product-photo { display: grid; place-items: center; min-height: 300px; aspect-ratio: 1; border: 1px solid #eeefe8; border-radius: 5px; background: #f8f9f4; padding: 24px; }
.product-photo img { width: 100%; max-height: 330px; object-fit: contain; }.product-photo .photo-empty { color: #aab09e; font-size: 12px; display: grid; justify-items: center; gap: 14px; }
.product-meta { margin-top: 22px; }.product-meta > div { display: flex; justify-content: space-between; gap: 20px; font-size: 12px; margin: 12px 0; }.product-meta dt { color: #74776f; font-weight: 400; }.product-meta dd { margin: 0; color: #616b52; }
.product-section { padding: 0 0 28px; margin-bottom: 28px; border-bottom: 1px solid var(--line); }.product-section:last-child { border-bottom: 0; }
.product-description { font-size: 16px; line-height: 1.65; max-width: 670px; color: #4b5340; margin: 0; }
.property-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px 18px; margin: 0; }.property-grid dt { color: #74776f; font-size: 12px; font-weight: 400; margin-bottom: 7px; }.property-grid dd { font-size: 14px; margin: 0; font-variant-numeric: tabular-nums; color: #434e35; }
.report-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 22px; padding: 14px 16px; background: #f7f8f3; border: 1px solid #eceee4; border-radius: 4px; }.report-row span { color: #74776f; font-size: 12px; }
.product-form { max-width: 1060px; }.product-form > form.card { border: 0 !important; padding: 0 !important; }.product-form .product-preview { width: 92px; height: 100px; }
.supplier-row { padding: 13px; border: 1px solid #eceee5; border-radius: 4px; background: #fafbf7; }.supplier-row .form-label { font-size: 12px; }
.product-form form > .row { --bs-gutter-x: 24px; --bs-gutter-y: 20px; }
@media(min-width: 1700px) { .portal-main { padding-left: 48px; padding-right: 48px; }.workspace-topbar { padding-left: 48px; padding-right: 48px; } }
@media(max-width: 1100px) { .workspace-sidebar { width: 190px; }.workspace-topbar, .workspace-layout .portal-main { margin-left: 190px; }.portal-main { padding: 26px 24px 50px; }.workspace-topbar { padding: 0 24px; }.product-detail-grid { grid-template-columns: 240px minmax(0,1fr); gap: 28px; }.property-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width: 760px) { .workspace-sidebar { width: 214px; visibility: hidden; transform: translateX(-100%); transition: transform .16s ease; }.workspace-topbar, .workspace-layout .portal-main { margin-left: 0; }.workspace-topbar { padding: 0 16px; }.portal-main { padding: 24px 18px 40px; }.mobile-menu { display: grid; }.sidebar-open .workspace-sidebar { visibility: visible; transform: translateX(0); }.sidebar-open .sidebar-backdrop { display: block; position: fixed; inset: 0; z-index: 30; background: #20251c40; border: 0; }.topbar-path > span:first-of-type, .topbar-path .path-divider, .account-name { display: none; }.topbar-tools { gap: 4px; }.product-detail-grid { grid-template-columns: 1fr; }.product-photo { max-width: 360px; margin: auto; }.product-meta { max-width: 360px; margin: 18px auto; }.product-form > form.card { padding: 0 !important; } }
@media(prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }

.product-card-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr)); gap:20px; }
.product-card { border:1px solid var(--line); border-radius:5px; overflow:hidden; background:#fff; display:flex; flex-direction:column; }
.product-card-image { height:210px; display:flex; align-items:center; justify-content:center; background:#f8f9f6; padding:24px; color:var(--muted); font-size:12px; }
.product-card-image img { width:100%; height:100%; object-fit:contain; }
.product-card-body { padding:18px; display:flex; flex-direction:column; flex:1; }
.product-card-description { font-size:13px; color:var(--muted); margin:12px 0; overflow-wrap:anywhere; }
.product-card-suppliers { margin-top:12px; overflow-wrap:anywhere; }
.product-card-actions { display:flex; justify-content:space-between; gap:8px; padding-top:18px; margin-top:auto; }
