/* --- Общие стили для форм --- */
.fp-form {
    max-width: 800px;
    margin: 20px auto;
    padding: 25px;
    background: #f9f9f9;
    border: 1px solid #ddd;
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}
.fp-form h3 {
    margin-top: 0;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
}

/* --- Стили для полей --- */
.form-group {
    margin-bottom: 15px;
}
.form-group label {
    display: block;
    font-weight: bold;
    margin-bottom: 5px;
}
.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="tel"],
.form-group input[type="date"],
.form-group input[type="number"],
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box; /* Важно! */
}
.form-group-checkbox label {
    display: flex;
    align-items: center;
    font-weight: normal;
}
.form-group-checkbox input {
    margin-right: 10px;
}

/* Псевдоклассы (доп. баллы) */
.fp-form input:focus,
.fp-form select:focus,
.fp-form textarea:focus {
    border-color: #0073aa;
    box-shadow: 0 0 0 1px #0073aa;
    outline: none;
}

/* Стили для кнопки */
.fp-form button[type="submit"] {
    display: block;
    width: 100%;
    padding: 12px;
    margin-top: 20px;
    background-color: #0073aa;
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 16px;
    transition: background-color 0.2s ease;
}
.fp-form button[type="submit"]:hover {
    background-color: #005a87;
}

/* Валидация */
.form-group.has-error label {
    color: #d9534f;
}
.form-group.has-error input,
.form-group.has-error select {
    border-color: #d9534f;
}

/* --- Задание 1: Сетка для формы конференции (п. 1.3) --- */
.fp-form .form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr; /* 2 колонки */
    gap: 20px;
}
/* Растягиваем на 2 колонки */
.fp-form .form-grid .form-group-checkbox,
.fp-form .form-grid #report-theme-group {
    grid-column: 1 / -1;
}

/* --- Задание 1 и 4: Стили для таблиц (п. 1.6, 4.5) --- */
.fp-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 30px;
    font-size: 14px;
}
.fp-table th,
.fp-table td {
    border: 1px solid #ddd;
    padding: 12px;
    text-align: left;
}
.fp-table th {
    background-color: #f4f4f4;
}
/* "Зебра" для строк */
.fp-table tr:nth-child(even) {
    background-color: #f9f9f9;
}
.fp-table a.delete-link {
    color: #a00;
    text-decoration: none;
}
.fp-table a.delete-link:hover {
    color: #d00;
    text-decoration: underline;
}

/* --- Задание 3: Формы входа/регистрации (п. 3.4, 3.6) --- */
.fp-auth-form-wrapper {
    max-width: 400px;
    margin: 50px auto; /* Выравнивание по центру */
}

/* --- Задание 5: Сетка для теста (п. 5.2) --- */
.quiz-grid {
    display: grid;
    grid-template-columns: 1fr 1fr; /* 2 колонки */
    gap: 25px;
}
.quiz-grid .form-group {
    background: #fff;
    padding: 15px;
    border: 1px solid #eee;
    border-radius: 5px;
}
.quiz-grid .form-group label {
    font-weight: bold;
    margin-bottom: 10px;
}
.quiz-grid .form-group label input {
    margin-right: 8px;
}

/* --- Задание 5: Результаты теста (п. 5.3) --- */
.quiz-results {
    padding: 20px;
    background: #e7f7e7;
    border: 1px solid #c7e7c7;
    border-radius: 8px;
}
.quiz-results h3 {
    margin-top: 0;
}

/* --- Сообщения об ошибках / успехе --- */
.fp-error {
    padding: 15px;
    background: #fbeaea;
    border: 1px solid #f6c5c5;
    color: #a94442;
    border-radius: 4px;
    margin-bottom: 20px;
}
.fp-form-success {
    padding: 20px;
    background: #e7f7e7;
    border: 1px solid #c7e7c7;
    border-radius: 8px;
}

/* --- Адаптивная верстка (доп. баллы) --- */
@media (max-width: 768px) {
    .fp-form .form-grid,
    .quiz-grid {
        grid-template-columns: 1fr; /* 1 колонка на мобильных */
    }
}