/* Selection Components Library Styles */
/* These styles use CSS variables for theming */

:root {
    /* Primary colors */
    --sc-primary-color: #3b82f6;
    --sc-primary-dark: #2563eb;
    --sc-primary-light: #eff6ff;
    --sc-primary-border: #bfdbfe;

    /* Neutral colors */
    --sc-text-primary: #1f2937;
    --sc-text-secondary: #4b5563;
    --sc-text-muted: #6b7280;
    --sc-text-light: #9ca3af;

    /* Surface colors */
    --sc-surface-color: #ffffff;
    --sc-surface-light: #f9fafb;
    --sc-surface-hover: #f3f4f6;
    --sc-border-color: #e5e7eb;
    --sc-border-light: #f3f4f6;

    /* Status colors */
    --sc-success-color: #10b981;
    --sc-success-light: #d1fae5;
    --sc-warning-color: #f59e0b;
    --sc-warning-light: #fef3c7;
    --sc-danger-color: #dc2626;
    --sc-danger-light: #fef2f2;

    /* Spacing */
    --sc-spacing-xs: 0.25rem;
    --sc-spacing-sm: 0.5rem;
    --sc-spacing-md: 1rem;
    --sc-spacing-lg: 1.5rem;
    --sc-spacing-xl: 2rem;

    /* Border radius */
    --sc-radius-sm: 4px;
    --sc-radius-md: 8px;
    --sc-radius-lg: 12px;
    --sc-radius-full: 9999px;

    /* Shadows */
    --sc-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
    --sc-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    --sc-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);

    /* Transitions */
    --sc-transition-fast: 150ms ease;
    --sc-transition-normal: 200ms ease;
    --sc-transition-slow: 300ms ease;
}

/* =====================
   Base Layout
   ===================== */
.sc-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: var(--sc-spacing-md);
}

.sc-grid {
    display: grid;
    gap: var(--sc-spacing-md);
}

.sc-grid-2 {
    grid-template-columns: repeat(2, 1fr);
}

.sc-grid-3 {
    grid-template-columns: repeat(3, 1fr);
}

.sc-grid-4 {
    grid-template-columns: repeat(4, 1fr);
}

.sc-grid-5 {
    grid-template-columns: repeat(5, 1fr);
}

.sc-grid-auto {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

/* =====================
   Card Styles
   ===================== */
.sc-card {
    background: var(--sc-surface-color);
    border: 1px solid var(--sc-border-color);
    border-radius: var(--sc-radius-md);
    overflow: hidden;
    transition: all var(--sc-transition-normal);
    display: flex;
    flex-direction: column;
}

.sc-card:hover {
    border-color: var(--sc-primary-border);
    box-shadow: var(--sc-shadow-md);
}

.sc-card-selected {
    border-color: var(--sc-primary-color);
    box-shadow: 0 0 0 2px var(--sc-primary-light);
}

.sc-card-image {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: contain;
    background: var(--sc-surface-light);
}

.sc-card-body {
    padding: var(--sc-spacing-md);
}

.sc-card-title {
    margin: 0 0 var(--sc-spacing-sm) 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--sc-text-primary);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.sc-card-description {
    margin: 0;
    font-size: 0.875rem;
    color: var(--sc-text-secondary);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.sc-card-footer {
    padding: var(--sc-spacing-md);
    border-top: 1px solid var(--sc-border-light);
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto;
}

.sc-card-footer-buttons {
    display: flex;
    gap: var(--sc-spacing-xs);
    align-items: center;
}

/* =====================
   Price Display
   ===================== */
.sc-price {
    font-weight: 600;
    color: var(--sc-text-primary);
}

.sc-price-large {
    font-size: 1.5rem;
}

.sc-price-medium {
    font-size: 1.125rem;
}

.sc-price-small {
    font-size: 0.875rem;
}

.sc-price-muted {
    color: var(--sc-text-muted);
    font-weight: 400;
}

.sc-price-included {
    color: var(--sc-success-color);
    font-weight: 600;
}

.sc-price-strikethrough {
    text-decoration: line-through;
    color: var(--sc-text-muted);
    font-weight: 400;
}

.sc-savings {
    color: var(--sc-success-color);
    font-weight: 500;
}

/* =====================
   Badges
   ===================== */
.sc-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--sc-spacing-xs);
    padding: 0.125rem 0.5rem;
    border-radius: var(--sc-radius-full);
    font-size: 0.75rem;
    font-weight: 500;
}

.sc-badge-primary {
    background: var(--sc-primary-light);
    color: var(--sc-primary-dark);
}

.sc-badge-success {
    background: var(--sc-success-light);
    color: var(--sc-success-color);
}

.sc-badge-warning {
    background: var(--sc-warning-light);
    color: var(--sc-warning-color);
}

.sc-badge-included {
    background: var(--sc-success-light);
    color: var(--sc-success-color);
}

.sc-badge-showroom {
    background: var(--sc-primary-light);
    color: var(--sc-primary-color);
}

.sc-badge-custom {
    background: var(--sc-warning-light);
    color: var(--sc-warning-color);
}

/* =====================
   Button Helpers (layout/positioning only — base styles use Bootstrap)
   ===================== */
.sc-btn-icon {
    width: 36px;
    height: 36px;
    padding: 0;
    border-radius: var(--sc-radius-md);
}

/* =====================
   Form Controls
   ===================== */
.sc-input {
    width: 100%;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--sc-border-color);
    border-radius: var(--sc-radius-md);
    font-size: 0.875rem;
    color: var(--sc-text-primary);
    transition: border-color var(--sc-transition-fast);
}

.sc-input:focus {
    outline: none;
    border-color: var(--sc-primary-color);
    box-shadow: 0 0 0 2px var(--sc-primary-light);
}

.sc-search-input {
    padding-left: 2.5rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%239ca3af'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z'%3E%3C/path%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: 0.75rem center;
    background-size: 1rem;
}

.sc-select {
    appearance: none;
    padding-right: 2rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%236b7280'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.5rem center;
    background-size: 1rem;
}

.sc-quantity-control {
    display: inline-flex;
    align-items: center;
    overflow: hidden;
}

.sc-quantity-btn {
    width: 32px;
    height: 32px;
    border: none;
    background: var(--sc-surface-light);
    color: var(--sc-text-primary);
    cursor: pointer;
    transition: background var(--sc-transition-fast);
}

.sc-quantity-btn:hover {
    background: var(--sc-surface-hover);
}

.sc-quantity-btn:disabled {
    color: var(--sc-text-light);
    cursor: not-allowed;
}

.sc-quantity-value {
    width: 48px;
    text-align: center;
    border: none;
    font-size: 0.875rem;
    font-weight: 500;
}

/* =====================
   Filter & Navigation
   ===================== */
.sc-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sc-spacing-sm);
    padding: var(--sc-spacing-md);
    background: var(--sc-surface-light);
    border-radius: var(--sc-radius-md);
    margin-bottom: var(--sc-spacing-md);
}

.sc-filter-group {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-sm);
}

.sc-filter-label {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--sc-text-secondary);
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-xs);
}

.sc-toggle-group {
    display: inline-flex;
    border: 1px solid var(--sc-border-color);
    border-radius: var(--sc-radius-md);
    overflow: hidden;
}

.sc-toggle-btn {
    padding: 0.375rem 0.75rem;
    border: none;
    background: var(--sc-surface-color);
    color: var(--sc-text-secondary);
    font-size: 0.875rem;
    cursor: pointer;
    transition: all var(--sc-transition-fast);
}

.sc-toggle-btn:not(:last-child) {
    border-right: 1px solid var(--sc-border-color);
}

.sc-toggle-btn:hover {
    background: var(--sc-surface-hover);
}

.sc-toggle-btn.active {
    background: var(--sc-primary-color);
    color: white;
}

.sc-category-nav {
    display: flex;
    flex-direction: column;
    gap: var(--sc-spacing-xs);
}

.sc-category-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0.75rem;
    border-radius: var(--sc-radius-md);
    color: var(--sc-text-secondary);
    font-size: 0.875rem;
    cursor: pointer;
    transition: all var(--sc-transition-fast);
}

.sc-category-item:hover {
    background: var(--sc-surface-hover);
    color: var(--sc-text-primary);
}

.sc-category-item.active {
    background: var(--sc-primary-light);
    color: var(--sc-primary-color);
    font-weight: 500;
}

.sc-category-count {
    font-size: 0.75rem;
    color: var(--sc-text-muted);
}

.sc-breadcrumb {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-sm);
    font-size: 0.875rem;
    color: var(--sc-text-muted);
}

.sc-breadcrumb-link {
    color: var(--sc-primary-color);
    text-decoration: none;
    cursor: pointer;
}

.sc-breadcrumb-link:hover {
    text-decoration: underline;
}

.sc-breadcrumb-separator {
    color: var(--sc-text-light);
}

/* =====================
   Summary & Totals
   ===================== */
.sc-summary {
    background: var(--sc-surface-color);
    border: 1px solid var(--sc-border-color);
    border-radius: var(--sc-radius-md);
    overflow: hidden;
}

.sc-summary-header {
    padding: var(--sc-spacing-md);
    background: var(--sc-surface-light);
    border-bottom: 1px solid var(--sc-border-color);
    font-weight: 600;
}

.sc-summary-section {
    border-bottom: 1px solid var(--sc-border-light);
}

.sc-summary-section:last-child {
    border-bottom: none;
}

.sc-summary-section-header {
    padding: var(--sc-spacing-md);
    font-weight: 500;
    color: var(--sc-text-secondary);
    background: var(--sc-surface-light);
}

.sc-summary-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--sc-spacing-md);
    border-bottom: 1px solid var(--sc-border-light);
}

.sc-summary-item:last-child {
    border-bottom: none;
}

.sc-summary-item-name {
    flex: 1;
    color: var(--sc-text-primary);
}

.sc-summary-item-qty {
    width: 60px;
    text-align: center;
    color: var(--sc-text-muted);
    font-size: 0.875rem;
}

.sc-summary-item-price {
    width: 100px;
    text-align: right;
    font-weight: 500;
}

.sc-totals {
    padding: var(--sc-spacing-md);
    background: var(--sc-surface-light);
}

.sc-total-row {
    display: flex;
    justify-content: space-between;
    padding: var(--sc-spacing-xs) 0;
    font-size: 0.875rem;
}

.sc-total-row.sc-total-subtotal {
    border-top: 1px solid var(--sc-border-color);
    padding-top: var(--sc-spacing-sm);
    margin-top: var(--sc-spacing-sm);
}

.sc-total-row.sc-total-grand {
    font-size: 1.125rem;
    font-weight: 600;
    border-top: 2px solid var(--sc-border-color);
    padding-top: var(--sc-spacing-sm);
    margin-top: var(--sc-spacing-sm);
}

.sc-balance-due {
    color: var(--sc-danger-color);
}

.sc-balance-paid {
    color: var(--sc-success-color);
}

/* =====================
   Modal & Overlay
   ===================== */
.sc-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1100000;
    padding: var(--sc-spacing-md);
}

