:root{
    --primary-color:#1890ff; --secondary-color:#f0f2f5; --text-color:#333;
    --light-text:#666; --border-color:#d9d9d9; --success-color:#52c41a; --error-color:#f5222d;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  /*body{font-family:'Noto Sans SC',sans-serif;line-height:1.6;color:var(--text-color);background:#f8f9fa;padding:20px}*/
  header{background:linear-gradient(135deg,#1890ff,#096dd9);color:#fff;padding:24px 20px;border-radius:8px;margin-bottom:20px;box-shadow:0 4px 12px rgba(0,0,0,.1);text-align:center}
  header h1{font-weight:500;margin-bottom:8px}
  header p{opacity:.95}
  .wrap{display:grid;grid-template-columns:320px 1fr;gap:16px}
  .panel{background:#fff;padding:16px;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.08)}
  .panel h2{font-size:1.1rem;margin-bottom:10px;color:var(--primary-color);border-bottom:2px solid var(--primary-color);padding-bottom:6px}
  .range-row{display:flex;align-items:center;gap:8px;margin:8px 0}
  select, input[type="file"], input[type="range"], button{margin-top:6px}
  /*.btn{padding:8px 12px;border:1px solid var(--border-color);border-radius:8px;background:#fff;cursor:pointer}*/
  .btn.primary{border-color:#1677ff;background:#1677ff;color:#fff}
  .btn:disabled{opacity:.6;cursor:not-allowed}
  .thumb{display:block;max-width:100%;border:1px dashed var(--border-color);border-radius:8px;margin-top:6px}
  .kv{font-size:12px;color:#666;margin-top:6px}
  .grid4{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .box{position:relative;background:#000;border-radius:8px;overflow:hidden}
  .box-head{position:absolute;inset:auto 0 0 0;background:rgba(0,0,0,.45);color:#fff;font-size:12px;padding:6px 8px}
  canvas{display:block;width:100%;height:auto}
  .legend{font-size:12px;color:#666;margin-top:8px}
  @media (max-width:1000px){.wrap{grid-template-columns:1fr} .grid4{grid-template-columns:1fr}}