form { padding: 35px; }
.section { background: #f8faf8; border-radius: 16px; padding: 25px; margin-bottom: 30px; border: 1px solid #e2e8e2; box-shadow: 0 1px 3px rgba(0,0,0,0.05); }
.section-title { font-size: 22px; font-weight: bold; color: #1b5e20; margin-bottom: 20px; padding-bottom: 12px; border-bottom: 3px solid #2e7d32; display: flex; align-items: center; gap: 10px; }
.section-title::before { font: var(--fa-font-solid); content: "\f15c"; font-size: 18px; margin-left: 8px; }
.question-group { margin-bottom: 20px; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 15px; }
.question-label { width: 260px; font-weight: 600; padding-top: 10px; color: #333; }
.question-input { flex: 1; min-width: 250px; }
input, select, textarea { width: 100%; padding: 12px 15px; border: 1px solid #ccc; border-radius: 8px; font-size: 14px; font-family: inherit; transition: all 0.3s ease; }
input:focus, select:focus, textarea:focus { outline: none; border-color: #2e7d32; box-shadow: 0 0 0 3px rgba(46,125,50,0.1); }
.radio-group, .checkbox-group { display: flex; gap: 25px; flex-wrap: wrap; padding: 10px 0; }
.radio-group label, .checkbox-group label { display: flex; align-items: center; gap: 8px; cursor: pointer; font-weight: normal; }
.options-group { display: flex; gap: 20px; flex-wrap: wrap; }
.options-group label { display: flex; align-items: center; gap: 6px; }
.knowledge-table { overflow-x: auto; margin-top: 15px; }
.knowledge-table table { width: 100%; border-collapse: collapse; font-size: 14px; }
.knowledge-table th, .knowledge-table td { border: 1px solid #ddd; padding: 12px 8px; text-align: center; vertical-align: middle; }
.knowledge-table th { background: #2e7d32; color: white; font-weight: 600; }
.knowledge-table td:first-child { text-align: right; font-weight: 500; background: #f5f5f5; width: 55%; }
.knowledge-table td input[type="radio"] { width: 18px; height: 18px; cursor: pointer; }
.sub-section { margin-top: 20px; padding-top: 15px; border-top: 1px dashed #ccc; }
.sub-section-title { font-size: 18px; font-weight: bold; color: #2e7d32; margin-bottom: 15px; }
.btn-submit { background: linear-gradient(135deg, #1b5e20, #2e7d32); color: white; border: none; padding: 16px 35px; font-size: 18px; font-weight: bold; border-radius: 12px; cursor: pointer; width: 100%; margin-top: 20px; transition: all 0.3s ease; }
.btn-submit:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(46,125,50,0.3); }
.success { background: #c8e6c9; color: #1b5e20; padding: 18px; border-radius: 12px; margin: 20px; text-align: center; border-right: 5px solid #2e7d32; font-weight: bold; }
.error { background: #ffebee; color: #c62828; padding: 18px; border-radius: 12px; margin: 20px; text-align: center; border-right: 5px solid #c62828; font-weight: bold; }
.required-star { color: #c62828; margin-right: 4px; }
small { color: #666; font-size: 12px; }
hr { margin: 20px 0; border: none; border-top: 1px solid #e0e0e0; }
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }

@media (max-width: 768px) {
    .question-group { flex-direction: column; }
    .question-label { width: 100%; margin-bottom: 5px; }
    .knowledge-table th, .knowledge-table td { padding: 8px 4px; font-size: 12px; }
    form { padding: 20px; }
    .section { padding: 15px; }
}