.sc-modal {
    background: var(--sc-surface-color);
    border-radius: var(--sc-radius-lg);
    max-width: 800px;
    max-height: 90vh;
    width: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.sc-modal-lg {
    max-width: 1100px;
}

.sc-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--sc-spacing-md) var(--sc-spacing-lg);
    border-bottom: 1px solid var(--sc-border-color);
}

.sc-modal-title {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 600;
}

.sc-modal-close {
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    color: var(--sc-text-muted);
    border-radius: var(--sc-radius-md);
    cursor: pointer;
    font-size: 1.25rem;
}

.sc-modal-close:hover {
    background: var(--sc-surface-hover);
    color: var(--sc-text-primary);
}

.sc-modal-body {
    flex: 1;
    overflow-y: auto;
    padding: var(--sc-spacing-lg);
}

.sc-modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: var(--sc-spacing-sm);
    padding: var(--sc-spacing-md) var(--sc-spacing-lg);
    border-top: 1px solid var(--sc-border-color);
    background: var(--sc-surface-light);
}

/* =====================
   Loading & Empty States
   ===================== */
.sc-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--sc-spacing-xl);
    color: var(--sc-text-muted);
}

.sc-spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--sc-border-color);
    border-top-color: var(--sc-primary-color);
    border-radius: 50%;
    animation: sc-spin 1s linear infinite;
}

@keyframes sc-spin {
    to {
        transform: rotate(360deg);
    }
}

.sc-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--sc-spacing-xl);
    text-align: center;
    color: var(--sc-text-muted);
}

.sc-empty-icon {
    font-size: 3rem;
    margin-bottom: var(--sc-spacing-md);
    opacity: 0.5;
}

.sc-empty-title {
    font-size: 1.125rem;
    font-weight: 500;
    color: var(--sc-text-secondary);
    margin-bottom: var(--sc-spacing-sm);
}

.sc-empty-message {
    font-size: 0.875rem;
}

/* =====================
   Skeleton Loading
   ===================== */
.sc-skeleton {
    background: linear-gradient(90deg, var(--sc-surface-light) 25%, var(--sc-surface-hover) 50%, var(--sc-surface-light) 75%);
    background-size: 200% 100%;
    animation: sc-shimmer 1.5s infinite;
    border-radius: var(--sc-radius-md);
}

@keyframes sc-shimmer {
    0% {
        background-position: 200% 0;
    }
    100% {
        background-position: -200% 0;
    }
}

.sc-skeleton-image {
    width: 100%;
    aspect-ratio: 4/3;
}

.sc-skeleton-text {
    height: 1rem;
    margin-bottom: var(--sc-spacing-sm);
}

.sc-skeleton-text-sm {
    height: 0.75rem;
    width: 60%;
}

/* =====================
   Package Components
   ===================== */
.sc-package-grid-container {
    display: flex;
    flex-direction: column;
    gap: var(--sc-spacing-md);
}

.sc-card-image-container {
    position: relative;
}

.sc-card-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--sc-surface-light);
    color: var(--sc-text-muted);
    font-size: 3rem;
}

.sc-selected-indicator {
    position: absolute;
    top: var(--sc-spacing-sm);
    right: var(--sc-spacing-sm);
    width: 32px;
    height: 32px;
    background: var(--sc-primary-color);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    box-shadow: var(--sc-shadow-md);
}

.sc-badge-disposition {
    position: absolute;
    bottom: var(--sc-spacing-sm);
    left: var(--sc-spacing-sm);
}

.sc-badge-burial {
    background: #dbeafe;
    color: #1e40af;
}

.sc-badge-cremation {
    background: #fef3c7;
    color: #b45309;
}

.sc-badge-both {
    background: #e0e7ff;
    color: #4338ca;
}

.sc-package-pricing {
    margin-top: var(--sc-spacing-sm);
}

.sc-savings-info {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sc-spacing-sm);
    margin-top: var(--sc-spacing-xs);
    font-size: 0.875rem;
}

/* Package Detail Modal */
.sc-package-detail-modal {
    max-width: 900px;
}

.sc-package-detail-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--sc-spacing-lg);
}

.sc-package-detail-image {
    border-radius: var(--sc-radius-md);
    overflow: hidden;
}

.sc-package-detail-image img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.sc-package-detail-info {
    display: flex;
    flex-direction: column;
    gap: var(--sc-spacing-md);
}

.sc-package-description {
    color: var(--sc-text-secondary);
    line-height: 1.6;
}

.sc-package-price-section {
    padding: var(--sc-spacing-md);
    background: var(--sc-surface-light);
    border-radius: var(--sc-radius-md);
}

.sc-package-contents {
    margin-top: var(--sc-spacing-lg);
    padding-top: var(--sc-spacing-lg);
    border-top: 1px solid var(--sc-border-color);
}

.sc-package-contents h3 {
    margin: 0 0 var(--sc-spacing-md) 0;
    font-size: 1.125rem;
    font-weight: 600;
}

.sc-contents-section {
    margin-bottom: var(--sc-spacing-md);
}

.sc-contents-section h4 {
    margin: 0 0 var(--sc-spacing-sm) 0;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--sc-text-secondary);
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-sm);
}

.sc-contents-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.sc-contents-list li {
    display: flex;
    align-items: center;
    padding: var(--sc-spacing-sm) 0;
    border-bottom: 1px solid var(--sc-border-light);
}

.sc-contents-list li:last-child {
    border-bottom: none;
}

.sc-item-name {
    flex: 1;
}

.sc-item-qty {
    color: var(--sc-text-muted);
    font-size: 0.875rem;
    margin-left: var(--sc-spacing-sm);
}

.sc-item-value {
    font-weight: 500;
    margin-left: var(--sc-spacing-md);
}

.sc-item-thumbnail {
    width: 40px;
    height: 40px;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid var(--sc-border-light);
    cursor: pointer;
    flex-shrink: 0;
    transition: opacity 0.15s ease;
}

.sc-item-thumbnail:hover {
    opacity: 0.8;
}

.sc-contents-total {
    display: flex;
    justify-content: space-between;
    padding-top: var(--sc-spacing-md);
    border-top: 2px solid var(--sc-border-color);
    font-weight: 600;
}

@media (max-width: 768px) {
    .sc-package-detail-content {
        grid-template-columns: 1fr;
    }
}

/* =====================
   Package List Layout
   ===================== */
.sc-list-container {
    display: flex;
    flex-direction: column;
    gap: var(--sc-spacing-sm);
}

.sc-list-item {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-md);
    padding: var(--sc-spacing-md);
    border: 1px solid var(--sc-border-color);
    border-radius: var(--sc-radius-md);
    background: var(--sc-surface-color);
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.sc-list-item:hover {
    border-color: var(--sc-primary-border);
    box-shadow: var(--sc-shadow-sm);
}

.sc-list-item-selected {
    border-color: var(--sc-primary-color);
    box-shadow: 0 0 0 2px var(--sc-primary-light);
}

.sc-list-item-thumbnail {
    width: 80px;
    height: 60px;
    object-fit: cover;
    border-radius: var(--sc-radius-sm);
    flex-shrink: 0;
}

.sc-list-item-info {
    flex: 1;
    min-width: 0;
}

.sc-list-item-name {
    font-weight: 600;
    margin-bottom: 2px;
    color: var(--sc-text-primary);
}

.sc-list-item-description {
    font-size: 0.875rem;
    color: var(--sc-text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-list-item-price {
    font-weight: 700;
    color: var(--sc-primary-color);
    white-space: nowrap;
}

.sc-list-item-actions {
    display: flex;
    gap: var(--sc-spacing-sm);
    flex-shrink: 0;
}

/* =====================
   Package GBB Layout
   ===================== */
.sc-gbb-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--sc-spacing-lg);
}

.sc-gbb-tier {
    border: 1px solid var(--sc-border-color);
    border-radius: var(--sc-radius-lg);
    padding: var(--sc-spacing-md);
    background: var(--sc-surface-color);
    display: flex;
    flex-direction: column;
    gap: var(--sc-spacing-md);
}

.sc-gbb-tier-best {
    border-color: var(--sc-primary-color);
    box-shadow: var(--sc-shadow-md);
}

.sc-gbb-tier-header {
    text-align: center;
    padding-bottom: var(--sc-spacing-sm);
    border-bottom: 1px solid var(--sc-border-color);
}

.sc-gbb-tier-label {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--sc-text-primary);
    margin-bottom: var(--sc-spacing-xs);
}

.sc-gbb-tier-body {
    display: flex;
    flex-direction: column;
    gap: var(--sc-spacing-sm);
    flex: 1;
}

.sc-gbb-tier .sc-card {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    cursor: default;
}

.sc-gbb-tier .sc-card-body {
    flex: 1;
}

.sc-gbb-tier .sc-card-selected {
    border-color: var(--sc-success-color);
    background: var(--sc-success-light);
}

.sc-gbb-selected-indicator {
    position: absolute;
    top: var(--sc-spacing-sm);
    right: var(--sc-spacing-sm);
    font-size: 1.5rem;
    color: var(--sc-success-color);
    z-index: 1;
}

.sc-gbb-details {
    max-height: 200px;
    overflow-y: auto;
    border-top: 1px solid var(--sc-border-color);
    margin-top: var(--sc-spacing-sm);
    padding-top: var(--sc-spacing-sm);
}

.sc-gbb-details-section h4 {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--sc-text-secondary);
    margin: 0 0 var(--sc-spacing-xs) 0;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.sc-gbb-details-section + .sc-gbb-details-section {
    margin-top: var(--sc-spacing-sm);
}

.sc-gbb-details-section ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.sc-gbb-details-section li {
    font-size: 0.85rem;
    color: var(--sc-text-primary);
    padding: 2px 0;
}

.sc-gbb-tier .sc-card-footer {
    justify-content: center;
    gap: var(--sc-spacing-sm);
}

.sc-gbb-tier .sc-card-footer .btn {
    min-width: 100px;
}

.sc-btn-success {
    background: var(--sc-success-color);
    color: white;
    border-color: var(--sc-success-color);
}

.sc-btn-success:hover {
    background: #0d9668;
    border-color: #0d9668;
}

.sc-gbb-overflow {
    margin-top: var(--sc-spacing-lg);
}

@media (max-width: 768px) {
    .sc-gbb-container {
        grid-template-columns: 1fr;
    }
}

/* =====================
   Product Components
   ===================== */
.sc-product-catalog {
    display: flex;
    flex-direction: column;
    gap: var(--sc-spacing-md);
}

.sc-catalog-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sc-spacing-md);
    align-items: center;
    justify-content: space-between;
}

.sc-catalog-layout {
    display: grid;
    grid-template-columns: 250px 1fr;
    gap: var(--sc-spacing-lg);
}

.sc-catalog-layout--full-width {
    grid-template-columns: 1fr;
}

.sc-catalog-sidebar {
    position: sticky;
    top: var(--sc-spacing-md);
    max-height: calc(100vh - 2 * var(--sc-spacing-md));
    overflow-y: auto;
    padding-bottom: 80px;
    padding-right: var(--sc-spacing-sm);
}

.sc-catalog-main {
    min-width: 0;
}

.sc-catalog-breadcrumb {
    margin-bottom: var(--sc-spacing-md);
}

