*{box-sizing:border-box;margin:0;padding:0}.container{width:100%;max-width:820px;padding:18px;background:#ddd}h1{margin:0 0 6px;font-size:20px}.desc{margin:0 0 12px;color:var(--muted)}.row{display:flex;gap:10px;margin-top:8px;}input[type="text"]{flex:1;padding:10px 12px;font-size:15px;border:1px solid var(--card-border);border-radius:8px;outline:none;}input[type="text"]:focus{box-shadow:0 0 0 3px rgba(37,99,235,0.08);border-color:var(--primary)}button{padding:10px 14px;font-size:15px;border-radius:8px;border:none;cursor:pointer;}button.primary{background:var(--primary);color:white}.hint{display:block;margin-top:8px;color:var(--muted);font-size:13px}.result{margin-top:16px;padding:12px;border-radius:10px;white-space:pre-wrap;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, "Roboto Mono", monospace;border:1px solid var(--card-border);line-height:1.45;}.hidden{display:none}.good{background:var(--good-bg);color:var(--good-text);border-color:#bbf7d0}.warn{background:var(--warn-bg);color:var(--warn-text);border-color:#fef3c7}.bad{background:var(--bad-bg);color:var(--bad-text);border-color:#fecaca}