/* Quotation configuration — /admin/quotation-config */

.qc-config-page {
    --qc-accent: var(--pah-primary, #00897b);
    --qc-accent-bright: var(--pah-primary-bright, #00a99d);
    --qc-accent-dark: var(--pah-primary-dark, #00695c);
    --qc-surface: #ffffff;
    --qc-surface-muted: #f8fafc;
    --qc-surface-elevated: #f1f5f9;
    --qc-border: #e2e8f0;
    --qc-border-soft: #eef2f7;
    --qc-text: #1e293b;
    --qc-text-muted: #64748b;
    --qc-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05);
    --qc-shadow-md: 0 4px 14px rgba(15, 23, 42, 0.08);
    --qc-radius: 0.65rem;
    --qc-radius-lg: 0.85rem;
    max-width: 1320px;
    margin: 0 auto;
    padding-bottom: 1.5rem;
}

.qc-config-page.qc-page-has-toolbar {
    padding-bottom: 5.5rem;
}

/* Quotation type pills */
.qc-types-strip .card-body {
    padding: 0.85rem 1rem;
}

.qc-type-pill {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem 0.5rem;
    padding: 0.5rem 0.85rem;
    border: 1px solid var(--pah-border, #dfe7f7);
    border-radius: 999px;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
    user-select: none;
}

.qc-type-pill:hover {
    border-color: rgba(0, 137, 123, 0.35);
    box-shadow: var(--bb-shadow-sm, 0 1px 3px rgba(0, 105, 92, 0.08));
}

.qc-type-pill-active {
    background: linear-gradient(135deg, var(--qc-accent-bright) 0%, var(--qc-accent) 100%);
    border-color: var(--qc-accent-dark);
    color: #fff;
    box-shadow: 0 4px 12px rgba(0, 137, 123, 0.28);
}

.qc-type-pill-rate {
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: rgba(0, 137, 123, 0.1);
    color: var(--qc-accent-dark);
    white-space: nowrap;
}

.qc-type-pill-rate-missing {
    background: rgba(217, 119, 6, 0.12);
    color: #b45309;
}

.qc-type-pill-rate-active {
    background: rgba(255, 255, 255, 0.22);
    color: #fff;
}

.qc-type-pill-rate-missing.qc-type-pill-rate-active {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

.qc-type-pill-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    margin-left: 0.15rem;
}

.qc-type-pill-actions .btn-link {
    line-height: 1;
    min-width: 1.5rem;
}

/* Rates panel */
.qc-rates-panel .card-body {
    padding: 0.85rem 1rem 1rem;
}

.qc-rates-panel-title {
    font-size: 0.95rem;
    color: var(--bb-dark, #1e293b);
}

.qc-rates-label {
    font-size: 0.78rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
    color: #475569;
}

.qc-rates-project-types {
    padding-top: 0.75rem;
    border-top: 1px solid var(--pah-border, #e8eef5);
}

.qc-rates-badge {
    font-size: 0.68rem;
    font-weight: 600;
    padding: 0.2rem 0.45rem;
}

.qc-rates-badge-structural {
    background: #e0f2fe;
    color: #0369a1;
}

.qc-rates-badge-architectural {
    background: #ede9fe;
    color: #6d28d9;
}

.qc-rates-badge-construction {
    background: #d1fae5;
    color: #047857;
}

/* Context bar */
.qc-context-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--pah-border, #dfe7f7);
    border-radius: var(--qc-radius);
    background: linear-gradient(135deg, #f0fdfa 0%, #fff 55%, #f8fafc 100%);
    box-shadow: var(--qc-shadow-sm);
}

.qc-filter-toggle {
    white-space: nowrap;
}

/* Step wizard */
.qc-stepper {
    display: flex;
    align-items: stretch;
    gap: 0;
    padding: 0;
    background: var(--qc-surface);
    border: 1px solid var(--qc-border);
    border-radius: var(--qc-radius-lg);
    overflow: hidden;
    box-shadow: var(--qc-shadow-sm);
}

.qc-step {
    flex: 1 1 0;
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem 1.15rem;
    border: none;
    background: var(--qc-surface-muted);
    text-align: left;
    transition: background 0.15s ease, box-shadow 0.15s ease;
}

.qc-step:not(:disabled):hover {
    background: #f0fdfa;
}

.qc-step:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.qc-step-active {
    background: #fff;
    box-shadow: inset 0 -3px 0 var(--qc-accent);
}

.qc-step-done .qc-step-num {
    background: var(--qc-accent);
    color: #fff;
}

.qc-step-num {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 50%;
    font-size: 0.82rem;
    font-weight: 700;
    background: #e2e8f0;
    color: #475569;
}

.qc-step-active .qc-step-num {
    background: var(--qc-accent);
    color: #fff;
}

.qc-step-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.qc-step-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--qc-text-muted);
}

.qc-step-value {
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--qc-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.qc-step-connector {
    flex: 0 0 2px;
    align-self: stretch;
    background: var(--qc-border);
}

.qc-step-connector-done {
    background: var(--qc-accent);
}

.qc-step-panel .card-header h5 {
    font-size: 1.05rem;
    font-weight: 700;
}

.qc-grid-wrap--full {
    padding: 0 1.25rem;
}

.qc-grid-wrap--full .table {
    font-size: 0.92rem;
}

.qc-grid-wrap--full .table th {
    padding-top: 0.85rem;
    padding-bottom: 0.85rem;
}

.qc-grid-wrap--full .table td {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    vertical-align: middle;
}

.qc-col-name,
.qc-grid-wrap--full .table:not(.qc-items-grid) td:first-child:not(.qc-col-order),
.qc-grid-wrap--full .table:not(.qc-items-grid) th:first-child:not(.qc-col-order) {
    min-width: 14rem;
    width: 45%;
    max-width: none;
    white-space: normal;
    word-break: break-word;
    line-height: 1.45;
}

.qc-item-name {
    font-weight: 500;
}

.qc-col-unit {
    width: 5rem;
    white-space: nowrap;
}

.qc-col-rate {
    width: 6rem;
    white-space: nowrap;
}

.qc-col-status {
    width: 7rem;
    white-space: nowrap;
}

.qc-grid-wrap--full .table .qc-grid-actions-col {
    min-width: 11rem;
    width: 1%;
    white-space: nowrap;
}

@media (max-width: 767.98px) {
    .qc-stepper {
        flex-direction: column;
    }

    .qc-step-connector {
        flex: 0 0 1px;
        width: 100%;
        height: 1px;
    }

    .qc-step-value {
        white-space: normal;
    }

    .qc-col-name,
    .qc-grid-wrap--full .table:not(.qc-items-grid) td:first-child:not(.qc-col-order) {
        min-width: 10rem;
        width: auto;
    }
}

.qc-col-order {
    width: 7rem;
    min-width: 7rem;
    max-width: 7rem;
    white-space: nowrap;
    text-align: left;
    vertical-align: middle;
}

.qc-grid-wrap--full .table th.qc-col-order,
.qc-grid-wrap--full .table td.qc-col-order {
    width: 7rem;
    min-width: 7rem;
    max-width: 7rem;
    white-space: nowrap;
    word-break: normal;
    padding-left: 0.75rem;
    padding-right: 0.5rem;
}

.qc-order-header {
    display: block;
    font-size: inherit;
    font-weight: 600;
    line-height: 1.2;
    padding-left: 0;
}

.qc-order-controls {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.qc-order-label {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    flex: 0 0 1.35rem;
    min-width: 1.35rem;
    font-weight: 700;
    color: var(--qc-accent-dark);
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.qc-order-arrows {
    flex-shrink: 0;
}

.qc-items-grid .qc-col-select {
    width: 3rem;
    min-width: 3rem;
    max-width: 3rem;
    text-align: center;
    vertical-align: middle;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}

.qc-items-grid .qc-col-select .form-check-input,
.qc-items-grid .qc-select-header .form-check-input {
    float: none;
    margin: 0;
    vertical-align: middle;
}

.qc-items-grid .qc-select-header {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 1.25rem;
}

.qc-items-grid .table th.qc-col-select,
.qc-items-grid .table td.qc-col-select {
    min-width: 3rem;
    width: 3rem;
    max-width: 3rem;
    white-space: nowrap;
    word-break: normal;
}

.qc-item-bulk-bar {
    border-color: var(--bs-border-color-translucent, #dee2e6) !important;
}

.qc-order-btn {
    padding: 0.1rem 0.35rem;
    line-height: 1.1;
}

.qc-order-btn:disabled {
    opacity: 0.35;
}

.qc-sort-input {
    width: 4.5rem;
    min-width: 4.5rem;
    padding: 0.2rem 0.4rem;
    text-align: center;
}

/* Master-detail layout (legacy) */
.qc-master-detail .card {
    min-height: 420px;
}

.qc-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    padding: 0.65rem 1rem;
    border: 1px solid var(--qc-border);
    border-radius: var(--qc-radius);
    background: var(--qc-surface-muted);
    font-size: 0.88rem;
}

.qc-breadcrumb-segment {
    font-weight: 600;
    color: var(--qc-text-muted);
}

.qc-breadcrumb-segment.qc-breadcrumb-active {
    color: var(--qc-accent-dark);
}

.qc-breadcrumb-sep {
    color: var(--qc-text-muted);
    user-select: none;
}

.qc-grid-wrap--compact {
    padding: 0.5rem 0.75rem 0;
}

.qc-category-grid tr:has(.text-primary) {
    background: rgba(0, 137, 123, 0.06);
}

/* QuickGrid catalog */
.qc-grid-wrap {
    padding: 0.75rem 1rem 0;
}

.qc-grid-wrap .table th {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--qc-text-muted);
    white-space: nowrap;
}

.qc-grid-wrap .table td {
    vertical-align: middle;
    font-size: 0.88rem;
}

.qc-grid-wrap .table td:first-child,
.qc-grid-wrap .table th:first-child {
    width: 2.5rem;
    text-align: center;
}

.qc-grid-wrap .table .qc-grid-actions-col,
.qc-grid-wrap .table td:last-child,
.qc-grid-wrap .table th:last-child {
    min-width: 14rem;
    white-space: nowrap;
}

.qc-grid-actions {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.35rem;
}

.qc-grid-actions .btn {
    white-space: nowrap;
    padding: 0.2rem 0.5rem;
    font-size: 0.75rem;
    line-height: 1.3;
}

/* Catalog shell (legacy toolbar helpers) */
.qc-library-toolbar {
    padding-top: 0.5rem;
    border-top: 1px solid var(--qc-border-soft);
}

.qc-search-wrap {
    position: relative;
    max-width: 420px;
}

.qc-search-icon {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--qc-text-muted);
    font-size: 0.85rem;
    pointer-events: none;
}

.qc-search-input {
    padding-left: 2.1rem;
    padding-right: 2rem;
    border-radius: 999px;
    border-color: var(--qc-border);
    background: var(--qc-surface-muted);
}

.qc-search-input:focus {
    background: #fff;
    border-color: rgba(0, 137, 123, 0.45);
    box-shadow: 0 0 0 3px rgba(0, 169, 157, 0.12);
}

.qc-search-clear {
    position: absolute;
    right: 0.15rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--qc-text-muted) !important;
    text-decoration: none !important;
    line-height: 1;
}

.qc-select-all-label {
    cursor: pointer;
}

.qc-catalog-hint {
    padding: 0.55rem 0.85rem;
    border-radius: var(--qc-radius);
    background: linear-gradient(90deg, rgba(0, 169, 157, 0.08) 0%, transparent 100%);
    border-left: 3px solid var(--qc-accent);
}

.qc-catalog-scroll {
    max-height: none;
    overflow: visible;
    padding: 0.85rem 1rem 1.25rem;
}

.qc-catalog-tree {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    align-items: start;
}

.qc-catalog-tree--single {
    grid-template-columns: minmax(0, 1fr);
}

.qc-category-filter {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.qc-category-filter-label {
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    font-size: 0.68rem;
}

.qc-category-filter-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
    gap: 0.45rem;
}

.qc-category-filter-chip {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.3rem 0.4rem;
    padding: 0.45rem 0.65rem;
    border: 1px solid var(--qc-border);
    border-radius: var(--qc-radius);
    background: #fff;
    color: var(--qc-text);
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.25;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.qc-category-filter-chip:hover {
    border-color: rgba(0, 137, 123, 0.35);
    background: #f0fdfa;
}

.qc-category-filter-chip--active {
    border-color: var(--qc-accent);
    background: linear-gradient(135deg, rgba(0, 169, 157, 0.12) 0%, #fff 70%);
    box-shadow: 0 0 0 1px rgba(0, 137, 123, 0.15);
    color: var(--qc-accent-dark);
}

.qc-category-filter-count {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.08rem 0.38rem;
    border-radius: 999px;
    background: rgba(100, 116, 139, 0.12);
    color: var(--qc-text-muted);
}

.qc-category-filter-chip--active .qc-category-filter-count {
    background: rgba(0, 137, 123, 0.14);
    color: var(--qc-accent-dark);
}

.qc-category-filter-linked {
    font-size: 0.65rem;
    font-weight: 700;
    padding: 0.08rem 0.35rem;
    border-radius: 999px;
    background: #e2e8f0;
    color: #475569;
}

.qc-category-filter-linked--done {
    background: #d1fae5;
    color: #047857;
}

/* Category panels */
.qc-catalog-category {
    border: 1px solid var(--qc-border);
    border-radius: var(--qc-radius-lg);
    background: var(--qc-surface);
    overflow: hidden;
    box-shadow: var(--qc-shadow-sm);
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.qc-catalog-category--open {
    border-color: rgba(0, 137, 123, 0.28);
    box-shadow: var(--qc-shadow-md);
}

.qc-catalog-category.qc-just-added {
    animation: qc-highlight-pulse 1.2s ease-out;
    border-color: rgba(0, 169, 157, 0.45);
}

@keyframes qc-highlight-pulse {
    0% { box-shadow: 0 0 0 0 rgba(0, 169, 157, 0.35); }
    70% { box-shadow: 0 0 0 8px rgba(0, 169, 157, 0); }
    100% { box-shadow: none; }
}

.qc-catalog-category-head {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.75rem 0.9rem;
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
    border-bottom: 1px solid transparent;
}

.qc-catalog-category--open .qc-catalog-category-head {
    border-bottom-color: var(--qc-border);
    background: linear-gradient(90deg, rgba(0, 137, 123, 0.07) 0%, #f8fafc 40%, #f1f5f9 100%);
}

.qc-row-check {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
}

.qc-row-expand {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem 0.55rem;
    cursor: pointer;
    user-select: none;
}

.qc-row-expand:hover {
    color: var(--qc-accent);
}

.qc-row-expand:hover .qc-category-title {
    color: var(--qc-accent-dark);
}

.qc-chevron {
    flex-shrink: 0;
    font-size: 0.9rem;
    color: var(--qc-text-muted);
    width: 1.1rem;
    text-align: center;
}

.qc-category-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--qc-text);
    line-height: 1.3;
}

.qc-category-item-count {
    flex-shrink: 0;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--qc-text-muted);
    white-space: nowrap;
    padding: 0.12rem 0.5rem;
    border-radius: 999px;
    background: rgba(100, 116, 139, 0.1);
}

.qc-search-match-badge {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    background: #fef3c7;
    color: #b45309;
}

.qc-meta {
    flex-shrink: 0;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    background: #e2e8f0;
    color: #475569;
    white-space: nowrap;
}

.qc-meta-done {
    background: #d1fae5;
    color: #047857;
}

.qc-row-actions {
    flex: 0 0 auto;
}

.qc-menu-btn {
    color: var(--qc-text-muted) !important;
    text-decoration: none !important;
    padding: 0.2rem 0.4rem !important;
    line-height: 1;
    border-radius: 0.35rem;
}

.qc-menu-btn:hover {
    color: var(--qc-accent) !important;
    background: rgba(0, 137, 123, 0.08);
}

.dropdown-toggle-no-caret::after {
    display: none !important;
}

.qc-catalog-category-body {
    background: var(--qc-surface-muted);
}

.qc-last-added-banner {
    margin: 0.65rem 0.85rem 0;
    padding: 0.55rem 0.75rem;
    border-radius: var(--qc-radius);
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    color: #065f46;
}

.qc-category-add-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    padding: 0.65rem 0.85rem;
    border-top: 1px dashed var(--qc-border);
    background: #fff;
}

.qc-category-add-bar-top {
    border-top: none;
    border-bottom: 1px solid var(--qc-border);
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.qc-empty-search {
    padding: 1rem 0.85rem;
}

/* Item cards */
.qc-category-items-scroll {
    max-height: min(70vh, 720px);
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0.65rem 0.75rem 0.85rem;
    scroll-behavior: smooth;
}

.qc-item-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}

.qc-item-card {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.65rem 0.75rem;
    align-items: start;
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--qc-border);
    border-radius: var(--qc-radius);
    background: #fff;
    box-shadow: var(--qc-shadow-sm);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.qc-item-card:hover {
    border-color: rgba(0, 137, 123, 0.25);
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.07);
}

.qc-item-card--linked {
    border-color: rgba(0, 137, 123, 0.35);
    border-left: 3px solid var(--qc-accent);
    background: linear-gradient(135deg, #f0fdf9 0%, #fff 45%);
}

.qc-item-card--sub {
    margin-left: 0.75rem;
    background: #fafbfc;
    border-style: dashed;
}

.qc-item-card.qc-just-added {
    animation: qc-highlight-pulse 1.2s ease-out;
}

.qc-item-card-check {
    padding-top: 0.2rem;
}

.qc-item-card-body {
    min-width: 0;
}

.qc-item-card-top {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.5rem 0.65rem;
    margin-bottom: 0.35rem;
}

.qc-item-card-index {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.65rem;
    height: 1.65rem;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--qc-accent-dark);
    background: rgba(0, 137, 123, 0.1);
    border-radius: 0.4rem;
}

.qc-item-card-headings {
    flex: 1 1 12rem;
    min-width: 0;
}

.qc-item-card-parent {
    margin-bottom: 0.15rem;
    line-height: 1.3;
    font-weight: 600;
}

.qc-item-card-title {
    font-size: 0.88rem;
    font-weight: 600;
    line-height: 1.55;
    color: var(--qc-text);
    word-break: break-word;
    white-space: pre-wrap;
}

.qc-item-card-title--clamped {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.qc-item-card-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem;
    margin-left: auto;
}

.qc-item-card-toggle {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--qc-accent) !important;
    text-decoration: none !important;
    margin-bottom: 0.35rem;
}

.qc-item-card-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.45rem;
}