/* Product Card */
.sc-product-card {
    height: 450px;
}

.sc-product-card .sc-card-body {
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

.sc-product-card .sc-product-badge {
    position: absolute;
    top: var(--sc-spacing-sm);
    left: var(--sc-spacing-sm);
}

/* Hover overlay with Details + Add buttons */
.sc-card-hover-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--sc-spacing-sm);
    opacity: 0;
    transition: opacity var(--sc-transition-normal);
    pointer-events: none;
}

.sc-product-card:hover .sc-card-hover-overlay {
    opacity: 1;
    pointer-events: auto;
}

.sc-btn-overlay {
    transform: translateY(10px);
    transition: transform var(--sc-transition-normal);
}

.sc-product-card:hover .sc-btn-overlay {
    transform: translateY(0);
}

.sc-category-badge {
    margin-bottom: var(--sc-spacing-xs);
    font-size: 0.625rem;
}

.sc-stock-status {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-xs);
    font-size: 0.75rem;
    margin-top: var(--sc-spacing-xs);
}

.sc-in-stock {
    color: var(--sc-success-color);
}

.sc-out-of-stock {
    color: var(--sc-warning-color);
}

/* Product Search */
.sc-product-search {
    display: flex;
    gap: var(--sc-spacing-sm);
    flex: 1;
    max-width: 500px;
}

.sc-search-wrapper {
    position: relative;
    flex: 1;
}

.sc-search-clear {
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    border: none;
    background: transparent;
    color: var(--sc-text-muted);
    cursor: pointer;
    padding: 0.25rem;
}

.sc-search-clear:hover {
    color: var(--sc-text-primary);
}

.sc-sort-select {
    width: 160px;
}

.sc-search-results-info {
    font-size: 0.875rem;
    color: var(--sc-text-muted);
    margin-top: var(--sc-spacing-sm);
}

/* Recent Searches Dropdown */
.sc-recent-searches {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--sc-surface-color);
    border: 1px solid var(--sc-border-color);
    border-radius: var(--sc-radius-md);
    box-shadow: var(--sc-shadow-lg);
    z-index: 10;
    margin-top: var(--sc-spacing-xs);
    overflow: hidden;
}

.sc-recent-searches-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--sc-spacing-sm) var(--sc-spacing-md);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--sc-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 1px solid var(--sc-border-light);
}

.sc-recent-search-item {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-sm);
    width: 100%;
    padding: var(--sc-spacing-sm) var(--sc-spacing-md);
    border: none;
    background: transparent;
    color: var(--sc-text-primary);
    font-size: 0.875rem;
    cursor: pointer;
    text-align: left;
    transition: background var(--sc-transition-fast);
}

.sc-recent-search-item:hover {
    background: var(--sc-surface-hover);
}

.sc-recent-search-item i {
    color: var(--sc-text-light);
    font-size: 0.75rem;
}

/* Showroom Filter */
.sc-showroom-filter {
    display: flex;
    align-items: center;
}

.sc-showroom-toggle {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-sm);
    cursor: pointer;
    font-size: 0.875rem;
}

.sc-showroom-toggle input {
    display: none;
}

.sc-toggle-switch {
    width: 40px;
    height: 22px;
    background: var(--sc-border-color);
    border-radius: 11px;
    position: relative;
    transition: background var(--sc-transition-fast);
}

.sc-toggle-switch::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    width: 18px;
    height: 18px;
    background: white;
    border-radius: 50%;
    transition: transform var(--sc-transition-fast);
}

.sc-showroom-toggle input:checked + .sc-toggle-switch {
    background: var(--sc-primary-color);
}

.sc-showroom-toggle input:checked + .sc-toggle-switch::after {
    transform: translateX(18px);
}

.sc-showroom-count {
    color: var(--sc-text-muted);
}

.sc-showroom-dropdown {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-sm);
}

/* Category Tree */
.sc-category-tree {
    display: flex;
    flex-direction: column;
}

.sc-tree-item {
    display: flex;
    flex-direction: column;
}

.sc-tree-row {
    display: flex;
    align-items: center;
    padding: var(--sc-spacing-xs) 0;
    padding-left: calc(var(--tree-level, 0) * 1rem);
}

.sc-tree-row.active {
    background: var(--sc-primary-light);
    border-radius: var(--sc-radius-md);
}

.sc-tree-toggle {
    width: 24px;
    height: 24px;
    border: none;
    background: transparent;
    color: var(--sc-text-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.sc-tree-toggle:hover {
    color: var(--sc-text-primary);
}

.sc-tree-toggle-placeholder {
    width: 24px;
    flex-shrink: 0;
}

.sc-tree-label {
    flex: 1;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--sc-spacing-xs) var(--sc-spacing-sm);
    border: none;
    background: transparent;
    cursor: pointer;
    text-align: left;
    font-size: 0.875rem;
    border-radius: var(--sc-radius-md);
}

.sc-tree-label:hover {
    background: var(--sc-surface-hover);
}

.sc-tree-children {
    display: flex;
    flex-direction: column;
}

/* Product Detail Modal */
.sc-product-detail-modal {
    max-width: 1000px;
}

.sc-product-detail-inline {
    max-width: 1000px;
    margin: 0 auto;
}

.sc-product-detail-inline .sc-modal-body {
    padding: 0;
}

.sc-single-product-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    margin-bottom: var(--sc-spacing-md);
}

.sc-single-product-nav .sc-page-info {
    flex: 1;
    text-align: center;
}

.sc-product-detail-actions {
    display: flex;
    justify-content: center;
    gap: var(--sc-spacing-sm);
    padding: var(--sc-spacing-lg) 0;
}

.sc-product-detail-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--sc-spacing-xl);
}

/* Product Gallery */
.sc-product-gallery {
    display: flex;
    flex-direction: column;
    gap: var(--sc-spacing-md);
}

.sc-gallery-main {
    aspect-ratio: 1;
    border-radius: var(--sc-radius-md);
    overflow: hidden;
    background: var(--sc-surface-light);
    cursor: zoom-in;
}

.sc-gallery-main img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.sc-gallery-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: var(--sc-text-muted);
    font-size: 4rem;
}

.sc-gallery-thumbnails {
    display: flex;
    gap: var(--sc-spacing-sm);
    overflow-x: auto;
}

.sc-thumbnail {
    width: 64px;
    height: 64px;
    border: 2px solid transparent;
    border-radius: var(--sc-radius-sm);
    overflow: hidden;
    cursor: pointer;
    flex-shrink: 0;
    padding: 0;
    background: transparent;
}

.sc-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sc-thumbnail.active,
.sc-thumbnail:hover {
    border-color: var(--sc-primary-color);
}

/* Product Info */
.sc-product-info {
    display: flex;
    flex-direction: column;
    gap: var(--sc-spacing-md);
}

.sc-product-sku {
    font-size: 0.875rem;
    color: var(--sc-text-muted);
}

.sc-product-description {
    color: var(--sc-text-secondary);
    line-height: 1.6;
}

.sc-product-specs h4 {
    margin: 0 0 var(--sc-spacing-sm) 0;
    font-size: 0.875rem;
    font-weight: 600;
}

.sc-specs-table {
    width: 100%;
    border-collapse: collapse;
}

.sc-specs-table th,
.sc-specs-table td {
    padding: var(--sc-spacing-sm);
    border-bottom: 1px solid var(--sc-border-light);
    text-align: left;
    font-size: 0.875rem;
}

.sc-specs-table th {
    color: var(--sc-text-muted);
    font-weight: 500;
    width: 40%;
}

.sc-product-purchase {
    padding: var(--sc-spacing-md);
    background: var(--sc-surface-light);
    border-radius: var(--sc-radius-md);
    display: flex;
    flex-direction: column;
    gap: var(--sc-spacing-sm);
}

.sc-product-price-section {
    margin-bottom: var(--sc-spacing-sm);
}

.sc-showroom-info {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-sm);
    color: var(--sc-primary-color);
    font-size: 0.875rem;
}

.sc-quantity-section {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-md);
    margin-top: var(--sc-spacing-sm);
}

.sc-quantity-section label {
    font-size: 0.875rem;
    font-weight: 500;
}

/* Lightbox */
.sc-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.9);
    z-index: 1200000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sc-lightbox-close {
    position: absolute;
    top: var(--sc-spacing-md);
    right: var(--sc-spacing-md);
    width: 48px;
    height: 48px;
    border: none;
    background: rgba(255, 255, 255, 0.1);
    color: white;
    border-radius: 50%;
    font-size: 1.5rem;
    cursor: pointer;
}

.sc-lightbox-close:hover {
    background: rgba(255, 255, 255, 0.2);
}

.sc-lightbox-content {
    max-width: 90vw;
    max-height: 90vh;
}

.sc-lightbox-content img {
    max-width: 100%;
    max-height: 90vh;
    object-fit: contain;
}

.sc-lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    border: none;
    background: rgba(255, 255, 255, 0.1);
    color: white;
    border-radius: 50%;
    font-size: 1.25rem;
    cursor: pointer;
}

.sc-lightbox-nav:hover {
    background: rgba(255, 255, 255, 0.2);
}

.sc-lightbox-prev {
    left: var(--sc-spacing-md);
}

.sc-lightbox-next {
    right: var(--sc-spacing-md);
}

/* Related Products */
.sc-related-products {
    margin-top: var(--sc-spacing-lg);
    padding-top: var(--sc-spacing-lg);
    border-top: 1px solid var(--sc-border-color);
}

.sc-related-products h4 {
    margin: 0 0 var(--sc-spacing-md) 0;
    font-size: 1rem;
    font-weight: 600;
}

.sc-related-products-row {
    display: flex;
    gap: var(--sc-spacing-md);
    overflow-x: auto;
    padding-bottom: var(--sc-spacing-sm);
}

.sc-related-product-card {
    flex: 0 0 140px;
    cursor: pointer;
    border-radius: var(--sc-radius-md);
    overflow: hidden;
    border: 1px solid var(--sc-border-color);
    transition: border-color var(--sc-transition-fast), box-shadow var(--sc-transition-fast);
}

.sc-related-product-card:hover {
    border-color: var(--sc-primary-border);
    box-shadow: var(--sc-shadow-sm);
}

.sc-related-product-image {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    background: var(--sc-surface-light);
}

.sc-related-product-name {
    padding: var(--sc-spacing-xs) var(--sc-spacing-sm);
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--sc-text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-related-product-price {
    padding: 0 var(--sc-spacing-sm) var(--sc-spacing-xs);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--sc-text-secondary);
}

/* Pagination */
.sc-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--sc-spacing-md);
    margin-top: var(--sc-spacing-lg);
    padding-top: var(--sc-spacing-lg);
    border-top: 1px solid var(--sc-border-color);
}

.sc-page-info {
    font-size: 0.875rem;
    color: var(--sc-text-muted);
}

@media (max-width: 1024px) {
    .sc-catalog-layout {
        grid-template-columns: 200px 1fr;
    }
}

@media (max-width: 768px) {
    .sc-catalog-layout {
        grid-template-columns: 1fr;
    }

    .sc-catalog-sidebar {
        position: static;
        order: -1;
    }

    .sc-product-detail-layout {
        grid-template-columns: 1fr;
    }

    .sc-catalog-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .sc-product-search {
        max-width: none;
    }
}

