    .version-tag {
      position: fixed;
      top: 10px;
      right: 10px;
      font-size: 12px;
      color: #999;
      z-index: 1000;
    }

    /* 隐藏number输入框的spinner按钮 */
    input[type=number]::-webkit-inner-spin-button,
    input[type=number]::-webkit-outer-spin-button {
      -webkit-appearance: none;
      margin: 0;
    }

    input[type=number] {
      -moz-appearance: textfield;
    }

    /* 简单的checkbox样式 */
    input[type="checkbox"] {
      cursor: pointer;
      accent-color: #3b82f6; /* 蓝色 */
    }

    *,
    *::before,
    *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    body {
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", sans-serif;
      background: #f3f4f6;
      color: #374151;
      line-height: 1.5;
    }

    /* Layout */
    .min-h-screen {
      min-height: 100vh;
    }

    .pb-10 {
      padding-bottom: 2.5rem;
    }

    .max-w-7xl {
      max-width: 80rem;
    }

    .mx-auto {
      margin-left: auto;
      margin-right: auto;
    }

    .px-4 {
      padding-left: 1rem;
      padding-right: 1rem;
    }

    .py-3 {
      padding-top: 0.75rem;
      padding-bottom: 0.75rem;
    }

    .py-6 {
      padding-top: 1.5rem;
      padding-bottom: 1.5rem;
    }

    .p-4 {
      padding: 1rem;
    }

    .p-3 {
      padding: 0.75rem;
    }

    .px-3 {
      padding-left: 0.75rem;
      padding-right: 0.75rem;
    }

    .py-2 {
      padding-top: 0.5rem;
      padding-bottom: 0.5rem;
    }

    .px-2 {
      padding-left: 0.5rem;
      padding-right: 0.5rem;
    }

    .py-1 {
      padding-top: 0.25rem;
      padding-bottom: 0.25rem;
    }

    .py-0\.5 {
      padding-top: 0.125rem;
      padding-bottom: 0.125rem;
    }

    .mt-2 {
      margin-top: 0.5rem;
    }

    .mt-3 {
      margin-top: 0.75rem;
    }

    .mb-1 {
      margin-bottom: 0.25rem;
    }

    .mb-4 {
      margin-bottom: 1rem;
    }

    .mr-1 {
      margin-right: 0.25rem;
    }

    .ml-1 {
      margin-left: 0.25rem;
    }

    .mr-2 {
      margin-right: 0.5rem;
    }

    .ml-2 {
      margin-left: 0.5rem;
    }

    /* Flexbox */
    .flex {
      display: flex;
    }

    .inline-flex {
      display: inline-flex;
    }

    .flex-col {
      flex-direction: column;
    }

    .flex-1 {
      flex: 1 1 0%;
    }

    .flex-wrap {
      flex-wrap: wrap;
    }

    .items-center {
      align-items: center;
    }

    .items-start {
      align-items: flex-start;
    }

    .justify-center {
      justify-content: center;
    }

    .justify-between {
      justify-content: space-between;
    }

    .justify-end {
      justify-content: flex-end;
    }

    .gap-1 {
      gap: 0.25rem;
    }

    .gap-2 {
      gap: 0.5rem;
    }

    .gap-3 {
      gap: 0.75rem;
    }

    .gap-4 {
      gap: 1rem;
    }

    .gap-6 {
      gap: 1.5rem;
    }

    .gap-x-4 {
      column-gap: 1rem;
    }

    .gap-y-1 {
      row-gap: 0.25rem;
    }

    .space-x-1>*+* {
      margin-left: 0.25rem;
    }

    .space-x-2>*+* {
      margin-left: 0.5rem;
    }

    .space-x-4>*+* {
      margin-left: 1rem;
    }

    .space-x-6>*+* {
      margin-left: 1.5rem;
    }

    .space-y-4>*+* {
      margin-top: 1rem;
    }

    .shrink-0,
    .flex-shrink-0 {
      flex-shrink: 0;
    }

    /* Grid */
    .grid {
      display: grid;
    }

    .grid-cols-1 {
      grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .grid-cols-2 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .grid-cols-3 {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    @media (min-width: 768px) {
      .md\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .md\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }
    }

    @media (min-width: 1024px) {
      .lg\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .lg\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
      }

      .lg\:grid-cols-5 {
        grid-template-columns: repeat(5, minmax(0, 1fr));
      }

      .lg\:flex {
        display: flex !important;
      }

      .lg\:hidden {
        display: none !important;
      }

      .hidden.lg\:flex {
        display: flex !important;
      }
    }

    /* Background & Colors */
    .bg-gray-100 {
      background-color: #f3f4f6;
    }

    .bg-gray-50 {
      background-color: #f9fafb;
    }

    .bg-gray-200 {
      background-color: #e5e7eb;
    }

    .bg-gray-800 {
      background-color: #1f2937;
    }

    .bg-white {
      background-color: #fff;
    }

    .bg-blue-50 {
      background-color: #eff6ff;
    }

    .bg-blue-100 {
      background-color: #dbeafe;
    }

    .bg-blue-500 {
      background-color: #3b82f6;
    }

    .bg-blue-600 {
      background-color: #2563eb;
    }

    .bg-green-50 {
      background-color: #f0fdf4;
    }

    .bg-green-100 {
      background-color: #dcfce7;
    }

    .bg-green-500 {
      background-color: #22c55e;
    }

    .bg-green-600 {
      background-color: #16a34a;
    }

    .bg-red-50 {
      background-color: #fef2f2;
    }

    .bg-red-100 {
      background-color: #fee2e2;
    }

    .bg-red-500 {
      background-color: #ef4444;
    }

    .bg-yellow-50 {
      background-color: #fefce8;
    }

    .bg-yellow-100 {
      background-color: #fef9c3;
    }

    .bg-orange-500 {
      background-color: #f97316;
    }

    .bg-orange-600 {
      background-color: #ea580c;
    }

    .bg-purple-500 {
      background-color: #a855f7;
    }

    .bg-purple-600 {
      background-color: #9333ea;
    }

    .bg-amber-500 {
      background-color: #f59e0b;
    }

    .bg-amber-600 {
      background-color: #d97706;
    }

    .bg-yellow-400 {
      background-color: #facc15;
    }

    .bg-yellow-500 {
      background-color: #eab308;
    }

    .bg-yellow-600 {
      background-color: #ca8a04;
    }

    .text-yellow-800 {
      color: #92400e;
    }

    .border-yellow-300 {
      border-color: #fcd34d;
    }

    .hover\:bg-yellow-200:hover {
      background-color: #fef08a;
    }

    .hover\:bg-yellow-600:hover {
      background-color: #ca8a04;
    }

    .bg-teal-500 {
      background-color: #14b8a6;
    }

    .bg-teal-600 {
      background-color: #0d9488;
    }

    .bg-gray-300 {
      background-color: #d1d5db;
    }

    .bg-gray-400 {
      background-color: #9ca3af;
    }

    .bg-gray-500 {
      background-color: #6b7280;
    }

    .bg-gray-600 {
      background-color: #4b5563;
    }

    .bg-slate-500 {
      background-color: #64748b;
    }

    .bg-slate-600 {
      background-color: #475569;
    }

    .hover\:bg-orange-600:hover { background-color: #ea580c; }
    .hover\:bg-purple-600:hover { background-color: #9333ea; }
    .hover\:bg-amber-600:hover { background-color: #d97706; }
    .hover\:bg-yellow-500:hover { background-color: #eab308; }
    .hover\:bg-yellow-600:hover { background-color: #ca8a04; }
    .hover\:bg-teal-600:hover { background-color: #0d9488; }
    .hover\:bg-orange-600:hover { background-color: #ea580c; }
    .hover\:bg-gray-500:hover { background-color: #6b7280; }
    .hover\:bg-gray-600:hover { background-color: #4b5563; }
    .hover\:bg-gray-700:hover { background-color: #374151; }
    .hover\:bg-gray-800:hover { background-color: #1f2937; }
    .hover\:bg-slate-700:hover { background-color: #334155; }

    .bg-black {
      background-color: #000;
    }

    .bg-opacity-50 {
      --tw-bg-opacity: 0.5;
      background-color: rgba(0, 0, 0, 0.5);
    }

    /* Text Colors */
    .text-white {
      color: #fff;
    }

    .text-gray-400 {
      color: #9ca3af;
    }

    .text-gray-500 {
      color: #6b7280;
    }

    .text-gray-600 {
      color: #4b5563;
    }

    .text-gray-700 {
      color: #374151;
    }

    .text-gray-800 {
      color: #1f2937;
    }

    .text-gray-900 {
      color: #111827;
    }

    .text-blue-500 {
      color: #3b82f6;
    }

    .text-blue-600 {
      color: #2563eb;
    }

    .text-blue-700 {
      color: #1d4ed8;
    }

    .text-green-500 {
      color: #22c55e;
    }

    .text-green-600 {
      color: #16a34a;
    }

    .text-red-500 {
      color: #ef4444;
    }

    .text-red-600 {
      color: #dc2626;
    }

    .text-yellow-600 {
      color: #ca8a04;
    }

    .text-purple-600 {
      color: #9333ea;
    }

    .text-orange-600 {
      color: #ea580c;
    }

    /* Typography */
    .text-xs {
      font-size: 0.75rem;
      line-height: 1rem;
    }

    .text-sm {
      font-size: 0.875rem;
      line-height: 1.25rem;
    }

    .text-base {
      font-size: 1rem;
      line-height: 1.5rem;
    }

    .text-lg {
      font-size: 1.125rem;
      line-height: 1.75rem;
    }

    .text-xl {
      font-size: 1.25rem;
      line-height: 1.75rem;
    }

    .text-2xl {
      font-size: 1.5rem;
      line-height: 2rem;
    }

    .text-3xl {
      font-size: 1.875rem;
      line-height: 2.25rem;
    }

    .font-medium {
      font-weight: 500;
    }

    .font-semibold {
      font-weight: 600;
    }

    .font-bold {
      font-weight: 700;
    }

    .text-left {
      text-align: left;
    }

    .text-center {
      text-align: center;
    }

    .text-right {
      text-align: right;
    }

    .whitespace-nowrap {
      white-space: nowrap;
    }

    .truncate {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    /* Border */
    .border {
      border-width: 1px;
      border-color: #e5e7eb;
      border-style: solid;
    }

    .border-t {
      border-top-width: 1px;
      border-color: #e5e7eb;
    }

    .border-b {
      border-bottom-width: 1px;
      border-color: #e5e7eb;
    }

    .border-yellow-200 {
      border-color: #fef08a;
    }

    .rounded {
      border-radius: 0.25rem;
    }

    .rounded-lg {
      border-radius: 0.5rem;
    }

    .rounded-full {
      border-radius: 9999px;
    }

    .divide-y>*+* {
      border-top-width: 1px;
      border-color: #e5e7eb;
    }

    /* Shadow */
    .shadow {
      box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
    }

    /* Position */
    .fixed {
      position: fixed;
    }

    .sticky {
      position: sticky;
    }

    .absolute {
      position: absolute;
    }

    .relative {
      position: relative;
    }

    .inset-0 {
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
    }

    .top-0 {
      top: 0;
    }

    .bottom-0 {
      bottom: 0;
    }

    .left-0 {
      left: 0;
    }

    .right-0 {
      right: 0;
    }

    .z-40 {
      z-index: 40;
    }

    .z-50 {
      z-index: 50;
    }

    .z-\[100\] {
      z-index: 100;
    }

    /* Sizing */
    .w-full {
      width: 100%;
    }

    .w-4 {
      width: 1rem;
    }

    .w-5 {
      width: 1.25rem;
    }

    .h-2 {
      height: 0.5rem;
    }

    .h-4 {
      height: 1rem;
    }

    .h-5 {
      height: 1.25rem;
    }

    .h-screen {
      height: 100vh;
    }

    .max-w-lg {
      max-width: 32rem;
    }

    .max-w-xl {
      max-width: 36rem;
    }

    .max-w-2xl {
      max-width: 42rem;
    }

    /* Overflow */
    .overflow-x-auto {
      overflow-x: auto;
    }

    .overflow-y-auto {
      overflow-y: auto;
    }

    .overflow-hidden {
      overflow: hidden;
    }

    /* Display */
    .hidden {
      display: none;
    }

    .block {
      display: block;
    }

    .inline-block {
      display: inline-block;
    }

    /* Table */
    table {
      border-collapse: collapse;
      width: 100%;
    }

    th,
    td {
      padding: 0.5rem 0.75rem;
    }

    /* Form Elements */
    input,
    select,
    textarea {
      border: 1px solid #e5e7eb;
      border-radius: 0.25rem;
      padding: 0.5rem 0.75rem;
      width: 100%;
      font-size: 0.875rem;
      outline: none;
    }

    input[type="radio"],
    input[type="checkbox"] {
      width: auto;
      padding: 0;
    }

    input:focus,
    select:focus,
    textarea:focus {
      border-color: #3b82f6;
      box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
    }

    /* Button */
    button {
      cursor: pointer;
      border: none;
      font-size: 0.875rem;
      border-radius: 0.25rem;
      padding: 0.5rem 1rem;
    }

    .hover\:bg-gray-50:hover {
      background-color: #f9fafb;
    }

    .hover\:bg-gray-100:hover {
      background-color: #f3f4f6;
    }

    .hover\:bg-gray-200:hover {
      background-color: #e5e7eb;
    }

    .hover\:bg-blue-600:hover {
      background-color: #2563eb;
    }

    .hover\:bg-green-600:hover {
      background-color: #16a34a;
    }

    /* Cursor */
    .hover\:underline:hover { text-decoration: underline; }
    .cursor-pointer {
      cursor: pointer;
    }

    /* Icons (text-based replacement for remixicon) */
    .ri-add-line::before {
      content: "+";
    }

    .ri-close-line::before {
      content: "×";
    }

    .ri-edit-line::before {
      content: "✎";
    }

    .ri-delete-bin-line::before {
      content: "🗑";
    }

    .ri-download-line::before {
      content: "↓";
    }

    .ri-upload-line::before {
      content: "↑";
    }

    .ri-search-line::before {
      content: "🔍";
    }

    .ri-refresh-line::before {
      content: "↻";
    }

    .ri-check-line::before {
      content: "✓";
    }

    .ri-arrow-left-line::before {
      content: "←";
    }

    .ri-arrow-right-line::before {
      content: "→";
    }

    .ri-file-line::before {
      content: "📄";
    }

    .ri-folder-line::before {
      content: "📁";
    }

    .ri-home-line::before {
      content: "🏠";
    }

    .ri-settings-line::before {
      content: "⚙";
    }

    .ri-user-line::before {
      content: "👤";
    }

    .ri-money-cny-box-line::before {
      content: "💰";
    }

    .ri-bar-chart-line::before {
      content: "📊";
    }

    [class^="ri-"],
    [class*=" ri-"] {
      font-style: normal;
    }

