/* ====================== GRADE CALCULATOR DOM STYLES ====================== */ .grade-form { background: #f5f5f5; padding: 2rem; border-radius: 8px; margin-bottom: 2rem; } .form-group { margin-bottom: 1.5rem; } .form-group label { display: block; margin-bottom: 0.5rem; font-weight: 600; color: #1e293b; } .form-input { width: 100%; padding: 0.75rem; border: 2px solid #ddd; border-radius: 4px; font-size: 1rem; transition: all 0.3s ease; } .form-input:focus { outline: none; border-color: #667eea; box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1); } .form-input.error { border-color: #ef4444; background-color: #fee2e2; } .error-message { display: block; color: #ef4444; font-size: 0.875rem; margin-top: 0.5rem; font-weight: 500; } #calculateBtn { width: 100%; padding: 0.75rem 1.5rem; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; border: none; border-radius: 4px; font-size: 1rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; } #calculateBtn:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(102, 126, 234, 0.3); } #calculateBtn:active { transform: translateY(0); } /* Result Container */ .result-container { background: linear-gradient(135deg, #f0f4ff 0%, #f5f0ff 100%); padding: 2rem; border-radius: 8px; border-left: 4px solid #667eea; } .result-container h3 { color: #1e293b; margin-bottom: 1rem; } #resultText { font-size: 1.25rem; font-weight: 600; color: #1e293b; margin-bottom: 1.5rem; } /* Progress Bar */ .progress-bar-container { width: 100%; height: 30px; background: #e2e8f0; border-radius: 15px; overflow: hidden; margin: 1rem 0; } .progress-bar { height: 100%; background: linear-gradient(90deg, #22c55e 0%, #16a34a 100%); border-radius: 15px; transition: width 0.5s ease; display: flex; align-items: center; justify-content: flex-end; padding-right: 0.5rem; color: white; font-weight: 600; font-size: 0.9rem; } .progress-bar.ausreichend { background: linear-gradient(90deg, #eab308 0%, #ca8a04 100%); } .progress-bar.befriedigend { background: linear-gradient(90deg, #f97316 0%, #d97706 100%); } .progress-bar.nicht-bestanden { background: linear-gradient(90deg, #ef4444 0%, #dc2626 100%); } .percentage-text { color: #666; font-size: 0.9rem; margin-top: 1rem; text-align: center; } /* Dark Mode Adjustments */ body.dark .grade-form { background: #2d3748; } body.dark .form-group label { color: #e2e8f0; } body.dark .form-input { background: #1a202c; color: #e2e8f0; border-color: #4a5568; } body.dark .form-input:focus { border-color: #667eea; box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.2); } body.dark .form-input.error { background: #742a2a; border-color: #ef4444; } body.dark .error-message { color: #fca5a5; } body.dark .result-container { background: linear-gradient(135deg, #1e3a4d 0%, #2a1f4d 100%); border-left-color: #667eea; } body.dark .result-container h3 { color: #e2e8f0; } body.dark #resultText { color: #e2e8f0; } body.dark .progress-bar-container { background: #4a5568; } body.dark .percentage-text { color: #a0aec0; } /* Responsive Design */ @media (max-width: 768px) { .grade-form { padding: 1.5rem; } .result-container { padding: 1.5rem; } #resultText { font-size: 1.1rem; } .progress-bar-container { height: 25px; } }