/* =====================
   Responsive
   ===================== */
@media (max-width: 1024px) {
    .sc-grid-4,
    .sc-grid-5 {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .sc-grid-3,
    .sc-grid-4,
    .sc-grid-5 {
        grid-template-columns: repeat(2, 1fr);
    }

    .sc-filter-bar {
        flex-direction: column;
    }

    .sc-modal {
        max-height: 100vh;
        border-radius: 0;
    }
}

@media (max-width: 480px) {
    .sc-grid-2,
    .sc-grid-3,
    .sc-grid-4,
    .sc-grid-5 {
        grid-template-columns: 1fr;
    }

    .sc-card-footer {
        flex-direction: column;
        gap: var(--sc-spacing-sm);
    }
}

/* =====================
   Service Components
   ===================== */
.sc-service-list {
    background: var(--sc-surface-color);
    border-radius: var(--sc-radius-md);
    border: 1px solid var(--sc-border-color);
}

.sc-service-list-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--sc-spacing-md);
    border-bottom: 1px solid var(--sc-border-color);
}

.sc-service-list-title {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--sc-text-primary);
}

.sc-service-filters {
    display: flex;
    gap: var(--sc-spacing-sm);
}

.sc-filter-select {
    min-width: 150px;
}

/* Accordion Styles */
.sc-accordion {
    border-radius: var(--sc-radius-md);
    overflow: clip;
}

.sc-accordion-item {
    border-bottom: 1px solid var(--sc-border-color);
}

.sc-accordion-item:last-child {
    border-bottom: none;
}

.sc-accordion-header {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-md);
    width: 100%;
    padding: var(--sc-spacing-md);
    background: var(--sc-surface-light);
    border: none;
    cursor: pointer;
    text-align: left;
    transition: background-color 0.2s;
}

.sc-accordion-header:hover {
    background: var(--sc-surface-color);
}

.sc-accordion-icon {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--sc-primary-color);
    color: white;
    border-radius: var(--sc-radius-sm);
    font-size: 0.875rem;
}

.sc-accordion-title {
    flex: 1;
    font-weight: 500;
    color: var(--sc-text-primary);
}

.sc-accordion-count {
    font-size: 0.875rem;
    color: var(--sc-text-muted);
}

.sc-accordion-chevron {
    color: var(--sc-text-muted);
    transition: transform 0.2s;
}

.sc-accordion-item.expanded .sc-accordion-chevron {
    transform: rotate(90deg);
}

.sc-accordion-content {
    padding: var(--sc-spacing-xs) 0;
    background: var(--sc-surface-color);
}

.sc-selected-services {
    margin-bottom: var(--sc-spacing-xs);
}

/* Tab Styles */
.sc-tabs {
    border-radius: var(--sc-radius-md);
    overflow: hidden;
}

.sc-tab-list {
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--sc-border-color);
    overflow-x: auto;
    padding: 0 var(--sc-spacing-md);
}

.sc-tab {
    padding: var(--sc-spacing-md) var(--sc-spacing-lg);
    border: none;
    background: none;
    font-weight: 500;
    color: var(--sc-text-muted);
    cursor: pointer;
    white-space: nowrap;
    position: relative;
    transition: color 0.2s;
}

.sc-tab i {
    font-size: 1.15em;
    margin-right: var(--sc-spacing-sm);
}

.sc-tab:hover {
    color: var(--sc-text-primary);
}

.sc-tab.active {
    color: var(--sc-primary-color);
}

.sc-tab.active::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--sc-primary-color);
}

.sc-tab-content {
    padding: var(--sc-spacing-md);
}

/* Service Table */
.sc-service-table {
    width: 100%;
    border-collapse: collapse;
}

.sc-service-table thead th {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--sc-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: var(--sc-spacing-sm) var(--sc-spacing-md);
    border-bottom: 2px solid var(--sc-border-color);
    white-space: nowrap;
}

.sc-service-th-name {
    text-align: left;
}

.sc-service-th-qty {
    text-align: center;
    width: 110px;
}

.sc-service-th-price,
.sc-service-th-total {
    text-align: right;
    width: 100px;
}

.sc-service-th-action {
    width: 80px;
}

.sc-service-table tbody tr {
    border-bottom: 1px solid var(--sc-border-light);
}

.sc-service-table tbody tr:last-child {
    border-bottom: none;
}

.sc-service-table td {
    padding: 10px var(--sc-spacing-md);
    vertical-align: middle;
    height: 48px;
}

/* Service Item (table row) */
.sc-service-row.package-included {
    background: linear-gradient(135deg, rgba(76, 175, 80, 0.05), rgba(76, 175, 80, 0.02));
}

.sc-service-cell-name {
    text-align: left;
}

.sc-service-cell-qty {
    text-align: center;
    width: 110px;
}

.sc-service-cell-unit-price,
.sc-service-cell-total,
.sc-service-cell-price {
    text-align: right;
    width: 100px;
    white-space: nowrap;
}

.sc-service-cell-action {
    text-align: center;
    width: 80px;
    white-space: nowrap;
}

.sc-service-name {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-sm);
    font-weight: 500;
    font-size: 0.9rem;
    color: var(--sc-text-primary);
    flex-wrap: wrap;
}

.sc-service-description {
    font-size: 0.8rem;
    color: var(--sc-text-muted);
    margin-top: 2px;
}

/* Add Services table */
.sc-service-add-row:hover {
    background: var(--sc-surface-light);
}

.sc-quantity-control {
    display: flex;
    align-items: center;
    gap: 2px;
    width: 110px;
    justify-content: center;
}

.sc-quantity-control .sc-btn-sm {
    width: 28px;
    height: 28px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
}

.sc-quantity-input {
    width: 40px;
    height: 28px;
    text-align: center;
    padding: 0 2px;
    font-size: 0.85rem;
    border: 1px solid var(--sc-border-color);
    border-radius: var(--sc-radius-sm);
    -moz-appearance: textfield;
}

.sc-quantity-input::-webkit-inner-spin-button,
.sc-quantity-input::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.sc-quantity-display {
    font-size: 0.85rem;
    color: var(--sc-text-muted);
    white-space: nowrap;
}

.sc-price {
    font-weight: 600;
    color: var(--sc-text-primary);
}

.sc-price-included {
    color: var(--sc-success-color);
}

.sc-price-unit {
    font-size: 0.75rem;
    color: var(--sc-text-muted);
}

.sc-price-note {
    font-size: 0.75rem;
    color: var(--sc-text-muted);
}

.sc-price-original {
    font-size: 0.75rem;
    color: var(--sc-text-muted);
    text-decoration: line-through;
}

/* Service Badges */
.sc-badge-included {
    background: var(--sc-success-color);
    color: white;
}

.sc-badge-upgrade {
    background: var(--sc-info-color);
    color: white;
}

.sc-badge-custom {
    background: var(--sc-warning-color);
    color: var(--sc-text-primary);
}

.sc-badge-warning {
    background: var(--sc-warning-color);
    color: var(--sc-text-primary);
}

/* Section Titles */
.sc-section-title {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--sc-text-muted);
    margin: var(--sc-spacing-sm) var(--sc-spacing-md) var(--sc-spacing-xs);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.sc-section-title:first-child {
    margin-top: 0;
}

/* Available Services List */
.sc-available-services {
    margin-top: var(--sc-spacing-xs);
}

/* (Add service styles moved to .sc-service-table-add and .sc-service-add-row above) */

/* Category Dropdown */
.sc-category-dropdown {
    margin-bottom: var(--sc-spacing-md);
}

.sc-dropdown-label {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-sm);
    font-weight: 500;
    color: var(--sc-text-primary);
    margin-bottom: var(--sc-spacing-sm);
}

.sc-dropdown-label i {
    color: var(--sc-primary-color);
}

.sc-required {
    color: var(--sc-danger-color);
}

.sc-selected-service-detail {
    margin-top: var(--sc-spacing-sm);
    padding: var(--sc-spacing-md);
    background: var(--sc-surface-light);
    border-radius: var(--sc-radius-sm);
    border-left: 3px solid var(--sc-primary-color);
}

.sc-selected-service-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sc-selected-name {
    font-weight: 500;
    color: var(--sc-text-primary);
}

.sc-selected-price {
    font-weight: 600;
    color: var(--sc-primary-color);
}

.sc-selected-description {
    font-size: 0.875rem;
    color: var(--sc-text-muted);
    margin-top: var(--sc-spacing-xs);
}

.sc-selected-quantity {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-md);
    margin-top: var(--sc-spacing-sm);
    padding-top: var(--sc-spacing-sm);
    border-top: 1px solid var(--sc-border-light);
}

.sc-selected-quantity label {
    font-size: 0.875rem;
    color: var(--sc-text-muted);
}

.sc-line-total {
    font-weight: 500;
    color: var(--sc-text-primary);
}

/* Ad-Hoc Service Entry */
.sc-adhoc-section {
    padding: var(--sc-spacing-md);
    border-top: 1px solid var(--sc-border-color);
}

.sc-btn-add-adhoc {
    white-space: nowrap;
}

.sc-adhoc-modal {
    max-width: 550px;
}

.sc-adhoc-modal .sc-modal-body {
    padding: var(--sc-spacing-lg) var(--sc-spacing-xl);
}

.sc-form-group {
    margin-bottom: var(--sc-spacing-md);
}

.sc-form-group .sc-label {
    display: block;
    margin-bottom: var(--sc-spacing-xs);
    font-weight: 500;
    font-size: 0.85rem;
}

