/* CSS Custom Properties (Bootstrap Variables) */
:root {
    --bs-blue: #0d6efd;
    --bs-indigo: #6610f2;
    --bs-purple: #6f42c1;
    --bs-pink: #d63384;
    --bs-red: #dc3545;
    --bs-orange: #fd7e14;
    --bs-yellow: #ffc107;
    --bs-green: #198754;
    --bs-teal: #20c997;
    --bs-cyan: #0dcaf0;
    --bs-black: #000;
    --bs-white: #fff;
    --bs-gray: #6c757d;
    --bs-gray-dark: #343a40;
    --bs-gray-100: #f8f9fa;
    --bs-gray-200: #e9ecef;
    --bs-gray-300: #dee2e6;
    --bs-gray-400: #ced4da;
    --bs-gray-500: #adb5bd;
    --bs-gray-600: #6c757d;
    --bs-gray-700: #495057;
    --bs-gray-800: #343a40;
    --bs-gray-900: #212529;
    --bs-primary: #0d6efd;
    --bs-secondary: #6c757d;
    --bs-success: #198754;
    --bs-info: #0dcaf0;
    --bs-warning: #ffc107;
    --bs-danger: #dc3545;
    --bs-light: #f8f9fa;
    --bs-dark: #212529;
    --bs-primary-rgb: 13, 110, 253;
    --bs-secondary-rgb: 108, 117, 125;
    --bs-success-rgb: 25, 135, 84;
    --bs-info-rgb: 13, 202, 240;
    --bs-warning-rgb: 255, 193, 7;
    --bs-danger-rgb: 220, 53, 69;
    --bs-light-rgb: 248, 249, 250;
    --bs-dark-rgb: 33, 37, 41;
    --bs-primary-text-emphasis: #052c65;
    --bs-secondary-text-emphasis: #2b2f32;
    --bs-success-text-emphasis: #0a3622;
    --bs-info-text-emphasis: #055160;
    --bs-warning-text-emphasis: #664d03;
    --bs-danger-text-emphasis: #58151c;
    --bs-light-text-emphasis: #495057;
    --bs-dark-text-emphasis: #495057;
    --bs-primary-bg-subtle: #cfe2ff;
    --bs-secondary-bg-subtle: #e2e3e5;
    --bs-success-bg-subtle: #d1e7dd;
    --bs-info-bg-subtle: #cff4fc;
    --bs-warning-bg-subtle: #fff3cd;
    --bs-danger-bg-subtle: #f8d7da;
    --bs-light-bg-subtle: #fcfcfd;
    --bs-dark-bg-subtle: #ced4da;
    --bs-primary-border-subtle: #9ec5fe;
    --bs-secondary-border-subtle: #c4c8cb;
    --bs-success-border-subtle: #a3cfbb;
    --bs-info-border-subtle: #9eeaf9;
    --bs-warning-border-subtle: #ffe69c;
    --bs-danger-border-subtle: #f1aeb5;
    --bs-light-border-subtle: #e9ecef;
    --bs-dark-border-subtle: #adb5bd;
    --bs-white-rgb: 255, 255, 255;
    --bs-black-rgb: 0, 0, 0;
    --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
    --bs-body-font-family: var(--bs-font-sans-serif);
    --bs-body-font-size: 1rem;
    --bs-body-font-weight: 400;
    --bs-body-line-height: 1.5;
    --bs-body-color: #212529;
    --bs-body-color-rgb: 33, 37, 41;
    --bs-body-bg: #fff;
    --bs-body-bg-rgb: 255, 255, 255;
    --bs-emphasis-color: #000;
    --bs-emphasis-color-rgb: 0, 0, 0;
    --bs-secondary-color: rgba(33, 37, 41, 0.75);
    --bs-secondary-color-rgb: 33, 37, 41;
    --bs-secondary-bg: #e9ecef;
    --bs-secondary-bg-rgb: 233, 236, 239;
    --bs-tertiary-color: rgba(33, 37, 41, 0.5);
    --bs-tertiary-color-rgb: 33, 37, 41;
    --bs-tertiary-bg: #f8f9fa;
    --bs-tertiary-bg-rgb: 248, 249, 250;
    --bs-heading-color: inherit;
    --bs-link-color: #0d6efd;
    --bs-link-color-rgb: 13, 110, 253;
    --bs-link-decoration: underline;
    --bs-link-hover-color: #0a58ca;
    --bs-link-hover-color-rgb: 10, 88, 202;
    --bs-code-color: #d63384;
    --bs-highlight-color: #212529;
    --bs-highlight-bg: #fff3cd;
    --bs-border-width: 1px;
    --bs-border-style: solid;
    --bs-border-color: #dee2e6;
    --bs-border-color-translucent: rgba(0, 0, 0, 0.175);
    --bs-border-radius: 0.375rem;
    --bs-border-radius-sm: 0.25rem;
    --bs-border-radius-lg: 0.5rem;
    --bs-border-radius-xl: 1rem;
    --bs-border-radius-xxl: 2rem;
    --bs-border-radius-2xl: var(--bs-border-radius-xxl);
    --bs-border-radius-pill: 50rem;
    --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
    --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);
    --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
    --bs-focus-ring-width: 0.25rem;
    --bs-focus-ring-opacity: 0.25;
    --bs-focus-ring-color: rgba(13, 110, 253, 0.25);
    --bs-form-valid-color: #198754;
    --bs-form-valid-border-color: #198754;
    --bs-form-invalid-color: #dc3545;
    --bs-form-invalid-border-color: #dc3545;
    --bs-breakpoint-xs: 0;
    --bs-breakpoint-sm: 576px;
    --bs-breakpoint-md: 768px;
    --bs-breakpoint-lg: 992px;
    --bs-breakpoint-xl: 1200px;
    --bs-breakpoint-xxl: 1400px;
    scroll-behavior: smooth;
}

