@import url('https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Source+Serif+Pro:ital,wght@0,400;0,700;1,400&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Inter'); body { color-scheme: dark; color: #eee; background-color: #111; font-family: 'Lato', sans-serif; user-select: none; margin: 0; padding: 0; } div#main { background-color: #1a1a1a; height: 100vh; width: min(80vh, 100vw); margin: 0 auto; display: grid; grid-template-columns: 1fr; grid-template-rows: min-content min-content minmax(0, 2fr) minmax(0, 3fr); grid-template-areas: 'settings-bar' 'info' 'visits' 'controls'; } div#controls { grid-area: controls; font-size: clamp(1.5vh, 2.5vw, 2vh); margin: 2px 0 0 0; display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: minmax(5em, auto); grid-auto-rows: 1fr; gap: 2px; } div#controls .keypad { display: none; } div#controls .keypad.visible { display: contents; } div#controls #keypad-select_mode .key { grid-column: 1 / -1; padding-left: 0.4rem; justify-content: left; } div#controls #keypad-dartboard #dartboard-container { grid-column: 1 / -1; min-width: 0; min-height: 0; padding: 0.4rem; display: flex; align-items: center; justify-content: center; } div#controls #keypad-dartboard #dartboard { font-family: 'Inter'; height: 100%; } div#oi { visibility: hidden; background-color: #640016; font-size: 3em; height: 1.2em; width: 3ch; outline: #1a1a1a solid 2px; position: absolute; left: 50%; right: 50%; top: 50%; bottom: 50%; transform: translate(-50%, -50%); display: flex; align-items: center; justify-content: center; } div#oi.visible { visibility: visible; } div#info { position: relative; font-size: clamp(1.5vh, 2.5vw, 2vh); margin-bottom: 2px; display: grid; grid-template-columns: repeat(2, 1fr); } div#p1-info, div#p2-info { background-color: #222; font-size: 1.5em; padding: 0.4rem; flex-direction: column; display: flex; align-items: center; } div#p1-info { margin-right: 1px; } div#p2-info { margin-left: 1px; } div#p1-info.active, div#p2-info.active { background-color: #304010; } div#p1-info-inner, div#p2-info-inner { display: contents; visibility: hidden; } div#p1-info-inner.visible, div#p2-info-inner.visible { visibility: visible; } div#p1-rem, div#p2-rem { font-size: 3em; font-weight: bold; } div#p1-name, div#p2-name { color: #ccc; } div#p1-sugg, div#p2-sugg { color: #aaa; font-size: 0.8em; } div#p1-name:after, div#p2-name:after, div#p1-rem:after, div#p2-rem:after, div#p1-sugg:after, div#p2-sugg:after { content: '\200b'; } div#p1-avg, div#p2-avg { font-size: 0.8em; align-self: left; width: 100%; } div#p1-avg:before, div#p2-avg:before { content: 'avg: '; } div#prompt { grid-column: 1 / span 3; background-color: #222; display: flex; align-items: center; justify-content: center; } div#prompt.active { background-color: #311d52; } div#prompt-msg-l, div#prompt-input, div#prompt-msg-r { font-size: 1.5em; white-space: pre-line; display: grid; align-items: center; } div#prompt-msg-l, div#prompt-msg-r { flex: 1; color: #ccc; padding: 0 0.4rem; } div#prompt-msg-r { text-align: right; } div#prompt-input { text-align: center; font-size: 3em; width: 4ch; } div.key { color: #ccc; background-color: #282828; font-size: 1.5em; display: flex; align-items: center; justify-content: center; } @media (hover: hover) and (pointer: fine) { div.key:hover { background-color: #304010; } } div.key:active { color: #fff; background-color: #384810; } div.key.active { color: #eee; background-color: #3d2466; } @media (hover: hover) and (pointer: fine) { div.key.active:hover { background-color: #5c3699; } } div.key.active:active { color: #fff; background-color: #6e41b8; } div.key span.keyboard-val { display: contents; color: #aaa; } div.key.num { font-size: 2.5em; font-weight: 700; } div.key#key-submit { grid-row-end: span 2; } div#settings-bar { grid-area: settings-bar; font-size: clamp(1.5vh, 2.5vw, 2vh); padding: 0.4rem; display: flex; align-items: center; justify-content: left; gap: 0.4rem; } div#settings-bar div { font-size: 1.5em; } div#settings-bar div.input.first { margin-left: auto; } div#settings-bar div.input { background-color: #222; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; } div#settings-bar span { padding: 0 0.4rem; } div#settings-bar input { color: #eee; background-color: #3d2466; font-family: inherit; font-size: 1em; text-align: right; width: 4ch; padding: 0 0.4rem; border: 0; } div#settings-bar div.button { background-color: #3d2466; font-weight: 700; padding: 0 0.4em; } #flip-controls-button { display: none; } @media (hover: hover) and (pointer: fine) { div#settings-bar input:hover { background-color: #5c3699; } div#settings-bar div.button:hover { background-color: #5c3699; } } div#settings-bar input:focus { color: #fff; background-color: #6e41b8; outline: #7eab1e solid 2px; } div#settings-bar div.button:active { color: #fff; background-color: #6e41b8; } div#visits { grid-area: visits; font-size: clamp(1.5vh, 2.5vw, 2vh); overflow: auto; scrollbar-gutter: stable both-edges; padding: 0.4rem; display: grid; grid-template-columns: 2ch 1fr repeat(5, min(calc(calc(100% - 4ch) / 5), 10ch)) 1fr 2ch; grid-auto-rows: min-content; grid-row-gap: 0.3em; } div#visits div { font-size: 2em; min-width: 0; display: flex; align-items: center; justify-content: center; } div#visits .visit-col1 { grid-column: 3; } div#visits .visit-col2 { grid-column: 4; } div#visits .visit-col3 { color: #666; grid-column: 5; } div#visits .visit-col6 { color: #666; grid-column: 9; } div#visits .p0 { color: #e00018; } div#visits .p20 { color: #e06000; } div#visits .p40 { color: #e09800; } div#visits .p60 { color: #e0e018; } div#visits .p100 { color: #78c018; } div#visits .p140 { color: #20e018; } div#visits .p180 { color: #20e018; font-weight: bold; } div#visits .visit-col6 { color: #666; justify-content: left; white-space: nowrap; } div#visits .visit-col6:not(:empty):before { content: '…\2003'; } div#visits .visit-name1, div#visits .visit-name2 { display: none; } .modal { background-color: #000a; width: 100%; height: 100%; display: none; position: fixed; top: 0; left: 0; z-index: 1; } .modal-content { background-color: #222; font-size: 1.4em; font-family: 'Source Serif Pro', serif; user-select: text; width: calc(min(40em, 90vw) - 4em); max-height: calc(calc(100vh - 10vw) - 4em); margin: 5vw auto; padding: 2em; outline: #7eab1e solid 2px; overflow: auto; } @media (max-width: 400px) { .modal-content { font-size: 1em; } } .modal-content p { margin: 0; } .modal-content p + p { margin-top: 1em; } a { color: #7eab1e; } a:hover { color: #a8e428; } @media (max-aspect-ratio: 9/20) { div#settings-bar div.input { display: flex; flex-direction: column; } div#settings-bar span { padding: 0 0.4rem; } div#settings-bar .button { font-size: 3em; } } @media (min-aspect-ratio: 1.6) { div#main { width: 100vw; grid-template-columns: 80vh 1fr; grid-template-rows: min-content min-content minmax(0, 3fr); grid-template-areas: 'settings-bar settings-bar' 'info visits' 'controls visits'; } div#main.right-controls { grid-template-columns: 1fr 80vh; grid-template-areas: 'settings-bar settings-bar' 'visits info' 'visits controls'; } #flip-controls-button { display: unset; } div#controls { margin-top: 0; } div#visits { background-color: #111; grid-template-columns: repeat(5, min(calc(calc(100% - 4ch) / 5), 10ch)) min-content; } div#visits .visit-col1 { grid-column: 1; } div#visits .visit-col2 { grid-column: 2; } div#visits .visit-col3 { grid-column: 3; } div#visits .visit-col6 { justify-content: center; grid-column: 6; } div#visits .visit-col6:not(:empty):before { content: '\2003'; } div#visits .visit-name1 { display: flex; background-color: #222; grid-column: 1 / span 2; } div#visits .visit-name2 { display: flex; background-color: #222; grid-column: 4 / span 2; } }