html, body { overflow-x: hidden; } :root { --bg-color: #f0f4f8; --text-color: #333; --container-bg: #ffffff; } body.dark-mode { --bg-color: #333; --text-color: #f0f4f8; --container-bg: #444; } .afbeelding-container img.light-mode { display: block; margin: 0 auto; } .afbeelding-container img.dark-mode { display: none; margin: 0 auto; } body.dark-mode .afbeelding-container img.light-mode { display: none; margin: 0 auto; } body.dark-mode .afbeelding-container img.dark-mode { display: block; margin: 0 auto; } body { font-family: 'Poppins', sans-serif; margin: 0; padding: 0; background-color: var(--bg-color); color: var(--text-color); display: flex; flex-direction: row; min-height: 100vh; box-sizing: border-box; padding-top: 80px; opacity: 0; transition: opacity 0.5s ease-in-out; } body.loaded { opacity: 1; } .header { background-color: #7B1FA2; padding: 10px; text-align: center; color: white; width: 100%; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.15); position: fixed; top: 0; left: 0; z-index: 10; transition: transform 0.3s ease; } .header.hidden { transform: translateY(-100%); } .header h1 { margin: 0; font-size: 2.5em; font-weight: 700; text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4); } .sidebar { width: 200px; padding: 20px; background-color: transparent; border-radius: 10px; margin-right: 20px; position: fixed; top: 80px; left: 0; height: calc(100vh - 80px); z-index: 5; } .header.hidden + .sidebar { top: 0; } #mode-toggle { margin-bottom: 20px; padding: 10px; border: none; background-color: #7B1FA2; color: white; border-radius: 8px; cursor: pointer; width: 100%; transition: transform 0.2s, background-color 0.2s; box-shadow: 0 6px #471255; } #mode-toggle:hover { transform: scale(1.1); } .sidebar-links { list-style-type: none; padding: 0; margin: 0; } .sidebar-links li { margin: 10px 0; position: relative; } .sidebar-links a { text-decoration: none; color: var(--text-color); font-size: 18px; padding: 10px; display: block; border-radius: 4px; transition: background-color 0.3s; } .sidebar-links a:hover, .sidebar-links a.active { background-color: #ddd; } body.dark-mode .sidebar-links a:hover, body.dark-mode .sidebar-links a.active { background-color: #3f4045; } .afbeelding-container img.light-mode, .afbeelding-container img.dark-mode { border: none; border-radius: 0; box-shadow: none; } .container { background-color: var(--container-bg); border-radius: 20px; border: 1px solid black; box-shadow: 0 8px 20px rgba(0, 0, 0, 84), inset 0 -4px 8px rgba(0, 0, 0, 0.13); padding: 40px; max-width: 800px; margin: 20px auto; width: 90%; text-align: left; flex-grow: 1; padding-top: 40px; } .intro, .chapters { margin-bottom: 30px; } h2 { text-align: center; } h3 { color: #28a745; } h4 { color: #03A9F4; } strong { color: #D32F2F; } hr { border: none; height: 3px; background-color: #03A9F4; margin: 10px 0; } .afbeelding-container { margin: 20px 0; text-align: center; } .afbeelding-container img { max-width: 100%; height: auto; object-fit: cover; border-radius: 10px; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06); border: 3px solid black; } @keyframes sway { 0% { transform: rotate(0deg); } 25% { transform: rotate(0.3deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-0.3deg); } 100% { transform: rotate(0deg); } } .professor-img { width: 30%; height: auto; margin-right: 20px; transform-origin: bottom center; animation: sway 3s ease-in-out infinite; transition: transform 0.3s ease, box-shadow 0.3s ease; } .cards-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 0.8rem; margin-top: 1rem; margin-bottom: 1.8rem; } .card { background-color: var(--container-bg); color: var(--text-color); border-radius: 10px; padding: 0rem; display: flex; flex-direction: column; gap: 0.8rem; } .card h4 { margin: 0; display: flex; align-items: center; gap: 0.5rem; } .card p { margin: 0; line-height: 1.5; } .card img { width: 100%; height: 100%; object-fit: cover; border-radius: 10px; border: 3px solid black; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06); transition: transform 0.3s ease, box-shadow 0.3s ease; } p, li { line-height: 1.6; margin-bottom: 1em; text-shadow: 1px 1px 2px rgba(0,0,0,0.1); } a { color: white; text-decoration: none; transition: text-shadow 0.3s ease; } a:hover { text-shadow: 1px 1px 2px rgba(0,0,0,0.2); } .back-btn { position: fixed; bottom: 20px; right: 20px; padding: 15px 25px; background-color: #7B1FA2; color: white; border-radius: 10px; text-decoration: none; font-size: 1.2em; display: flex; align-items: center; gap: 10px; z-index: 1000; transition: transform 0.2s, background-color 0.2s; box-shadow: 0 6px #471255; } .back-btn:hover { transform: scale(1.1); } .button-grid { display: grid; grid-template-columns: repeat(2, 1fr); grid-auto-rows: 1fr; gap: 20px; justify-items: stretch; align-items: stretch; margin: 20px auto; max-width: 600px; padding: 10px; } .theorie-btn, .toes-btn, .spel-btn { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; width: 90%; height: 80%; padding: 10px 15px; font-size: 1em; font-weight: 600; border-radius: 12px; text-align: center; transition: all 0.2s ease-in-out; box-shadow: 0 6px #00000033; text-decoration: none; color: white; } .theorie-btn { background-color: #03A9F4; box-shadow: 0 6px #01547A; } .theorie-btn:hover { background-color: #0288D1; transform: translateY(-2px) scale(1.03); box-shadow: 0 8px #01547A; } .toes-btn { background-color: #28a745; box-shadow: 0 6px #1e7e34; } .toes-btn:hover { background-color: #218838; transform: translateY(-2px) scale(1.03); box-shadow: 0 8px #1e7e34; } .spel-btn { background-color: #7E57C2; box-shadow: 0 6px #2F1B58; } .spel-btn:hover { background-color: #7E57C2; transform: translateY(-2px) scale(1.03); box-shadow: 0 6px #2F1B58; } @media (max-width: 480px) { .button-grid { grid-template-columns: 1fr 1fr; gap: 15px; padding: 5px; } .theorie-btn, .toes-btn { font-size: 0.95em; padding: 8px 12px; } } ul { list-style: none; padding-left: 20px; } ul li { position: relative; padding-left: 20px; margin-bottom: 10px; } ul li::before { content: ""; display: inline-block; width: 8px; height: 8px; background-color: #0288D1; border-radius: 50%; position: absolute; left: 0; top: 50%; transform: translateY(-50%); } .sidebar .sidebar-links { list-style: none; padding-left: 0; } .sidebar .sidebar-links li::before { content: none; } .container ul { list-style: none; padding-left: 20px; } blockquote { padding: 5px 20px; margin: 20px 0; border-left: 5px solid #03A9F4; background-color: #e7f3fc; color: #222; border-radius: 8px; transition: background-color 0.3s, color 0.3s; } body.dark-mode blockquote { background-color: #1c2b36; color: #e0e6e9; border-left: 5px solid #29b6f6; } body.dark-mode blockquote strong { color: #4fc3f7; } blockquote.remember { padding: 5px 20px; margin: 20px 0; border-left: 5px solid #28a745; background-color: #e6f4ea; color: #222; border-radius: 8px; transition: background-color 0.3s, color 0.3s; } body.dark-mode blockquote.remember { background-color: #0f3d20; color: #fff; border-left: 5px solid #28a745; } body.dark-mode blockquote.remember strong { color: #D32F2F; } blockquote.mistakes { padding: 5px 20px; margin: 20px 0; border-left: 5px solid #E53935; background-color: #ffebee; color: #222; border-radius: 8px; transition: background-color 0.3s, color 0.3s; } body.dark-mode blockquote.mistakes { background-color: #4b0000; color: #fff; border-left: 5px solid #E53935; } body.dark-mode blockquote.mistakes strong { color: #ff6f61; } .wegcode-antwoorden li:hover { background-color: #eaf6ff; cursor: pointer; } .progress-step { margin: 40px 0; padding: 16px 20px; border-radius: 12px; background-color: #e7f3fc; } .step-counter { display: inline-block; font-size: 1rem; font-weight: 700; padding: 6px 14px; border-radius: 999px; background-color: #28a745; color: white; letter-spacing: 1px; margin-bottom: 10px; } .progress-bar { height: 8px; width: 100%; background-color: rgba(40, 167, 69, 0.2); border-radius: 999px; overflow: hidden; margin: 8px 0 14px 0; } .progress-fill { height: 100%; background-color: #28a745; border-radius: 999px; animation: grow-bar 0.8s ease; } @keyframes grow-bar { from { width: 0; } } .progress-step p { margin: 0; line-height: 1.5; } .text-with-professor { display: flex; align-items: flex-start; gap: 12px; } .text-with-professor p { margin-top: 30px; } .professor-mini { width: 150px; height: auto; border-radius: 50%; object-fit: cover; animation: sway 3s ease-in-out infinite; } body.dark-mode .progress-step { background-color: #1c2b36; } body.dark-mode .step-counter { background-color: #28a745; } body.dark-mode .progress-bar { background-color: rgba(40, 167, 69, 0.35); } @media (max-width: 600px) { .text-with-professor { flex-direction: column; align-items: center; text-align: center; gap: 8px; } .professor-mini { width: 100px; } .progress-step { padding: 12px 16px; } .step-counter { font-size: 0.95rem; padding: 5px 12px; } } .wegcode-antwoorden li::before { content: counter(antwoord, upper-alpha) ". "; position: absolute; left: 0; top: 0; transform: none; width: auto; height: auto; background: none; } .wegcode-antwoorden { list-style: none; padding-left: 2em; counter-reset: antwoord; } .wegcode-antwoorden li { counter-increment: antwoord; margin-bottom: 10px; } body.dark-mode .wegcode-antwoorden li:hover { background-color: #375a7f; cursor: pointer; } .feedback-container { padding: 12px 16px; border-radius: 8px; margin-top: 1rem; max-width: 100%; font-weight: 500; } .feedback-correct { background-color: #B9F289; color: #155724; } .feedback-wrong { background-color: #f8d7da; color: #721c24; } /* ------- Tabel 1: Lagere/hogere snelheden ------- */ table.speed-zones { width: 85%; border-collapse: collapse; margin: 20px auto; background-color: var(--container-bg); color: var(--text-color); } table.speed-zones td, table.speed-zones th { border: 1px solid black; } table.speed-zones thead tr:first-child, table.speed-zones thead tr:nth-of-type(3) { background-color: #dc3545; color: white; } table.speed-zones thead tr:nth-of-type(3) { background-color: #28a745; } table.speed-zones thead tr:nth-of-type(2), table.speed-zones thead tr:nth-of-type(4) { background-color: inherit; color: var(--text-color); } body.dark-mode table.speed-zones thead tr:first-child { background-color: #b71c1c; } body.dark-mode table.speed-zones thead tr:nth-of-type(3) { background-color: #1b5e20; } body.dark-mode table.speed-zones thead tr:nth-of-type(2), body.dark-mode table.speed-zones thead tr:nth-of-type(4) { background-color: var(--container-bg); color: var(--text-color); } body.dark-mode table.speed-zones td, body.dark-mode table.speed-zones th { border: 1px solid white; } .sanction-table { border-collapse: collapse; width: 100%; } .sanction-table th, .sanction-table td { border: 1px solid black; padding: 8px; text-align: left; } .sanction-table thead { background-color: #f2f2f2; } body.dark-mode .sanction-table th, body.dark-mode .sanction-table td { background-color: #444; border-color: #f0f0f0; color: #f0f0f0; } body.dark-mode .sanction-table thead { background-color: #333; } #eind-navigatie { margin: 20px 0; display: flex; flex-direction: column; gap: 10px; } #eind-navigatie .nav-row { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 15px; } @media (max-width: 1024px) { body { flex-direction: column; } .header { width: 100%; } .sidebar { position: fixed; left: 0; width: 100%; height: 50px; background-color: var(--bg-color); border-radius: 0; z-index: 11; display: flex; align-items: center; overflow-x: auto; -webkit-overflow-scrolling: touch; } .header.hidden + .sidebar { top: 0px; } #mode-toggle { max-width: 80px; } .sidebar-links { display: flex; flex-wrap: nowrap; justify-content: space-around; width: 100%; padding: 0 10px; } .sidebar-links li { margin: 0 10px; } .sidebar-links a { font-size: 16px; padding: 10px 15px; } .container { max-width: 100%; padding: 20px; border-radius: 10px; } } @media (min-width: 601px) and (max-width: 1024px) { .sidebar { display: flex; overflow-x: auto; padding: 10px 10px; height: auto; } .sidebar-links { display: flex; gap: 4px; padding-left: 20px; padding-right: 20px; } .sidebar-links li { flex: 0 0 auto; } .sidebar-links a { display: inline-block; width: fit-content; max-width: 160px; line-height: 1.3; max-height: calc(1.3em * 2); overflow: hidden; text-overflow: ellipsis; white-space: normal; word-break: break-word; padding: 5px 10px; vertical-align: top; } .sidebar-links::before, .sidebar-links::after { content: ""; flex: 0 0 20px; } } @media (max-width: 600px) { .button-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; padding: 10px 10px; padding-left: 0px; padding-right: 15px; } .theorie-btn, .toes-btn, .spel-btn { min-height: 70px; padding: 10px 12px; font-size: 0.85rem; line-height: 1.25; text-align: center; display: flex; align-items: center; justify-content: center; word-break: break-word; } } @media (max-width: 480px) { html, body { margin: 0; padding: 0; } .header { padding: 10px 20px; box-sizing: border-box; } .header h1 { font-size: 1.9rem; white-space: normal; word-break: break-word; } .container { width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; padding: 10px; box-sizing: border-box; align-self: stretch; border-radius: 0; margin-bottom: 0 !important; } .afbeelding-container img { max-width: 100%; } .sidebar { overflow-x: auto; -webkit-overflow-scrolling: touch; padding-right: 20px; padding-left: 10px; } .sidebar-links { display: flex; flex-wrap: nowrap; justify-content: flex-start; gap: 10px; margin: 0; padding: 0; list-style: none; width: auto; white-space: nowrap; } .sidebar-links li { flex: 0 0 auto; min-width: max-content; } .sidebar-links a { display: block; white-space: nowrap; padding: 10px 15px; font-size: 16px; } .back-btn { padding: 12px 20px; font-size: 1em; bottom: 20px; right: 10px; } p, li { line-height: 1.4; margin-bottom: 0.8em; } #mode-toggle { max-width: 63px; } } body { font-size: clamp(14px, 3vw, 16px); } h1 { font-size: clamp(1.5rem, 5vw, 2.5rem); } h2 { font-size: clamp(1.25rem, 4vw, 1.75rem); } .table-wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 20px 0; }