body {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    margin: 0;
    padding: 0;
    line-height: 1.4;
}
main { padding: 1rem; }
header, footer { padding: 1rem; }

.skip-link { position: absolute; left: -9999px; }
.skip-link:focus {
    left: 0; top: 0;
    background: #000; color: #fff;
    padding: 0.5rem 1rem; z-index: 1000;
}

.error { color: #b00020; }
.success { color: #007700; }
.hint { font-size: 0.9rem; opacity: 0.8; }

table { border-collapse: collapse; width: 100%; max-width: 100%; }
th, td { border: 1px solid #ccc; padding: 0.3rem 0.5rem; }
th { text-align: left; }

body.theme-light { background: #fff; color: #111; }
body.theme-light a { color: #0055cc; }

body.theme-dark { background: #111; color: #e5e5e5; }
body.theme-dark a { color: #7fb3ff; }

body.theme-high { background: #000; color: #ffff00; }
body.theme-high a { color: #00ffff; }
body.theme-high .error { color: #ff5555; }
body.theme-high .success { color: #55ff55; }

input, textarea, select, button { font: inherit; }
button, input[type=submit] { cursor: pointer; }

nav.admin-nav a { margin-right: 0.75rem; }
nav.admin-nav a.current { text-decoration: underline; font-weight: bold; }

#player-controls button { margin-right: 0.5rem; }

/* Stronger focus outlines in high contrast mode for better VoiceOver navigation */
body.theme-high a:focus,
body.theme-high button:focus,
body.theme-high input:focus,
body.theme-high select:focus,
body.theme-high textarea:focus {
    outline: 3px solid #00ffff;
    outline-offset: 2px;
}

body.theme-high table th,
body.theme-high table td {
    border-color: #ffff00;
}
