Files
gadasin-quiz/style.css
2026-02-14 15:31:14 +03:00

733 lines
11 KiB
CSS

* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
body {
background: linear-gradient(135deg, #6a11cb 0%, #2575fc 100%);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 20px;
}
.container {
max-width: 1000px;
width: 100%;
background-color: white;
border-radius: 20px;
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2);
overflow: hidden;
}
header {
background: linear-gradient(to right, #4a00e0, #8e2de2);
color: white;
padding: 25px 30px;
text-align: center;
}
header h1 {
font-size: 2.2rem;
margin-bottom: 10px;
display: flex;
align-items: center;
justify-content: center;
gap: 15px;
}
header .subtitle {
font-size: 1.1rem;
opacity: 0.9;
margin-bottom: 15px;
}
.mode-indicator {
background-color: rgba(255, 255, 255, 0.15);
border-radius: 10px;
padding: 12px 20px;
margin-top: 15px;
display: inline-flex;
flex-direction: column;
align-items: center;
gap: 5px;
}
.mode-tag {
background-color: #ff9800;
color: white;
padding: 5px 15px;
border-radius: 20px;
font-weight: 600;
font-size: 0.9rem;
display: inline-flex;
align-items: center;
gap: 8px;
}
.mode-info {
font-size: 0.9rem;
opacity: 0.9;
}
.quiz-container {
padding: 30px;
}
.start-screen,
.quiz-screen,
.result-screen,
.review-screen {
transition: all 0.5s ease;
}
.hidden {
display: none !important;
}
.start-content {
text-align: center;
padding: 20px 0;
}
.start-content h2 {
color: #333;
margin-bottom: 25px;
font-size: 1.8rem;
}
.start-content ul {
text-align: left;
max-width: 700px;
margin: 0 auto 30px;
background-color: #f8f9fa;
padding: 25px;
border-radius: 15px;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
}
.start-content li {
margin-bottom: 15px;
font-size: 1.1rem;
display: flex;
align-items: flex-start;
gap: 12px;
}
.start-content li i {
color: #4a00e0;
margin-top: 3px;
}
.btn {
background: linear-gradient(to right, #4a00e0, #8e2de2);
color: white;
border: none;
padding: 15px 30px;
border-radius: 50px;
font-size: 1.1rem;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
box-shadow: 0 5px 15px rgba(74, 0, 224, 0.3);
}
.btn:hover {
transform: translateY(-3px);
box-shadow: 0 8px 20px rgba(74, 0, 224, 0.4);
}
.btn:active {
transform: translateY(0);
}
.btn:disabled {
background: #cccccc;
cursor: not-allowed;
transform: none;
box-shadow: none;
}
.check-btn {
background: linear-gradient(to right, #ff9800, #ff5722);
}
.check-btn:hover {
box-shadow: 0 8px 20px rgba(255, 87, 34, 0.4);
}
.start-btn {
padding: 18px 45px;
font-size: 1.2rem;
}
.progress-container {
margin-bottom: 30px;
}
.progress-bar {
height: 10px;
background-color: #e0e0e0;
border-radius: 5px;
overflow: hidden;
margin-bottom: 10px;
position: relative;
}
.progress-bar::after {
content: "";
display: block;
height: 100%;
width: var(--width, 0%);
background: linear-gradient(to right, #4a00e0, #8e2de2);
transition: width 0.5s ease;
position: absolute;
top: 0;
left: 0;
}
.progress-text {
text-align: right;
font-size: 1rem;
color: #666;
}
.question-container {
margin-bottom: 30px;
}
.question-header {
display: flex;
justify-content: space-between;
align-items: flex-start;
margin-bottom: 20px;
flex-wrap: wrap;
gap: 15px;
}
.question-header h2 {
color: #333;
font-size: 1.5rem;
line-height: 1.5;
flex: 1;
min-width: 300px;
}
.selection-info {
background-color: #f0f4ff;
padding: 10px 20px;
border-radius: 25px;
font-size: 1rem;
color: #4a00e0;
font-weight: 600;
display: flex;
align-items: center;
gap: 8px;
border: 2px solid #e0e0e0;
}
.selection-info i {
font-size: 1.2rem;
}
/* Блок обратной связи */
.feedback-container {
margin-bottom: 20px;
animation: fadeIn 0.5s ease;
}
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(-10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.feedback {
display: flex;
align-items: flex-start;
gap: 15px;
font-size: 1.1rem;
padding: 20px;
border-radius: 12px;
border-left: 5px solid;
}
.feedback i {
font-size: 1.8rem;
margin-top: 2px;
}
.feedback-content {
display: flex;
flex-direction: column;
gap: 5px;
}
.feedback-title {
font-weight: 700;
font-size: 1.2rem;
}
.feedback-detail {
opacity: 0.9;
font-size: 1rem;
}
.correct-feedback {
background-color: #e7f7ef;
color: #2e7d32;
border-left-color: #2e7d32;
}
.partially-feedback {
background-color: #fff8e1;
color: #f57c00;
border-left-color: #ff9800;
}
.incorrect-feedback {
background-color: #fdeaea;
color: #c62828;
border-left-color: #c62828;
}
.options-container {
display: flex;
flex-direction: column;
gap: 12px;
margin-bottom: 20px;
}
.option {
background-color: #f8f9fa;
border: 2px solid #e0e0e0;
border-radius: 12px;
padding: 18px 20px;
cursor: pointer;
transition: all 0.2s ease;
display: flex;
align-items: center;
gap: 15px;
font-size: 1.1rem;
}
.option:hover {
background-color: #eef2ff;
border-color: #8e2de2;
}
.option.selected {
background-color: #e6f7ff;
border-color: #4a00e0;
box-shadow: 0 3px 8px rgba(74, 0, 224, 0.1);
}
.option.correct {
background-color: #e7f7ef;
border-color: #2e7d32;
color: #2e7d32;
}
.option.partial {
background-color: #fff8e1;
border-color: #ff9800;
color: #f57c00;
}
.option.incorrect {
background-color: #fdeaea;
border-color: #c62828;
color: #c62828;
}
.option.checked {
cursor: default;
}
.option.checked:hover {
background-color: inherit;
border-color: inherit;
}
.option-checkbox {
width: 24px;
height: 24px;
border: 2px solid #4a00e0;
border-radius: 6px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
transition: all 0.2s ease;
}
.option.selected .option-checkbox {
background-color: #4a00e0;
color: white;
}
.option.selected .option-checkbox::after {
content: "✓";
font-weight: bold;
}
.option.correct .option-checkbox {
background-color: #2e7d32;
border-color: #2e7d32;
}
.option.partial .option-checkbox {
background-color: #ff9800;
border-color: #ff9800;
}
.option.incorrect .option-checkbox {
background-color: #c62828;
border-color: #c62828;
}
.option-text {
flex: 1;
}
.question-hint {
background-color: #f0f4ff;
padding: 12px 20px;
border-radius: 10px;
color: #4a00e0;
font-size: 1rem;
display: flex;
align-items: center;
gap: 10px;
border-left: 4px solid #4a00e0;
}
.navigation {
display: flex;
justify-content: space-between;
margin-top: 30px;
flex-wrap: wrap;
gap: 15px;
}
.prev-btn,
.check-btn,
.next-btn,
.submit-btn {
min-width: 180px;
}
.result-content {
text-align: center;
padding: 20px 0;
}
.result-content h2 {
color: #333;
margin-bottom: 25px;
font-size: 1.8rem;
}
.score-circle {
margin: 30px auto;
max-width: 300px;
}
.circle {
width: 200px;
height: 200px;
border-radius: 50%;
background: conic-gradient(#4a00e0 0%, #e0e0e0 0%);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin: 0 auto 15px;
position: relative;
}
.circle::before {
content: "";
position: absolute;
width: 170px;
height: 170px;
background-color: white;
border-radius: 50%;
}
.circle span {
font-size: 3.5rem;
font-weight: 700;
color: #333;
z-index: 1;
}
.score-label {
font-size: 1rem;
color: #666;
z-index: 1;
margin-top: 5px;
}
.percentage {
font-size: 1.8rem;
font-weight: 700;
color: #4a00e0;
}
.result-details {
display: flex;
justify-content: center;
flex-wrap: wrap;
gap: 20px;
margin: 30px 0;
}
.result-item {
display: flex;
align-items: center;
gap: 12px;
padding: 15px 25px;
border-radius: 12px;
font-size: 1.2rem;
min-width: 250px;
}
.result-item i {
font-size: 1.5rem;
}
.correct {
background-color: #e7f7ef;
color: #2e7d32;
}
.partially {
background-color: #fff8e1;
color: #f57c00;
}
.incorrect {
background-color: #fdeaea;
color: #c62828;
}
.result-actions {
display: flex;
justify-content: center;
flex-wrap: wrap;
gap: 20px;
margin-top: 30px;
}
.restart-btn,
.review-btn {
min-width: 220px;
}
.review-header {
text-align: center;
margin-bottom: 30px;
}
.review-header h2 {
color: #333;
margin-bottom: 15px;
}
.review-header p {
color: #666;
font-size: 1.1rem;
line-height: 1.6;
}
.correct-badge,
.partial-badge,
.incorrect-badge {
display: inline-flex;
align-items: center;
gap: 5px;
padding: 5px 12px;
border-radius: 15px;
font-size: 0.9rem;
margin: 0 5px;
}
.correct-badge {
background-color: #e7f7ef;
color: #2e7d32;
}
.partial-badge {
background-color: #fff8e1;
color: #f57c00;
}
.incorrect-badge {
background-color: #fdeaea;
color: #c62828;
}
.review-item {
background-color: #f8f9fa;
border-radius: 15px;
padding: 25px;
margin-bottom: 20px;
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.05);
}
.review-question {
font-size: 1.2rem;
margin-bottom: 20px;
color: #333;
font-weight: 600;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 10px;
}
.question-status {
font-size: 1rem;
padding: 5px 15px;
border-radius: 15px;
font-weight: 600;
}
.status-correct {
background-color: #e7f7ef;
color: #2e7d32;
}
.status-partial {
background-color: #fff8e1;
color: #f57c00;
}
.status-incorrect {
background-color: #fdeaea;
color: #c62828;
}
.review-options {
display: flex;
flex-direction: column;
gap: 10px;
}
.review-option {
padding: 12px 15px;
border-radius: 8px;
display: flex;
align-items: center;
gap: 10px;
border-left: 4px solid transparent;
}
.correct-answer {
background-color: #e7f7ef;
border-left-color: #2e7d32;
}
.user-correct {
background-color: #e7f7ef;
border-left-color: #2e7d32;
}
.user-partial {
background-color: #fff8e1;
border-left-color: #ff9800;
}
.user-incorrect {
background-color: #fdeaea;
border-left-color: #c62828;
}
.review-actions {
display: flex;
justify-content: center;
margin-top: 30px;
}
footer {
background-color: #f8f9fa;
padding: 20px;
text-align: center;
color: #666;
font-size: 0.9rem;
border-top: 1px solid #e0e0e0;
}
@media (max-width: 768px) {
.container {
border-radius: 15px;
}
header h1 {
font-size: 1.8rem;
}
.quiz-container {
padding: 20px;
}
.question-header {
flex-direction: column;
align-items: flex-start;
}
.question-header h2 {
min-width: auto;
}
.navigation {
flex-direction: column;
align-items: stretch;
}
.prev-btn,
.check-btn,
.next-btn,
.submit-btn {
width: 100%;
min-width: auto;
}
.result-details {
flex-direction: column;
align-items: center;
}
.result-item {
width: 100%;
max-width: 300px;
min-width: auto;
}
.result-actions {
flex-direction: column;
align-items: center;
}
.restart-btn,
.review-btn {
width: 100%;
max-width: 300px;
min-width: auto;
}
}