body {
    margin: 1rem 5rem;
    font-size: 1.5rem;
    line-height: 1.5em;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

/* Copier depuis le site de tp (Copyright Pr. Daaif) */
code {
    background-color: #eeeeee;
    padding: 2px 6px;
    border-radius: 3px;
    font-size: 0.9em;
    color: #e83e8c;
    font-size: 87.5%;
    word-wrap: break-word;
    font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 1em;
}

/* =========================================
   Exercice 1 : Sélecteurs et spécificité
   ========================================= */
/* Layout */
.main-layout {
    display: flex;
    gap: 40px;
}

.preview-pane {
    flex: 1;
    border: 1px solid silver;
    padding: 20px;
}

.task-list {
    flex: 1;
}

.task-card {
    border: 1px solid silver;
    padding: 15px;
    margin-bottom: 15px;
    background-color: #f7f7f7;
    cursor: default;
}

.task-card:hover {
    background-color: #e2e2e2;
}

/* Selectors */
.main-layout:has(.task-1:hover) .preview-pane nav.main-nav a {
    background-color: yellow;
    outline: 2px solid red;
}

.main-layout:has(.task-2:hover) .preview-pane nav.main-nav a.active {
    background-color: yellow;
    outline: 2px solid red;
}

.main-layout:has(.task-3:hover) .preview-pane article.featured {
    background-color: yellow;
    outline: 2px solid red;
}

.main-layout:has(.task-4:hover) .preview-pane article p:first-of-type {
    background-color: yellow;
    outline: 2px solid red;
}

.main-layout:has(.task-5:hover) .preview-pane li:nth-child(odd) {
    background-color: yellow;
    outline: 2px solid red;
}

.main-layout:has(.task-6:hover) .preview-pane li:nth-child(even) {
    background-color: yellow;
    outline: 2px solid red;
}

/* =========================================
   Exercice 2 : Box Model
   ========================================= */
.box {
    width: 600px;
    height: 600px;
    background-color: lightblue;
    margin: 0 auto;
}

.box-container {
    display: grid;
    place-content: center;
}

/* =========================================
   Exercice 3 : Flexbox
   ========================================= */
.navbar {
    color: white;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: #333;
    padding: 10px 30px;
}

.nav-links {
    display: flex;
    list-style: none;
    gap: 20px;
}

.nav-links a {
    color: white;
    text-decoration: none;
}

.cards {
    display: flex;
    gap: 20px;
}

.card {
    flex: 1;
    border: 1px solid silver;
    padding: 15px;
    background-color: #f7f7f7;
}

.card-link {
    display: inline-block;
    margin-top: auto;
    background-color: #007bff;
    color: white;
    padding: 8px 15px;
    text-decoration: none;
    border-radius: 4px;
}

/* =========================================
   Exercice 4 : CSS Grid
   ========================================= */
.grid-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
}

.grid-cards .card {
    border: 1px solid #ccc;
    padding: 15px;
    background-color: #f9f9f9;
}

.page-layout {
    display: grid;
    grid-template-areas:
        "header header"
        "sidebar main"
        "footer footer";
    grid-template-columns: 200px 1fr;
    grid-template-rows: auto 1fr auto;
    height: 400px;
    gap: 10px;
}

.header {
    grid-area: header;
    background-color: #333;
    color: white;
    padding: 15px;
}

.sidebar {
    grid-area: sidebar;
    background-color: #f4f4f4;
    padding: 15px;
}

.main {
    grid-area: main;
    background-color: #e9e9e9;
    padding: 15px;
}

.footer {
    grid-area: footer;
    background-color: #333;
    color: white;
    padding: 15px;
    text-align: center;
}

/* =========================================
   Exercice 7 : Transitions et animations
   ========================================= */
.btn {
    padding: 10px 20px;
    background-color: #007bff;
    color: white;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.btn:hover {
    background-color: #0056b3;
}

.spinner {
    width: 50px;
    height: 50px;
    border: 5px solid #f3f3f3;
    border-top: 5px solid #3498db;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}