.sc-form-group .sc-required {
    color: var(--sc-danger-color, #ef4444);
}

.sc-form-group .sc-error-text {
    display: block;
    margin-top: var(--sc-spacing-xs);
    font-size: 0.78rem;
    color: var(--sc-danger-color, #ef4444);
}

.sc-form-group .sc-warning-text {
    display: block;
    margin-top: var(--sc-spacing-xs);
    font-size: 0.78rem;
    color: var(--sc-warning-color, #f59e0b);
}

.sc-form-row {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--sc-spacing-lg);
    margin-bottom: var(--sc-spacing-md);
}

.sc-form-row .sc-form-group {
    margin-bottom: 0;
}

.sc-adhoc-summary {
    margin-top: var(--sc-spacing-lg);
    padding: var(--sc-spacing-md);
    background: var(--sc-surface-light, #f8f9fa);
    border-radius: var(--sc-radius-md);
    border: 1px solid var(--sc-border-color);
}

.sc-summary-row {
    display: flex;
    justify-content: space-between;
    padding: var(--sc-spacing-xs) 0;
    font-size: 0.85rem;
}

.sc-summary-total {
    font-weight: 600;
    border-top: 1px solid var(--sc-border-color);
    margin-top: var(--sc-spacing-xs);
    padding-top: var(--sc-spacing-sm);
}

.sc-input-group {
    display: flex;
    align-items: center;
}

.sc-input-prefix {
    padding: var(--sc-spacing-sm) var(--sc-spacing-sm);
    background: var(--sc-surface-light);
    border: 1px solid var(--sc-border-color);
    border-right: none;
    border-radius: var(--sc-radius-sm) 0 0 var(--sc-radius-sm);
    color: var(--sc-text-muted);
}

.sc-input-group .sc-input {
    border-radius: 0 var(--sc-radius-sm) var(--sc-radius-sm) 0;
}

.sc-textarea {
    resize: vertical;
    min-height: 80px;
}

.sc-error-text {
    font-size: 0.75rem;
    color: var(--sc-danger-color);
    margin-top: var(--sc-spacing-xs);
}

.sc-warning-text {
    font-size: 0.75rem;
    color: var(--sc-warning-color);
    margin-top: var(--sc-spacing-xs);
}

.sc-adhoc-summary {
    margin-top: var(--sc-spacing-md);
    padding: var(--sc-spacing-md);
    background: var(--sc-surface-light);
    border-radius: var(--sc-radius-sm);
}

.sc-summary-row {
    display: flex;
    justify-content: space-between;
    padding: var(--sc-spacing-xs) 0;
    font-size: 0.875rem;
}

.sc-summary-row.sc-summary-total {
    font-weight: 600;
    font-size: 1rem;
    border-top: 1px solid var(--sc-border-color);
    padding-top: var(--sc-spacing-sm);
    margin-top: var(--sc-spacing-sm);
}

/* Service Totals */
.sc-service-totals {
    padding: var(--sc-spacing-md);
    border-top: 1px solid var(--sc-border-color);
    background: var(--sc-surface-light);
}

.sc-totals-row {
    display: flex;
    justify-content: space-between;
    padding: var(--sc-spacing-xs) 0;
}

.sc-totals-savings {
    color: var(--sc-success-color);
}

/* Alert Styles */
.sc-alert {
    display: flex;
    align-items: flex-start;
    gap: var(--sc-spacing-sm);
    padding: var(--sc-spacing-md);
    border-radius: var(--sc-radius-sm);
    margin-bottom: var(--sc-spacing-md);
}

.sc-alert i {
    margin-top: 2px;
}

.sc-alert-info {
    background: rgba(33, 150, 243, 0.1);
    color: var(--sc-info-color);
    border: 1px solid rgba(33, 150, 243, 0.3);
}

.sc-alert-warning {
    background: rgba(255, 193, 7, 0.1);
    color: var(--sc-warning-color);
    border: 1px solid rgba(255, 193, 7, 0.3);
}

.sc-alert-danger {
    background: rgba(244, 67, 54, 0.1);
    color: var(--sc-danger-color);
    border: 1px solid rgba(244, 67, 54, 0.3);
}

.sc-alert-success {
    background: rgba(76, 175, 80, 0.1);
    color: var(--sc-success-color);
    border: 1px solid rgba(76, 175, 80, 0.3);
}

/* Lost Services List (package change warning) */
.sc-lost-services-list {
    list-style: none;
    padding: 0;
    margin: var(--sc-spacing-sm) 0 0;
}

.sc-lost-services-list li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--sc-spacing-xs) var(--sc-spacing-sm);
    border-bottom: 1px solid var(--sc-border-light);
}

.sc-lost-services-list li:last-child {
    border-bottom: none;
}

.sc-lost-service-name {
    font-weight: 500;
}

.sc-lost-service-price {
    color: var(--sc-text-muted);
}

/* Responsive Service Styles */
@media (max-width: 768px) {
    .sc-service-item {
        flex-direction: column;
        align-items: flex-start;
    }

    .sc-service-controls {
        width: 100%;
        justify-content: space-between;
        margin-top: var(--sc-spacing-sm);
        padding-top: var(--sc-spacing-sm);
        border-top: 1px solid var(--sc-border-light);
    }

    .sc-tab-list {
        padding: 0;
    }

    .sc-tab {
        padding: var(--sc-spacing-sm);
        font-size: 0.875rem;
    }

    .sc-form-row {
        grid-template-columns: 1fr;
    }

    .sc-selected-service-header {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--sc-spacing-xs);
    }

    .sc-selected-quantity {
        flex-wrap: wrap;
    }
}

/* =====================
   Summary Components
   ===================== */

/* Contract Summary */
.sc-contract-summary {
    background: var(--sc-surface-color);
    border-radius: var(--sc-radius-md);
    border: 1px solid var(--sc-border-color);
    overflow: hidden;
}

.sc-summary-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--sc-spacing-md);
    background: var(--sc-surface-light);
    border-bottom: 1px solid var(--sc-border-color);
}

.sc-summary-title {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--sc-text-primary);
}

/* Two-column layout: items left, totals+actions right */
.sc-summary-body {
    display: flex;
    flex-direction: row;
}

.sc-summary-items {
    flex: 1;
    min-width: 0;
    overflow-y: auto;
    padding: 0;
}

.sc-summary-sidebar {
    width: 320px;
    flex-shrink: 0;
    border-left: 1px solid var(--sc-border-color);
    display: flex;
    flex-direction: column;
    position: sticky;
    top: 0;
    align-self: flex-start;
}

.sc-summary-sidebar .sc-summary-totals {
    border-bottom: 1px solid var(--sc-border-color);
}

.sc-summary-sidebar .sc-summary-action-buttons {
    padding: var(--sc-spacing-md);
    display: flex;
    flex-direction: column;
    gap: var(--sc-spacing-sm);
}

.sc-summary-sidebar .sc-actions-primary {
    display: flex;
    flex-direction: column;
    gap: var(--sc-spacing-sm);
}

.sc-summary-sidebar .sc-actions-secondary {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sc-spacing-xs);
}

.sc-summary-sidebar .sc-actions-overflow {
    margin-top: var(--sc-spacing-xs);
}

/* Mobile: stack vertically */
@media (max-width: 768px) {
    .sc-summary-body {
        flex-direction: column;
    }

    .sc-summary-sidebar {
        width: 100%;
        border-left: none;
        border-top: 1px solid var(--sc-border-color);
        position: static;
    }
}

.sc-summary-content {
    padding: 0;
}

.sc-summary-section {
    border-bottom: 1px solid var(--sc-border-color);
}

.sc-summary-section:last-child {
    border-bottom: none;
}

.sc-summary-section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--sc-spacing-sm) var(--sc-spacing-md);
    background: var(--sc-surface-light);
    font-weight: 500;
    color: var(--sc-text-secondary);
}

.sc-item-row {
    display: grid;
    grid-template-columns: 1fr 50px 90px 90px 90px 70px;
    gap: 8px;
    align-items: center;
    padding: 10px 16px;
}

.sc-item-table-header {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--sc-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 2px solid var(--sc-border-color);
    padding: 6px 16px;
}

.sc-item-table-header .sc-item-cell {
    text-align: right;
}

