* { box-sizing: border-box; margin: 0; user-select: none; } html, body { height: 100%; } body { font-family: 'Segoe UI', Arial, sans-serif; color: #23272f; } .scroll-container { height: 100vh; height: 100dvh; overflow-y: auto; } .background { background: linear-gradient(135deg, #f8fafc 0%, #e0e7ef 100%); position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; z-index: -1; } .page-wrapper { display: flex; flex-direction: column; justify-content: space-between; min-height: 100%; max-width: 1000px; margin: 0 auto; } header { padding: 32px 32px 0 32px; } header > h1 { font-size: 2.5rem; font-weight: 700; color: #2451a6; margin-bottom: 24px; text-align: center; } p, p * { user-select: text; } header > p { color: #5a6272; font-size: 1.1rem; margin-bottom: 0; } header > p:not(:first-of-type) { margin-top: 16px; } main { display: grid; grid-template-rows: min-content min-content min-content; grid-template-columns: 1fr 1fr; gap: 20px; justify-items: center; align-items: center; padding: 32px; } .tokenizer-selector { grid-column: 1 / -1; grid-row: 1; width: 100%; margin-bottom: 8px; } .radio-group { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; } .radio-option { display: flex; align-items: center; gap: 12px; padding: 16px 20px; background: #fff; border-radius: 12px; box-shadow: 0 2px 8px rgba(36, 81, 166, 0.08); cursor: pointer; transition: all 0.2s ease; border: 2px solid transparent; min-width: 180px; position: relative; } .radio-option:hover { box-shadow: 0 4px 16px rgba(36, 81, 166, 0.12); transform: translateY(-2px); } .radio-option:has(input:checked) { background: #f0f7ff; border-color: #2451a6; box-shadow: 0 4px 16px rgba(36, 81, 166, 0.16); } .radio-option input[type='radio'] { position: absolute; opacity: 0; pointer-events: none; } .radio-custom { width: 20px; height: 20px; border: 2px solid #d1d5db; border-radius: 50%; position: relative; transition: all 0.2s ease; flex-shrink: 0; } .radio-option:has(input:checked) .radio-custom { border-color: #2451a6; background: #2451a6; } .radio-custom::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0); width: 8px; height: 8px; border-radius: 50%; background: white; transition: transform 0.2s ease; } .radio-option:has(input:checked) .radio-custom::after { transform: translate(-50%, -50%) scale(1); } .radio-content { display: flex; flex-direction: column; gap: 2px; } .radio-label { font-weight: 600; color: #2451a6; font-size: 0.95rem; } .radio-description { font-size: 0.8rem; color: #6b7280; line-height: 1.2; } .diamond-parent { grid-column: 1 / -1; grid-row: 2; } .diamond-left { grid-column: 1; grid-row: 3; } .diamond-right { grid-column: 2; grid-row: 3; } .diamond-result { grid-column: 1 / -1; grid-row: 4; } .diamond-result label { display: flex; align-items: center; } .diamond-result svg { width: 20px; height: 20px; margin-left: 8px; } .text-area-card { width: 100%; height: 100%; background: #fff; border-radius: 10px; box-shadow: 0 2px 12px 0 rgba(36, 81, 166, 0.06); padding: 18px 20px 16px 20px; margin-bottom: 0; } label { display: inline-block; margin-bottom: 8px; font-weight: 600; color: #2451a6; cursor: help; } .box { width: 1ch; height: 1ch; border-radius: 50%; margin-left: 6px; display: inline-block; transform: scale(1.5); } textarea { width: 100%; border: none; font-size: 1rem; font-family: inherit; color: #23272f; box-sizing: border-box; resize: none; outline: none; margin-bottom: 0; field-sizing: content; /* Doesn't work in Safari yet */ } #merged { width: 100%; user-select: text; } .Unchanged { user-select: text; } .Left, .AddedFromLeft, .RemovedFromLeft { user-select: text; background: #12d197; } .Right, .AddedFromRight, .RemovedFromRight { user-select: text; background: #85bff7; } .RemovedFromLeft, .RemovedFromRight { user-select: none; text-decoration: line-through; } @media (max-width: 900px) { header { padding: 32px 18px 0 18px; } header > h1 { margin-bottom: 18px; } header > p { font-size: 1rem; } main { padding: 18px; } } @media (max-width: 768px) { main { grid-template-columns: 1fr; grid-template-rows: auto auto auto auto auto; } .tokenizer-selector { grid-column: 1; grid-row: 1; } .diamond-parent { grid-column: 1; grid-row: 2; } .diamond-left { grid-column: 1; grid-row: 3; } .diamond-right { grid-column: 1; grid-row: 4; } .radio-group { flex-direction: column; gap: 12px; } .radio-option { min-width: unset; width: 100%; } .diamond-result { grid-column: 1; grid-row: 5; } } footer { padding: 16px; width: 100%; position: relative; display: flex; justify-content: center; align-items: center; color: #5a6272; } .github-link > svg { position: absolute; color: #5a6272; top: 50%; right: 36px; transform: translateY(-50%); width: 32px; height: 32px; transition: transform 0.2s; } .github-link > svg:hover { cursor: pointer; transform: translateY(-50%) scale(1.15); }