
    .file-picker-icon-btn {
        width: 42px;
        height: 42px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        margin: 0;
        padding: 0;
        vertical-align: middle;
        border: 3px solid #262626;
        border-radius: 5px;
        background: #262626;
        cursor: pointer;
        transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
    }

    .file-picker-icon-btn:hover {
        background: #ffffff;
        transform: translateY(-1px);
    }

    .file-picker-icon-btn:focus-visible {
        outline: 3px solid #85DFFF;
        outline-offset: 2px;
    }

    .file-picker-icon-btn img {
        width: 25px;
        height: 25px;
        display: block;
        pointer-events: none;
        filter: brightness(0) invert(1);
        transition: filter 0.2s ease;
    }

    .file-picker-icon-btn:hover img {
        filter: brightness(0) invert(0);
    }

    .file-picker-icon-btn.is-remove {
        background: #f44336;
        border-color: #f44336;
    }

    .file-picker-icon-btn.is-remove:hover {
        background: #ffffff;
    }

    .file-picker-icon-btn.is-remove:hover img {
        filter: brightness(0) saturate(100%) invert(33%) sepia(98%) saturate(2122%) hue-rotate(343deg) brightness(97%) contrast(98%);
    }

    .setup-icon-btn,
    .chapter-delete-icon-btn {
        width: 42px;
        height: 42px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        margin: 0;
        padding: 0;
        border: 3px solid #262626;
        border-radius: 5px;
        background: #262626;
        cursor: pointer;
        transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
    }

    .setup-icon-btn:hover,
    .chapter-delete-icon-btn:hover {
        background: #ffffff;
        transform: translateY(-1px);
    }

    .setup-icon-btn:focus-visible,
    .chapter-delete-icon-btn:focus-visible {
        outline: 3px solid #85DFFF;
        outline-offset: 2px;
    }

    .setup-icon-btn img,
    .chapter-delete-icon-btn img {
        width: 25px;
        height: 25px;
        display: block;
        pointer-events: none;
        filter: brightness(0) invert(1);
        transition: filter 0.2s ease;
    }

    .setup-icon-btn:hover img,
    .chapter-delete-icon-btn:hover img {
        filter: brightness(0) invert(0);
    }

    .setup-icon-btn.primary {
        background: #00B0F0;
        border-color: #00B0F0;
    }

    .setup-icon-btn.primary:hover {
        background: #ffffff;
        border-color: #00B0F0;
    }

    .setup-icon-btn.primary:hover img {
        filter: brightness(0) saturate(100%) invert(52%) sepia(92%) saturate(2574%) hue-rotate(156deg) brightness(98%) contrast(101%);
    }

    .setup-icon-btn.danger,
    .chapter-delete-icon-btn {
        background: #f44336;
        border-color: #f44336;
    }

    .setup-icon-btn.danger:hover,
    .chapter-delete-icon-btn:hover {
        background: #ffffff;
        border-color: #f44336;
    }

    .setup-icon-btn.danger:hover img,
    .chapter-delete-icon-btn:hover img {
        filter: brightness(0) saturate(100%) invert(33%) sepia(98%) saturate(2122%) hue-rotate(343deg) brightness(97%) contrast(98%);
    }

    .chapter-accordion-header {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .chapter-accordion-title {
        flex: 1 1 auto;
        min-width: 0;
    }

    .chapter-delete-icon-btn {
        width: 34px;
        height: 34px;
        flex: 0 0 34px;
    }

    .chapter-delete-icon-btn img {
        width: 21px;
        height: 21px;
    }

    .chapter-delete-icon-btn[hidden] {
        display: none;
    }

    input:focus,
    textarea:focus,
    select:focus {
    outline: 3px solid #00B0F0;
    }
    html, body {
        height: 100%;
        margin: 0;
        padding: 0;
    }
    body {
        background-size: cover; 
        background-attachment: fixed;
        font-family: Arial, sans-serif;
        color: #262626;
        margin: 0;
        padding: 0;
        padding-bottom: 60px;
        font-size: 16px;
        opacity: 0;
        transition: opacity 0.5s ease-in-out;
    }
    .book-header {
        background-color: #262626;
        border-radius: 4px;
        box-sizing: border-box;
        padding: 10px 20px;
        text-align: center;
        width: 100%;
    }
    .book-header h2 {
        color: white;
        margin: 0;
    }
    body.loaded {
        opacity: 1;
    }
    p {
        margin: 10px 0;
    }
    .toc-container {
        background-color: white;
        border-radius: 15px;
        border: 3px solid #262626;
        box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
        width: 80%;
        margin: 20px auto;
        padding: 20px;
    }
    .toc-title {
        text-align: center;
        margin-bottom: 20px;
    }
    .chapter-list {
        display: flex;
        flex-direction: column;
        gap: 15px;
    }
    .chapter-card {
        cursor: pointer;
        border: 3px solid #262626;
        border-radius: 4px;
        padding: 15px;
        transition: background-color 0.2s ease;
        text-align: center;
    }
    .chapter-card:hover {
        opacity: 0.9;
        transform: scale(1.02);
    }
    .cover {
        text-align: center;
        margin-bottom: 20px;
    }
    .container {
        margin: auto;
        background: white;
        padding: 20px;
        border-radius: 8px;
    }
    .button-row {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        justify-content: flex-start;
        align-items: center;
    }
    .button-row .upload-form {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        justify-content: center;
        align-items: center;
    }
    @media screen and (max-width: 768px) {
        .button-row {
            display: flex;
            flex-direction: row;
            flex-wrap: nowrap;
            align-items: center;
            justify-content: flex-start;
            gap: 12px;
            width: 100%;
            overflow-x: auto;
        }

        .button-row > * {
            width: auto;
            flex: 0 0 auto;
        }

        .button-row .overview-icon-btn {
            flex: 0 0 auto;
        }

        .button-row .upload-form {
            display: flex;
            flex-direction: row;
            align-items: center;
            gap: 12px;
            margin: 0;
            padding: 0;
            width: auto;
            flex: 0 0 auto;
        }

        .button-row .upload-form .overview-icon-btn {
            display: inline-flex;
            width: 42px;
            height: 42px;
            box-sizing: border-box;
            margin: 0;
            flex: 0 0 auto;
        }

        .button-row > #file-name {
            display: inline-block;
            width: auto;
            text-align: left;
            flex: 0 0 auto;
            white-space: nowrap;
        }
    }
    .button-row form {
        display: flex;
        align-items: center;
        gap: 10px;
        margin: 0;
        padding: 0;
    }
    .button-row2 {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;  
        align-items: center; 
        gap: 10px;
        margin: 20px 0 0; 
        padding: 0;
    }
    .button-row2 form {
        display: flex;
        align-items: center;
        gap: 10px;
        margin: 0;
        padding: 0;
    }
    .button {
        transition-duration: 0.4s;
        border: 3px solid #262626; 
        border-radius: 4px;
        color: white;
        padding: 10px 10px;
        text-align: center;
        text-decoration: none;
        display: inline-block;
        font-size: 16px;
        margin: 4px 2px;
        cursor: pointer;
    }
    .button1 {
        background-color: #262626;
        color: white;

    }
    .button1:hover {
        background-color: white; 
        color: #262626;
        border: 3px solid #262626; 
    }
    .button2 {
        background-color: #f44336;
        color: white;
        border: 3px solid #f44336;
    }
    .button2:hover {
        background-color: white;
        color: #f44336;
        border: 3px solid #f44336;
    }

    .video-section .gdpr-overlay .button {
    margin-top: 0.5em;
    font-size: clamp(12px, 2.5vw, 16px);
    padding: 0.4em 0.8em;
    }
    .video-section .gdpr-overlay .button:focus {
    outline: 2px solid #fff;
    outline-offset: 2px;
    }
    .button3 {
        background-color: #262626;
        color: white;
        margin: 10px 0;
        width: 100%;
        border: 3px solid #262626;
    }
    .button3:hover {
        background-color: #00B0F0;
        border: 3px solid #262626;
        color: #262626;
        font-weight: bold;
    }
    .button4 {
        background-color: #262626;
        color: white;
        margin: 10px 0;
        border: 3px solid #262626;
    }
    .button4:hover {
        background-color: #00B0F0;
        border: 3px solid #262626;
        color: #262626;
        font-weight: bold;
    }
    .button, label.button {
        margin: 0;
        display: inline-block;
    }
    .play-pause-btn {
        transition-duration: 0.4s;
        background-color: white;
        border: 3px solid #262626; 
        color: #262626;
        padding: 10px 10px;
        border-radius: 4px;
        margin: 4px 2px;
        font-size: 16px;
        text-align: center;
        cursor: pointer;
    }
    .play-pause-btn:hover {
        background-color: #262626;
        color: white;
    }
    .setup-fields .button.button1 {
        margin-left: 0;
    }
    .generate-book-button {
        background-color: white;
        border: 3px solid #00B0F0;
        border-radius: 4px;
        color: #262626;
        cursor: pointer;
        display: inline-block;
        font-size: 16px;
        padding: 10px 10px;
        text-align: center;
        width: auto;
        margin: 4px 2px;
    }
    .generate-book-button:hover {
        background-color: #00B0F0;
        border: 3px solid #262626;
        color: white;
    }
    .generate-book-button.active {
        font-weight: bold;
        color: #262626;
        background-color: #00B0F0;
        border: 3px solid #262626;
    }
    .level-btn {
        background-color: white;
        border: 3px solid #262626;
        color: #262626;
        font-size: 16px;
        margin-right: 10px;
        padding: 10px 15px;
        cursor: pointer;
        border-radius: 5px;
        transition: background-color 0.3s ease;
    }
    .level-btn.active {
        background-color: #262626;
        color: white;
        font-weight: bold;
    }
   .book {
        background-color: white;
        border-radius: 15px;
        border: 3px solid #262626;
        box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
        margin: 20px auto;
        padding: 20px;
        width: 80%;
    }
    .book-header {
        background-color: #262626;
        border-radius: 4px;
        padding: 10px 20px;
        text-align: center;
    }
    .book-header h2 {
        color: white;
        margin: 0;
    }
    .background-preview {
        display: flex;
        height: 100px;
        border: 3px solid #262626;
        border-radius: 5px;
        margin-top: 10px;
    }
    .background-select-container {
        display: flex;
        align-items: center;
        gap: 10px;
    }
    .share-options {
        margin: 20px auto;
        text-align: center;
        padding: 15px;
        background-color: #f1f1f1;
        border: 3px solid #262626;
        border-radius: 5px;
        max-width: 800px;
    }
    .share-box {
        display: block;
        vertical-align: top;
        text-align: center;
        margin: 10px;
        padding: 15px;
        border: 3px solid #262626;
        border-radius: 5px;
        background-color: #ffffff;
    }
    .share-box h4 {
        margin: 0 0 6px 0;
        font-size: 16px;
        text-align: center;
    }
    .share-box input[type="text"] {
        display: inline-block;
        width: auto;
        min-width: 200px;
        max-width: 90%;
        text-align: center;
        margin: 0 auto 10px auto;
        padding: 5px;
        box-sizing: border-box;
        border: 3px solid #262626;
        border-radius: 5px;
        font-family: Arial, sans-serif;
        font-size: 16px;
        resize: none;
        overflow: auto;
    }
    .share-box textarea {
        display: inline-block;
        width: auto;
        min-width: 200px;
        max-width: 90%;
        text-align: center;
        margin: 0 auto 10px auto;
        padding: 5px;
        box-sizing: border-box;
        border: 3px solid #262626;
        border-radius: 5px;
        font-family: Arial, sans-serif;
        font-size: 16px;
        resize: none;
        overflow: auto;
    }
    #embed-code {
        white-space: nowrap;
    }
    .share-box img {
        display: block;
        margin: 0 auto;
        border: 3px solid #262626;
        border-radius: 5px;
        width: auto;
        max-width: 200px;
    }
    .login-form {
        background-color: white;
        padding: 30px 40px;
        position: relative;
        border-radius: 12px;
        border: 3px solid #333;
        box-shadow: 0 4px 12px rgba(0,0,0,0.3);
        z-index: 1;
        width: min(520px, 96vw); 
        max-width: none;
    }
    .login-form input {
        font-size: 16px;
        width: 100%;
        box-sizing: border-box;
        margin: 10px 0;
        padding: 10px;
        border: 3px solid #262626;
        border-radius: 5px;
    }
    .color-pickers {
        display: flex;
        align-items: center;
        gap: 5px;
    }
    .color-pickers input[type="color"] {
        width: 40px;
        border: 3px solid #262626;
        border-radius: 4px;
        padding: 0;
        cursor: pointer;
        background-color: transparent;
    }
    .color-label {
        font-size: 10px;
    }
    h1 {
        text-align: center;
        color: #262626;
    }
    li {
        margin-bottom: 10px;
    }
    .quiz {
        margin-top: 20px;
        padding: 15px;
        border: 3px solid #262626;
        border-radius: 8px;
        background-color: #ffffff;
    }
    .quiz-section {
        background-color: #f1f1f1;
        border: 3px solid #262626;
        border-radius: 5px;
        padding: 15px;
        margin: 5px auto;
        margin-top: 5px;
        width: 100%;
        box-sizing: border-box;
    }
    .quiz p {
        margin: 10px 0;
    }
    .question {
        font-weight: bold;
        font-family: Arial, sans-serif;
        color: #262626;
        margin-bottom: 10px;
    }
    .answer {
        display: none;
        background-color: #dff0d8;
        color: #3c763d;
        font-family: Arial, sans-serif;
        padding: 10px;
        margin-top: 10px;
        border: 3px solid #3c763d;
        border-radius: 8px;
    }
    .answer.correct {
        background-color: #ffffff;
        color: #33CCCC;
        border: 3px solid #33CCCC;
        padding: 10px;
        border-radius: 5px;
        margin-top: 10px;
    }
    .answer.incorrect {
        background-color: #ffffff;
        color: #f44336;
        border: 3px solid #f44336;
        padding: 10px;
        border-radius: 5px;
        margin-top: 10px;
    }
    .answers p {
        margin: 5px 0;
    }
    .true-false-answers {
        margin: 0;
        padding: 0;
        display: flex;
        gap: 10px;
        justify-content: flex-start;
    }
    .true-false-btn {
        padding: 10px;
        cursor: pointer;
        transition: background-color 0.3s ease;
        font-family: Arial, sans-serif;
        font-size: 16px;
        color: white;
    }
    .true-btn, .false-btn  {
        background-color: #262626;
        border: 3px solid #262626;
        border-radius: 5px;
    }
    .true-false-btn:hover {
        color: #262626;
        font-weight: bold;
        opacity: 0.9;
        background-color: #33CCFF;
    }
    .true-false-btn.selected {
        color: #262626;
        font-weight: bold;
        opacity: 0.9;
        background-color: #33CCFF;
    }
    .feedback-true-false {
        background-color: #ffffff;
        color: #262626;
        border: 3px solid #262626;
        font-weight: bold;
        padding: 10px;
        margin-top: 10px;
        border-radius: 8px;
    }
    .feedback-true-false.correct {
        background-color: #ffffff;
        color: #33CCCC;
        border: 3px solid #33CCCC;
    }
    .feedback-true-false.incorrect {
        background-color: #ffffff;
        color: #f44336;
        border: 3px solid #f44336;
    }
    .feedback-open {
        background-color: #ffffff;
        color: #262626;
        border: 3px solid #262626;
        font-weight: normal;
        padding: 10px;
        margin-top: 10px;
        border-radius: 8px;
    }
    .feedback-open.correct {
        background-color: #ffffff;
        border: 3px solid 33CCCC;;
        color: #33CCCC;
        border-color: #33CCCC;
        border-radius: 8px;
        padding: 10px;
        line-height: 1.0;
    }
    .feedback-open.incorrect {
        background-color: #ffffff;
        border: 3px solid #f44336;
        color: #f44336;
        border-color: #f44336;
        border-radius: 8px;
        padding: 10px;
        line-height: 1.0;
    }
    .thema-input,
    .answer-input {
        width: 100%;
        box-sizing: border-box;
        padding: 10px;
        margin-top: 10px;
        border: 3px solid #262626;
        border-radius: 5px;
        font-family: Arial, sans-serif;
        resize: vertical;
    }
    .evaluate-answer {
        background-color: #262626;
        color: white;
        padding: 10px;
        border: 3px solid #262626;
        border-radius: 5px;
        cursor: pointer;
        font-size: inherit;
        font-family: Arial, sans-serif;
        margin-top: 10px;
        width: 100%;
        transition: background-color 0.3s ease;
    }
    .evaluate-answer:hover {
        background-color: #33CCFF;
        border: 3px solid #262626;
        color: #262626;
        font-weight: bold;
    }
    .spinner {
        display: inline-block;   
        position: relative; 
        width: 40px;
        height: 40px;
        border: 4px solid #33CCFF;
        border-top: 4px solid #262626;
        border-radius: 50%;
        animation: spinOuter 2s linear infinite;
        transform-origin: center center;
    }
    @keyframes spinOuter {
        0%   { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
    }
    .spinner::after {
        content: "";
        position: absolute;
        top: 0; left: 0; right: 0; bottom: 0; 
        margin: auto;             
        width: 24px;        
        height: 24px;
        border: 4px solid #33CCFF;
        border-left: 4px solid #262626;
        border-radius: 50%;    
        animation: spinInner 1.5s linear infinite;
        transform-origin: center center; 
    }
    @keyframes spinInner {
        0%   { transform: rotate(0deg); }
        100% { transform: rotate(-360deg); }
    }
    .loading {
        display: none;
        text-align: center;
        margin-top: 10px;
    }
    .progress-bar {
        width: 100%;
        background-color: #f3f3f3;
        border: 3px solid #262626;
        border-radius: 3px;
        overflow: hidden;
        height: 20px;
        margin-top: 10px;
        box-sizing: border-box;
    }
    .setup-progress-fill {
        height: 100%;
        width: 0%;
        background-color: #33CCFF;
        border: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        box-shadow: none !important;
        transition: width .35s ease;
        box-sizing: border-box;
    }
    .progress {
        height: 100%;
        width: 0%;
        background-color: #262626;
        text-align: center;
        line-height: 20px;
        color: white;
        transition: width 0.3s ease;
        box-sizing: border-box;
    }
    .progress-meta{
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 10px;
        margin-top: 6px;
        flex-wrap: wrap; 
    }
    #progress-text {
        margin-top: 0;
        color: #262626;
    }
    #gen-step {
        margin-top: 0; 
        color: #262626;
    }
    .generate-button {
        background-color: #262626;
        border: 3px solid #054b7a;
        border-radius: 5px;
        color: white;
        padding: 10px;
        cursor: pointer;
        margin-top: 10px;
        transition: background-color 0.3s ease;
        font-weight: normal;
    }
    .generate-button:hover {
        background-color: #262626;
    }
    .generate-button.active {
        font-weight: bold;
        background-color: #054b7a;
    }
    .button-container {
        display: flex;
        gap: 10px;
        margin-top: 10px;
    }
    .answer-button {
        padding: 10px;
        border: 3px solid #262626;
        border-radius: 5px;
        cursor: pointer;
        background-color: #262626;
        color: white;
        font-size: 16px;
        font-style: Arial, sans-serif;
        transition: background-color 0.3s ease;
    }
    .answer-button.selected {
        background-color: #33CCFF;
        font-weight: bold;
        cursor: not-allowed;
    }
    .answer-button:hover {
        background-color: #33CCFF;
        font-weight: bold;
        color: #262626;
    }
    .neutral-background {
        background-color: #262626;
    }
    .difficulty-buttons {
        display: flex;
        justify-content: center;
        gap: 10px;
        margin: 10px auto;
        max-width: 400px;
    }
    .difficulty-button {
        padding: 10px 20px;
        border: 3px solid #054b7a;
        border-radius: 5px;
        background-color: #262626;
        color: white;
        cursor: pointer;
        transition: background-color 0.3s ease;
        font-weight: normal;
    }
    .difficulty-button:hover {
        background-color: #262626;
    }
    .difficulty-button.selected {
        background-color: #054b7a;
        color: #ffffff;
        font-weight: bold;
    }
    .competency-note {
        font-size: 1em;
        color: #262626;
        text-align: center;
        font-weight: bold;
        margin: 10px 0;
    }
    .status-feedback {
        margin-top: 10px;
        padding: 10px;
        border-radius: 5px;
        font-weight: bold;
        text-align: center;
        font-size: 1em;
    }
    .status-feedback.beantwortet {
        background-color: #ffffff;
        color: #33CCCC;
        border: 3px solid #33CCCC;
    }
    .status-feedback.nicht-beantwortet {
        background-color: #ffffff;
        color: #f44336;
        border: 3px solid #f44336;
    }
    #recommendation-container {
        display: none;
        text-align: center;
        margin-top: 20px;
        padding: 15px;
        border: 3px solid #262626;
        border-radius: 8px;
        background-color: #00B0F0;
        font-weight: bold;
        color: #262626;
    }
    .recommendation-increase {
        color: #262626;
    }
    .recommendation-decrease {
        color: #262626;
    }
    .recommendation-keep {
        color: #262626;
    }
    .field-container {
        display: flex;
        flex-direction: column;
        gap: 20px;
        margin-top: 20px;
        justify-content: center;
        align-items: center;
    }
    .drop-field {
        width: 100%;
        min-height: 50px;
        max-width: 400px;
        background-color: #FFFFFF;
        border: 3px dashed #262626;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        font-size: inherit;
        color: #262626;
        border-radius: 10px;
        cursor: pointer;
        box-sizing: border-box;
        overflow-y: auto;
        gap: 10px;
        margin: 0 auto;
        padding: 10px;
    }
    .drop-field.hovered {
        background-color: #33CCFF;
        border-color: #262626;
        transition: background-color 0.3s ease;
    }
    .drag-container {
        display: flex;
        gap: 15px;
        flex-wrap: wrap;
        margin-top: 20px;
        justify-content: center;
        width: 100%;
    }
    .draggable-item {
        padding: 10px 20px;
        background-color: #33CCFF;
        color: #262626;
        border-radius: 5px;
        border: 3px solid #262626;
        font-size: 1em;
        text-align: center;
        cursor: grab;
        user-select: none;
        transition: all 0.3s ease;
    }
    .draggable-item:active {
        cursor: grabbing;
    }
    .dragging {
        transform: scale(1.1);
        opacity: 0.8;
        transition: transform 0.2s ease;
    }
    .drag-over {
        border-color: #262626;
        background-color: #f0f8ff;
        transition: background-color 0.3s ease;
    }
    .dragged-to-field {
        pointer-events: none;
    }
    .draggable-item:hover {
        background-color: #00AAE6;
        color: white;
        font-weight: bold;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
        transform: scale(1.05);
    }
    .draggable-item:not(.placed):hover {
        background-color: #00AAE6;
        color: white;
        font-weight: bold;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
        transform: scale(1.05);
    }
    .draggable-item.placed {
        background-color: #262626;
        color: white;
        pointer-events: auto;
        cursor: pointer;
    }
    .unused {
        opacity: 1;
        pointer-events: auto;
        transition: opacity 0.3s ease;
    }
    .used {
        opacity: 0.5;
        pointer-events: none;
        transition: opacity 0.3s ease;
    }
    .hovered {
        transform: scale(1.1);
        background-color: #f0f8ff;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
        transition: transform 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
    }
    .lueckentext-input {
        border: 2.5px solid #262626;
        border-radius: 5px;
        padding: 5px;
        margin: 0 5px;
        font-size: 16px;
        width: 120px;
        box-sizing: border-box;
    }
    .lueckentext-input:focus {
        outline: none;
        border-color: #262626;
        background-color: #33CCFF;
    }
    .lueckentext-container p {
        margin-bottom: 10px;
        line-height: 2.2;
    }
    .hint-container {
        margin-top: 10px;
        padding: 10px;
        background-color: #33CCFF;
        border: 3px dashed #262626;
        border-radius: 5px;
        font-size: 16px;
        color: #262626;
    }
    .hint-container strong {
        font-weight: bold;
        color: #262626;
    }
    .drop-area {
        border: 3px dashed #262626;
        min-height: 40px;
        margin-top: 5px;
        background-color: #f9f9f9;
        border-radius: 5px;
        text-align: center;
        line-height: 40px;
        color: #262626;
    }
    .drop-area.hovered {
        background-color: #e0f7fa;
        border-color: #054b7a;
    }
    .zuordnung-feedback.correct {
        background-color: #d4edda;
        color: #155724;
        border: 3px solid #155724;
    }
    .zuordnung-feedback.incorrect {
        background-color: #f8d7da;
        color: #721c24;
        border: 3px solid #721c24;
    }
    .zuordnung-term {
        background-color: #2a6f97;
        color: white;
        border: none;
        border-radius: 5px;
        padding: 10px 15px;
        margin: 5px;
        cursor: grab;
        font-weight: bold;
        text-align: center;
        transition: transform 0.2s ease, background-color 0.3s ease;
    }
    .zuordnung-term:hover {
        background-color: #054b7a;
        transform: scale(1.05);
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
    }
    .zuordnung-term:active {
        cursor: grabbing;
        transform: scale(1);
    }
    .zuordnung-dropzone {
        width: 100%;
        max-width: 400px;
        margin: 0 auto 20px auto;
        text-align: center;
        height: 50px;
        background-color: #FFFFFF;
        border: 3px dashed #262626;
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: inherit;
        color: #262626;
        border-radius: 10px;
        cursor: pointer;
        box-sizing: border-box;
    }
    .category-wrapper {
        width: 100%;
        max-width: 400px;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10px;
    }
    .category-title {
        font-weight: bold;
        text-align: center;
        width: 100%;
        word-wrap: break-word;
        margin-bottom: 0;
    }
    .category-wrapper > div:first-child {
        text-align: center;
        max-width: 300px;
        word-wrap: break-word;
    }
    .instruction-text {
        line-height: normal !important;
        margin: 0 !important;
        font-style: normal !important;
        font-size: 16px !important;
    }
    .error-message {
        display: block;
        color: #f44336;
        font-weight: bold;
        background-color: #ffffff;
        padding: 10px;
        border-radius: 5px;
        border: 3px solid #f44336;
        text-align: center;
        margin-top: 10px;
    }
    .hidden {
        display: none;
    }
    .accessibility-option {
        margin-top: 20px;
        padding: 5px;
        background-color: #f1f1f1;
        border: 3px solid #262626;
        border-radius: 5px;
        display: inline-block;
    }
    .accessibility-option label {
        font-size: 16px;
        margin-right: 10px;
    }
    .accessibility-option select {
        font-size: 16px;
        padding: 5px;
        border: 3px solid #262626;
        border-radius: 5px;
        background-color: #fff;
        cursor: pointer;
    }
    .font-normal {
        font-size: 1em;
        line-height: 1.4;  
    }
    body.font-large button,
    body.font-large h3,
    body.font-large h2,
    body.font-large h4,
    body.font-large p,
    body.font-large .learning-objectives li,
    body.font-large .chapter-content,
    body.font-large #notes,
    body.font-large .chat-window textarea {
        font-size: 20px !important;
        line-height: 1.5 !important;
    }
    .thema-input::placeholder {
        font-family: Arial, sans-serif;
        font-size: 16px;
    }
    input[type="password"] {
        color: transparent;             
        text-shadow: 0 0 0 #757575; 
    }
    input:not(:placeholder-shown) {
        background-color: #83DDFD;
        color: #262626;
    }
    .chapter-nav {
        margin-top: 20px;
        margin-right: 0px;
    }
    .navigation-container {
        display: flex;
        justify-content: center;
        gap: 10px;
        margin: 20px auto;
        max-width: 600px;
    }
    .chat-window {
        background-color: #f1f1f1;
        border: 3px solid #262626;
        border-radius: 5px;
        box-sizing: border-box;
        margin-top: 20px;
        padding: 10px;
    }
    .chat-window textarea,
    .chat-window #chat-output {
        border: 3px solid #262626;
        border-radius: 5px;
        background-color: white;
        color: #262626;
        font-family: Arial, sans-serif;
        font-size: 16px;
        padding: 10px;
        resize: none;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        overflow-y: auto;
    }
    #chat-input {
        margin-bottom: 1em;
    }
    #chat-output {
        margin-top: 1em; 
    }
    .chat-window button:hover {
        background-color: #262626;
    }
    #word-cloud {
        align-items: center;
        display: flex;
        height: 400px;
        justify-content: center;
        margin: 0 auto;
        overflow: hidden;
        width: 100%;
    }
    #notes {
        width: 100%;
        max-width: 100%;
        min-height: 200px;
        border: 3px solid #262626;
        border-radius: 5px;
        padding: 10px;
        font-family: Arial, sans-serif;
        font-size: 16px;
        box-sizing: border-box;
        resize: vertical;
    }
    .setup-form .book-header {
        background-color: #262626;
        padding: 10px;
        height: auto;
    }
    .setup-form .book-header h2 {
        color: white;
        margin: 0;
        text-align: center;
    }
    .setup-fields {
        margin: 20px 0;
    }
    .setup-fields label:not(.feature-checkbox)  {
        display: block;
        margin-top: 15px;
        font-weight: bold;
    }
    .setup-fields input[type="text"],
    .setup-fields input[type="password"] {
        border: 3px solid #262626;
        border-radius: 5px;
        box-sizing: border-box;
        font-size: 16px;
        margin-top: 5px;
        padding: 10px;
        width: 100%;
    }
    .setup-fields.loading {
        opacity: 0.5;
        pointer-events: none;
    }
    .chapter-fields {
        border: 3px solid #262626;
        border-radius: 5px;
        margin-top: 15px;
        padding: 10px;
    }
    .toc {
        align-items: center;
        display: flex;
        flex-direction: column;
        gap: 15px;
    }
    .toc-title {
        text-align: center;
    }
    .cover h1,
    .cover p {
        text-align: center;
    }
    .add-chapter-btn {
        margin-top: 20px;
    }
    .remove-chapter-btn {
        background-color: #e74c3c;
        border: 3px solid #262626;
        color: #fff;
        margin-left: 5px;
    }
    .remove-chapter-btn:hover {
        background-color: #c0392b;
    }
    .centered-button {
        text-align: center;
        margin-top: 20px;
    }
    #loading-container {
        margin-top: 20px;
    }
    ol {
        list-style-type: decimal !important;
        margin-left: 15px;
        padding-left: 15px;
    }
    ul {
        list-style-type: square !important;
        margin-left: 15px;
        padding-left: 15px;
    }
    audio {
        display: none;
    }
    .viz-audio {
        display: inline-block;
    }
    .custom-audio-controls { display:flex; align-items:center; gap:14px; margin-top:6px; }
    .volume-control { display:flex; align-items:center; gap:10px; }
    .vol-btn { display:flex; align-items:center; justify-content:center; font-size:22px; line-height:1; padding:0 12px; }
    .vol-bars {
        display:grid; grid-template-columns: repeat(10, 1fr); gap:3px;
        height:14px; width:180px;   
        border:3px solid #262626; border-radius:0 !important; padding:0; background:#fff;
        box-sizing:border-box;
    }
    .vol-bars .bar{
        width:100%; height:100% !important; 
        background:#262626; opacity:.25;    
        border-radius:0 !important;  
    }
    .play-button:hover, .pause-button:hover {
        background-color: #262626;
    }
    .upload-section {
        background-color: #f1f1f1;
        border: 3px solid #262626;
        border-radius: 5px;
        padding: 15px;
        padding-top: 10px;
        text-align: center;
        margin: 5px auto;
        margin-top: 5px;
    }
    .upload-section h4 {
        margin-bottom: 10px;
    }
    .drop-zone {
        background-color: #ffffff;
        border: 3px dashed #262626;
        border-radius: 5px;
        cursor: pointer;
        padding: 10px;
        margin: 10px auto;
        transition: background-color 0.3s ease;
    }
    .drop-zone:hover {
        background-color: #85DFFF;
    }
    .drop-zone.dragover {
        background-color: #00B0F0;
        border-color: #262626;
        transform: scale(1.01);
    }
    #upload-status {
        margin-top: 5px;
        color: #2c3e50;
        font-size: 14px;
    }
    .video-section {
        margin: 20px 0;
        width: 100%;
        padding: 15px;
        background-color: #f1f1f1;
        border: 3px solid #262626;
        border-radius: 5px;
        box-sizing: border-box;
    }
    .video-section .gdpr-video {
        width: 100%;
        aspect-ratio: 16/9;
        position: relative;
        background-color: #262626;
        border-radius: 4px;
        overflow: hidden;
    }
    .video-section .gdpr-overlay {
        position: absolute;
        inset: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        padding: 1em;
        background: rgba(0,0,0,0.6);
        color: #fff;
        text-align: center;
        box-sizing: border-box;
        overflow-y: auto;
    }
    .video-section .gdpr-overlay p {
        font-size: clamp(12px, 2vw, 16px);
        margin: 0 0 0.5em;
        line-height: 1.3;
    }
    .video-instruction {
        margin-top: 10px;
        font-size: 16px;
        font-family: 'Arial', sans-serif;
        text-align: center;
        border: 3px solid #262626;
        border-radius: 5px;
        background-color: #FFFFFF;
        padding: 10px;
    }
    .styled-input {
        width: 100%;
        max-width: 100%;
        padding: 10px;
        border: 3px solid #262626;
        border-radius: 5px;
        font-size: 16px;
        font-family: 'Arial', sans-serif;
        box-sizing: border-box;
        margin-top: 5px;
    }
    .styled-input:focus {
        outline: none;
        border-color: #262626;
        box-shadow: 0 0 5px rgba(41, 128, 185, 0.5);
    }
    .styled-textarea {
        width: 100%;
        max-width: 100%;
        min-height: 100px;
        padding: 10px;
        border: 3px solid #262626;
        border-radius: 5px;
        font-size: 16px;
        font-family: 'Arial', sans-serif;
        box-sizing: border-box;
        margin-top: 5px;
        resize: vertical;
    }
    .styled-textarea:focus {
        outline: none;
        border-color: #262626;
        box-shadow: 0 0 5px rgba(41, 128, 185, 0.5);
    }
    textarea.learning-objectives-input,
    textarea.tasks-input,
    textarea.sources-input {
        min-height: 80px; 
        height: 80px; 
        resize: vertical;
        overflow-y: auto;
    }

    .input-field {
        width: 100%;
        max-width: 100%;
        padding: 10px;
        border: 3px solid #262626;
        border-radius: 5px;
        font-size: 16px;
        font-family: 'Arial', sans-serif;
        box-sizing: border-box;
        margin-top: 5px;
        resize: vertical;
    }
    .chapter-content {
        max-width: 100%;
        min-height: 300px;
        margin: 20px 0;
        padding: 15px;
        background-color: #f1f1f1;
        border: 3px solid #262626;
        border-radius: 5px;
        font-family: Arial, sans-serif;
        font-size: 16px;
        resize: none;
        overflow-y: auto;
    }
    .image-gallery {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 10px;
        margin-top: 20px;
    }
    .image-gallery img {
        max-width: 100%;
        height: auto;
    }
    .slider-container {
        overflow: hidden;
        position: relative;
    }
    .slides {
        display: flex;
        transition: transform 0.3s ease;
        width: 100%;
    }
    .slide {
        min-width: 100%;
        box-sizing: border-box;
        display: flex;  
        justify-content: center; 
        align-items: center;
        text-align: center;   
    }
    .slide img {
        max-width: 100%;
        height: auto;
        object-fit: contain;  
        max-height: 70vh;  
    }
    .slide img,
    .slide .slide-media {
        max-width: 100%;
        height: auto;
        object-fit: contain;
        max-height: 70vh;
        display: block;
    }
    .arrow {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        background: rgba(0,0,0,0.5);
        border: none;
        border-radius: 50%;
        width: 40px;
        height: 40px;
        display: flex;
        align-items: center;
        justify-content: center;
        color: #fff;
        cursor: pointer;
        z-index: 10;
        transition: background 0.3s;
    }
    .arrow:hover {
        background: rgba(0,0,0,0.7);
    }
    .prev { left: 10px; }
    .next { right: 10px; }
    .slider-container .dots { display:none !important; }  
    .image-section   > .dots {
        position: static; 
        display: flex;
        justify-content: center;
        gap: 8px;
        margin: 8px 0 12px;
        z-index: 2;  
    }
    .image-section > .dots .dot {
        width: 12px;
        height: 12px;
        border-radius: 50%;
        background: rgba(0,0,0,0.5);
        cursor: pointer;
        transition: background .3s;
    }
    .image-section > .dots .dot.active {
        background:#00AFEF;
    }
    img {
        display: block;
        max-width: 100%;
        height: auto;
    }
    .image-section {
        margin: 20px 0;
        padding: 15px;
        background-color: #f1f1f1;
        border: 3px solid #262626;
        border-radius: 5px;
        overflow: visible;
        position: relative;
    }
    .image-instruction {
        margin-top: 10px;
        font-size: 16px;
        font-family: 'Arial', sans-serif;
        text-align: center;
        border: 3px solid #262626;
        border-radius: 5px;
        background-color: #FFFFFF;
        padding: 10px;
    }
    .image-section:fullscreen,
    .image-section:-webkit-full-screen,
    .image-section.is-fullscreen {
        position: fixed;
        inset: 0;
        width: 100vw;
        height: 100dvh;
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: #f1f1f1;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        gap: 0;
    }
    .image-section:fullscreen .slider-container,
    .image-section:-webkit-full-screen .slider-container,
    .image-section.is-fullscreen .slider-container {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: center;
        flex: 1 1 auto;
        height: auto;
        min-height: 0;
        width: 100%;
    }
    .image-section:fullscreen .slides,
    .image-section:-webkit-full-screen .slides,
    .image-section.is-fullscreen .slides {
        display: flex;
        flex: 1 1 auto;
        height: auto;
        min-height: 0;
        align-items: stretch;
        width: 100%;
    }
    .image-section:fullscreen .slide,
    .image-section:-webkit-full-screen .slide,
    .image-section.is-fullscreen .slide {
        display: flex;
        flex: 1 1 auto;
        height: auto;
        min-height: 0;
        align-items: center;
        justify-content: center;
        width: 100%;
    }
    .image-section:fullscreen .slide img,
    .image-section:-webkit-full-screen .slide img,
    .image-section.is-fullscreen .slide img {
        max-height: none;
        max-width: none;
        width: 100%;
        height: 100%;
        object-fit: contain;
    }
    .image-section:fullscreen .slide .slide-media,
    .image-section:-webkit-full-screen .slide .slide-media,
    .image-section.is-fullscreen .slide .slide-media {
        max-height: none;
        max-width: none;
        width: 100%;
        height: 100%;
        object-fit: contain;
    }
    .zoom-target {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        max-height: 70vh;
    }
    .svg-object {
        width: 100%;
        height: auto; 
        max-height: 70vh; 
        display: block;
        object-fit: contain;
    }
    .image-section:fullscreen .zoom-target,
    .image-section:-webkit-full-screen .zoom-target,
    .image-section.is-fullscreen .zoom-target {
        display: flex;
        flex: 1 1 auto;
        min-height: 0;
        width: 100%;
        height: 100%;
        max-width: 100%;
        max-height: 100%;
        align-items: center;
        justify-content: center;
    }
    .image-section:fullscreen .svg-object,
    .image-section:-webkit-full-screen .svg-object,
    .image-section.is-fullscreen .svg-object {
        width: 100%;
        height: 100%;
        display: block;
    }
    .image-section:fullscreen > .dots,
    .image-section:-webkit-full-screen > .dots,
    .image-section.is-fullscreen > .dots {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 12px;
        margin: 0;
        justify-content: center;
        z-index: 20;
    }
    .image-instruction-wrap {
        margin-top: 10px;
    }
    .image-section:fullscreen .image-instruction-wrap,
    .image-section:-webkit-full-screen .image-instruction-wrap,
    .image-section.is-fullscreen .image-instruction-wrap {
        display: none !important;
    }
    .zoom-hint {
        margin: 6px 0 0;
        font-size: 13px;
        font-family: 'Arial', sans-serif;
        text-align: center;
        color: #333;
        opacity: 0.85;
    }
    .fullscreen-btn {
        position: absolute;
        top: 10px;
        right: 10px;
        background: rgba(255,255,255,0.7);
        border: none;
        border-radius: 4px;
        padding: 6px;
        cursor: pointer;
        z-index: 30;
    }
    .upload-label {
        display: inline-block;
        background-color: #262626;
        color: white;
        font-size: 16px;
        padding: 10px 20px;
        border-radius: 5px;
        cursor: pointer;
        text-align: center;
        border: 3px solid #054b7a;
        transition: background-color 0.3s ease;
    }
    .upload-label:hover {
        background-color: #262626;
    }
    .upload-label span {
        font-size: 14px;
        font-weight: bold;
    }
    #file-count {
        font-size: 16px;
    }
    .learning-objectives {
        margin: 20px 0;
        padding: 15px;
        background-color: #f1f1f1;
        border-left: 4px solid #262626;
    }
    .learning-objectives h3 {
        margin-top: 0;
    }
    .learning-objectives ol {
        margin: 10px 0;
        padding-left: 20px;
    }
    .learning-objectives li {
        margin-bottom: 5px;
        font-size: 16px;
    }
    .learning-objectives {
        margin: 20px 0;
        padding: 15px;
        background-color: #f1f1f1;
        border-left: 4px solid #262626;
    }
    .learning-objectives h3 {
        margin-top: 0;
    }
    .learning-objectives ol {
        margin: 10px 0;
        padding-left: 20px;
    }
    .learning-objectives li {
        margin-bottom: 5px;
        font-size: 16px;
    }
    .chapter-tasks {
        margin: 20px 0;
        padding: 15px;
        background-color: #f1f1f1;
        border-left: 4px solid #262626;
    }
    .chapter-tasks h3 {
        margin-top: 0;
    }
    .chapter-tasks ul {
        list-style: none;
        margin: 10px 0 0 0;
        padding-left: 0;
    }
    .chapter-tasks .task-item {
        margin-bottom: 10px;
        list-style: none;
    }
    .chapter-tasks .task-item::marker {
        content: "";
    }
    .chapter-tasks .task-item label {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        cursor: pointer;
    }
    .chapter-tasks .task-item input[type="checkbox"] {
        margin-top: 4px;
        width: 18px;
        height: 18px;
        cursor: pointer;
        accent-color: #262626;
    }
    .chapter-tasks .task-item input[type="checkbox"]:focus-visible {
        outline: 2px solid #262626;
        outline-offset: 2px;
    }
    .chapter-tasks .task-item.is-complete span {
        text-decoration: line-through;
        opacity: 0.65;
    }
    .tasks-input {
        min-height: 80px;
        resize: vertical;
        overflow-y: auto;
    }    
    .pdf-viewer {
        margin: 20px 0;
        padding: 10px;
        border: 3px solid #262626;
        border-radius: 5px;
        background-color: #f1f1f1;
    }
    .pdf-instruction {
        font-size: 16px;
        font-family: 'Arial', sans-serif;
        text-align: left;
        padding: 10px 12px;
        line-height: 1.35; 
        margin: 0;   
        box-sizing: border-box;
        white-space: pre-wrap; 
    }
    .pdf-instruction-container {
        margin: 10px 0;
        border: 3px solid #262626;
        border-radius: 5px;
        background-color: #ffffff;
        font-size: 16px;
        color: #333;
    }
    .pdf-content {
        border: 3px solid #262626;
        border-radius: 5px;
        background-color: #f1f1f1;
        padding: 10px;
    }
    .review-block {
        margin-bottom: 20px;
        padding: 10px;
        border: 3px solid #262626;
        border-radius: 5px;
        background-color: #f1f1f1;
    }
    .review-block h3 {
        margin-top: 0;
    }
    .overview-container {
        background-color: white;
        border-radius: 15px;
        border: 3px solid #262626;
        box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
        width: 80%;
        margin: 20px auto;
        padding: 20px;
    }
    .search-bar {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: center;
      margin-bottom: 20px;
      margin-top: 1rem;
      gap: 10px;
    }
    .search-bar input[type="text"] {
        flex: 1;
        font-size: 16px;
        font-family: 'Arial', sans-serif;
        padding: 8px;
        border: 3px solid #262626;
        border-radius: 4px;
    }
    .book-card {
        background-color: #fff;
        border: 3px solid #262626;
        border-radius: 4px;
        padding: 15px;
        margin-bottom: 15px;
        cursor: pointer;
        transition: background-color 0.2s ease;
        position: relative;
    }
    .book-card:hover {
        background-color: #f8f8f8;
    }
    .der-icon {
        position: absolute;
        top: 7px;
        right: 10px;
        width: 155px;     
        height: auto;  
    }
    @media screen and (max-width: 768px) {
        .der-icon {
            width: 50px;
        }
    }
    @media screen and (max-width: 480px) {
        .der-icon {
            width: 30px;
        }
    }
    .book-card h4 {
        margin-top: 0;
        margin-bottom: 5px;
    }
    .book-card p {
        margin: 5px 0;
    }
    hr {
        border: 1.5px solid #262626;
        margin: 10px auto;
    }
    .ql-container {
        max-height: 300px;  
        height: 300px; 
        overflow-y: auto;  
    }
    #cc-text-editor.ql-container { height: 120px; max-height: 120px; }
    #cc-text-editor .ql-editor { min-height: 80px; }
    .ql-toolbar.ql-snow {
        border: none !important;
        box-sizing: border-box !important;
        font-family: 'Arial', sans-serif !important;
        padding: 1px !important;
    }
    .ql-snow .ql-toolbar button:hover .ql-stroke {
        stroke: #33CCFF !important;
    }
    .ql-snow .ql-picker.ql-size .ql-picker-label::before {
    content: attr(data-value);
    }
    .ql-snow .ql-picker.ql-size .ql-picker-item::before {
    content: attr(data-value);
    }
    #overview-button:disabled {
        cursor: not-allowed;
    }
    .loading-container {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        margin-top: 20px;
    }
    #loading-container {
        display: flex;      
        justify-content: center;    
        align-items: center;   
        margin: 20px auto;       
    }
    .spinner-container {
        display: flex;       
        align-items: center;       
        justify-content: center;   
        flex-direction: column;  
        margin: 20px auto;      
    }
    .error {
        color: #f44336;
        background-color: #ffffff;
        border: 3px solid #f44336;
        border-radius: 5px;
        padding: 10px;
        margin-bottom: 10px;
        font-weight: bold;
    }

    .error-container {
        color: #f44336;
        background-color: #ffffff;
        border: 3px solid #f44336;
        border-radius: 5px;
        padding: 10px;
        margin-bottom: 10px;
        font-weight: bold;
    }
    .error-container:empty {
        display: none !important;
    }
    .chat-window .error-container.error {
        display: inline-block !important;
        width: auto !important;
        box-sizing: border-box;
        margin-top: 10px;
    }
    #chat-error:empty {
        display: none !important;
    }
    #chat-error:not(:empty) {
        display: inline-block !important;
        width: auto !important;
        box-sizing: border-box;
        margin-top: 10px;
    }
    .success {
        color: #69DCD9;
        background-color: #ffffff;
        border: 3px solid #69DCD9;
        border-radius: 5px;
        padding: 10px;
        margin-bottom: 10px;
        font-weight: bold;     
    }
    .notes-section {
        margin-bottom: 20px;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
    }
    #excalidraw-root {
        position: relative;
        width: 100%;
        height: 550px; 
        min-height: 550px;
        overflow: hidden;
        z-index: 1;  
    }
    #excalidraw-root .excalidraw,
    #excalidraw-root .excalidraw-container {
        width: 100% !important;
        height: 100% !important;
    }   
    .notes-section .editor {
        height: 300px;
        width: 100%;
        border: 3px solid #262626;
        margin-bottom: 10px;
    }
    .ql-editor {
        border: 3px solid #262626;
        background-color: #ffffff; 
        min-height: 300px;
        font-size: 16px;
        line-height: 1.1;
    }
    #config-preview-container {
        margin-top: 20px;
        margin-bottom: 20px;
        background-color: #f1f1f1; 
        border: 3px solid #262626; 
        border-radius: 5px; 
        padding: 10px; 
    }
    #config-preview {
        display: block;
        width: 100%;
        min-height: 50px;
        max-height: 150px;      
        border: 3px solid #262626;
        border-radius: 5px;
        background-color: #ffffff;
        color: #262626;
        font-family: 'Arial', sans-serif;
        font-size: 16px;
        box-sizing: border-box;
        padding: 10px;
        resize: vertical;   
        overflow-y: auto;   
    }
    #config-preview-container label {
        margin-bottom: 10px;
    }
    .accordion-header {
        background-color: #ffffff;
        border: 3px solid #262626;
        border-radius: 5px;
        padding: 10px;
        cursor: pointer;
        margin-bottom: 5px;
        font-size: 16px;
        user-select: none;
    }
    .accordion-header:hover {
        background-color: #85DFFF;
    }
    .accordion-content {
        border: 3px solid #262626;
        border-radius: 5px;
        margin-bottom: 15px;
        padding: 10px;
    }
    .pdf-upload-label {
        margin-bottom: 5px;
    }
    .audio-upload-label {
        margin-bottom: 5px;
    }
    textarea.wordcloud-field {
        min-height: 100px;
    }
    .card-actions {
        display: flex;
        gap: 10px;            
        justify-content: flex-start; 
        flex-wrap: wrap;   
    }
    @media (max-width: 480px) {
    .card-actions {
        flex-direction: column;
    }
    }
    .confirm {
        display: flex;
        align-items: center;   
        justify-content: space-between; 
        border: 3px solid #f44336;
        background-color: #ffffff;
        color: #f44336;
        padding: 1rem;
        margin-top: 0.5rem;
        border-radius: 5px;
    }
    .confirm p {
        margin: 0;
        font-weight: bold;
    }
    .confirm-actions {
        display: flex;
        gap: 0.5rem;
    }
    body.login-page {
        margin: 0;
        overflow: hidden;
        background: #ffffff;
        position: relative;
    }
    .login-page .wrapper {
        position: absolute;
        left: 0;
        top: 0;
    }
    .notification {
        position: fixed;
        top: 20px;
        right: 20px;
        background-color: #262626;   
        color: #ffffff;  
        padding: 12px 20px;
        border-radius: 4px;
        box-shadow: 0 4px 8px rgba(0,0,0,0.3);
        display: none;  
        z-index: 1000;
        font-size: 16px;
    }
    .drawing-toolbar {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.5rem;
        background: #fff;
        padding: 0.25rem;
        position: sticky;
        top: 0;
        z-index: 10;
        border-radius: 4px;
        margin-bottom: 0.5rem;
    }
    .drawing-toolbar .toolbar-btn {
        background: none;
        border: none;
        cursor: pointer;
        padding: 0.25rem;
        font-size: 1.1rem;
        color: #262626;
    }
    .drawing-toolbar .toolbar-btn:hover {
        background: #f0f0f0;
        border-radius: 3px;
    }
    .drawing-toolbar .toolbar-separator {
        width: 3px;
        height: 1.5rem;
        background: #262626;
        margin: 0 0.5rem;
    }
    .drawing-toolbar .toolbar-label {
        display: inline-flex;
        align-items: center;
        gap: 0.25rem;
        font-size: 0.9rem;
        color: #262626;
        white-space: nowrap;
    }
    .drawing-toolbar .toolbar-label.farbe {
       gap: 0.5rem;
    }
    .drawing-toolbar .toolbar-label.farbe i {
        font-size: 1rem;
    }
    .drawing-toolbar .toolbar-label.farbe input[type="color"] {
        border: 2.5px;
        width: 1.5em;
        height: 1.5em;
        padding: 0;
        margin: 0;  
    }
    .drawing-toolbar .toolbar-label.stärke {
        gap: 0.1rem; 
        margin-left: 1rem; 
    }
    .drawing-toolbar .toolbar-label.stärke i {
        font-size: 1rem;
    }
    .drawing-toolbar .toolbar-label.stärke input[type="number"] {
        width: 2rem;  
        text-align: center;
        background: transparent;
        border: none;
        font-family: Arial, sans-serif;
        font-size: 1.2rem;
        margin: 0 -0.1rem; 
        -moz-appearance: textfield;
    }
    #brush-width {
    font-weight: bold;
    }
    .drawing-toolbar .toolbar-label.stärke input[type="number"]::-webkit-inner-spin-button,
    .drawing-toolbar .toolbar-label.stärke input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
        margin: 0;
    }
    .drawing-toolbar .spin-btn {
        background: none;
        border: none;
        cursor: pointer;
        padding: 0.2rem;
        font-size: 1rem;
        color: #262626;
        margin: 0;
    }
    .drawing-toolbar .spin-btn:hover {
        background: #eee;
        border-radius: 3px;
    }
    .drawing-container {
        width: 100%;
        margin-bottom: 1rem;
        box-sizing: border-box;
        overflow: auto;
    }
    #drawing-canvas {
        border: 3px solid #262626;
        box-sizing: border-box;
        width: 100%;
        height: auto;
    }
    .hidden {
        display: none !important;
    }
    .level-selection {
        display: flex;
        flex-wrap: wrap;  
        gap: 0.5rem;   
        align-items: center;  
    }
    .level-selection .level-btn,
    .level-selection #send-button {
        margin: 0.25rem 0;
    }
    @media (max-width: 480px) {
    .level-selection {
        flex-direction: column;  
        align-items: stretch; 
    }
    .level-selection .level-btn,
    .level-selection #send-button {
        width: 100%;      
        margin: 0.25rem 0;     
    }
    }
    .level-selection p {
        flex: 0 0 100%;
        margin-bottom: 0.5rem; 
    }
    .audio-ui {
        display:flex; 
        align-items:center; 
        gap:10px; 
        margin-top:8px;
        flex-wrap: wrap;   
    }
    .audio-ui > *{ flex:0 0 auto; }
    .circle-btn {
    --s:42px;
    width:var(--s); height:var(--s); box-sizing:border-box;
    border-radius:50%; border:3px solid #262626; background:#fff; color:#262626;
    display:inline-flex; align-items:center; justify-content:center;
    cursor:pointer; transition:background-color .15s,color .15s;
    }
    .circle-btn svg { width:18px; height:18px; stroke:#262626; }
    .circle-btn:hover { background:#262626; color:#fff; }
    .circle-btn:hover svg { stroke:#fff; }
    .circle-info { font-size:12px; font-weight:700; line-height:1; }
    .progress-wrap {
        display:flex; 
        align-items:center; 
        gap:5px;
        flex: 1 1 320px;   
        min-width: 240px;     
        max-width: 240px;     
    }
    .progress {
        position:relative; flex:1; height:12px; min-width:160px; 
        border:3px solid #262626; border-radius:6px; background:#fff;
        cursor:pointer; overflow:hidden;
    }
    .progress-fill {
        position: absolute;
        top: 0; 
        bottom: 0; 
        left: 0;
        width: 0%; 
        background: #262626; 
        border-radius: 0;
        overflow: hidden;
    }
    .progress-fill::before {
        content: "";
        position: absolute;
        left: -2px; top: 0; bottom: 0; 
        width: 3px;
        background: #262626;
    }
    .time-label {
        flex: 0 0 auto;   
        min-width:90px; 
        text-align:right; 
        color:#262626;
        font-variant-numeric: tabular-nums;
    }
    @media (max-width: 700px) {
    .progress-wrap { flex-basis:100%; min-width: 220px; max-width: none; }
    }
    .easytransitions_transition div {
        position:absolute; 
        z-index: 999; 
        background:#00B0F0;
        width:200px; 
        height:200px; 
        transform:scale(0);
        pointer-events:none;
    }
    #knowledge-graph {
        width: 100%;
        height: 500px;
        border: 3px solid #262626;
        border-radius: 12px;
        background: #fff;
    }
    .chapter-features {
        margin-top: 10px;
    }
    .chapter-features-title {
        margin: 0 0 6px 0; 
        font-weight: 700;
        color: #262626;
    }
    .chapter-features-options {
        border: 3px solid #262626;
        border-radius: 5px;
        padding: 8px 12px;
        display: flex;
        flex-wrap: wrap;
        flex-start;
        gap: 8px 18px;
    }
    .feature-checkbox {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        margin: 0;
        font-weight: 600;
        color: #262626;
        white-space: nowrap;
    }
    .feature-checkbox input[type="checkbox"] {
        accent-color: #262626;
        width: 18px;
        height: 18px;
        cursor: pointer;
    }
    .feature-checkbox input[type="checkbox"]:focus-visible {
        outline: 2px solid #262626;
        outline-offset: 2px;
    }
    .quiz-analytics-option {
        margin-top: 8px;
        padding: 0;
        border: 0;
        background: transparent;
    }
    .quiz-analytics-option[hidden] {
        display: none !important;
    }
    .quiz-analytics-option .feature-checkbox {
        display: grid;
        grid-template-columns: 18px minmax(0, 1fr);
        align-items: center;
        column-gap: 10px;
        width: 100%;
        margin: 0;
        white-space: normal;
    }
    .quiz-analytics-option .feature-checkbox input[type="checkbox"] {
        width: 18px;
        height: 18px;
        margin: 0;
        align-self: center;
    }
    .quiz-analytics-option .feature-checkbox > span {
        min-width: 0;
        line-height: 1.25;
    }
    .quiz-analytics-option .hint {
        display: block;
        margin-top: 2px;
        font-weight: 400;
        line-height: 1.3;
    }
    .btn-inline {
        width: auto !important;
        margin: 0 !important;
        display: inline-block;
        white-space: nowrap;
        padding: 10px 14px;
    }
    .ws-controls {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
        margin-top: 10px;
    }
    .ws-controls input[type="text"].answer-input {
        width: 420px;
        margin-top: 0;
    }
    .ws-controls button {
        width: auto;
    }
    .word-guess-controls {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-top: 10px;
        flex-wrap: nowrap;
    }
    .word-guess-controls input[type="text"].letter-inpu {
        width: 120px;
        margin-top: 0;
        flex: 0 0 auto;
    }
    .word-guess-controls input[type="text"] {
        width: 120px;
        flex: 0 0 120px;
        margin-top: 0;
    }
    .word-guess-controls button {
        flex: 0 0 auto;
    }
    .letter-input {
        width: 90px; 
        text-align: center;
        flex: 0 0 auto;
    }
    .masked-word {
        font-weight: 700; 
        letter-spacing: 0.06em;
        font-size: 1.15em; 
    }
    @media screen and (max-width: 768px) {
    .book,
    .overview-container {
        width: 95%;
        padding: 12px; 
        box-sizing: border-box;
        }
    }
    @media screen and (max-width: 480px) {
    .book,
    .overview-container {
        width: 100%;
        padding: 10px;
        }
    }
    .ws-scrambled {
        font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, "Noto Sans", "Liberation Sans", sans-serif;
        letter-spacing: 0.08em;
        font-weight: 700;
        font-size: 1.15em;
    }

    .easytransitions_transition__part-1 { left:-100px; top:-100px; }
    .easytransitions_transition__part-2 { left:-100px; bottom:-100px; }
    .easytransitions_transition__part-3 { right:-100px; top:-100px; }
    .easytransitions_transition__part-4 { right:-100px; bottom:-100px; }
    .easytransitions_transition__part-5 { left:0; height:100% !important; transform-origin:0 200px; }
    .easytransitions_transition__part-6 { right:-200px; height:100% !important; transform-origin:0 200px; }
    .easytransitions_transition__part-7 { bottom:-100px; width:100% !important; }
    .easytransitions_transition__part-8 { top:-100px; width:100% !important; }

    .easytransitions_transition .split_diagonal,
    .easytransitions_transition .split_diagonal_alt,
    .easytransitions_transition .split_diamond {
    animation: et_diamond 1.2s;
    transform:scale(0) rotate(45deg);
    }
    .easytransitions_transition .split_vertical,
    .easytransitions_transition .wipe_left,
    .easytransitions_transition .wipe_right{ transform:scaleX(0); }
    .easytransitions_transition .split_horizontal,
    .easytransitions_transition .wipe_top,
    .easytransitions_transition .wipe_bottom{ transform:scaleY(0); }

    .easytransitions_transition__part-1.split_diagonal_alt,
    .easytransitions_transition__part-1.split_vertical,
    .easytransitions_transition__part-1.split_horizontal { display:none; }
    .easytransitions_transition__part-2.split_diagonal,
    .easytransitions_transition__part-2.split_vertical,
    .easytransitions_transition__part-2.split_horizontal { display:none; }
    .easytransitions_transition__part-3.split_diagonal,
    .easytransitions_transition__part-3.split_vertical,
    .easytransitions_transition__part-3.split_horizontal { display:none; }
    .easytransitions_transition__part-4.split_diagonal_alt,
    .easytransitions_transition__part-4.split_vertical,
    .easytransitions_transition__part-4.split_horizontal{  display:none; }

    .easytransitions_transition__part-5.split_vertical,
    .easytransitions_transition__part-5.wipe_left { display:block; animation: et_vertical 1.2s forwards; }
    .easytransitions_transition__part-6.split_vertical,
    .easytransitions_transition__part-6.wipe_right { display:block; animation: et_vertical_r 1.2s forwards; }
    .easytransitions_transition__part-7.split_horizontal,
    .easytransitions_transition__part-7.wipe_bottom { display:block; animation: et_horizontal 1s forwards; }
    .easytransitions_transition__part-8.split_horizontal,
    .easytransitions_transition__part-8.wipe_top { display:block; animation: et_horizontal 1s forwards; }

    @keyframes et_diamond {
    0%{transform:rotate(45deg) scale(0)}
    50%{transform:rotate(45deg) scale(10)}
    100%{transform:rotate(45deg) scale(0)}
    }
    @keyframes et_vertical {
    0%{transform:scaleX(0)} 50%{transform:scaleX(10)} 100%{transform:scaleX(0)}
    }
    @keyframes et_vertical_r {
    0%{transform:scaleX(0)} 50%{transform:scaleX(-10)} 100%{transform:scaleX(0)}
    }
    @keyframes et_horizontal {
    0%{transform:scaleY(0)} 50%{transform:scaleY(10)} 100%{transform:scaleY(0)}
    }
    .easytransitions_navigation{
        position: fixed;  
        top: 50%;
        transform: translateY(-50%);
        z-index: 1000;
        display:flex; 
        justify-content:space-between;
        align-items:center;
        padding: 0;  
        pointer-events:none;  
    }
    .easytransitions_navigation button {
        background:transparent; 
        border:none; 
        pointer-events:auto; 
        cursor:pointer;
        display:grid; 
        place-items:center; 
        width:40px; 
        height:40px;
    }
    .easytransitions_navigation svg{ display:block; }
    .easytransitions_navigation path {
        stroke: #262626 !important; 
    }

    .easytransitions_navigation { transition: opacity .15s ease; }
    .easytransitions_navigation.is-hidden { opacity: 0; pointer-events: none; }

    .setup-fields.is-loading {
        opacity: 0.45;
        pointer-events: none;
    }

    .embed-section {
        margin: 0 0 20px 0;
        display: flex;
        flex-direction: column;
        align-items: stretch; 
    }

    .embed-instruction-container {
        margin: 10px 0;
        border: 3px solid #262626;
        border-radius: 5px;
        background-color: #ffffff;
        box-sizing: border-box;
        width: 100%;
    }

    .embed-instruction {
        font-size: 16px;
        font-family: 'Arial', sans-serif;
        text-align: left;
        padding: 10px 12px;
        line-height: 1.35;
        margin: 0;
        box-sizing: border-box;
        white-space: pre-wrap;
    }

    .embed-frame-wrap {
        width: 100%;
        height: 550px;
        border: 3px solid #262626;
        border-radius: 5px;
        overflow: hidden;
        background: #fff;
        margin-bottom: 10px;
        box-sizing: border-box;
        position: relative;
    }

    .embed-fullscreen-btn {
        position: absolute;
        top: 10px;
        right: 10px;
        background: rgba(255,255,255,0.7);
        border: none;
        border-radius: 4px;
        padding: 6px;
        cursor: pointer;
        z-index: 10;
    }

    .embed-frame-wrap:fullscreen,
    .embed-frame-wrap:-webkit-full-screen,
    .embed-frame-wrap.is-fullscreen {
        width: 100vw;
        height: 100vh;
        margin: 0;
        border: 0;
        border-radius: 0;
        background: #000;
        overflow: hidden;
        box-sizing: border-box;
    }

    .embed-frame-wrap:fullscreen iframe,
    .embed-frame-wrap:-webkit-full-screen iframe,
    .embed-frame-wrap.is-fullscreen iframe {
        width: 100%;
        height: 100%;
    }

    .embed-frame-wrap iframe {
        width: 100%;
        height: 100%;
        border: 0;
        display: block;
    }

    .embed-fallback {
        width: 100%;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 8px;
        margin-top: 6px;
    }

    .embed-fallback-text {
        margin: 0;
        font-size: 13px;
        font-family: 'Arial', sans-serif;
        text-align: center;
        color: #333;
        opacity: 0.85;
    }

    .btn {
        transition-duration: 0.4s;
        border: 3px solid #262626;
        border-radius: 4px;
        background-color: #262626;
        color: white;
        padding: 10px 10px;
        text-align: center;
        text-decoration: none;
        display: inline-block;
        font-size: 16px;
        cursor: pointer;
    }

    .btn:hover {
        background-color: white;
        color: #262626;
        border: 3px solid #262626;
    }

    .bulletin-board-section {
        width: 100%;
        margin: 24px 0;
    }

    .bulletin-board-toolbar {
        display: flex;
        gap: 10px;
        flex-wrap: wrap;
        margin-bottom: 12px;
        align-items: center;
    }

    .board-toolbar-btn {
        width: 42px;
        height: 42px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: 3px solid #262626;
        border-radius: 5px;
        background: #262626;
        cursor: pointer;
        padding: 0;
        transition: background-color 0.2s ease, transform 0.2s ease;
    }

    .board-toolbar-btn:hover {
        background: #ffffff;
        transform: translateY(-1px);
    }

    .board-toolbar-btn:focus-visible {
        outline: 3px solid #85DFFF;
        outline-offset: 2px;
    }

    .board-toolbar-btn:hover .board-toolbar-icon {
        filter: brightness(0) invert(0);
    }

    .board-toolbar-icon {
        width: 25px;
        height: 25px;
        display: block;
        pointer-events: none;
        filter: brightness(0) invert(1);
        transition: filter 0.2s ease;
    }

    .bulletin-board {
        position: relative;
        width: 100%;
        min-height: 560px;
        max-height: 70vh; 
        overflow: auto; 
        border: 3px solid #262626;
        border-radius: 6px;
        background-color: #ffffff;
        background-image:
            linear-gradient(#DBDBDB 1px, transparent 1px),
            linear-gradient(90deg, #DBDBDB 1px, transparent 1px);
        background-repeat: repeat;
        background-size: 24px 24px;
        box-sizing: border-box;
    }

    .bb-note {
        position: absolute;
        width: 220px;
        min-height: 190px;
        padding: 10px 12px 12px 12px;
        box-sizing: border-box;
        box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.22);
        cursor: grab;
        touch-action: none;
        user-select: none;
        border: 1px solid rgba(38, 38, 38, 0.18);
    }

    .bb-note:active {
        cursor: grabbing;
    }

    .bb-note-toolbar {
        display: flex;
        justify-content: flex-end;
        gap: 8px;
        margin-bottom: 8px;
    }

    .bb-icon-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        height: 28px;
        border: none;
        background: rgba(255,255,255,0.58);
        border-radius: 50%;
        cursor: pointer;
        padding: 0;
        transition: background-color 0.2s ease, transform 0.2s ease;
    }

    .bb-icon-btn:hover {
        background: rgba(255,255,255,0.92);
        transform: scale(1.05);
    }

    .bb-icon-btn:focus-visible {
        outline: 2px solid #262626;
        outline-offset: 2px;
    }

    .bb-icon-btn img {
        width: 16px;
        height: 16px;
        display: block;
        pointer-events: none;
    }

    .bb-note-text {
        width: 100%;
        min-height: 135px;
        border: none;
        outline: none;
        resize: none;
        background: transparent;
        font-size: 16px;
        line-height: 1.25;
        box-sizing: border-box;
        color: #262626;
    }

    .bb-note-text:focus {
        outline: none;
    }

    .bb-note-text.is-editing:focus {
        outline: 3px solid #262626;
        background: rgba(255,255,255,0.35);
    }

    .bb-note-text[readonly] {
        cursor: text;
    }

    .bb-note-text.is-editing {
        background: rgba(255,255,255,0.35);
    }

    .bb-note-color-input {
        position: absolute;
        opacity: 0;
        width: 1px;
        height: 1px;
        pointer-events: none;
    }

    .glossary-section {
        margin: 28px 0 22px 0;
    }

    .glossary-section__header {
        margin-bottom: 14px;
    }

    .glossary-section__header h3 {
        margin-bottom: 6px;
    }

    .glossary-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
        gap: 14px;
        margin-top: 14px;
        align-items: start;
    }

    .glossary-card {
        background: #ffffff;
        border: 3px solid #262626;
        border-radius: 5px;
        box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
        overflow: hidden;
        transition: transform 0.18s ease, box-shadow 0.18s ease;
        align-self: start;
    }

    .glossary-card:hover {
        transform: translateY(-2px);
        box-shadow: 0 18px 45px rgba(0, 0, 0, 0.20);
    }

    .glossary-card__summary {
        list-style: none;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 16px 18px;
        font-weight: 700;
        min-height: 72px;
        box-sizing: border-box;
        width: 100%;
        max-width: 100%;
        overflow: hidden;
    }

    .glossary-card__summary::-webkit-details-marker {
        display: none;
    }

    .glossary-card__term {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        line-height: 1.2;
        flex: 1 1 auto;
        min-width: 0;
        max-width: 100%;
        overflow-wrap: anywhere;
        word-break: normal;
    }

    .glossary-card__term::before {
        content: "#";
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 30px;
        height: 30px;
        min-width: 30px;
        flex: 0 0 30px;
        border-radius: 999px;
        background: rgba(38, 38, 38, 0.08);
        font-size: 0.85em;
        font-weight: 700;
    }

    .glossary-card__icon {
        width: 25px;
        height: 25px;
        min-width: 25px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 999px;
        background: rgba(38, 38, 38, 0.06);
        font-size: 1.2em;
        font-weight: 700;
        flex: 0 0 25px;
        margin-left: auto;
        transition: transform 0.18s ease;
        align-self: center;
    }

    .glossary-card[open] .glossary-card__icon {
        transform: rotate(45deg);
    }

    .glossary-card__body {
        padding: 0 18px 18px 18px;
        border-top: 1px solid rgba(38, 38, 38, 0.08);
    }

    .glossary-card__body p {
        margin: 14px 0 0 0;
        font-size: 12px;
        line-height: 1.2;
        text-align: justify;
    }

    @media screen and (max-width: 768px) {
        .glossary-grid {
            grid-template-columns: 1fr;
        }
    }

    /* WCAG 2.2 AA – gemeinsame, layoutschonende Verbesserungen */
    *, *::before, *::after {
        box-sizing: border-box;
    }

    html {
        scroll-padding-top: 16px;
    }

    :where(h1, h2, h3, h4, h5, h6, [id]) {
        scroll-margin-top: 16px;
    }

    img, video, iframe, canvas, svg {
        max-width: 100%;
    }

    button,
    .button,
    select,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    summary,
    [role="button"] {
        min-height: 44px;
    }

    button,
    .button,
    .file-picker-icon-btn,
    .setup-icon-btn,
    .chapter-delete-icon-btn,
    .overview-icon-btn,
    .bb-icon-btn {
        min-width: 44px;
    }

    :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
        outline: 3px solid #ffffff !important;
        outline-offset: 2px !important;
        box-shadow: 0 0 0 6px #005fcc !important;
    }

    /* Formularfelder behalten die bisherige einfache Fokusumrandung. */
    :where(
        input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="color"]):not([type="range"]),
        select,
        textarea,
        [contenteditable="true"]
    ):focus,
    :where(
        input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="color"]):not([type="range"]),
        select,
        textarea,
        [contenteditable="true"]
    ):focus-visible {
        outline: none !important;
        outline-offset: 0 !important;
        box-shadow: none !important;
        border-color: #00B0F0 !important;
    }

    .notes-section #editor.ql-container:focus-within,
    .ql-container.ql-snow:focus-within {
        outline: none !important;
        box-shadow: none !important;
        border-color: #00B0F0 !important;
    }

    a:not(.button):not(.chapter-card):not(.overview-icon-btn) {
        text-decoration-thickness: 0.12em;
        text-underline-offset: 0.18em;
    }

    .visually-hidden {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        padding: 0 !important;
        margin: -1px !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        white-space: nowrap !important;
        border: 0 !important;
    }

    .skip-link {
        position: fixed;
        top: 8px;
        left: 8px;
        z-index: 20000;
        padding: 10px 14px;
        border: 3px solid #262626;
        border-radius: 4px;
        background: #ffffff;
        color: #262626;
        font-weight: 700;
        transform: translateY(-160%);
        transition: transform 0.12s ease;
    }

    .skip-link:focus {
        transform: translateY(0);
    }

    .chapter-card {
        display: block;
        color: #262626;
        text-decoration: none;
    }

    .chapter-accessibility-option[hidden],
    .accessibility-modal-overlay[hidden] {
        display: none !important;
    }

    .chapter-accessibility-option {
        margin: 10px 0 16px;
        padding: 12px;
        border: 3px solid #262626;
        border-radius: 5px;
        background: #ffffff;
    }

    .accessibility-fab {
        position: fixed;
        top: 16px;
        right: 16px;
        z-index: 12000;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 48px;
        height: 48px;
        padding: 0;
        border: 3px solid #262626;
        border-radius: 5px;
        background: #262626;
        cursor: pointer;
        transition: background-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
    }

    .accessibility-fab img {
        width: 28px;
        height: 28px;
        display: block;
        filter: brightness(0) invert(1);
        pointer-events: none;
        transition: filter 0.15s ease;
    }

    .accessibility-fab:hover,
    .accessibility-fab[aria-expanded="true"] {
        background: #ffffff;
        color: #262626;
    }

    .accessibility-fab:hover img,
    .accessibility-fab[aria-expanded="true"] img {
        filter: brightness(0) invert(0);
    }

    .accessibility-modal-overlay {
        position: fixed;
        inset: 0;
        z-index: 13000;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 18px;
        background: rgba(0, 0, 0, 0.72);
    }

    .accessibility-modal-card {
        width: min(560px, 100%);
        max-height: calc(100vh - 36px);
        overflow: auto;
        padding: 20px;
        border: 3px solid #262626;
        border-radius: 5px;
        background: #ffffff;
        color: #262626;
        box-shadow: 0 16px 45px rgba(0, 0, 0, 0.35);
        text-align: left;
    }

    .accessibility-modal-heading {
        margin-bottom: 8px;
    }

    .accessibility-modal-heading h2 {
        margin: 0;
        color: #262626;
    }

    .accessibility-modal-field {
        display: grid;
        gap: 6px;
        margin-top: 16px;
    }

    .accessibility-modal-field label,
    .accessibility-modal-check {
        font-weight: 700;
    }

    .accessibility-modal-field select {
        width: 100%;
        padding: 9px 10px;
        border: 3px solid #262626;
        border-radius: 4px;
        background: #ffffff;
        color: #262626;
        font: inherit;
    }

    .accessibility-modal-check {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-top: 16px;
        min-height: 44px;
    }

    .accessibility-modal-check input {
        width: 24px;
        height: 24px;
        flex: 0 0 24px;
        accent-color: #262626;
        cursor: pointer;
    }

    .accessibility-modal-actions {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-end;
        gap: 10px;
        margin-top: 20px;
    }

    body.accessibility-modal-open {
        overflow: hidden;
    }

    body.a11y-font-large {
        font-size: 125%;
    }

    body.a11y-font-large :where(button, input, select, textarea) {
        font-size: 1em;
    }

    /* Die Quill-Symbolleiste bleibt unabhängig von Schrift- und Kontrastoptionen einheitlich. */
    .ql-toolbar.ql-snow {
        font-size: 14px !important;
        line-height: normal !important;
        letter-spacing: normal !important;
        word-spacing: normal !important;
    }

    .ql-toolbar.ql-snow button {
        width: 28px !important;
        height: 28px !important;
        min-width: 28px !important;
        min-height: 28px !important;
        padding: 3px 5px !important;
        border: 0 !important;
        background: transparent !important;
        font-size: 14px !important;
        box-shadow: none !important;
    }

    .ql-toolbar.ql-snow button:focus-visible {
        outline: 2px solid #00B0F0 !important;
        outline-offset: 1px !important;
        box-shadow: none !important;
    }

    .ql-toolbar.ql-snow .ql-picker-label {
        min-height: 28px !important;
        height: 28px !important;
        line-height: 26px !important;
    }

    body.a11y-font-large .ql-toolbar.ql-snow,
    body.a11y-text-spacing .ql-toolbar.ql-snow {
        font-size: 14px !important;
        line-height: normal !important;
        letter-spacing: normal !important;
        word-spacing: normal !important;
    }

    body.a11y-text-spacing :where(.chapter-content, .learning-objectives, .chapter-tasks, .quiz-section, .chat-window, .glossary-section, .toc-container, .cover, .chapter-list, .cc-license-text) {
        line-height: 1.5 !important;
        letter-spacing: 0.12em !important;
        word-spacing: 0.16em !important;
    }

    body.a11y-text-spacing :where(.chapter-content p, .learning-objectives p, .chapter-tasks p, .quiz-section p, .chat-window p, .glossary-section p, .toc-container p, .cover p, .chapter-card p) {
        margin-bottom: 2em !important;
    }

    body.a11y-high-contrast {
        color: #000000 !important;
    }

    body.a11y-high-contrast :where(.book, .toc-container, .chapter-content, .quiz-section, .chat-window, .help-box, .glossary-card, .accessibility-modal-card, input, textarea, select) {
        background: #ffffff !important;
        color: #000000 !important;
        border-color: #000000 !important;
        box-shadow: none !important;
    }

    body.a11y-high-contrast :where(
        input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="color"]):not([type="range"]),
        select,
        textarea,
        [contenteditable="true"]
    ):focus,
    body.a11y-high-contrast :where(
        input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="color"]):not([type="range"]),
        select,
        textarea,
        [contenteditable="true"]
    ):focus-visible {
        outline: none !important;
        box-shadow: none !important;
        border-color: #00B0F0 !important;
    }

    body.a11y-high-contrast :where(.book-header, .accordion-header) {
        background: #000000 !important;
        color: #ffffff !important;
        border-color: #000000 !important;
    }

    body.a11y-high-contrast .book-header :where(h1, h2, h3, h4),
    body.a11y-high-contrast .accordion-header :where(h1, h2, h3, h4) {
        color: #ffffff !important;
    }

    body.a11y-high-contrast :where(h1, h2, h3, h4, h5, h6) {
        color: #000000;
    }

    /* Nur beschriftete Textschaltflächen werden kontrastiert. Icon-Buttons behalten ihre Produktfarben. */
    body.a11y-high-contrast :where(.button, .btn) {
        background: #000000 !important;
        color: #ffffff !important;
        border-color: #000000 !important;
    }

    body.a11y-high-contrast :where(.button, .btn):hover {
        background: #ffffff !important;
        color: #000000 !important;
        border-color: #000000 !important;
    }

    body.a11y-high-contrast .ql-toolbar.ql-snow button {
        background: transparent !important;
        color: inherit !important;
        border: 0 !important;
    }

    body.a11y-high-contrast a {
        color: #0000cc !important;
        text-decoration: underline !important;
        text-decoration-thickness: 0.14em !important;
    }

    body.a11y-high-contrast .chapter-card {
        background: #ffffff !important;
        color: #000000 !important;
        border: 3px solid #000000 !important;
        text-decoration: none !important;
    }

    body.a11y-high-contrast .chapter-card :where(p, strong) {
        color: #000000 !important;
    }

    .button2,
    .setup-icon-btn.danger,
    .chapter-delete-icon-btn,
    .file-picker-icon-btn.is-remove {
        background: #f44336;
        border-color: #f44336;
        color: #ffffff;
    }

    .button2:hover,
    .setup-icon-btn.danger:hover,
    .chapter-delete-icon-btn:hover,
    .file-picker-icon-btn.is-remove:hover {
        background: #ffffff;
        border-color: #f44336;
        color: #f44336;
    }

    .setup-icon-btn.primary {
        background: #00B0F0;
        border-color: #00B0F0;
        color: #ffffff;
    }

    .setup-icon-btn.primary:hover {
        background: #ffffff;
        border-color: #00B0F0;
        color: #00B0F0;
    }

    .error-message,
    .error,
    .error-container {
        color: #f44336;
        border-color: #f44336;
    }

    .easytransitions_navigation button {
        width: 44px;
        height: 44px;
        border: 3px solid #262626;
        border-radius: 5px;
        background: #262626;
    }

    .easytransitions_navigation path {
        stroke: #ffffff !important;
    }

    .easytransitions_navigation button:hover {
        background: #ffffff;
    }

    .easytransitions_navigation button:hover path {
        stroke: #262626 !important;
    }

    body.a11y-high-contrast .easytransitions_navigation path {
        stroke: #ffffff !important;
    }

    body.a11y-high-contrast .easytransitions_navigation button:hover path {
        stroke: #000000 !important;
    }

    body.a11y-reduce-motion *,
    body.a11y-reduce-motion *::before,
    body.a11y-reduce-motion *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    @media (prefers-reduced-motion: reduce) {
        *, *::before, *::after {
            animation-duration: 0.01ms !important;
            animation-iteration-count: 1 !important;
            transition-duration: 0.01ms !important;
            scroll-behavior: auto !important;
        }
    }

    @media screen and (max-width: 600px) {
        .accessibility-fab {
            top: 10px;
            right: 10px;
        }

        .accessibility-modal-overlay {
            padding: 10px;
        }

        .accessibility-modal-card {
            max-height: calc(100vh - 20px);
            padding: 16px;
        }

        .accessibility-modal-actions > * {
            flex: 1 1 100%;
        }
    }

    @media print {
        .accessibility-fab,
        .accessibility-modal-overlay,
        .skip-link {
            display: none !important;
        }
    }

    