.sc-item-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.sc-item-name {
    font-weight: 500;
    color: var(--sc-text-primary, #212529);
}

.sc-item-notes {
    font-size: 0.875rem;
    color: var(--sc-text-secondary, #6c757d);
}

.sc-item-cell {
    text-align: right;
}

.sc-item-quantity {
    color: var(--sc-text-secondary, #6c757d);
    text-align: center;
}

.sc-item-unit-price {
    color: var(--sc-text-secondary, #6c757d);
    font-size: 0.875rem;
}

.sc-item-price {
    font-weight: 600;
}

.sc-item-tax {
    font-size: 0.875rem;
    color: var(--sc-text-secondary, #6c757d);
}

.sc-item-actions {
    display: flex;
    gap: 4px;
    justify-content: flex-end;
}

.sc-section-name {
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.sc-section-total {
    font-weight: 600;
    color: var(--sc-text-primary);
}

.sc-summary-toolbar {
    display: flex;
    justify-content: flex-end;
    gap: var(--sc-spacing-xs);
    padding: var(--sc-spacing-xs) var(--sc-spacing-md);
    border-bottom: 1px solid var(--sc-border-light);
}

.sc-summary-toolbar .btn-link {
    font-size: 0.8125rem;
    text-decoration: none;
    color: var(--sc-text-secondary);
}

.sc-summary-toolbar .btn-link:hover {
    color: var(--sc-text-primary);
}

.sc-section-badge {
    font-size: 0.8125rem;
    color: var(--sc-text-secondary);
    background: var(--sc-surface-light, #f0f1f2);
    padding: 2px 8px;
    border-radius: 12px;
}

/* Collapsible section overrides for summary context */
.sc-summary-items .sc-collapsible-section {
    border-radius: 0;
    border: none;
    border-bottom: 1px solid var(--sc-border-color);
    margin-bottom: 0;
}

.sc-summary-items .sc-collapsible-section:last-child {
    border-bottom: none;
}

.sc-summary-items .sc-collapsible-header {
    padding: var(--sc-spacing-sm) var(--sc-spacing-md);
}

.sc-summary-items .sc-collapsible-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Print: always expand collapsible sections */
@media print {
    .sc-collapsible-section.collapsed .sc-collapsible-content {
        max-height: none !important;
        opacity: 1 !important;
        padding: 16px !important;
    }

    .sc-collapsible-toggle,
    .sc-summary-toolbar {
        display: none !important;
    }
}

.sc-summary-item {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-md);
    padding: var(--sc-spacing-sm) var(--sc-spacing-md);
    border-bottom: 1px solid var(--sc-border-light);
}

.sc-summary-item:last-child {
    border-bottom: none;
}

.sc-summary-item.package-included {
    background: linear-gradient(135deg, rgba(76, 175, 80, 0.03), transparent);
}

.sc-item-info {
    flex: 1;
    min-width: 0;
}

.sc-item-name {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-sm);
    color: var(--sc-text-primary);
}

.sc-item-notes {
    font-size: 0.75rem;
    color: var(--sc-text-muted);
    margin-top: 2px;
}

.sc-item-quantity {
    width: 50px;
    text-align: center;
    font-size: 0.875rem;
    color: var(--sc-text-muted);
}

.sc-item-quantity-edit {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-xs);
}

.sc-quantity-value {
    min-width: 30px;
    text-align: center;
    font-weight: 500;
}

.sc-item-price {
    min-width: 80px;
    text-align: right;
    font-weight: 500;
}

.sc-item-price.included {
    color: var(--sc-success-color);
}

.sc-badge-sm {
    font-size: 0.625rem;
    padding: 2px 6px;
}

/* Summary Totals */
.sc-summary-totals {
    padding: var(--sc-spacing-md);
    background: var(--sc-surface-light);
}

.sc-tax-row {
    font-size: 0.875rem;
    color: var(--sc-text-muted);
}

.sc-total-grand {
    font-size: 1.125rem;
    font-weight: 600;
    padding-top: var(--sc-spacing-sm);
    margin-top: var(--sc-spacing-sm);
    border-top: 2px solid var(--sc-border-color);
}

.sc-payments-row {
    color: var(--sc-success-color);
}

.sc-balance-row {
    font-weight: 600;
    padding-top: var(--sc-spacing-sm);
    margin-top: var(--sc-spacing-sm);
    border-top: 1px solid var(--sc-border-color);
}

.sc-balance-row.due {
    color: var(--sc-danger-color);
}

.sc-balance-row.paid {
    color: var(--sc-success-color);
}

/* Running Total */
/* Running Total — inline display (just the amount + chevron) */
.sc-running-total {
    display: inline-block;
}

.sc-running-total.sticky {
    position: sticky;
    top: var(--sc-spacing-md);
}

.sc-running-total.fixed-bottom {
    position: sticky;
    bottom: 0;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.15);
    z-index: 1000;
    box-sizing: border-box;
    background: var(--sc-surface-color, #ffffff);
    padding: var(--sc-spacing-md);
    text-align: center;
    margin-left: calc(-1 * var(--sc-spacing-md, 1rem));
    margin-right: calc(-1 * var(--sc-spacing-md, 1rem));
    margin-bottom: calc(-1 * var(--sc-spacing-md, 1rem));
}

/* When a page-component wrapper contains a fixed-bottom RunningTotal,
   ensure it stays at the bottom of the grid layout */
.page-component:has(.sc-running-total.fixed-bottom) {
    order: 9999;
    width: 100%;
}

.sc-running-total.sidebar {
    position: sticky;
    top: var(--sc-spacing-md);
    height: fit-content;
}

.sc-running-total-value {
    font-weight: 600;
    font-size: 1.25em;
    color: var(--sc-text-primary);
    display: inline-flex;
    align-items: center;
    gap: 0.35em;
}

.sc-running-total-expandable {
    cursor: pointer;
}

.sc-expand-icon {
    color: var(--sc-text-secondary);
    font-size: 0.6em;
}

/* Font Size Variants */
.sc-running-total-sm .sc-running-total-value {
    font-size: 1rem;
}

.sc-running-total-lg .sc-running-total-value {
    font-size: 1.375rem;
}

.sc-running-total-xl .sc-running-total-value {
    font-size: 1.5rem;
}

/* Running Total — modal breakdown */
.sc-running-total-breakdown .sc-total-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: var(--sc-spacing-xs, 0.25rem) 0;
}

.sc-running-total-breakdown .sc-label {
    color: var(--sc-text-secondary, #6c757d);
    font-weight: 500;
}

.sc-running-total-breakdown .sc-value {
    color: var(--sc-text-primary, #212529);
}

.sc-running-total-breakdown .sc-grand-total {
    font-weight: 600;
    margin-bottom: var(--sc-spacing-xs, 0.25rem);
}

.sc-running-total-breakdown .sc-grand-total .sc-value {
    font-size: 1.25em;
}

.sc-running-total-breakdown .sc-grand-total .sc-label {
    font-weight: 700;
    color: var(--sc-text-primary, #212529);
}

.sc-running-total-breakdown .sc-savings {
    color: var(--sc-success-color, #198754);
}

.sc-running-total-breakdown .sc-payment {
    color: var(--sc-success-color, #198754);
}

.sc-running-total-breakdown .sc-balance-due {
    font-weight: 600;
    padding-top: var(--sc-spacing-sm, 0.5rem);
    margin-top: var(--sc-spacing-xs, 0.25rem);
    border-top: 1px solid var(--sc-border-color, #dee2e6);
}

.sc-running-total-breakdown .sc-balance-due.unpaid .sc-value {
    color: var(--sc-danger-color, #dc3545);
}

.sc-running-total-breakdown .sc-balance-due.paid .sc-label {
    color: var(--sc-success-color, #198754);
}

.sc-running-total-breakdown .sc-balance-due.paid .sc-value {
    color: var(--sc-success-color, #198754);
}

/* Right Alignment — inline */
.sc-running-total.sc-running-total-right {
    display: block;
    text-align: right;
}

/* Right Alignment — modal breakdown */
.sc-running-total-breakdown.sc-running-total-right .sc-total-row {
    flex-direction: row-reverse;
}

/* Payment Entry */
.sc-payment-entry {
    background: var(--sc-surface-color);
    border-radius: var(--sc-radius-md);
    border: 1px solid var(--sc-border-color);
    padding: var(--sc-spacing-md);
}

.sc-payment-list {
    margin-bottom: var(--sc-spacing-md);
}

.sc-payment-item {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-md);
    padding: var(--sc-spacing-sm) var(--sc-spacing-md);
    background: var(--sc-surface-light);
    border-radius: var(--sc-radius-sm);
    margin-bottom: var(--sc-spacing-sm);
}

.sc-payment-item.voided {
    opacity: 0.6;
    text-decoration: line-through;
}

.sc-payment-info {
    flex: 1;
}

.sc-payment-type {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-sm);
    font-weight: 500;
    color: var(--sc-text-primary);
}

.sc-payment-type i {
    color: var(--sc-primary-color);
}

.sc-payment-ref {
    font-size: 0.75rem;
    color: var(--sc-text-muted);
}

.sc-payment-date {
    font-size: 0.75rem;
    color: var(--sc-text-muted);
}

.sc-payment-notes {
    font-size: 0.75rem;
    color: var(--sc-text-muted);
    font-style: italic;
}

.sc-payment-voided {
    font-size: 0.75rem;
    color: var(--sc-danger-color);
    margin-top: 2px;
}

.sc-payment-amount {
    font-weight: 600;
    color: var(--sc-success-color);
}

.sc-payment-amount.negative {
    color: var(--sc-danger-color);
}

.sc-payment-total {
    display: flex;
    justify-content: space-between;
    padding: var(--sc-spacing-sm) var(--sc-spacing-md);
    background: var(--sc-surface-light);
    border-radius: var(--sc-radius-sm);
    font-weight: 600;
    margin-top: var(--sc-spacing-sm);
}

.sc-payment-form {
    padding: var(--sc-spacing-md);
    background: var(--sc-surface-light);
    border-radius: var(--sc-radius-sm);
    margin-bottom: var(--sc-spacing-md);
}

.sc-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: var(--sc-spacing-sm);
    margin-top: var(--sc-spacing-md);
    padding-top: var(--sc-spacing-md);
    border-top: 1px solid var(--sc-border-color);
}

.sc-checkbox-label {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-sm);
    cursor: pointer;
}

.sc-btn-link {
    background: none;
    border: none;
    color: var(--sc-primary-color);
    padding: 0;
    font-size: 0.875rem;
    cursor: pointer;
    text-decoration: underline;
}

.sc-btn-link:hover {
    color: var(--sc-primary-hover);
}

.sc-btn-outline-danger {
    border: 1px solid var(--sc-danger-color);
    color: var(--sc-danger-color);
    background: transparent;
}

.sc-btn-outline-danger:hover {
    background: var(--sc-danger-color);
    color: white;
}

/* Action Buttons */
.sc-action-buttons {
    display: flex;
    gap: var(--sc-spacing-sm);
}

.sc-action-buttons.layout-horizontal {
    flex-direction: row;
    flex-wrap: wrap;
}

.sc-action-buttons.layout-vertical {
    flex-direction: column;
}

.sc-action-buttons.layout-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.sc-action-buttons .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--sc-spacing-sm);
}

.sc-action-buttons .sc-btn-disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.sc-btn-block {
    width: 100%;
}

/* Responsive Summary Styles */
@media (max-width: 768px) {
    .sc-summary-item {
        flex-wrap: wrap;
    }

    .sc-item-info {
        width: 100%;
    }

    .sc-item-quantity,
    .sc-item-price {
        font-size: 0.875rem;
    }

    .sc-running-total.fixed-bottom .sc-running-total-content {
        padding-bottom: calc(var(--sc-spacing-md) + env(safe-area-inset-bottom));
    }

    .sc-action-buttons.layout-horizontal {
        flex-direction: column;
    }

    .sc-action-buttons .btn {
        width: 100%;
    }

    .sc-payment-item {
        flex-direction: column;
        align-items: flex-start;
    }

    .sc-payment-amount {
        align-self: flex-end;
    }
}

/* ─── Additional Services Component ───────────────────────────────── */

.sc-as-container {
    width: 100%;
}

.sc-as-preview {
    opacity: 0.7;
    pointer-events: none;
}

.sc-as-loading {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 120px;
}

.sc-as-header {
    margin-bottom: 0.75rem;
}

.sc-as-title {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--sc-text-primary);
    margin: 0;
}

.sc-as-toolbar {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.sc-as-search {
    flex: 1;
}

.sc-as-search-input {
    width: 100%;
}

/* Package context badge in accordion/tab headers */
.sc-badge-package {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.15rem 0.5rem;
    font-size: 0.75rem;
    font-weight: 500;
    border-radius: 1rem;
    background-color: var(--sc-primary-light, #eff6ff);
    color: var(--sc-primary-dark, #2563eb);
    border: 1px solid var(--sc-primary-border, #bfdbfe);
}

/* Included in package badge */
.sc-as-included-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.1rem 0.4rem;
    font-size: 0.7rem;
    font-weight: 600;
    border-radius: 0.25rem;
    background-color: var(--sc-success-light, #d1fae5);
    color: var(--sc-success-color, #10b981);
}

/* Upgrade price display */
.sc-as-upgrade-price {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8rem;
}

.sc-as-upgrade-price .sc-as-upgrade-label {
    font-size: 0.7rem;
    color: var(--sc-text-muted);
    text-transform: uppercase;
}

.sc-as-upgrade-price .sc-as-upgrade-amount {
    font-weight: 600;
    color: var(--sc-primary-dark, #2563eb);
}

/* Covered by allowance indicator */
.sc-as-covered {
    font-size: 0.75rem;
    color: var(--sc-success-color, #10b981);
    font-weight: 500;
}

/* Empty category message */
.sc-as-empty-category {
    padding: 1rem;
    text-align: center;
    color: var(--sc-text-muted);
    font-size: 0.85rem;
    font-style: italic;
}

/* Search results - flat list without category grouping */
.sc-as-search-results {
    margin-top: var(--sc-spacing-sm);
}

.sc-as-search-results .sc-service-add-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--sc-spacing-sm) var(--sc-spacing-md);
    border-bottom: 1px solid var(--sc-border-color);
}

.sc-as-search-results .sc-service-add-item:last-child {
    border-bottom: none;
}

.sc-as-search-results .sc-service-add-info {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    flex: 1;
    min-width: 0;
}

.sc-as-search-results .sc-service-add-name {
    font-weight: 500;
    font-size: 0.9rem;
}

.sc-service-add-category {
    font-size: 0.75rem;
    color: var(--sc-text-muted);
}

.sc-as-search-results .sc-service-add-price {
    font-size: 0.85rem;
    color: var(--sc-text-secondary);
}

/* =====================
   Product Selection — Unified Component
   ===================== */
.sc-product-selection {
    display: flex;
    flex-direction: column;
    gap: var(--sc-spacing-md);
    padding-bottom: 80px;
}

/* Layout Toggle */
.sc-layout-toggle {
    display: inline-flex;
    border: 1px solid var(--sc-border-color);
    border-radius: var(--sc-radius-md);
    overflow: hidden;
}

.sc-layout-toggle-btn {
    width: 36px;
    height: 36px;
    border: none;
    background: var(--sc-surface-color);
    color: var(--sc-text-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--sc-transition-fast);
}

.sc-layout-toggle-btn:not(:last-child) {
    border-right: 1px solid var(--sc-border-color);
}

.sc-layout-toggle-btn:hover {
    background: var(--sc-surface-hover);
    color: var(--sc-text-primary);
}

.sc-layout-toggle-btn.active {
    background: var(--sc-primary-color);
    color: white;
}

/* Sidebar Attribute Filters */
.sc-sidebar-filters {
    margin-top: var(--sc-spacing-sm);
    border-top: 1px solid var(--sc-border-color);
    padding-top: var(--sc-spacing-sm);
}

.sc-sidebar-filter {
    margin-bottom: var(--sc-spacing-xs);
    border-bottom: 1px solid var(--sc-border-light);
    padding-bottom: var(--sc-spacing-xs);
}

.sc-sidebar-filter:last-child {
    border-bottom: none;
}

.sc-sidebar-filter-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: var(--sc-spacing-xs) 0.75rem;
    border: none;
    background: none;
    cursor: pointer;
    color: var(--sc-text-secondary);
}

.sc-sidebar-filter-header:hover {
    color: var(--sc-text-primary);
}

.sc-sidebar-filter-label {
    font-size: var(--sc-font-size-sm);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-xs);
}

.sc-sidebar-filter-count {
    font-weight: 400;
    color: var(--sc-primary-color);
    font-size: 0.75rem;
}

.sc-sidebar-filter-toggle {
    font-size: 0.625rem;
    transition: transform var(--sc-transition-fast);
}

.sc-sidebar-filter-checks {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--sc-spacing-xs) 0;
}

.sc-sidebar-filter-check {
    padding: 2px 0;
}

.sc-sidebar-check.e-checkbox-wrapper .e-label {
    font-size: var(--sc-font-size-sm);
    color: var(--sc-text-primary);
}

/* List Mode */
.sc-product-list-container {
    display: flex;
    flex-direction: column;
    gap: var(--sc-spacing-sm);
}

.sc-product-list-item {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-md);
    padding: var(--sc-spacing-md);
    border: 1px solid var(--sc-border-color);
    border-radius: var(--sc-radius-md);
    background: var(--sc-surface-color);
    cursor: pointer;
    transition: border-color var(--sc-transition-fast), box-shadow var(--sc-transition-fast);
}

.sc-product-list-item:hover {
    border-color: var(--sc-primary-border);
    box-shadow: var(--sc-shadow-sm);
}

.sc-product-list-item.sc-list-item-selected {
    border-color: var(--sc-primary-color);
    box-shadow: 0 0 0 2px var(--sc-primary-light);
}

.sc-product-list-thumbnail {
    width: 64px;
    height: 64px;
    border-radius: var(--sc-radius-sm);
    overflow: hidden;
    flex-shrink: 0;
    background: var(--sc-surface-light);
}

.sc-product-list-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.sc-product-list-thumbnail .sc-card-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
}

.sc-product-list-info {
    flex: 1;
    min-width: 0;
}

.sc-product-list-sku {
    font-size: 0.75rem;
    color: var(--sc-text-muted);
    margin-top: 2px;
}

.sc-product-list-stock {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-xs);
    font-size: 0.8rem;
    white-space: nowrap;
}

.sc-product-list-price {
    font-weight: 600;
    color: var(--sc-text-primary);
    font-size: 1rem;
    white-space: nowrap;
    min-width: 80px;
    text-align: right;
}

.sc-product-list-actions {
    display: flex;
    gap: var(--sc-spacing-sm);
    flex-shrink: 0;
}

/* Comparison Mode */
.sc-comparison-prompt {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-sm);
    padding: var(--sc-spacing-md);
    background: var(--sc-primary-light);
    color: var(--sc-primary-dark);
    border-radius: var(--sc-radius-md);
    margin-bottom: var(--sc-spacing-md);
    font-size: 0.875rem;
    font-weight: 500;
}

.sc-comparison-checkbox {
    position: absolute;
    top: var(--sc-spacing-sm);
    left: var(--sc-spacing-sm);
    z-index: 1;
}

.sc-comparison-checkbox input[type="checkbox"] {
    width: 20px;
    height: 20px;
    cursor: pointer;
    accent-color: var(--sc-primary-color);
}

.sc-comparison-disabled {
    opacity: 0.5;
    pointer-events: none;
}

/* Inline comparison bar */
.sc-comparison-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sc-spacing-md);
    padding: var(--sc-spacing-sm) var(--sc-spacing-md);
    background: var(--sc-primary-light);
    color: var(--sc-primary-dark);
    border-radius: var(--sc-radius-md);
    margin-bottom: var(--sc-spacing-md);
    font-size: 0.875rem;
    font-weight: 500;
}

.sc-comparison-bar-left {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-sm);
}

