* { box-sizing: border-box; margin: 0; padding: 0; }
  :root { --bg:#f4f6f9; --card:#fff; --primary:#4a90e2; --primary-soft:#e8f1fc; --text:#2c3e50; --text-sub:#7b8a99; --border:#eef1f5; --shadow:0 2px 12px rgba(0,0,0,.06); --radius:16px; }
  body { font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif; background:var(--bg); color:var(--text); min-height:100vh; padding:24px; }
  .app { max-width:1440px; margin:0 auto; }
  .card { background:var(--card); border-radius:var(--radius); box-shadow:var(--shadow); padding:26px; }
  .header { display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; }
  .header h1 { font-size:22px; font-weight:600; }
  .back { font-size:13px; color:var(--text-sub); text-decoration:none; padding:6px 12px; background:var(--bg); border-radius:8px; }
  .back:hover { background:var(--primary-soft); color:var(--primary); }
  label { display:block; font-size:13px; color:var(--text-sub); margin-bottom:6px; }
  textarea { width:100%; min-height:120px; padding:12px; border:1px solid var(--border); border-radius:10px; font-size:14px; font-family:Consolas,monospace; resize:vertical; }
  textarea:focus { outline:none; border-color:var(--primary); }
  .btn-group { display:flex; gap:8px; margin:14px 0; flex-wrap:wrap; }
  .btn { padding:9px 16px; border:none; border-radius:10px; font-size:13px; cursor:pointer; background:var(--primary); color:#fff; }
  .btn:hover { opacity:.88; }
  .btn.ghost { background:var(--bg); color:var(--text-sub); }
  .btn.ghost:hover { background:var(--primary-soft); color:var(--primary); }
  .result { background:var(--bg); border-radius:10px; padding:14px; font-family:Consolas,monospace; font-size:14px; word-break:break-all; white-space:pre-wrap; min-height:80px; }
  .stats { display:flex; gap:10px; flex-wrap:wrap; margin-top:10px; }
  .stat-item { background:var(--primary-soft); color:var(--primary); padding:6px 12px; border-radius:8px; font-size:12px; }
  .toast { position:fixed; bottom:30px; left:50%; transform:translateX(-50%) translateY(20px); background:var(--text); color:#fff; padding:10px 20px; border-radius:10px; font-size:13px; opacity:0; transition:all .3s; pointer-events:none; }
  .toast.show { opacity:1; transform:translateX(-50%) translateY(0); }