      body {
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
          sans-serif;
        background: #f2f7f5;
        color: #475d5b;
        min-height: 100vh;
      }


      /* 翻转动效与居中显示 */
      .flip-card {
        perspective: 800px;
        width: 100%;
        height: 100%;
      }

      .flip-inner {
        position: relative;
        width: 100%;
        height: 100%;
        transform-style: preserve-3d;
        transition: transform 0.6s;
      }

      .flip-card.flipped .flip-inner {
        transform: rotateY(180deg);
      }

      .flip-face {
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        backface-visibility: hidden;
        border-radius: 0.5rem;
        overflow: hidden;
      }

      .flip-front {
        background: rgba(250, 174, 43, 0.15);
        cursor: pointer;
        border: 1px solid rgba(0, 51, 44, 0.1);
        z-index: 2;
      }

      .flip-back {
        background: #f2f7f5;
        transform: rotateY(180deg);
        padding: 8px;
        text-align: center;
        border: 1px solid rgba(0, 51, 44, 0.15);
        z-index: 1;
      }



      /* 标签样式 */
      .card-label {
        position: absolute;
        top: 4px;
        left: 4px;
        right: 4px;
        display: flex;
        gap: 4px;
        flex-wrap: wrap;
        z-index: 10;
      }

      .label-badge {
        padding: 2px 6px;
        border-radius: 4px;
        font-size: 10px;
        font-weight: 600;
        white-space: nowrap;
      }

      .label-error {
        background: #fa5246;
        color: #f2f7f5;
      }

      .label-review {
        background: #faae2b;
        color: #00473e;
      }

      .label-mastered {
        background: #00473e;
        color: #f2f7f5;
      }

      .label-unpracticed {
        background: #475d5b;
        color: #f2f7f5;
      }

      /* 卡片背面内容 */
      .flip-back-content {
        width: 100%;
        height: 100%;
        display: flex;
        flex-direction: column;
        position: relative;
      }

      .flip-back-text {
        flex: 1;
        overflow-y: auto;
        padding: 4px;
      }

      .flip-back-actions {
        padding: 2px;
        border-top: 1px solid rgba(0, 51, 44, 0.1);
        display: flex;
        align-items: center;
        justify-content: center;
      }

      .flip-back-checkbox {
        display: flex;
        align-items: center;
        gap: 4px;
        font-size: 12px;
        color: #475d5b;
        cursor: pointer;
      }

      /* 按钮样式 */
      .btn-primary {
        background: linear-gradient(135deg, #faae2b 0%, #ffa8ba 100%);
        border: none;
        color: #00473e;
        font-weight: 600;
        letter-spacing: 0.025em;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        box-shadow: 0 4px 14px rgba(0, 71, 62, 0.3);
      }

      .btn-primary:hover {
        background: linear-gradient(135deg, #ffa8ba 0%, #ffa8ba 100%);
      }

      .btn-secondary {
        background: rgba(242, 247, 245, 0.8);
        backdrop-filter: blur(20px);
        border: 1px solid rgba(0, 51, 44, 0.2);
        color: #00473e;
        font-weight: 600;
        letter-spacing: 0.025em;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        box-shadow: 0 4px 14px rgba(0, 51, 44, 0.05);
      }

      .btn-secondary:hover {
        background: rgba(242, 247, 245, 0.9);
        transform: translateY(-2px);
        box-shadow: 0 8px 25px rgba(0, 51, 44, 0.1);
      }

      /* 切换按钮样式 */
      .toggle-btn {
        padding: 8px 16px;
        border-radius: 8px;
        font-weight: 600;
        font-size: 14px;
        transition: all 0.3s ease;
      }

      .toggle-btn.active {
        background: linear-gradient(135deg, #faae2b 0%, #ffa8ba 100%);
        color: #00473e;
        box-shadow: 0 4px 14px rgba(0, 71, 62, 0.3);
      }

      .toggle-btn:not(.active) {
        background: rgba(242, 247, 245, 0.8);
        color: #475d5b;
        border: 1px solid rgba(0, 51, 44, 0.2);
      }

      .toggle-btn:not(.active):hover {
        background: rgba(242, 247, 245, 0.9);
        transform: translateY(-1px);
      }

      /* 50 音表格样式 */
      .kana-table {
        border-collapse: separate;
        margin: 0 auto;
      }

      .kana-table th {
        background: linear-gradient(135deg,
            rgba(0, 71, 62, 0.1) 0%,
            rgba(250, 174, 43, 0.1) 100%);
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        font-size: 0.75rem;
        padding: 12px 16px;
        text-align: center;
        color: #00473e;
        border-radius: 8px;
        backdrop-filter: blur(10px);
      }

      .kana-table td {
        width: 300px;
        height: 100px;
        padding: 8px;
        vertical-align: top;
      }

      .kana-cell {
        width: 100%;
        height: 100%;
        position: relative;
      }

      /* 响应式设计 */
      @media (max-width: 1024px) {
        .kana-table td {
          width: 100px;
          height: 90px;
          padding: 6px;
        }
      }

      @media (max-width: 768px) {
        .kana-table th {
          font-size: 0.7rem;
          padding: 6px 8px;
        }

        .kana-table td {
          width: 70px;
          height: 70px;
          padding: 4px;
        }

        .flip-back-text {
          font-size: 24px !important;
        }

        .flip-back-text div:last-child {
          font-size: 14px !important;
        }
      }

      @media (max-width: 480px) {
        .container {
          padding: 10px;
        }

        .kana-table th {
          font-size: 0.6rem;
          padding: 4px 6px;
          width: 60px;
        }

        .kana-table td {
          width: 60px;
          height: 60px;
          padding: 2px;
        }

        .flip-back-text {
          font-size: 20px !important;
        }

        .flip-back-text div:last-child {
          font-size: 12px !important;
        }

        .card-label {
          font-size: 8px;
        }

        .label-badge {
          font-size: 8px !important;
          padding: 1px 4px !important;
        }
      }

      /* 认证弹窗样式 */
      .auth-modal-overlay {
        position: fixed;
        inset: 0;
        background: rgba(0, 51, 44, 0.6);
        backdrop-filter: blur(8px);
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 50;
      }

      .auth-modal-content {
        background: rgba(255, 255, 255, 0.95);
        backdrop-filter: blur(20px);
        border: 1px solid rgba(0, 51, 44, 0.2);
        border-radius: 4px;
        box-shadow: 0 25px 50px -12px rgba(0, 51, 44, 0.3);
        color: #00473e;
        padding: 24px;
        max-width: 400px;
        width: 90%;
      }

      .auth-glass-input {
        background: rgba(242, 247, 245, 0.8);
        backdrop-filter: blur(20px);
        border: 1px solid rgba(0, 51, 44, 0.2);
        border-radius: 4px;
        padding: 0.875rem 1.25rem;
        color: #00473e;
        font-size: 1rem;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        box-shadow: 0 4px 14px rgba(0, 51, 44, 0.05);
      }

      .auth-glass-input:focus {
        outline: none;
        border-color: #00473e;
        box-shadow: 0 0 0 3px rgba(0, 71, 62, 0.1),
          0 8px 25px rgba(0, 51, 44, 0.1);
        background: rgba(242, 247, 245, 0.95);
      }

      .auth-btn-primary {
        background: linear-gradient(135deg, #faae2b 0%, #ffa8ba 100%);
        border: none;
        color: #00473e;
        font-weight: 600;
        letter-spacing: 0.025em;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        box-shadow: 0 4px 14px rgba(0, 71, 62, 0.3);
      }

      .auth-btn-primary:hover {
        background: linear-gradient(135deg, #ffa8ba 0%, #ffa8ba 100%);
      }

      /* Home 按钮 */
      .home-btn {
        position: fixed;
        top: 20px;
        right: 20px;
        z-index: 1000;
        width: 40px;
        height: 40px;
        background-color: #faae2b;
        border: none;
        border-radius: 8px;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 24px;
        color: #00473e;
        text-decoration: none;
        transition: background-color 0.3s;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
      }

      .home-btn:hover {
        background-color: #ffa8ba;
      }

      /* 响应式布局 */
      @media (max-width: 768px) {
        .desktop-header {
          display: none !important;
        }

        .mobile-header {
          display: flex !important;
        }

        .home-btn {
          top: 10px;
          right: 10px;
          width: 36px;
          height: 36px;
          font-size: 20px;
        }
      }

      @media (min-width: 769px) {
        .desktop-header {
          display: flex !important;
        }

        .mobile-header {
          display: none !important;
        }
      }