.sc-comparison-bar-right {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-sm);
}

/* Card wrapper for comparison checkbox overlay */
.sc-product-card-wrapper {
    position: relative;
}

.sc-comparison-checkbox-inline {
    position: static;
    display: inline-flex;
    flex-shrink: 0;
}

/* Comparison Table */
.sc-comparison-container {
    overflow-x: auto;
}

.sc-comparison-actions {
    margin-bottom: var(--sc-spacing-md);
}

.sc-comparison-grid {
    display: grid;
    gap: 0;
    border: 1px solid var(--sc-border-color);
    border-radius: var(--sc-radius-md);
    overflow: hidden;
}

.sc-comparison-header-cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--sc-spacing-sm);
    padding: var(--sc-spacing-md);
    background: var(--sc-surface-light);
    border-bottom: 2px solid var(--sc-border-color);
    border-left: 1px solid var(--sc-border-color);
    text-align: center;
}

.sc-comparison-product-image {
    width: 80px;
    height: 80px;
    object-fit: contain;
    border-radius: var(--sc-radius-sm);
}

.sc-comparison-product-name {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--sc-text-primary);
}

.sc-comparison-label {
    padding: var(--sc-spacing-sm) var(--sc-spacing-md);
    font-weight: 600;
    font-size: 0.8rem;
    color: var(--sc-text-secondary);
    background: var(--sc-surface-light);
    border-bottom: 1px solid var(--sc-border-light);
    display: flex;
    align-items: center;
}

.sc-comparison-cell {
    padding: var(--sc-spacing-sm) var(--sc-spacing-md);
    font-size: 0.875rem;
    color: var(--sc-text-primary);
    border-left: 1px solid var(--sc-border-color);
    border-bottom: 1px solid var(--sc-border-light);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.sc-comparison-diff {
    background: var(--sc-warning-light);
}

@media (max-width: 768px) {
    .sc-product-list-item {
        flex-wrap: wrap;
    }

    .sc-product-list-price {
        min-width: auto;
    }

    .sc-product-list-actions {
        width: 100%;
        justify-content: flex-end;
    }

    .sc-comparison-bar {
        flex-direction: column;
        gap: var(--sc-spacing-sm);
    }
}

/* ============================
   Selection Guide Mode
   ============================ */

.sc-guide-heading {
    margin: 0 0 var(--sc-spacing-lg);
    color: var(--sc-text-primary);
    font-size: 1.125rem;
    font-weight: 600;
}

.sc-guide-categories {
    gap: var(--sc-spacing-md);
}

.sc-guide-category-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--sc-spacing-sm);
    padding: 0;
    background: var(--sc-surface-color);
    border: 2px solid var(--sc-border-color);
    border-radius: var(--sc-radius-lg);
    cursor: pointer;
    transition: all var(--sc-transition-fast);
    text-align: center;
    overflow: hidden;
}

.sc-guide-category-card:hover {
    border-color: var(--sc-primary-color);
    box-shadow: var(--sc-shadow-md);
    transform: translateY(-2px);
}

.sc-guide-card-image {
    width: 100%;
    aspect-ratio: 4 / 3;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: var(--sc-surface-light, #f8f9fa);
}

.sc-guide-card-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform var(--sc-transition-fast);
}

.sc-guide-category-card:hover .sc-guide-card-image img {
    transform: scale(1.05);
}

.sc-guide-card-image i {
    font-size: 2.5rem;
    color: var(--sc-primary-color);
}

.sc-guide-category-name {
    font-weight: 600;
    color: var(--sc-text-primary);
    font-size: 0.95rem;
    padding: 0 var(--sc-spacing-sm);
}

.sc-guide-category-count {
    font-size: 0.8rem;
    color: var(--sc-text-muted);
    padding-bottom: var(--sc-spacing-sm);
}

.sc-guide-view-all-card {
    border-style: dashed;
    background: var(--sc-surface-light);
    padding: var(--sc-spacing-xl) var(--sc-spacing-lg);
    justify-content: center;
}

.sc-guide-view-all-card:hover {
    border-style: solid;
    background: var(--sc-primary-light);
}

.sc-guide-view-all-icon {
    font-size: 2rem;
    color: var(--sc-primary-color);
}

/* Wood / Metal Split */
.sc-guide-wood-metal {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--sc-spacing-lg);
    max-width: 600px;
}

/* Breadcrumb Bar (breadcrumb trail + nav buttons in one row) */
.sc-guide-breadcrumb-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sc-spacing-md);
    padding: var(--sc-spacing-sm) 0;
    margin-bottom: var(--sc-spacing-md);
}

.sc-guide-breadcrumb {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-xs);
    font-size: 0.875rem;
    flex-wrap: wrap;
    min-width: 0;
}

.sc-guide-breadcrumb-item {
    color: var(--sc-primary-color);
    background: none;
    border: none;
    padding: var(--sc-spacing-xs) var(--sc-spacing-sm);
    border-radius: var(--sc-radius-sm);
    cursor: pointer;
    font-size: 0.875rem;
}

.sc-guide-breadcrumb-item:hover {
    background: var(--sc-primary-light);
}

.sc-guide-breadcrumb-item.active {
    color: var(--sc-text-primary);
    font-weight: 500;
    cursor: default;
}

.sc-guide-breadcrumb-item.active:hover {
    background: transparent;
}

.sc-guide-breadcrumb-separator {
    color: var(--sc-text-light);
    font-size: 0.7rem;
}

/* Step Tabs */
.sc-guide-steps {
    display: flex;
    gap: var(--sc-spacing-xs);
    margin-bottom: var(--sc-spacing-lg);
    padding: var(--sc-spacing-xs);
    background: var(--sc-surface-light);
    border-radius: var(--sc-radius-md);
    overflow-x: auto;
}

.sc-guide-step-tab {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-sm);
    padding: var(--sc-spacing-sm) var(--sc-spacing-md);
    border: none;
    background: transparent;
    border-radius: var(--sc-radius-sm);
    cursor: pointer;
    white-space: nowrap;
    font-size: 0.875rem;
    color: var(--sc-text-muted);
    transition: all var(--sc-transition-fast);
}

.sc-guide-step-tab:hover:not(:disabled) {
    background: var(--sc-surface-hover);
    color: var(--sc-text-primary);
}

.sc-guide-step-tab:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.sc-guide-step-tab.active {
    background: var(--sc-surface-color);
    color: var(--sc-primary-color);
    font-weight: 600;
    box-shadow: var(--sc-shadow-sm);
}

.sc-guide-step-tab.completed {
    color: var(--sc-success-color);
}

.sc-guide-step-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: var(--sc-radius-full);
    background: var(--sc-border-color);
    color: var(--sc-text-secondary);
    font-size: 0.75rem;
    font-weight: 600;
}

