* { box-sizing: border-box; } :root { font-family: Inter, Avenir, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; font-weight: 400; color: #213547; background-color: #ffffff; font-synthesis: none; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -webkit-text-size-adjust: 100%; } a { font-weight: 500; color: #646cff; text-decoration: inherit; } a:hover { color: #747bff; } body { margin: 0; display: flex; place-items: center; min-width: 320px; min-height: 100vh; } h1 { font-size: 3.2em; line-height: 1.1; } .card { padding: 2em; } #app { width: min(900px, 100vw); min-height: 100vh; margin: 0 auto; padding: 2rem; text-align: center; } button { border-radius: 4px; border: 1px solid transparent; padding: 0.6em 1.2em; font-size: 1em; font-weight: 500; font-family: inherit; background-color: #e5e5e5; cursor: pointer; transition: border-color 0.25s; } button:hover { border-color: #646cff; } button:focus, button:focus-visible { outline: 4px auto -webkit-focus-ring-color; } main { display: flex; flex-direction: column; gap: 1rem; width: 100%; } label { display: flex; flex-flow: row wrap; align-items: center; gap: 0.5rem; text-align: left; } label.missing > input { border: 1px solid red; } textarea { flex-basis: 100%; } details > summary { text-align: left; } #inner { flex: 1; display: flex; flex-direction: column; } #inner > *:first-child { min-height: 20ch; border: 1px solid black; padding: 0.5rem; } .result { text-align: left; } .error { text-align: left; font-family: monospace; color: red; } span.word-chip { background-color: #222222; color: white; padding: 2px; } span.word-chip.flagged { background-color: #dd1111; border: 1px solid black; } .result-container { position: relative; } .result-container textarea { position: absolute; top: 0; left: 0; right: 0; bottom: 0; } .spinner-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(255, 255, 255, 0.7); display: flex; justify-content: center; align-items: center; z-index: 10; } .spinner { border: 4px solid #f3f3f3; border-top: 4px solid #3498db; border-radius: 50%; width: 40px; height: 40px; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }