.cutting-calculator-container { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; max-width: 1000px; margin: 15px auto; background: linear-gradient(135deg, #f9f9ff 0%, #e6f0ff 100%); border-radius: 15px; box-shadow: 0 10px 35px rgba(0, 0, 0, 0.2); overflow: hidden; border: 1px solid #d0d8e8; } /* Заголовок */ .calculator-title { text-align: center; margin-bottom: 25px; padding-bottom: 15px; border-bottom: 1px solid #e1e5ee; } .calculator-title h2 { font-size: 22px; color: #2c3e50; margin-bottom: 5px; font-weight: 700; } .calculator-title p { color: #5a6a85; font-size: 16px; } /* Основное содержимое */ .calc-content { display: flex; flex-wrap: wrap; padding: 25px; } /* Панель ввода данных */ .input-panel { flex: 1; min-width: 300px; padding: 15px; background-color: rgba(255, 255, 255, 0.7); border-radius: 12px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05); } .input-row { display: flex; gap: 15px; margin-bottom: 20px; } .input-group2 { flex: 1; min-width: 0; } .input-group2 label { display: block; margin-bottom: 8px; font-weight: 600; color: #2c3e50; font-size: 15px; display: flex; align-items: center; } .input-group2 label i { margin-right: 8px; color: #4a6491; } .input-control-group { display: flex; width: 100%; border: 2px solid #d0d8e8; border-radius: 10px; overflow: hidden; background-color: white; box-shadow: inset 0 2px 4px rgba(0,0,0,0.05); } .number-btn { width: 40px; background: linear-gradient(135deg, #4a6491, #2c3e50); color: white; border: none; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 18px; transition: all 0.3s; } .number-btn:hover { background: linear-gradient(135deg, #5a74a1, #3c4e70); } .number-btn:active { transform: scale(0.95); } .number-input { flex: 1; border: none; padding: 14px 16px; font-size: 16px; text-align: center; min-width: 0; background-color: transparent; } .number-input:focus { outline: none; } /* Выбор типа бумаги */ .paper-type-option { /* background-color: #fff3e0; */ border-radius: 10px; padding: 15px; margin-top: 1px; } .paper-group select { width: 100%; padding: 12px; border: 2px solid #d0d8e8; border-radius: 10px; background-color: white; font-size: 15px; } .auto-rotate-option { display: flex; align-items: center; padding: 12px 0; margin-top: 15px; } .auto-rotate-option input { margin-right: 10px; } .kits-option { background-color: #fff8e6; border-radius: 10px; padding: 15px; margin-top: 15px; } /* Блок пресетов размеров */ .presets-section { background-color: #e6f7ff; border-radius: 10px; padding: 15px; margin-top: 15px; } .presets-row { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 15px; } .preset-btn { flex: 1; min-width: 100px; padding: 10px 5px; background: #1890ff; color: white; border: none; border-radius: 8px; cursor: pointer; font-weight: 600; transition: all 0.3s; text-align: center; font-size: 14px; } .preset-btn:hover { background: #40a9ff; transform: translateY(-2px); } .preset-btn:active { transform: translateY(0); } .rotate-btn { width: 100%; padding: 12px; background: linear-gradient(135deg, #ffa940, #ff7a45); color: white; border: none; border-radius: 8px; cursor: pointer; font-weight: 700; transition: all 0.3s; font-size: 16px; display: flex; align-items: center; justify-content: center; gap: 10px; } .rotate-btn:hover { background: linear-gradient(135deg, #ffb861, #ff9c6e); transform: translateY(-2px); } .rotate-btn:active { transform: translateY(0); } /* Блок цветности печати */ .color-option { /* background-color: #f6ffed; */ border-radius: 10px; padding: 15px; margin-top: 1px; } .color-group select { width: 100%; padding: 12px; border: 2px solid #d0d8e8; border-radius: 10px; background-color: white; font-size: 15px; } /* Стили для аккордеона */ .post-processing-accordion { margin-top: 15px; border: 1px solid #d0d8e8; border-radius: 10px; overflow: hidden; } .post-processing-accordion details { background-color: #f8f9fa; } .post-processing-accordion summary { padding: 12px 15px; background: linear-gradient(135deg, #f0f4ff 0%, #e1e8ff 100%); cursor: pointer; font-weight: 600; color: #2c3e50; display: flex; align-items: center; list-style: none; /* Убираем стандартный маркер */ } .post-processing-accordion summary::marker { display: none; } .post-processing-accordion summary::after { content: '▼'; margin-left: auto; font-size: 12px; transition: transform 0.3s; } .post-processing-accordion details[open] summary::after { transform: rotate(180deg); } .accordion-content { padding: 10px; background-color: white; border-top: 1px solid #e1e5ee; } /* Панель результатов */ .results-panel { flex: 1; min-width: 300px; padding: 15px; display: flex; flex-direction: column; gap: 20px; /* ДОБАВИТЬ ВЫРАВНИВАНИЕ */ align-self: flex-start; } /* Ширина скотча: */ .duct-tape select { width: 100%; padding: 14px; /* Высота полня ввода: */ margin-top: 1px; border: 2px solid #d0d8e8; border-radius: 10px; background-color: white; font-size: 15px; } /* Поля для фольги */ .foil-tape select { width: 100%; padding: 14px; /* Высота полня ввода: */ margin-top: 1px; border: 2px solid #d0d8e8; border-radius: 10px; background-color: white; font-size: 15px; } /* Карточки */ .combined-cost-card { display: flex; background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%); border-radius: 14px; box-shadow: 0 8px 10px rgba(0, 0, 0, 0.08); border: 1px solid #e1e5ee; position: relative; overflow: hidden; } .combined-cost-card::before { content: ''; position: absolute; top: 0; left: 0; width: 5px; height: 100%; background: linear-gradient(to bottom, #4a6491, #2c3e50); } .cost-section { flex: 1; padding: 20px; text-align: center; } .total-cost-section { background: linear-gradient(135deg, #ffffff 0%, #e8f5e9 100%); border-right: 1px solid #e1e5ee; } .per-item-section { background: linear-gradient(135deg, #ffffff 0%, #ffebee 100%); } .divider { width: 1px; background: #e1e5ee; margin: 15px 0; } @media (max-width: 768px) { .combined-cost-card { flex-direction: column; } .total-cost-section { border-right: none; border-bottom: 1px solid #e1e5ee; } .divider { width: 100%; height: 1px; margin: 0; } } /* Гл. карточки */ .main-result-card { background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%); border-radius: 14px; padding: 20px; box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08); border: 1px solid #e1e5ee; position: relative; overflow: hidden; } .main-result-card::before { content: ''; position: absolute; top: 0; left: 0; width: 5px; height: 100%; background: linear-gradient(to bottom, #4a6491, #2c3e50); } .main-result-card.total-cost { background: linear-gradient(135deg, #ffffff 0%, #e8f5e9 100%); border: 2px solid #4CAF50; box-shadow: 0 10px 30px rgba(76, 175, 80, 0.2); } .main-result-card.cost-per-item { background: linear-gradient(135deg, #ffffff 0%, #ffebee 100%); border: 2px solid #f44336; box-shadow: 0 10px 30px rgba(244, 67, 54, 0.2); } .result-title { font-weight: 700; color: #4a6491; margin-bottom: 1px; font-size: 16px; display: flex; align-items: center; padding-left: 10px; } .result-value { font-size: 28px; font-weight: 800; color: #2c3e50; padding: 8px 0 5px 10px; letter-spacing: -0.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; } .result-value.smaller { font-size: 24px; } .result-value.smallest { font-size: 20px; } .cost-value { color: #2E7D32; position: relative; font-size: 32px; } .cost-value::after { content: 'руб'; font-size: 18px; font-weight: 700; color: #388E3C; margin-left: 5px; } .per-item-value { color: #D32F2F; position: relative; font-size: 32px; } .per-item-value::after { content: 'руб/шт'; font-size: 18px; font-weight: 700; color: #E53935; margin-left: 5px; } /* Карточки результатов */ .additional-cards-container { display: flex; gap: 15px; margin-top: 1px; width: 100%; } .result-card { flex: 1; background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%); border-radius: 12px; padding: 5px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); border: 1px solid #e1e5ee; text-align: center; position: relative; overflow: hidden; min-height: 80px; } .result-card::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%; } .post-processing-card::before { background: linear-gradient(to bottom, #ff9800, #f57c00); } .cost-price-card::before { background: linear-gradient(to bottom, #4caf50, #2e7d32); } .production-time-card::before { background: linear-gradient(to bottom, #2196f3, #1976d2); } .result-card .result-title { font-weight: 600; color: #4a6491; font-size: 14px; margin-bottom: 5px; } .result-card .result-value { font-size: 18px; font-weight: 700; color: #2c3e50; } @media (max-width: 768px) { .additional-cards-container { flex-direction: column; } .result-card { min-height: 70px; } } /* Список результатов */ .result-list { background: white; border-radius: 12px; padding: 15px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08); border: 1px solid #e1e5ee; /* flex-grow: 1; */ display: flex; flex-direction: column; } .result-list-title { font-weight: 700; color: #2c3e50; margin-bottom: 15px; padding-bottom: 10px; border-bottom: 2px solid #f0f4f8; font-size: 18px; display: flex; align-items: center; } .result-list-title i { margin-right: 10px; } .result-list-item { display: flex; justify-content: space-between; padding: 12px 10px; border-bottom: 1px solid #f0f4f8; font-size: 15px; } .result-list-item:last-child { border-bottom: none; } .result-list-label { color: #5a6a85; font-weight: 500; display: flex; align-items: center; } .result-list-label i { margin-right: 8px; color: #4a6491; } .result-list-value { color: #2c3e50; font-weight: 600; text-align: right; min-width: 100px; } /* Визуал */ .visualization { display: block; padding: 25px; background-color: #f8f9fa; border-top: 1px solid #e1e5ee; border-bottom: 1px solid #e1e5ee; } .generate-btn { background: linear-gradient(135deg, #4a6491, #2c3e50); color: white; border: none; padding: 10px 15px; border-radius: 8px; cursor: pointer; font-weight: 600; transition: all 0.3s; font-size: 14px; } .generate-btn:hover { background: linear-gradient(135deg, #5a74a1, #3c4e70); transform: translateY(-2px); } .generate-btn:active { transform: translateY(0); } .visual-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; } .visual-title { font-weight: 700; color: #2c3e50; font-size: 18px; } .sheet-container { background-color: #e1e5ee; border: 2px solid #a5b1c2; margin: 0 auto; position: relative; box-shadow: inset 0 0 10px rgba(0,0,0,0.1); overflow: hidden; border-radius: 6px; } .item { background-color: #e74c3c; position: absolute; border: 1px solid #c0392b; box-shadow: 0 3px 6px rgba(0,0,0,0.2); } .item.rotated { background-color: #3498db; } .legend { display: flex; justify-content: center; margin-top: 20px; gap: 30px; flex-wrap: wrap; } .legend-item { display: flex; align-items: center; font-size: 15px; color: #2c3e50; font-weight: 500; } .legend-color { width: 25px; height: 25px; margin-right: 10px; border: 1px solid rgba(0,0,0,0.1); border-radius: 4px; } .legend-sheet { background-color: #e1e5ee; } .legend-product { background-color: #e74c3c; } .legend-rotated { background-color: #3498db; } .legend-gap { background-color: #f8f9fa; border: 1px dashed #a5b1c2; } .orientation-info { background-color: #e3f2fd; padding: 10px 15px; border-radius: 8px; margin-top: 15px; font-size: 15px; display: flex; align-items: center; justify-content: center; } .orientation-info i { margin-right: 10px; font-size: 20px; } /* Инфо блок */ .info-note { background-color: #e3f2fd; border-left: 4px solid #2196f3; padding: 20px; margin: 25px; border-radius: 0 12px 12px 0; font-size: 15px; line-height: 1.6; color: #2c3e50; } /* Выбор ламинации */ .lamination-option { /* background-color: #f0f8ff; */ border-radius: 10px; padding: 15px; margin-top: 1px; } .lamination-row { display: flex; flex-wrap: wrap; gap: 15px; margin-bottom: 10px; } .lamination-group { flex: 1; min-width: 200px; } .lamination-group select { width: 100%; padding: 12px; border: 2px solid #d0d8e8; border-radius: 10px; background-color: white; font-size: 15px; } /* Блок биговки */ .creasing-option { /* background-color: #fff3e0; */ border-radius: 10px; border: 1px solid #d0e3ff; padding: 15px; margin-top: 1px; } .creasing-option .input-group2 { width: 100%; } .method-selection { display: flex; gap: 20px; margin-bottom: 15px; } .radio-option { display: flex; align-items: center; gap: 8px; cursor: pointer; padding: 8px 12px; background: white; border-radius: 8px; border: 2px solid #d0d8e8; transition: all 0.3s; } .radio-option:hover { border-color: #4a6491; background-color: #f0f4ff; } .radio-option input { margin: 0; } /* Блока скругления углов */ .corner-rounding-option { /* background-color: #f0f7ff; */ border-radius: 10px; padding: 15px; margin-top: 15px; border: 1px solid #d0e3ff; } /* Блока сверления */ .drilling-option { border-radius: 10px; padding: 15px; margin-top: 15px; border: 1px solid #d0e3ff; } .drilling-group select { width: 100%; padding: 12px; border: 2px solid #d0d8e8; border-radius: 10px; background-color: white; font-size: 15px; } @media (max-width: 768px) { .calc-content { flex-direction: column; } .results-panel { grid-template-columns: 1fr; } .sheet-container { max-width: 100%; } .calc-header h2 { font-size: 24px; } .calc-header p { font-size: 15px; } .input-row { flex-direction: column; gap: 20px; } .presets-row { flex-direction: column; } .lamination-row { flex-direction: column; gap: 10px; } } @media (max-width: 480px) { .input-panel, .results-panel { padding: 10px; } .calc-content { padding: 15px; } .visualization { padding: 15px; } .result-value { font-size: 24px; } .cost-value, .per-item-value { font-size: 26px; } .legend { gap: 15px; flex-direction: column; align-items: center; } .number-btn { width: 35px; font-size: 16px; } .preset-btn { min-width: 80px; font-size: 13px; padding: 8px 4px; } .result-list-item { flex-direction: column; gap: 5px; } .result-list-value { text-align: left; } } @media (max-width: 768px) { .calc-header { padding: 12px 15px; } .calc-header h2 { font-size: 20px; } .calc-header p { font-size: 14px; } } /* Компакт. блок размеров изделия */ .item-size-row { display: flex; flex-wrap: wrap; gap: 15px; margin-bottom: 20px; } .item-size-inputs { flex: 2; min-width: 250px; display: flex; gap: 15px; } /* .size-input-group { flex: 1; min-width: 0; } */ .presets-dropdown-container { flex: 1; min-width: 200px; } .presets-dropdown { width: 100%; padding: 12px; border: 2px solid #d0d8e8; border-radius: 10px; background-color: white; font-size: 15px; } .presets-dropdown { width: 100%; padding: 12px; border: 2px solid #d0d8e8; border-radius: 10px; background-color: white; font-size: 15px; cursor: pointer; transition: border-color 0.3s; } .presets-dropdown:hover { border-color: #4a6491; } /* Стили label для иконки поворота */ .input-group2 label { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; } /* Кнопка ротейт */ .rotate-icon-btn { background: none; border: none; cursor: pointer; width: 24px; height: 20px; padding: 4px; border-radius: 4px; display: flex; align-items: center; justify-content: center; color: #5a6a85; transition: all 0.2s; } .rotate-icon-btn:hover { background-color: rgba(74, 100, 145, 0.1); color: #2c3e50; } .rotate-icon-btn:active { transform: scale(0.9); } .rotate-icon-btn svg { display: block; stroke: currentColor; stroke-width: 2; fill: none; } @media (max-width: 768px) { .item-size-inputs { flex-direction: column; } .presets-dropdown-container { min-width: 100%; } } /* Для мобилок */ @media (max-width: 768px) { .paper-group .input-row { flex-direction: column; gap: 15px; } } .floating-cost-container { position: fixed; bottom: 0; left: 0; transform: none; background: linear-gradient(135deg, #f9f9ff 0%, #e6f0ff 100%); padding: 5px 10px; box-shadow: 0 -5px 15px rgba(0,0,0,0.1); z-index: 1000; border-top: 1px solid #d0d8e8; border-radius: 0 15px 0 0; max-width: 300px; width: auto; display: block; } .floating-cost-card { display: flex; flex-direction: column; background: white; border-radius: 10px; box-shadow: 0 5px 15px rgba(0,0,0,0.1); overflow: hidden; } .floating-cost-section { flex: 1; padding: 8px; text-align: center; border-radius: 8px; min-width: 70px; } .floating-cost-section.total-cost-section { background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%); } .floating-cost-section.per-item-section { background: linear-gradient(135deg, #ffebee 0%, #ffcdd2 100%); } .floating-result-title { font-weight: 700; color: #2c3e50; margin-bottom: 3px; font-size: 12px; } .floating-result-value { font-size: 16px; font-weight: 800; color: #2c3e50; overflow: hidden; text-overflow: ellipsis; } .floating-divider { width: 1px; background: #e1e5ee; margin: 10px 0; } .cutting-calculator-container { margin-bottom: 60px; } @media (max-width: 768px) { .floating-cost-container { display: none; bottom: 70px; /* Поднимаем над кнопкой */ } /* Показываем при активации чекбокса */ #toggle-floating:checked ~ .floating-cost-container { display: block !important; } /* Кнопка переключения */ .floating-toggle { display: flex; position: fixed; bottom: 15px; right: 15px; z-index: 1001; width: 60px; height: 60px; background: linear-gradient(135deg, #4a6491, #2c3e50); color: white; border-radius: 50%; align-items: center; justify-content: center; font-size: 24px; box-shadow: 0 5px 15px rgba(0,0,0,0.3); cursor: pointer; } .floating-toggle::after { content: "💰"; } /* Скрываем чекбокс */ #toggle-floating { display: none; } } /* Кнопка экспорта */ .export-btn { background: linear-gradient(135deg, #27ae60, #2ecc71); color: white; border: none; padding: 10px 15px; border-radius: 8px; cursor: pointer; font-weight: 600; transition: all 0.3s; font-size: 14px; margin-left: 10px; } .export-btn:hover { background: linear-gradient(135deg, #2ecc71, #27ae60); transform: translateY(-2px); } .export-btn:active { transform: translateY(0); } .visual-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; flex-wrap: wrap; } /* Группы кнопок экспорта и визуализации */ .btn-group { display: flex; gap: 10px; } /* Для десктопов: кнопки справа */ @media (min-width: 769px) { .visual-header { display: flex; justify-content: space-between; align-items: center; } .btn-group { margin-left: auto; flex-direction: row; } } /* Для мобильных: вертикальное расположение кнопок */ @media (max-width: 768px) { .visual-header { flex-direction: column; align-items: stretch; } .btn-group { width: 100%; flex-direction: column; gap: 8px; margin-top: 10px; margin-left: 0; } .btn-group button { width: 100%; box-sizing: border-box; padding: 12px 15px; font-size: 16px; margin-left: 0 !important; } /* Для очень мал. экранов */ @media (max-width: 480px) { .visual-header { padding: 10px; } .visual-title { font-size: 18px; margin-bottom: 10px; } } .share-btn { background: linear-gradient(135deg, #25D366, #128C7E); /* Зеленый цвет WhatsApp */ }