	/* Container principal */
	.gpa-form-container {
		max-width: 1000px;
		margin: 40px auto;
		background: #fff;
		padding: 45px;
		border-radius: 15px;
		box-shadow: 0 5px 25px rgba(0,0,0,0.1);
	}
	
	/* Seções */
	.gpa-section {
		margin-bottom: 40px;
		padding-bottom: 30px;
		border-bottom: 2px solid #f0f0f0;
	}
	
	.gpa-section:last-of-type {
		border-bottom: none;
	}
	
	.gpa-section h3 {
		color: #2c3e50;
		font-size: 22px;
		margin-bottom: 20px;
	}
	
	/* Grid layout */
	.gpa-row {
		display: flex;
		gap: 25px;
		margin-bottom: 20px;
	}
	
	.gpa-col-2 { flex: 1; }
	.gpa-col-3 { flex: 1; }
	
	/* Campos */
	.gpa-field {
		margin-bottom: 25px;
	}
	
	.gpa-field label {
		display: block;
		font-weight: 600;
		margin-bottom: 10px;
		color: #34495e;
		font-size: 15px;
	}
	
	.gpa-field input[type="text"],
	.gpa-field select,
	.gpa-field textarea {
		width: 100%;
		padding: 14px 18px;
		border: 2px solid #e0e0e0;
		border-radius: 8px;
		font-size: 15px;
		transition: all 0.3s ease;
		background: #fafafa;
	}
	
	.gpa-field input:focus,
	.gpa-field select:focus,
	.gpa-field textarea:focus {
		outline: none;
		border-color: #3498db;
		background: #fff;
		box-shadow: 0 0 0 4px rgba(52, 152, 219, 0.1);
	}
	
	/* Checkboxes */
	.gpa-checkbox-grid {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
		gap: 15px;
		margin-top: 15px;
	}
	
	.gpa-checkbox-label {
		display: flex;
		align-items: center;
		padding: 15px;
		background: #f8f9fa;
		border: 2px solid #e9ecef;
		border-radius: 8px;
		cursor: pointer;
		transition: all 0.2s;
	}
	
	.gpa-checkbox-label:hover {
		background: #e9ecef;
		transform: translateY(-2px);
	}
	
	.gpa-checkbox-label input[type="checkbox"] {
		margin-right: 10px;
		width: 18px;
		height: 18px;
	}
	
	/* NOVO: Seletor de Bimestres */
	.gpa-bimestres-selector {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
		gap: 15px;
		margin-top: 15px;
	}
	
	.bimestre-checkbox-label {
		display: flex;
		align-items: center;
		padding: 18px 20px;
		background: linear-gradient(135deg, #e3f2fd 0%, #f0f8ff 100%);
		border: 3px solid #2196f3;
		border-radius: 10px;
		cursor: pointer;
		transition: all 0.3s ease;
		font-weight: 600;
	}
	
	.bimestre-checkbox-label:hover {
		background: linear-gradient(135deg, #bbdefb 0%, #e3f2fd 100%);
		transform: translateY(-3px);
		box-shadow: 0 5px 15px rgba(33, 150, 243, 0.3);
	}
	
	.bimestre-checkbox-label input[type="checkbox"] {
		margin-right: 12px;
		width: 20px;
		height: 20px;
		cursor: pointer;
	}
	
	.bimestre-checkbox-text {
		font-size: 16px;
		color: #1565c0;
	}
	
	/* Botão principal */
	.gpa-submit-btn {
		width: 100%;
		background: linear-gradient(135deg, #3498db, #2980b9);
		color: white;
		font-size: 18px;
		font-weight: 600;
		padding: 18px 35px;
		border: none;
		border-radius: 10px;
		cursor: pointer;
		transition: all 0.3s ease;
		box-shadow: 0 5px 20px rgba(52, 152, 219, 0.3);
	}
	
	.gpa-submit-btn:hover {
		transform: translateY(-3px);
		box-shadow: 0 8px 25px rgba(52, 152, 219, 0.4);
	}
	
	.gpa-submit-btn:disabled {
		opacity: 0.7;
		cursor: not-allowed;
	}
	
	/* Indicador de Progresso */
	.progress-steps {
		display: flex;
		justify-content: space-between;
		max-width: 900px;
		margin: 0 auto 40px;
		padding: 30px;
		background: #f8f9fa;
		border-radius: 10px;
	}
	
	.progress-step {
		text-align: center;
		flex: 1;
		position: relative;
	}
	
	.progress-step:not(:last-child)::after {
		content: '→';
		position: absolute;
		right: -20px;
		top: 20px;
		font-size: 24px;
		color: #ddd;
	}
	
	.step-icon {
		font-size: 40px;
		margin-bottom: 10px;
		opacity: 0.3;
		transition: all 0.3s;
	}
	
	.step-label {
		font-size: 14px;
		color: #666;
		font-weight: 600;
	}
	
	.progress-step.completed .step-icon {
		opacity: 1;
		filter: grayscale(0);
	}
	
	.progress-step.completed .step-label {
		color: #27ae60;
	}
	
	.progress-step.active .step-icon {
		opacity: 1;
		animation: pulse 1.5s ease-in-out infinite;
	}
	
	.progress-step.active .step-label {
		color: #3498db;
	}
	
	@keyframes pulse {
		0%, 100% { transform: scale(1); }
		50% { transform: scale(1.1); }
	}
	
	/* Loading */
	#gpa-loading-container {
		margin: 40px auto;
		max-width: 600px;
	}
	
	.gpa-loading-box {
		background: #fff;
		padding: 50px;
		border-radius: 20px;
		box-shadow: 0 10px 40px rgba(0,0,0,0.1);
		text-align: center;
	}
	
	.gpa-spinner {
		display: flex;
		justify-content: center;
		gap: 15px;
		margin-bottom: 30px;
	}
	
	.spinner-circle {
		width: 15px;
		height: 15px;
		background: #3498db;
		border-radius: 50%;
		animation: spinner-bounce 1.4s ease-in-out infinite;
	}
	
	.spinner-circle:nth-child(1) { animation-delay: -0.32s; }
	.spinner-circle:nth-child(2) { animation-delay: -0.16s; }
	
	@keyframes spinner-bounce {
		0%, 80%, 100% {
			transform: scale(0.8) translateY(0);
			opacity: 0.5;
		}
		40% {
			transform: scale(1.2) translateY(-10px);
			opacity: 1;
		}
	}
	
	#gpa-loading-title {
		color: #2c3e50;
		font-size: 24px;
		margin-bottom: 15px;
		font-weight: 600;
	}
	
	#gpa-loading-message {
		color: #7f8c8d;
		font-size: 16px;
		margin-bottom: 30px;
	}
	
	.gpa-progress-bar {
		width: 100%;
		height: 8px;
		background: #ecf0f1;
		border-radius: 10px;
		overflow: hidden;
	}
	
	.gpa-progress-fill {
		height: 100%;
		background: linear-gradient(90deg, #3498db, #2980b9);
		border-radius: 10px;
		width: 0%;
		transition: width 2s ease;
	}
	
	/* Step Items (Etapas Progressivas) */
	.step-item {
		display: flex;
		align-items: center;
		gap: 12px;
		padding: 10px 0;
		font-size: 14px;
		color: #555;
		transition: all 0.3s ease;
	}
	
	.step-item .step-icon {
		font-size: 18px;
		min-width: 25px;
		text-align: center;
	}
	
	.step-item .step-text {
		flex: 1;
		font-weight: 500;
	}
	
	.step-item.waiting {
		opacity: 0.5;
	}
	
	.step-item.active {
		color: #3498db;
		font-weight: 600;
		animation: pulse-step 1.5s ease-in-out infinite;
	}
	
	.step-item.completed {
		color: #27ae60;
		font-weight: 500;
	}
	
	@keyframes pulse-step {
		0%, 100% { opacity: 1; }
		50% { opacity: 0.6; }
	}
	
	/* Resultados */
	.resultado-secao {
		background: #fff;
		padding: 30px;
		border-radius: 10px;
		margin-bottom: 30px;
		box-shadow: 0 2px 10px rgba(0,0,0,0.1);
		border-left: 5px solid #3498db;
		transition: all 0.3s ease;
	}
	
	.resultado-header h3 {
		color: #27ae60;
		margin-bottom: 20px;
		font-size: 24px;
	}
	
	.resultado-conteudo {
		line-height: 1.8;
	}
	
	.resultado-conteudo table {
		width: 100%;
		border-collapse: collapse;
		margin: 20px 0;
		box-shadow: 0 2px 8px rgba(0,0,0,0.1);
	}
	
	.resultado-conteudo table th,
	.resultado-conteudo table td {
		border: 1px solid #ddd;
		padding: 14px;
		text-align: left;
	}
	
	.resultado-conteudo table th {
		background-color: #3498db;
		color: white;
		font-weight: 600;
	}
	
	.resultado-conteudo table tr:nth-child(even) {
		background-color: #f8f9fa;
	}
	
	.resultado-conteudo h3 {
		color: #2980b9;
		margin-top: 30px;
		margin-bottom: 15px;
	}
	
	.resultado-conteudo h4 {
		color: #34495e;
		margin-top: 20px;
		margin-bottom: 10px;
	}
	
	/* Botões de Controle */
	.control-buttons-container {
		text-align: center;
		padding: 40px;
		background: #f8f9fa;
		border-radius: 10px;
		margin: 30px 0;
	}
	
	.btn-continuar,
	.btn-finalizar-parcial,
	.btn-salvar-completo {
		display: inline-block;
		padding: 18px 40px;
		margin: 10px;
		border: none;
		border-radius: 8px;
		font-size: 18px;
		font-weight: 600;
		cursor: pointer;
		transition: all 0.3s;
	}
	
	.btn-continuar {
		background: linear-gradient(135deg, #3498db, #2980b9);
		color: white;
		box-shadow: 0 5px 15px rgba(52, 152, 219, 0.3);
	}
	
	.btn-continuar:hover {
		transform: translateY(-3px);
		box-shadow: 0 8px 20px rgba(52, 152, 219, 0.4);
	}
	
	.btn-finalizar-parcial {
		background: #95a5a6;
		color: white;
	}
	
	.btn-finalizar-parcial:hover {
		background: #7f8c8d;
	}
	
	.btn-salvar-completo {
		background: linear-gradient(135deg, #27ae60, #229954);
		color: white;
		box-shadow: 0 5px 15px rgba(39, 174, 96, 0.3);
	}
	
	.btn-salvar-completo:hover {
		transform: translateY(-3px);
		box-shadow: 0 8px 20px rgba(39, 174, 96, 0.4);
	}
	
	/* NOVO: Botões de Regeneração */
	.regenerate-buttons-container {
		background: #fff3e0;
		padding: 25px;
		border-radius: 10px;
		border: 2px dashed #ff9800;
	}
	
	.regenerate-grid {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
		gap: 15px;
		margin-top: 15px;
	}
	
	.btn-regenerar {
		padding: 14px 25px;
		background: linear-gradient(135deg, #ff9800, #f57c00);
		color: white;
		border: none;
		border-radius: 8px;
		font-size: 16px;
		font-weight: 600;
		cursor: pointer;
		transition: all 0.3s ease;
		box-shadow: 0 3px 10px rgba(255, 152, 0, 0.3);
	}
	
	.btn-regenerar:hover {
		transform: translateY(-3px);
		box-shadow: 0 6px 15px rgba(255, 152, 0, 0.4);
	}
	
	/* Estado visual de botões desabilitados durante loading */
	.disabled-state {
		opacity: 0.5 !important;
		cursor: not-allowed !important;
		pointer-events: none !important;
		position: relative;
	}
	
	.disabled-state::after {
		content: '⏳ Aguarde...';
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		background: rgba(0,0,0,0.8);
		color: white;
		padding: 5px 10px;
		border-radius: 4px;
		font-size: 12px;
		white-space: nowrap;
		opacity: 0;
		animation: fade-in-out 2s infinite;
	}
	
	@keyframes fade-in-out {
		0%, 100% { opacity: 0; }
		50% { opacity: 1; }
	}
	
	/* Botões de Exportação */
	#gpa-export-buttons {
		text-align: center;
		margin-top: 40px;
		padding: 35px;
		background: #f8f9fa;
		border-radius: 12px;
	}
	
	#gpa-export-buttons h3 {
		margin-bottom: 25px;
		color: #2c3e50;
		font-size: 24px;
	}
	
	.export-buttons-grid {
		display: flex;
		justify-content: center;
		gap: 15px;
		flex-wrap: wrap;
	}
	
	.export-btn {
		background: #27ae60;
		color: white;
		padding: 14px 40px;
		border: none;
		border-radius: 8px;
		cursor: pointer;
		font-size: 16px;
		transition: all 0.3s ease;
		min-width: 200px;
		font-weight: 600;
	}
	
	.export-btn:hover {
		background: #229954;
		transform: translateY(-3px);
		box-shadow: 0 5px 15px rgba(39, 174, 96, 0.3);
	}
	
	/* NOVO: Botão Copiar */
	.btn-copiar {
		background: linear-gradient(135deg, #9b59b6, #8e44ad) !important;
		font-size: 18px !important;
		padding: 18px 45px !important;
		min-width: auto !important;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 12px;
		box-shadow: 0 5px 20px rgba(155, 89, 182, 0.3);
	}
	
	.btn-copiar:hover {
		background: linear-gradient(135deg, #8e44ad, #7d3c98) !important;
		box-shadow: 0 8px 25px rgba(155, 89, 182, 0.4) !important;
	}
	
	.btn-copiar-icon {
		font-size: 22px;
	}
	
	/* NOVO: Botão Novo Planejamento */
	.btn-novo {
		background: linear-gradient(135deg, #e74c3c, #c0392b);
		color: white;
		padding: 16px 40px;
		border: none;
		border-radius: 8px;
		cursor: pointer;
		font-size: 17px;
		font-weight: 600;
		transition: all 0.3s ease;
		box-shadow: 0 5px 15px rgba(231, 76, 60, 0.3);
	}
	
	.btn-novo:hover {
		background: linear-gradient(135deg, #c0392b, #a93226);
		transform: translateY(-3px);
		box-shadow: 0 8px 20px rgba(231, 76, 60, 0.4);
	}
	
	#btn-docx { background: #3498db; }
	#btn-docx:hover { background: #2980b9; }
	
	#btn-print { background: #e67e22; }
	#btn-print:hover { background: #d35400; }
	
	/* Footer */
	.gpa-footer-note {
		text-align: center;
		font-size: 14px;
		color: #7f8c8d;
		margin-top: 20px;
	}
	
	/* Responsividade */
	@media (max-width: 768px) {
		.gpa-form-container {
			padding: 25px;
		}
		
		.gpa-row {
			flex-direction: column;
		}
		
		.gpa-checkbox-grid {
			grid-template-columns: 1fr;
		}
		
		.gpa-bimestres-selector {
			grid-template-columns: 1fr;
		}
		
		.progress-steps {
			flex-direction: column;
			gap: 20px;
		}
		
		.progress-step:not(:last-child)::after {
			content: '↓';
			right: auto;
			top: auto;
			bottom: -25px;
			left: 50%;
			transform: translateX(-50%);
		}
		
		.export-buttons-grid {
			flex-direction: column;
		}
		
		.export-btn {
			width: 100%;
		}
		
		.regenerate-grid {
			grid-template-columns: 1fr;
		}
	}
	
	/* Impressão */
	@media print {
		body * {
			visibility: hidden;
		}
		
		#gpa-resultados, #gpa-resultados * {
			visibility: visible;
		}
		
		#gpa-resultados {
			position: absolute;
			left: 0;
			top: 0;
			width: 100%;
		}
		
		.resultado-header,
		.resultado-secao {
			page-break-inside: avoid;
		}
	}
