.qtool-qmix-designer,
        .qtool-qmix-designer * {
            box-sizing: border-box;
        }

        .qtool-qmix-designer {
            --qm-bg: var(--bs-body-bg, #ffffff);
            --qm-surface: var(--bs-tertiary-bg, #f6f8fb);
            --qm-card: var(--bs-body-bg, #ffffff);
            --qm-text: var(--bs-body-color, #172033);
            --qm-muted: var(--bs-secondary-color, #64748b);
            --qm-border: var(--bs-border-color, #dbe3ef);
            --qm-primary: #0f4c81;
            --qm-primary-2: #2563eb;
            --qm-accent: #f59e0b;
            --qm-good: #15803d;
            --qm-warn: #b45309;
            --qm-danger: #b91c1c;
            --qm-info: #0369a1;
            --qm-shadow: 0 18px 45px rgba(15, 23, 42, 0.10);
            color: var(--qm-text);
            font-size: 16px;
            line-height: 1.5;
        }

        .qtool-qmix-designer .qm-shell {
            position: relative;
            overflow: hidden;
            border: 1px solid var(--qm-border);
            border-radius: 28px;
            background:
                radial-gradient(circle at top left, rgba(37, 99, 235, 0.10), transparent 34%),
                radial-gradient(circle at bottom right, rgba(245, 158, 11, 0.10), transparent 30%),
                linear-gradient(135deg, var(--qm-card), var(--qm-surface));
            box-shadow: var(--qm-shadow);
        }

        .qtool-qmix-designer .qm-shell::before {
            content: "";
            position: absolute;
            inset: 0;
            pointer-events: none;
            opacity: 0.45;
            background-image:
                linear-gradient(rgba(37, 99, 235, 0.08) 1px, transparent 1px),
                linear-gradient(90deg, rgba(37, 99, 235, 0.08) 1px, transparent 1px);
            background-size: 34px 34px;
            mask-image: linear-gradient(180deg, rgba(0,0,0,0.9), transparent 80%);
        }

        .qtool-qmix-designer .qm-inner {
            position: relative;
            z-index: 1;
            padding: clamp(1rem, 2.5vw, 1.6rem);
        }

        .qtool-qmix-designer .qm-header {
            display: grid;
            grid-template-columns: minmax(0, 1fr) auto;
            gap: 1rem;
            align-items: start;
            margin-bottom: 1rem;
        }

        .qtool-qmix-designer .qm-kicker {
            display: inline-flex;
            align-items: center;
            gap: .45rem;
            margin-bottom: .5rem;
            padding: .25rem .6rem;
            border: 1px solid rgba(15, 76, 129, .22);
            border-radius: 999px;
            color: var(--qm-primary);
            background: rgba(15, 76, 129, .08);
            font-size: .78rem;
            font-weight: 700;
            letter-spacing: .02em;
            text-transform: uppercase;
        }

        .qtool-qmix-designer .qm-title {
            margin: 0 0 .35rem;
            font-size: clamp(1.45rem, 2.3vw, 2.1rem);
            line-height: 1.12;
            font-weight: 800;
            letter-spacing: -.03em;
        }

        .qtool-qmix-designer .qm-subtitle {
            max-width: 860px;
            margin: 0;
            color: var(--qm-muted);
        }

        .qtool-qmix-designer .qm-unit-toggle {
            display: flex;
            gap: .35rem;
            padding: .35rem;
            border: 1px solid var(--qm-border);
            border-radius: 999px;
            background: var(--qm-card);
            box-shadow: 0 8px 24px rgba(15, 23, 42, .06);
        }

        .qtool-qmix-designer .qm-unit-toggle button,
        .qtool-qmix-designer .qm-btn {
            border: 0;
            border-radius: 999px;
            font-weight: 800;
            cursor: pointer;
            transition: transform .16s ease, background .16s ease, color .16s ease, border-color .16s ease;
        }

        .qtool-qmix-designer .qm-unit-toggle button {
            padding: .48rem .78rem;
            background: transparent;
            color: var(--qm-muted);
        }

        .qtool-qmix-designer .qm-unit-toggle button[aria-pressed="true"] {
            color: #fff;
            background: linear-gradient(135deg, var(--qm-primary), var(--qm-primary-2));
        }

        .qtool-qmix-designer .qm-grid {
            display: grid;
            grid-template-columns: minmax(300px, .86fr) minmax(0, 1.44fr);
            gap: 1rem;
            align-items: start;
        }

        .qtool-qmix-designer .qm-panel {
            border: 1px solid var(--qm-border);
            border-radius: 22px;
            background: rgba(255,255,255,.72);
            backdrop-filter: blur(12px);
            box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
        }

        [data-bs-theme="dark"] .qtool-qmix-designer .qm-panel,
        .theme-dark .qtool-qmix-designer .qm-panel {
            background: rgba(15, 23, 42, .58);
        }

        .qtool-qmix-designer .qm-panel-head {
            padding: 1rem 1rem .7rem;
            border-bottom: 1px solid var(--qm-border);
        }

        .qtool-qmix-designer .qm-panel-head h2,
        .qtool-qmix-designer .qm-panel-head h3 {
            margin: 0;
            font-size: 1rem;
            font-weight: 850;
        }

        .qtool-qmix-designer .qm-panel-head p {
            margin: .25rem 0 0;
            color: var(--qm-muted);
            font-size: .9rem;
        }

        .qtool-qmix-designer .qm-form {
            display: grid;
            gap: .85rem;
            padding: 1rem;
        }

        .qtool-qmix-designer .qm-field {
            display: grid;
            gap: .38rem;
        }

        .qtool-qmix-designer .qm-field label,
        .qtool-qmix-designer .qm-field .qm-label {
            font-size: .86rem;
            font-weight: 800;
            color: var(--qm-text);
        }

        .qtool-qmix-designer .qm-input,
        .qtool-qmix-designer .qm-select {
            width: 100%;
            height: 48px;
            min-height: 48px;
            border: 1px solid var(--qm-border);
            border-radius: 14px;
            padding: 0 .78rem;
            color: var(--qm-text);
            background: var(--qm-card);
            outline: none;
            line-height: 1.2;
        }

        .qtool-qmix-designer .qm-select {
            white-space: nowrap;
            text-overflow: ellipsis;
        }

        .qtool-qmix-designer .qm-input:focus,
        .qtool-qmix-designer .qm-select:focus {
            border-color: rgba(37, 99, 235, .72);
            box-shadow: 0 0 0 .22rem rgba(37, 99, 235, .13);
        }

        .qtool-qmix-designer .qm-two {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: .75rem;
        }

        .qtool-qmix-designer .qm-advanced {
            border: 1px dashed rgba(15, 76, 129, .35);
            border-radius: 18px;
            overflow: hidden;
            background: rgba(15, 76, 129, .035);
        }

        .qtool-qmix-designer .qm-advanced summary {
            list-style: none;
            cursor: pointer;
            padding: .78rem .9rem;
            font-weight: 850;
            color: var(--qm-primary);
        }

        .qtool-qmix-designer .qm-advanced summary::-webkit-details-marker {
            display: none;
        }

        .qtool-qmix-designer .qm-advanced-body {
            display: grid;
            gap: .85rem;
            padding: 0 .9rem .9rem;
        }

        .qtool-qmix-designer .qm-range-row {
            display: flex;
            align-items: center;
            gap: .7rem;
        }

        .qtool-qmix-designer .qm-range-row input[type="range"] {
            width: 100%;
            accent-color: var(--qm-primary-2);
        }

        .qtool-qmix-designer .qm-chip-value {
            min-width: 54px;
            text-align: center;
            border-radius: 999px;
            padding: .2rem .55rem;
            font-size: .82rem;
            font-weight: 850;
            color: var(--qm-primary);
            background: rgba(37, 99, 235, .09);
            border: 1px solid rgba(37, 99, 235, .16);
        }

        .qtool-qmix-designer .qm-actions {
            display: flex;
            gap: .55rem;
            flex-wrap: wrap;
            padding-top: .15rem;
        }

        .qtool-qmix-designer .qm-btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: .4rem;
            min-height: 42px;
            padding: .68rem 1rem;
            border: 1px solid transparent;
        }

        .qtool-qmix-designer .qm-btn:hover {
            transform: translateY(-1px);
        }

        .qtool-qmix-designer .qm-btn-primary {
            color: #fff;
            background: linear-gradient(135deg, var(--qm-primary), var(--qm-primary-2));
            box-shadow: 0 12px 24px rgba(37, 99, 235, .22);
        }

        .qtool-qmix-designer .qm-btn-ghost {
            color: var(--qm-primary);
            background: var(--qm-card);
            border-color: var(--qm-border);
        }

        .qtool-qmix-designer .qm-output {
            display: grid;
            gap: 1rem;
        }

        .qtool-qmix-designer .qm-status-card {
            display: grid;
            grid-template-columns: auto minmax(0, 1fr);
            gap: .85rem;
            align-items: center;
            padding: 1rem;
            border: 1px solid var(--qm-border);
            border-radius: 22px;
            background: var(--qm-card);
            box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
        }

        .qtool-qmix-designer .qm-status-icon {
            display: grid;
            place-items: center;
            width: 48px;
            height: 48px;
            border-radius: 16px;
            font-size: 1.35rem;
            background: rgba(37, 99, 235, .10);
            color: var(--qm-primary);
        }

        .qtool-qmix-designer .qm-status-card[data-status="pass"] .qm-status-icon {
            color: var(--qm-good);
            background: rgba(21, 128, 61, .12);
        }

        .qtool-qmix-designer .qm-status-card[data-status="warn"] .qm-status-icon {
            color: var(--qm-warn);
            background: rgba(245, 158, 11, .14);
        }

        .qtool-qmix-designer .qm-status-card[data-status="danger"] .qm-status-icon {
            color: var(--qm-danger);
            background: rgba(185, 28, 28, .12);
        }

        .qtool-qmix-designer .qm-status-title {
            margin: 0 0 .15rem;
            font-size: 1.02rem;
            font-weight: 900;
        }

        .qtool-qmix-designer .qm-status-text {
            margin: 0;
            color: var(--qm-muted);
            font-size: .92rem;
        }

        .qtool-qmix-designer .qm-metrics {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: .65rem;
        }

        .qtool-qmix-designer .qm-metric {
            padding: .85rem;
            border: 1px solid var(--qm-border);
            border-radius: 18px;
            background: var(--qm-card);
        }

        .qtool-qmix-designer .qm-metric span {
            display: block;
            margin-bottom: .24rem;
            color: var(--qm-muted);
            font-size: .76rem;
            font-weight: 800;
            text-transform: uppercase;
            letter-spacing: .03em;
        }

        .qtool-qmix-designer .qm-metric strong {
            display: block;
            font-size: 1.05rem;
            line-height: 1.15;
        }

        .qtool-qmix-designer .qm-recipe-stack {
            display: grid;
            gap: 1rem;
        }

        .qtool-qmix-designer .qm-bottom-grid {
            display: grid;
            grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
            gap: 1rem;
            align-items: stretch;
            margin-top: 1rem;
        }

        .qtool-qmix-designer .qm-table-card,
        .qtool-qmix-designer .qm-chart-card,
        .qtool-qmix-designer .qm-alert-card,
        .qtool-qmix-designer .qm-cta-card {
            border: 1px solid var(--qm-border);
            border-radius: 22px;
            background: var(--qm-card);
            overflow: hidden;
            box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
        }

        .qtool-qmix-designer .qm-card-title {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 1rem;
            padding: .9rem 1rem;
            border-bottom: 1px solid var(--qm-border);
        }

        .qtool-qmix-designer .qm-card-title h3 {
            margin: 0;
            font-size: .98rem;
            font-weight: 900;
        }

        .qtool-qmix-designer .qm-card-title small {
            color: var(--qm-muted);
            font-weight: 700;
        }

        .qtool-qmix-designer .qm-table-scroll {
            overflow-x: visible;
        }

        .qtool-qmix-designer .qm-table {
            width: 100%;
            border-collapse: collapse;
            min-width: 0;
            table-layout: fixed;
        }

        .qtool-qmix-designer .qm-table th,
        .qtool-qmix-designer .qm-table td {
            padding: .78rem .9rem;
            border-bottom: 1px solid var(--qm-border);
            text-align: right;
            vertical-align: top;
            white-space: normal;
        }

        .qtool-qmix-designer .qm-table th:first-child,
        .qtool-qmix-designer .qm-table td:first-child {
            width: 46%;
            text-align: left;
        }

        .qtool-qmix-designer .qm-table th:nth-child(2),
        .qtool-qmix-designer .qm-table th:nth-child(3),
        .qtool-qmix-designer .qm-table td:nth-child(2),
        .qtool-qmix-designer .qm-table td:nth-child(3) {
            width: 27%;
        }

        .qtool-qmix-designer .qm-material-cell strong {
            display: block;
            line-height: 1.2;
        }

        .qtool-qmix-designer .qm-material-note {
            display: -webkit-box;
            margin-top: .18rem;
            color: var(--qm-muted);
            font-size: .78rem;
            line-height: 1.28;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        .qtool-qmix-designer .qm-qty {
            display: block;
            font-weight: 800;
            line-height: 1.25;
            overflow-wrap: anywhere;
        }

        .qtool-qmix-designer .qm-table th {
            color: var(--qm-muted);
            font-size: .78rem;
            text-transform: uppercase;
            letter-spacing: .03em;
        }

        .qtool-qmix-designer .qm-table tr:last-child td {
            border-bottom: 0;
        }

        .qtool-qmix-designer .qm-batch-box {
            display: grid;
            gap: .65rem;
            padding: 1rem;
            border-top: 1px solid var(--qm-border);
            background: rgba(15, 76, 129, .04);
        }

        .qtool-qmix-designer .qm-pie-area {
            display: grid;
            grid-template-columns: minmax(170px, 230px) minmax(180px, 1fr);
            gap: 1rem;
            align-items: center;
            padding: 1.05rem;
        }

        .qtool-qmix-designer .qm-pie {
            width: min(230px, 65vw);
            aspect-ratio: 1;
            border-radius: 50%;
            border: 10px solid rgba(255,255,255,.70);
            box-shadow: inset 0 0 0 1px rgba(15, 23, 42, .10), 0 16px 32px rgba(15,23,42,.10);
            background: conic-gradient(#2563eb 0 18%, #0f4c81 18% 30%, #64748b 30% 96%, #f59e0b 96% 100%);
        }

        .qtool-qmix-designer .qm-legend {
            width: 100%;
            display: grid;
            gap: .45rem;
        }

        .qtool-qmix-designer .qm-legend-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: .75rem;
            color: var(--qm-muted);
            font-size: .86rem;
        }

        .qtool-qmix-designer .qm-dot {
            display: inline-block;
            width: .75rem;
            height: .75rem;
            border-radius: 999px;
            margin-right: .45rem;
            vertical-align: -.08rem;
        }

        .qtool-qmix-designer .qm-dot-water { background: #2563eb; }
        .qtool-qmix-designer .qm-dot-cement { background: #0f4c81; }
        .qtool-qmix-designer .qm-dot-agg { background: #64748b; }
        .qtool-qmix-designer .qm-dot-air { background: #f59e0b; }

        .qtool-qmix-designer .qm-alert-list {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: .65rem;
            padding: 1rem;
        }

        .qtool-qmix-designer .qm-alert {
            display: grid;
            grid-template-columns: auto minmax(0, 1fr);
            gap: .55rem;
            align-items: start;
            padding: .72rem .82rem;
            border-radius: 16px;
            border: 1px solid var(--qm-border);
            background: var(--qm-surface);
            font-size: .91rem;
        }

        .qtool-qmix-designer .qm-alert strong {
            display: block;
            margin-bottom: .1rem;
        }

        .qtool-qmix-designer .qm-alert[data-type="pass"] { border-color: rgba(21, 128, 61, .30); background: rgba(21, 128, 61, .08); }
        .qtool-qmix-designer .qm-alert[data-type="warn"] { border-color: rgba(245, 158, 11, .35); background: rgba(245, 158, 11, .10); }
        .qtool-qmix-designer .qm-alert[data-type="danger"] { border-color: rgba(185, 28, 28, .35); background: rgba(185, 28, 28, .09); }
        .qtool-qmix-designer .qm-alert[data-type="info"] { border-color: rgba(3, 105, 161, .30); background: rgba(3, 105, 161, .08); }

        .qtool-qmix-designer .qm-disclaimer {
            margin: .85rem 0 0;
            padding: .82rem .9rem;
            border-radius: 18px;
            color: var(--qm-muted);
            background: rgba(100, 116, 139, .08);
            border: 1px solid rgba(100, 116, 139, .18);
            font-size: .86rem;
        }

        .qtool-qmix-designer .qm-cta-card {
            display: grid;
            grid-template-columns: 1fr;
            gap: 1rem;
            align-content: start;
            padding: 1rem;
            border-color: rgba(15, 76, 129, .25);
            background:
                linear-gradient(135deg, rgba(15, 76, 129, .08), rgba(245, 158, 11, .08)),
                var(--qm-card);
        }

        .qtool-qmix-designer .qm-cta-card h3 {
            margin: 0 0 .25rem;
            font-size: 1rem;
            font-weight: 900;
        }

        .qtool-qmix-designer .qm-cta-card p {
            margin: 0;
            color: var(--qm-muted);
            font-size: .92rem;
        }

        .qtool-qmix-designer .qm-cta-link {
            display: inline-flex;
            width: fit-content;
            align-items: center;
            justify-content: center;
            min-height: 42px;
            padding: .68rem 1rem;
            border-radius: 999px;
            color: #fff;
            text-decoration: none;
            font-weight: 900;
            background: linear-gradient(135deg, var(--qm-primary), var(--qm-primary-2));
            box-shadow: 0 12px 24px rgba(37, 99, 235, .22);
            white-space: nowrap;
        }

        .qtool-qmix-designer .qm-note {
            color: var(--qm-muted);
            font-size: .82rem;
        }

        .qtool-qmix-designer .qm-hidden {
            display: none !important;
        }

        @media (max-width: 992px) {
            .qtool-qmix-designer .qm-grid,
            .qtool-qmix-designer .qm-bottom-grid {
                grid-template-columns: 1fr;
            }

            .qtool-qmix-designer .qm-alert-list {
                grid-template-columns: 1fr;
            }

            .qtool-qmix-designer .qm-metrics {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
        }

        @media (max-width: 680px) {
            .qtool-qmix-designer .qm-header,
            .qtool-qmix-designer .qm-cta-card,
            .qtool-qmix-designer .qm-pie-area {
                grid-template-columns: 1fr;
            }

            .qtool-qmix-designer .qm-unit-toggle {
                width: fit-content;
            }

            .qtool-qmix-designer .qm-two,
            .qtool-qmix-designer .qm-metrics {
                grid-template-columns: 1fr;
            }

            .qtool-qmix-designer .qm-table th,
            .qtool-qmix-designer .qm-table td {
                padding: .68rem .65rem;
                font-size: .9rem;
            }

            .qtool-qmix-designer .qm-table th:first-child,
            .qtool-qmix-designer .qm-table td:first-child {
                width: 42%;
            }

            .qtool-qmix-designer .qm-table th:nth-child(2),
            .qtool-qmix-designer .qm-table th:nth-child(3),
            .qtool-qmix-designer .qm-table td:nth-child(2),
            .qtool-qmix-designer .qm-table td:nth-child(3) {
                width: 29%;
            }
        }
