| * { | |
| 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.token-chip { | |
| background-color: #222222; | |
| color: white; | |
| padding: 2px; | |
| } | |
| span.token-chip.flagged { | |
| background-color: #dd1111; | |
| } | |
| .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); } | |
| } | |