/* Base Styles */
*, *::before, *::after {
    box-sizing: border-box;
}

body, html {
    margin: auto;
    font: 1rem/1 Verdana;
    transform: unset !important;
}

body {
    margin: 0 auto;
    margin-top: 1px !important;
    padding: unset;
    font-family: var(--bs-body-font-family);
    font-size: var(--bs-body-font-size);
    font-weight: var(--bs-body-font-weight);
    line-height: var(--bs-body-line-height);
    color: var(--bs-body-color);
    text-align: var(--bs-body-text-align);
    background-color: var(--bs-body-bg);
    background-position: top !important;
    cursor: auto;
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

html {
    background: url("https://www.inconsequential.org/files/01a/image/blackg.jpg") left top repeat;
    background-color: black;
    line-height: 1.15;
    display: contents;
}

/* Typography */
h1, h2 {
    margin: 1px;
    margin-top: 0;
    margin-bottom: 0.5rem;
    font-weight: 500;
    line-height: 1.2;
    color: var(--bs-heading-color);
}

h1 {
    font-size: 1.5rem;
    color: #2c3e50;
    border-bottom: 2px solid #e74c3c;
    padding-bottom: 0.5rem;
}

h2 {
    font-size: 1.75rem;
    color: #3498db;
}

p {
    margin: 1px;
    margin-top: 0;
    margin-bottom: 1rem;
    padding: 0.1rem 2rem 0.1rem 1rem;
    text-align: justify;
}

/* Links */
a:any-link {
    cursor: pointer;
}

a {
    color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));
    text-decoration: underline;
    transition: color 0.2s ease;
    display: visible;
}

a:hover {
    color: #e74c3c;
    text-decoration: underline;
    --bs-link-color-rgb: var(--bs-link-hover-color-rgb);
}

/* Lists */
ol, ul {
    margin-top: 0;
    margin-bottom: 1rem;
    padding-left: 1.5rem;
}

ul {
    list-style-type: none;
}

li {
    margin-bottom: 0.5rem;
    display: visible;
}

ul ul {
    margin-bottom: 0;
}

/* Tables */
table {
    border-collapse: collapse;
    margin: 1.5rem 0;
    background-color: #f9f9f9;
    caption-side: bottom;
}

table, body {
    -webkit-user-modify: read-only;
}

caption {
    font-weight: bold;
    color: #2c3e50;
    padding: 0.5rem;
    background-color: #ecf0f1;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    color: var(--bs-secondary-color);
    text-align: left;
}

td {
    margin: 1px !important;
    padding: 0.75rem;
    border: 1px solid #ddd;
}

th {
    text-align: inherit;
    text-align: -webkit-match-parent;
}

thead {
    display: visible;
}

thead, tbody, tfoot, tr, td, th {
    border-color: inherit;
    border-style: solid;
    border-width: 0;
}

/* Images */
img {
    max-width: 5rem;
    height: auto;
    border-radius: 5px;
    margin: 1rem auto;
    transition: transform 0.3s ease;
    vertical-align: middle;
    display: visible;
}

