body {
    font-family: Arial, sans-serif;
    margin: 20px;
    background-color: #f4f4f4; /* Light grey background */
    color: #333;
}

h1, h2 {
    color: #333;
    text-align: center;
    margin-bottom: 20px;
}

.container {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 800px; /* Limit container width */
    margin: 0 auto; /* Center container */
    background-color: #fff; /* White background for container */
    padding: 20px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* Subtle shadow */
    border-radius: 8px; /* Rounded corners */
}

form {
    margin-bottom: 20px;
    padding: 15px;
    border: 1px solid #eee;
    border-radius: 5px;
    background-color: #f9f9f9;
}

label {
    display: block;
    margin-top: 10px;
    font-weight: bold;
}

input, select, button {
    margin-top: 5px;
    padding: 10px;
    width: calc(100% - 22px); /* Adjust width for padding and border */
    max-width: 400px;
    box-sizing: border-box;
    border: 1px solid #ccc;
    border-radius: 4px;
}

button {
    background-color: #007bff; /* Primary blue button */
    color: white;
    border: none;
    cursor: pointer;
    transition: background-color 0.3s ease;
    padding: 10px 15px; /* Add horizontal padding */
    width: auto; /* Auto width for buttons */
    display: inline-block; /* Allow buttons to be side-by-side if needed */
    margin-right: 10px; /* Space between buttons */
}

button:hover {
    background-color: #0056b3; /* Darker blue on hover */
}

button:disabled {
    background-color: #cccccc;
    cursor: not-allowed;
}

.flash-message {
    padding: 12px;
    margin-bottom: 20px;
    border: 1px solid transparent; /* Use border-color for specific types */
    border-radius: 4px;
    text-align: center;
    font-weight: bold;
}

.flash-success { border-color: #28a745; background-color: #d4edda; color: #155724; }
.flash-error { border-color: #dc3545; background-color: #f8d7da; color: #721c24; }
.flash-warning { border-color: #ffc107; background-color: #fff3cd; color: #856404; }

.collapsible {
    background-color: #e9ecef; /* Light grey button */
    color: #495057; /* Dark text */
    cursor: pointer;
    padding: 12px;
    width: 100%;
    max-width: 500px;
    border: none;
    text-align: left; /* Align text left */
    outline: none;
    font-size: 18px; /* Larger font */
    transition: background-color 0.3s ease;
    margin-top: 15px;
    border-radius: 5px;
    font-weight: bold;
}

.collapsible:hover {
    background-color: #d3d9df;
}

.collapsible.active {
    background-color: #ced4da;
}

.content {
    padding: 0 18px; /* Добавляем горизонтальный паддинг, но убираем вертикальный */
    max-height: 0;   /* Изначально контент сжат по высоте */
    overflow: hidden;
    transition: max-height 0.3s ease-out; /* Плавный переход для высоты */
    background-color: #fefefe;
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    box-sizing: border-box;
    border: 1px solid #eee;
    border-top: none;
    border-radius: 0 0 8px 8px;
}

.content h3 { /* Style for internal content headings */
    margin-top: 0;
    color: #555;
    border-bottom: 1px solid #eee;
    padding-bottom: 5px;
    margin-bottom: 10px;
}

.content p { /* Style for instruction paragraphs */
    font-size: 14px;
    color: #555;
    line-height: 1.5;
    margin-bottom: 15px;
}

table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 15px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

th, td {
    border: 1px solid #ddd;
    padding: 10px;
    text-align: left;
}

th {
    background-color: #f2f2f2;
    font-weight: bold;
}

tbody tr:nth-child(even) { /* Zebra striping */
    background-color: #f8f8f8;
}

.user-info {
    text-align: right;
    margin-bottom: 15px;
    padding-right: 20px;
    font-size: 0.9em;
    color: #555;
}

.user-info a {
    color: #007bff;
    text-decoration: none;
}

.user-info a:hover {
    text-decoration: underline;
}

hr {
    margin: 20px 0;
    border: 0;
    border-top: 1px solid #ccc;
}

small {
    color: #666;
}

/* Add this block to your style.css */
.auth-container {
    max-width: 400px; /* Максимальная ширина блока */
    margin: 50px auto; /* Центрирование по горизонтали и отступ сверху */
    padding: 20px;
    background-color: #fff; /* Белый фон */
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* Легкая тень */
    border-radius: 8px; /* Скругленные углы */
    text-align: center; /* Выравнивание содержимого по центру */
}

.auth-container h1 {
    margin-top: 0;
    margin-bottom: 20px;
    color: #333;
}

.auth-container form {
    padding: 0; /* Убираем внутренние отступы формы, т.к. они есть у контейнера */
    border: none; /* Убираем рамку формы */
    background-color: transparent; /* Прозрачный фон формы */
}

.auth-container label {
    text-align: left; /* Выравниваем метки по левому краю внутри центрированного блока */
    display: block; /* Метка занимает всю ширину */
    margin-bottom: 5px; /* Отступ снизу метки */
}

.auth-container input[type="text"],
.auth-container input[type="password"] {
     width: 100%; /* Поля ввода занимают всю ширину контейнера */
     max-width: none; /* Отменяем ограничение ширины из общих правил input */
     margin-bottom: 15px; /* Отступ снизу поля ввода */
     box-sizing: border-box; /* Учитываем padding и border в ширине */
}

.auth-container button {
    width: 100%; /* Кнопка занимает всю ширину */
    max-width: none; /* Отменяем ограничение ширины */
    margin-top: 10px;
}

.auth-container p {
    margin-top: 20px;
    font-size: 0.9em;
    color: #555;
}

/* Дополнительно стилизуем флеш-сообщения внутри контейнера */
.auth-container .flash-message {
     margin-left: auto;
     margin-right: auto;
     max-width: 350px; /* Ограничиваем ширину флеш-сообщений */
     margin-bottom: 15px; /* Отступ снизу */
}

/* Корректировка для чекбокса "Remember Me" */
.auth-container label[for="remember"] {
    display: inline-block; /* Делаем метку строчно-блочным элементом */
    text-align: left; /* Выравнивание текста метки */
    margin-top: 5px;
    margin-bottom: 15px; /* Отступ снизу */
    font-weight: normal; /* Убираем жирность метки чекбокса */
    width: auto; /* Ширина по содержимому */
}

.auth-container input[type="checkbox"] {
    width: auto; /* Чекбокс не должен занимать всю ширину */
    margin-right: 5px; /* Отступ справа от чекбокса до текста */
    vertical-align: middle; /* Выравнивание по вертикали */
    box-shadow: none; /* Убираем тень, если есть */
}