        /* Общие стили */
        body {
            font-family: 'Roboto', sans-serif;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }


		mjx-container[jax="CHTML"] {
			white-space: break-spaces !important;
		}

		.paid-calculator-wrapper {
			align-items: normal !important;
		}


        .info-header {
            background-color: #fff;
            padding: 25px;
            border-radius: 10px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
			max-width: 900px;
			width: auto;
			margin: auto auto 30px auto;
        }

        .info-header h2 {
            margin-top: 0;
            color: #0056b3;
            font-size: 24px;
        }

        .info-header p {
            line-height: 1.6;
            margin-bottom: 10px;
        }

        /* Контейнер для двух колонок */
        .container {
            display: flex;
            flex-direction: column;
            gap: 20px;
			width: auto;
			max-width: 900px;
			margin: 0 auto;
        }

        /* Стили для колонок */
        .left-column, .right-column {
            background-color: #fff;
            padding: 25px;
            border-radius: 10px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
            transition: box-shadow 0.3s ease;
        }

        .left-column {
            flex: 1;
            width: auto;
        }

        .right-side-wrapper {
            flex: 2; /* Унаследовал свойство от старого .right-column */
            min-width: 0; /* Важное свойство для flex-элементов */
            display: flex;
            flex-direction: column; /* Элементы внутри будут идти друг под другом */
            gap: 20px; /* Расстояние между "шапкой" и блоком результатов */
        }
        

        /* Добавляем стили для независимого блока результатов */
        #results.results-container {
            background-color: #fff;
            padding: 25px;
            border-radius: 10px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
			width: auto;
        }

        /* Стилизация формы */
        #beamForm .parameter-item {
            margin-bottom: 20px;
        }

        #beamForm label {
            display: block;
            margin-bottom: 8px;
            font-weight: 500;
            color: #555;
        }

        #beamForm input[type="number"] {
            width: 100%;
            padding: 12px;
            border: 1px solid #ccc;
            border-radius: 5px;
            font-size: 16px;
            transition: border-color 0.3s ease;
            box-sizing: border-box;
        }

        #beamForm input[type="number"]:focus {
            border-color: #007bff;
            outline: none;
        }

        /* Стили для кнопок */
        .button-group {
            display: flex;
            gap: 10px;
            margin-top: 25px;
        }

        .btn {
            padding: 12px 20px;
            font-size: 16px;
            font-weight: 700;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            transition: background-color 0.3s ease, transform 0.2s ease;
            flex-grow: 1;
        }

        #show-schema-btn {
            background-color: #007bff;
            color: white;
        }

        #show-calc-btn {
            background-color: #28a745;
            color: white;
        }

        .btn:hover {
            opacity: 0.9;
            transform: translateY(-2px);
        }
        
        .btn:active {
            transform: translateY(0);
        }

        .btn:disabled,
        .btn:disabled:hover {
            background-color: #cccccc; /* Серый фон */
            cursor: not-allowed;       /* Курсор в виде запрещающего знака */
            transform: none;           /* Убираем эффект "поднятия" при наведении */
            opacity: 0.65;             /* Делаем кнопку полупрозрачной */
        }

        /* Стили для новой кнопки печати */
        #print-btn {
            background-color: #5bc0de; /* Приятный голубой цвет */
            color: white;
            width: 100%; /* На всю ширину колонки */
        }
        
        #print-btn:hover {
             background-color: #31b0d5;
        }

        /* Специальные стили для режима печати */
        @media print {
            /* Скрываем кнопку печати на самой распечатке */
            #print-button-container {
                display: none !important;
            }
            body {
                /* Убираем тени и лишние отступы для экономии чернил */
                box-shadow: none;
                padding: 0;
                margin: 0;
            }
        }

        .canvas-scroll-container {
            width: 100%;
            overflow-x: auto; /* Включаем горизонтальный скролл, если содержимое шире */
            -webkit-overflow-scrolling: touch; /* Плавный скролл на мобильных устройствах */
            border: 1px solid #e0e0e0;
            border-radius: 5px;
            background: #fdfdfd;
        }

        /* Стили для модального окна (попап) */
        .modal {
            display: none; /* Скрыто по умолчанию */
            position: fixed;
            z-index: 1000;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            overflow: auto;
            background-color: rgba(0,0,0,0.5);
            justify-content: center;
            align-items: center;
        }

        .modal-content {
            background-color: #fefefe;
            margin: auto;
            padding: 20px;
            border: 1px solid #888;
            width: 90%;
            max-width: 950px;
            border-radius: 10px;
            position: relative;
        }

        .close-btn {
            color: #aaa;
            float: right;
            font-size: 28px;
            font-weight: bold;
            position: absolute;
            top: 10px;
            right: 20px;
        }

        .close-btn:hover,
        .close-btn:focus {
            color: black;
            text-decoration: none;
            cursor: pointer;
        }

        /* Адаптивность */
        @media (max-width: 768px) {
            .container {
                flex-direction: column;
            }
        }
        
        #IbeamCanvas {
            width: 100%;
            height: auto;
        }

		/* Стили для контейнера "поле ввода + единицы измерения" */
		.input-with-units {
			display: flex;
			gap: 10px; /* Расстояние между полем и списком */
		}

		.input-with-units input {
			flex-grow: 1; /* Поле ввода занимает все доступное место */
		}

		.units-select {
			padding: 12px;
			border: 1px solid #ccc;
			border-radius: 5px;
			font-size: 16px;
			background-color: #f8f9fa;
		}

        .gost-table-container {
            width: 100%;
            overflow-x: auto; /* Включаем горизонтальный скролл для таблицы */
            -webkit-overflow-scrolling: touch; /* Плавный скролл на мобильных */
            border: 1px solid #dee2e6;
            border-radius: 8px;
            margin-top: 15px;
        }

        .gost-table {
            width: 100%;
            min-width: 800px; /* Минимальная ширина, чтобы таблица не сжималась слишком сильно */
            border-collapse: collapse;
            text-align: center;
            font-size: 14px;
        }

        .gost-table th, .gost-table td {
            border: 1px solid #dee2e6;
            padding: 10px 8px;
            vertical-align: middle;
        }

        .gost-table thead th {
            background-color: #f8f9fa;
            font-weight: 700;
            color: #343a40;
        }

        .gost-table tbody td {
            background-color: #fff;
            font-weight: 500;
        }
        
        .gost-table tbody td:first-child {
            font-weight: 700;
            background-color: #f8f9fa; /* Выделяем номер двутавра */
        }

		h2 {
			font-weight: 700;
			font-size: 30px;
		}
		h3 {
			font-size: 25px;
			font-weight: 700;
		}

        #profileError {
            background-color: #fff;
            padding: 25px;
            border-radius: 10px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
        }

        .input-error {
            border-color: #d9534f !important; /* Красная рамка */
        }

        .field-error-message {
            color: #d9534f; /* Красный цвет */
            font-size: 14px;
            font-weight: 500;
            margin-top: 5px;
            /* Высота, чтобы макет не "прыгал" при появлении ошибки */
            min-height: 1em; 
        }

    