img:hover {
    transform: scale(1.05);
}

/* Other Elements */
br {
    display: block;
}

div {
    display: table;
}

em {
    color: #7f8c8d;
}

dt {
    font-weight: 700;
}

dd {
    margin-bottom: 0.5rem;
    margin-left: 0;
}

blockquote {
    margin: 0 0 1rem;
}

b, strong {
    font-weight: bolder;
}

mark {
    padding: 0.1875em;
    color: var(--bs-highlight-color);
    background-color: var(--bs-highlight-bg);
}

pre, code {
    font-family: var(--bs-font-monospace);
    font-size: 1em;
}

pre {
    display: block;
    margin-top: 0;
    margin-bottom: 1rem;
    overflow: auto;
    font-size: 0.875em;
}

code {
    font-size: 0.875em;
    color: var(--bs-code-color);
    word-wrap: break-word;
}

figure {
    margin: 0 0 1rem;
}

/* Form Elements */
label {
    display: inline-block;
}

button {
    border-radius: 0;
}

button:focus:not(:focus-visible) {
    outline: 0;
}

input, button, select {
    margin: 0;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

button, select {
    text-transform: none;
}

select {
    word-wrap: normal;
}

select:disabled {
    opacity: 1;
}

button, [type=button], [type=reset], [type=submit] {
    -webkit-appearance: button;
}

button:not(:disabled), [type=button]:not(:disabled), [type=reset]:not(:disabled), [type=submit]:not(:disabled) {
    cursor: pointer;
}

progress {
    vertical-align: baseline;
}

/* Responsive Main Element */
main {
    font-size: clamp(14px, calc(12px + 2vw), 18px);
}

/* Media Queries - Landscape Large Screens */
@media only screen and (min-width: 999px) and (orientation: landscape) {
    body, html {
        margin: 1px auto !important;
        font-size: 75% !important;
    }

    html {
        display: contents;
    }

    td {
        margin: unset !important;
    }
}

@media only screen and (min-width: 1270px) and (max-width: 1290px) and (min-height: 710px) and (max-height: 730px) and (orientation: landscape) {
    body { zoom: 1.4; }
}

@media only screen and (min-width: 1356px) and (max-width: 1576px) and (min-height: 758px) and (max-height: 778px) and (orientation: landscape) {
    body { zoom: 1.5; }
}

@media only screen and (min-width: 994px) and (max-width: 2000px) and (min-height: 895px) and (max-height: 1250px) and (orientation: landscape) {
    body { zoom: 1; }
}

@media only screen and (min-width: 2550px) and (max-width: 2570px) and (min-height: 1350px) and (max-height: 1450px) and (orientation: landscape) {
    body { zoom: 1.3; }
}

/* Media Queries - Portrait Mobile Devices */
@media (min-width: 355px) and (max-width: 420px) and (min-height: 730px) and (max-height: 810px) {
    html {
        background: url(https://www.inconsequential.org/files/stock/sand.png) center center repeat !important;
        background-size: 125px !important;
    }
}

@media (min-width: 355px) and (max-width: 420px) and (min-height: 730px) and (max-height: 810px) and (orientation: portrait) {
    html {
        background: none !important;
        background-color: rgb(255, 253, 208) !important;
    }
}

@media only screen and (max-width: 400px) and (max-height: 800px) {
    body {
        margin-top: 1vh !important;
    }
}

@media only screen and (min-width: 350px) and (max-width: 370px) and (min-height: 790px) and (max-height: 810px) and (orientation: portrait) {
    body { zoom: 0.97; }
}

@media only screen and (min-width: 380px) and (max-width: 400px) and (min-height: 834px) and (max-height: 854px) and (orientation: portrait) {
    body { zoom: 0.97; }
}

@media only screen and (min-width: 383px) and (max-width: 403px) and (min-height: 863px) and (max-height: 883px) and (orientation: portrait) {
    body { zoom: 0.97; }
}

@media only screen and (min-width: 404px) and (max-width: 424px) and (min-height: 886px) and (max-height: 906px) and (orientation: portrait) {
    body { zoom: 0.95; }
}

@media only screen and (min-width: 0px) and (max-width: 414px) and (min-height: 0px) and (max-height: 736px) and (orientation: portrait) {
    body { zoom: 1; }
    html { background-color: black !important; }
}

@media only screen and (min-width: 333px) and (max-width: 375px) and (min-height: 667px) and (max-height: 729px) and (orientation: portrait) {
    body { zoom: 1; }
    html { background-color: black !important; }
}

@media only screen and (min-width: 1526px) and (max-width: 1546px) and (min-height: 854px) and (max-height: 874px) and (orientation: portrait) {
    body { zoom: 1; }
}

/* Media Queries - General Responsive */
@media (max-width: 62.4375rem) {
    body {
        zoom: 0.55;
        padding: unset !important;
    }
}

@media only screen and (max-width: 124.9375rem) and (max-height: 249.9375rem) and (min-width: 62.5rem) and (min-height: 43.75rem) and (min-device-height: 37.5625rem) and (max-device-height: 93.75rem) {
    body { zoom: 0.71 !important; }
}

@media only screen and (max-width: 18.75rem) and (max-height: 31.25rem) and (min-width: 0.0625rem) and (min-height: 0.0625rem) {
    body { zoom: 0.1 !important; }
}

@media only screen and (max-width: 20.3125rem) and (max-height: 37.4375rem) and (min-width: 18.8125rem) and (min-height: 31.25rem) {
    body { zoom: 0.37 !important; }
}

@media screen and (orientation: landscape) and (max-resolution: 200dpi) and (max-height: 31.25rem) {
    body {
        background-attachment: fixed !important;
        background-color: gray !important;
        background-image: url(https://www.inconsequential.org/files/stock/xx/screen.png) !important;
        background-position: center center !important;
        background-repeat: no-repeat !important;
        background-size: cover !important;
        height: auto !important;
        width: auto !important;
        visibility: hidden !important;
        display: block !important;
    }

    html {
        background-attachment: fixed !important;
        background-color: gray !important;
        background-image: url(https://www.inconsequential.org/files/stock/xx/screen.png) !important;
        background-position: center center !important;
        background-repeat: no-repeat !important;
        background-size: cover !important;
        height: auto !important;
        width: auto !important;
        visibility: visible !important;
        display: block !important;
    }
}

@media only screen and (max-width: 37.5rem) and (max-height: 37.5rem) {
    body { zoom: 1 !important; }
    html { zoom: 0.4 !important; }
}

@media only screen and (min-width: 37.5rem) and (min-height: 37.5rem) {
    body { zoom: 1 !important; }
    html { zoom: 0.4; }
}

@media only screen and (min-width: 48rem) and (min-height: 48rem) {
    body { zoom: 1 !important; }
    html { zoom: 0.85; }
}

@media only screen and (min-width: 62rem) and (min-height: 62rem) {
    body { zoom: 1 !important; }
    html { zoom: 0.7; }
}

@media only screen and (min-width: 75rem) and (min-height: 75rem) {
    body { zoom: 1 !important; }
    html { zoom: 0.85; }
}

@media (min-width: 768px) {
    main { font-size: clamp(16px, calc(14px + 1.5vw), 22px); }
    h1 { font-size: 1.75rem; }
    table { font-size: 0.9rem; }
}

@media (min-width: 1024px) {
    main { font-size: clamp(18px, calc(16px + 1vw), 24px); }
}

@media (min-width: 1200px) {
    h1 { font-size: 2.5rem; }
    h2 { font-size: 2rem; }
}

@media (min-width: 1440px) {
    main { font-size: clamp(20px, calc(18px + 0.5vw), 28px); }
}

@media (prefers-reduced-motion: no-preference) {
    :root { scroll-behavior: smooth; }
}
html, body {
    width: 100vw;
    height: 100vh;
    min-width: 100vw;
    min-height: 100vh;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    overflow: visible;
}

/* DEV-OVERRIDES: Alles sichtbar machen für den CSS-Test! */
a, li, img, thead {
    display: revert !important;
}

html, body {
    width: 100vw;
    height: 100vh;
    min-width: 100vw;
    min-height: 100vh;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    background: #f9fafb; /* Very subtle background */
    color: #222;
    scroll-behavior: smooth;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

main {
    flex: 1 0 auto;
    max-width: 900px;
    margin: 0 auto;
    padding: 2rem 1rem;
}

header, footer {
    max-width: 900px;
    margin: 0 auto;
    padding: 1rem 1rem;
}

a {
    color: inherit;
    text-decoration: underline dotted;
    opacity: 0.7;
    transition: opacity 0.2s;
}

a:hover,
a:focus {
    opacity: 1;
}

.styled-table {zoom:0.3}