body { font-family: sans-serif; } h1 { text-align: center; } section, div, footer { display: flex; row-gap: 0.5em; column-gap: 0.5em; margin: 1em auto; justify-content: center; text-align: center; align-items: baseline; } .grid { border-spacing: 0; border: 1px solid black; border-radius: 6px; } .grid td, tr { padding: 0; } .grid tr:first-child td:first-child { border-top-left-radius: 5px; } .grid tr:first-child td:first-child input { border-top-left-radius: 4px; } .grid tr:first-child td:last-child { border-top-right-radius: 5px; } .grid tr:first-child td:last-child input { border-top-right-radius: 4px; } .grid tr:last-child td:first-child { border-bottom-left-radius: 5px; } .grid tr:last-child td:first-child > input { border-bottom-left-radius: 4px; } .grid tr:last-child td:last-child { border-bottom-right-radius: 5px; } .grid tr:last-child td:last-child input { border-bottom-right-radius: 4px; } .grid tr:nth-child(3n+1) td { border-top: 1px solid black; } .grid tr:nth-child(3n+2) td { border-top: 1px solid grey; border-bottom: 1px solid grey; } .grid tr:nth-child(3n) td { border-bottom: 1px solid black; } .grid td:nth-child(3n+1) { border-left: 1px solid black; } .grid td:nth-child(3n+2) { border-left: 1px solid grey; border-right: 1px solid grey; } .grid td:nth-child(3n+3) { border-right: 1px solid black; } input[type=number] { width: 1.6em; height: 1.6em; font-size: 1.5em; border: 0; padding: 0; text-align: center; transition: background 0.5s; -moz-appearance: textfield; } input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } input[type=number]:enabled { color: darkblue; background: white; } input[type=number]:disabled, button:enabled { color: white; background: #6666ff; } input[type=number].same-value:enabled { color: #009973 !important; background: #66ffd9 !important; } input[type=number].forbidden-value:enabled { background: #b3ffda !important; } input[type=number].same-value, button.same-value:enabled { color: white !important; background: #00e6ac !important; } input[type=number].forbidden-value:disabled { background: #6288ea !important; } input::placeholder { color: #888; } .buttons { flex-wrap: wrap; column-gap: 0.2em; } button, input[type="color"] { border: 2px outset #6666ff; border-radius: 4px; padding-bottom: 2px; } button.same-value:enabled { border: 2px inset #00e6ac; } input[type="color"] { align-self: center; padding: 0; } .shortcuts caption { text-decoration: underline; } .shortcuts td { text-align: left; } kbd { /* from https://developer.mozilla.org */ background-color: #eee; border-radius: 3px; border: 1px solid #b4b4b4; box-shadow: 0 1px 1px rgba(0,0,0,.2),0 2px 0 0 rgba(255,255,255,.7) inset; color: #333; display: inline-block; font-family: consolas,"Liberation Mono",courier,monospace; font-size: .85em; font-weight: 700; line-height: 1; padding: 4px; white-space: nowrap; } a { text-decoration: none; }