

/* ----- Split from original inline <style> blocks, order preserved ----- */


        @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
        
        body { 
            font-family: 'Inter', sans-serif; 
            line-height: 1.6;
        }
        
        .loading { animation: spin 1s linear infinite; }
        @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
        
        .tab-content { display: none; }
        .tab-content.active { display: block; }
        .tab-button.active { 
            background: rgb(37 99 235);
            color: white;
        }
        
        /* Люксовые цвета */
        .luxury-charcoal { color: #1a1a1a; }
        .luxury-slate { color: #4a5568; }
        .luxury-muted { color: #718096; }
        .luxury-light { color: #a0aec0; }
        .luxury-accent-color { color: #2c5282; }
        
        /* Люксовые фоны */
        .luxury-bg-primary { background-color: #fafbfc; }
        .luxury-bg-white { background-color: #ffffff; }
        .luxury-bg-light { background-color: #f8fafc; }
        
        /* Люксовая типографика */
        .luxury-heading {
            font-weight: 300;
            letter-spacing: -0.02em;
            line-height: 1.2;
        }
        
        .luxury-subheading {
            font-weight: 400;
            letter-spacing: -0.01em;
            line-height: 1.3;
        }
        
        .luxury-text {
            font-weight: 300;
            letter-spacing: 0.01em;
            line-height: 1.7;
        }
        
        .luxury-accent {
            font-weight: 500;
            letter-spacing: 0.02em;
        }
        
        /* Люксовые карточки */
        .luxury-card {
            background: #ffffff;
            border: 1px solid #e2e8f0;
            border-radius: 16px;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.06);
            transition: all 0.3s ease;
        }
        
        .luxury-card-premium {
            background: #ffffff;
            border: 1px solid #d1d5db;
            border-radius: 20px;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.03), 0 1px 3px rgba(0, 0, 0, 0.08);
        }
        
        /* Люксовые разделители */
        .luxury-divider {
            height: 1px;
            background: linear-gradient(to right, transparent, #e2e8f0, transparent);
            margin: 3rem 0;
        }
        
        .luxury-line {
            height: 1px;
            background: #e2e8f0;
            width: 100%;
        }
        
        /* Люксовые статусы */
        .luxury-status {
            background: #f7fafc;
            color: #2d3748;
            padding: 8px 16px;
            border-radius: 8px;
            font-size: 12px;
            font-weight: 400;
            letter-spacing: 0.05em;
            text-transform: uppercase;
            border: 1px solid #e2e8f0;
        }
        
        /* Люксовые цены */
        .luxury-price {
            font-weight: 400;
            letter-spacing: -0.02em;
            color: #1a1a1a;
        }
        
        .luxury-price-large {
            font-weight: 300;
            letter-spacing: -0.03em;
            color: #1a1a1a;
        }
        
        /* Люксовые изображения */
        .luxury-image {
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            overflow: hidden;
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);
        }
        
        .luxury-image-main {
            border: 2px solid #d1d5db;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.07);
        }
        
        /* Анимации для люкса */
        .luxury-fade-in {
            animation: luxuryFadeIn 0.8s ease-out;
        }
        
        @keyframes luxuryFadeIn {
            from {
                opacity: 0;
                transform: translateY(10px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        
        /* Оставляем старые классы для совместимости */
        .primary-color { color: #1a1a1a; }
        .secondary-color { color: #4a5568; }
        .accent-color { color: #2c5282; }
        .muted-color { color: #718096; }
        
        .bg-primary { background-color: #fafbfc; }
        .bg-secondary { background-color: #f8fafc; }
        .bg-accent { background-color: #e2e8f0; }
        .bg-white-soft { background-color: #ffffff; }
        
        .shadow-elegant {
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.06);
        }
        
        .shadow-elegant-lg {
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.03), 0 1px 3px rgba(0, 0, 0, 0.08);
        }
        
        .heading-elegant {
            font-weight: 400;
            letter-spacing: -0.01em;
            line-height: 1.3;
        }
        
        .text-elegant {
            font-weight: 300;
            letter-spacing: 0.01em;
            line-height: 1.7;
        }
        
        .text-refined {
            font-weight: 500;
            letter-spacing: 0.02em;
        }
        
        /* Карточки */
        .card-elegant {
            background: #ffffff;
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            transition: all 0.2s ease;
        }
        
        .card-elegant:hover {
            border-color: #cbd5e1;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
        }
        
        .card-premium {
            background: #ffffff;
            border: 1px solid #e2e8f0;
            border-radius: 16px;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
        }
        
        /* Статусы */
        .status-elegant {
            background: #475569;
            color: white;
            padding: 4px 12px;
            border-radius: 6px;
            font-size: 12px;
            font-weight: 500;
            text-transform: uppercase;
            letter-spacing: 0.05em;
        }
        
        .status-discount {
            background: #64748b;
            color: white;
            padding: 4px 12px;
            border-radius: 6px;
            font-size: 12px;
            font-weight: 500;
        }
        
        /* Акценты */
        .accent-border {
            border-left: 4px solid #475569;
        }
        
        .accent-dot {
            width: 8px;
            height: 8px;
            background: #475569;
            border-radius: 50%;
        }
        
        /* Цены */
        .price-elegant {
            color: #0f172a;
            font-weight: 700;
            letter-spacing: -0.02em;
        }
        
        .price-muted {
            color: #64748b;
            font-weight: 400;
        }
        
        /* Анимации */
        @keyframes fadeIn {
            from {
                opacity: 0;
                transform: translateY(20px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        
        .fade-in {
            animation: fadeIn 0.6s ease-out;
        }
        
        /* Разделители */
        .divider-elegant {
            height: 1px;
            background: linear-gradient(to right, transparent, #e2e8f0, transparent);
        }
        
        /* Обычные стили калькулятора */
        .premium-card {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        }
        
        .glass-effect {
            background: rgba(255, 255, 255, 0.95);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.3);
        }
        
        .image-upload-area {
            border: 2px dashed #cbd5e0;
            background: #f7fafc;
            transition: all 0.3s ease;
        }
        
        .image-upload-area:hover {
            border-color: #4299e1;
            background: #ebf8ff;
        }
        
        .image-preview {
            aspect-ratio: 16/9;
            object-fit: cover;
        }

        @keyframes fadeInUp {
            from {
                opacity: 0;
                transform: translateY(20px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        
        .fade-in-up {
            animation: fadeInUp 0.5s ease-out;
        }

        .project-group {
            border: 2px solid #e5e7eb;
            border-radius: 12px;
            background: #f9fafb;
            transition: all 0.3s ease;
        }

        .project-group:hover {
            border-color: #3b82f6;
            box-shadow: 0 4px 12px rgba(59, 130, 246, 0.15);
        }

        .project-item {
            background: white;
            border-radius: 8px;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
            display: flex;
            flex-direction: column;
            height: 100%;
            min-height: 300px;
        }

        .discount-input {
            background: #fef3c7;
            border-color: #f59e0b;
        }

        .discount-badge {
            background: linear-gradient(45deg, #ef4444, #dc2626);
            color: white;
            font-weight: bold;
            padding: 4px 8px;
            border-radius: 6px;
            font-size: 12px;
        }
        
        .dimensions-group {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 0.5rem;
        }

        /* Новые стили для множественной загрузки изображений */
        .image-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
            gap: 1rem;
            margin-top: 1rem;
        }

        .image-container {
            position: relative;
            border-radius: 8px;
            overflow: hidden;
            cursor: pointer;
            transition: transform 0.2s ease;
        }

        .image-container:hover {
            transform: scale(1.02);
        }

        .image-container.main-image {
            border: 3px solid #10b981;
            box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.3);
        }

        .image-thumbnail {
            aspect-ratio: 16/9;
            object-fit: cover;
            width: 100%;
            height: 120px;
        }

        .delete-btn {
            position: absolute;
            top: 8px;
            right: 8px;
            background: rgba(239, 68, 68, 0.9);
            color: white;
            border: none;
            border-radius: 50%;
            width: 24px;
            height: 24px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            opacity: 0;
            transition: opacity 0.2s ease;
            font-size: 12px;
        }

        .image-container:hover .delete-btn {
            opacity: 1;
        }

        .main-badge {
            position: absolute;
            bottom: 4px;
            left: 4px;
            background: rgba(16, 185, 129, 0.9);
            color: white;
            padding: 2px 6px;
            border-radius: 4px;
            font-size: 10px;
            font-weight: 500;
        }

        .image-counter {
            background: #3b82f6;
            color: white;
            padding: 4px 8px;
            border-radius: 6px;
            font-size: 12px;
            font-weight: 500;
        }

        /* Стили для стандартных изделий */
        .standard-item-card {
            transition: all 0.3s ease;
        }

        .standard-item-card:hover {
            transform: translateY(-2px);
            box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
        }

        .line-clamp-2 {
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        /* Стили для изображений стандартных изделий */
        .standard-item-image {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
            border-radius: 8px;
            transition: all 0.3s ease;
        }

        .standard-item-image:hover {
            transform: scale(1.05);
        }

        .standard-item-image-container {
            position: relative;
            width: 100%;
            height: 200px;
            border-radius: 8px;
            overflow: hidden;
            background: #f8fafc;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        /* Специальные стили для изображений в проектах */
        .project-item .standard-item-image-container {
            height: 128px;
            flex-shrink: 0;
        }

        /* Стили для контента проектов */
        .project-item .project-content {
            flex: 1;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }

        .project-item .project-buttons {
            margin-top: auto;
            padding-top: 1rem;
        }

        .standard-item-image-placeholder {
            width: 100%;
            height: 100%;
            background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            color: #64748b;
            font-size: 14px;
            text-align: center;
            padding: 1rem;
        }

        .standard-item-image-placeholder svg {
            width: 48px;
            height: 48px;
            margin-bottom: 8px;
            opacity: 0.6;
        }

        .standard-item-image-loading {
            width: 100%;
            height: 100%;
            background: #f8fafc;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #64748b;
            font-size: 14px;
        }

        .standard-item-image-loading::after {
            content: '';
            width: 20px;
            height: 20px;
            border: 2px solid #e2e8f0;
            border-top: 2px solid #3b82f6;
            border-radius: 50%;
            animation: spin 1s linear infinite;
            margin-left: 8px;
        }

        /* Стили для переключателя режима расчета площади корпуса */
        .korpus-mode-toggle {
            background: #f8fafc;
            border: 1px solid #e2e8f0;
            border-radius: 8px;
            padding: 12px;
            transition: all 0.2s ease;
        }

        .korpus-mode-toggle:hover {
            background: #f1f5f9;
            border-color: #cbd5e1;
        }

        .korpus-mode-radio {
            accent-color: #3b82f6;
        }

        .korpus-mode-radio:checked + span {
            color: #1e40af;
            font-weight: 500;
        }

        .manual-korpus-input {
            background: #fef3c7;
            border-color: #f59e0b;
            transition: all 0.2s ease;
        }

        .manual-korpus-input:focus {
            background: #fef3c7;
            border-color: #d97706;
            box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.1);
        }

        /* Стили для столешниц и фартуков */
        .countertop-item {
            background: #f8fafc;
            border: 1px solid #e2e8f0;
            border-radius: 8px;
            padding: 16px;
            transition: all 0.2s ease;
        }

        .countertop-item:hover {
            border-color: #cbd5e1;
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
        }

        .countertop-dimensions {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 12px;
            margin-bottom: 12px;
        }

        .countertop-dimensions input {
            padding: 8px 12px;
            border: 1px solid #d1d5db;
            border-radius: 6px;
            font-size: 14px;
            transition: all 0.2s ease;
        }

        .countertop-dimensions input:focus {
            outline: none;
            border-color: #3b82f6;
            box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
        }

        .countertop-dimensions label {
            font-size: 12px;
            color: #6b7280;
            margin-bottom: 4px;
            display: block;
        }

        .countertop-calculated {
            background: #ecfdf5;
            border: 1px solid #10b981;
            border-radius: 6px;
            padding: 8px 12px;
            margin-bottom: 12px;
            font-size: 14px;
            color: #065f46;
        }

        .countertop-calculated .area {
            font-weight: 600;
            color: #047857;
        }

        .countertop-select {
            width: 100%;
            padding: 8px 12px;
            border: 1px solid #d1d5db;
            border-radius: 6px;
            font-size: 14px;
            background: white;
            transition: all 0.2s ease;
        }

        .countertop-select:focus {
            outline: none;
            border-color: #3b82f6;
            box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
        }


        .countertop-price {
            background: #f0f9ff;
            border: 1px solid #0ea5e9;
            border-radius: 6px;
            padding: 8px 12px;
            margin-top: 8px;
            font-size: 14px;
            color: #0c4a6e;
        }

        .countertop-price .price {
            font-weight: 600;
            color: #0369a1;
        }

        .countertop-actions {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-top: 12px;
        }

        .countertop-remove {
            background: #fee2e2;
            color: #dc2626;
            border: 1px solid #fca5a5;
            padding: 6px 12px;
            border-radius: 6px;
            font-size: 12px;
            cursor: pointer;
            transition: all 0.2s ease;
        }

        .countertop-remove:hover {
            background: #fecaca;
            border-color: #f87171;
        }
    