html { height: 100%; font-family: sans-serif; --color-regular-text: white; --color-regular-background: lch(from black calc(l + 10) c h); --color-regular-field: black; --color-alter-text: white; --color-alter-background: black; --color-alter-field: var(--color-regular-background); --color-primary-text: black; --color-primary-background: lch(from orange calc(l + 10) c h); --color-primary-field: lch(from var(--color-primary-background) calc(l + 25) c h); @media (prefers-color-scheme: light) { --color-regular-text: black; --color-regular-background: white; --color-regular-field: var(--color-alter-background); --color-alter-text: black; --color-alter-background: lch(from white calc(l - 10) c h); --color-alter-field: white; --color-primary-text: black; --color-primary-background: lch(from orange calc(l + 10) c h); --color-primary-field: lch(from var(--color-primary-background) calc(l + 25) c h); } color: var(--color-regular-text); background-color: var(--color-regular-background); --color-active-text: var(--color-regular-text); --color-active-background: var(--color-regular-background); --color-active-field: var(--color-regular-field); } .background { background-color: var(--color-active-background); } .regular, .alter, .primary { color: var(--color-active-text); } .regular { --color-active-text: var(--color-regular-text); --color-active-background: var(--color-regular-background); --color-active-field: var(--color-regular-field); } .alter { --color-active-text: var(--color-alter-text); --color-active-background: var(--color-alter-background); --color-active-field: var(--color-alter-field); } .primary { --color-active-text: var(--color-primary-text); --color-active-background: var(--color-primary-background); --color-active-field: var(--color-primary-field); } .positioned { margin: 0; } .padded { padding: 1em; } body { min-height: 100%; height: 1px; display: flex; flex-direction: column; } h1 { font-size: 2em; margin-top: 0.75em; margin-bottom: 0.5em; } h2 { font-size: 1.75em; margin-top: 0.75em; margin-bottom: 0.5em; } h3 { font-size: 1.5em; margin-top: 0.75em; margin-bottom: 0.5em; } h4 { font-size: 1.35em; margin-top: 0.75em; margin-bottom: 0.5em; } h5 { font-size: 1.25em; margin-top: 0.75em; margin-bottom: 0.5em; } h6 { font-size: 1.1em; margin-top: 0.75em; margin-bottom: 0.5em; } button { border: none; border-radius: 5px; color: var(--color-primary-text); background: var(--color-primary-background); padding: 1em 1em; margin: 1em; &:disabled { color: hsl(from var(--color-primary-text) h s calc(l + 25)); background-color: hsl(from var(--color-primary-background) h s calc(l + 25)); } &:hover, &:focus { color: hsl(from var(--color-primary-text) h s calc(l + 10)); background-color: hsl(from var(--color-primary-background) h s calc(l + 10)); } } header.layout { display: flex; align-items: center; >* { padding: 0.5em 0.25em; font-size: 2em; color: inherit; text-decoration: none; margin: 0; &:first-child { padding-left: 0.5em; padding-right: 0.5em; } &:nth-child(2) { padding-left: 0; } &:last-child { padding-right: 0.5em; } } } main.layout { flex-grow: 1; } .session-view { display: flex; flex-direction: column; min-height: 100%; gap: 1em; >* { padding-left: 1rem; padding-right: 1rem; } >:first-child { padding-top: 1rem; } >:last-child { padding-bottom: 1rem; } .session-view-header { display: flex; justify-content: space-between; align-items: center; } :nth-last-child(2) { flex-grow: 1; } table { font-size: 1.5em; table-layout: fixed; width: 100%; text-align: center; border-spacing: 0; } th:not(:last-child), td:not(:last-child) { border-right: 1px solid var(--color-regular-text); } thead { border-bottom: 1px solid var(--color-regular-text); position: sticky; top: 0; th { border-bottom: 3px double var(--color-regular-text); padding: 0.5em 0; } } tbody { &:not(:last-of-type) tr:last-child td { border-bottom: 1px solid var(--color-regular-text); } min-height: 5px; } } .current-round { display: grid; grid-template-areas: "title title title title" "they-raise current-points current-points we-raise" "they-win they-win we-win we-win"; grid-template-columns: 1fr auto auto 1fr; gap: 1em; position: sticky; bottom: 0; padding: 1em; >h3 { grid-area: title; } >.current-points { grid-area: current-points; align-content: center; font-size: 2em; } >.they-raise { grid-area: they-raise; } >.we-raise { grid-area: we-raise; } >.they-win { grid-area: they-win; } >.we-win { grid-area: we-win; } } .continue { position: sticky; bottom: 0; padding: 1em; button { width: 100%; } } .field { display: grid; grid-template-areas: "label" "field" "description"; grid-template-columns: 1fr; grid-template-rows: repeat(3, min-content); column-gap: 1ch; row-gap: 0.5ch; &:not(:last-child) { margin-bottom: 1em; } &:has(input[type=radio]), &:has(input[type=checkbox]) { grid-template-areas: "field label" ". description"; grid-template-columns: min-content 1fr; grid-template-rows: repeat(2, min-content); } .label { grid-area: label; font-weight: bold; } input { grid-area: field; padding: 0.5em; border-radius: 5px; background-color: var(--color-active-field); border: solid 1px var(--color-active-text); color: var(--color-active-text); } .description { grid-area: description; } } .session-head { >:first-child { margin-top: 0; } >:last-child { margin-bottom: 0; } }