:root { color-scheme: light; font: 16px/1.55 system-ui, sans-serif; color: #142b3a; background: #f3f6f8; }
* { box-sizing: border-box; }
body { margin: 0; }
a { color: #125c6a; }
h1 { line-height: 1.15; margin: .4rem 0 1rem; font-size: 2rem; }
p { color: #455e6d; }
label { display: block; font-weight: 650; margin: 1rem 0 .35rem; }
input, select, button { font: inherit; border-radius: .4rem; min-height: 44px; }
input, select { width: 100%; padding: .6rem .75rem; border: 1px solid #a6b6c1; background: white; color: inherit; }
button { border: 1px solid #125c6a; padding: .6rem 1rem; background: #125c6a; color: white; font-weight: 650; cursor: pointer; }
button:hover { background: #0c4651; }
:focus-visible { outline: 3px solid #ba6500; outline-offset: 3px; }
.login-card { margin: 10vh auto 2rem; width: min(440px, calc(100% - 2rem)); padding: 2rem; background: white; border: 1px solid #dce4e9; border-radius: .8rem; }
.login-card button { width: 100%; margin-top: 1.5rem; }
.eyebrow { font-size: .78rem; font-weight: 750; text-transform: uppercase; letter-spacing: .1em; color: #125c6a; }
.notice { padding: .8rem; border-radius: .4rem; }
.error { background: #fff0ee; color: #87291c; border: 1px solid #ecc0b7; }
.topbar { background: white; padding: 1rem max(1rem, calc((100vw - 1100px) / 2)); display: flex; justify-content: space-between; gap: 1rem; align-items: center; border-bottom: 1px solid #dce4e9; }
.brand { color: #142b3a; font-weight: 750; text-decoration: none; }
.brand span { display: block; font-size: .8rem; font-weight: 400; }
.logout { display: flex; gap: .8rem; align-items: center; max-width: 100%; }
.logout span { min-width: 0; overflow-wrap: anywhere; }
.logout button { flex-shrink: 0; }
.secondary { background: white; color: #125c6a; }
.secondary:hover { background: #eaf3f5; }
.container { max-width: 1132px; margin: 2rem auto; padding: 0 1rem; }
.context-bar { max-width: 480px; margin-bottom: 2rem; }
.context-bar p { font-size: .875rem; }
select:disabled { color: #455e6d; opacity: 1; background: #e9eef2; }
.panel { background: white; border: 1px solid #dce4e9; border-radius: .8rem; padding: 2rem; }
@media (max-width: 540px) { .topbar { align-items: flex-start; flex-direction: column; } .login-card, .panel { padding: 1.4rem; } }
textarea { font: inherit; width: 100%; border: 1px solid #a6b6c1; border-radius: .4rem; padding: .6rem .75rem; resize: vertical; }
h2 { font-size: 1.2rem; line-height: 1.35; }
.actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; }
.heading-row { justify-content: space-between; }
.heading-row h1 { margin: 0; }
.button { display: inline-block; background: #125c6a; color: white; padding: .6rem 1rem; border-radius: .4rem; text-decoration: none; font-weight: 650; }
.selector-row { display: flex; align-items: center; gap: .5rem; }
.selector-row select { min-width: 0; }
.context-bar { max-width: 680px; }
button:disabled { opacity: .6; cursor: default; }
.competition-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 0; border-bottom: 1px solid #dce4e9; }
.competition-row > div { min-width: 0; overflow-wrap: anywhere; }
.competition-row p { margin: .3rem 0; }
.badge { font-size: .8rem; font-weight: 650; color: #125c6a; }
.edit-form { max-width: 740px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-grid > div { min-width: 0; }
.form-actions { margin-top: 1.5rem; }
.hint { font-size: .875rem; margin: .35rem 0; }
.publication { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid #dce4e9; }
.success { background: #e7f5ed; color: #205d3a; }
.danger { background: #942e26; border-color: #942e26; }
.danger:hover { background: #70221c; }
.danger-link { color: #942e26; }
.checkbox { display: flex; align-items: center; gap: .6rem; }
.checkbox input { width: 1.2rem; min-height: 1.2rem; flex-shrink: 0; }
.panel { overflow-wrap: anywhere; }
.schedule-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: 1rem; align-items: end; margin-bottom: 1rem; }
.schedule-filters > div { min-width: 0; }
.schedule-card h2 { margin: .4rem 0; }
.warning { background: #fff5db; border: 1px solid #d9ae4f; color: #674509; margin-top: 1rem; }
.result-section { margin-top: 1.25rem; }
.decision-card { padding: 1rem 0; border-bottom: 1px solid #dce4e9; max-width: 740px; }
.result-section summary { cursor: pointer; min-height: 44px; padding: .5rem 0; }
.result-section select, .result-section input { max-width: 100%; }
@media (max-width: 540px) { .form-grid { grid-template-columns: 1fr; gap: 0; } .competition-row { align-items: flex-start; flex-direction: column; } .selector-row { flex-wrap: wrap; } }
