:root {
    --bg: #f4f5f7;
    --panel: #ffffff;
    --text: #1f2937;
    --muted: #6b7280;
    --line: #d9dde4;
    --primary: #e97818;
    --dark: #161a22;
    --danger: #b91c1c;
    --success: #166534;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: Arial, Helvetica, sans-serif; background: var(--bg); color: var(--text); }
a { color: inherit; text-decoration: none; }
.topbar { height: 64px; display: flex; align-items: center; justify-content: space-between; padding: 0 28px; background: var(--dark); color: #fff; }
.brand { font-size: 22px; font-weight: 800; }
.topbar nav { display: flex; gap: 20px; align-items: center; }
.page-shell { min-height: calc(100vh - 112px); padding: 28px; }
.footer { padding: 14px 28px; background: #fff; border-top: 1px solid var(--line); color: var(--muted); }
.hero { min-height: 260px; background: linear-gradient(135deg, #222733, #3a3f4c); color: #fff; border-radius: 18px; padding: 48px; display: flex; align-items: center; margin-bottom: 28px; }
.hero h1 { font-size: 42px; margin: 0 0 8px; }
.grid { display: grid; gap: 18px; }
.cards { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.product-grid { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.card { display: block; background: var(--panel); border: 1px solid var(--line); border-radius: 16px; padding: 18px; box-shadow: 0 8px 20px rgba(0,0,0,.04); }
.card:hover { border-color: var(--primary); }
.card img, .product-card img { width: 100%; height: 180px; object-fit: contain; background: #f9fafb; border-radius: 12px; }
.tag { display: inline-flex; align-items: center; padding: 4px 10px; background: #fff2e6; color: #9a4a00; border-radius: 999px; font-size: 12px; font-weight: bold; margin: 8px 0; }
.button { border: 1px solid var(--line); background: #fff; color: var(--text); padding: 10px 14px; border-radius: 10px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; }
.button.primary { background: var(--primary); border-color: var(--primary); color: #fff; }
.button.danger { background: var(--danger); border-color: var(--danger); color: #fff; }
.button.small { padding: 6px 10px; font-size: 12px; }
.link-button { background: none; border: none; color: #fff; cursor: pointer; font: inherit; padding: 0; }
.inline-form { display: inline; }
.portal-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 22px; align-items: start; }
.portal-nav { background: var(--dark); color: #fff; border-radius: 16px; padding: 16px; position: sticky; top: 18px; }
.portal-nav a { display: block; padding: 10px 12px; border-radius: 10px; color: #fff; }
.portal-nav a:hover { background: rgba(255,255,255,.12); }
.portal-title { font-size: 22px; font-weight: 800; padding: 8px 12px 16px; }
.portal-group { color: #aeb4c0; padding: 18px 12px 6px; font-size: 12px; text-transform: uppercase; font-weight: 800; }
.portal-content { min-width: 0; }
.heading-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.panel { background: var(--panel); border: 1px solid var(--line); border-radius: 16px; padding: 18px; margin-bottom: 18px; }
.form-grid { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 12px 16px; align-items: start; }
.form-stack { display: grid; gap: 10px; }
input, select, textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; font: inherit; background: #fff; }
textarea { min-height: 80px; }
.check { display: flex; gap: 8px; align-items: center; }
.check input { width: auto; }
.data-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.data-table th, .data-table td { padding: 11px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.data-table thead th { background: #f1f3f6; font-size: 13px; text-transform: uppercase; color: var(--muted); }
.data-table.compact th, .data-table.compact td { padding: 8px 10px; }
.actions { white-space: nowrap; display: flex; gap: 6px; align-items: center; }
.tiny-img { width: 54px; height: 42px; object-fit: contain; background: #f9fafb; border-radius: 6px; border: 1px solid var(--line); }
.filter-bar { display: flex; gap: 10px; margin-bottom: 18px; }
.filter-bar select { max-width: 260px; }
.auth-box { max-width: 460px; margin: 40px auto; background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 24px; }
.alert { padding: 12px 14px; border-radius: 10px; margin-bottom: 16px; border: 1px solid var(--line); }
.alert.error { background: #fef2f2; color: var(--danger); border-color: #fecaca; }
.alert.success { background: #f0fdf4; color: var(--success); border-color: #bbf7d0; }
.alert.info { background: #eff6ff; color: #1d4ed8; border-color: #bfdbfe; }
.muted { color: var(--muted); }
.small { font-size: 13px; }
.placeholder-img { height: 180px; background: #eef0f3; color: var(--muted); display: flex; align-items: center; justify-content: center; border-radius: 12px; }
.placeholder-img.large { height: 390px; }
.product-detail { display: grid; grid-template-columns: minmax(280px, 480px) minmax(0, 1fr); gap: 28px; align-items: start; }
.main-product-image { width: 100%; height: 390px; object-fit: contain; background: #fff; border: 1px solid var(--line); border-radius: 18px; }
.thumb-row { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.thumb-row img { width: 80px; height: 70px; object-fit: contain; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.inline-panel { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.inline-panel input[type="file"] { max-width: 320px; }
.inline-panel input[type="number"] { max-width: 100px; }
.picture-list { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 14px; }
.picture-tile { width: 160px; background: #f9fafb; border: 1px solid var(--line); border-radius: 14px; padding: 10px; text-align: center; }
.picture-tile img { width: 100%; height: 105px; object-fit: contain; background: #fff; border-radius: 10px; }
.three-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.dashboard-cards .card h3 { margin-top: 0; }
@media (max-width: 900px) {
    .portal-layout, .product-detail { grid-template-columns: 1fr; }
    .portal-nav { position: static; }
    .form-grid { grid-template-columns: 1fr; }
    .three-cols { grid-template-columns: 1fr; }
    .topbar { height: auto; gap: 12px; flex-direction: column; align-items: flex-start; padding: 16px; }
    .topbar nav { flex-wrap: wrap; }
}

.product-type-panel {
    grid-column: 1 / -1;
    border: 1px solid var(--line);
    background: #fafafa;
    border-radius: 14px;
    padding: 16px;
    margin-top: 6px;
}
.product-type-panel h2 { margin: 0 0 12px; }
.type-field-grid {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 12px 16px;
    align-items: start;
}
@media (max-width: 900px) {
    .type-field-grid { grid-template-columns: 1fr; }
}


/* Compact product add/edit form - V1 compact form update */
.no-margin { margin: 0; }
.compact-heading h1 { margin-bottom: 4px; }
.product-edit-page .panel { padding: 14px; }
.product-form-compact { padding: 0; overflow: hidden; }
.product-quick-strip {
    display: grid;
    grid-template-columns: minmax(260px, 2fr) minmax(160px, 1fr) minmax(160px, 1fr) minmax(140px, 1fr) minmax(140px, 1fr) minmax(160px, auto) auto;
    gap: 10px;
    align-items: end;
    padding: 14px;
    background: linear-gradient(180deg, #fff, #fbfbfc);
    border-bottom: 1px solid var(--line);
}
.field-block { display: grid; gap: 5px; min-width: 0; }
.field-block label,
.product-quick-strip label,
.compact-type-grid label { font-size: 12px; color: var(--muted); font-weight: 800; text-transform: uppercase; letter-spacing: .02em; }
.product-quick-strip input,
.product-quick-strip select,
.product-form-compact input,
.product-form-compact select,
.product-form-compact textarea { padding: 8px 10px; border-radius: 9px; }
.product-form-compact textarea { min-height: 72px; }
.toggle-block { display: grid; gap: 8px; align-self: center; padding-bottom: 4px; }
.toggle-block .check { font-size: 13px; font-weight: 700; color: var(--text); text-transform: none; letter-spacing: 0; }
.save-block { align-self: end; }
.save-block .button { min-height: 39px; white-space: nowrap; }
.form-tabs { display: flex; gap: 6px; padding: 10px 14px 0; border-bottom: 1px solid var(--line); background: #fff; }
.form-tab {
    border: 1px solid var(--line);
    border-bottom: none;
    background: #f7f8fa;
    padding: 8px 12px;
    border-radius: 10px 10px 0 0;
    cursor: pointer;
    font-weight: 800;
    color: var(--muted);
}
.form-tab.active { background: #fff; color: var(--text); border-color: var(--primary); box-shadow: inset 0 3px 0 var(--primary); }
.form-tab-panel,
.extra-tab-panel { display: none; padding: 14px; }
.form-tab-panel.active,
.extra-tab-panel.active { display: block; }
.compact-note { background: #fff8f1; border: 1px solid #fed7aa; color: #9a4a00; padding: 10px 12px; border-radius: 10px; margin-bottom: 12px; }
.compact-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.compact-summary-grid > div { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; background: #fafafa; }
.compact-summary-grid span { display: block; font-size: 12px; color: var(--muted); font-weight: 800; text-transform: uppercase; margin-bottom: 4px; }
.compact-summary-grid strong { font-size: 16px; }
.section-title-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.section-title-row h2 { margin: 0; font-size: 20px; }
.pill { display: inline-flex; align-items: center; padding: 5px 10px; border-radius: 999px; background: #f1f3f6; color: var(--muted); font-size: 12px; font-weight: 800; }
.product-form-compact .product-type-panel { border: 0; background: transparent; border-radius: 0; padding: 0; margin: 0; }
.compact-type-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px 12px;
}
.compact-type-grid .wide { grid-column: span 3; }
.description-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.description-grid textarea { min-height: 140px; }
.form-actions-sticky {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 14px;
    background: #f7f8fa;
    border-top: 1px solid var(--line);
}
.after-save-panel { margin-top: 18px; }
.secondary-tabs { padding-left: 0; padding-right: 0; }
.compact-upload-panel { margin-bottom: 12px; }
.compact-picture-tile { width: 145px; }
.compact-picture-tile img { height: 88px; }
.compact-links h3 { margin: 0 0 8px; }
.compact-links .check { margin-bottom: 6px; }
.compact-info { margin-top: 16px; }
@media (max-width: 1500px) {
    .product-quick-strip { grid-template-columns: minmax(260px, 2fr) repeat(3, minmax(150px, 1fr)); }
    .toggle-block, .save-block { grid-column: auto; }
}
@media (max-width: 1100px) {
    .product-quick-strip { grid-template-columns: 1fr 1fr; }
    .save-block { justify-self: start; }
    .compact-type-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .compact-type-grid .wide { grid-column: span 2; }
    .compact-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .description-grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
    .product-quick-strip,
    .compact-type-grid,
    .compact-summary-grid { grid-template-columns: 1fr; }
    .compact-type-grid .wide { grid-column: auto; }
    .form-tabs { overflow-x: auto; }
    .form-actions-sticky { flex-direction: column; align-items: stretch; }
}

/* Product form compact fields + drag rearrange update */
.product-edit-page .layout-tools {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
    padding: 10px 14px;
    background: #fff;
    border-bottom: 1px solid var(--line);
}
.product-quick-strip.compact-field-layout,
.compact-type-grid.compact-field-layout {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: flex-start;
    gap: 10px 12px;
}
.product-quick-strip.compact-field-layout {
    padding: 12px 14px;
}
.product-quick-strip.compact-field-layout .field-block,
.compact-type-grid.compact-field-layout .field-block {
    flex: 0 1 205px;
    width: 205px;
    max-width: 205px;
}
.product-quick-strip.compact-field-layout .field-block.wide {
    flex-basis: 360px;
    width: 360px;
    max-width: 420px;
}
.compact-type-grid.compact-field-layout .field-block.wide {
    flex-basis: 520px;
    width: 520px;
    max-width: 680px;
}
.product-form-compact input,
.product-form-compact select {
    min-height: 36px;
}
.product-form-compact textarea {
    min-height: 62px;
    resize: vertical;
}
.compact-type-grid.compact-field-layout .field-block:not(.wide) textarea {
    min-height: 36px;
}
.description-grid .field-block {
    width: auto;
    max-width: none;
}
.description-grid textarea {
    min-height: 120px;
}
.drag-handle {
    display: none;
    align-self: flex-start;
    width: max-content;
    padding: 2px 7px;
    border-radius: 999px;
    background: #fff2e6;
    color: #9a4a00;
    border: 1px solid #fed7aa;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .03em;
    cursor: grab;
    user-select: none;
}
.product-arrange-mode .compact-field-layout .draggable-field {
    border: 1px dashed #f59e0b;
    border-radius: 12px;
    padding: 7px;
    background: #fffdf8;
    cursor: grab;
}
.product-arrange-mode .compact-field-layout .draggable-field:active {
    cursor: grabbing;
}
.product-arrange-mode .compact-field-layout .drag-handle {
    display: inline-flex;
    margin-bottom: 2px;
}
.compact-field-layout .draggable-field.dragging {
    opacity: .55;
    transform: scale(.98);
}
.product-arrange-mode #toggleFieldArrange {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
}
@media (max-width: 1100px) {
    .product-quick-strip.compact-field-layout .field-block,
    .compact-type-grid.compact-field-layout .field-block {
        flex-basis: 190px;
        width: 190px;
        max-width: 220px;
    }
    .product-quick-strip.compact-field-layout .field-block.wide,
    .compact-type-grid.compact-field-layout .field-block.wide {
        flex-basis: 100%;
        width: 100%;
        max-width: none;
    }
}
@media (max-width: 700px) {
    .product-quick-strip.compact-field-layout .field-block,
    .compact-type-grid.compact-field-layout .field-block,
    .product-quick-strip.compact-field-layout .field-block.wide,
    .compact-type-grid.compact-field-layout .field-block.wide {
        flex-basis: 100%;
        width: 100%;
        max-width: none;
    }
}

/* Add/Edit Product simple no-tabs layout */
.product-simple-page .simple-product-form {
    padding: 0;
    overflow: visible;
}
.product-simple-page .simple-section {
    padding: 14px;
    border-bottom: 1px solid var(--line);
    background: #fff;
}
.product-simple-page .simple-section:last-child {
    border-bottom: 0;
}
.product-simple-page .simple-title-row {
    margin-bottom: 10px;
}
.product-simple-page .simple-title-row h2,
.product-simple-page .product-type-panel h2,
.product-simple-page .pictures-only-panel h2 {
    font-size: 18px;
}
.simple-product-grid,
.simple-type-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 12px;
    align-items: flex-end;
    justify-content: flex-start;
}
.simple-product-grid .field-block,
.simple-type-grid .field-block {
    flex: 0 0 210px;
    width: 210px;
    max-width: 210px;
}
.simple-product-grid .field-name {
    flex-basis: 380px;
    width: 380px;
    max-width: 430px;
}
.simple-product-grid .field-type {
    flex-basis: 230px;
    width: 230px;
    max-width: 230px;
}
.simple-type-grid .field-block.wide {
    flex: 0 0 540px;
    width: 540px;
    max-width: 680px;
}
.product-simple-page input,
.product-simple-page select {
    min-height: 36px;
}
.product-simple-page textarea {
    min-height: 68px;
    resize: vertical;
}
.simple-toggle-block {
    flex: 0 0 190px;
    width: 190px;
    max-width: 190px;
    align-self: center;
    padding-bottom: 2px;
}
.simple-toggle-block .check {
    font-size: 13px;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0;
}
.product-simple-page .simple-type-section .product-type-panel {
    border: 1px solid var(--line);
    background: #fafafa;
    border-radius: 14px;
    padding: 12px;
    margin: 0;
}
.product-simple-page .description-grid.simple-description-grid {
    display: grid;
    grid-template-columns: minmax(280px, 430px) minmax(360px, 680px);
    gap: 14px;
    align-items: start;
}
.product-simple-page .simple-description-grid .field-block {
    width: auto;
    max-width: none;
}
.product-simple-page .simple-description-grid textarea {
    min-height: 125px;
}
.product-simple-page .simple-actions {
    border-top: 0;
}
.product-simple-page .pictures-only-panel {
    padding: 14px;
}
.product-simple-page .compact-upload-panel input[type="file"] {
    max-width: 300px;
}
@media (max-width: 1100px) {
    .simple-product-grid .field-block,
    .simple-type-grid .field-block,
    .simple-product-grid .field-name,
    .simple-product-grid .field-type,
    .simple-toggle-block {
        flex-basis: calc(50% - 8px);
        width: calc(50% - 8px);
        max-width: none;
    }
    .simple-type-grid .field-block.wide {
        flex-basis: 100%;
        width: 100%;
        max-width: none;
    }
    .product-simple-page .description-grid.simple-description-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 700px) {
    .simple-product-grid .field-block,
    .simple-type-grid .field-block,
    .simple-product-grid .field-name,
    .simple-product-grid .field-type,
    .simple-type-grid .field-block.wide,
    .simple-toggle-block {
        flex-basis: 100%;
        width: 100%;
        max-width: none;
    }
    .product-simple-page .section-title-row {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Add/Edit Product - fixed 3-column layout override */
.product-simple-page .product-form-compact,
.product-simple-page .pictures-only-panel,
.product-simple-page .compact-info {
    max-width: 1180px;
}

.product-simple-page .simple-product-form {
    overflow: visible;
}

.product-simple-page .simple-product-grid,
.product-simple-page .simple-type-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(210px, 300px));
    gap: 12px 14px;
    align-items: end;
    justify-content: start;
}

.product-simple-page .simple-product-grid .field-block,
.product-simple-page .simple-type-grid .field-block,
.product-simple-page .simple-product-grid .field-name,
.product-simple-page .simple-product-grid .field-type,
.product-simple-page .simple-toggle-block {
    width: auto;
    max-width: none;
    min-width: 0;
    flex: unset;
}

.product-simple-page .simple-product-grid .field-name {
    grid-column: span 2;
}

.product-simple-page .simple-toggle-block {
    display: grid;
    gap: 7px;
    align-self: center;
    max-width: 300px;
}

.product-simple-page .simple-type-grid .field-block.wide {
    grid-column: span 2;
    width: auto;
    max-width: none;
    flex: unset;
}

.product-simple-page input,
.product-simple-page select {
    min-height: 36px;
    max-width: 100%;
}

.product-simple-page textarea {
    max-width: 100%;
}

.product-simple-page .simple-description-grid {
    display: grid;
    grid-template-columns: minmax(320px, 430px) minmax(420px, 640px);
    gap: 14px;
    align-items: start;
    justify-content: start;
}

.product-simple-page .simple-description-grid .field-block,
.product-simple-page .simple-description-grid textarea {
    width: 100%;
    max-width: none;
}

.product-simple-page .pictures-only-panel .inline-panel {
    max-width: 920px;
}

@media (max-width: 1250px) {
    .product-simple-page .simple-product-grid,
    .product-simple-page .simple-type-grid {
        grid-template-columns: repeat(2, minmax(220px, 1fr));
    }
    .product-simple-page .simple-product-grid .field-name,
    .product-simple-page .simple-type-grid .field-block.wide {
        grid-column: span 2;
    }
    .product-simple-page .simple-description-grid {
        grid-template-columns: 1fr;
        max-width: 760px;
    }
}

@media (max-width: 720px) {
    .product-simple-page .simple-product-grid,
    .product-simple-page .simple-type-grid {
        grid-template-columns: 1fr;
    }
    .product-simple-page .simple-product-grid .field-name,
    .product-simple-page .simple-type-grid .field-block.wide {
        grid-column: auto;
    }
}


/* Add/Edit Product - working field rearrange */
.product-simple-page .reorder-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
    align-items: center;
    padding: 8px 0 12px;
    border-top: 1px dashed var(--line);
}

.product-simple-page .field-reorder-enabled {
    outline: 2px dashed rgba(235, 109, 32, 0.35);
    outline-offset: 6px;
    border-radius: 12px;
}

.product-simple-page .field-reorder-enabled [data-field-key] {
    cursor: grab;
    position: relative;
    user-select: none;
}

.product-simple-page .field-reorder-enabled [data-field-key] input,
.product-simple-page .field-reorder-enabled [data-field-key] select,
.product-simple-page .field-reorder-enabled [data-field-key] textarea {
    pointer-events: none;
    background: #fffdf8;
}

.product-simple-page .field-reorder-enabled [data-field-key]::after {
    content: "drag";
    position: absolute;
    top: -7px;
    right: 6px;
    background: #fff3ea;
    border: 1px solid rgba(235, 109, 32, 0.35);
    color: #a44712;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    padding: 1px 6px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.product-simple-page .dragging-field {
    opacity: .55;
    cursor: grabbing;
    transform: scale(.985);
}


/* Database-backed lookup inputs with add-on-the-fly typing */
.product-simple-page .lookup-field {
    align-self: start;
}

.product-simple-page .lookup-field input[list] {
    width: 100%;
    background: #fff;
}

.product-simple-page .lookup-field .field-hint {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    line-height: 1.25;
}


/* Product form smart title preview */
.product-simple-page .display-preview-block {
    align-self: end;
}
.product-title-preview {
    min-height: 36px;
    display: flex;
    align-items: center;
    padding: 8px 10px;
    border: 1px dashed var(--line);
    border-radius: 9px;
    background: #fbfbfc;
    font-weight: 800;
    color: var(--text);
}
.product-simple-page .field-hint {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    line-height: 1.25;
}

/* Brands & Models dropdown and management */
.lookup-field-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
}

.lookup-manage-button {
    min-width: 74px;
    text-align: center;
    white-space: nowrap;
}

.brand-manage-panel .brand-add-row {
    align-items: end;
}

.brand-add-row .field-block {
    margin-bottom: 0;
}

.small-number-field {
    max-width: 120px;
}

.inline-check {
    padding-bottom: 10px;
}

.brand-edit-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    margin: 0;
}

.brand-edit-fields {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 100px auto;
    gap: 10px;
    align-items: center;
}

.brand-edit-actions {
    display: flex;
    gap: 6px;
    justify-content: flex-end;
}

@media (max-width: 900px) {
    .brand-edit-row,
    .brand-edit-fields,
    .lookup-field-row {
        grid-template-columns: 1fr;
    }

    .brand-edit-actions {
        justify-content: flex-start;
    }
}


/* Products list cleanup: keep actions close to the row data */
.product-list-page {
    max-width: 1380px;
}

.product-list-page .heading-row {
    max-width: 1380px;
}

.product-table-card {
    max-width: 1380px;
    overflow-x: auto;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
}

.product-list-table {
    width: 100%;
    min-width: 1040px;
    border: 0;
    border-radius: 0;
}

.product-list-table th,
.product-list-table td {
    white-space: nowrap;
}

.product-list-table th:nth-child(1),
.product-list-table td:nth-child(1) { width: 90px; }
.product-list-table th:nth-child(2),
.product-list-table td:nth-child(2) { width: 150px; }
.product-list-table th:nth-child(3),
.product-list-table td:nth-child(3) { min-width: 240px; }
.product-list-table th:nth-child(4),
.product-list-table td:nth-child(4) { width: 170px; }
.product-list-table th:nth-child(5),
.product-list-table td:nth-child(5) { width: 170px; }
.product-list-table th:nth-child(6),
.product-list-table td:nth-child(6) { width: 95px; }
.product-list-table th:nth-child(7),
.product-list-table td:nth-child(7) { width: 85px; }
.product-list-table .actions-header,
.product-list-table .actions-cell {
    width: 130px;
    text-align: left;
}

.product-list-table .row-actions {
    display: flex;
    gap: 6px;
    align-items: center;
    justify-content: flex-start;
}

.product-list-table .actions-cell form {
    margin: 0;
}

@media (max-width: 900px) {
    .product-list-page { max-width: none; }
    .product-table-card { max-width: none; }
}


/* Access Rights compact layout */
.access-rights-page {
    max-width: 940px;
}
.access-role-bar {
    max-width: 520px;
    align-items: center;
}
.access-role-bar select {
    width: 260px;
}
.access-rights-card {
    width: min(940px, 100%);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
}
.access-rights-table {
    width: 100%;
    table-layout: fixed;
    border: 0;
    border-radius: 0;
}
.access-rights-table th,
.access-rights-table td {
    padding: 10px 12px;
}
.access-rights-table th:nth-child(1),
.access-rights-table td:nth-child(1) {
    width: 46%;
}
.access-rights-table th:nth-child(2),
.access-rights-table td:nth-child(2),
.access-rights-table th:nth-child(3),
.access-rights-table td:nth-child(3),
.access-rights-table th:nth-child(4),
.access-rights-table td:nth-child(4) {
    width: 18%;
    text-align: center;
}
.access-rights-table .module-cell {
    font-weight: 700;
    color: var(--text);
    text-align: left;
}
.permission-check-cell input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0 auto;
    display: block;
}
.access-rights-actions {
    padding: 12px;
    background: #f7f8fa;
    border-top: 1px solid var(--line);
}
@media (max-width: 900px) {
    .access-rights-page,
    .access-rights-card {
        max-width: none;
        width: 100%;
    }
    .access-rights-table th:nth-child(1),
    .access-rights-table td:nth-child(1) {
        width: 40%;
    }
    .access-rights-table th:nth-child(2),
    .access-rights-table td:nth-child(2),
    .access-rights-table th:nth-child(3),
    .access-rights-table td:nth-child(3),
    .access-rights-table th:nth-child(4),
    .access-rights-table td:nth-child(4) {
        width: 20%;
    }
}


/* Product prices */
.price-field input { max-width: 220px; }
.product-card-price {
    display: inline-flex;
    align-items: center;
    margin: 4px 0 8px;
    padding: 4px 8px;
    border-radius: 999px;
    background: #fff3ea;
    color: #a44712;
    font-weight: 800;
    font-size: 13px;
}
.product-detail-price {
    display: inline-flex;
    margin: 4px 0 12px;
    padding: 6px 12px;
    border-radius: 999px;
    background: #fff3ea;
    color: #a44712;
    font-size: 20px;
    font-weight: 900;
}
.product-list-table th:nth-child(6),
.product-list-table td:nth-child(6),
.product-list-table th:nth-child(7),
.product-list-table td:nth-child(7) {
    width: 115px;
    white-space: nowrap;
}
.product-list-table th:nth-child(8),
.product-list-table td:nth-child(8),
.product-list-table th:nth-child(9),
.product-list-table td:nth-child(9) {
    width: 85px;
}

/* Partner orders */
.orders-page,
.order-create-page {
    max-width: 1380px;
}
.compact-heading {
    align-items: center;
    margin-bottom: 16px;
}
.card-lite {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 14px;
}
.alert.error {
    background: #fff0f0;
    border: 1px solid #f2b4b4;
    color: #9e1a1a;
    border-radius: 12px;
    padding: 12px 14px;
    margin-bottom: 14px;
    font-weight: 700;
}
.orders-table-card {
    max-width: 1100px;
}
.compact-table th,
.compact-table td {
    padding: 10px 12px;
}
.num {
    text-align: right;
    white-space: nowrap;
}
.pill {
    display: inline-flex;
    padding: 4px 10px;
    border-radius: 999px;
    background: #fff3ea;
    color: #a44712;
    font-weight: 800;
    font-size: 12px;
}
.order-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin-bottom: 14px;
}
.order-filter-form {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}
.order-filter-form input {
    width: 280px;
}
.order-filter-form select {
    width: 220px;
}
.instant-type-select {
    min-height: 42px;
    border-radius: 12px;
    border: 1px solid #cfd8e3;
    background: #fff;
    font-weight: 700;
    cursor: pointer;
}
.instant-type-select:focus {
    border-color: #f97316;
    box-shadow: 0 0 0 3px rgba(249,115,22,.14);
    outline: none;
}
.type-filter-form {
    flex: 1 1 620px;
}
.type-filter-search {
    position: relative;
    flex: 1 1 420px;
    min-width: 280px;
}
.type-filter-search input {
    width: 100%;
    min-height: 42px;
    padding-left: 42px;
    padding-right: 42px;
    border-radius: 999px;
    border: 1px solid #cfd8e3;
    background: #fff;
    font-weight: 700;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}
.type-filter-search input:focus {
    border-color: #f97316;
    box-shadow: 0 0 0 3px rgba(249,115,22,.14);
    outline: none;
}
.type-filter-icon {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: #64748b;
    font-size: 18px;
    font-weight: 900;
    pointer-events: none;
}
.type-filter-clear {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 999px;
    background: #eef2f7;
    color: #334155;
    font-size: 18px;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
}
.type-filter-clear:hover {
    background: #fee2e2;
    color: #991b1b;
}
.order-filter-submit {
    min-height: 40px;
}
.order-no-results {
    margin-top: 10px;
    padding: 16px;
    border: 1px dashed #cbd5e1;
    border-radius: 14px;
    background: #fff;
    color: #64748b;
    font-weight: 800;
    text-align: center;
}
.view-switch {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.order-settings {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    margin-bottom: 14px;
    max-width: 760px;
}
.order-settings h2 {
    margin: 0 0 4px;
    font-size: 18px;
}
.order-vat-field {
    display: grid;
    grid-template-columns: auto 120px;
    gap: 10px;
    align-items: center;
}
.order-vat-field label {
    font-weight: 800;
}
.order-vat-field input {
    text-align: right;
    width: 120px;
}

.order-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 18px;
    align-items: start;
}
.order-products {
    display: grid;
    gap: 10px;
}
.order-products.list-mode {
    grid-template-columns: 1fr;
}
.order-products.grid-mode {
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
}
.order-product-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 12px;
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) 110px 70px;
    gap: 12px;
    align-items: center;
}
.order-products.grid-mode .order-product-card {
    display: flex;
    flex-direction: column;
    align-items: stretch;
}
.order-product-img {
    width: 72px;
    height: 72px;
    border: 1px solid var(--line);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #f7f8fb;
    color: #7a8392;
    font-size: 11px;
    text-align: center;
}
.order-products.grid-mode .order-product-img {
    width: 100%;
    height: 135px;
}
.order-product-img img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.order-product-main h3 {
    margin: 4px 0 4px;
    font-size: 16px;
}
.order-product-price {
    text-align: right;
    white-space: nowrap;
}
.order-products.grid-mode .order-product-price {
    text-align: left;
}
.basket-panel {
    position: sticky;
    top: 16px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 16px;
}
.basket-panel h2 {
    margin-top: 0;
}
.basket-lines {
    display: grid;
    gap: 10px;
    margin: 14px 0;
}
.basket-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 70px 82px 34px;
    gap: 8px;
    align-items: center;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--line);
}
.basket-line-title {
    display: grid;
    gap: 2px;
}
.basket-line-title span {
    color: #697386;
    font-size: 12px;
}
.basket-line input {
    width: 70px;
    padding: 7px;
}
.basket-line-price {
    text-align: right;
    font-weight: 800;
}
.button.tiny {
    min-height: 28px;
    padding: 5px 8px;
    font-size: 11px;
}
.vat-row {
    display: grid;
    grid-template-columns: 1fr 110px;
    gap: 10px;
    align-items: center;
    margin-top: 10px;
}
.vat-row input {
    text-align: right;
}
.basket-totals {
    display: grid;
    gap: 8px;
    margin: 14px 0;
}
.basket-totals div {
    display: flex;
    justify-content: space-between;
}
.basket-total {
    font-size: 18px;
    border-top: 1px solid var(--line);
    padding-top: 10px;
}
.full-width {
    width: 100%;
    justify-content: center;
}
.order-lines-summary {
    width: 100%;
    max-width: 1100px;
}
.order-lines-summary .orders-table-card {
    width: 100%;
    max-width: none;
}
.order-totals-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(145px, 1fr));
    gap: 10px;
    width: min(620px, 100%);
    max-width: 620px;
    margin: 10px 0 18px auto;
}
.order-totals-grid .card-lite {
    display: grid;
    gap: 5px;
    min-height: 70px;
    padding: 12px 14px;
}
.order-totals-grid span {
    color: #697386;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}
.order-totals-grid strong {
    font-size: 20px;
}
.order-totals-grid .grand-total {
    border-color: #f0b27a;
    background: #fff8f1;
}
.order-totals-grid .grand-total strong {
    color: #b84c00;
    font-size: 22px;
}
.order-notes {
    max-width: 800px;
    margin-top: 14px;
}
@media (max-width: 1100px) {
    
.order-settings {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    margin-bottom: 14px;
    max-width: 760px;
}
.order-settings h2 {
    margin: 0 0 4px;
    font-size: 18px;
}
.order-vat-field {
    display: grid;
    grid-template-columns: auto 120px;
    gap: 10px;
    align-items: center;
}
.order-vat-field label {
    font-weight: 800;
}
.order-vat-field input {
    text-align: right;
    width: 120px;
}

.order-workspace {
        grid-template-columns: 1fr;
    }
    .basket-panel {
        position: static;
    }
}
@media (max-width: 760px) {
    .order-product-card {
        grid-template-columns: 64px minmax(0, 1fr);
    }
    .order-product-price,
    .order-product-card .add-to-basket {
        grid-column: 2;
        text-align: left;
    }
    .order-totals-grid {
        grid-template-columns: 1fr;
        max-width: none;
        margin-left: 0;
    }
}

.settings-form { max-width: 820px; }
.settings-form h2 { margin-top: 0; }
.alert.success { background: #eaf8ee; border: 1px solid #b9e3c3; color: #145c2a; padding: 10px 12px; border-radius: 10px; margin-bottom: 14px; }

.account-grid {
    display: grid;
    grid-template-columns: minmax(320px, 1fr) minmax(320px, 0.85fr);
    gap: 18px;
    align-items: start;
}
.setting-check {
    align-self: end;
    min-height: 44px;
}
.email-settings-form { max-width: 1080px; }
@media (max-width: 980px) {
    .account-grid { grid-template-columns: 1fr; }
}

/* Public website landing update */
.site-brand { display: inline-flex; align-items: center; gap: 10px; }
.site-brand img { width: 130px; height: 48px; object-fit: contain; background: #fff; border-radius: 8px; padding: 4px; }
.site-brand span { font-size: 17px; font-weight: 900; }
.public-hero {
    min-height: 420px;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
    gap: 28px;
    align-items: stretch;
    color: #fff;
    background:
        radial-gradient(circle at 20% 10%, rgba(233,120,24,.42), transparent 32%),
        linear-gradient(135deg, #151922 0%, #252b38 58%, #10131a 100%);
    border-radius: 24px;
    padding: 48px;
    margin-bottom: 28px;
    overflow: hidden;
}
.public-hero-content { display: flex; flex-direction: column; justify-content: center; max-width: 820px; }
.hero-kicker { color: #fed7aa; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; font-size: 13px; margin-bottom: 12px; }
.public-hero h1 { font-size: clamp(36px, 5vw, 66px); line-height: 1.02; margin: 0 0 16px; }
.public-hero p { color: #d7dce6; font-size: 19px; line-height: 1.55; margin: 0 0 24px; max-width: 720px; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.button.light { background: rgba(255,255,255,.11); border-color: rgba(255,255,255,.24); color: #fff; }
.hero-card-stack { display: grid; gap: 14px; align-content: center; }
.hero-logo-card { background: rgba(255,255,255,.96); color: var(--text); border-radius: 22px; padding: 24px; box-shadow: 0 20px 55px rgba(0,0,0,.25); display: grid; gap: 12px; }
.hero-logo-card img { width: 100%; max-width: 380px; height: auto; }
.hero-logo-card strong { font-size: 22px; }
.hero-logo-card span { color: var(--muted); font-weight: 700; }
.hero-mini-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.hero-mini-grid div { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); border-radius: 16px; padding: 16px; display: grid; gap: 4px; }
.hero-mini-grid strong { font-size: 22px; }
.hero-mini-grid span { color: #d7dce6; }
.public-section { margin: 28px 0; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.section-heading h2 { margin: 6px 0 0; font-size: 32px; }
.category-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.category-card { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 14px; align-items: start; background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 18px; min-height: 160px; box-shadow: 0 8px 20px rgba(0,0,0,.04); }
.category-card:hover { border-color: var(--primary); transform: translateY(-2px); transition: .16s ease; }
.category-icon { height: 58px; width: 58px; border-radius: 16px; display: flex; align-items: center; justify-content: center; background: #fff2e6; color: #9a4a00; font-weight: 900; font-size: 15px; }
.category-card h3 { margin: 0 0 8px; }
.category-card p { color: var(--muted); margin: 0 0 10px; line-height: 1.4; }
.category-card span { color: var(--primary); font-size: 13px; font-weight: 900; }
.public-product-grid .product-card { min-height: 355px; }
.product-card-link { display: inline-flex; margin-top: 8px; color: var(--primary); font-weight: 900; }
.split-section { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(320px, .7fr); gap: 18px; }
.about-panel h2, .partner-panel h2 { margin-top: 6px; }
.about-panel p, .partner-panel p { color: var(--muted); line-height: 1.55; }
.about-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.about-points div { background: #f8fafc; border: 1px solid var(--line); border-radius: 14px; padding: 14px; display: grid; gap: 4px; }
.about-points span { color: var(--muted); font-size: 13px; }
.partner-panel { background: linear-gradient(180deg, #fff, #fff8f1); }
.products-hero { background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 26px; display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.products-hero h1 { margin: 8px 0; font-size: 38px; }
.products-hero p { color: var(--muted); margin: 0; max-width: 780px; }
.public-filter-bar { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 12px; align-items: center; }
.empty-state { text-align: center; padding: 36px; }
.product-detail-topline { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }
.public-product-detail { background: #fff; border: 1px solid var(--line); border-radius: 22px; padding: 18px; margin-bottom: 24px; }
.public-detail-cta { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 24px; }
.public-detail-cta h2 { margin: 8px 0; }
.public-detail-cta p { margin: 0; color: var(--muted); }
@media (max-width: 1250px) {
    .category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .public-hero { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
    .category-grid, .split-section, .about-points { grid-template-columns: 1fr; }
    .public-hero { padding: 28px; border-radius: 18px; }
    .products-hero, .section-heading, .public-detail-cta { flex-direction: column; align-items: flex-start; }
    .site-brand img { width: 110px; height: 40px; }
}

/* Consumable Matching Models popup */
.matching-models-field .matching-models-display-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
}
.matching-models-field #matchingModelsSummary {
    background: #fff;
    cursor: default;
}
.modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 5000;
    background: rgba(15, 23, 42, .55);
    padding: 28px;
    align-items: center;
    justify-content: center;
}
.modal-overlay.open {
    display: flex;
}
.modal-card {
    width: min(900px, 100%);
    max-height: min(780px, calc(100vh - 56px));
    overflow: auto;
    background: #fff;
    border-radius: 18px;
    border: 1px solid var(--line);
    box-shadow: 0 24px 70px rgba(0,0,0,.25);
    padding: 18px;
}
.matching-models-toolbar {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(260px, 1.2fr);
    gap: 12px;
    align-items: end;
    margin-bottom: 14px;
}
.matching-add-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}
.matching-models-action-message {
    margin: 0 0 10px;
    padding: 10px 12px;
    border: 1px solid #b8dfc3;
    border-radius: 10px;
    background: #effaf2;
    color: #17632c;
    font-size: 0.88rem;
    font-weight: 700;
}

.matching-models-action-message.error {
    border-color: #efb4b4;
    background: #fff2f2;
    color: #9e1b1b;
}

.matching-models-list {
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
    max-height: 420px;
    overflow-y: auto;
}
.matching-model-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 9px 10px;
    border-bottom: 1px solid var(--line);
}
.matching-model-row:last-child {
    border-bottom: 0;
}
.matching-model-row:hover {
    background: #fbfbfc;
}
.matching-model-check {
    font-weight: 700;
}
.matching-models-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 14px;
}
@media (max-width: 720px) {
    .matching-models-field .matching-models-display-row,
    .matching-models-toolbar,
    .matching-add-row,
    .matching-model-row {
        grid-template-columns: 1fr;
    }
    .modal-overlay {
        padding: 12px;
    }
}

/* Guided Add/Edit Product flow */
.product-simple-page .guided-product-form {
    max-width: 1180px;
    background: #f7f8fa;
    border: 1px solid var(--line);
}

.product-simple-page .guided-step {
    margin: 0;
    padding: 16px;
    background: #fff;
}

.product-simple-page .guided-step + .guided-step {
    border-top: 1px solid var(--line);
}

.guided-step-header {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 12px;
}

.guided-step-header h2 {
    margin: 0;
    font-size: 18px;
    line-height: 1.25;
}

.step-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    font-size: 13px;
    font-weight: 900;
    flex: 0 0 28px;
    box-shadow: 0 5px 14px rgba(235, 109, 32, 0.18);
}

.small-step-number {
    width: 24px;
    height: 24px;
    font-size: 12px;
    vertical-align: middle;
    margin-right: 6px;
}

.product-simple-page .guided-basic-row {
    display: grid;
    grid-template-columns: minmax(260px, 330px) minmax(200px, 240px) auto;
    gap: 12px;
    align-items: end;
    max-width: 900px;
}

.product-simple-page .guided-basic-row .field-block,
.product-simple-page .guided-basic-row .simple-toggle-block {
    width: auto;
    max-width: none;
    min-width: 0;
    flex: unset;
}

.product-simple-page .guided-status-checks {
    align-self: center;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fbfbfc;
}

.product-simple-page .guided-status-checks .check {
    margin: 0;
}

.guided-top-save {
    min-height: 38px;
    align-self: center;
    white-space: nowrap;
}

.product-simple-page .step-type-details .product-type-panel {
    background: #fbfbfc;
    border: 1px solid #e4e7ec;
    border-radius: 14px;
    padding: 14px;
}

.product-simple-page .step-type-details .product-type-panel > .section-title-row {
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid #e9ebef;
}

.product-simple-page .field-order-details {
    max-width: 760px;
    margin: 0 0 12px 38px;
    border: 1px dashed var(--line);
    border-radius: 10px;
    background: #fffdf9;
}

.product-simple-page .field-order-details summary {
    cursor: pointer;
    padding: 9px 12px;
    font-weight: 800;
    color: var(--accent-dark);
    user-select: none;
}

.product-simple-page .field-order-details .reorder-toolbar {
    padding: 0 12px 12px;
    border-top: 0;
}

.product-simple-page .price-details-grid {
    max-width: 650px;
}

.product-simple-page .step-descriptions .simple-description-grid {
    max-width: 980px;
}

.product-simple-page .form-actions-sticky.simple-actions {
    background: #fff;
    border-top: 1px solid var(--line);
    padding: 12px 16px;
}

@media (max-width: 900px) {
    .product-simple-page .guided-basic-row {
        grid-template-columns: 1fr 1fr;
        max-width: none;
    }
    .product-simple-page .guided-top-save {
        grid-column: 1 / -1;
        justify-self: start;
    }
    .product-simple-page .field-order-details {
        margin-left: 0;
    }
}

@media (max-width: 650px) {
    .product-simple-page .guided-basic-row {
        grid-template-columns: 1fr;
    }
    .guided-step-header {
        gap: 8px;
    }
}


.single-picture-preview {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 10px;
    padding: 10px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #f9fafb;
}

.single-picture-preview img {
    width: 90px;
    height: 90px;
    object-fit: contain;
    border-radius: 10px;
    background: white;
    border: 1px solid #e5e7eb;
}

.consumable-picture-field input[type="file"] {
    max-width: 420px;
}

/* Product type picker / simplified separate product forms */
.product-type-picker-panel {
    max-width: 1040px;
    padding: 22px;
}
.product-type-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 14px;
}
.product-type-card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 150px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fff;
    color: var(--ink);
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
    transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease;
}
.product-type-card:hover {
    transform: translateY(-2px);
    border-color: var(--accent);
    box-shadow: 0 16px 34px rgba(235, 109, 32, 0.14);
}
.product-type-card strong {
    font-size: 18px;
}
.product-type-card span:last-child {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.35;
}
.product-type-icon {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: #fff3ea;
    font-size: 23px;
}
.typed-product-form .simple-type-status-row {
    grid-template-columns: minmax(240px, 320px) minmax(220px, 260px) auto;
}
.selected-product-type-box {
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 10px 12px;
    background: #fbfbfc;
}
.selected-product-type-box label {
    display: block;
    margin-bottom: 4px;
    color: var(--muted);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .05em;
    font-weight: 800;
}
.selected-product-type-box strong {
    display: block;
    font-size: 16px;
}
.change-product-type-link {
    display: inline-block;
    margin-top: 4px;
}
@media (max-width: 980px) {
    .product-type-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .typed-product-form .simple-type-status-row {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 650px) {
    .product-type-card-grid,
    .typed-product-form .simple-type-status-row {
        grid-template-columns: 1fr;
    }
}

/* Add Consumable - compact one-card layout */
.product-simple-page .compact-consumable-form {
    max-width: 1040px;
}

.product-simple-page .compact-consumable-form .step-product-type {
    padding: 12px 14px;
}

.product-simple-page .compact-consumable-form .step-type-details {
    padding: 14px;
}

.product-simple-page .compact-consumable-form .step-price-details,
.product-simple-page .compact-consumable-form .step-descriptions {
    display: none !important;
}

.product-simple-page .compact-consumable-form .product-type-panel[data-product-type="Consumable"] {
    padding: 14px;
    background: #fff;
    border-radius: 16px;
}

.product-simple-page .compact-consumable-form .product-type-panel[data-product-type="Consumable"] .section-title-row {
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--line);
}

.product-simple-page .compact-consumable-form .product-type-panel[data-product-type="Consumable"] .simple-type-grid {
    grid-template-columns: repeat(3, minmax(190px, 1fr));
    gap: 12px 14px;
    align-items: end;
}

.product-simple-page .compact-consumable-form .consumable-picture-field {
    grid-column: span 2;
}

.product-simple-page .compact-consumable-form .matching-models-field {
    grid-column: span 3;
}

.product-simple-page .compact-consumable-form .price-field {
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: 12px;
    padding: 10px;
}


@media (max-width: 980px) {
    .product-simple-page .compact-consumable-form .product-type-panel[data-product-type="Consumable"] .simple-type-grid {
        grid-template-columns: repeat(2, minmax(210px, 1fr));
    }
    .product-simple-page .compact-consumable-form .matching-models-field,
    .product-simple-page .compact-consumable-form .consumable-picture-field {
        grid-column: span 2;
    }
}

@media (max-width: 650px) {
    .product-simple-page .compact-consumable-form .product-type-panel[data-product-type="Consumable"] .simple-type-grid,
    .product-simple-page .compact-consumable-form .matching-models-field,
    .product-simple-page .compact-consumable-form .consumable-picture-field {
        grid-template-columns: 1fr;
        grid-column: auto;
    }
}

/* V1 consumable cleanup: one clear card + toner colour circles */
.product-simple-page .compact-consumable-form {
    max-width: 1040px;
}

.product-simple-page .compact-consumable-form .consumable-main-strip {
    padding: 16px;
    background: linear-gradient(180deg, #fff, #fffaf6);
}

.product-simple-page .compact-consumable-form .consumable-main-header {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(190px, 240px) minmax(170px, 250px);
    gap: 16px;
    align-items: center;
}

.product-simple-page .compact-consumable-form .consumable-main-header h2 {
    margin: 0 0 4px;
    font-size: 22px;
}

.product-simple-page .compact-consumable-form .step-type-details > .guided-step-header {
    display: none;
}

.product-simple-page .compact-consumable-form .product-type-panel[data-product-type="Consumable"] {
    border: 1px solid var(--line);
    background: #fff;
    border-radius: 16px;
    padding: 16px;
    margin: 0;
}

.product-simple-page .compact-consumable-form .product-type-panel[data-product-type="Consumable"] .section-title-row {
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--line);
}

.product-simple-page .compact-consumable-form .product-type-panel[data-product-type="Consumable"] .simple-type-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(160px, 1fr)) !important;
    gap: 13px 14px;
    align-items: end;
}

.product-simple-page .compact-consumable-form [data-field-key="consumable-code"] {
    grid-column: 1 / span 1;
}

.product-simple-page .compact-consumable-form [data-field-key="consumable-type"] {
    grid-column: 2 / span 1;
}

.product-simple-page .compact-consumable-form .consumable-picture-field {
    grid-column: 3 / span 2 !important;
}

.product-simple-page .compact-consumable-form .toner-colour-field {
    grid-column: 1 / span 2;
}

.product-simple-page .compact-consumable-form [data-field-key="quality"] {
    grid-column: 3 / span 1;
}

.product-simple-page .compact-consumable-form [data-field-key="yield"] {
    grid-column: 1 / span 1;
}

.product-simple-page .compact-consumable-form [data-field-key="coverage"] {
    grid-column: 2 / span 1;
}

.product-simple-page .compact-consumable-form .matching-models-field {
    grid-column: 1 / span 4 !important;
}

.product-simple-page .compact-consumable-form [data-field-key="partner-price"] {
    grid-column: 1 / span 1;
}

.product-simple-page .compact-consumable-form [data-field-key="sale-price"] {
    grid-column: 2 / span 1;
}

.product-simple-page .compact-consumable-form .price-field {
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: 12px;
    padding: 10px;
}

.toner-color-selector {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    min-height: 38px;
}

.toner-choice {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 9px 6px 6px;
    border: 1px solid #d8dee8;
    border-radius: 999px;
    background: #fff;
    cursor: pointer;
    user-select: none;
    font-weight: 800;
    transition: border-color .12s ease, background .12s ease, box-shadow .12s ease, transform .12s ease;
}

.toner-choice:hover {
    border-color: var(--accent);
    box-shadow: 0 8px 18px rgba(15, 23, 42, .08);
    transform: translateY(-1px);
}

.toner-choice input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.toner-choice em {
    font-style: normal;
    color: #334155;
    font-size: 12px;
}

.toner-badge {
    width: 30px;
    height: 30px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 14px;
    line-height: 1;
    border: 2px solid rgba(255,255,255,.65);
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, .14);
}

.toner-k .toner-badge {
    color: #fff;
    background: #111827;
}

.toner-c .toner-badge {
    color: #fff;
    background: #00a7d8;
}

.toner-m .toner-badge {
    color: #fff;
    background: #d1007f;
}

.toner-y .toner-badge {
    color: #111827;
    background: #ffd400;
}

.toner-choice input:checked + .toner-badge {
    outline: 3px solid rgba(235, 109, 32, .32);
    outline-offset: 2px;
}

.toner-choice:has(input:checked) {
    border-color: var(--accent);
    background: #fff7ed;
    box-shadow: 0 0 0 2px rgba(235, 109, 32, .12);
}

.toner-clear-button {
    margin-top: 6px;
    max-width: 110px;
}

@media (max-width: 980px) {
    .product-simple-page .compact-consumable-form .consumable-main-header,
    .product-simple-page .compact-consumable-form .product-type-panel[data-product-type="Consumable"] .simple-type-grid {
        grid-template-columns: repeat(2, minmax(210px, 1fr)) !important;
    }

    .product-simple-page .compact-consumable-form .consumable-picture-field,
    .product-simple-page .compact-consumable-form .toner-colour-field,
    .product-simple-page .compact-consumable-form .matching-models-field {
        grid-column: 1 / span 2 !important;
    }

    .product-simple-page .compact-consumable-form [data-field-key="partner-price"] {
        grid-column: 1 / span 1;
    }

    .product-simple-page .compact-consumable-form [data-field-key="sale-price"] {
        grid-column: 2 / span 1;
    }
}

@media (max-width: 650px) {
    .product-simple-page .compact-consumable-form .consumable-main-header,
    .product-simple-page .compact-consumable-form .product-type-panel[data-product-type="Consumable"] .simple-type-grid {
        grid-template-columns: 1fr !important;
    }

    .product-simple-page .compact-consumable-form .consumable-picture-field,
    .product-simple-page .compact-consumable-form .toner-colour-field,
    .product-simple-page .compact-consumable-form .matching-models-field,
    .product-simple-page .compact-consumable-form [data-field-key="consumable-code"],
    .product-simple-page .compact-consumable-form [data-field-key="consumable-type"],
    .product-simple-page .compact-consumable-form [data-field-key="quality"],
    .product-simple-page .compact-consumable-form [data-field-key="yield"],
    .product-simple-page .compact-consumable-form [data-field-key="coverage"],
    .product-simple-page .compact-consumable-form [data-field-key="partner-price"],
    .product-simple-page .compact-consumable-form [data-field-key="sale-price"] {
        grid-column: auto !important;
    }
}


/* Consumable input formatting: uppercase code, grouped yield, Euro currency prices */
.uppercase-code-input {
    text-transform: uppercase;
}

.currency-input-wrap {
    display: flex;
    align-items: stretch;
    width: 100%;
}

.currency-input-wrap span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    padding: 0 10px;
    border: 1px solid var(--line);
    border-right: 0;
    border-radius: 10px 0 0 10px;
    background: #fff;
    color: #9a4a00;
    font-weight: 900;
}

.currency-input-wrap input {
    border-radius: 0 10px 10px 0 !important;
    text-align: right;
}

.integer-separator-input,
.currency-euro-input {
    font-variant-numeric: tabular-nums;
}


/* V1 consumable compact layout cleanup: picture + quality aligned */
.product-simple-page .compact-consumable-form .product-type-panel[data-product-type="Consumable"] .simple-type-grid {
    grid-template-columns: minmax(190px, 1fr) minmax(190px, 1fr) minmax(170px, .85fr) minmax(250px, 1.15fr) !important;
    gap: 13px 14px !important;
    align-items: end !important;
}

.product-simple-page .compact-consumable-form [data-field-key="consumable-code"] { grid-column: 1 / span 1 !important; }
.product-simple-page .compact-consumable-form [data-field-key="consumable-type"] { grid-column: 2 / span 1 !important; }
.product-simple-page .compact-consumable-form [data-field-key="quality"] { grid-column: 3 / span 1 !important; }
.product-simple-page .compact-consumable-form .consumable-picture-field { grid-column: 4 / span 1 !important; }
.product-simple-page .compact-consumable-form .toner-colour-field { grid-column: 1 / span 2 !important; }
.product-simple-page .compact-consumable-form [data-field-key="yield"] { grid-column: 3 / span 1 !important; }
.product-simple-page .compact-consumable-form [data-field-key="coverage"] { grid-column: 4 / span 1 !important; }
.product-simple-page .compact-consumable-form .matching-models-field { grid-column: 1 / span 4 !important; }
.product-simple-page .compact-consumable-form [data-field-key="partner-price"] { grid-column: 1 / span 1 !important; }
.product-simple-page .compact-consumable-form [data-field-key="sale-price"] { grid-column: 2 / span 1 !important; }

.product-simple-page .compact-consumable-form .consumable-picture-field input[type="file"] {
    padding: 8px 10px;
    min-height: 38px;
    font-size: 14px;
}

.product-simple-page .compact-consumable-form .consumable-picture-field .field-hint {
    font-size: 12px;
    line-height: 1.25;
}

.product-simple-page .compact-consumable-form .single-picture-preview {
    margin-top: 8px;
}

.product-simple-page .compact-consumable-form .single-picture-preview img {
    max-width: 72px;
    max-height: 72px;
    object-fit: contain;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    padding: 4px;
}

@media (max-width: 980px) {
    .product-simple-page .compact-consumable-form .product-type-panel[data-product-type="Consumable"] .simple-type-grid {
        grid-template-columns: repeat(2, minmax(210px, 1fr)) !important;
    }
    .product-simple-page .compact-consumable-form [data-field-key="consumable-code"],
    .product-simple-page .compact-consumable-form [data-field-key="consumable-type"],
    .product-simple-page .compact-consumable-form [data-field-key="quality"],
    .product-simple-page .compact-consumable-form .consumable-picture-field,
    .product-simple-page .compact-consumable-form [data-field-key="yield"],
    .product-simple-page .compact-consumable-form [data-field-key="coverage"],
    .product-simple-page .compact-consumable-form [data-field-key="partner-price"],
    .product-simple-page .compact-consumable-form [data-field-key="sale-price"] {
        grid-column: auto !important;
    }
    .product-simple-page .compact-consumable-form .toner-colour-field,
    .product-simple-page .compact-consumable-form .matching-models-field {
        grid-column: 1 / span 2 !important;
    }
}

@media (max-width: 650px) {
    .product-simple-page .compact-consumable-form .product-type-panel[data-product-type="Consumable"] .simple-type-grid {
        grid-template-columns: 1fr !important;
    }
    .product-simple-page .compact-consumable-form .toner-colour-field,
    .product-simple-page .compact-consumable-form .matching-models-field {
        grid-column: auto !important;
    }
}

/* V1 consumable colour dropdown with toner badges */
.toner-dropdown {
    position: relative;
    width: 100%;
    max-width: 340px;
}

.toner-dropdown-button {
    width: 100%;
    height: 42px;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid #d8dee8;
    background: #fff;
    border-radius: 10px;
    padding: 6px 12px 6px 8px;
    font-weight: 800;
    color: #1f2937;
    cursor: pointer;
    text-align: left;
}

.toner-dropdown-button:hover,
.toner-dropdown.open .toner-dropdown-button {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(235, 109, 32, .12);
}

.toner-dropdown-label {
    flex: 1;
}

.toner-dropdown-arrow {
    color: #64748b;
    font-size: 12px;
}

.toner-dropdown-menu {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 50;
    width: 100%;
    min-width: 250px;
    background: #fff;
    border: 1px solid #d8dee8;
    border-radius: 12px;
    box-shadow: 0 18px 38px rgba(15, 23, 42, .16);
    padding: 6px;
}

.toner-dropdown.open .toner-dropdown-menu {
    display: block;
}

.toner-dropdown-option {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 0;
    background: transparent;
    border-radius: 9px;
    padding: 8px;
    cursor: pointer;
    font-weight: 800;
    color: #1f2937;
    text-align: left;
}

.toner-dropdown-option:hover,
.toner-dropdown-option.selected {
    background: #fff7ed;
}

.toner-none-badge {
    min-width: 34px;
    width: 34px;
    height: 28px;
    border-radius: 999px;
    background: #f8fafc;
    color: #475569;
    border: 1px solid #cbd5e1;
    font-size: 11px;
}

.toner-k-badge {
    color: #fff;
    background: #111827;
}

.toner-c-badge {
    color: #fff;
    background: #00a7d8;
}

.toner-m-badge {
    color: #fff;
    background: #d1007f;
}

.toner-y-badge {
    color: #111827;
    background: #ffd400;
}


/* V1 consumable alignment cleanup: no helper text, compact rows */
.product-simple-page .compact-consumable-form .field-hint {
    display: none !important;
}
.product-simple-page .compact-consumable-form .section-title-row .pill {
    display: none !important;
}
.product-simple-page .compact-consumable-form .consumable-main-header p.muted {
    display: none !important;
}
.product-simple-page .compact-consumable-form .product-type-panel[data-product-type="Consumable"] .simple-type-grid {
    grid-template-columns: minmax(190px, 1fr) minmax(190px, 1fr) minmax(170px, .9fr) minmax(250px, 1.1fr) !important;
    gap: 14px 14px !important;
    align-items: end !important;
}
.product-simple-page .compact-consumable-form [data-field-key="consumable-code"] { grid-column: 1 / span 1 !important; }
.product-simple-page .compact-consumable-form [data-field-key="consumable-type"] { grid-column: 2 / span 1 !important; }
.product-simple-page .compact-consumable-form [data-field-key="quality"] { grid-column: 3 / span 1 !important; }
.product-simple-page .compact-consumable-form .consumable-picture-field { grid-column: 4 / span 1 !important; }
.product-simple-page .compact-consumable-form .toner-colour-field { grid-column: 1 / span 1 !important; }
.product-simple-page .compact-consumable-form [data-field-key="yield"] { grid-column: 2 / span 1 !important; }
.product-simple-page .compact-consumable-form [data-field-key="coverage"] { grid-column: 3 / span 1 !important; }
.product-simple-page .compact-consumable-form .matching-models-field { grid-column: 1 / span 4 !important; }
.product-simple-page .compact-consumable-form [data-field-key="partner-price"] { grid-column: 1 / span 1 !important; }
.product-simple-page .compact-consumable-form [data-field-key="sale-price"] { grid-column: 2 / span 1 !important; }
.product-simple-page .compact-consumable-form .toner-dropdown {
    max-width: none !important;
}
.product-simple-page .compact-consumable-form .form-actions-sticky.simple-actions {
    justify-content: flex-end;
}
@media (max-width: 980px) {
    .product-simple-page .compact-consumable-form .product-type-panel[data-product-type="Consumable"] .simple-type-grid {
        grid-template-columns: repeat(2, minmax(210px, 1fr)) !important;
    }
    .product-simple-page .compact-consumable-form [data-field-key="consumable-code"],
    .product-simple-page .compact-consumable-form [data-field-key="consumable-type"],
    .product-simple-page .compact-consumable-form [data-field-key="quality"],
    .product-simple-page .compact-consumable-form .consumable-picture-field,
    .product-simple-page .compact-consumable-form .toner-colour-field,
    .product-simple-page .compact-consumable-form [data-field-key="yield"],
    .product-simple-page .compact-consumable-form [data-field-key="coverage"],
    .product-simple-page .compact-consumable-form [data-field-key="partner-price"],
    .product-simple-page .compact-consumable-form [data-field-key="sale-price"] {
        grid-column: auto !important;
    }
    .product-simple-page .compact-consumable-form .matching-models-field {
        grid-column: 1 / span 2 !important;
    }
}
@media (max-width: 650px) {
    .product-simple-page .compact-consumable-form .product-type-panel[data-product-type="Consumable"] .simple-type-grid {
        grid-template-columns: 1fr !important;
    }
    .product-simple-page .compact-consumable-form .matching-models-field {
        grid-column: auto !important;
    }
}

/* Partner order product details - partners must understand what they are ordering */
.order-product-headline {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 2px;
}
.order-code-pill {
    display: inline-flex;
    align-items: center;
    padding: 4px 9px;
    border-radius: 999px;
    background: #eef2f7;
    color: #334155;
    font-size: 12px;
    font-weight: 800;
}
.machine-type-pill {
    background: #e0f2fe;
    color: #075985;
}
.order-product-details {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(145px, max-content));
    gap: 6px 14px;
    margin-top: 8px;
    align-items: center;
}
.order-product-details span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 24px;
    font-size: 12px;
    color: #374151;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    padding: 4px 8px;
    line-height: 1.2;
}
.order-product-details span.wide {
    grid-column: 1 / -1;
    border-radius: 10px;
    max-width: 100%;
}
.order-product-details b {
    color: #64748b;
    text-transform: uppercase;
    font-size: 10px;
    letter-spacing: .02em;
}
.order-short-description {
    margin: 8px 0 0;
}
.order-colour-detail {
    background: #fff !important;
}
.toner-colour-badge {
    width: 24px;
    height: 24px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    box-shadow: 0 0 0 2px #fff, 0 0 0 3px #d8dee8;
}
.toner-colour-black { background: #111827; color: #fff; }
.toner-colour-cyan { background: #00a7d8; color: #fff; }
.toner-colour-magenta { background: #d1007f; color: #fff; }
.toner-colour-yellow { background: #ffd400; color: #111827; }
.toner-colour-none { background: #f8fafc; color: #64748b; font-size: 10px; width: 34px; }
.basket-line-title em {
    display: block;
    color: #475569;
    font-size: 12px;
    font-weight: 700;
    font-style: normal;
    line-height: 1.25;
    margin-top: 2px;
}
.order-products.grid-mode .order-product-details {
    grid-template-columns: 1fr;
}
.order-products.grid-mode .order-product-details span {
    justify-content: flex-start;
    border-radius: 10px;
}
@media (max-width: 760px) {
    .order-product-details {
        grid-column: 1 / -1;
        grid-template-columns: 1fr;
    }
    .order-product-details span {
        border-radius: 10px;
    }
}

/* Cleaner Partner order product cards */
.order-product-card-clean {
    grid-template-columns: 74px minmax(0, 1fr) 115px 72px;
    align-items: center;
}
.order-product-card-clean .order-product-main {
    min-width: 0;
}
.order-product-card-clean .order-product-headline .tag {
    background: #fff4ea;
    color: #9a4a10;
    border: 1px solid #fed7aa;
}
.order-product-card-clean .order-product-main h3 {
    margin: 5px 0 6px;
    font-size: 17px;
    line-height: 1.2;
}
.order-product-title-row {
    display: flex;
    align-items: center;
    gap: 18px;
    min-width: 0;
    max-width: 100%;
}
.order-product-title-row h3 {
    flex: 0 0 auto;
    margin: 5px 0 6px !important;
    white-space: nowrap;
}
.order-product-title-row .order-product-summary-line {
    flex: 1 1 auto;
    min-width: 0;
    margin-top: 0;
}
.order-product-summary-line {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0;
    color: #0f172a;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    max-width: 100%;
}
.order-product-summary-line > span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex: 0 0 auto;
    font-weight: 800;
}
.order-product-summary-line > span + span::before {
    content: "•";
    color: #94a3b8;
    font-weight: 900;
    padding: 0 9px;
}
.order-colour-inline {
    min-width: max-content;
}
.order-colour-inline .toner-colour-badge {
    margin-right: 2px;
    flex: 0 0 auto;
}
.order-product-matching,
.order-product-notes {
    color: #475569;
    font-size: 13px;
    line-height: 1.35;
    margin-top: 6px;
    max-width: 100%;
}
.order-product-matching strong {
    color: #0f172a;
}
.order-product-notes {
    color: #64748b;
}
.order-products.grid-mode .order-product-card-clean {
    display: flex;
    flex-direction: column;
    align-items: stretch;
}
.order-products.grid-mode .order-product-card-clean .order-product-price {
    margin-top: auto;
    padding-top: 8px;
}
.order-products.grid-mode .order-product-title-row {
    display: block;
}
.order-products.grid-mode .order-product-summary-line {
    flex-wrap: wrap;
    white-space: normal;
    overflow: visible;
}
.order-products.grid-mode .order-product-summary-line > span + span::before {
    padding: 0 7px;
}
@media (max-width: 760px) {
    .order-product-card-clean {
        grid-template-columns: 64px minmax(0, 1fr);
    }
    .order-product-card-clean .order-product-price,
    .order-product-card-clean .add-to-basket {
        grid-column: 2;
        justify-self: start;
        text-align: left;
    }
    .order-product-title-row {
        display: block;
    }
    .order-product-title-row .order-product-summary-line {
        margin-top: 4px;
    }
}

/* =========================================================
   RDS Portal dashboard and navigation refresh - July 2026
   ========================================================= */
.topbar {
    height: auto;
    min-height: 76px;
    padding: 0;
    background: #141820;
    border-bottom: 1px solid rgba(255,255,255,.08);
}
.topbar-inner {
    width: 100%;
    max-width: 1700px;
    min-height: 76px;
    margin: 0 auto;
    padding: 10px 24px;
    display: grid;
    grid-template-columns: minmax(320px, auto) 1fr auto;
    gap: 24px;
    align-items: center;
}
.site-brand {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 12px;
}
.site-brand-logo {
    width: 108px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 8px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 5px 16px rgba(0,0,0,.2);
    flex: 0 0 auto;
}
.site-brand-logo img,
.site-brand img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 0;
    border-radius: 0;
    background: transparent;
}
.site-brand-text {
    min-width: 0;
    display: grid;
    gap: 2px;
}
.site-brand-text strong {
    color: #fff;
    font-size: 17px;
    line-height: 1.15;
    white-space: nowrap;
}
.site-brand-text small {
    color: #aeb5c1;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}
.topbar-links {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
}
.topbar-links a {
    padding: 9px 12px;
    border-radius: 9px;
    color: #d8dce3;
    font-size: 14px;
    font-weight: 800;
}
.topbar-links a:hover {
    color: #fff;
    background: rgba(255,255,255,.08);
}
.topbar-user {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.topbar-user-avatar {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    font-size: 14px;
    font-weight: 900;
    flex: 0 0 auto;
}
.topbar-user-details {
    max-width: 180px;
    display: grid;
    gap: 1px;
    min-width: 0;
}
.topbar-user-details strong,
.topbar-user-details small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.topbar-user-details strong { color: #fff; font-size: 13px; }
.topbar-user-details small { color: #aeb5c1; font-size: 11px; font-weight: 700; }
.topbar-logout {
    padding: 8px 10px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 9px;
    background: transparent;
    color: #fff;
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
}
.topbar-logout:hover { border-color: var(--primary); color: #ffd8b5; }
.topbar-login { white-space: nowrap; }

.page-shell {
    width: 100%;
    max-width: 1700px;
    min-height: calc(100vh - 126px);
    margin: 0 auto;
    padding: 24px;
}
.footer {
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px max(24px, calc((100vw - 1652px) / 2));
    font-size: 12px;
}

.portal-layout {
    grid-template-columns: 232px minmax(0, 1fr);
    gap: 24px;
}
.portal-nav {
    min-height: calc(100vh - 124px);
    padding: 14px;
    top: 18px;
    border-radius: 18px;
    box-shadow: 0 16px 34px rgba(13,17,23,.12);
    display: flex;
    flex-direction: column;
}
.portal-nav-head {
    padding: 8px 10px 16px;
    border-bottom: 1px solid rgba(255,255,255,.1);
    margin-bottom: 10px;
}
.portal-title { padding: 0; font-size: 22px; }
.portal-subtitle {
    margin-top: 3px;
    color: #979fad;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.portal-nav-links { display: grid; gap: 3px; }
.portal-nav a.portal-link {
    min-height: 42px;
    padding: 8px 9px;
    display: flex;
    align-items: center;
    gap: 10px;
    border-radius: 11px;
    color: #e5e7eb;
    font-size: 13px;
    font-weight: 800;
    transition: background .14s ease, color .14s ease, transform .14s ease;
}
.portal-nav a.portal-link:hover {
    background: rgba(255,255,255,.09);
    color: #fff;
    transform: translateX(1px);
}
.portal-nav a.portal-link.active {
    background: var(--primary);
    color: #fff;
    box-shadow: 0 6px 16px rgba(233,120,24,.24);
}
.portal-link-icon {
    width: 25px;
    height: 25px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(255,255,255,.09);
    color: #d8dde5;
    font-size: 10px;
    font-weight: 900;
    flex: 0 0 auto;
}
.portal-link.active .portal-link-icon {
    background: rgba(255,255,255,.2);
    color: #fff;
}
.portal-group {
    padding: 17px 9px 6px;
    color: #8f98a8;
    font-size: 10px;
    letter-spacing: .1em;
}
.portal-nav-footer {
    margin-top: auto;
    padding-top: 16px;
}
.portal-nav-footer a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 11px;
    color: #cdd2da;
    font-size: 12px;
    font-weight: 800;
}
.portal-nav-footer a:hover { border-color: rgba(233,120,24,.7); color: #fff; }

.dashboard-page { min-width: 0; }
.dashboard-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}
.dashboard-heading h1 {
    margin: 3px 0 5px;
    color: #171b23;
    font-size: clamp(28px, 3vw, 38px);
    letter-spacing: -.025em;
}
.dashboard-heading p { margin: 0; }
.dashboard-eyebrow {
    color: var(--primary);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .1em;
}
.dashboard-heading-actions {
    display: flex;
    gap: 9px;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.dashboard-heading-actions .button { min-height: 40px; }

.dashboard-stat-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(170px, 1fr));
    gap: 13px;
    margin-bottom: 18px;
}
.dashboard-stat {
    min-width: 0;
    min-height: 124px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px;
    border: 1px solid #dfe3e8;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 7px 18px rgba(17,24,39,.045);
    transition: border .14s ease, transform .14s ease, box-shadow .14s ease;
}
.dashboard-stat:hover {
    border-color: #f0a25f;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(17,24,39,.08);
}
.dashboard-stat-icon {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 11px;
    background: #fff2e6;
    color: #b65300;
    font-size: 12px;
    font-weight: 900;
}
.dashboard-stat-body {
    min-width: 0;
    display: grid;
    gap: 2px;
}
.dashboard-stat-label {
    color: #697180;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.dashboard-stat-body strong {
    color: #151922;
    font-size: 27px;
    line-height: 1.15;
}
.dashboard-stat-body small {
    color: #7a8290;
    font-size: 11px;
    line-height: 1.35;
}
.dashboard-online-text { color: #177245 !important; font-size: 22px !important; }

.dashboard-main-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.75fr) minmax(300px, .75fr);
    gap: 18px;
    align-items: start;
}
.dashboard-main-grid.single-column {
    grid-template-columns: minmax(0, 680px);
}
.dashboard-panel {
    min-width: 0;
    padding: 18px;
    border: 1px solid #dfe3e8;
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(17,24,39,.045);
}
.dashboard-panel-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}
.dashboard-panel-heading.compact { margin-bottom: 12px; }
.dashboard-panel-heading h2 {
    margin: 0 0 3px;
    color: #171b23;
    font-size: 18px;
}
.dashboard-panel-heading p { margin: 0; font-size: 12px; }
.dashboard-text-link {
    color: #bd5a06;
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}
.dashboard-text-link:hover { text-decoration: underline; }
.dashboard-table-wrap { overflow-x: auto; border-radius: 12px; }
.dashboard-orders-table { min-width: 760px; border: 0; }
.dashboard-orders-table thead th {
    padding: 9px 10px;
    background: #f6f7f9;
    color: #707887;
    font-size: 10px;
    letter-spacing: .05em;
}
.dashboard-orders-table tbody td { padding: 11px 10px; font-size: 12px; }
.dashboard-orders-table tbody tr:last-child td { border-bottom: 0; }
.dashboard-table-subtext {
    display: block;
    margin-top: 2px;
    color: #818895;
    font-size: 10px;
    font-weight: 500;
}
.dashboard-status {
    display: inline-flex;
    align-items: center;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 900;
    white-space: nowrap;
}
.status-pending { background: #fff7df; color: #8a5a00; }
.status-success { background: #eaf8ef; color: #17643b; }
.status-danger { background: #feeeee; color: #9a2525; }
.status-info { background: #eaf2ff; color: #24579a; }
.dashboard-empty-state {
    padding: 34px 16px !important;
    text-align: center !important;
}
.dashboard-empty-state strong,
.dashboard-empty-state span { display: block; }
.dashboard-empty-state span { margin-top: 5px; color: #7a8290; font-size: 11px; }

.dashboard-side-stack { display: grid; gap: 18px; }
.dashboard-quick-actions { display: grid; gap: 8px; }
.dashboard-quick-actions > a {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 10px;
    padding: 10px;
    border: 1px solid #e2e5ea;
    border-radius: 12px;
    background: #fbfbfc;
}
.dashboard-quick-actions > a:hover { border-color: #f0a25f; background: #fffaf5; }
.dashboard-quick-actions > a > span {
    grid-row: 1 / span 2;
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    background: #fff2e6;
    color: #b65300;
    font-size: 15px;
    font-weight: 900;
}
.dashboard-quick-actions strong { color: #20242c; font-size: 12px; }
.dashboard-quick-actions small { color: #7b8290; font-size: 10px; line-height: 1.35; }
.dashboard-system-panel { background: linear-gradient(150deg, #fff, #fbfcfd); }
.dashboard-health-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0;
    border-top: 1px solid #eceef2;
    font-size: 12px;
}
.dashboard-health-row span { display: flex; align-items: center; gap: 8px; color: #5f6775; font-weight: 800; }
.dashboard-health-row i {
    width: 8px;
    height: 8px;
    display: inline-block;
    border-radius: 50%;
    background: #27a562;
    box-shadow: 0 0 0 4px #e5f7ec;
}
.dashboard-health-row strong { color: #17643b; }

@media (max-width: 1450px) {
    .dashboard-stat-grid { grid-template-columns: repeat(3, minmax(180px, 1fr)); }
}
@media (max-width: 1160px) {
    .topbar-inner { grid-template-columns: minmax(280px, 1fr) auto; }
    .topbar-links { display: none; }
    .dashboard-main-grid { grid-template-columns: 1fr; }
    .dashboard-side-stack { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
    .page-shell { padding: 16px; }
    .portal-layout { grid-template-columns: 1fr; }
    .portal-nav { min-height: 0; position: static; }
    .portal-nav-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .portal-group { grid-column: 1 / -1; }
    .portal-nav-footer { margin-top: 12px; }
    .dashboard-heading { align-items: flex-start; flex-direction: column; }
    .dashboard-heading-actions { justify-content: flex-start; }
}
@media (max-width: 720px) {
    .topbar-inner { display: flex; flex-wrap: wrap; gap: 12px; }
    .site-brand { flex: 1 1 280px; }
    .site-brand-text small { display: none; }
    .topbar-user { flex: 1 1 100%; padding-top: 8px; border-top: 1px solid rgba(255,255,255,.08); }
    .topbar-user-details { max-width: none; flex: 1; }
    .footer { flex-direction: column; align-items: flex-start; }
    .dashboard-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-side-stack { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
    .site-brand-logo { width: 92px; height: 42px; }
    .site-brand-text strong { font-size: 14px; }
    .portal-nav-links { grid-template-columns: 1fr; }
    .portal-group { grid-column: auto; }
    .dashboard-stat-grid { grid-template-columns: 1fr; }
    .dashboard-heading-actions { width: 100%; }
    .dashboard-heading-actions .button { flex: 1 1 100%; }
}

/* =========================================================
   RDS public website and catalogue refresh - July 2026
   ========================================================= */
body {
    font-family: "Segoe UI", Arial, Helvetica, sans-serif;
    background: #f3f5f8;
}

.topbar-links a.active {
    color: #fff;
    background: rgba(233,120,24,.18);
    box-shadow: inset 0 0 0 1px rgba(233,120,24,.32);
}

.topbar-public .site-brand-logo {
    width: 118px;
    height: 50px;
    padding: 0;
    background: transparent;
    box-shadow: none;
}

.topbar-public .site-brand-logo img {
    filter: drop-shadow(0 2px 2px rgba(0,0,0,.28));
}

.public-home-hero {
    min-height: 520px;
    grid-template-columns: minmax(0, 1.18fr) minmax(390px, .82fr);
    gap: 42px;
    padding: 58px;
    border: 1px solid rgba(255,255,255,.08);
    background:
        radial-gradient(circle at 14% 18%, rgba(233,120,24,.34), transparent 31%),
        radial-gradient(circle at 88% 12%, rgba(255,255,255,.08), transparent 26%),
        linear-gradient(135deg, #11151d 0%, #222936 58%, #11151c 100%);
    box-shadow: 0 24px 58px rgba(20,24,32,.16);
}

.public-home-hero::after {
    content: "";
    position: absolute;
    inset: auto -130px -190px auto;
    width: 430px;
    height: 430px;
    border: 80px solid rgba(233,120,24,.08);
    border-radius: 50%;
    pointer-events: none;
}

.public-home-hero {
    position: relative;
}

.public-home-hero .public-hero-content,
.public-home-hero .hero-showcase {
    position: relative;
    z-index: 1;
}

.public-home-hero h1 {
    max-width: 850px;
    font-size: clamp(42px, 5vw, 72px);
    letter-spacing: -.035em;
}

.public-home-hero p {
    max-width: 760px;
    font-size: 20px;
}

.public-hero-primary {
    min-width: 160px;
    box-shadow: 0 12px 28px rgba(233,120,24,.24);
}

.hero-trust-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 30px;
}

.hero-trust-row span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 12px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 999px;
    background: rgba(255,255,255,.06);
    color: #cfd4dd;
    font-size: 12px;
    font-weight: 700;
}

.hero-trust-row strong {
    color: #fff;
    font-weight: 900;
}

.hero-showcase {
    align-self: center;
    display: grid;
    gap: 14px;
}

.hero-showcase-brand {
    display: grid;
    gap: 18px;
    padding: 26px;
    border-radius: 24px;
    background: rgba(255,255,255,.97);
    color: var(--text);
    box-shadow: 0 24px 55px rgba(0,0,0,.28);
}

.hero-showcase-brand img {
    width: 100%;
    max-width: 340px;
    max-height: 118px;
    object-fit: contain;
}

.hero-showcase-brand div {
    display: grid;
    gap: 4px;
}

.hero-showcase-brand strong {
    font-size: 22px;
}

.hero-showcase-brand span {
    color: #6d7481;
    font-size: 13px;
    font-weight: 700;
}

.hero-capability-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.hero-capability-grid > div {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    column-gap: 10px;
    row-gap: 2px;
    padding: 15px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 16px;
    background: rgba(255,255,255,.075);
}

.hero-capability-icon {
    grid-row: 1 / span 2;
    align-self: center;
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(233,120,24,.2);
    color: #ffd4b0;
    font-size: 10px;
    font-weight: 900;
}

.hero-capability-grid strong {
    color: #fff;
    font-size: 13px;
}

.hero-capability-grid small {
    color: #b9c0cb;
    font-size: 10px;
    line-height: 1.35;
}

.public-value-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin: -8px 24px 34px;
    overflow: hidden;
    border: 1px solid #dde1e7;
    border-radius: 18px;
    background: #dde1e7;
    box-shadow: 0 12px 32px rgba(20,24,32,.06);
}

.public-value-strip > div {
    display: grid;
    gap: 3px;
    padding: 18px 20px;
    background: #fff;
}

.public-value-strip strong {
    color: #20242c;
    font-size: 14px;
}

.public-value-strip span {
    color: #737b88;
    font-size: 12px;
}

.public-section-heading {
    align-items: flex-end;
}

.public-section-heading > div > p {
    max-width: 760px;
    margin: 8px 0 0;
    color: #707887;
    line-height: 1.55;
}

.professional-category-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.professional-category-card {
    position: relative;
    grid-template-columns: 1fr;
    min-height: 285px;
    padding: 22px;
    overflow: hidden;
    border-radius: 20px;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.professional-category-card::before {
    content: "";
    position: absolute;
    width: 150px;
    height: 150px;
    right: -65px;
    top: -65px;
    border-radius: 50%;
    background: rgba(233,120,24,.07);
}

.professional-category-card:hover {
    transform: translateY(-5px);
    border-color: rgba(233,120,24,.62);
    box-shadow: 0 18px 38px rgba(26,31,40,.11);
}

.category-visual {
    width: 66px;
    height: 66px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    background: linear-gradient(145deg, #fff2e7, #ffe5cf);
    color: #c75d08;
}

.category-visual svg {
    width: 38px;
    height: 38px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.category-copy {
    display: grid;
    align-content: start;
}

.category-overline {
    margin-bottom: 7px;
    color: #bd5c0b !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.professional-category-card h3 {
    margin: 0 0 10px;
    font-size: 21px;
}

.professional-category-card p {
    min-height: 68px;
    margin-bottom: 16px;
    font-size: 13px;
}

.category-availability {
    margin-top: auto;
    color: #b35309 !important;
    font-size: 12px !important;
}

.category-arrow {
    position: absolute;
    right: 20px;
    bottom: 18px;
    color: #c85e09 !important;
    font-size: 22px !important;
    transition: transform .18s ease;
}

.professional-category-card:hover .category-arrow {
    transform: translateX(4px);
}

.public-featured-section {
    padding: 30px;
    border: 1px solid #e0e4ea;
    border-radius: 24px;
    background: linear-gradient(180deg, #fff, #fafbfc);
}

.professional-product-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.public-product-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #dfe3e9;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(20,24,32,.045);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.public-product-card:hover {
    transform: translateY(-4px);
    border-color: rgba(233,120,24,.6);
    box-shadow: 0 18px 38px rgba(20,24,32,.1);
}

.public-card-image-wrap {
    height: 230px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    border-bottom: 1px solid #eceff3;
    background: linear-gradient(160deg, #fbfcfd, #f1f4f8);
}

.public-card-image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    mix-blend-mode: multiply;
}

.catalog-placeholder {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 12px;
    border: 1px dashed #cbd1da;
    border-radius: 14px;
    color: #8a929f;
    background: rgba(255,255,255,.62);
}

.catalog-placeholder svg {
    width: 72px;
    height: 72px;
    fill: none;
    stroke: #a7aeb9;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.catalog-placeholder span {
    color: #818996;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.catalog-placeholder-machine svg,
.catalog-placeholder-consumable svg {
    stroke: #d66b13;
}

.public-product-card-body {
    display: grid;
    min-height: 205px;
    padding: 18px;
}

.public-product-card-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 30px;
}

.public-product-card-meta .tag {
    margin: 0;
}

.public-product-card-meta > span:not(.tag) {
    overflow: hidden;
    color: #848c98;
    font-size: 11px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.public-product-card h3 {
    margin: 12px 0 8px;
    color: #1d222b;
    font-size: 19px;
    line-height: 1.25;
}

.public-product-card p {
    display: -webkit-box;
    overflow: hidden;
    margin: 0 0 14px;
    color: #6f7784;
    font-size: 13px;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.public-product-card .product-card-link {
    align-self: end;
    justify-content: space-between;
    width: 100%;
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid #edf0f3;
    font-size: 12px;
}

.public-product-card .product-card-link b {
    font-size: 17px;
}

.public-company-section {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(360px, .75fr);
    gap: 20px;
    align-items: stretch;
}

.public-company-story,
.public-partner-card {
    padding: 30px;
    border: 1px solid #dfe3e9;
    border-radius: 22px;
    background: #fff;
}

.public-company-story h2,
.public-partner-card h2 {
    margin: 10px 0 12px;
    font-size: 32px;
}

.public-company-story > p,
.public-partner-card > p {
    max-width: 760px;
    color: #6f7784;
    line-height: 1.65;
}

.professional-about-points {
    margin-top: 24px;
}

.public-partner-card {
    color: #fff;
    border-color: #1d222d;
    background:
        radial-gradient(circle at 100% 0%, rgba(233,120,24,.34), transparent 38%),
        linear-gradient(150deg, #171b24, #272e3b);
    box-shadow: 0 18px 42px rgba(20,24,32,.14);
}

.public-partner-card > p {
    color: #cdd3dc;
}

.public-partner-eyebrow {
    color: #ffbd86;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.public-partner-card ul {
    display: grid;
    gap: 9px;
    padding: 0;
    margin: 22px 0 26px;
    list-style: none;
}

.public-partner-card li {
    position: relative;
    padding-left: 24px;
    color: #e3e7ed;
    font-size: 13px;
    font-weight: 700;
}

.public-partner-card li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: #ff9c4d;
    font-weight: 900;
}

.professional-products-hero {
    min-height: 250px;
    padding: 34px;
    color: #fff;
    border-color: #202632;
    background:
        radial-gradient(circle at 86% 12%, rgba(233,120,24,.35), transparent 30%),
        linear-gradient(140deg, #151922, #293140);
    box-shadow: 0 18px 42px rgba(20,24,32,.12);
}

.professional-products-hero h1 {
    max-width: 850px;
    color: #fff;
    font-size: clamp(36px, 4vw, 54px);
    letter-spacing: -.025em;
}

.professional-products-hero p {
    color: #cfd4dd;
    line-height: 1.6;
}

.professional-products-hero .tag {
    color: #ffd3ae;
    background: rgba(233,120,24,.18);
}

.catalogue-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

.catalogue-summary span {
    padding: 8px 11px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 999px;
    color: #cfd4dd;
    background: rgba(255,255,255,.06);
    font-size: 11px;
    font-weight: 700;
}

.catalogue-summary strong {
    color: #fff;
}

.public-catalogue-tools {
    margin: 18px 0 22px;
    padding: 16px;
    border: 1px solid #dfe3e9;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(20,24,32,.04);
}

.public-search-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    margin-bottom: 14px;
}

.public-search-box {
    position: relative;
}

.public-search-box > svg {
    position: absolute;
    left: 15px;
    top: 50%;
    width: 20px;
    height: 20px;
    transform: translateY(-50%);
    fill: none;
    stroke: #858e9a;
    stroke-width: 2;
    stroke-linecap: round;
}

.public-search-box input {
    min-height: 48px;
    padding-left: 46px;
    padding-right: 44px;
    border-radius: 13px;
    background: #f9fafc;
}

.public-search-box input:focus {
    border-color: #ef974f;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(233,120,24,.13);
}

.public-search-clear {
    position: absolute;
    right: 10px;
    top: 50%;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transform: translateY(-50%);
    border-radius: 50%;
    color: #606875;
    background: #e9edf2;
    font-size: 18px;
    line-height: 1;
}

.product-type-tabs {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
}

.product-type-tabs a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
    padding: 10px 12px;
    border: 1px solid #e0e4ea;
    border-radius: 11px;
    color: #555e6c;
    background: #fafbfc;
    font-size: 12px;
    font-weight: 800;
}

.product-type-tabs a:hover,
.product-type-tabs a.active {
    color: #a64808;
    border-color: rgba(233,120,24,.45);
    background: #fff4ea;
}

.product-type-tabs strong {
    min-width: 24px;
    padding: 3px 6px;
    border-radius: 999px;
    color: #555e6c;
    background: #e8ebef;
    font-size: 10px;
    text-align: center;
}

.product-type-tabs a.active strong {
    color: #fff;
    background: var(--primary);
}

.catalogue-results-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 16px;
}

.catalogue-results-heading h2 {
    margin: 0 0 4px;
    font-size: 28px;
}

.catalogue-results-heading p {
    margin: 0;
    color: #747c89;
    font-size: 13px;
}

.catalogue-product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.professional-empty-state {
    max-width: 720px;
    margin: 34px auto;
    padding: 48px 32px;
    border-style: dashed;
}

.professional-empty-state p {
    max-width: 520px;
    margin: 0 auto 20px;
    color: #707887;
}

.empty-state-icon {
    width: 76px;
    height: 76px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
    border-radius: 22px;
    color: #d46a12;
    background: #fff1e5;
}

.empty-state-icon svg {
    width: 42px;
    height: 42px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.public-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin: 2px 0 16px;
    color: #7a828f;
    font-size: 12px;
}

.public-breadcrumb a:hover {
    color: var(--primary);
}

.public-breadcrumb strong {
    color: #343b46;
}

.professional-product-detail {
    grid-template-columns: minmax(360px, 46%) minmax(0, 1fr);
    gap: 42px;
    padding: 28px;
    border-radius: 24px;
    box-shadow: 0 14px 36px rgba(20,24,32,.06);
}

.public-product-gallery {
    min-width: 0;
}

.public-main-image-frame {
    height: 480px;
    padding: 24px;
    border: 1px solid #e0e4ea;
    border-radius: 20px;
    background: linear-gradient(160deg, #fcfdfe, #f2f5f8);
}

.public-main-image-frame .main-product-image {
    height: 100%;
    border: 0;
    background: transparent;
    mix-blend-mode: multiply;
}

.public-thumbnail-row {
    display: flex;
    gap: 9px;
    margin-top: 12px;
    overflow-x: auto;
    padding-bottom: 4px;
}

.public-thumbnail {
    width: 76px;
    height: 68px;
    flex: 0 0 auto;
    padding: 5px;
    border: 1px solid #dfe3e9;
    border-radius: 11px;
    background: #fff;
    cursor: pointer;
}

.public-thumbnail.active,
.public-thumbnail:hover {
    border-color: var(--primary);
    box-shadow: 0 0 0 2px rgba(233,120,24,.12);
}

.public-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.public-product-gallery > .public-card-image-wrap {
    height: 480px;
    border: 1px solid #e0e4ea;
    border-radius: 20px;
}

.public-product-information {
    align-self: center;
    min-width: 0;
}

.public-product-title-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.public-product-title-meta .tag {
    margin: 0;
}

.public-product-title-meta > span:not(.tag) {
    color: #7b8390;
    font-size: 12px;
    font-weight: 800;
}

.public-product-information h1 {
    margin: 15px 0 12px;
    color: #1a1f27;
    font-size: clamp(34px, 4vw, 54px);
    line-height: 1.08;
    letter-spacing: -.03em;
}

.public-product-lead {
    margin: 0;
    color: #4f5866;
    font-size: 19px;
    font-weight: 650;
    line-height: 1.5;
}

.public-product-description {
    margin-top: 16px;
    color: #6d7582;
    font-size: 14px;
    line-height: 1.7;
    white-space: pre-line;
}

.public-product-identity-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
    margin: 24px 0;
}

.public-product-identity-grid > div {
    display: grid;
    gap: 4px;
    min-width: 0;
    padding: 12px;
    border: 1px solid #e2e6eb;
    border-radius: 12px;
    background: #f8fafc;
}

.public-product-identity-grid span {
    color: #858d99;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.public-product-identity-grid strong {
    overflow: hidden;
    color: #303741;
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.public-product-actions,
.public-detail-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.public-price-note {
    margin: 12px 0 0;
    color: #838b97;
    font-size: 11px;
    font-weight: 700;
}

.public-specification-panel {
    margin: 24px 0;
    overflow: hidden;
    border: 1px solid #dfe3e9;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(20,24,32,.045);
}

.public-specification-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    padding: 22px 24px;
    border-bottom: 1px solid #e8ebef;
    background: linear-gradient(180deg, #fff, #fbfcfd);
}

.public-specification-heading h2 {
    margin: 7px 0 0;
    font-size: 28px;
}

.public-specification-heading > span {
    color: #858d99;
    font-size: 11px;
    font-weight: 800;
}

.public-specification-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin: 0;
    background: #e8ebef;
}

.public-specification-grid > div {
    display: grid;
    grid-template-columns: minmax(130px, .45fr) minmax(0, 1fr);
    gap: 18px;
    padding: 16px 20px;
    background: #fff;
}

.public-specification-grid > div.wide {
    grid-column: 1 / -1;
}

.public-specification-grid dt {
    color: #7a828f;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.public-specification-grid dd {
    min-width: 0;
    margin: 0;
    color: #303741;
    font-size: 13px;
    font-weight: 750;
    line-height: 1.5;
    white-space: pre-line;
}

.public-specification-grid dd a {
    color: #b45309;
    text-decoration: underline;
}

.professional-detail-cta {
    padding: 28px;
    color: #fff;
    border-color: #1e2530;
    border-radius: 22px;
    background:
        radial-gradient(circle at 96% 4%, rgba(233,120,24,.35), transparent 32%),
        linear-gradient(145deg, #151922, #29313e);
}

.professional-detail-cta h2 {
    color: #fff;
}

.professional-detail-cta p {
    max-width: 760px;
    color: #ccd2db;
    line-height: 1.55;
}

.professional-detail-cta .tag {
    color: #ffd0a9;
    background: rgba(233,120,24,.18);
}

.professional-detail-cta .button:not(.primary) {
    color: #fff;
    border-color: rgba(255,255,255,.22);
    background: rgba(255,255,255,.07);
}

.public-login-shell {
    min-height: 690px;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(390px, .65fr);
    gap: 42px;
    align-items: center;
    padding: 54px;
    overflow: hidden;
    border-radius: 24px;
    color: #fff;
    background:
        radial-gradient(circle at 9% 13%, rgba(233,120,24,.34), transparent 30%),
        radial-gradient(circle at 94% 90%, rgba(255,255,255,.07), transparent 24%),
        linear-gradient(135deg, #11151d, #252d3a 65%, #12161e);
    box-shadow: 0 24px 58px rgba(20,24,32,.16);
}

.public-login-intro h1 {
    max-width: 760px;
    margin: 12px 0 16px;
    font-size: clamp(40px, 5vw, 66px);
    line-height: 1.06;
    letter-spacing: -.035em;
}

.public-login-intro > p {
    max-width: 720px;
    margin: 0;
    color: #d1d6df;
    font-size: 18px;
    line-height: 1.65;
}

.public-login-benefits {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 28px 0;
}

.public-login-benefits > div {
    display: grid;
    gap: 5px;
    padding: 15px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 14px;
    background: rgba(255,255,255,.06);
}

.public-login-benefits strong {
    font-size: 13px;
}

.public-login-benefits span {
    color: #bdc4ce;
    font-size: 11px;
    line-height: 1.45;
}

.public-login-back {
    color: #ffbf8b;
    font-size: 12px;
    font-weight: 800;
}

.professional-auth-box {
    width: 100%;
    max-width: 480px;
    margin: 0;
    padding: 26px;
    border: 0;
    border-radius: 22px;
    color: var(--text);
    box-shadow: 0 25px 60px rgba(0,0,0,.28);
}

.professional-auth-brand {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid #e8ebef;
}

.professional-auth-brand img {
    width: 105px;
    height: 48px;
    object-fit: contain;
}

.professional-auth-brand div {
    display: grid;
    gap: 3px;
}

.professional-auth-brand strong {
    font-size: 19px;
}

.professional-auth-brand span {
    color: #7a828f;
    font-size: 11px;
    font-weight: 700;
}

.professional-login-form label {
    color: #59616e;
    font-size: 12px;
    font-weight: 800;
}

.professional-login-form input {
    min-height: 47px;
    border-radius: 12px;
    background: #fafbfc;
}

.professional-login-button {
    min-height: 47px;
    margin-top: 5px;
}

.professional-forgot-link {
    color: #a84e0b;
    font-size: 12px;
    font-weight: 800;
    text-align: center;
}

.professional-auth-note {
    display: grid;
    gap: 3px;
    margin-top: 20px;
    padding: 13px;
    border: 1px solid #e1e5ea;
    border-radius: 12px;
    background: #f8fafc;
}

.professional-auth-note strong {
    font-size: 12px;
}

.professional-auth-note span {
    color: #737b88;
    font-size: 10px;
    line-height: 1.45;
}

.professional-footer {
    max-width: none;
    min-height: 72px;
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 28px;
    padding-top: 16px;
    padding-bottom: 16px;
    color: #727a87;
    background: #fff;
}

.professional-footer-brand {
    display: grid;
    gap: 2px;
}

.professional-footer-brand strong {
    color: #303741;
    font-size: 13px;
}

.professional-footer nav {
    display: flex;
    gap: 16px;
    align-items: center;
}

.professional-footer a {
    font-weight: 800;
}

.professional-footer a:hover {
    color: var(--primary);
}

@media (max-width: 1450px) {
    .professional-category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .catalogue-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1160px) {
    .topbar-authenticated .topbar-links { display: none; }
    .topbar-public .topbar-links { display: flex; }
    .public-home-hero,
    .public-login-shell { grid-template-columns: 1fr; }
    .public-home-hero { padding: 42px; }
    .hero-showcase { max-width: 760px; }
    .public-company-section { grid-template-columns: 1fr; }
    .professional-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .product-type-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .public-value-strip { grid-template-columns: 1fr; margin-left: 0; margin-right: 0; }
    .professional-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .professional-product-detail { grid-template-columns: 1fr; gap: 26px; }
    .public-main-image-frame,
    .public-product-gallery > .public-card-image-wrap { height: 400px; }
    .public-product-identity-grid { grid-template-columns: 1fr 1fr; }
    .public-login-shell { padding: 34px; }
    .public-login-benefits { grid-template-columns: 1fr; }
    .professional-footer { grid-template-columns: 1fr; gap: 10px; }
}

@media (max-width: 720px) {
    .topbar-public .topbar-inner { display: grid; grid-template-columns: 1fr auto; }
    .topbar-public .site-brand { min-width: 0; }
    .topbar-public .site-brand-logo { width: 94px; height: 42px; }
    .topbar-public .topbar-links {
        grid-column: 1 / -1;
        justify-content: flex-start;
        order: 3;
        width: 100%;
        padding-top: 8px;
        border-top: 1px solid rgba(255,255,255,.08);
    }
    .topbar-public .topbar-login { align-self: center; }
    .public-home-hero,
    .public-login-shell { padding: 28px; border-radius: 18px; }
    .public-home-hero h1,
    .public-login-intro h1 { font-size: 40px; }
    .hero-capability-grid { grid-template-columns: 1fr; }
    .professional-category-grid,
    .professional-product-grid,
    .catalogue-product-grid { grid-template-columns: 1fr; }
    .professional-category-card { min-height: 250px; }
    .public-featured-section { padding: 20px; }
    .public-search-form { grid-template-columns: 1fr; }
    .product-type-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .catalogue-results-heading,
    .public-specification-heading { align-items: flex-start; flex-direction: column; }
    .public-main-image-frame,
    .public-product-gallery > .public-card-image-wrap { height: 330px; }
    .public-product-identity-grid { grid-template-columns: 1fr; }
    .public-specification-grid { grid-template-columns: 1fr; }
    .public-specification-grid > div,
    .public-specification-grid > div.wide { grid-column: auto; grid-template-columns: 1fr; gap: 6px; }
    .professional-detail-cta { align-items: flex-start; }
}

@media (max-width: 520px) {
    .topbar-public .site-brand-text { display: none; }
    .topbar-public .topbar-login { padding: 8px 10px; font-size: 12px; }
    .public-home-hero,
    .public-login-shell { padding: 22px; }
    .public-home-hero h1,
    .public-login-intro h1 { font-size: 34px; }
    .public-home-hero p,
    .public-login-intro > p { font-size: 16px; }
    .hero-trust-row { display: grid; }
    .hero-showcase-brand { padding: 20px; }
    .product-type-tabs { grid-template-columns: 1fr; }
    .professional-products-hero { padding: 24px; }
    .professional-products-hero .button { width: 100%; }
    .professional-product-detail { padding: 18px; }
    .public-main-image-frame,
    .public-product-gallery > .public-card-image-wrap { height: 280px; }
    .public-product-information h1 { font-size: 34px; }
    .public-product-actions .button,
    .public-detail-cta-actions .button { width: 100%; }
    .public-company-story,
    .public-partner-card { padding: 22px; }
    .professional-auth-box { padding: 20px; }
}

/* Final public header/category tuning */
.topbar-public .site-brand-logo {
    padding: 4px 7px;
    background: #fff;
    box-shadow: 0 5px 16px rgba(0,0,0,.2);
}

.topbar-public .site-brand-logo img {
    filter: none;
}

@media (max-width: 1450px) and (min-width: 1201px) {
    .professional-category-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

@media (max-width: 1200px) {
    .professional-category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* =========================================================
   RDS PUBLIC PRODUCT SHOWCASE - EQUIPMENT + SOFTWARE ONLY
   ========================================================= */

.showcase-home-hero {
    min-height: 540px;
}

.showcase-product-map .hero-showcase-brand {
    border: 1px solid rgba(233,120,24,.22);
}

.showcase-value-strip strong {
    color: #20242c;
}

.showcase-categories-section,
.showcase-featured-section,
.showcase-solutions-section,
.showcase-company-section {
    scroll-margin-top: 100px;
}

.showcase-category-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.showcase-category-card {
    position: relative;
    min-height: 270px;
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    align-items: start;
    gap: 22px;
    padding: 28px;
    overflow: hidden;
    border: 1px solid #dfe3e9;
    border-radius: 22px;
    background:
        radial-gradient(circle at 100% 0%, rgba(233,120,24,.09), transparent 36%),
        #fff;
    box-shadow: 0 9px 26px rgba(20,24,32,.045);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.showcase-category-card::before {
    content: "";
    position: absolute;
    right: -70px;
    bottom: -85px;
    width: 200px;
    height: 200px;
    border: 42px solid rgba(233,120,24,.055);
    border-radius: 50%;
}

.showcase-category-card:hover {
    transform: translateY(-5px);
    border-color: rgba(233,120,24,.62);
    box-shadow: 0 20px 42px rgba(26,31,40,.11);
}

.showcase-category-card .category-visual {
    position: relative;
    z-index: 1;
    width: 82px;
    height: 82px;
    border-radius: 22px;
}

.showcase-category-card .category-visual svg {
    width: 46px;
    height: 46px;
}

.showcase-category-card .category-copy {
    position: relative;
    z-index: 1;
    min-width: 0;
    min-height: 210px;
}

.showcase-category-card h3 {
    margin: 0 0 10px;
    color: #20242c;
    font-size: 25px;
    line-height: 1.18;
}

.showcase-category-card p {
    max-width: 620px;
    margin: 0 0 20px;
    color: #6f7784;
    font-size: 14px;
    line-height: 1.58;
}

.showcase-category-card .category-availability {
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid #edf0f3;
    color: #ad5008 !important;
    font-weight: 850;
}

.showcase-category-card .category-arrow {
    z-index: 2;
    right: 24px;
    bottom: 20px;
}

.showcase-featured-section {
    padding: 30px;
    border: 1px solid #e0e4ea;
    border-radius: 24px;
    background: linear-gradient(180deg, #fff, #fafbfc);
}

.showcase-product-grid {
    align-items: stretch;
}

.showcase-product-card .public-product-card-body {
    min-height: 235px;
}

.showcase-product-card .public-product-card-meta .tag {
    max-width: 72%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.showcase-spec-line {
    margin: 0 0 11px;
    color: #ac510b;
    font-size: 11px;
    font-weight: 900;
    line-height: 1.45;
}

.showcase-solutions-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.showcase-solutions-grid article {
    position: relative;
    min-height: 190px;
    padding: 24px;
    overflow: hidden;
    border: 1px solid #dfe3e9;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(20,24,32,.04);
}

.showcase-solutions-grid article::after {
    content: "";
    position: absolute;
    right: -30px;
    bottom: -30px;
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background: rgba(233,120,24,.065);
}

.showcase-solutions-grid article > span {
    display: inline-flex;
    width: 35px;
    height: 35px;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: #fff0e3;
    color: #b9560b;
    font-size: 10px;
    font-weight: 900;
}

.showcase-solutions-grid h3 {
    margin: 18px 0 8px;
    color: #20242c;
    font-size: 19px;
}

.showcase-solutions-grid p {
    margin: 0;
    color: #727a87;
    font-size: 13px;
    line-height: 1.58;
}

.showcase-contact-card .showcase-contact-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.showcase-contact-card .button:not(.primary) {
    color: #fff;
    border-color: rgba(255,255,255,.22);
    background: rgba(255,255,255,.07);
}

.showcase-products-hero {
    position: relative;
    overflow: hidden;
    padding: 34px;
    background:
        radial-gradient(circle at 100% 0%, rgba(233,120,24,.1), transparent 36%),
        #fff;
}

.showcase-products-hero::after {
    content: "";
    position: absolute;
    right: -75px;
    bottom: -105px;
    width: 230px;
    height: 230px;
    border: 48px solid rgba(233,120,24,.055);
    border-radius: 50%;
    pointer-events: none;
}

.showcase-products-hero > * {
    position: relative;
    z-index: 1;
}

.showcase-catalogue-tools {
    border-color: #dfe3e9;
}

.showcase-category-tabs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.showcase-category-tabs a span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.showcase-results-heading h2 {
    max-width: 900px;
}

.showcase-catalogue-note {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 28px;
    padding: 22px 24px;
    border: 1px solid #dfe3e9;
    border-radius: 18px;
    background: #fff;
}

.showcase-catalogue-note > div {
    display: grid;
    gap: 4px;
}

.showcase-catalogue-note strong {
    color: #252b34;
    font-size: 14px;
}

.showcase-catalogue-note span {
    color: #747c88;
    font-size: 12px;
    line-height: 1.5;
}

.showcase-product-detail .public-product-title-meta .tag {
    max-width: 100%;
}

.showcase-product-actions {
    flex-wrap: wrap;
}

.showcase-specification-panel {
    border-color: #dce1e7;
}

.showcase-detail-cta {
    margin-bottom: 4px;
}

.showcase-topbar-links {
    gap: 4px;
}

.showcase-topbar-links a {
    padding-left: 11px;
    padding-right: 11px;
}

@media (max-width: 1240px) {
    .showcase-topbar-links a {
        padding-left: 8px;
        padding-right: 8px;
        font-size: 12px;
    }

    .showcase-category-grid {
        grid-template-columns: 1fr 1fr;
    }

    .showcase-solutions-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .showcase-category-tabs {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .showcase-category-grid {
        grid-template-columns: 1fr;
    }

    .showcase-category-card {
        min-height: 240px;
    }

    .showcase-solutions-grid {
        grid-template-columns: 1fr 1fr;
    }

    .showcase-catalogue-note {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 720px) {
    .showcase-category-card {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 23px;
    }

    .showcase-category-card .category-copy {
        min-height: 0;
    }

    .showcase-category-card .category-arrow {
        position: static;
        margin-top: 8px;
    }

    .showcase-solutions-grid {
        grid-template-columns: 1fr;
    }

    .showcase-category-tabs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .showcase-contact-card .showcase-contact-actions,
    .showcase-contact-card .button,
    .showcase-catalogue-note .button {
        width: 100%;
    }
}

@media (max-width: 520px) {
    .showcase-category-tabs {
        grid-template-columns: 1fr;
    }

    .showcase-featured-section {
        padding: 20px;
    }
}

/* =========================================================
   RDS public homepage - Proposal 2 Modern & Minimal
   ========================================================= */
.topbar-public.mm-public-header {
    position: relative;
    z-index: 50;
    min-height: 82px;
    color: #111827;
    background: rgba(255,255,255,.98);
    border-bottom: 1px solid #e7ebef;
    box-shadow: 0 3px 16px rgba(31,41,55,.035);
}

.topbar-public.mm-public-header .topbar-inner {
    max-width: 1500px;
    min-height: 82px;
    padding: 12px 28px;
    grid-template-columns: minmax(235px, auto) 1fr auto;
    gap: 18px;
}

.topbar-public.mm-public-header .site-brand {
    gap: 11px;
}

.topbar-public.mm-public-header .site-brand-logo {
    width: 98px;
    height: 42px;
    filter: none;
}

.topbar-public.mm-public-header .site-brand-logo img {
    filter: none;
}

.topbar-public.mm-public-header .site-brand-text {
    gap: 1px;
}

.topbar-public.mm-public-header .site-brand-text strong {
    color: #111827;
    font-size: 14px;
    letter-spacing: -.01em;
}

.topbar-public.mm-public-header .site-brand-text small {
    color: #6b7280;
    font-size: 9px;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.topbar-public.mm-public-header .topbar-links {
    gap: 2px;
}

.topbar-public.mm-public-header .topbar-links a {
    position: relative;
    padding: 10px 10px;
    border-radius: 7px;
    color: #1f2937;
    background: transparent;
    box-shadow: none;
    font-size: 12px;
    font-weight: 750;
}

.topbar-public.mm-public-header .topbar-links a:hover {
    color: #e97818;
    background: #fff7f0;
}

.topbar-public.mm-public-header .topbar-links a.active {
    color: #e97818;
    background: transparent;
    box-shadow: none;
}

.topbar-public.mm-public-header .topbar-links a.active::after {
    content: "";
    position: absolute;
    left: 10px;
    right: 10px;
    bottom: 3px;
    height: 2px;
    border-radius: 999px;
    background: #e97818;
}

.topbar-public.mm-public-header .topbar-login {
    min-height: 38px;
    padding: 9px 15px;
    border-radius: 8px;
    box-shadow: 0 7px 18px rgba(233,120,24,.16);
    font-size: 12px;
}

body.rds-modern-minimal-home {
    background: #fff;
    color: #111827;
}

body.rds-modern-minimal-home .page-shell {
    max-width: 1500px;
    padding: 0 28px 50px;
}

.mm-hero {
    position: relative;
    min-height: 565px;
    display: grid;
    grid-template-columns: minmax(390px, .86fr) minmax(520px, 1.14fr);
    align-items: stretch;
    overflow: hidden;
    border: 1px solid #e4e9ee;
    border-top: 0;
    background: #fff;
    box-shadow: 0 20px 55px rgba(17,24,39,.055);
}

.mm-hero-copy {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 62px 34px 62px 56px;
    background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,.98) 74%, rgba(255,255,255,.78) 100%);
}

.mm-eyebrow {
    margin-bottom: 18px;
    color: #e97818;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.mm-hero-title {
    display: grid;
    gap: 0;
    margin: 0 0 20px;
    color: #121826;
    font-size: clamp(48px, 5.3vw, 78px);
    font-weight: 820;
    line-height: .99;
    letter-spacing: -.055em;
}

.mm-hero-title > span {
    display: block;
}

.mm-orange-dot {
    color: #e97818;
}

.mm-hero-copy > p {
    max-width: 500px;
    margin: 0 0 28px;
    color: #4b5563;
    font-size: 17px;
    line-height: 1.62;
}

.mm-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.mm-button-dark,
.mm-button-outline,
.mm-button-orange {
    min-height: 45px;
    gap: 12px;
    border-radius: 8px;
    padding: 11px 18px;
}

.mm-button-dark {
    color: #fff;
    border-color: #111827;
    background: #111827;
    box-shadow: 0 10px 22px rgba(17,24,39,.14);
}

.mm-button-dark:hover {
    color: #fff;
    border-color: #263244;
    background: #263244;
}

.mm-button-outline {
    color: #111827;
    border-color: #9ca3af;
    background: #fff;
}

.mm-button-outline:hover {
    color: #e97818;
    border-color: #e97818;
    background: #fffaf6;
}

.mm-button-orange {
    color: #fff;
    border-color: #e97818;
    background: #e97818;
    box-shadow: 0 10px 24px rgba(233,120,24,.2);
}

.mm-button-orange:hover {
    color: #fff;
    border-color: #d8670f;
    background: #d8670f;
}

.mm-hero-visual {
    position: relative;
    min-width: 0;
    overflow: hidden;
    background: linear-gradient(135deg, #f8fbfd, #edf3f7);
}

.mm-office-backdrop {
    position: absolute;
    inset: 0;
    background: url('/images/home/office-lines.svg') center / cover no-repeat;
}

.mm-hero-visual::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(90deg, rgba(255,255,255,.85) 0%, rgba(255,255,255,.12) 32%, rgba(255,255,255,0) 68%);
}

.mm-hero-product {
    position: absolute;
    z-index: 2;
    right: 4%;
    bottom: 5%;
    width: min(72%, 590px);
    height: 82%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.mm-hero-product img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center bottom;
    filter: drop-shadow(0 28px 28px rgba(31,41,55,.22));
}

.mm-hero-placeholder {
    width: 82%;
    height: 82%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #64748b;
    filter: drop-shadow(0 22px 24px rgba(31,41,55,.14));
}

.mm-hero-placeholder svg {
    width: 100%;
    max-height: 100%;
    fill: #f8fafc;
    stroke: currentColor;
    stroke-width: 3;
}

.mm-hero-product-caption {
    position: absolute;
    z-index: 4;
    right: 24px;
    bottom: 22px;
    max-width: 260px;
    display: none;
    gap: 2px;
    padding: 10px 13px;
    border: 1px solid rgba(255,255,255,.76);
    border-radius: 10px;
    background: rgba(255,255,255,.78);
    backdrop-filter: blur(12px);
    box-shadow: 0 10px 28px rgba(31,41,55,.08);
}

.mm-hero-product-caption span {
    color: #e97818;
    font-size: 9px;
    font-weight: 900;
    text-transform: uppercase;
}

.mm-hero-product-caption strong {
    color: #111827;
    font-size: 12px;
}

.mm-trust-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border: 1px solid #e4e8ed;
    border-top: 0;
    background: #fff;
}

.mm-trust-strip article {
    min-height: 84px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
    padding: 17px 20px;
    border-right: 1px solid #e8ebef;
}

.mm-trust-strip article:last-child {
    border-right: 0;
}

.mm-line-icon {
    width: 34px;
    height: 34px;
    color: #111827;
}

.mm-line-icon svg,
.mm-solution-icon svg,
.mm-why-grid article > span svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.mm-trust-strip article > div {
    display: grid;
    gap: 1px;
}

.mm-trust-strip strong {
    color: #111827;
    font-size: 13px;
}

.mm-trust-strip article > div > span {
    color: #6b7280;
    font-size: 11px;
}

.mm-section {
    padding: 40px 20px 6px;
    scroll-margin-top: 98px;
}

.mm-section-heading {
    margin-bottom: 22px;
}

.mm-section-heading-centered {
    text-align: center;
}

.mm-section-heading h2 {
    margin: 0;
    color: #111827;
    font-size: clamp(25px, 2.4vw, 35px);
    line-height: 1.15;
    letter-spacing: -.025em;
}

.mm-category-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.mm-category-card {
    min-width: 0;
    min-height: 365px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 22px 20px 18px;
    border: 1px solid #e1e5e9;
    border-radius: 13px;
    color: #111827;
    background: linear-gradient(180deg, #fff, #fafbfc);
    box-shadow: 0 9px 25px rgba(31,41,55,.035);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.mm-category-card:hover {
    transform: translateY(-5px);
    border-color: rgba(233,120,24,.55);
    box-shadow: 0 18px 38px rgba(31,41,55,.09);
}

.mm-category-copy h3 {
    min-height: 70px;
    margin: 0;
    font-size: 20px;
    line-height: 1.16;
    letter-spacing: -.02em;
}

.mm-mini-rule {
    width: 22px;
    height: 3px;
    display: block;
    margin-top: 12px;
    border-radius: 999px;
    background: #e97818;
}

.mm-category-image {
    height: 180px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px 4px 4px;
}

.mm-category-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 13px 14px rgba(31,41,55,.12));
}

.mm-category-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #687383;
}

.mm-category-placeholder svg {
    width: 120px;
    height: 120px;
    fill: #f8fafc;
    stroke: currentColor;
    stroke-width: 2.3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.mm-category-card > p {
    min-height: 48px;
    margin: 8px 0 12px;
    color: #6b7280;
    font-size: 12px;
    line-height: 1.5;
}

.mm-card-link {
    margin-top: auto;
    color: #e97818;
    font-size: 12px;
    font-weight: 850;
}

.mm-card-link b {
    margin-left: 6px;
    transition: margin-left .18s ease;
}

.mm-category-card:hover .mm-card-link b {
    margin-left: 10px;
}

.mm-solutions-section {
    padding-top: 34px;
}

.mm-solutions-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
}

.mm-solutions-grid article {
    min-height: 126px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 10px;
    padding: 17px 10px;
    border: 1px solid #e2e6ea;
    border-radius: 11px;
    text-align: center;
    background: #fff;
    box-shadow: 0 7px 20px rgba(31,41,55,.025);
}

.mm-solution-icon {
    width: 34px;
    height: 34px;
    color: #111827;
}

.mm-solutions-grid strong {
    color: #111827;
    font-size: 12px;
    line-height: 1.28;
}

.mm-featured-section {
    padding-top: 40px;
}

.mm-featured-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
}

.mm-featured-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #e2e6ea;
    border-radius: 11px;
    background: #fff;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.mm-featured-card:hover {
    transform: translateY(-4px);
    border-color: rgba(233,120,24,.55);
    box-shadow: 0 14px 30px rgba(31,41,55,.08);
}

.mm-featured-card .public-card-image-wrap {
    height: 150px;
    padding: 14px 12px 4px;
    border-bottom: 0;
    background: #fff;
}

.mm-featured-card .public-card-image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.mm-featured-card .catalog-placeholder {
    height: 100%;
    min-height: 0;
    border: 0;
    background: #f8fafc;
}

.mm-featured-copy {
    min-height: 104px;
    display: grid;
    align-content: start;
    gap: 4px;
    padding: 9px 12px 14px;
}

.mm-featured-copy strong {
    overflow: hidden;
    color: #111827;
    font-size: 12px;
    line-height: 1.35;
}

.mm-featured-copy > span {
    color: #4b5563;
    font-size: 10px;
    line-height: 1.35;
}

.mm-featured-copy small {
    color: #7a828e;
    font-size: 9px;
    line-height: 1.4;
}

.mm-centered-action {
    display: flex;
    justify-content: center;
    margin-top: 18px;
}

.mm-why-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    overflow: hidden;
    border: 1px solid #e2e6ea;
    border-radius: 12px;
    background: #fff;
}

.mm-why-grid article {
    min-height: 126px;
    display: grid;
    grid-template-columns: 46px 1fr;
    align-items: center;
    gap: 14px;
    padding: 22px;
    border-right: 1px solid #e6e9ed;
}

.mm-why-grid article:last-child {
    border-right: 0;
}

.mm-why-grid article > span {
    width: 42px;
    height: 42px;
    color: #e97818;
}

.mm-why-grid article > div {
    display: grid;
    gap: 5px;
}

.mm-why-grid strong {
    color: #111827;
    font-size: 13px;
}

.mm-why-grid p {
    margin: 0;
    color: #6b7280;
    font-size: 11px;
    line-height: 1.45;
}

.mm-expertise-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    margin: 38px 20px 0;
    padding: 24px 28px;
    border: 1px solid #e2e6ea;
    border-radius: 13px;
    background: linear-gradient(100deg, #f8fafc, #fff);
}

.mm-expertise-cta > div {
    max-width: 760px;
}

.mm-expertise-cta h2 {
    margin: 0 0 5px;
    color: #111827;
    font-size: 24px;
    letter-spacing: -.02em;
}

.mm-expertise-cta p {
    margin: 0;
    color: #5f6875;
    font-size: 13px;
    line-height: 1.5;
}

.mm-public-footer {
    color: #4b5563;
    border-top: 1px solid #e4e8ec;
    background: #fbfcfd;
}

.mm-footer-main {
    width: 100%;
    max-width: 1500px;
    display: grid;
    grid-template-columns: 1.35fr repeat(4, minmax(130px, .8fr));
    gap: 40px;
    margin: 0 auto;
    padding: 42px 28px 34px;
}

.mm-footer-main section {
    display: grid;
    align-content: start;
    gap: 9px;
}

.mm-footer-brand img {
    width: 110px;
    height: 44px;
    object-fit: contain;
    object-position: left center;
}

.mm-footer-brand strong {
    color: #111827;
    font-size: 10px;
    line-height: 1.35;
    text-transform: uppercase;
}

.mm-footer-brand p {
    max-width: 230px;
    margin: 3px 0 0;
    color: #6b7280;
    font-size: 11px;
    line-height: 1.55;
}

.mm-footer-main h2 {
    margin: 0 0 7px;
    color: #111827;
    font-size: 13px;
}

.mm-footer-main a,
.mm-footer-main span {
    color: #5f6875;
    font-size: 11px;
    line-height: 1.45;
}

.mm-footer-main a:hover {
    color: #e97818;
}

.mm-footer-bottom {
    width: 100%;
    max-width: 1500px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin: 0 auto;
    padding: 17px 28px 22px;
    border-top: 1px solid #e4e8ec;
    color: #7a828e;
    font-size: 10px;
}

.mm-footer-bottom nav {
    display: flex;
    gap: 18px;
}

.homepage-settings-form {
    border-color: rgba(233,120,24,.3);
    box-shadow: 0 10px 26px rgba(233,120,24,.055);
}

.settings-section-heading {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.settings-section-heading h2 {
    margin: 4px 0;
}

.homepage-settings-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.homepage-settings-grid label {
    display: grid;
    align-content: start;
    gap: 6px;
    color: #4b5563;
    font-size: 12px;
    font-weight: 800;
}

.homepage-settings-grid textarea {
    min-height: 92px;
    resize: vertical;
}

.homepage-settings-wide {
    grid-column: span 2;
}

.field-help {
    color: #7a828e;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.4;
}

.settings-actions-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 18px;
}

@media (max-width: 1260px) {
    .topbar-public.mm-public-header .topbar-inner {
        grid-template-columns: auto 1fr auto;
        gap: 12px;
    }

    .topbar-public.mm-public-header .site-brand-text {
        display: none;
    }

    .topbar-public.mm-public-header .topbar-links a {
        padding-left: 8px;
        padding-right: 8px;
        font-size: 11px;
    }

    .mm-hero {
        grid-template-columns: minmax(360px, .9fr) minmax(440px, 1.1fr);
    }

    .mm-hero-copy {
        padding-left: 42px;
    }

    .mm-category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mm-category-copy h3 {
        min-height: 48px;
    }

    .mm-solutions-grid,
    .mm-featured-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .mm-footer-main {
        grid-template-columns: 1.3fr repeat(2, 1fr);
    }
}

@media (max-width: 980px) {
    .topbar-public.mm-public-header .topbar-inner {
        display: flex;
        flex-wrap: wrap;
    }

    .topbar-public.mm-public-header .site-brand {
        flex: 1 1 auto;
    }

    .topbar-public.mm-public-header .topbar-links {
        order: 3;
        width: 100%;
        justify-content: flex-start;
        overflow-x: auto;
        padding-top: 7px;
        border-top: 1px solid #edf0f2;
    }

    .mm-hero {
        min-height: 760px;
        grid-template-columns: 1fr;
        grid-template-rows: auto 390px;
    }

    .mm-hero-copy {
        padding: 48px 40px 34px;
        background: #fff;
    }

    .mm-hero-title {
        font-size: clamp(46px, 9vw, 68px);
    }

    .mm-hero-visual::before {
        background: linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,0) 36%);
    }

    .mm-hero-product {
        right: 8%;
        width: 65%;
        height: 92%;
    }

    .mm-trust-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mm-trust-strip article:nth-child(2) {
        border-right: 0;
    }

    .mm-trust-strip article:nth-child(-n+2) {
        border-bottom: 1px solid #e8ebef;
    }

    .mm-why-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mm-why-grid article:nth-child(2) {
        border-right: 0;
    }

    .mm-why-grid article:nth-child(-n+2) {
        border-bottom: 1px solid #e6e9ed;
    }

    .mm-footer-main {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mm-footer-brand {
        grid-column: 1 / -1;
    }

    .homepage-settings-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    body.rds-modern-minimal-home .page-shell {
        padding: 0 12px 34px;
    }

    .topbar-public.mm-public-header .topbar-inner {
        padding: 10px 14px;
    }

    .topbar-public.mm-public-header .topbar-links {
        gap: 0;
    }

    .topbar-public.mm-public-header .topbar-links a {
        flex: 0 0 auto;
        padding: 9px 8px;
    }

    .topbar-public.mm-public-header .topbar-login {
        padding: 8px 11px;
    }

    .mm-hero {
        min-height: 690px;
        grid-template-rows: auto 310px;
    }

    .mm-hero-copy {
        padding: 38px 24px 28px;
    }

    .mm-eyebrow {
        font-size: 10px;
    }

    .mm-hero-title {
        font-size: clamp(43px, 14vw, 61px);
    }

    .mm-hero-copy > p {
        font-size: 15px;
    }

    .mm-hero-actions,
    .mm-hero-actions .button {
        width: 100%;
    }

    .mm-hero-product {
        right: 4%;
        width: 84%;
    }

    .mm-trust-strip {
        grid-template-columns: 1fr;
    }

    .mm-trust-strip article,
    .mm-trust-strip article:nth-child(2) {
        justify-content: flex-start;
        border-right: 0;
        border-bottom: 1px solid #e8ebef;
    }

    .mm-trust-strip article:last-child {
        border-bottom: 0;
    }

    .mm-section {
        padding: 34px 4px 4px;
    }

    .mm-category-grid,
    .mm-solutions-grid,
    .mm-featured-grid,
    .mm-why-grid {
        grid-template-columns: 1fr;
    }

    .mm-category-card {
        min-height: 330px;
    }

    .mm-category-copy h3 {
        min-height: 0;
    }

    .mm-solutions-grid article {
        min-height: 96px;
        grid-template-columns: 40px 1fr;
        justify-items: start;
        text-align: left;
        padding: 17px 20px;
    }

    .mm-featured-card {
        display: grid;
        grid-template-columns: 140px 1fr;
    }

    .mm-featured-card .public-card-image-wrap {
        height: 140px;
    }

    .mm-featured-copy {
        align-content: center;
    }

    .mm-why-grid article,
    .mm-why-grid article:nth-child(2) {
        border-right: 0;
        border-bottom: 1px solid #e6e9ed;
    }

    .mm-why-grid article:last-child {
        border-bottom: 0;
    }

    .mm-expertise-cta {
        align-items: flex-start;
        flex-direction: column;
        margin: 32px 4px 0;
        padding: 22px;
    }

    .mm-expertise-cta .button {
        width: 100%;
    }

    .mm-footer-main {
        grid-template-columns: 1fr;
        gap: 28px;
        padding: 34px 20px 28px;
    }

    .mm-footer-brand {
        grid-column: auto;
    }

    .mm-footer-bottom {
        align-items: flex-start;
        flex-direction: column;
        padding: 16px 20px 22px;
    }

    .homepage-settings-grid {
        grid-template-columns: 1fr;
    }

    .homepage-settings-wide {
        grid-column: auto;
    }

    .settings-actions-row {
        align-items: stretch;
        flex-direction: column;
    }
}

/* ==========================================================
   RDS homepage refinement + Request a Quote workflow
   ========================================================== */

/* Keep the Proposal 2 direction, but remove the oversized boxed hero. */
body.rds-modern-minimal-home .mm-hero {
    min-height: 470px;
    grid-template-columns: minmax(360px, .92fr) minmax(460px, 1.08fr);
    overflow: visible;
    border: 0;
    background: transparent;
    box-shadow: none;
}

body.rds-modern-minimal-home .mm-hero-copy {
    padding: 70px 42px 58px 30px;
    background: transparent;
}

body.rds-modern-minimal-home .mm-hero-visual {
    min-height: 470px;
    overflow: visible;
    background: transparent;
}

body.rds-modern-minimal-home .mm-office-backdrop {
    inset: 36px 0 20px 8%;
    border-radius: 48% 52% 42% 58% / 46% 44% 56% 54%;
    background:
        radial-gradient(circle at 50% 48%, rgba(231,238,244,.92), rgba(244,247,249,.5) 58%, rgba(255,255,255,0) 74%),
        url('/images/home/office-lines.svg') center / cover no-repeat;
    opacity: .78;
}

body.rds-modern-minimal-home .mm-hero-visual::before {
    display: none;
}

body.rds-modern-minimal-home .mm-hero-product {
    right: 3%;
    bottom: 2%;
    width: min(80%, 590px);
    height: 91%;
}

body.rds-modern-minimal-home .mm-hero-product img {
    filter: drop-shadow(0 24px 22px rgba(31,41,55,.18));
}

body.rds-modern-minimal-home .mm-hero-actions {
    gap: 10px;
}

body.rds-modern-minimal-home .mm-button-dark,
body.rds-modern-minimal-home .mm-button-outline {
    min-height: 44px;
    border-radius: 6px;
    padding: 10px 18px;
    box-shadow: none;
    font-weight: 800;
}

body.rds-modern-minimal-home .mm-button-dark {
    border-color: #e97818;
    background: #e97818;
}

body.rds-modern-minimal-home .mm-button-dark:hover {
    border-color: #cf6511;
    background: #cf6511;
}

body.rds-modern-minimal-home .mm-button-outline {
    border-color: #c7cdd4;
    background: #fff;
}

body.rds-modern-minimal-home .mm-button-outline:hover {
    color: #111827;
    border-color: #111827;
    background: #fff;
}

/* Public catalogue heading: compact, content-first, no hero banner. */
.public-products-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
    padding: 34px 0 24px;
    border-bottom: 1px solid #e5e7eb;
}

.public-products-heading > div {
    max-width: 880px;
}

.public-products-heading h1 {
    margin: 8px 0 10px;
    color: #111827;
    font-size: clamp(31px, 4vw, 48px);
    line-height: 1.08;
    letter-spacing: -.035em;
}

.public-products-heading p {
    max-width: 760px;
    margin: 0;
    color: #5b6472;
    font-size: 16px;
    line-height: 1.65;
}

.public-products-heading .catalogue-summary {
    margin-top: 18px;
}

/* Quote page */
.quote-page-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 36px;
    padding: 24px 0 28px;
    border-bottom: 1px solid #e5e7eb;
}

.quote-page-heading > div:first-child {
    max-width: 780px;
}

.quote-page-heading h1 {
    margin: 8px 0 10px;
    color: #111827;
    font-size: clamp(34px, 4vw, 50px);
    line-height: 1.05;
    letter-spacing: -.035em;
}

.quote-page-heading p {
    margin: 0;
    color: #5b6472;
    font-size: 16px;
    line-height: 1.65;
}

.quote-response-note {
    width: 260px;
    flex: 0 0 auto;
    display: grid;
    gap: 4px;
    padding: 16px 18px;
    border-left: 4px solid #e97818;
    background: #fff7ed;
}

.quote-response-note strong {
    color: #111827;
    font-size: 14px;
}

.quote-response-note span {
    color: #6b7280;
    font-size: 12px;
    line-height: 1.45;
}

.quote-page-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 28px;
    align-items: start;
    padding: 30px 0 12px;
}

.quote-form-card,
.quote-contact-card,
.quote-success-card {
    border: 1px solid #e1e5ea;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(17,24,39,.045);
}

.quote-form-card {
    overflow: hidden;
}

.quote-request-form {
    display: grid;
}

.quote-form-section {
    padding: 28px 30px;
    border-bottom: 1px solid #e8ebef;
}

.quote-section-title {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    margin-bottom: 22px;
}

.quote-section-title > span {
    width: 30px;
    height: 30px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #111827;
    font-size: 13px;
    font-weight: 900;
}

.quote-section-title h2 {
    margin: 0 0 3px;
    color: #111827;
    font-size: 20px;
}

.quote-section-title p {
    margin: 0;
    color: #6b7280;
    font-size: 13px;
}

.quote-request-form label {
    display: grid;
    gap: 7px;
    color: #374151;
    font-size: 13px;
    font-weight: 800;
}

.quote-request-form input,
.quote-request-form select,
.quote-request-form textarea {
    width: 100%;
    border: 1px solid #cfd5dc;
    border-radius: 7px;
    background: #fff;
    color: #111827;
    font: inherit;
    font-weight: 500;
}

.quote-request-form input,
.quote-request-form select {
    min-height: 44px;
    padding: 10px 12px;
}

.quote-request-form textarea {
    min-height: 132px;
    padding: 11px 12px;
    resize: vertical;
}

.quote-request-form input:focus,
.quote-request-form select:focus,
.quote-request-form textarea:focus {
    outline: 0;
    border-color: #e97818;
    box-shadow: 0 0 0 3px rgba(233,120,24,.12);
}

.quote-product-select {
    max-width: 720px;
}

.quote-selected-product {
    max-width: 720px;
    display: grid;
    grid-template-columns: 116px minmax(0, 1fr);
    gap: 18px;
    align-items: center;
    margin-top: 16px;
    padding: 14px;
    border: 1px solid #e3e7eb;
    border-radius: 9px;
    background: #fafbfc;
}

.quote-selected-image {
    height: 94px;
    overflow: hidden;
    border-radius: 7px;
    background: #fff;
}

.quote-selected-image .public-card-image-wrap {
    height: 100%;
    min-height: 0;
    padding: 8px;
    border: 0;
    background: #fff;
}

.quote-selected-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.quote-selected-product > div:last-child {
    min-width: 0;
    display: grid;
    gap: 4px;
}

.quote-selected-product span {
    color: #e97818;
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
}

.quote-selected-product strong {
    color: #111827;
    font-size: 17px;
}

.quote-selected-product small {
    color: #6b7280;
    line-height: 1.45;
}

.quote-selected-product a {
    width: fit-content;
    margin-top: 3px;
    color: #d9650b;
    font-size: 12px;
    font-weight: 800;
}

.quote-fields-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.quote-message-field {
    grid-column: 1 / -1;
}

.quote-message-field small {
    color: #8b929d;
    font-weight: 600;
}

.quote-quantity-field {
    max-width: 180px;
}

.quote-submit-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 22px 30px;
    background: #fafbfc;
}

.quote-submit-row p {
    max-width: 520px;
    margin: 0;
    color: #6b7280;
    font-size: 12px;
    line-height: 1.5;
}

.quote-submit-button {
    min-width: 190px;
    min-height: 45px;
    border-radius: 6px;
}

.quote-contact-card {
    position: sticky;
    top: 92px;
    padding: 24px;
}

.quote-contact-card h2 {
    margin: 10px 0 10px;
    color: #111827;
    font-size: 22px;
}

.quote-contact-card > p {
    margin: 0;
    color: #6b7280;
    font-size: 13px;
    line-height: 1.6;
}

.quote-contact-list {
    display: grid;
    gap: 13px;
    margin: 22px 0;
    padding: 18px 0;
    border-top: 1px solid #e5e7eb;
    border-bottom: 1px solid #e5e7eb;
}

.quote-contact-list > div {
    display: grid;
    gap: 3px;
}

.quote-contact-list span {
    color: #8b929d;
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
}

.quote-contact-list a,
.quote-contact-list strong {
    color: #111827;
    font-size: 14px;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.quote-contact-points {
    display: grid;
    gap: 9px;
    color: #4b5563;
    font-size: 12px;
    font-weight: 700;
}

.quote-success-card {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 22px;
    margin: 34px 0;
    padding: 34px;
}

.quote-success-icon {
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #198754;
    font-size: 28px;
    font-weight: 900;
}

.quote-success-card h2 {
    margin: 9px 0 8px;
    color: #111827;
    font-size: 26px;
}

.quote-success-card p {
    margin: 0;
    color: #5b6472;
    line-height: 1.65;
}

.quote-success-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}

.quote-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.field-validation-error,
.validation-summary {
    color: #b42318;
    font-size: 12px;
    font-weight: 700;
}

.validation-summary:empty {
    display: none;
}

.validation-summary ul {
    margin: 0 0 18px;
    padding: 12px 16px 12px 32px;
    border: 1px solid #f1b8b3;
    border-radius: 7px;
    background: #fff4f2;
}

@media (max-width: 980px) {
    body.rds-modern-minimal-home .mm-hero {
        min-height: 700px;
        grid-template-columns: 1fr;
        grid-template-rows: auto 330px;
    }

    body.rds-modern-minimal-home .mm-hero-copy {
        padding: 48px 38px 20px;
    }

    body.rds-modern-minimal-home .mm-hero-visual {
        min-height: 330px;
    }

    body.rds-modern-minimal-home .mm-office-backdrop {
        inset: 0 8% 0;
    }

    body.rds-modern-minimal-home .mm-hero-product {
        right: 12%;
        width: 72%;
        height: 100%;
    }

    .quote-page-grid {
        grid-template-columns: 1fr;
    }

    .quote-contact-card {
        position: static;
    }
}

@media (max-width: 720px) {
    .public-products-heading,
    .quote-page-heading {
        align-items: stretch;
        flex-direction: column;
        gap: 18px;
    }

    .public-products-heading .button,
    .quote-response-note {
        width: 100%;
    }

    .quote-page-heading {
        padding-top: 18px;
    }

    .quote-page-grid {
        padding-top: 20px;
    }

    .quote-form-section {
        padding: 22px 18px;
    }

    .quote-fields-grid {
        grid-template-columns: 1fr;
    }

    .quote-message-field {
        grid-column: auto;
    }

    .quote-quantity-field {
        max-width: none;
    }

    .quote-submit-row {
        align-items: stretch;
        flex-direction: column;
        padding: 18px;
    }

    .quote-submit-button {
        width: 100%;
    }

    .quote-selected-product {
        grid-template-columns: 92px minmax(0, 1fr);
    }

    .quote-success-card {
        grid-template-columns: 1fr;
        padding: 24px 20px;
    }

    body.rds-modern-minimal-home .mm-hero {
        min-height: 640px;
        grid-template-rows: auto 280px;
    }

    body.rds-modern-minimal-home .mm-hero-copy {
        padding: 38px 18px 16px;
    }

    body.rds-modern-minimal-home .mm-hero-visual {
        min-height: 280px;
    }

    body.rds-modern-minimal-home .mm-hero-product {
        right: 4%;
        width: 88%;
    }
}

/* Compact public specifications + product datasheet upload/download */
.compact-public-specifications {
    width: min(100%, 1320px);
    margin: 18px auto 22px;
    border-radius: 14px;
    box-shadow: none;
}

.compact-specification-heading {
    align-items: center;
    padding: 14px 18px;
    background: #fff;
}

.compact-specification-heading h2 {
    margin: 0;
    font-size: 21px;
    line-height: 1.2;
}

.compact-specification-heading p {
    margin: 4px 0 0;
    color: #7a828f;
    font-size: 12px;
}

.compact-specification-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
}

.compact-specification-grid > div {
    display: block;
    min-height: 72px;
    padding: 12px 16px;
}

.compact-specification-grid > div.wide {
    grid-column: span 2;
}

.compact-specification-grid dt {
    margin: 0 0 6px;
    font-size: 10px;
    line-height: 1.2;
}

.compact-specification-grid dd {
    font-size: 14px;
    line-height: 1.35;
}

.datasheet-download-button {
    color: #fff;
    border-color: #172033;
    background: #172033;
}

.datasheet-download-button:hover {
    color: #fff;
    border-color: #2a354b;
    background: #2a354b;
}

.machine-datasheet-field {
    margin-top: 4px;
}

.datasheet-upload-box {
    display: grid;
    grid-template-columns: minmax(250px, 420px) minmax(240px, 1fr);
    gap: 12px;
    align-items: center;
    padding: 12px;
    border: 1px dashed #cfd5de;
    border-radius: 12px;
    background: #fff;
}

.datasheet-upload-box input[type="file"] {
    width: 100%;
    max-width: none;
}

.current-datasheet-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 12px;
    align-items: center;
    margin-top: 10px;
    padding: 10px 12px;
    border: 1px solid #dde2e8;
    border-radius: 12px;
    background: #f8fafc;
}

.current-datasheet-row > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.current-datasheet-row strong {
    font-size: 12px;
}

.current-datasheet-row span {
    overflow: hidden;
    color: #667085;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.remove-datasheet-check {
    margin: 0;
    white-space: nowrap;
}

@media (max-width: 1180px) {
    .compact-specification-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 850px) {
    .compact-specification-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .compact-specification-grid > div.wide {
        grid-column: 1 / -1;
    }

    .datasheet-upload-box {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .compact-specification-grid {
        grid-template-columns: 1fr;
    }

    .compact-specification-grid > div,
    .compact-specification-grid > div.wide {
        grid-column: auto;
        min-height: 0;
        padding: 11px 14px;
    }

    .current-datasheet-row {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .current-datasheet-row .button {
        width: 100%;
    }
}

/* ========================================================================== 
   RDS public product page – compact sales-focused redesign
   ========================================================================== */
.rds-product-breadcrumb {
    width: min(100%, 1180px);
    margin: 0 auto 14px;
}

.rds-product-hero-card {
    display: grid;
    grid-template-columns: minmax(360px, 46%) minmax(0, 1fr);
    gap: 38px;
    align-items: center;
    width: min(100%, 1180px);
    margin: 0 auto 20px;
    padding: 26px;
    border: 1px solid #dde2e8;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(24, 31, 42, .055);
}

.rds-product-gallery,
.rds-product-summary {
    min-width: 0;
}

.rds-product-main-image-frame {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 360px;
    padding: 18px;
    overflow: hidden;
    border: 1px solid #e2e6eb;
    border-radius: 14px;
    background: linear-gradient(155deg, #fff 0%, #f6f8fa 100%);
}

.rds-product-main-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    mix-blend-mode: multiply;
}

.rds-product-placeholder-frame .public-card-image-wrap {
    width: 100%;
    height: 100%;
    border: 0;
    background: transparent;
}

.rds-product-placeholder-frame .public-card-image-wrap img,
.rds-product-placeholder-frame .catalog-placeholder {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.rds-product-thumbnail-row {
    display: flex;
    gap: 8px;
    margin-top: 10px;
    overflow-x: auto;
    padding: 2px 1px 4px;
}

.rds-product-thumbnail {
    width: 62px;
    height: 58px;
    flex: 0 0 auto;
    padding: 4px;
    border: 1px solid #dfe4ea;
    border-radius: 9px;
    background: #fff;
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.rds-product-thumbnail:hover,
.rds-product-thumbnail.active {
    border-color: #e97818;
    box-shadow: 0 0 0 2px rgba(233, 120, 24, .11);
}

.rds-product-thumbnail img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.rds-product-summary {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rds-product-eyebrow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.rds-product-eyebrow > span {
    display: inline-flex;
    align-items: center;
    min-height: 27px;
    padding: 5px 10px;
    border-radius: 999px;
    color: #9b4a08;
    background: #fff0e3;
    font-size: 11px;
    font-weight: 850;
}

.rds-product-eyebrow > b {
    color: #7a828d;
    font-size: 11px;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.rds-product-summary h1 {
    margin: 0;
    color: #1b2230;
    font-size: clamp(34px, 3.5vw, 48px);
    line-height: 1.04;
    letter-spacing: -.035em;
}

.rds-product-subtitle {
    margin: 12px 0 0;
    color: #596270;
    font-size: 17px;
    font-weight: 650;
    line-height: 1.5;
}

.rds-product-highlight-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 22px 0 0;
}

.rds-product-highlight-grid > div {
    min-width: 0;
    padding: 10px 11px;
    border: 1px solid #e1e5ea;
    border-radius: 10px;
    background: #f8fafc;
}

.rds-product-highlight-grid dt {
    margin: 0 0 4px;
    color: #8a929e;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .065em;
    text-transform: uppercase;
}

.rds-product-highlight-grid dd {
    overflow: hidden;
    margin: 0;
    color: #2d3541;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rds-product-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 22px;
}

.rds-product-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 43px;
    padding: 9px 16px;
    border: 1px solid transparent;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 850;
    line-height: 1;
    text-decoration: none;
    transition: transform .15s ease, background-color .15s ease, border-color .15s ease;
}

.rds-product-button:hover {
    transform: translateY(-1px);
}

.rds-product-button svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rds-product-button-primary {
    color: #fff;
    border-color: #e66e0b;
    background: #e66e0b;
    box-shadow: 0 6px 14px rgba(230, 110, 11, .16);
}

.rds-product-button-primary:hover {
    color: #fff;
    border-color: #cc5c03;
    background: #cc5c03;
}

.rds-product-button-secondary {
    color: #263141;
    border-color: #cbd2da;
    background: #fff;
}

.rds-product-button-secondary:hover {
    color: #172033;
    border-color: #98a3af;
    background: #f8fafc;
}

.rds-product-small-links {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
    color: #a0a7b0;
    font-size: 12px;
    font-weight: 750;
}

.rds-product-small-links a {
    color: #606a77;
}

.rds-product-small-links a:hover {
    color: #e66e0b;
}

.rds-product-contact-note {
    margin-top: 15px;
    padding-top: 13px;
    border-top: 1px solid #edf0f3;
    color: #7c8591;
    font-size: 11px;
    line-height: 1.5;
}

.rds-product-overview-section,
.rds-product-specification-section,
.rds-related-products-section {
    width: min(100%, 1180px);
    margin: 20px auto 0;
}

.rds-product-overview-section {
    display: grid;
    grid-template-columns: minmax(190px, .34fr) minmax(0, 1fr);
    gap: 32px;
    padding: 24px 26px;
    border: 1px solid #e0e4e9;
    border-radius: 15px;
    background: #fff;
}

.rds-product-section-heading > span,
.rds-product-specification-heading > div > span,
.rds-related-products-heading > div > span {
    color: #e66e0b;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.rds-product-section-heading h2,
.rds-product-specification-heading h2,
.rds-related-products-heading h2 {
    margin: 5px 0 0;
    color: #202735;
    font-size: 23px;
    line-height: 1.15;
}

.rds-product-overview-copy {
    color: #626c79;
    font-size: 14px;
    line-height: 1.75;
    white-space: pre-line;
}

.rds-product-specification-section {
    padding: 20px;
    border: 1px solid #e0e4e9;
    border-radius: 15px;
    background: #f7f9fb;
}

.rds-product-specification-heading,
.rds-related-products-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}

.rds-product-spec-download,
.rds-related-products-heading > a {
    color: #5f6874;
    font-size: 12px;
    font-weight: 800;
}

.rds-product-spec-download:hover,
.rds-related-products-heading > a:hover {
    color: #e66e0b;
}

.rds-product-specification-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
    margin: 0;
}

.rds-product-specification-grid > div {
    min-width: 0;
    min-height: 68px;
    padding: 11px 13px;
    border: 1px solid #e1e5ea;
    border-radius: 10px;
    background: #fff;
}

.rds-product-specification-grid > div.wide {
    grid-column: span 2;
}

.rds-product-specification-grid dt {
    margin: 0 0 6px;
    color: #8a929e;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.rds-product-specification-grid dd {
    margin: 0;
    color: #2f3743;
    font-size: 13px;
    font-weight: 760;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.rds-product-specification-grid dd a {
    color: #e66e0b;
}

.rds-related-products-section {
    margin-bottom: 12px;
    padding: 22px 0 4px;
}

.rds-related-products-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.rds-related-product-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #e0e4e9;
    border-radius: 13px;
    color: inherit;
    background: #fff;
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.rds-related-product-card:hover {
    transform: translateY(-2px);
    border-color: #d0d6dd;
    box-shadow: 0 9px 22px rgba(23, 32, 51, .07);
}

.rds-related-product-card .public-card-image-wrap {
    height: 170px;
    padding: 15px;
    border: 0;
    border-bottom: 1px solid #edf0f3;
    border-radius: 0;
    background: linear-gradient(155deg, #fff, #f7f9fb);
}

.rds-related-product-card .public-card-image-wrap img,
.rds-related-product-card .catalog-placeholder {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.rds-related-product-body {
    display: flex;
    min-height: 150px;
    flex: 1;
    flex-direction: column;
    padding: 14px;
}

.rds-related-product-body > span {
    color: #e66e0b;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.rds-related-product-body h3 {
    margin: 7px 0 6px;
    color: #252d39;
    font-size: 15px;
    line-height: 1.25;
}

.rds-related-product-body p {
    margin: 0;
    color: #727b87;
    font-size: 11px;
    line-height: 1.45;
}

.rds-related-product-body b {
    margin-top: auto;
    padding-top: 12px;
    color: #e66e0b;
    font-size: 11px;
}


/* Partner-only compatible accessories on public machine detail pages */
.rds-compatible-accessories-section {
    position: relative;
    width: min(100%, 1180px);
    margin: 20px auto 0;
    padding: 22px;
    border: 1px solid #e0e4e9;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(22, 31, 45, .045);
}

/* Machine pages use the former Related Products position for partner-only accessories. */
.rds-compatible-accessories-section.rds-compatible-accessories-related-slot {
    margin-bottom: 12px;
    padding: 22px 0 4px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.rds-compatible-accessories-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.rds-compatible-accessories-heading > div > span {
    color: #e66e0b;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.rds-compatible-accessories-title-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 5px;
}

.rds-compatible-accessories-title-row h2 {
    margin: 0;
    color: #202735;
    font-size: 23px;
    line-height: 1.15;
}

.rds-compatible-accessories-title-row b {
    min-width: 27px;
    height: 27px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 8px;
    border-radius: 999px;
    color: #9b4a08;
    background: #fff0e3;
    font-size: 11px;
    font-weight: 900;
}

.rds-compatible-accessories-heading p {
    margin: 7px 0 0;
    color: #747d89;
    font-size: 12px;
    line-height: 1.5;
}

.rds-compatible-accessories-heading p strong {
    color: #4a5360;
}

.rds-compatible-accessories-order-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 13px;
    border: 1px solid #d6dbe1;
    border-radius: 8px;
    color: #4b5563;
    background: #f8fafc;
    font-size: 12px;
    font-weight: 850;
    white-space: nowrap;
}

.rds-compatible-accessories-order-link:hover {
    color: #b65300;
    border-color: #eda469;
    background: #fff9f4;
}

.rds-compatible-accessory-groups {
    display: grid;
    gap: 22px;
}

.rds-compatible-accessory-group {
    display: grid;
    gap: 11px;
}

.rds-compatible-accessory-group > h3 {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
    color: #394250;
    font-size: 14px;
    font-weight: 900;
}

.rds-compatible-accessory-group > h3::before {
    content: "";
    width: 4px;
    height: 18px;
    border-radius: 999px;
    background: #e66e0b;
}

.rds-compatible-accessory-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.rds-compatible-accessory-card {
    min-width: 0;
    display: grid;
    grid-template-rows: 150px minmax(0, 1fr) auto;
    overflow: hidden;
    border: 1px solid #e1e5ea;
    border-radius: 13px;
    background: #fff;
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.rds-compatible-accessory-card:hover {
    transform: translateY(-2px);
    border-color: #d0d6dd;
    box-shadow: 0 9px 22px rgba(23, 32, 51, .07);
}

.rds-compatible-accessory-image {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 15px;
    border-bottom: 1px solid #edf0f3;
    background: linear-gradient(155deg, #fff, #f7f9fb);
}

.rds-compatible-accessory-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.rds-compatible-accessory-placeholder {
    width: 74px;
    height: 74px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px dashed #cbd2da;
    border-radius: 18px;
    color: #9aa3af;
    background: #fff;
}

.rds-compatible-accessory-placeholder svg {
    width: 39px;
    height: 39px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rds-compatible-accessory-body {
    min-width: 0;
    padding: 14px 15px 12px;
}

.rds-compatible-accessory-badges {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.rds-compatible-accessory-badges span {
    display: inline-flex;
    align-items: center;
    min-height: 23px;
    padding: 4px 8px;
    border-radius: 999px;
    color: #68717e;
    background: #f0f3f6;
    font-size: 9px;
    font-weight: 850;
    line-height: 1.2;
}

.rds-compatible-accessory-badges .rds-compatible-accessory-code {
    color: #9b4a08;
    background: #fff0e3;
}

.rds-compatible-accessory-body h4 {
    margin: 10px 0 0;
    color: #252d39;
    font-size: 16px;
    line-height: 1.3;
}

.rds-compatible-accessory-description {
    margin: 7px 0 0;
    color: #727b87;
    font-size: 11px;
    line-height: 1.5;
}

.rds-compatible-accessory-specifications {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #edf0f3;
    color: #596371;
    font-size: 11px;
    font-weight: 650;
    line-height: 1.55;
    white-space: pre-line;
    overflow-wrap: anywhere;
}

.rds-compatible-accessory-footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 15px 14px;
    border-top: 1px solid #edf0f3;
    background: #fbfcfd;
}

.rds-compatible-accessory-price {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.rds-compatible-accessory-price span {
    color: #8a929e;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.rds-compatible-accessory-price strong {
    color: #202735;
    font-size: 15px;
    line-height: 1.25;
}

.rds-compatible-accessory-price strong.price-on-request {
    color: #6d7580;
    font-size: 12px;
}

.rds-compatible-accessory-add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid #e66e0b;
    border-radius: 8px;
    color: #fff;
    background: #e66e0b;
    font: inherit;
    font-size: 11px;
    font-weight: 900;
    line-height: 1.15;
    cursor: pointer;
    transition: transform .15s ease, background-color .15s ease, border-color .15s ease;
}

.rds-compatible-accessory-add:hover {
    transform: translateY(-1px);
    border-color: #cc5c03;
    background: #cc5c03;
}

.rds-compatible-accessory-add:disabled {
    cursor: default;
}

.rds-compatible-accessory-add.is-added {
    border-color: #238452;
    background: #238452;
}

.rds-compatible-accessory-add svg {
    width: 17px;
    height: 17px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rds-compatible-accessory-toast {
    position: fixed;
    z-index: 1200;
    right: 22px;
    bottom: 22px;
    max-width: min(420px, calc(100vw - 32px));
    padding: 12px 15px;
    border: 1px solid #b9ddc9;
    border-radius: 10px;
    color: #155c38;
    background: #ecf8f1;
    box-shadow: 0 14px 34px rgba(20, 38, 29, .15);
    font-size: 12px;
    font-weight: 800;
    opacity: 0;
    pointer-events: none;
    transform: translateY(12px);
    transition: opacity .18s ease, transform .18s ease;
}

.rds-compatible-accessory-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 1050px) {
    .rds-product-hero-card {
        grid-template-columns: minmax(310px, 43%) minmax(0, 1fr);
        gap: 26px;
        padding: 22px;
    }

    .rds-product-main-image-frame {
        height: 330px;
    }

    .rds-product-highlight-grid,
    .rds-product-specification-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .rds-related-products-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 780px) {
    .rds-product-hero-card {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .rds-product-main-image-frame {
        height: 320px;
    }

    .rds-product-summary h1 {
        font-size: 38px;
    }

    .rds-product-overview-section {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .rds-product-highlight-grid,
    .rds-product-specification-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .rds-product-specification-grid > div.wide {
        grid-column: span 2;
    }
}

@media (max-width: 520px) {
    .rds-product-hero-card {
        padding: 16px;
        border-radius: 14px;
    }

    .rds-product-main-image-frame {
        height: 270px;
        padding: 12px;
    }

    .rds-product-eyebrow {
        align-items: flex-start;
        flex-direction: column;
    }

    .rds-product-summary h1 {
        font-size: 33px;
    }

    .rds-product-highlight-grid,
    .rds-product-specification-grid,
    .rds-related-products-grid {
        grid-template-columns: 1fr;
    }

    .rds-product-specification-grid > div.wide {
        grid-column: auto;
    }

    .rds-product-actions {
        flex-direction: column;
    }

    .rds-product-button {
        width: 100%;
    }

    .rds-product-overview-section,
    .rds-product-specification-section {
        padding: 18px;
    }

    .rds-product-specification-heading,
    .rds-related-products-heading {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* ========================================================================== 
   RDS product gallery – simple whole-image hover enlargement
   ========================================================================== */
.rds-product-gallery {
    position: relative;
    z-index: 2;
}

.rds-product-summary {
    position: relative;
    z-index: 1;
}

.rds-product-main-image-frame {
    position: relative;
    height: 330px;
}

.rds-product-hover-enlarge {
    overflow: visible;
    isolation: isolate;
}

.rds-product-hover-enlarge .rds-product-main-image {
    position: relative;
    z-index: 1;
    transform: scale(1);
    transform-origin: center center;
    transition: transform .24s ease, filter .24s ease;
    user-select: none;
    pointer-events: none;
    will-change: transform;
}

@media (hover: hover) and (pointer: fine) {
    .rds-product-hover-enlarge:hover {
        z-index: 12;
    }

    .rds-product-hover-enlarge:hover .rds-product-main-image {
        z-index: 20;
        transform: scale(1.18);
        filter: drop-shadow(0 18px 22px rgba(24, 31, 42, .18));
    }
}

@media (max-width: 780px) {
    .rds-product-main-image-frame {
        height: 300px;
    }
}

@media (max-width: 520px) {
    .rds-product-main-image-frame {
        height: 260px;
    }
}

/* ========================================================================== 
   Product form – multi-image selection before first save
   ========================================================================== */
.product-picture-selection-section {
    overflow: visible;
}

.multi-picture-upload-box {
    display: grid;
    gap: 8px;
    padding: 16px;
    border: 1px dashed #cbd2da;
    border-radius: 12px;
    background: #f8fafc;
}

.multi-picture-upload-box input[type="file"] {
    width: 100%;
}

.selected-product-picture-preview {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.selected-product-picture-preview:empty {
    display: none;
}

.selected-upload-picture {
    position: relative;
    display: grid;
    grid-template-rows: 118px auto;
    min-width: 0;
    padding: 7px;
    overflow: hidden;
    border: 1px solid #dce2e8;
    border-radius: 11px;
    color: #2c3441;
    background: #fff;
    cursor: pointer;
    text-align: left;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.selected-upload-picture:hover {
    border-color: #e97818;
    transform: translateY(-1px);
}

.selected-upload-picture.is-main {
    border-color: #e97818;
    box-shadow: 0 0 0 2px rgba(233, 120, 24, .14);
}

.selected-upload-picture img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 7px;
    background: linear-gradient(155deg, #fff, #f2f5f8);
}

.selected-upload-picture-name {
    overflow: hidden;
    padding: 7px 2px 1px;
    font-size: 10px;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.selected-upload-picture-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    display: none;
    padding: 4px 7px;
    border-radius: 999px;
    color: #fff;
    background: #e66e0b;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .13);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.selected-upload-picture.is-main .selected-upload-picture-badge {
    display: inline-flex;
}

.existing-picture-summary {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 9px;
    margin-top: 14px;
}

.existing-picture-summary .picture-tile {
    margin: 0;
}

@media (max-width: 1050px) {
    .selected-product-picture-preview {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .existing-picture-summary {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .selected-product-picture-preview,
    .existing-picture-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Dedicated homepage hero upload */
body.rds-modern-minimal-home .mm-hero-product.mm-hero-uploaded-image {
    inset: 0;
    width: 100%;
    height: 100%;
    border-radius: 0;
    overflow: hidden;
}

body.rds-modern-minimal-home .mm-hero-product.mm-hero-uploaded-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: none;
}

.homepage-hero-upload-block {
    display: grid;
    gap: 12px;
}

.homepage-hero-current {
    display: grid;
    grid-template-columns: minmax(180px, 300px) 1fr;
    gap: 16px;
    align-items: center;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #f8fafc;
}

.homepage-hero-current img {
    width: 100%;
    height: 150px;
    object-fit: cover;
    border-radius: 8px;
    background: #fff;
}

.homepage-hero-current > div {
    display: grid;
    gap: 8px;
    align-content: center;
}

.homepage-hero-current a {
    color: #d9650b;
    font-size: 12px;
    font-weight: 800;
}

.homepage-remove-hero {
    display: flex !important;
    align-items: center;
    gap: 8px;
}

@media (max-width: 760px) {
    .homepage-hero-current {
        grid-template-columns: 1fr;
    }
}

/* Order review, status and email actions */
.alert.warning {
    background: #fff7ed;
    color: #9a3412;
    border-color: #fed7aa;
}

.order-status {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid #d1d5db;
    background: #f3f4f6;
    color: #374151;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .02em;
}

.order-status.pending {
    border-color: #fed7aa;
    background: #fff7ed;
    color: #9a3412;
}

.order-status.accepted {
    border-color: #bbf7d0;
    background: #f0fdf4;
    color: #166534;
}

.order-status.deleted {
    border-color: #fecaca;
    background: #fef2f2;
    color: #991b1b;
}

.order-row-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}

.order-row-actions form {
    margin: 0;
}

.button.success-button,
.success-button {
    border-color: #16803a;
    background: #16803a;
    color: #fff;
}

.button.success-button:hover,
.success-button:hover {
    border-color: #126b31;
    background: #126b31;
    color: #fff;
}

.button.danger-button,
.danger-button {
    border-color: #b42318;
    background: #b42318;
    color: #fff;
}

.button.danger-button:hover,
.danger-button:hover {
    border-color: #912018;
    background: #912018;
    color: #fff;
}

.danger-tag {
    border-color: #fecaca !important;
    background: #fef2f2 !important;
    color: #991b1b !important;
}

.order-title-line {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.order-title-line h1 {
    margin: 0;
}

.order-management-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 18px;
    padding: 18px 20px;
    border-left: 4px solid #e97818;
}

.order-management-card h2 {
    margin: 5px 0;
    font-size: 20px;
}

.order-management-card p {
    margin: 0;
}

.order-management-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.order-management-actions form {
    margin: 0;
}

.order-status-note {
    display: grid;
    gap: 5px;
    margin: 0 0 18px;
    padding: 14px 16px;
    border-radius: 10px;
    border: 1px solid #d1d5db;
    line-height: 1.45;
}

.order-status-note.accepted-note {
    border-color: #bbf7d0;
    background: #f0fdf4;
    color: #166534;
}

.order-status-note.deleted-note {
    border-color: #fecaca;
    background: #fef2f2;
    color: #991b1b;
}

.order-action-dialog {
    width: min(560px, calc(100vw - 28px));
    padding: 0;
    border: 0;
    border-radius: 14px;
    box-shadow: 0 24px 70px rgba(17,24,39,.32);
}

.order-action-dialog::backdrop {
    background: rgba(17,24,39,.58);
    backdrop-filter: blur(2px);
}

.order-action-dialog form {
    display: grid;
    gap: 16px;
    padding: 22px;
}

.order-action-dialog label {
    display: grid;
    gap: 7px;
    color: #374151;
    font-size: 12px;
    font-weight: 800;
}

.order-action-dialog textarea {
    width: 100%;
    min-height: 120px;
    resize: vertical;
}

.order-dialog-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.order-dialog-head h2 {
    margin: 6px 0 0;
}

.dialog-close {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 1px solid #d1d5db;
    border-radius: 999px;
    background: #fff;
    color: #111827;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}

@media (max-width: 860px) {
    .order-management-card {
        align-items: stretch;
        flex-direction: column;
    }

    .order-management-actions {
        justify-content: flex-start;
    }
}

/* Software product fields: multi-select platforms and PDF documents */
.software-field-grid .software-multiselect {
    position: relative;
    width: 100%;
}

.software-field-grid .software-multiselect > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 42px;
    padding: 9px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: #111827;
    cursor: pointer;
    list-style: none;
    font-weight: 700;
}

.software-field-grid .software-multiselect > summary::-webkit-details-marker {
    display: none;
}

.software-field-grid .software-multiselect[open] > summary {
    border-color: var(--orange);
    box-shadow: 0 0 0 3px rgba(234, 98, 23, .12);
}

.software-multiselect-menu {
    position: absolute;
    z-index: 120;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    display: grid;
    gap: 2px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(17, 24, 39, .18);
}

.software-platform-option {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 9px 10px;
    border-radius: 7px;
    color: #1f2937;
    font-weight: 700;
    cursor: pointer;
}

.software-platform-option:hover {
    background: #f6f7f9;
}

.software-platform-option input {
    width: 17px;
    height: 17px;
    accent-color: var(--orange);
}

.software-document-field {
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fbfbfc;
}

.current-document-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 9px;
    padding: 9px 10px;
    border: 1px solid #dbe1e8;
    border-radius: 8px;
    background: #fff;
}

.current-document-row a {
    min-width: 0;
    overflow: hidden;
    color: #b94b0c;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rds-product-document-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px 14px;
}

/* User management search, table and popup editor */
.user-page-heading {
    align-items: center;
}

.user-search-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
    padding: 14px;
}

.user-search-form {
    display: flex;
    align-items: center;
    gap: 8px;
    width: min(720px, 100%);
}

.user-search-input-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 auto;
    min-width: 220px;
    padding: 0 11px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fff;
}

.user-search-input-wrap:focus-within {
    border-color: var(--orange);
    box-shadow: 0 0 0 3px rgba(234, 98, 23, .12);
}

.user-search-input-wrap input {
    min-height: 42px;
    padding: 8px 0;
    border: 0;
    outline: 0;
    box-shadow: none;
}

.user-list-panel {
    padding: 0;
    overflow: hidden;
}

.user-data-table {
    margin: 0;
}

.user-data-table td,
.user-data-table th {
    vertical-align: middle;
}

.user-role-badge,
.user-status-badge {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 900;
}

.user-role-badge {
    background: #eef2f7;
    color: #374151;
}

.user-status-badge.active {
    background: #dcfce7;
    color: #166534;
}

.user-status-badge.inactive {
    background: #f3f4f6;
    color: #6b7280;
}

.user-row-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    white-space: nowrap;
}

.user-management-dialog {
    width: min(720px, calc(100vw - 28px));
    max-height: calc(100vh - 36px);
    padding: 0;
    overflow: auto;
    border: 0;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(17, 24, 39, .34);
}

.user-management-dialog::backdrop {
    background: rgba(17, 24, 39, .58);
    backdrop-filter: blur(2px);
}

.user-management-dialog > form {
    display: grid;
    gap: 18px;
    padding: 22px;
}

.user-dialog-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.user-dialog-head h2 {
    margin: 4px 0 0;
}

.dialog-eyebrow {
    color: var(--orange);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.danger-text {
    color: #b42318;
}

.user-dialog-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.user-dialog-grid .wide {
    grid-column: 1 / -1;
}

.user-active-check {
    grid-column: 1 / -1;
    width: fit-content;
    padding: 9px 12px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fafafa;
}

.user-dialog-actions {
    display: flex;
    justify-content: flex-end;
    gap: 9px;
    padding-top: 4px;
    border-top: 1px solid #eef0f3;
}

.user-delete-dialog {
    width: min(560px, calc(100vw - 28px));
}

.user-delete-warning {
    margin: 0;
    padding: 14px;
    border: 1px solid #fecaca;
    border-radius: 10px;
    background: #fff7f7;
    color: #7f1d1d;
    line-height: 1.55;
}

.compact-empty-state {
    padding: 38px 20px;
}

@media (max-width: 760px) {
    .user-page-heading,
    .user-search-panel,
    .user-search-form {
        align-items: stretch;
        flex-direction: column;
    }

    .user-search-input-wrap {
        min-width: 0;
    }

    .user-dialog-grid {
        grid-template-columns: 1fr;
    }

    .user-dialog-grid .wide,
    .user-active-check {
        grid-column: auto;
    }

    .current-document-row {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Orders: active/history, search, delivery workflow, printing */
.order-list-heading {
    margin-bottom: 14px;
}

.orders-toolbar {
    display: grid;
    gap: 14px;
    margin-bottom: 16px;
    padding: 14px;
}

.order-view-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    padding-bottom: 12px;
    border-bottom: 1px solid #e5e7eb;
}

.order-view-tab {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 14px;
    border: 1px solid #d8dde5;
    border-radius: 8px;
    background: #fff;
    color: #3f4753;
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
}

.order-view-tab:hover {
    border-color: #e97818;
    color: #b84e00;
}

.order-view-tab.active {
    border-color: #e97818;
    background: #fff4e9;
    color: #a84200;
    box-shadow: inset 0 -2px 0 #e97818;
}

.order-search-form,
.list-search-form {
    display: flex;
    align-items: center;
    gap: 9px;
}

.list-search-panel {
    margin-bottom: 16px;
    padding: 13px 14px;
}

.list-search-input-wrap {
    position: relative;
    display: flex;
    flex: 1 1 420px;
    min-width: 250px;
}

.list-search-input-wrap > span {
    position: absolute;
    z-index: 1;
    left: 13px;
    top: 50%;
    color: #7a8492;
    font-size: 18px;
    transform: translateY(-50%);
    pointer-events: none;
}

.list-search-input-wrap input {
    width: 100%;
    min-height: 42px;
    padding-left: 40px;
    border-radius: 8px;
}

.list-result-count {
    margin-left: auto;
    white-space: nowrap;
}

.table-card-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px 12px;
    border-bottom: 1px solid #e8ebef;
}

.table-card-title-row h2,
.table-card-title-row p {
    margin: 0;
}

.table-card-title-row h2 {
    font-size: 18px;
}

.table-card-title-row p {
    margin-top: 3px;
}

.table-empty-message {
    padding: 28px 16px !important;
    text-align: center;
}

.order-status.completed {
    border-color: #bae6fd;
    background: #f0f9ff;
    color: #075985;
}

.button.complete-button,
.complete-button {
    border-color: #0f6f8f;
    background: #0f6f8f;
    color: #fff;
}

.button.complete-button:hover,
.complete-button:hover {
    border-color: #0b5a74;
    background: #0b5a74;
    color: #fff;
}

.order-status-note.completed-note {
    border-color: #bae6fd;
    background: #f0f9ff;
    color: #075985;
}

.order-heading-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.print-order-button::before {
    content: "🖨";
    margin-right: 7px;
}

.order-customer-print-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(200px, .6fr);
    gap: 12px;
    margin-bottom: 12px;
}

.order-customer-card {
    display: grid;
    align-content: center;
    gap: 4px;
    min-height: 92px;
}

.order-customer-card strong {
    font-size: 16px;
}

.order-info-label {
    color: #7a8492;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.print-only {
    display: none;
}

/* Compact My Account summary with focused edit dialogs */
.my-account-page {
    max-width: 1040px;
}

.account-summary-card {
    display: grid;
    grid-template-columns: minmax(240px, .8fr) minmax(360px, 1.25fr) auto;
    align-items: center;
    gap: 24px;
    padding: 22px;
    border: 1px solid #dfe4ea;
    border-radius: 16px;
    background:
        linear-gradient(120deg, rgba(233,120,24,.09), transparent 35%),
        #fff;
    box-shadow: 0 12px 28px rgba(17,24,39,.06);
}

.account-summary-main {
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
}

.account-avatar {
    display: grid;
    place-items: center;
    flex: 0 0 62px;
    width: 62px;
    height: 62px;
    border-radius: 18px;
    background: #141923;
    color: #fff;
    font-size: 24px;
    font-weight: 900;
    box-shadow: inset 0 -4px 0 #e97818;
}

.account-summary-identity {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.account-summary-identity h2 {
    margin: 0;
    overflow-wrap: anywhere;
    font-size: 22px;
}

.account-eyebrow {
    color: #d9650b;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.account-role-pill {
    width: fit-content;
    padding: 3px 9px;
    border: 1px solid #fed7aa;
    border-radius: 999px;
    background: #fff7ed;
    color: #9a3412;
    font-size: 10px;
    font-weight: 900;
}

.account-contact-summary {
    display: grid;
    grid-template-columns: minmax(190px, 1.4fr) repeat(2, minmax(120px, .8fr));
    gap: 10px;
}

.account-summary-field {
    display: grid;
    align-content: center;
    gap: 5px;
    min-width: 0;
    min-height: 64px;
    padding: 11px 12px;
    border: 1px solid #e4e8ed;
    border-radius: 10px;
    background: #f8f9fb;
}

.account-summary-field span,
.account-dialog-readonly span {
    color: #7a8492;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.account-summary-field strong {
    overflow-wrap: anywhere;
    font-size: 12px;
}

.account-summary-actions {
    display: grid;
    gap: 9px;
    min-width: 170px;
}

.account-summary-actions .button {
    width: 100%;
    white-space: nowrap;
}

.account-security-note {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
    padding: 13px 15px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #f8fafc;
    color: #667080;
}

.account-security-note > div:last-child {
    display: grid;
    gap: 2px;
}

.account-security-note strong {
    color: #303846;
    font-size: 12px;
}

.account-security-note span {
    font-size: 11px;
}

.account-security-icon {
    display: grid;
    place-items: center;
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #eaf8ee;
    color: #16803a;
    font-weight: 900;
}

.account-edit-dialog {
    width: min(620px, calc(100vw - 28px));
    max-height: calc(100vh - 32px);
    padding: 0;
    border: 0;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(17,24,39,.34);
}

.account-edit-dialog::backdrop {
    background: rgba(17,24,39,.62);
    backdrop-filter: blur(3px);
}

.account-edit-dialog form {
    display: grid;
    gap: 18px;
    max-height: calc(100vh - 32px);
    padding: 22px;
    overflow-y: auto;
}

.account-dialog-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid #edf0f3;
}

.account-dialog-head h2,
.account-dialog-head p {
    margin: 0;
}

.account-dialog-head h2 {
    margin-top: 5px;
    font-size: 22px;
}

.account-dialog-head p {
    margin-top: 5px;
    color: #707987;
    font-size: 12px;
    line-height: 1.5;
}

.account-section-number {
    color: #e97818;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
}

.account-dialog-alert {
    margin: 0;
}

.account-dialog-readonly {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.account-dialog-readonly > div {
    display: grid;
    gap: 4px;
    padding: 11px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 9px;
    background: #f7f8fa;
}

.account-dialog-readonly strong {
    font-size: 13px;
}

.account-dialog-fields,
.account-dialog-fields label {
    display: grid;
    gap: 7px;
}

.account-dialog-fields label {
    color: #303846;
    font-size: 12px;
    font-weight: 800;
}

.account-dialog-fields label > small {
    color: #7a8492;
    font-size: 10px;
    font-weight: 500;
}

.account-password-dialog {
    width: min(540px, calc(100vw - 28px));
}

.account-password-help {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 9px;
    background: #fafafa;
    color: #667080;
    font-size: 11px;
}

.account-password-help a {
    color: #c45100;
    font-weight: 900;
}

.account-dialog-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding-top: 2px;
}

@media (max-width: 1000px) {
    .account-summary-card {
        grid-template-columns: 1fr;
    }

    .account-summary-actions {
        display: flex;
        min-width: 0;
    }

    .account-summary-actions .button {
        width: auto;
    }
}

@media (max-width: 760px) {
    .order-search-form,
    .list-search-form,
    .order-details-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .list-search-input-wrap {
        min-width: 0;
    }

    .list-result-count {
        margin-left: 0;
        width: fit-content;
    }

    .order-heading-actions {
        justify-content: stretch;
    }

    .order-heading-actions > * {
        flex: 1 1 auto;
        text-align: center;
    }

    .account-summary-card {
        gap: 18px;
        padding: 18px;
    }

    .account-contact-summary {
        grid-template-columns: 1fr;
    }

    .account-summary-actions,
    .account-dialog-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .account-summary-actions .button,
    .account-dialog-actions .button {
        width: 100%;
    }

    .account-security-note,
    .account-password-help {
        align-items: flex-start;
    }

    .account-password-help {
        flex-direction: column;
    }

    .account-edit-dialog,
    .account-password-dialog {
        width: calc(100vw - 16px);
        max-height: calc(100dvh - 16px);
        border-radius: 14px;
    }

    .account-edit-dialog form {
        max-height: calc(100dvh - 16px);
        padding: 18px;
    }

    .account-dialog-readonly,
    .account-dialog-fields .two-col {
        grid-template-columns: 1fr;
    }
}

@media print {
    @page {
        size: A4 portrait;
        margin: 12mm;
    }

    html,
    body {
        width: 100%;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
        color: #000 !important;
        font-size: 10pt;
    }

    .topbar,
    .portal-nav,
    .professional-footer,
    .no-print,
    dialog {
        display: none !important;
    }

    .page-shell,
    .portal-layout,
    .portal-content,
    .order-details-page,
    .order-lines-summary {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
        box-shadow: none !important;
    }

    .print-only {
        display: flex !important;
    }

    .order-print-header {
        align-items: center;
        gap: 12px;
        padding-bottom: 8mm;
        border-bottom: 2px solid #111827;
    }

    .order-print-header img {
        width: 42mm;
        max-height: 16mm;
        object-fit: contain;
    }

    .order-print-header > div {
        display: grid;
        gap: 2px;
    }

    .order-print-header strong {
        font-size: 14pt;
    }

    .order-print-header span {
        font-size: 8pt;
        color: #555;
    }

    .order-print-title {
        align-items: flex-start;
        justify-content: space-between;
        gap: 12px;
        margin: 7mm 0 5mm;
    }

    .order-print-title > div {
        display: grid;
        gap: 2px;
    }

    .order-print-title span,
    .order-info-label {
        font-size: 7.5pt !important;
        color: #666 !important;
        font-weight: 700;
        text-transform: uppercase;
    }

    .order-print-title h1 {
        margin: 0;
        font-size: 20pt;
    }

    .order-customer-print-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 3mm !important;
        margin-bottom: 4mm !important;
    }

    .order-totals-grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 3mm !important;
        max-width: none !important;
        margin: 3mm 0 4mm !important;
    }

    .card-lite,
    .table-card,
    .order-status-note {
        break-inside: avoid;
        border: 1px solid #b7bdc7 !important;
        border-radius: 0 !important;
        background: #fff !important;
        box-shadow: none !important;
    }

    .card-lite {
        min-height: 0 !important;
        padding: 3.5mm !important;
    }

    .order-totals-grid .card-lite strong {
        font-size: 11pt;
    }

    .order-totals-grid .grand-total {
        background: #fff8f1 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .table-card-title-row {
        padding: 3mm 0 !important;
        border: 0 !important;
    }

    .table-card-title-row p {
        display: none;
    }

    .responsive-table {
        overflow: visible !important;
    }

    .order-print-table {
        width: 100% !important;
        border-collapse: collapse !important;
        font-size: 8.5pt;
    }

    .order-print-table th,
    .order-print-table td {
        padding: 2.4mm !important;
        border: 1px solid #aeb4bd !important;
        color: #000 !important;
    }

    .order-print-table th {
        background: #eef0f3 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .order-notes {
        margin-top: 4mm;
    }

    .order-print-footer {
        justify-content: space-between;
        margin-top: 8mm;
        padding-top: 3mm;
        border-top: 1px solid #b7bdc7;
        color: #666;
        font-size: 7.5pt;
    }
}

/* RDS software public page: clear download action and readable system-requirements modal. */
.rds-product-button-as-control {
    appearance: none;
    font-family: inherit;
    cursor: pointer;
}

body.rds-modal-open {
    overflow: hidden;
}

.rds-software-requirements-modal[hidden] {
    display: none !important;
}

.rds-software-requirements-modal {
    position: fixed;
    inset: 0;
    z-index: 5000;
    display: grid;
    place-items: center;
    padding: 24px;
    opacity: 0;
    transition: opacity .16s ease;
}

.rds-software-requirements-modal.is-open {
    opacity: 1;
}

.rds-software-requirements-backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: rgba(17, 24, 39, .72);
    backdrop-filter: blur(3px);
    cursor: pointer;
}

.rds-software-requirements-dialog {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    width: min(920px, 100%);
    max-height: min(88vh, 860px);
    overflow: hidden;
    border: 1px solid #dce1e7;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(17, 24, 39, .32);
    transform: translateY(10px) scale(.985);
    transition: transform .16s ease;
}

.rds-software-requirements-modal.is-open .rds-software-requirements-dialog {
    transform: translateY(0) scale(1);
}

.rds-software-requirements-dialog-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: 24px 26px 20px;
    border-bottom: 1px solid #e5e8ec;
    background: linear-gradient(180deg, #fff 0%, #fbfcfd 100%);
}

.rds-software-requirements-dialog-header > div {
    min-width: 0;
}

.rds-software-requirements-dialog-header span {
    color: #e66e0b;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .075em;
    text-transform: uppercase;
}

.rds-software-requirements-dialog-header h2 {
    margin: 5px 0 7px;
    color: #1f2734;
    font-size: clamp(25px, 3vw, 34px);
    line-height: 1.1;
}

.rds-software-requirements-dialog-header p {
    margin: 0;
    color: #67717e;
    font-size: 15px;
    line-height: 1.55;
}

.rds-software-requirements-close {
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid #d6dce3;
    border-radius: 50%;
    color: #303846;
    background: #fff;
    font-family: inherit;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease, transform .15s ease;
}

.rds-software-requirements-close:hover {
    border-color: #b9c1ca;
    background: #f5f7f9;
    transform: rotate(2deg);
}

.rds-software-requirements-dialog-body {
    min-height: 0;
    overflow-y: auto;
    padding: 24px 26px 28px;
    background: #f5f7fa;
}

.rds-software-requirements-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.rds-software-requirement-card {
    min-width: 0;
    padding: 20px 21px;
    border: 1px solid #dde3e9;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 4px 14px rgba(32, 39, 53, .045);
}

.rds-software-requirement-card:only-child {
    grid-column: 1 / -1;
}

.rds-software-requirement-card h3 {
    margin: 0 0 10px;
    color: #263040;
    font-size: 17px;
    font-weight: 850;
    line-height: 1.3;
}

.rds-software-requirement-card p {
    margin: 0;
    color: #4f5a68;
    font-size: 16px;
    line-height: 1.78;
    white-space: pre-line;
    overflow-wrap: anywhere;
}

.rds-software-requirement-card.important {
    grid-column: 1 / -1;
    border-color: #efc29d;
    background: #fff8f1;
}

.rds-software-requirement-card.important h3 {
    color: #b95005;
}

.rds-software-requirements-dialog-footer {
    display: flex;
    justify-content: flex-end;
    padding: 16px 26px;
    border-top: 1px solid #e5e8ec;
    background: #fff;
}

.rds-software-requirements-dialog-footer .rds-product-button {
    min-width: 110px;
    cursor: pointer;
    font-family: inherit;
}

@media (max-width: 760px) {
    .rds-software-requirements-modal {
        padding: 0;
    }

    .rds-software-requirements-dialog {
        width: 100%;
        height: 100%;
        max-height: none;
        border: 0;
        border-radius: 0;
    }

    .rds-software-requirements-dialog-header {
        padding: 20px 18px 17px;
    }

    .rds-software-requirements-dialog-header h2 {
        font-size: 26px;
    }

    .rds-software-requirements-dialog-header p {
        font-size: 14px;
    }

    .rds-software-requirements-dialog-body {
        padding: 18px;
    }

    .rds-software-requirements-grid {
        grid-template-columns: 1fr;
    }

    .rds-software-requirement-card,
    .rds-software-requirement-card.important,
    .rds-software-requirement-card:only-child {
        grid-column: auto;
    }

    .rds-software-requirement-card p {
        font-size: 15px;
        line-height: 1.72;
    }

    .rds-software-requirements-dialog-footer {
        padding: 14px 18px;
    }
}

/* =========================================================
   Public Products catalogue readability + controls refresh
   Keeps the public catalogue controls clear and professional.
   ========================================================= */
body.rds-public-catalogue-page .public-products-heading {
    align-items: center;
    gap: 36px;
}

body.rds-public-catalogue-page .public-products-heading > div {
    min-width: 0;
}


body.rds-public-catalogue-page .catalogue-quote-button {
    min-width: 214px;
    min-height: 48px;
    flex: 0 0 auto;
    gap: 10px;
    padding: 0 10px 0 16px;
    border-color: #171c24;
    border-radius: 10px;
    color: #fff;
    background: #171c24;
    box-shadow: 0 9px 22px rgba(17, 24, 39, .14);
    font-size: 13px;
    font-weight: 850;
    transition: transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease;
}

body.rds-public-catalogue-page .catalogue-quote-button > svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: #ff9a48;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

body.rds-public-catalogue-page .catalogue-quote-button b {
    width: 27px;
    height: 27px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    border-radius: 8px;
    color: #fff;
    background: rgba(255, 255, 255, .1);
    font-size: 15px;
    line-height: 1;
}

body.rds-public-catalogue-page .catalogue-quote-button:hover {
    border-color: #e97818;
    background: #e97818;
    box-shadow: 0 11px 24px rgba(233, 120, 24, .22);
    transform: translateY(-1px);
}

body.rds-public-catalogue-page .catalogue-quote-button:hover > svg {
    stroke: #fff;
}

body.rds-public-catalogue-page .public-catalogue-tools {
    margin: 18px 0 22px;
    padding: 14px;
    border-color: #dce2e8;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 9px 24px rgba(17, 24, 39, .055);
}

body.rds-public-catalogue-page .public-search-form {
    gap: 10px;
    margin-bottom: 12px;
}

body.rds-public-catalogue-page .public-search-box input {
    min-height: 50px;
    padding-left: 47px;
    border-color: #d7dde4;
    border-radius: 10px;
    color: #1f2937;
    background: #f8fafc;
    font-size: 14px;
    transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}

body.rds-public-catalogue-page .public-search-box input::placeholder {
    color: #7b8491;
    opacity: 1;
}

body.rds-public-catalogue-page .public-search-box input:hover {
    border-color: #bec6cf;
    background: #fff;
}

body.rds-public-catalogue-page .public-search-box input:focus {
    border-color: #e97818;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(233, 120, 24, .12);
}

body.rds-public-catalogue-page .public-search-box > svg {
    left: 16px;
    width: 19px;
    height: 19px;
    stroke: #6f7885;
}

body.rds-public-catalogue-page .catalogue-search-button {
    min-width: 124px;
    min-height: 50px;
    gap: 8px;
    padding: 0 19px;
    border-radius: 10px;
    box-shadow: 0 7px 17px rgba(233, 120, 24, .18);
    font-size: 13px;
    font-weight: 850;
    transition: transform .16s ease, background .16s ease, box-shadow .16s ease;
}

body.rds-public-catalogue-page .catalogue-search-button svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
}

body.rds-public-catalogue-page .catalogue-search-button:hover {
    border-color: #cf6511;
    background: #cf6511;
    box-shadow: 0 9px 20px rgba(207, 101, 17, .21);
    transform: translateY(-1px);
}

body.rds-public-catalogue-page .showcase-category-tabs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
}

body.rds-public-catalogue-page .showcase-category-tabs .category-filter-tab {
    min-height: 52px;
    gap: 10px;
    padding: 7px 9px;
    border: 1px solid #e0e5ea;
    border-radius: 10px;
    color: #394250;
    background: #f7f9fb;
    box-shadow: none;
    font-size: 12px;
    font-weight: 800;
    transition: transform .15s ease, border-color .15s ease, color .15s ease, background .15s ease, box-shadow .15s ease;
}

body.rds-public-catalogue-page .showcase-category-tabs .category-filter-tab:hover {
    color: #9e4508;
    border-color: #efaa73;
    background: #fffaf6;
    box-shadow: 0 5px 13px rgba(17, 24, 39, .055);
    transform: translateY(-1px);
}

body.rds-public-catalogue-page .showcase-category-tabs .category-filter-tab.active {
    color: #fff;
    border-color: #171c24;
    background: #171c24;
    box-shadow: 0 7px 17px rgba(17, 24, 39, .15);
}

body.rds-public-catalogue-page .showcase-category-tabs .category-tab-label {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 9px;
    overflow: visible;
    color: inherit;
    white-space: nowrap;
}

body.rds-public-catalogue-page .showcase-category-tabs .category-tab-label > span:last-child {
    min-width: 0;
    overflow: hidden;
    color: inherit;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.rds-public-catalogue-page .showcase-category-tabs .category-tab-icon {
    width: 31px;
    height: 31px;
    flex: 0 0 31px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
    border-radius: 8px;
    color: #596371;
    background: #e9edf1;
}

body.rds-public-catalogue-page .showcase-category-tabs .category-tab-icon svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

body.rds-public-catalogue-page .showcase-category-tabs .category-filter-tab:hover .category-tab-icon {
    color: #cf650f;
    background: #ffead8;
}

body.rds-public-catalogue-page .showcase-category-tabs .category-filter-tab.active .category-tab-icon {
    color: #ff9a48;
    background: rgba(255, 255, 255, .1);
}

body.rds-public-catalogue-page .showcase-category-tabs .category-tab-count,
body.rds-public-catalogue-page .showcase-category-tabs .category-filter-tab.active .category-tab-count {
    min-width: 27px;
    padding: 4px 7px;
    border-radius: 999px;
    color: #505966;
    background: #e7ebef;
    font-size: 10px;
    font-weight: 900;
    line-height: 1.15;
    text-align: center;
}

body.rds-public-catalogue-page .showcase-category-tabs .category-filter-tab.active .category-tab-count {
    color: #fff;
    background: #e97818;
}

body.rds-public-catalogue-page .showcase-category-tabs .category-filter-tab:focus-visible,
body.rds-public-catalogue-page .catalogue-quote-button:focus-visible,
body.rds-public-catalogue-page .catalogue-search-button:focus-visible {
    outline: 3px solid rgba(233, 120, 24, .27);
    outline-offset: 2px;
}

body.rds-public-catalogue-page .catalogue-results-heading .button {
    border-color: #cfd5dc;
    border-radius: 9px;
    color: #303947;
    background: #fff;
}

body.rds-public-catalogue-page .catalogue-results-heading .button:hover {
    color: #a84b0a;
    border-color: #e97818;
    background: #fff8f1;
}

@media (max-width: 1120px) {
    body.rds-public-catalogue-page .public-products-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 18px;
    }

    body.rds-public-catalogue-page .catalogue-quote-button {
        min-width: 214px;
    }
}

@media (max-width: 820px) {
    body.rds-public-catalogue-page .showcase-category-tabs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {

    body.rds-public-catalogue-page .catalogue-quote-button {
        width: 100%;
    }

    body.rds-public-catalogue-page .public-search-form {
        grid-template-columns: 1fr;
    }

    body.rds-public-catalogue-page .catalogue-search-button {
        width: 100%;
    }

    body.rds-public-catalogue-page .showcase-category-tabs {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   RDS responsive mobile layout - July 2026
   Phone-only presentation rules. Business logic is unchanged.
   ========================================================= */
.mobile-nav-toggle,
.portal-mobile-toggle {
    display: none;
}

.mobile-nav-toggle {
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    padding: 0;
    border: 1px solid currentColor;
    border-radius: 10px;
    color: inherit;
    background: transparent;
    cursor: pointer;
}

.mobile-nav-toggle > span {
    width: 20px;
    height: 2px;
    display: block;
    border-radius: 999px;
    background: currentColor;
    transition: transform .18s ease, opacity .18s ease;
}

.topbar.mobile-nav-open .mobile-nav-toggle > span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.topbar.mobile-nav-open .mobile-nav-toggle > span:nth-child(2) {
    opacity: 0;
}

.topbar.mobile-nav-open .mobile-nav-toggle > span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.portal-mobile-toggle {
    width: 100%;
    min-height: 46px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 11px;
    color: #fff;
    background: rgba(255,255,255,.06);
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    font-weight: 850;
}

.portal-mobile-toggle strong {
    color: #ffb06e;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

@media (max-width: 760px) {
    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
    }

    html {
        scroll-padding-top: 74px;
    }

    body {
        min-width: 0;
        -webkit-text-size-adjust: 100%;
    }

    img,
    svg,
    video,
    canvas {
        max-width: 100%;
    }

    .page-shell {
        width: 100%;
        max-width: 100%;
        min-height: calc(100vh - 64px);
        padding: 14px 12px 28px;
    }

    .button,
    .rds-product-button {
        min-height: 44px;
    }

    input:not([type="checkbox"]):not([type="radio"]),
    select,
    textarea {
        max-width: 100%;
        font-size: 16px;
    }

    /* Compact phone header with a real expandable menu. */
    .topbar,
    .topbar-public.mm-public-header {
        min-height: 64px;
    }

    .topbar-inner,
    .topbar-public.mm-public-header .topbar-inner {
        min-height: 64px;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: center;
        gap: 10px;
        padding: 10px 12px;
    }

    .site-brand,
    .topbar-public.mm-public-header .site-brand {
        min-width: 0;
        max-width: 100%;
        grid-column: 1;
        grid-row: 1;
    }

    .site-brand-logo,
    .topbar-public.mm-public-header .site-brand-logo {
        width: 88px;
        height: 40px;
        padding: 4px 7px;
        border-radius: 9px;
    }

    .site-brand-text,
    .topbar-public.mm-public-header .site-brand-text {
        display: none !important;
    }

    .mobile-nav-toggle {
        display: inline-flex;
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
    }

    .topbar-public.mm-public-header .mobile-nav-toggle {
        color: #222b37;
        border-color: #cfd5dc;
        background: #fff;
    }

    .topbar-authenticated .mobile-nav-toggle {
        color: #fff;
        border-color: rgba(255,255,255,.24);
        background: rgba(255,255,255,.05);
    }

    .topbar .topbar-links,
    .topbar-public.mm-public-header .topbar-links {
        grid-column: 1 / -1;
        grid-row: 2;
        order: initial;
        width: 100%;
        max-height: none;
        margin: 0;
        padding: 8px 0 0;
        overflow: visible;
        border-top: 1px solid rgba(255,255,255,.1);
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 3px;
    }

    .topbar-public.mm-public-header .topbar-links {
        border-top-color: #e7ebef;
    }

    body.mobile-menu-ready .topbar:not(.mobile-nav-open) .topbar-links,
    body.mobile-menu-ready .topbar:not(.mobile-nav-open) .topbar-user,
    body.mobile-menu-ready .topbar:not(.mobile-nav-open) .topbar-login {
        display: none !important;
    }

    body.mobile-menu-ready .topbar.mobile-nav-open .topbar-links {
        display: flex !important;
    }

    .topbar .topbar-links a,
    .topbar-public.mm-public-header .topbar-links a {
        width: 100%;
        min-height: 44px;
        display: flex;
        align-items: center;
        padding: 10px 12px;
        border-radius: 9px;
        font-size: 14px;
    }

    .topbar-public.mm-public-header .topbar-links a.active::after {
        display: none;
    }

    .topbar-public.mm-public-header .topbar-links a.active {
        color: #b95306;
        background: #fff3e8;
    }

    .topbar-user,
    .topbar-login {
        grid-column: 1 / -1;
        grid-row: 3;
        width: 100%;
        margin: 0;
    }

    body.mobile-menu-ready .topbar.mobile-nav-open .topbar-user {
        display: flex !important;
    }

    body.mobile-menu-ready .topbar.mobile-nav-open .topbar-login {
        display: inline-flex !important;
    }

    .topbar-user {
        padding: 10px 0 0;
        border-top: 1px solid rgba(255,255,255,.1);
    }

    .topbar-user-details {
        max-width: none;
        flex: 1 1 auto;
    }

    .topbar-login,
    .topbar-public.mm-public-header .topbar-login {
        min-height: 44px;
        justify-content: center;
        padding: 10px 14px;
    }

    /* Portal navigation becomes a compact expandable phone menu. */
    .portal-layout {
        grid-template-columns: 1fr !important;
        gap: 14px;
    }

    .portal-nav {
        position: static;
        min-height: 0;
        margin: 0;
        padding: 10px;
        border-radius: 14px;
    }

    .portal-nav-head {
        display: none;
    }

    .portal-mobile-toggle {
        display: flex;
    }

    body.mobile-menu-ready .portal-nav:not(.portal-menu-open) .portal-nav-links,
    body.mobile-menu-ready .portal-nav:not(.portal-menu-open) .portal-nav-footer {
        display: none !important;
    }

    .portal-nav.portal-menu-open .portal-nav-links {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 4px;
        margin-top: 8px;
    }

    .portal-nav.portal-menu-open .portal-nav-footer {
        display: block !important;
        margin-top: 10px;
        padding-top: 10px;
    }

    .portal-group {
        grid-column: auto !important;
        padding: 13px 9px 5px;
    }

    .portal-nav a.portal-link {
        min-height: 44px;
    }

    /* Public homepage. */
    body.rds-modern-minimal-home .page-shell {
        padding: 0 12px 30px;
    }

    body.rds-modern-minimal-home .mm-hero,
    .mm-hero {
        min-height: 0;
        grid-template-columns: 1fr;
        grid-template-rows: auto 250px;
        overflow: hidden;
        border-radius: 0 0 16px 16px;
    }

    body.rds-modern-minimal-home .mm-hero-copy,
    .mm-hero-copy {
        padding: 32px 20px 24px;
    }

    .mm-eyebrow {
        margin-bottom: 12px;
        font-size: 10px;
    }

    .mm-hero-title {
        margin-bottom: 16px;
        font-size: clamp(38px, 12vw, 52px);
        line-height: 1;
        letter-spacing: -.045em;
    }

    .mm-hero-copy > p {
        margin-bottom: 22px;
        font-size: 15px;
        line-height: 1.55;
    }

    .mm-hero-actions,
    .mm-hero-actions .button {
        width: 100%;
    }

    .mm-hero-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 9px;
    }

    body.rds-modern-minimal-home .mm-hero-visual,
    .mm-hero-visual {
        min-height: 250px;
    }

    body.rds-modern-minimal-home .mm-office-backdrop {
        inset: 0;
    }

    body.rds-modern-minimal-home .mm-hero-product,
    .mm-hero-product {
        right: 4%;
        bottom: 2%;
        width: 92%;
        height: 98%;
    }

    .mm-trust-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        border-radius: 0 0 14px 14px;
        overflow: hidden;
    }

    .mm-trust-strip article,
    .mm-trust-strip article:nth-child(2) {
        min-width: 0;
        min-height: 76px;
        justify-content: flex-start;
        gap: 10px;
        padding: 13px 12px;
        border-right: 1px solid #e8ebef;
        border-bottom: 1px solid #e8ebef;
    }

    .mm-trust-strip article:nth-child(2n) {
        border-right: 0;
    }

    .mm-trust-strip article:nth-last-child(-n + 2) {
        border-bottom: 0;
    }

    .mm-line-icon {
        width: 30px;
        height: 30px;
        flex: 0 0 30px;
    }

    .mm-trust-strip strong {
        font-size: 12px;
    }

    .mm-trust-strip article > div > span {
        font-size: 10px;
    }

    .mm-section {
        padding: 32px 0 2px;
    }

    .mm-section-heading {
        margin-bottom: 17px;
    }

    .mm-section-heading h2 {
        font-size: 27px;
    }

    .mm-category-grid,
    .mm-featured-grid,
    .mm-why-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .mm-category-card {
        min-height: 0;
        padding: 18px 17px 16px;
    }

    .mm-category-copy h3 {
        min-height: 0;
        font-size: 20px;
    }

    .mm-category-image {
        height: 165px;
        padding-top: 8px;
    }

    .mm-category-card > p {
        min-height: 0;
    }

    .mm-solutions-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .mm-solutions-grid article {
        min-height: 112px;
        display: grid;
        grid-template-columns: 1fr;
        justify-items: center;
        align-content: center;
        gap: 8px;
        padding: 14px 8px;
        text-align: center;
    }

    .mm-featured-card {
        display: grid;
        grid-template-columns: 118px minmax(0, 1fr);
    }

    .mm-featured-card .public-card-image-wrap {
        height: 126px;
        padding: 10px;
    }

    .mm-featured-copy {
        min-height: 126px;
        align-content: center;
        padding: 12px;
    }

    .mm-why-grid article,
    .mm-why-grid article:nth-child(2) {
        min-height: 0;
        padding: 18px;
        border-right: 0;
        border-bottom: 1px solid #e6e9ed;
    }

    .mm-why-grid article:last-child {
        border-bottom: 0;
    }

    .mm-expertise-cta {
        align-items: stretch;
        flex-direction: column;
        gap: 16px;
        margin: 30px 0 0;
        padding: 20px 18px;
    }

    .mm-expertise-cta .button {
        width: 100%;
    }

    .mm-footer-main {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 26px 18px;
        padding: 30px 18px 26px;
    }

    .mm-footer-brand {
        grid-column: 1 / -1;
    }

    .mm-footer-bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
        padding: 16px 18px 20px;
    }

    .mm-footer-bottom nav {
        flex-wrap: wrap;
        gap: 8px 16px;
    }

    /* Public product catalogue. */
    body.rds-public-catalogue-page .page-shell {
        padding: 18px 12px 30px;
    }

    body.rds-public-catalogue-page .public-products-heading {
        align-items: stretch;
        gap: 16px;
    }

    body.rds-public-catalogue-page .public-products-heading h1 {
        font-size: 29px;
        line-height: 1.08;
    }

    body.rds-public-catalogue-page .public-products-heading p {
        font-size: 14px;
        line-height: 1.55;
    }

    body.rds-public-catalogue-page .catalogue-quote-button {
        width: 100%;
        min-width: 0;
    }

    body.rds-public-catalogue-page .public-catalogue-tools {
        margin: 14px 0 18px;
        padding: 10px;
        border-radius: 12px;
    }

    body.rds-public-catalogue-page .public-search-form {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    body.rds-public-catalogue-page .catalogue-search-button {
        width: 100%;
    }

    body.rds-public-catalogue-page .showcase-category-tabs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    body.rds-public-catalogue-page .showcase-category-tabs .category-filter-tab {
        min-width: 0;
        min-height: 52px;
    }

    .catalogue-results-heading,
    .showcase-results-heading {
        align-items: stretch;
        flex-direction: column;
        gap: 10px;
    }

    .catalogue-results-heading .button,
    .showcase-results-heading .button {
        width: 100%;
    }

    .catalogue-product-grid,
    .professional-product-grid,
    .showcase-product-grid {
        grid-template-columns: 1fr !important;
        gap: 14px;
    }

    .showcase-product-card .public-card-image-wrap,
    .public-product-card .public-card-image-wrap {
        height: 220px;
    }

    .showcase-catalogue-note {
        align-items: stretch;
        flex-direction: column;
        gap: 14px;
    }

    .showcase-catalogue-note .button {
        width: 100%;
    }

    /* Public product details and software requirements. */
    .rds-product-breadcrumb {
        margin-bottom: 10px;
        font-size: 12px;
    }

    .rds-product-hero-card {
        gap: 18px;
        padding: 14px;
        border-radius: 14px;
    }

    .rds-product-main-image-frame {
        height: 280px;
        padding: 12px;
    }

    .rds-product-summary h1 {
        font-size: 32px;
    }

    .rds-product-subtitle {
        font-size: 15px;
    }

    .rds-product-overview-section,
    .rds-product-specification-section {
        padding: 16px;
    }

    .rds-product-overview-copy {
        font-size: 13px;
        line-height: 1.65;
    }

    .rds-software-requirements-dialog {
        width: calc(100% - 20px);
        max-height: calc(100dvh - 20px);
        margin: 10px auto;
        border-radius: 14px;
    }

    .rds-software-requirements-dialog-header,
    .rds-software-requirements-dialog-body,
    .rds-software-requirements-dialog-footer {
        padding-left: 16px;
        padding-right: 16px;
    }

    /* Public quote and login pages. */
    .quote-page-heading {
        padding-top: 8px;
    }

    .quote-page-heading h1 {
        font-size: 30px;
    }

    .quote-page-grid {
        gap: 16px;
        padding-top: 16px;
    }

    .quote-form-section,
    .quote-contact-card {
        padding: 18px 16px;
    }

    .quote-selected-product {
        grid-template-columns: 80px minmax(0, 1fr);
    }

    .quote-submit-row {
        padding: 16px;
    }

    .public-login-shell {
        grid-template-columns: 1fr !important;
        gap: 24px;
        margin: 4px auto 18px;
        padding: 20px 16px !important;
        border-radius: 16px !important;
    }

    .public-login-intro h1 {
        font-size: 31px;
        line-height: 1.08;
    }

    .public-login-benefits {
        gap: 10px;
    }

    .auth-box,
    .professional-auth-box {
        width: 100%;
        max-width: none;
        padding: 20px 16px;
    }

    /* Partner portal content. */
    .dashboard-heading {
        gap: 14px;
        margin-bottom: 16px;
    }

    .dashboard-heading h1 {
        font-size: 30px;
    }

    .dashboard-heading-actions,
    .dashboard-heading-actions .button {
        width: 100%;
    }

    .dashboard-heading-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .dashboard-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .dashboard-stat {
        min-height: 112px;
        padding: 13px;
    }

    .dashboard-stat-body strong {
        font-size: 23px;
    }

    .dashboard-panel {
        padding: 14px;
        border-radius: 14px;
    }

    .dashboard-panel-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 7px;
    }

    .dashboard-table-wrap,
    .table-scroll,
    .responsive-table {
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .form-actions,
    .toolbar-actions,
    .page-actions {
        flex-wrap: wrap;
    }

    .form-actions .button,
    .toolbar-actions .button,
    .page-actions .button {
        flex: 1 1 100%;
    }

    .footer,
    .professional-footer {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
        padding: 16px 14px;
    }
}

@media (max-width: 480px) {
    .mm-trust-strip article {
        padding: 12px 10px;
    }

    .mm-solutions-grid {
        grid-template-columns: 1fr;
    }

    .mm-solutions-grid article {
        min-height: 88px;
        grid-template-columns: 38px minmax(0, 1fr);
        justify-items: start;
        gap: 12px;
        padding: 14px 16px;
        text-align: left;
    }

    .mm-featured-card {
        grid-template-columns: 104px minmax(0, 1fr);
    }

    .mm-featured-card .public-card-image-wrap,
    .mm-featured-copy {
        height: 116px;
        min-height: 116px;
    }

    .mm-footer-main {
        grid-template-columns: 1fr;
    }

    .mm-footer-brand {
        grid-column: auto;
    }

    body.rds-public-catalogue-page .showcase-category-tabs {
        grid-template-columns: 1fr;
    }

    .rds-product-main-image-frame {
        height: 245px;
    }

    .rds-product-highlight-grid,
    .rds-product-specification-grid,
    .rds-related-products-grid {
        grid-template-columns: 1fr;
    }

    .rds-product-specification-grid > div.wide {
        grid-column: auto;
    }

    .rds-product-actions {
        flex-direction: column;
    }

    .rds-product-button {
        width: 100%;
    }

    .dashboard-stat-grid {
        grid-template-columns: 1fr;
    }
}

@media (hover: none) and (pointer: coarse) {
    .button,
    .rds-product-button,
    .category-filter-tab,
    .portal-link,
    .topbar-links a {
        touch-action: manipulation;
    }
}

/* =========================================================
   RDS public header branding - Option 2
   Larger logo mark with sharp HTML company name and tagline.
   Desktop-only override; mobile navigation rules remain unchanged.
   ========================================================= */
@media (min-width: 901px) {
    .topbar-public.mm-public-header {
        min-height: 88px;
    }

    .topbar-public.mm-public-header .topbar-inner {
        min-height: 88px;
        grid-template-columns: minmax(350px, auto) 1fr auto;
        padding-top: 13px;
        padding-bottom: 13px;
    }

    .topbar-public.mm-public-header .site-brand {
        gap: 14px;
        min-width: 350px;
    }

    .topbar-public.mm-public-header .site-brand-logo {
        width: 118px;
        height: 54px;
        padding: 4px 8px;
        border-radius: 10px;
        flex: 0 0 118px;
    }

    .topbar-public.mm-public-header .site-brand-logo img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    .topbar-public.mm-public-header .site-brand-text {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 2px;
        white-space: nowrap;
    }

    .topbar-public.mm-public-header .site-brand-text strong {
        font-size: 19px;
        line-height: 1.1;
        font-weight: 900;
        letter-spacing: -.02em;
    }

    .topbar-public.mm-public-header .site-brand-text small {
        font-size: 10px;
        line-height: 1.2;
        font-weight: 750;
        letter-spacing: .045em;
    }
}

/* Orders list action alignment */
.orders-table-card .actions-header {
    width: 148px;
    min-width: 148px;
    text-align: center;
}

.orders-table-card .order-row-actions {
    width: 148px;
    min-width: 148px;
    padding-left: 12px;
    padding-right: 12px;
    text-align: center;
    vertical-align: middle;
}

.orders-table-card .order-row-actions .order-actions-wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 6px;
    min-height: 34px;
}

.orders-table-card .order-row-actions form {
    margin: 0;
}

.orders-table-card .order-row-actions .order-open-button {
    min-width: 102px;
    min-height: 34px;
    padding: 7px 13px;
    border-color: #1f2937;
    border-radius: 8px;
    background: #1f2937;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    box-shadow: 0 3px 8px rgba(17, 24, 39, .14);
}

.orders-table-card .order-row-actions .order-open-button:hover,
.orders-table-card .order-row-actions .order-open-button:focus-visible {
    border-color: #e97818;
    background: #e97818;
    color: #fff;
}

@media (max-width: 760px) {
    .orders-table-card .actions-header,
    .orders-table-card .order-row-actions {
        width: 120px;
        min-width: 120px;
    }

    .orders-table-card .order-row-actions .order-open-button {
        min-width: 92px;
    }
}

/* Partner and customer dashboard role cleanup */

.external-dashboard .partner-dashboard-heading {
    margin-bottom: 18px;
}

.external-dashboard .partner-dashboard-grid {
    grid-template-columns: minmax(0, 1.8fr) minmax(290px, .7fr);
}

.external-dashboard .partner-orders-table {
    min-width: 620px;
}

.external-dashboard .partner-orders-table th:last-child,
.external-dashboard .partner-orders-table td:last-child {
    width: 112px;
    text-align: center;
}

.external-dashboard .partner-orders-table .button {
    min-width: 88px;
}

.external-dashboard .partner-dashboard-actions {
    grid-template-columns: 1fr;
}

@media (max-width: 1160px) {
    .external-dashboard .partner-dashboard-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   RDS PUBLIC HEADER — OPTION 2 EXACT BRANDING
   Prominent RDS mark + orange divider + sharp HTML branding.
   This final override intentionally sits at the end of site.css.
   ========================================================= */
.site-brand-divider {
    display: none;
}

@media (min-width: 1200px) {
    .topbar-public.mm-public-header {
        min-height: 94px;
    }

    .topbar-public.mm-public-header .topbar-inner {
        min-height: 94px;
        max-width: 1500px;
        grid-template-columns: minmax(410px, auto) 1fr auto;
        gap: 24px;
        padding: 14px 28px;
    }

    .topbar-public.mm-public-header .site-brand {
        min-width: 410px;
        gap: 15px;
    }

    .topbar-public.mm-public-header .site-brand-logo {
        width: 132px;
        height: 60px;
        flex: 0 0 132px;
        padding: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .topbar-public.mm-public-header .site-brand-logo img {
        width: 100%;
        height: 100%;
        object-fit: contain;
        filter: none;
    }

    .topbar-public.mm-public-header .site-brand-divider {
        display: block;
        width: 2px;
        height: 42px;
        flex: 0 0 2px;
        border-radius: 999px;
        background: #e97818;
    }

    .topbar-public.mm-public-header .site-brand-text {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 4px;
        white-space: nowrap;
    }

    .topbar-public.mm-public-header .site-brand-text strong {
        color: #111827;
        font-size: 22px;
        line-height: 1.05;
        font-weight: 900;
        letter-spacing: -.025em;
    }

    .topbar-public.mm-public-header .site-brand-text small {
        color: #667085;
        font-size: 10.5px;
        line-height: 1.15;
        font-weight: 800;
        letter-spacing: .055em;
        text-transform: uppercase;
    }
}

@media (min-width: 901px) and (max-width: 1199px) {
    .topbar-public.mm-public-header {
        min-height: 86px;
    }

    .topbar-public.mm-public-header .topbar-inner {
        min-height: 86px;
        grid-template-columns: minmax(315px, auto) 1fr auto;
        gap: 14px;
        padding: 12px 18px;
    }

    .topbar-public.mm-public-header .site-brand {
        min-width: 315px;
        gap: 11px;
    }

    .topbar-public.mm-public-header .site-brand-logo {
        width: 108px;
        height: 52px;
        flex: 0 0 108px;
        padding: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .topbar-public.mm-public-header .site-brand-divider {
        display: block;
        width: 2px;
        height: 34px;
        flex: 0 0 2px;
        border-radius: 999px;
        background: #e97818;
    }

    .topbar-public.mm-public-header .site-brand-text strong {
        font-size: 17px;
        line-height: 1.05;
    }

    .topbar-public.mm-public-header .site-brand-text small {
        font-size: 8.5px;
        line-height: 1.15;
    }
}

@media (max-width: 900px) {
    .topbar-public.mm-public-header .site-brand-divider {
        display: none !important;
    }
}



/* Signed-in password reset account summary */
.password-reset-box .registered-reset-email {
    display: grid;
    gap: 4px;
    padding: 13px 14px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #f7f8fa;
}
.password-reset-box .registered-reset-email span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.password-reset-box .registered-reset-email strong {
    overflow-wrap: anywhere;
    font-size: 15px;
}

/* ========================================================================== 
   Product image background removal – preview and approval workflow
   ========================================================================== */
.background-removal-review-controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
    gap: 10px;
    align-items: stretch;
    margin-top: 6px;
}

.image-background-removal-option,
.white-product-mode-option {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid #fed7aa;
    border-radius: 10px;
    background: #fff7ed;
    color: #7c2d12;
    cursor: pointer;
}

.white-product-mode-option {
    border-color: #d8dee7;
    background: #f8fafc;
    color: #344054;
}

.image-background-removal-option input[type="checkbox"],
.white-product-mode-option input[type="checkbox"] {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin: 1px 0 0;
    accent-color: #e97818;
}

.image-background-removal-option span,
.white-product-mode-option span {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.image-background-removal-option strong,
.white-product-mode-option strong {
    color: #9a3412;
    font-size: 12px;
    line-height: 1.3;
}

.white-product-mode-option strong {
    color: #1d2939;
}

.image-background-removal-option small,
.white-product-mode-option small {
    color: #7c5a46;
    font-size: 10px;
    line-height: 1.45;
}

.white-product-mode-option small {
    color: #667085;
}

.white-product-mode-option:has(input:disabled) {
    opacity: .52;
    cursor: not-allowed;
}

.background-preview-button {
    align-self: stretch;
    min-width: 176px;
    border-color: #1f2937;
    background: #1f2937;
    color: #fff;
}

.background-preview-button:hover,
.background-preview-button:focus-visible {
    border-color: #e97818;
    background: #e97818;
    color: #fff;
}

.background-preview-button:disabled {
    border-color: #d0d5dd;
    background: #e4e7ec;
    color: #98a2b3;
    cursor: not-allowed;
}

.background-preview-button.is-busy {
    cursor: wait;
}

.image-processing-status {
    grid-column: 1 / -1;
    display: block;
    margin-top: -2px;
    color: #b45309;
    font-size: 10px;
    font-weight: 750;
    line-height: 1.45;
}

.image-processing-status.keeps-original {
    color: #667085;
}

.background-review-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.background-review-tile {
    display: grid;
    grid-template-rows: auto auto auto auto auto;
    gap: 8px;
    padding: 11px;
    cursor: default;
    overflow: visible;
}

.background-review-tile:hover {
    transform: none;
}

.background-review-tile-heading {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-height: 27px;
}

.background-review-tile .selected-upload-picture-badge {
    position: static;
    margin-right: auto;
}

.background-main-button {
    min-width: 86px;
}

.background-review-tile.is-main .background-main-button {
    border-color: #e97818;
    background: #fff7ed;
    color: #9a3412;
}

.background-preview-comparison {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.background-preview-comparison figure {
    display: grid;
    grid-template-rows: 148px auto;
    gap: 5px;
    min-width: 0;
    margin: 0;
    padding: 6px;
    border: 1px solid #e4e7ec;
    border-radius: 9px;
    background: #fff;
}

.background-preview-comparison figure[hidden] {
    display: none;
}

.background-preview-comparison img,
.selected-upload-picture img,
.pictures-only-panel .picture-tile img,
.single-picture-preview img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 7px;
    background-color: #fff;
    background-image:
        linear-gradient(45deg, #edf0f3 25%, transparent 25%),
        linear-gradient(-45deg, #edf0f3 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, #edf0f3 75%),
        linear-gradient(-45deg, transparent 75%, #edf0f3 75%);
    background-position: 0 0, 0 9px, 9px -9px, -9px 0;
    background-size: 18px 18px;
}

.background-preview-comparison figcaption {
    color: #667085;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .04em;
    text-align: center;
    text-transform: uppercase;
}

.background-choice-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 7px;
}

.background-choice-actions[hidden] {
    display: none;
}

.background-choice-actions .button {
    min-width: 118px;
}

.use-transparent-button.active {
    border-color: #16803a;
    background: #16803a;
    color: #fff;
}

.keep-original-button.active {
    border-color: #344054;
    background: #344054;
    color: #fff;
}

.selected-upload-picture-processing {
    display: block;
    margin-top: 0;
    padding: 7px 8px;
    border-radius: 7px;
    color: #9a3412;
    background: #fff1e6;
    font-size: 9px;
    font-weight: 800;
    line-height: 1.35;
    text-align: center;
}

.background-review-tile.uses-processed .selected-upload-picture-processing,
.single-background-review.uses-processed + .image-processing-status {
    color: #166534;
    background: #f0fdf4;
}

.background-review-tile.keeps-original .selected-upload-picture-processing,
.selected-product-picture-preview.keeps-original-images .selected-upload-picture-processing {
    color: #475467;
    background: #eef2f6;
}

.background-review-tile.preview-rejected {
    border-color: #fda29b;
    box-shadow: 0 0 0 2px rgba(217, 45, 32, .08);
}

.background-review-tile.preview-rejected .selected-upload-picture-processing,
.single-background-review.preview-rejected + .image-processing-status {
    color: #b42318;
    background: #fef3f2;
}

.single-background-review {
    display: grid;
    gap: 9px;
    margin-top: 10px;
}

.single-background-review:empty {
    display: none;
}

.single-background-review .background-preview-comparison figure {
    grid-template-rows: 180px auto;
}

.image-processing-submit .form-actions-sticky button[type="submit"] {
    min-width: 230px;
    cursor: wait;
}

@media (max-width: 980px) {
    .background-removal-review-controls {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .background-preview-button {
        grid-column: 1 / -1;
        min-height: 40px;
    }
}

@media (max-width: 760px) {
    .background-review-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 650px) {
    .background-removal-review-controls {
        grid-template-columns: 1fr;
    }

    .image-background-removal-option,
    .white-product-mode-option {
        padding: 10px;
    }

    .background-preview-button,
    .image-processing-status {
        grid-column: auto;
    }

    .background-preview-comparison {
        grid-template-columns: 1fr;
    }

    .background-preview-comparison figure,
    .single-background-review .background-preview-comparison figure {
        grid-template-rows: 210px auto;
    }

    .background-choice-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .background-choice-actions .button {
        width: 100%;
    }

    .image-processing-submit .form-actions-sticky button[type="submit"] {
        width: 100%;
        min-width: 0;
    }
}

/* Small state refinements for the safe preview controls. */
.background-preview-comparison:has(.processed-preview[hidden]) {
    grid-template-columns: 1fr;
}

.image-processing-status.preview-approved {
    color: #166534;
}

.image-processing-status.preview-rejected {
    color: #b42318;
}

/* Consumable picture is a compact form field, so its review controls stay vertical. */
.consumable-picture-field .background-removal-review-controls,
.consumable-picture-field .background-preview-comparison {
    grid-template-columns: 1fr;
}

.consumable-picture-field .background-preview-button,
.consumable-picture-field .image-processing-status {
    grid-column: auto;
}

.consumable-picture-field .single-background-review .background-preview-comparison figure {
    grid-template-rows: 160px auto;
}

/* =========================================================
   RDS bilingual English / Greek language selector
   Country-flag controls with remembered active language.
   ========================================================= */
.topbar-action-cluster {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
}

.language-switcher {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 10px;
    background: rgba(255,255,255,.05);
}

.topbar-public .language-switcher {
    border-color: #dfe4ea;
    background: #f7f8fa;
}

.language-choice {
    min-width: 48px;
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 5px 8px;
    border: 1px solid transparent;
    border-radius: 7px;
    color: #cdd3dc;
    background: transparent;
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .025em;
    transition: border-color .16s ease, background .16s ease, color .16s ease, box-shadow .16s ease;
}

.topbar-public .language-choice {
    color: #4b5563;
}

.language-choice img {
    width: 21px;
    height: 15px;
    display: block;
    object-fit: cover;
    border-radius: 2px;
    box-shadow: 0 0 0 1px rgba(17,24,39,.14);
}

.language-choice:hover,
.language-choice:focus-visible {
    color: #fff;
    border-color: rgba(233,120,24,.55);
    background: rgba(233,120,24,.14);
}

.topbar-public .language-choice:hover,
.topbar-public .language-choice:focus-visible {
    color: #9a4610;
    background: #fff1e6;
}

.language-choice.active {
    color: #fff;
    border-color: #e97818;
    background: #e97818;
    box-shadow: 0 3px 9px rgba(233,120,24,.2);
}

.topbar-public .language-choice.active {
    color: #fff;
}

.language-flag-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #9a4610;
    font-size: 12px;
    font-weight: 900;
}

.language-flag-chip img {
    width: 24px;
    height: 17px;
    object-fit: cover;
    border-radius: 2px;
    box-shadow: 0 0 0 1px rgba(17,24,39,.14);
}

.greek-content-settings {
    margin-top: 20px;
    padding: 18px;
    border: 1px solid #f4c79f;
    border-radius: 14px;
    background: #fffaf5;
}

.settings-language-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.settings-language-heading h2,
.settings-language-heading h3 {
    margin: 0;
}

.nested-language-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.greek-translation-field {
    padding: 12px;
    border: 1px solid #ead8c8;
    border-radius: 11px;
    background: #fff;
}

.greek-translation-field.wide {
    grid-column: 1 / -1;
}

html[lang="el"] .topbar-links a,
html[lang="el"] .button,
html[lang="el"] .portal-link {
    letter-spacing: normal;
}

@media (max-width: 1199px) and (min-width: 901px) {
    .topbar-public.mm-public-header .topbar-inner {
        grid-template-columns: minmax(315px, auto) 1fr auto;
    }

    .topbar-action-cluster {
        gap: 8px;
    }

    .language-choice {
        min-width: 42px;
        padding-inline: 6px;
    }
}

@media (max-width: 760px) {
    .topbar-action-cluster {
        grid-column: 1 / -1;
        grid-row: 3;
        width: 100%;
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
        padding-top: 10px;
        border-top: 1px solid rgba(255,255,255,.1);
    }

    .topbar-public .topbar-action-cluster {
        border-top-color: #e7ebef;
    }

    body.mobile-menu-ready .topbar:not(.mobile-nav-open) .topbar-action-cluster {
        display: none !important;
    }

    body.mobile-menu-ready .topbar.mobile-nav-open .topbar-action-cluster {
        display: grid !important;
    }

    .language-switcher {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .language-choice {
        width: 100%;
        min-height: 42px;
        font-size: 12px;
    }

    .topbar-action-cluster .topbar-user,
    .topbar-action-cluster .topbar-login {
        grid-column: auto;
        grid-row: auto;
        width: 100%;
        margin: 0;
    }

    .topbar-action-cluster .topbar-user {
        padding-top: 0;
        border-top: 0;
    }

    .nested-language-grid {
        grid-template-columns: 1fr;
    }

    .greek-translation-field.wide {
        grid-column: auto;
    }
}

/* Machine catalogue categories and print-speed ordering */
body.rds-public-catalogue-page .showcase-category-tabs.machine-category-tabs {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.catalogue-results-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.catalogue-speed-sort-form {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
}

.catalogue-speed-sort-form label {
    color: #626c79;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.catalogue-speed-sort-form select {
    min-width: 190px;
    min-height: 40px;
    padding: 7px 34px 7px 11px;
    border: 1px solid #cfd5dc;
    border-radius: 9px;
    color: #303947;
    background-color: #fff;
    font-size: 12px;
    font-weight: 750;
}

.catalogue-speed-sort-form select:focus {
    border-color: #e97818;
    outline: 3px solid rgba(233, 120, 24, .14);
    outline-offset: 1px;
}

/* Five public solution cards: four machine categories plus software. */
.mm-category-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
}

.mm-category-card {
    padding-left: 17px;
    padding-right: 17px;
}

.mm-category-copy h3 {
    font-size: 18px;
}

@media (max-width: 1180px) {
    body.rds-public-catalogue-page .showcase-category-tabs.machine-category-tabs {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .mm-category-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    body.rds-public-catalogue-page .showcase-category-tabs.machine-category-tabs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mm-category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .catalogue-results-actions,
    .catalogue-speed-sort-form {
        width: 100%;
        align-items: stretch;
        flex-direction: column;
    }

    .catalogue-speed-sort-form select {
        width: 100%;
    }
}

@media (max-width: 520px) {
    body.rds-public-catalogue-page .showcase-category-tabs.machine-category-tabs,
    .mm-category-grid {
        grid-template-columns: 1fr;
    }
}

body.rds-public-catalogue-page .showcase-category-tabs .category-filter-tab.group-active:not(.active) {
    color: #9e4508;
    border-color: #e97818;
    background: #fff8f1;
    box-shadow: inset 0 0 0 1px rgba(233, 120, 24, .08);
}

body.rds-public-catalogue-page .showcase-category-tabs .category-filter-tab.group-active:not(.active) .category-tab-icon {
    color: #cf650f;
    background: #ffead8;
}

/* Consumables: Save and add next */
.product-simple-page .compact-consumable-form .consumable-main-header {
    grid-template-columns: minmax(240px, 1fr) minmax(190px, 220px) minmax(300px, auto);
}

.product-simple-page .compact-consumable-form .form-actions-sticky.simple-actions {
    justify-content: space-between;
}

.product-simple-page .guided-top-save-group,
.product-simple-page .save-action-group {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.product-simple-page .save-add-next-button {
    border-color: #e97818;
    background: #fff7ed;
    color: #a74708;
    font-weight: 800;
}

.product-simple-page .save-add-next-button:hover,
.product-simple-page .save-add-next-button:focus-visible {
    border-color: #d9650f;
    background: #e97818;
    color: #fff;
}

.product-simple-page .save-next-hint {
    max-width: 650px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.4;
}

@media (max-width: 980px) {
    .product-simple-page .compact-consumable-form .guided-top-save-group {
        grid-column: 1 / -1;
        justify-content: flex-start;
    }
}

@media (max-width: 650px) {
    .product-simple-page .guided-top-save-group,
    .product-simple-page .save-action-group {
        width: 100%;
        align-items: stretch;
        flex-direction: column;
    }

    .product-simple-page .guided-top-save-group .button,
    .product-simple-page .save-action-group .button {
        width: 100%;
    }

    .product-simple-page .save-next-hint {
        max-width: none;
    }
}


/* Partner-only machine accessories */
.partner-only-product-badge,
.partner-only-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 6px 10px;
    border: 1px solid #fdba74;
    border-radius: 999px;
    background: #fff7ed;
    color: #9a3412;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.accessory-field-grid .matching-models-field,
.accessory-field-grid [data-field-key="accessory-description-specifications"] {
    grid-column: 1 / -1;
}

.accessory-order-filters {
    flex: 1 1 100%;
    display: grid;
    grid-template-columns: minmax(220px, 1.2fr) repeat(4, minmax(150px, 1fr));
    gap: 10px;
    align-items: end;
    width: 100%;
    margin-top: 10px;
    padding: 12px;
    border: 1px solid #fed7aa;
    border-radius: 12px;
    background: #fffaf5;
}

.accessory-order-filters[hidden] {
    display: none !important;
}

.accessory-filter-heading {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.accessory-filter-heading strong {
    color: #1f2937;
    font-size: 14px;
}

.accessory-filter-heading span {
    color: #6b7280;
    font-size: 12px;
    line-height: 1.35;
}

.accessory-order-filters select {
    width: 100%;
    min-height: 40px;
    border: 1px solid #d1d5db;
    border-radius: 9px;
    background: #fff;
}

.order-product-card[data-product-type="Machine Accessory"] {
    border-left: 4px solid #e97818;
}

.order-product-card[data-product-type="Machine Accessory"] .tag {
    border-color: #fed7aa;
    background: #fff7ed;
    color: #9a3412;
}

.accessory-specifications {
    white-space: pre-line;
}

/* Partner New Order: use the wide centre area for accessory descriptions/specifications. */
.order-accessory-content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(0, 0.82fr);
    gap: 24px;
    align-items: start;
    min-width: 0;
}

.order-accessory-summary,
.order-accessory-description-column {
    min-width: 0;
}

.order-accessory-description-column {
    align-self: stretch;
    padding: 2px 0 2px 22px;
    border-left: 1px solid #e5e7eb;
    overflow-wrap: anywhere;
}

.order-accessory-description-column .accessory-specifications {
    margin-top: 0;
    color: #475569;
}

.order-products.grid-mode .order-accessory-content-grid {
    grid-template-columns: 1fr;
    gap: 10px;
}

.order-products.grid-mode .order-accessory-description-column {
    padding: 10px 0 0;
    border-left: 0;
    border-top: 1px solid #e5e7eb;
}

@media (max-width: 1180px) {
    .accessory-order-filters {
        grid-template-columns: repeat(2, minmax(180px, 1fr));
    }

    .accessory-filter-heading {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .accessory-order-filters {
        grid-template-columns: 1fr;
    }

    .accessory-filter-heading {
        grid-column: auto;
    }

    .order-accessory-content-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .order-accessory-description-column {
        padding: 10px 0 0;
        border-left: 0;
        border-top: 1px solid #e5e7eb;
    }

    .partner-only-product-badge,
    .partner-only-pill {
        white-space: normal;
        text-align: center;
    }
}

/* Type-aware product management list */
.product-filter-panel {
    margin-bottom: 16px;
    padding: 14px;
}

.product-filter-form {
    display: grid;
    grid-template-columns: minmax(300px, 2.1fr) repeat(6, minmax(125px, 1fr));
    gap: 12px;
    align-items: end;
}

.product-filter-search {
    min-width: 0;
}

.product-filter-field {
    display: grid;
    gap: 6px;
    min-width: 0;
    color: #5f6978;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.product-filter-field select {
    width: 100%;
    min-height: 42px;
    padding: 8px 34px 8px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--text);
    font-size: 13px;
    font-weight: 650;
    text-transform: none;
    letter-spacing: normal;
}

.product-filter-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    grid-column: 1 / -2;
}

.product-filter-form .list-result-count {
    justify-self: end;
    align-self: center;
    margin-left: 0;
}

.product-management-table-card {
    overflow-x: auto;
}

.product-management-table {
    min-width: 1180px;
    table-layout: fixed;
}

.product-management-table th,
.product-management-table td {
    vertical-align: middle;
}

.product-management-table th:nth-child(1),
.product-management-table td:nth-child(1) {
    width: 6%;
}

.product-management-table th:nth-child(2),
.product-management-table td:nth-child(2) {
    width: 16%;
}

.product-management-table th:nth-child(3),
.product-management-table td:nth-child(3) {
    width: 10%;
}

.product-management-table th:nth-child(4),
.product-management-table td:nth-child(4) {
    width: 21%;
}

.product-management-table th:nth-child(5),
.product-management-table td:nth-child(5) {
    width: 15%;
}

.product-management-table th:nth-child(6),
.product-management-table td:nth-child(6) {
    width: 9%;
}

.product-management-table th:nth-child(7),
.product-management-table td:nth-child(7) {
    width: 7%;
}

.product-management-table .actions-header,
.product-management-table .actions-cell {
    width: 16%;
    text-align: left;
}

.product-management-table td.product-identity-cell,
.product-management-table td.product-key-details-cell,
.product-management-table td.product-matching-cell {
    white-space: normal;
}

.product-management-row:hover > td {
    background: #fffaf5;
}

.product-picture-cell {
    text-align: center;
}

.product-list-picture {
    display: inline-flex;
    width: 58px;
    height: 48px;
    object-fit: contain;
    border: 1px solid #dce1e8;
    border-radius: 8px;
    background: #f8fafc;
}

.product-list-picture-placeholder {
    align-items: center;
    justify-content: center;
    color: #8b95a3;
    font-size: 22px;
}

.product-list-title {
    display: block;
    margin-bottom: 5px;
    color: #172033;
    line-height: 1.25;
}

.product-list-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 8px;
    color: #697386;
    font-size: 11px;
    line-height: 1.35;
}

.product-list-meta span + span::before {
    content: "•";
    margin-right: 8px;
    color: #c4cad3;
}

.product-type-badge,
.product-visibility-badge,
.product-status-badge {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 850;
    line-height: 1.1;
    white-space: normal;
}

.product-type-badge {
    background: #eef2f7;
    color: #374151;
}

.product-type-badge.machines {
    background: #eaf2ff;
    color: #1d4f91;
}

.product-type-badge.consumable {
    background: #fff1e5;
    color: #a64a12;
}

.product-type-badge.machine-accessory {
    background: #f2eefe;
    color: #5a38a5;
}

.product-type-badge.software {
    background: #e8f7f1;
    color: #17644b;
}

.product-type-badge.spare-part,
.product-type-badge.paper {
    background: #f3f4f6;
    color: #4b5563;
}

.product-key-details-cell {
    color: #374151;
    font-size: 12px;
    line-height: 1.45;
}

.matching-models-summary {
    color: #354052;
    font-size: 12px;
    line-height: 1.45;
}

.product-visibility-badge.public {
    background: #e8f8ee;
    color: #166534;
}

.product-visibility-badge.partner-only {
    background: #fff3e7;
    color: #a44712;
}

.product-status-badge.active {
    background: #dcfce7;
    color: #166534;
}

.product-status-badge.inactive {
    background: #eef0f3;
    color: #697386;
}

.product-management-actions {
    flex-wrap: nowrap;
    gap: 5px;
}

.product-management-table .actions-cell {
    padding-left: 6px;
    padding-right: 6px;
}

.product-management-actions .button {
    padding-left: 7px;
    padding-right: 7px;
    font-size: 11px;
}

.product-management-actions .button {
    min-height: 32px;
}

.product-details-toggle[aria-expanded="true"] {
    border-color: #e97818;
    color: #a84200;
    background: #fff4e9;
}

.product-expanded-row > td {
    padding: 0 !important;
    border-bottom: 1px solid #dce1e8;
    background: #f7f9fc;
    white-space: normal !important;
}

.product-expanded-grid {
    display: grid;
    grid-template-columns: 1.1fr .8fr 1.5fr 1.4fr;
    gap: 12px;
    padding: 14px 16px 16px;
}

.product-expanded-grid section {
    min-width: 0;
    padding: 12px 13px;
    border: 1px solid #e0e5eb;
    border-radius: 10px;
    background: #fff;
}

.product-expanded-grid strong {
    color: #172033;
    font-size: 13px;
}

.product-expanded-grid p {
    margin: 6px 0 0;
    color: #596476;
    font-size: 12px;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.product-expanded-label {
    display: block;
    margin-bottom: 6px;
    color: #a94b13;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.product-expanded-wide {
    grid-column: 1 / -1;
}

@media (max-width: 1350px) {
    .product-filter-form {
        grid-template-columns: minmax(300px, 2fr) repeat(3, minmax(145px, 1fr));
    }

    .product-filter-actions {
        grid-column: 1 / -2;
    }
}

@media (max-width: 900px) {
    .product-filter-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .product-filter-search,
    .product-filter-actions {
        grid-column: 1 / -1;
    }

    .product-filter-form .list-result-count {
        justify-self: start;
    }

    .product-expanded-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .product-filter-form {
        grid-template-columns: 1fr;
    }

    .product-filter-search,
    .product-filter-actions,
    .product-filter-form .list-result-count {
        grid-column: 1;
    }

    .product-filter-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .product-filter-actions .button {
        width: 100%;
    }

    .product-expanded-grid {
        grid-template-columns: 1fr;
    }

    .product-expanded-wide {
        grid-column: 1;
    }
}

/* Admin-editable dropdown lookup manager */
.field-label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 6px;
}

.field-label-row > label {
    margin: 0;
}

.lookup-edit-button {
    width: 30px;
    height: 30px;
    min-width: 30px;
    padding: 0;
    border: 1px solid #d8dee8;
    border-radius: 8px;
    background: #fff;
    color: #667085;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, color .15s ease, transform .15s ease;
}

.lookup-edit-button svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
}

.lookup-edit-button:hover,
.lookup-edit-button:focus-visible {
    border-color: #e97818;
    background: #fff7ed;
    color: #c95608;
    transform: translateY(-1px);
    outline: none;
}

.lookup-manager-dialog {
    width: min(1080px, calc(100vw - 36px));
    max-height: min(820px, calc(100vh - 36px));
    padding: 0;
    border: 0;
    border-radius: 18px;
    background: #fff;
    color: var(--text);
    box-shadow: 0 28px 80px rgba(17, 24, 39, .26);
    overflow: hidden;
}

.lookup-manager-dialog::backdrop {
    background: rgba(15, 23, 42, .58);
    backdrop-filter: blur(3px);
}

.lookup-manager-shell {
    display: flex;
    flex-direction: column;
    max-height: min(820px, calc(100vh - 36px));
}

.lookup-manager-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 24px 18px;
    border-bottom: 1px solid #e4e7ec;
}

.lookup-manager-header h2 {
    margin: 3px 0 5px;
    font-size: 24px;
}

.lookup-manager-kicker {
    color: #d7600b;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.lookup-manager-message {
    min-height: 0;
    margin: 0 24px;
    padding: 0;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 700;
}

.lookup-manager-message:not(:empty) {
    margin-top: 14px;
    padding: 10px 12px;
    background: #f2f4f7;
    color: #344054;
}

.lookup-manager-message.success {
    background: #ecfdf3;
    color: #067647;
}

.lookup-manager-message.error {
    background: #fef3f2;
    color: #b42318;
}

.lookup-add-panel {
    margin: 16px 24px;
    padding: 16px;
    border: 1px solid #fed7aa;
    border-radius: 12px;
    background: #fffaf5;
}

.lookup-add-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}

.lookup-add-grid {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) minmax(190px, auto) auto;
    align-items: end;
    gap: 10px;
}

.lookup-add-grid label {
    display: grid;
    gap: 5px;
    margin: 0;
    color: #475467;
    font-size: 12px;
    font-weight: 800;
}

.lookup-add-position {
    display: grid;
    gap: 5px;
    color: #475467;
    font-size: 12px;
    font-weight: 800;
}

.lookup-position-choice {
    display: inline-flex;
    min-height: 38px;
    padding: 3px;
    border: 1px solid #d0d5dd;
    border-radius: 9px;
    background: #fff;
}

.lookup-position-choice-button {
    flex: 1;
    padding: 6px 10px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #667085;
    font-size: 11px;
    font-weight: 850;
    cursor: pointer;
}

.lookup-position-choice-button.active {
    background: #1f2937;
    color: #fff;
    box-shadow: 0 2px 5px rgba(17, 24, 39, .16);
}

.lookup-add-grid input,
.lookup-manager-row input[type="text"],
.lookup-manager-row input[type="number"] {
    width: 100%;
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid #d0d5dd;
    border-radius: 8px;
    background: #fff;
    color: #101828;
}

.lookup-manager-table-head,
.lookup-manager-row {
    display: grid;
    grid-template-columns: minmax(170px, 1.15fr) minmax(170px, 1.15fr) 154px minmax(150px, .9fr) 128px;
    align-items: center;
    gap: 10px;
}

.lookup-manager-table-head {
    margin: 0 24px;
    padding: 9px 12px;
    border-radius: 9px 9px 0 0;
    background: #f2f4f7;
    color: #667085;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.lookup-manager-rows {
    min-height: 120px;
    padding: 0 24px 8px;
    overflow: auto;
}

.lookup-manager-rows.loading {
    opacity: .55;
    pointer-events: none;
}

.lookup-manager-row {
    padding: 11px 12px;
    border: 1px solid #eaecf0;
    border-top: 0;
    background: #fff;
}

.lookup-manager-row:last-child {
    border-radius: 0 0 9px 9px;
}

.lookup-manager-row.inactive {
    background: #f9fafb;
}

.lookup-order-controls {
    display: grid;
    grid-template-columns: 30px 32px 30px 32px;
    align-items: center;
    justify-content: start;
    gap: 4px;
}

.lookup-order-button {
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid #d0d5dd;
    border-radius: 7px;
    background: #fff;
    color: #344054;
    font-size: 16px;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
}

.lookup-order-button:hover:not(:disabled),
.lookup-order-button:focus-visible:not(:disabled) {
    border-color: #e97818;
    background: #fff7ed;
    color: #c95608;
    outline: none;
}

.lookup-order-button:disabled {
    opacity: .32;
    cursor: not-allowed;
}

.lookup-drag-handle {
    color: #98a2b3;
    cursor: grab;
    letter-spacing: -2px;
}

.lookup-drag-handle:active {
    cursor: grabbing;
}

.lookup-position-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    height: 30px;
    border-radius: 7px;
    background: #f2f4f7;
    color: #344054;
    font-size: 12px;
    font-weight: 900;
}

.lookup-manager-row.dragging {
    opacity: .5;
}

.lookup-manager-row.drag-over {
    border-color: #e97818;
    box-shadow: inset 0 2px 0 #e97818;
}

.lookup-row-status {
    display: grid;
    justify-items: start;
    gap: 5px;
}

.lookup-active-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    font-size: 12px;
    font-weight: 800;
}

.lookup-usage-badge {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 3px 8px;
    border-radius: 999px;
    background: #f2f4f7;
    color: #667085;
    font-size: 10px;
    font-weight: 850;
}

.lookup-usage-badge.used {
    background: #fff3e8;
    color: #a94708;
}

.lookup-row-actions {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
}

.lookup-row-actions .button {
    min-width: 58px;
}

.lookup-row-actions .button:disabled {
    opacity: .45;
    cursor: not-allowed;
}

.lookup-empty-state {
    padding: 34px;
    border: 1px dashed #d0d5dd;
    border-radius: 10px;
    color: #667085;
    text-align: center;
}

.lookup-manager-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 15px 24px;
    border-top: 1px solid #e4e7ec;
    background: #f9fafb;
}

@media (max-width: 820px) {
    .lookup-manager-dialog {
        width: calc(100vw - 18px);
        max-height: calc(100vh - 18px);
        border-radius: 14px;
    }

    .lookup-manager-shell {
        max-height: calc(100vh - 18px);
    }

    .lookup-manager-header,
    .lookup-manager-footer {
        padding-left: 16px;
        padding-right: 16px;
    }

    .lookup-manager-message,
    .lookup-add-panel,
    .lookup-manager-table-head,
    .lookup-manager-rows {
        margin-left: 16px;
        margin-right: 16px;
    }

    .lookup-add-grid {
        grid-template-columns: 1fr 1fr;
    }

    .lookup-manager-table-head {
        display: none;
    }

    .lookup-manager-rows {
        padding-left: 0;
        padding-right: 0;
    }

    .lookup-manager-row {
        grid-template-columns: 1fr 1fr;
        border-top: 1px solid #eaecf0;
        border-radius: 10px;
        margin-bottom: 10px;
    }

    .lookup-order-controls,
    .lookup-row-status,
    .lookup-row-actions {
        grid-column: span 1;
    }
}

@media (max-width: 560px) {
    .lookup-add-grid,
    .lookup-manager-row {
        grid-template-columns: 1fr;
    }

    .lookup-add-heading,
    .lookup-manager-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .lookup-order-controls,
    .lookup-row-status,
    .lookup-row-actions {
        grid-column: auto;
    }

    .lookup-row-actions {
        justify-content: stretch;
    }

    .lookup-row-actions .button {
        flex: 1;
    }
}

/* =========================================================
   Public customer catalogue: compact machine quick filters
   ========================================================= */
body.rds-public-catalogue-page .public-machine-quick-filters {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 10px;
    padding: 10px 12px;
    border: 1px solid #e0e5ea;
    border-radius: 11px;
    background: #fbfcfd;
}

body.rds-public-catalogue-page .public-machine-filter-intro {
    min-width: 158px;
    display: flex;
    align-items: center;
    gap: 9px;
    padding-right: 14px;
    border-right: 1px solid #e2e6eb;
}

body.rds-public-catalogue-page .public-machine-filter-icon {
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    color: #b8540d;
    background: #fff0e4;
}

body.rds-public-catalogue-page .public-machine-filter-icon svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
}

body.rds-public-catalogue-page .public-machine-filter-intro > div {
    min-width: 0;
    display: grid;
    gap: 1px;
}

body.rds-public-catalogue-page .public-machine-filter-intro strong {
    color: #202833;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.2;
}

body.rds-public-catalogue-page .public-machine-filter-intro span:not(.public-machine-filter-icon) {
    color: #727c89;
    font-size: 10px;
    font-weight: 650;
    line-height: 1.25;
}

body.rds-public-catalogue-page .public-machine-filter-groups {
    min-width: 0;
    flex: 1;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 15px;
}

body.rds-public-catalogue-page .public-machine-filter-group {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

body.rds-public-catalogue-page .public-machine-filter-label {
    color: #545e6b;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .03em;
    white-space: nowrap;
}

body.rds-public-catalogue-page .public-machine-filter-chips {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 3px;
    border-radius: 999px;
    background: #edf1f4;
}

body.rds-public-catalogue-page .public-machine-filter-chip {
    min-height: 27px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 10px;
    border: 1px solid transparent;
    border-radius: 999px;
    color: #4a5563;
    background: transparent;
    font-size: 10.5px;
    font-weight: 850;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    transition: color .15s ease, background .15s ease, border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}

body.rds-public-catalogue-page .public-machine-filter-chip:hover {
    color: #a64a09;
    border-color: #efb07d;
    background: #fff;
    transform: translateY(-1px);
}

body.rds-public-catalogue-page .public-machine-filter-chip.active {
    color: #fff;
    border-color: #dc6d14;
    background: #e97818;
    box-shadow: 0 4px 10px rgba(207, 101, 17, .2);
}

body.rds-public-catalogue-page .public-machine-filter-chip:focus-visible,
body.rds-public-catalogue-page .public-machine-filter-clear:focus-visible {
    outline: 3px solid rgba(233, 120, 24, .26);
    outline-offset: 2px;
}

body.rds-public-catalogue-page .public-machine-filter-clear {
    flex: 0 0 auto;
    padding: 5px 8px;
    border-radius: 7px;
    color: #9e4508;
    font-size: 10.5px;
    font-weight: 850;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
}

body.rds-public-catalogue-page .public-machine-filter-clear:hover {
    color: #fff;
    background: #b9540d;
}

@media (max-width: 1120px) {
    body.rds-public-catalogue-page .public-machine-quick-filters {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    body.rds-public-catalogue-page .public-machine-filter-intro {
        min-width: 150px;
    }
}

@media (max-width: 820px) {
    body.rds-public-catalogue-page .public-machine-quick-filters {
        display: grid;
        gap: 10px;
    }

    body.rds-public-catalogue-page .public-machine-filter-intro {
        min-width: 0;
        padding: 0 0 9px;
        border-right: 0;
        border-bottom: 1px solid #e2e6eb;
    }

    body.rds-public-catalogue-page .public-machine-filter-groups {
        width: 100%;
    }

    body.rds-public-catalogue-page .public-machine-filter-clear {
        justify-self: start;
    }
}

@media (max-width: 560px) {
    body.rds-public-catalogue-page .public-machine-filter-groups {
        display: grid;
        gap: 8px;
    }

    body.rds-public-catalogue-page .public-machine-filter-group {
        width: 100%;
        justify-content: space-between;
    }

    body.rds-public-catalogue-page .public-machine-filter-label {
        min-width: 74px;
    }

    body.rds-public-catalogue-page .public-machine-filter-chips {
        min-width: 0;
        flex: 1;
        justify-content: flex-end;
    }

    body.rds-public-catalogue-page .public-machine-filter-chip {
        flex: 1;
        padding-inline: 8px;
    }
}


/* =========================================================
   Public customer catalogue: Compact Machine Finder
   Small segmented filters shown only inside the Machines tab.
   ========================================================= */
body.rds-public-catalogue-page .showcase-category-tabs.machine-category-tabs.clean-machine-tabs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

body.rds-public-catalogue-page .clean-machine-tabs .category-filter-tab {
    min-height: 54px;
    padding-inline: 14px;
}

body.rds-public-catalogue-page .clean-machine-finder-filters {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 10px;
    padding: 9px 12px;
    border: 1px solid #e0e5ea;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 3px 10px rgba(30, 39, 50, .025);
}

body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-groups {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0;
}

body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-group {
    min-width: 0;
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0 15px;
}

body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-group:first-child {
    padding-left: 0;
}

body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-group + .public-machine-filter-group::before {
    content: "";
    position: absolute;
    left: 0;
    top: 5px;
    bottom: 5px;
    width: 1px;
    background: #e4e8ec;
}

body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-label {
    flex: 0 0 auto;
    color: #4a5562;
    font-size: 10.5px;
    font-weight: 900;
    letter-spacing: 0;
    white-space: nowrap;
}

body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-chips {
    width: auto;
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 2px;
    border: 1px solid #e3e7eb;
    border-radius: 8px;
    background: #f2f4f6;
}

body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-chip {
    min-width: 44px;
    min-height: 28px;
    padding: 5px 10px;
    border: 1px solid transparent;
    border-radius: 6px;
    color: #414b57;
    background: transparent;
    box-shadow: none;
    font-size: 10.5px;
    font-weight: 850;
    line-height: 1;
    transform: none;
}

body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-chip:hover {
    color: #9f4709;
    border-color: #efb07d;
    background: #fff;
    transform: none;
    box-shadow: none;
}

body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-chip.active {
    color: #a74708;
    border-color: #ed9959;
    background: #fff0e4;
    box-shadow: 0 1px 3px rgba(183, 82, 10, .10);
}

body.rds-public-catalogue-page .public-machine-filter-summary {
    flex: 0 0 auto;
    min-width: auto;
    display: inline-flex;
    align-items: baseline;
    justify-content: flex-end;
    gap: 4px;
    margin-left: auto;
    padding: 0;
    color: #3d4651;
    white-space: nowrap;
}

body.rds-public-catalogue-page .public-machine-filter-summary strong {
    font-size: 12px;
    font-weight: 950;
}

body.rds-public-catalogue-page .public-machine-filter-summary span {
    font-size: 10px;
    font-weight: 750;
}

body.rds-public-catalogue-page .clean-machine-reset {
    flex: 0 0 auto;
    min-height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    margin: 0;
    padding: 5px 7px;
    border-radius: 6px;
    color: #a84b0a;
    background: transparent;
    font-size: 10.5px;
}

body.rds-public-catalogue-page .clean-machine-reset:hover {
    color: #8f3d05;
    background: #fff2e8;
}

body.rds-public-catalogue-page .clean-machine-reset svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 1180px) {
    body.rds-public-catalogue-page .clean-machine-finder-filters {
        flex-wrap: wrap;
    }

    body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-groups {
        flex-basis: 100%;
    }

    body.rds-public-catalogue-page .public-machine-filter-summary {
        margin-left: 0;
    }
}

@media (max-width: 900px) {
    body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-groups {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px 14px;
    }

    body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-group,
    body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-group:first-child {
        padding: 0;
    }

    body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-group + .public-machine-filter-group::before {
        display: none;
    }
}

@media (max-width: 640px) {
    body.rds-public-catalogue-page .showcase-category-tabs.machine-category-tabs.clean-machine-tabs {
        grid-template-columns: 1fr;
    }

    body.rds-public-catalogue-page .clean-machine-finder-filters {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 9px 12px;
        padding: 10px;
    }

    body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-groups {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
    }

    body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-group,
    body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-group:first-child {
        width: 100%;
        display: grid;
        grid-template-columns: minmax(78px, auto) 1fr;
        align-items: center;
        gap: 8px;
        padding: 0;
    }

    body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-chips {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    body.rds-public-catalogue-page .clean-machine-finder-filters .public-machine-filter-chip {
        min-width: 0;
        padding-inline: 7px;
    }

    body.rds-public-catalogue-page .public-machine-filter-summary {
        justify-self: start;
    }

    body.rds-public-catalogue-page .clean-machine-reset {
        justify-self: end;
    }
}


@media (max-width: 1050px) {
    .rds-compatible-accessory-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .rds-compatible-accessories-section {
        padding: 18px;
    }

    .rds-compatible-accessories-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .rds-compatible-accessory-grid {
        grid-template-columns: 1fr;
    }

    .rds-compatible-accessory-card {
        grid-template-columns: 118px minmax(0, 1fr);
        grid-template-rows: minmax(0, 1fr) auto;
    }

    .rds-compatible-accessory-image {
        grid-row: 1 / span 2;
        min-height: 170px;
        border-right: 1px solid #edf0f3;
        border-bottom: 0;
    }

    .rds-compatible-accessory-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .rds-compatible-accessory-add {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .rds-compatible-accessory-card {
        grid-template-columns: 1fr;
        grid-template-rows: 150px minmax(0, 1fr) auto;
    }

    .rds-compatible-accessory-image {
        grid-row: auto;
        min-height: 0;
        border-right: 0;
        border-bottom: 1px solid #edf0f3;
    }

    .rds-compatible-accessory-toast {
        right: 16px;
        bottom: 16px;
        left: 16px;
        max-width: none;
    }
}

/* Partner New Order: compatible accessories and consumables after adding a machine. */
.machine-addon-dialog {
    width: min(1120px, calc(100vw - 32px));
    max-width: 1120px;
    max-height: min(88vh, 900px);
    padding: 0;
    border: 0;
    border-radius: 22px;
    background: #fff;
    color: #172033;
    box-shadow: 0 30px 90px rgba(15, 23, 42, .28);
    overflow: hidden;
}

.machine-addon-dialog::backdrop {
    background: rgba(15, 23, 42, .62);
    backdrop-filter: blur(3px);
}

.machine-addon-dialog-shell {
    display: flex;
    flex-direction: column;
    max-height: min(88vh, 900px);
    background: #f8fafc;
}

.machine-addon-dialog-header {
    position: relative;
    display: flex;
    justify-content: space-between;
    gap: 24px;
    padding: 24px 28px 20px;
    border-bottom: 1px solid #e2e8f0;
    background: #fff;
}

.machine-addon-dialog-heading {
    min-width: 0;
}

.machine-addon-eyebrow,
.machine-addon-group-kicker {
    display: block;
    margin-bottom: 5px;
    color: #c65313;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.machine-addon-dialog-header h2 {
    margin: 0;
    color: #172033;
    font-size: clamp(22px, 2.4vw, 30px);
    line-height: 1.12;
}

.machine-addon-dialog-header p {
    max-width: 760px;
    margin: 8px 0 0;
    color: #64748b;
    font-size: 14px;
    line-height: 1.45;
}

.machine-addon-close {
    flex: 0 0 auto;
    align-self: flex-start;
}

.machine-addon-selected-machine {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 18px 28px 0;
    padding: 12px 14px;
    border: 1px solid #fed7aa;
    border-radius: 14px;
    background: #fff7ed;
}

.machine-addon-machine-image {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 58px;
    width: 58px;
    height: 58px;
    overflow: hidden;
    border: 1px solid #fdba74;
    border-radius: 11px;
    background: #fff;
    color: #94a3b8;
    font-size: 10px;
    text-align: center;
}

.machine-addon-machine-image img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.machine-addon-selected-machine > div:last-child {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.machine-addon-selected-machine span {
    color: #9a4a10;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.machine-addon-selected-machine strong {
    overflow: hidden;
    color: #172033;
    font-size: 17px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.machine-addon-dialog-body {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    min-height: 0;
    padding: 18px 28px 22px;
    overflow: auto;
}

.machine-addon-group {
    min-width: 0;
    padding: 16px;
    border: 1px solid #dbe3ec;
    border-radius: 16px;
    background: #fff;
}

.machine-addon-group-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
    padding-bottom: 11px;
    border-bottom: 1px solid #e8edf3;
}

.machine-addon-group-head h3 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: #172033;
    font-size: 18px;
}

.machine-addon-group-head h3 span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 25px;
    height: 25px;
    padding: 0 7px;
    border-radius: 999px;
    background: #fff1e7;
    color: #ad470f;
    font-size: 12px;
    font-weight: 900;
}

.machine-addon-list {
    display: grid;
    gap: 10px;
}

.machine-addon-item {
    display: grid;
    grid-template-columns: 28px 62px minmax(0, 1fr) 116px;
    gap: 10px;
    align-items: center;
    padding: 10px;
    border: 1px solid #e2e8f0;
    border-radius: 13px;
    background: #fff;
    cursor: pointer;
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.machine-addon-item:hover {
    border-color: #fdba74;
    background: #fffdfb;
    box-shadow: 0 8px 20px rgba(148, 163, 184, .16);
}

.machine-addon-item:has([data-machine-addon-select]:checked) {
    border-color: #ea7a2a;
    background: #fff8f2;
    box-shadow: 0 0 0 2px rgba(234, 122, 42, .12);
}

.machine-addon-check {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
}

.machine-addon-check input {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: #e97818;
    cursor: pointer;
}

.machine-addon-item-image {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    overflow: hidden;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #f8fafc;
    color: #94a3b8;
    font-size: 9px;
    text-align: center;
}

.machine-addon-item-image img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.machine-addon-item-content {
    min-width: 0;
}

.machine-addon-item-tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
    margin-bottom: 5px;
}

.machine-addon-item-tags > span:not(.machine-addon-colour) {
    display: inline-flex;
    max-width: 100%;
    padding: 3px 7px;
    overflow: hidden;
    border-radius: 999px;
    background: #eef2f7;
    color: #475569;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.machine-addon-item-tags .machine-addon-code {
    background: #fff1e7;
    color: #a44712;
}

.machine-addon-colour {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 23px;
    height: 23px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 900;
}

.machine-addon-item h4 {
    margin: 0;
    color: #172033;
    font-size: 14px;
    line-height: 1.25;
}

.machine-addon-item-content p {
    display: -webkit-box;
    margin: 5px 0 0;
    overflow: hidden;
    color: #64748b;
    font-size: 11px;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.machine-addon-item-content .machine-addon-notes {
    color: #7c5a43;
}

.machine-addon-existing {
    display: inline-flex;
    margin-top: 6px;
    padding: 3px 7px;
    border-radius: 999px;
    background: #ecfdf3;
    color: #166534;
    font-size: 10px;
    font-weight: 900;
}

.machine-addon-item-order {
    display: grid;
    justify-items: end;
    gap: 3px;
    min-width: 0;
    text-align: right;
}

.machine-addon-item-order > span {
    color: #64748b;
    font-size: 10px;
    font-weight: 800;
}

.machine-addon-item-order > strong {
    color: #172033;
    font-size: 14px;
}

.machine-addon-item-order .machine-addon-price-request {
    max-width: 110px;
    color: #a44712;
    font-size: 11px;
    line-height: 1.2;
}

.machine-addon-item-order label {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 5px;
    color: #64748b;
    font-size: 10px;
    font-weight: 800;
}

.machine-addon-item-order input {
    width: 58px;
    min-height: 30px;
    padding: 4px 6px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    text-align: center;
}

.machine-addon-empty {
    padding: 24px 14px;
    border: 1px dashed #cbd5e1;
    border-radius: 12px;
    color: #64748b;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}

.machine-addon-dialog-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 16px 28px;
    border-top: 1px solid #e2e8f0;
    background: #fff;
}

.machine-addon-selection-status {
    color: #64748b;
    font-size: 13px;
    font-weight: 800;
}

.machine-addon-dialog-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

@media (max-width: 900px) {
    .machine-addon-dialog {
        width: min(760px, calc(100vw - 20px));
        max-height: calc(100vh - 20px);
    }

    .machine-addon-dialog-shell {
        max-height: calc(100vh - 20px);
    }

    .machine-addon-dialog-body {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .machine-addon-dialog {
        width: calc(100vw - 12px);
        border-radius: 16px;
    }

    .machine-addon-dialog-header,
    .machine-addon-dialog-body,
    .machine-addon-dialog-footer {
        padding-left: 16px;
        padding-right: 16px;
    }

    .machine-addon-selected-machine {
        margin-left: 16px;
        margin-right: 16px;
    }

    .machine-addon-item {
        grid-template-columns: 26px 56px minmax(0, 1fr);
    }

    .machine-addon-item-image {
        width: 56px;
        height: 56px;
    }

    .machine-addon-item-order {
        grid-column: 2 / -1;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding-top: 8px;
        border-top: 1px solid #eef2f7;
        text-align: left;
    }

    .machine-addon-item-order label {
        margin-top: 0;
    }

    .machine-addon-dialog-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .machine-addon-dialog-actions {
        flex-direction: column-reverse;
    }

    .machine-addon-dialog-actions .button {
        width: 100%;
    }
}


/* Product save confirmation and mandatory-field guidance */
.product-save-toast {
    position: fixed;
    top: 22px;
    right: 24px;
    z-index: 2400;
    display: grid;
    grid-template-columns: 42px minmax(210px, 1fr) 30px;
    align-items: center;
    gap: 12px;
    width: min(420px, calc(100vw - 32px));
    padding: 14px 14px 14px 16px;
    border: 1px solid #9fd2ac;
    border-radius: 14px;
    background: #f1fbf4;
    color: #183d24;
    box-shadow: 0 18px 48px rgba(15, 23, 42, .22);
    animation: product-save-toast-in .22s ease-out both;
}

.product-save-toast.is-hiding {
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity .2s ease, transform .2s ease;
}

.product-save-toast-icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #258a45;
    color: #fff;
    font-size: 22px;
    font-weight: 900;
}

.product-save-toast strong,
.product-save-toast span {
    display: block;
}

.product-save-toast strong {
    margin-bottom: 2px;
    font-size: 15px;
}

.product-save-toast > div > span {
    color: #3f684a;
    font-size: 13px;
}

.product-save-toast-close {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #44634c;
    cursor: pointer;
    font-size: 22px;
    line-height: 1;
}

.product-save-toast-close:hover {
    background: rgba(37, 138, 69, .11);
}

.product-validation-summary {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 13px;
    margin: 0 0 18px;
    padding: 16px 18px;
    border: 1px solid #f0aa89;
    border-left: 5px solid #e8782d;
    border-radius: 13px;
    background: #fff7f2;
    color: #542813;
    scroll-margin-top: 18px;
}

.product-validation-summary-icon {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #e8782d;
    color: #fff;
    font-size: 20px;
    font-weight: 900;
}

.product-validation-summary strong {
    display: block;
    margin: 1px 0 4px;
    color: #2b1d17;
    font-size: 16px;
}

.product-validation-summary p {
    margin: 0 0 8px;
    color: #78513e;
    font-size: 13px;
}

.product-validation-summary ul {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.product-validation-summary li button {
    padding: 7px 10px;
    border: 1px solid #e8a17e;
    border-radius: 999px;
    background: #fff;
    color: #a34416;
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
}

.product-validation-summary li button:hover,
.product-validation-summary li button:focus-visible {
    border-color: #e8782d;
    background: #fff0e8;
    outline: none;
}

.mandatory-fields-note {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 5px;
    margin: -2px 0 8px;
    color: #667085;
    font-size: 12px;
    font-weight: 700;
}

.required-mark,
.mandatory-fields-note > span {
    color: #d94f18;
    font-weight: 900;
}

.field-block.required-field-missing {
    padding: 9px;
    margin: -9px;
    border: 1px solid #ed8e60;
    border-radius: 10px;
    background: #fff7f2;
}

.field-block.required-field-missing input,
.field-block.required-field-missing select,
.field-block.required-field-missing textarea,
.field-block input[aria-invalid="true"],
.field-block select[aria-invalid="true"],
.field-block textarea[aria-invalid="true"] {
    border-color: #df6426 !important;
    box-shadow: 0 0 0 3px rgba(232, 120, 45, .12);
}

@keyframes product-save-toast-in {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 720px) {
    .product-save-toast {
        top: 12px;
        right: 12px;
        left: 12px;
        width: auto;
    }

    .product-validation-summary {
        grid-template-columns: 32px minmax(0, 1fr);
        padding: 14px;
    }

    .mandatory-fields-note {
        justify-content: flex-start;
    }
}


/* Duplicate product prevention and cleanup */
.product-duplicate-overview {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 13px;
    margin-bottom: 16px;
    padding: 13px 15px;
    border: 1px solid #f2b58e;
    border-left: 5px solid #e8782d;
    border-radius: 12px;
    background: #fff8f3;
    color: #5b301b;
}

.product-duplicate-overview-icon,
.product-duplicate-alert-icon {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #e8782d;
    color: #fff;
    font-size: 20px;
    font-weight: 900;
}

.product-duplicate-overview strong,
.product-duplicate-overview span {
    display: block;
}

.product-duplicate-overview strong {
    margin-bottom: 2px;
    color: #2d1d15;
    font-size: 14px;
}

.product-duplicate-overview span {
    color: #7a513d;
    font-size: 12px;
}

.product-duplicate-row > td {
    background: #fffaf6;
}

.product-duplicate-row:hover > td {
    background: #fff4ea;
}

.product-duplicate-badge {
    display: inline-flex;
    align-items: center;
    margin-top: 7px;
    padding: 4px 8px;
    border: 1px solid #eba578;
    border-radius: 999px;
    background: #fff1e7;
    color: #a74413;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.product-expanded-duplicate {
    border-color: #efb18a !important;
    background: #fff8f3 !important;
}

.product-expanded-duplicate-links {
    display: grid;
    gap: 5px;
    margin-top: 7px;
}

.product-expanded-duplicate-links a {
    color: #a74413;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.product-expanded-duplicate-links a:hover {
    text-decoration: underline;
}

.product-duplicate-alert {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 14px;
    margin: 0 0 18px;
    padding: 17px 18px;
    border: 1px solid #efa77b;
    border-left: 5px solid #d95616;
    border-radius: 13px;
    background: #fff6ef;
    color: #582813;
    scroll-margin-top: 18px;
}

.product-duplicate-alert-content > strong {
    display: block;
    margin: 1px 0 4px;
    color: #2b1d17;
    font-size: 16px;
}

.product-duplicate-alert-content > p {
    margin: 0 0 12px;
    color: #76503c;
    font-size: 13px;
}

.product-duplicate-match-list {
    display: grid;
    gap: 8px;
}

.product-duplicate-match {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 11px;
    border: 1px solid #ebbea2;
    border-radius: 10px;
    background: #fff;
}

.product-duplicate-match strong,
.product-duplicate-match span {
    display: block;
}

.product-duplicate-match strong {
    color: #25211f;
    font-size: 13px;
}

.product-duplicate-match span {
    margin-top: 2px;
    color: #77675e;
    font-size: 11px;
}

.product-duplicate-existing-notice {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px 10px;
    margin: 0 0 16px;
    padding: 11px 13px;
    border: 1px solid #e9bc73;
    border-radius: 10px;
    background: #fff9e8;
    color: #614711;
    font-size: 12px;
}

.product-duplicate-existing-notice strong {
    color: #3d2c09;
}

.product-duplicate-existing-notice a {
    margin-left: auto;
    color: #9c4a0c;
    font-weight: 900;
}

@media (max-width: 720px) {
    .product-duplicate-overview {
        grid-template-columns: 36px minmax(0, 1fr);
    }

    .product-duplicate-overview .button {
        grid-column: 1 / -1;
        width: 100%;
    }

    .product-duplicate-alert {
        grid-template-columns: 34px minmax(0, 1fr);
        padding: 14px;
    }

    .product-duplicate-match {
        align-items: stretch;
        flex-direction: column;
    }

    .product-duplicate-match .button {
        width: 100%;
    }

    .product-duplicate-existing-notice a {
        width: 100%;
        margin-left: 0;
    }
}

/* Admin Data Management */
.data-management-page {
    min-width: 0;
}

.data-management-heading {
    align-items: flex-end;
}

.data-page-kicker {
    display: block;
    margin-bottom: 4px;
    color: #d85f1d;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .11em;
}

.data-management-message {
    margin-bottom: 14px;
}

.data-safety-banner {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    margin: 0 0 16px;
    padding: 13px 15px;
    border: 1px solid #cdd9d2;
    border-left: 4px solid #3f8d65;
    border-radius: 12px;
    background: #f6fbf8;
}

.data-safety-icon {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #3f8d65;
    color: #fff;
    font-weight: 900;
}

.data-safety-banner strong,
.data-safety-banner span {
    display: block;
}

.data-safety-banner strong {
    color: #244b37;
    font-size: 13px;
}

.data-safety-banner span {
    margin-top: 2px;
    color: #547262;
    font-size: 12px;
    line-height: 1.45;
}

.data-summary-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.data-summary-card {
    display: flex;
    min-width: 0;
    min-height: 104px;
    flex-direction: column;
    justify-content: space-between;
    padding: 13px 14px;
    border: 1px solid #e1e4e6;
    border-radius: 12px;
    background: #fff;
    color: #2d3134;
    text-decoration: none;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.data-summary-card:hover,
.data-summary-card.selected {
    border-color: #e8782d;
    box-shadow: 0 6px 18px rgba(70, 54, 43, .08);
    transform: translateY(-1px);
}

.data-summary-card.warning {
    background: #fffaf6;
}

.data-summary-card > span {
    color: #667078;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.25;
}

.data-summary-card strong {
    margin: 6px 0 2px;
    color: #202427;
    font-size: 25px;
    line-height: 1;
}

.data-summary-card small {
    color: #8a9298;
    font-size: 10px;
}

.data-section-tabs {
    display: flex;
    gap: 6px;
    margin: 0 0 12px;
    padding: 6px;
    overflow-x: auto;
    border: 1px solid #e0e3e5;
    border-radius: 12px;
    background: #f5f6f7;
}

.data-section-tabs a {
    flex: 0 0 auto;
    padding: 9px 13px;
    border-radius: 8px;
    color: #596269;
    font-size: 12px;
    font-weight: 850;
    text-decoration: none;
}

.data-section-tabs a:hover {
    color: #b84c12;
    background: #fff;
}

.data-section-tabs a.active {
    background: #202427;
    color: #fff;
    box-shadow: 0 3px 9px rgba(30, 33, 35, .15);
}

.data-filter-panel {
    margin-bottom: 12px;
    padding: 11px 12px;
}

.data-filter-form {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.data-filter-form select {
    width: auto;
    min-width: 150px;
}

.data-search-wrap {
    position: relative;
    flex: 1 1 280px;
    min-width: 190px;
}

.data-search-wrap > span {
    position: absolute;
    top: 50%;
    left: 12px;
    color: #8b9398;
    transform: translateY(-50%);
    pointer-events: none;
}

.data-search-wrap input {
    width: 100%;
    padding-left: 34px;
}

.data-filter-check {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 39px;
    padding: 0 10px;
    border: 1px solid #d9dddf;
    border-radius: 8px;
    background: #fff;
    color: #535d63;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.data-filter-check input {
    width: auto;
}

.data-result-count {
    margin-left: auto;
    white-space: nowrap;
}

.data-table-panel {
    padding: 0;
    overflow: hidden;
}

.data-table-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 15px 16px 13px;
    border-bottom: 1px solid #e6e8e9;
}

.data-table-heading h2,
.data-table-heading p {
    margin: 0;
}

.data-table-heading h2 {
    color: #25292c;
    font-size: 16px;
}

.data-table-heading p {
    margin-top: 3px;
    color: #747d83;
    font-size: 11px;
    line-height: 1.4;
}

.database-table {
    min-width: 1020px;
    margin: 0;
}

.database-table th {
    padding: 10px 11px;
    background: #f5f6f7;
    color: #626b70;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.database-table td {
    padding: 11px;
    vertical-align: middle;
}

.database-table tbody tr:hover > td {
    background: #fffaf6;
}

.data-id {
    color: #90979c;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 10px;
    font-weight: 800;
}

.data-subline,
.data-price-line,
.data-dependency,
.data-date,
.data-visibility,
.data-list-name {
    display: block;
}

.data-subline,
.data-date,
.data-visibility {
    margin-top: 3px;
    color: #7c858b;
    font-size: 10px;
}

.data-price-line,
.data-dependency {
    color: #586168;
    font-size: 10px;
    line-height: 1.55;
    white-space: nowrap;
}

.data-status {
    display: inline-flex;
    padding: 4px 8px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 900;
    text-transform: uppercase;
}

.data-status.active {
    background: #e9f6ee;
    color: #237247;
}

.data-status.inactive {
    background: #f0f1f2;
    color: #70787d;
}

.data-warning-badge,
.data-protected-note {
    display: inline-flex;
    align-items: center;
    margin-top: 5px;
    padding: 3px 7px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 900;
    white-space: nowrap;
}

.data-warning-badge {
    border: 1px solid #edab7f;
    background: #fff1e8;
    color: #ae4915;
    text-transform: uppercase;
}

.data-protected-note {
    border: 1px solid #d8dcde;
    background: #f4f5f6;
    color: #727b80;
}

.data-duplicate-row > td {
    background: #fffaf6;
}

.data-inactive-row {
    opacity: .76;
}

.data-row-actions,
.data-actions-cell {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
}

.inline-action-form {
    display: inline-flex;
    margin: 0;
}

.data-inline-edit-row {
    display: grid;
    grid-template-columns: minmax(190px, 1.5fr) 88px 125px minmax(155px, 1fr) 125px minmax(150px, auto);
    gap: 9px;
    align-items: center;
    width: 100%;
}

.lookup-inline-row {
    grid-template-columns: minmax(170px, 1.1fr) minmax(170px, 1fr) 82px 120px minmax(130px, .8fr) minmax(155px, auto);
}

.data-inline-cell {
    min-width: 0;
}

.data-inline-cell input[type="text"],
.data-inline-cell input:not([type]),
.data-inline-cell input[type="number"] {
    width: 100%;
    min-width: 0;
    padding: 8px 9px;
    font-size: 11px;
}

.data-order-cell input {
    max-width: 82px;
}

.data-active-check {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #5e676d;
    font-size: 10px;
    font-weight: 800;
}

.data-active-check input {
    width: auto;
}

.data-usage-cell,
.data-date-cell {
    color: #6e777c;
    font-size: 10px;
}

.data-list-name {
    margin-top: 3px;
    color: #33383b;
    font-size: 10px;
}

.data-delete-dialog {
    width: min(560px, calc(100vw - 28px));
    padding: 0;
    border: 0;
    border-radius: 15px;
    box-shadow: 0 24px 70px rgba(22, 25, 27, .28);
}

.data-delete-dialog::backdrop {
    background: rgba(20, 22, 24, .55);
}

.data-delete-dialog form {
    padding: 19px;
}

.data-dialog-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.data-dialog-head span {
    color: #c64e18;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.data-dialog-head h2 {
    margin: 4px 0 0;
    font-size: 19px;
}

.data-dialog-head > button {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 50%;
    background: #f1f2f3;
    color: #5a6368;
    font-size: 20px;
    cursor: pointer;
}

.data-delete-warning {
    margin: 15px 0;
    padding: 12px 13px;
    border: 1px solid #efb090;
    border-radius: 10px;
    background: #fff7f2;
    color: #70402a;
    font-size: 11px;
    line-height: 1.5;
}

.data-delete-dependencies {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.data-delete-dependencies span {
    padding: 10px;
    border: 1px solid #e1e4e6;
    border-radius: 9px;
    background: #f8f9f9;
    color: #657076;
    font-size: 10px;
    text-align: center;
}

.data-delete-dependencies b {
    display: block;
    margin-bottom: 2px;
    color: #24292c;
    font-size: 17px;
}

.data-dialog-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 17px;
}

.audit-action {
    display: inline-flex;
    padding: 4px 8px;
    border-radius: 999px;
    background: #eef0f1;
    color: #596168;
    font-size: 9px;
    font-weight: 900;
    text-transform: uppercase;
}

.audit-action.delete {
    background: #fdeceb;
    color: #ad342d;
}

.audit-action.update,
.audit-action.activate {
    background: #e8f5ed;
    color: #27714a;
}

.audit-action.deactivate {
    background: #fff4df;
    color: #8f5b12;
}

.audit-json {
    margin-top: 7px;
    color: #666f74;
    font-size: 10px;
}

.audit-json summary {
    color: #b74e18;
    cursor: pointer;
    font-weight: 800;
}

.audit-json pre {
    max-width: 520px;
    max-height: 170px;
    margin: 5px 0 8px;
    padding: 8px;
    overflow: auto;
    border-radius: 6px;
    background: #25292c;
    color: #e9eeee;
    font-size: 9px;
    white-space: pre-wrap;
    word-break: break-word;
}

@media (max-width: 1180px) {
    .data-summary-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .data-filter-form {
        flex-wrap: wrap;
    }

    .data-result-count {
        margin-left: 0;
    }
}

@media (max-width: 720px) {
    .data-management-heading,
    .data-table-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .data-management-heading > .button,
    .data-table-heading > .button {
        width: 100%;
    }

    .data-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .data-summary-card {
        min-height: 92px;
    }

    .data-filter-form > * {
        width: 100%;
    }

    .data-filter-form select {
        width: 100%;
    }

    .data-search-wrap {
        flex-basis: 100%;
    }

    .data-inline-edit-row,
    .lookup-inline-row {
        grid-template-columns: 1fr;
        padding: 4px 0;
    }

    .data-order-cell input {
        max-width: none;
    }

    .data-actions-cell .button {
        flex: 1 1 auto;
    }

    .data-delete-dependencies {
        grid-template-columns: 1fr;
    }
}

.data-secondary-table-panel {
    margin-top: 12px;
}

.model-inline-row {
    grid-template-columns: minmax(170px, 1.15fr) minmax(125px, .85fr) minmax(145px, .9fr) 82px minmax(180px, 1fr) minmax(165px, auto);
}

.model-inline-row select {
    width: 100%;
    min-width: 0;
    padding: 8px 9px;
    font-size: 11px;
}

@media (max-width: 720px) {
    .model-inline-row {
        grid-template-columns: 1fr;
    }
}