.qc-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    white-space: nowrap;
}

.qc-badge-linked {
    background: #d1fae5;
    color: #047857;
}

.qc-badge-unit {
    background: #e0f2fe;
    color: #0369a1;
}

.qc-badge-rate {
    background: #f1f5f9;
    color: #64748b;
}

.qc-badge-rate-set {
    background: #fef3c7;
    color: #b45309;
}

.qc-item-card-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem;
    flex-shrink: 0;
}

.qc-item-action-btn {
    min-width: 2.25rem;
    padding: 0.25rem 0.45rem;
    border-radius: 0.4rem;
}

.qc-type-dots {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    flex-shrink: 0;
}

.qc-type-dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 50%;
    font-size: 0.62rem;
    font-weight: 700;
    background: #e0f2fe;
    color: #0369a1;
}

/* Sticky selection toolbar */
.qc-sticky-toolbar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1040;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    border-top: 1px solid var(--qc-border);
    padding: 0.65rem 1rem;
    padding-bottom: calc(0.65rem + env(safe-area-inset-bottom, 0px));
}

.qc-sticky-toolbar-inner {
    max-width: 1320px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
}

.qc-sticky-count {
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--qc-accent-dark);
}

@media (max-width: 991.98px) {
    .qc-catalog-tree {
        grid-template-columns: minmax(0, 1fr);
    }

    .qc-item-cards {
        grid-template-columns: minmax(0, 1fr);
    }

    .qc-item-card {
        grid-template-columns: auto 1fr;
    }

    .qc-item-card-actions {
        grid-column: 1 / -1;
        flex-direction: row;
        justify-content: flex-end;
    }
}

@media (max-width: 767.98px) {
    .qc-catalog-scroll {
        padding: 0.65rem;
    }

    .qc-category-items-scroll {
        max-height: none;
        padding: 0.55rem;
    }

    .qc-item-card {
        padding: 0.65rem;
        gap: 0.5rem;
    }

    .qc-item-card--sub {
        margin-left: 0.35rem;
    }

    .qc-context-bar {
        flex-direction: column;
        align-items: stretch;
    }

    .qc-type-pill {
        width: 100%;
        border-radius: 0.5rem;
        justify-content: flex-start;
    }

    .qc-search-wrap {
        max-width: none;
    }

    .qc-sticky-toolbar-inner {
        flex-direction: column;
        align-items: stretch;
    }

    .qc-sticky-toolbar-inner .d-flex {
        width: 100%;
    }

    .qc-sticky-toolbar-inner .btn {
        flex: 1 1 auto;
    }
}
