:root{
    --bg:#f3f5f9; --card:#ffffff; --ink:#1f2937; --muted:#6b7280;
    --line:#e3e7ee; --accent:#2563eb; --accent-soft:#eaf0ff;
    --code:#0f172a; --code-ink:#e2e8f0; --ok:#059669; --bad:#dc2626; --warn:#b45309;
    --radius:12px;
  }
  *{box-sizing:border-box}
  html,body{margin:0;padding:0}
  body{
    background:var(--bg); color:var(--ink);
    font-family:system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;
    font-size:15px; line-height:1.6;
  }
  header{padding:20px 20px 6px;max-width:1080px;margin:0 auto}
  header h1{font-size:20px;margin:0 0 4px;letter-spacing:.2px}
  header p{margin:0;color:var(--muted);font-size:13px}
  .badge{display:inline-block;background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:1px 10px;font-size:12px;margin-left:8px;vertical-align:2px}
  nav.tabs{display:flex;gap:4px;flex-wrap:wrap;padding:14px 20px 0;max-width:1080px;margin:0 auto;position:sticky;top:0;background:linear-gradient(var(--bg) 75%,transparent);z-index:5}
  nav.tabs button{
    border:1px solid var(--line);background:#fff;color:var(--muted);
    padding:8px 14px;border-radius:10px 10px 0 0;border-bottom:none;
    font-size:14px;cursor:pointer;font-family:inherit;
  }
  nav.tabs button.active{background:var(--card);color:var(--accent);font-weight:600;box-shadow:0 -2px 0 var(--accent) inset}
  main{max-width:1080px;margin:0 auto;padding:0 20px 60px}
  .panel{display:none;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-top:0}
  .panel.active{display:block}
  h2{font-size:15px;margin:22px 0 10px;color:#111827}
  h2:first-child{margin-top:0}
  .row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
  .grow{flex:1 1 260px}
  label.f{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);min-width:120px}
  label.f span{font-weight:600;color:#374151}
  input,select,textarea,button{font-family:inherit;font-size:14px}
  input,select,textarea{
    border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:#fff;color:var(--ink);
    outline:none;width:100%;
  }
  input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
  textarea.code{
    font-family:ui-monospace,SFMono-Regular,Consolas,"Courier New",monospace;
    background:var(--code);color:var(--code-ink);border:none;min-height:74px;resize:vertical;
    letter-spacing:.5px;font-size:14px;line-height:1.7;
  }
  textarea.code::placeholder{color:#7c8aa5}
  .btn{
    border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:9px;
    padding:8px 16px;cursor:pointer;font-weight:600;
  }
  .btn:hover{border-color:#c7cfdd}
  .btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
  .btn.primary:hover{background:#1d4ed8}
  .btn.small{padding:4px 10px;font-size:12px;font-weight:500}
  .chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 14px}
  .chip{border:1px dashed #c7cfdd;background:#fbfcfe;border-radius:999px;padding:5px 12px;font-size:12.5px;cursor:pointer;color:#374151}
  .chip:hover{border-color:var(--accent);color:var(--accent)}
  .summary{
    background:linear-gradient(180deg,#f8fbff,#f3f7ff);border:1px solid #dbe6ff;border-left:4px solid var(--accent);
    border-radius:10px;padding:12px 14px;margin:14px 0;font-size:14.5px;
  }
  .summary b{color:#1d4ed8}
  .ok{color:var(--ok);font-weight:600}
  .bad{color:var(--bad);font-weight:600}
  .warn{color:var(--warn)}
  .hint{color:var(--muted);font-size:12.5px;margin-top:4px}
  table{width:100%;border-collapse:collapse;font-size:13.5px}
  th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
  th{background:#f8fafc;color:#374151;font-weight:600;font-size:12.5px;white-space:nowrap}
  td.mono,th.mono{font-family:ui-monospace,Consolas,monospace}
  .tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;margin:10px 0}
  .tablewrap table{min-width:560px}
  pre{
    background:var(--code);color:var(--code-ink);border-radius:10px;padding:14px;overflow-x:auto;
    font-family:ui-monospace,Consolas,monospace;font-size:13px;line-height:1.6;margin:8px 0;
  }
  .codewrap{position:relative}
  .codewrap .btn.small{position:absolute;right:8px;top:8px;background:#1e293b;color:#cbd5e1;border-color:#334155}
  .out{margin-top:14px}
  .err{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:10px;padding:12px 14px;margin:14px 0}
  .grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  @media(max-width:720px){.grid2{grid-template-columns:1fr}}
  @media(max-width:560px){
    header{padding:14px 14px 4px}
    nav.tabs{padding:10px 14px 0;position:static}
    main{padding:0 14px 40px}
    .panel{padding:14px}
    label.f{flex:1 1 100%!important;min-width:0}
    .row{gap:8px}
    .chips{gap:6px}
    .chip{font-size:12px;padding:4px 10px}
  }
  .seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}
  .seg button{border:none;background:#fff;padding:8px 14px;cursor:pointer;font-size:13.5px;color:var(--muted)}
  .seg button.active{background:var(--accent);color:#fff;font-weight:600}
  .field-note{font-size:12px;color:var(--muted);margin-top:2px}
  .kv{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:13.5px}
  .kv .k{color:var(--muted)}
  .hidden{display:none!important}
  .mono{font-family:ui-monospace,Consolas,monospace}
  .small{font-size:12.5px;color:var(--muted)}
  .ref-card{border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin:12px 0;background:#fcfdff}
  .ref-card h3{margin:0 0 8px;font-size:14px}
  .ref-card p{margin:4px 0;font-size:13.5px;color:#374151}
  .tag{display:inline-block;background:#eef2ff;color:#3730a3;border-radius:6px;padding:0 6px;font-size:12px;margin-right:4px}