.sc-guide-step-tab.active .sc-guide-step-number {
    background: var(--sc-primary-color);
    color: white;
}

.sc-guide-step-tab.completed .sc-guide-step-number {
    background: var(--sc-success-color);
    color: white;
}

/* Attribute Value Chips */
.sc-guide-values {
    gap: var(--sc-spacing-md);
}

.sc-guide-value-chip {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--sc-spacing-xs);
    padding: 0;
    background: var(--sc-surface-color);
    border: 2px solid var(--sc-border-color);
    border-radius: var(--sc-radius-md);
    cursor: pointer;
    transition: all var(--sc-transition-fast);
    text-align: center;
    overflow: hidden;
}

.sc-guide-value-chip:hover {
    border-color: var(--sc-primary-color);
    box-shadow: var(--sc-shadow-md);
    transform: translateY(-2px);
}

.sc-guide-value-chip.selected {
    border-color: var(--sc-primary-color);
    box-shadow: 0 0 0 2px var(--sc-primary-color);
}

.sc-guide-value-name {
    font-weight: 500;
    color: var(--sc-text-primary);
    padding: 0 var(--sc-spacing-sm);
}

.sc-guide-value-count {
    font-size: 0.8rem;
    color: var(--sc-text-muted);
    padding-bottom: var(--sc-spacing-sm);
}

/* Back Bar */
.sc-guide-back-bar {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-md);
    margin-bottom: var(--sc-spacing-md);
}

.sc-guide-result-count {
    font-size: 0.875rem;
    color: var(--sc-text-muted);
}

/* Navigation Buttons (inline with breadcrumb) */
.sc-guide-nav-buttons {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-sm);
    flex-shrink: 0;
}

/* Thumbnail Grid */
.sc-guide-thumbnail-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--sc-spacing-xs);
    background: var(--sc-surface-color);
    border: 2px solid var(--sc-border-color);
    border-radius: var(--sc-radius-md);
    cursor: pointer;
    transition: all var(--sc-transition-fast);
    overflow: hidden;
}

.sc-guide-thumbnail-card:hover {
    border-color: var(--sc-primary-color);
    box-shadow: var(--sc-shadow-md);
    transform: translateY(-2px);
}

.sc-guide-thumbnail-info {
    padding: var(--sc-spacing-xs) var(--sc-spacing-sm) var(--sc-spacing-sm);
    text-align: center;
    width: 100%;
}

.sc-guide-thumbnail-name {
    font-weight: 500;
    font-size: 0.85rem;
    color: var(--sc-text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sc-guide-thumbnail-price {
    font-size: 0.8rem;
    color: var(--sc-text-muted);
    margin-top: 2px;
}

/* Full View Modal */
.sc-guide-fullview-overlay {
    position: fixed;
    inset: 0;
    z-index: 1100000;
    background: rgba(0, 0, 0, 0.85);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--sc-spacing-md);
}

.sc-guide-fullview-modal {
    background: var(--sc-surface-color);
    border-radius: var(--sc-radius-lg);
    width: 95vw;
    max-width: 1400px;
    height: 90vh;
    max-height: 900px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5);
}

.sc-guide-fullview-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--sc-spacing-sm) var(--sc-spacing-lg);
    border-bottom: 1px solid var(--sc-border-color);
    flex-shrink: 0;
    gap: var(--sc-spacing-md);
}

.sc-guide-fullview-header-left {
    display: flex;
    align-items: baseline;
    gap: var(--sc-spacing-md);
    min-width: 0;
}

.sc-guide-fullview-header-right {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-md);
    flex-shrink: 0;
}

.sc-guide-fullview-counter {
    font-size: 0.85rem;
    color: var(--sc-text-muted);
    white-space: nowrap;
}

.sc-guide-fullview-close {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: none;
    background: transparent;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    color: var(--sc-text-muted);
    transition: all var(--sc-transition-fast);
}

.sc-guide-fullview-close:hover {
    background: var(--sc-surface-light, #f0f0f0);
    color: var(--sc-text-primary);
}

.sc-guide-fullview-body {
    flex: 1;
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-sm);
    padding: var(--sc-spacing-md);
    min-height: 0;
}

.sc-guide-fullview-nav {
    flex-shrink: 0;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    border: 2px solid var(--sc-border-color);
    background: var(--sc-surface-color);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    color: var(--sc-text-primary);
    transition: all var(--sc-transition-fast);
}

.sc-guide-fullview-nav:hover {
    border-color: var(--sc-primary-color);
    background: var(--sc-primary-light);
    color: var(--sc-primary-color);
}

.sc-guide-fullview-image {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 0;
    height: 100%;
}

.sc-guide-fullview-image img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.sc-guide-fullview-no-image {
    font-size: 5rem;
    color: var(--sc-text-muted);
}

.sc-guide-fullview-name {
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--sc-text-primary);
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-guide-fullview-price {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--sc-primary-color);
    white-space: nowrap;
}

.sc-guide-fullview-footer {
    flex-shrink: 0;
    padding: var(--sc-spacing-sm) var(--sc-spacing-lg);
    border-top: 1px solid var(--sc-border-color);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sc-spacing-md);
    font-size: 0.85rem;
    color: var(--sc-text-muted);
    flex-wrap: wrap;
}

.sc-guide-fullview-specs {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-md);
    flex-wrap: wrap;
    flex: 1;
}

.sc-guide-fullview-actions {
    flex-shrink: 0;
}

.sc-guide-fullview-sku {
    color: var(--sc-text-muted);
}

.sc-guide-fullview-attr-label {
    font-weight: 600;
}

@media (max-width: 768px) {
    .sc-guide-fullview-modal {
        width: 100vw;
        height: 100vh;
        max-width: none;
        max-height: none;
        border-radius: 0;
    }

    .sc-guide-fullview-nav {
        width: 40px;
        height: 40px;
        font-size: 1.1rem;
    }

    .sc-guide-fullview-header {
        flex-wrap: wrap;
    }

    .sc-guide-fullview-footer {
        justify-content: flex-start;
    }

    .sc-guide-breadcrumb-bar {
        flex-wrap: wrap;
    }
}

/* ============================
   Showroom Mode
   ============================ */

.sc-showroom-grid {
    gap: var(--sc-spacing-md);
}

.sc-showroom-card {
    display: flex;
    flex-direction: column;
    background: var(--sc-surface-color);
    border: 2px solid var(--sc-border-color);
    border-radius: var(--sc-radius-lg);
    cursor: pointer;
    transition: all var(--sc-transition-fast);
    overflow: hidden;
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
}

.sc-showroom-card:hover {
    border-color: var(--sc-primary-color);
    box-shadow: var(--sc-shadow-md);
    transform: translateY(-2px);
}

.sc-showroom-all-card {
    border-style: dashed;
    background: var(--sc-surface-light);
    align-items: center;
    justify-content: center;
    padding: var(--sc-spacing-xl) var(--sc-spacing-lg);
    gap: var(--sc-spacing-sm);
    text-align: center;
}

.sc-showroom-all-card:hover {
    border-style: solid;
    background: var(--sc-primary-light);
}

/* Showroom preview — shared base */
.sc-showroom-preview {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--sc-surface-color);
}

.sc-showroom-preview-empty {
    color: var(--sc-text-muted);
    font-size: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sc-showroom-preview-full {
    width: 100%;
    height: 100%;
    font-size: 2.5rem;
}

/* Highest Priced — single image */
.sc-showroom-preview-single {
    display: flex;
    align-items: center;
    justify-content: center;
}

.sc-showroom-preview-single img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 8px;
    transition: transform var(--sc-transition-fast);
}

.sc-showroom-card:hover .sc-showroom-preview-single img {
    transform: scale(1.05);
}

/* Top Four — 2x2 grid */
.sc-showroom-preview-quad {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 1px;
    background: var(--sc-border-color);
}

.sc-showroom-preview-cell {
    overflow: hidden;
    background: var(--sc-surface-color);
    display: flex;
    align-items: center;
    justify-content: center;
}

.sc-showroom-preview-cell img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 4px;
    transition: transform var(--sc-transition-fast);
}

.sc-showroom-card:hover .sc-showroom-preview-cell img {
    transform: scale(1.05);
}

/* Carousel — crossfade between product images */
.sc-showroom-preview-carousel {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sc-carousel-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 8px;
    opacity: 0;
    animation: sc-carousel-fade ease-in-out infinite;
}

.sc-carousel-first {
    opacity: 1;
}

.sc-carousel-static {
    position: relative;
    opacity: 1;
    animation: none;
}

/* sc-carousel-fade keyframe is generated dynamically in the component
   based on the number of showroom images, ensuring correct timing for any count. */

.sc-showroom-card-info {
    padding: var(--sc-spacing-sm);
    text-align: center;
}

.sc-showroom-header {
    display: flex;
    align-items: center;
    gap: var(--sc-spacing-md);
    margin-bottom: var(--sc-spacing-lg);
    padding-bottom: var(--sc-spacing-md);
    border-bottom: 1px solid var(--sc-border-color);
}

.sc-showroom-title {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--sc-text-primary);
}

/* Responsive for Selection Guide & Showroom */
@media (max-width: 768px) {
    .sc-guide-wood-metal {
        grid-template-columns: 1fr;
    }

    .sc-guide-steps {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .sc-guide-card-image {
        aspect-ratio: 3 / 2;
    }

    .sc-showroom-preview-quad {
        aspect-ratio: 3 / 2;
    }
}

/* ==========================================================================
   Engraveable Badge
   ========================================================================== */

.sc-card-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 4px;
}

.sc-engraveable-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    background: rgba(13, 110, 253, 0.08);
    color: var(--sc-primary-color, #0d6efd);
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 500;
}

.sc-personalizable-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    background: rgba(111, 66, 193, 0.08);
    color: #6f42c1;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 500;
}

/* Included product focused view */
.sc-included-product-view {
    padding: 1.5rem;
}

.sc-included-product-card {
    display: flex;
    gap: 2rem;
    background: #fff;
    border: 2px solid #28a745;
    border-radius: 12px;
    padding: 2rem;
    max-width: 800px;
    margin: 0 auto;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.sc-included-product-image {
    width: 280px;
    height: 280px;
    object-fit: contain;
    border-radius: 8px;
    flex-shrink: 0;
}

.sc-included-product-details {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.sc-included-product-name {
    font-size: 1.5rem;
    font-weight: 600;
    margin: 0;
}

.sc-included-product-description {
    color: #6c757d;
    margin: 0;
    line-height: 1.5;
}

.sc-included-product-attribute {
    font-size: 0.9rem;
}

.sc-included-product-attribute .sc-attribute-label {
    font-weight: 600;
    margin-right: 0.25rem;
}

.sc-included-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: rgba(40, 167, 69, 0.1);
    color: #28a745;
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.95rem;
    margin-top: 0.5rem;
    width: fit-content;
}

.sc-included-badge i {
    font-size: 1.1rem;
}

@media (max-width: 768px) {
    .sc-included-product-card {
        flex-direction: column;
        align-items: center;
    }

    .sc-included-product-image {
        width: 200px;
        height: 200px;
    }
}
