:root{--bg:#0b1020;--card:#111827;--text:#e5e7eb;--muted:#9ca3af;--line:#1f2937}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
.wrap{max-width:920px;margin:0 auto;padding:20px}
header .sub{color:var(--muted);margin-top:4px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px}
h1{font-size:28px;margin:16px 0 4px}h2{font-size:18px;margin:18px 0 10px}.hint{color:var(--muted);font-size:14px}
.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0}
.btn{padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:#0f172a;color:var(--text);cursor:pointer}
.btn.primary{border-color:#164e63;background:#0b3d48}.btn.secondary{opacity:.9}.lenlbl input{width:70px;margin-left:6px}
#columns{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.col{display:flex;gap:6px;align-items:center;border:1px dashed var(--line);border-radius:12px;padding:8px}
.col input{flex:1;padding:8px;border-radius:8px;border:1px solid var(--line);background:#0b1020;color:var(--text)}
.results{border:1px solid var(--line);border-radius:12px;padding:10px;min-height:60px;background:#0b1020}
.result{padding:8px 10px;border-bottom:1px solid var(--line)}.result:last-child{border-bottom:none}
.badge{display:inline-block;background:#0b3d48;border:1px solid #164e63;border-radius:999px;padding:2px 8px;margin-left:8px;font-size:12px;color:#c7f9ff}
.foot{color:var(--muted);text-align:center}
code{background:#0b1020;border:1px solid var(--line);padding:2px 6px;border-radius:6px}
.demo{margin-bottom:10px}
